├── CHANGELOG.md ├── composer.json ├── config └── services.yml ├── event └── listener.php ├── ext.php ├── language ├── ar │ ├── common.php │ └── lightbox.php ├── cs │ ├── common.php │ └── lightbox.php ├── de │ ├── common.php │ └── lightbox.php ├── en │ ├── common.php │ └── lightbox.php ├── es │ ├── common.php │ └── lightbox.php ├── fr │ ├── common.php │ └── lightbox.php ├── it │ ├── common.php │ └── lightbox.php ├── ja │ ├── common.php │ └── lightbox.php ├── nl │ ├── common.php │ └── lightbox.php ├── pl │ ├── common.php │ └── lightbox.php ├── pt_br │ ├── common.php │ └── lightbox.php ├── ru │ ├── common.php │ └── lightbox.php ├── sk │ ├── common.php │ └── lightbox.php ├── sl │ ├── common.php │ └── lightbox.php ├── sv │ ├── common.php │ └── lightbox.php ├── tr │ ├── common.php │ └── lightbox.php └── vi │ ├── common.php │ └── lightbox.php ├── license.txt ├── migrations ├── m1_add_configs.php ├── m2_image_titles.php └── m3_add_configs.php ├── package-lock.json ├── package.json └── styles └── all └── template ├── event ├── overall_footer_after.html ├── overall_footer_body_after.html └── overall_header_stylesheets_after.html ├── js └── resizer.js └── lightbox ├── css ├── lightbox.css └── lightbox.min.css ├── images ├── close.png ├── loading.gif ├── next.png └── prev.png └── js ├── lightbox.js ├── lightbox.min.js └── lightbox.min.map /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## Changelog 2 | 3 | ### 2.0.4 - 2022-06-16 4 | 5 | - Fixed a bug where attached images were not being resized 6 | 7 | ### 2.0.3 - 2020-12-28 8 | 9 | - Updated Lightbox2 library to 2.11.3 10 | - Added support for images inside spoiler BBCodes from the ABBC3 and SimpleSpoiler extensions 11 | 12 | ### 2.0.2 - 2020-01-16 13 | 14 | - Updated Lightbox2 library to 2.11.1 15 | - jQuery v3 / phpBB v3.3 compatibility fixes 16 | - Eliminated visible image resizing by setting max-width/height in CSS now instead of JavaScript 17 | - Resized user signature images will no longer be included in Lightbox gallery mode 18 | - Added Slovenian translation 19 | 20 | ### 2.0.1 - 2019-05-24 21 | 22 | - Updated Lightbox2 library to 2.11.0 23 | - Made the gallery label "Image" translatable 24 | - Fixed Lightbox effect in edited mChat messages 25 | 26 | ### 2.0.0 - 2018-10-01 27 | 28 | - Maximum height can now be set, in addition to the maximum width, for resizing large images 29 | - Lightbox2 effect can now be enabled for all posted images, even images not being resized 30 | - Updated Lightbox2 library to 2.10.0 31 | - Requires 3.2.0 or newer (no longer compatible with phpBB 3.1.x) 32 | - Added Slovak translation 33 | 34 | ### 1.0.5 - 2017-10-15 35 | 36 | - Gallery mode can now be enabled for the whole page or per post 37 | - Added compatibility with mChat extension 38 | - Added German translation 39 | - Added Turkish translation 40 | - Added Vietnamese translation 41 | 42 | ### 1.0.4 - 2017-01-10 43 | 44 | - Minor informational update for phpBB 3.2.x 45 | 46 | ### 1.0.3 - 2016-11-10 47 | 48 | - Updated Lightbox2 library to 2.9.0 49 | - Fixed Brazilian translation package (renamed pt-br to pt_br) 50 | - Various minor code and language improvements 51 | 52 | ### 1.0.2 - 2016-02-23 53 | 54 | - Add support for QuickReply Reloaded extension 55 | - Handle attachments constrained by portrait height 56 | - Display recommended Lightbox2 settings in the ACP based on image attachment settings 57 | - Future-proof compatibility for Symfony 3.0 58 | - JavaScript code refactoring, improving, tweaking 59 | - Added Brazilian-Portuguese translation 60 | 61 | ### 1.0.1 - 2016-01-16 62 | 63 | - Updated Lightbox2 library to 2.8.2 64 | - Added the option to show/hide image names as captions 65 | - Added Czech translation 66 | 67 | ### 1.0.0 - 2015-09-10 68 | 69 | - First stable validated release 70 | 71 | --- 72 | 73 | ## Unstable Releases 74 | 75 | ### 1.0.0-RC2 - 2015-09-09 76 | 77 | - Moved the ACP settings into the "Post settings" section 78 | - Added Russian translation 79 | 80 | ### 1.0.0-RC1 - 2015-09-04 81 | 82 | - Fixed a mistake causing gallery and signature settings to fail 83 | 84 | ### 1.0.0-b5 - 2015-09-03 85 | 86 | - Updated Lightbox2 library from 2.7.1 to 2.8.1 87 | - Added Arabic, Spanish, French, Italian, Japanese, Dutch, Polish and Swedish translations 88 | 89 | ### 1.0.0-b4 - 2015-02-24 90 | 91 | - Updated handling of attachments 92 | 93 | ### 1.0.0-b3 - 2015-02-18 94 | 95 | - Added independent ACP settings to "Board features" section 96 | - Added option to disable resizing images in signatures (Prosilver themes only) 97 | - Updated javascript code 98 | - Updated template code to TWIG 99 | 100 | ### 1.0.0-b1 - 2014-10-30 101 | 102 | - Javascript improvements and use a settimeout to cure image ready issues 103 | 104 | ### 1.0.0-a2 - 2014-07-12 105 | 106 | - Updated for compatibility with phpBB 3.1.0-RC2 107 | 108 | ### 1.0.0-a1 - 2014-05-29 109 | 110 | - Alpha development release 111 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vse/lightbox", 3 | "type": "phpbb-extension", 4 | "description": "Lightbox for phpBB can resize posted images to a maximum set height/width and display them full-screen in an elegant Lightbox overlay effect.", 5 | "homepage": "https://github.com/iMattPro/lightbox", 6 | "version": "2.0.5-dev", 7 | "keywords": ["phpbb", "extension", "lightbox", "image", "resizer"], 8 | "license": "GPL-2.0-only", 9 | "authors": [ 10 | { 11 | "name": "Matt Friedman", 12 | "homepage": "https://imattpro.github.io", 13 | "role": "Developer" 14 | } 15 | ], 16 | "require": { 17 | "php": ">=5.4", 18 | "composer/installers": "~1.0" 19 | }, 20 | "extra": { 21 | "display-name": "Lightbox", 22 | "soft-require": { 23 | "phpbb/phpbb": ">=3.2.1,<4.0.0@dev" 24 | }, 25 | "version-check": { 26 | "host": "www.phpbb.com", 27 | "directory": "/customise/db/extension/lightbox", 28 | "filename": "version_check", 29 | "ssl": true 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /config/services.yml: -------------------------------------------------------------------------------- 1 | services: 2 | vse.lightbox.listener: 3 | class: vse\lightbox\event\listener 4 | arguments: 5 | - '@config' 6 | - '@language' 7 | - '@template' 8 | - '%core.php_ext%' 9 | tags: 10 | - { name: event.listener } 11 | -------------------------------------------------------------------------------- /event/listener.php: -------------------------------------------------------------------------------- 1 | config = $config; 44 | $this->language = $language; 45 | $this->template = $template; 46 | $this->php_ext = $php_ext; 47 | } 48 | 49 | /** 50 | * Assign functions defined in this class to event listeners in the core 51 | * 52 | * @return array 53 | * @static 54 | * @access public 55 | */ 56 | public static function getSubscribedEvents() 57 | { 58 | return [ 59 | 'core.page_header' => 'set_lightbox_tpl_data', 60 | 'core.acp_board_config_edit_add' => 'add_lightbox_acp_config', 61 | ]; 62 | } 63 | 64 | /** 65 | * Set Lightbox template data 66 | * 67 | * @return void 68 | * @access public 69 | */ 70 | public function set_lightbox_tpl_data() 71 | { 72 | $this->language->add_lang('common', 'vse/lightbox'); 73 | $this->template->assign_vars([ 74 | 'LIGHTBOX_RESIZE_WIDTH' => (int) $this->config['lightbox_max_width'], 75 | 'LIGHTBOX_RESIZE_HEIGHT' => (int) $this->config['lightbox_max_height'], 76 | 'S_LIGHTBOX_ALL_IMAGES' => (int) $this->config['lightbox_all_images'], 77 | 'S_LIGHTBOX_GALLERY' => (int) $this->config['lightbox_gallery'], 78 | 'S_LIGHTBOX_SIGNATURES' => (int) $this->config['lightbox_signatures'], 79 | 'S_LIGHTBOX_IMG_TITLES' => (int) $this->config['lightbox_img_titles'], 80 | 'PHP_EXTENSION' => $this->php_ext, 81 | ]); 82 | } 83 | 84 | /** 85 | * Add Lightbox settings to the ACP 86 | * 87 | * @param \phpbb\event\data $event The event object 88 | * @return void 89 | * @access public 90 | */ 91 | public function add_lightbox_acp_config($event) 92 | { 93 | if ($event['mode'] === 'post' && array_key_exists('legend3', $event['display_vars']['vars'])) 94 | { 95 | $this->language->add_lang('lightbox', 'vse/lightbox'); 96 | 97 | $max_width = $this->min_not_null($this->config['img_max_width'], (!empty($this->config['img_create_thumbnail']) ? $this->config['img_max_thumb_width'] : 0)); 98 | $l_append = $max_width ? $this->language->lang('LIGHTBOX_MAX_WIDTH_APPEND', $max_width) : ''; 99 | 100 | $my_config_vars = [ 101 | 'legend_lightbox' => 'LIGHTBOX_SETTINGS', 102 | 'lightbox_max_width' => ['lang' => 'LIGHTBOX_MAX_WIDTH', 'validate' => 'int:0:99999', 'type' => 'number:0:99999', 'explain' => true, 'append' => ' ' . $this->language->lang('PIXEL') . '
' . $l_append], 103 | 'lightbox_max_height' => ['lang' => 'LIGHTBOX_MAX_HEIGHT', 'validate' => 'int:0:99999', 'type' => 'number:0:99999', 'explain' => true, 'append' => ' ' . $this->language->lang('PIXEL') . '
' . $l_append], 104 | 'lightbox_all_images' => ['lang' => 'LIGHTBOX_ALL_IMAGES', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true], 105 | 'lightbox_gallery' => ['lang' => 'LIGHTBOX_GALLERY', 'validate' => 'int', 'type' => 'select', 'function' => 'build_select', 'params' => [[0 => 'DISABLED', 1 => 'LIGHTBOX_GALLERY_ALL', 2 => 'LIGHTBOX_GALLERY_POSTS'], '{CONFIG_VALUE}'], 'explain' => true], 106 | 'lightbox_signatures' => ['lang' => 'LIGHTBOX_SIGNATURES', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true], 107 | 'lightbox_img_titles' => ['lang' => 'LIGHTBOX_IMG_TITLES', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true], 108 | ]; 109 | 110 | $event->update_subarray('display_vars', 'vars', phpbb_insert_config_array($event['display_vars']['vars'], $my_config_vars, ['before' => 'legend3'])); 111 | } 112 | } 113 | 114 | /** 115 | * Find the lowest value that is not 0 116 | * Accepts variable number of comparable parameters 117 | * 118 | * @return mixed The lowest of the parameter values, false on no result. 119 | * @access protected 120 | */ 121 | protected function min_not_null() 122 | { 123 | $args = func_get_args(); 124 | $args = array_diff(array_map('intval', $args), [0]); 125 | 126 | return count($args) ? min($args) : false; 127 | } 128 | } 129 | -------------------------------------------------------------------------------- /ext.php: -------------------------------------------------------------------------------- 1 | =') 28 | && phpbb_version_compare(PHPBB_VERSION, self::PHPBB_MAX_VERSION, '<'); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /language/ar/common.php: -------------------------------------------------------------------------------- 1 | 6 | * 7 | * @copyright (c) 2015 Matt Friedman 8 | * @license GNU General Public License, version 2 (GPL-2.0) 9 | * 10 | */ 11 | 12 | /** 13 | * DO NOT CHANGE 14 | */ 15 | if (!defined('IN_PHPBB')) 16 | { 17 | exit; 18 | } 19 | 20 | if (empty($lang) || !is_array($lang)) 21 | { 22 | $lang = array(); 23 | } 24 | 25 | $lang = array_merge($lang, array( 26 | 'LIGHTBOX_GALLERY_LABEL' => 'الصورة %1 من %2', 27 | )); 28 | -------------------------------------------------------------------------------- /language/ar/lightbox.php: -------------------------------------------------------------------------------- 1 | 6 | * 7 | * @copyright (c) 2015 Matt Friedman 8 | * @license GNU General Public License, version 2 (GPL-2.0) 9 | * 10 | */ 11 | 12 | /** 13 | * DO NOT CHANGE 14 | */ 15 | if (!defined('IN_PHPBB')) 16 | { 17 | exit; 18 | } 19 | 20 | if (empty($lang) || !is_array($lang)) 21 | { 22 | $lang = array(); 23 | } 24 | 25 | $lang = array_merge($lang, array( 26 | 'LIGHTBOX_SETTINGS' => 'إعدادات تصغير الصور Lightbox', 27 | 'LIGHTBOX_MAX_WIDTH' => 'الحد الأقصى لعرض الصورة', 28 | 'LIGHTBOX_MAX_WIDTH_EXPLAIN' => 'سيتم تصغير الصور التي تتجاوز هذه القيمة ويمكن تكبيرها بإستخدام تقنية النافذة المضيئة Lightbox. القيمة صفر يعني تعطيل هذا الخيار.', 29 | 'LIGHTBOX_MAX_WIDTH_APPEND' => 'التوصية تعتمد على إعدادات الصورة المُرفقة : %spx', 30 | 'LIGHTBOX_MAX_HEIGHT' => 'الحد الأقصى لارتفاع الصورة', 31 | 'LIGHTBOX_MAX_HEIGHT_EXPLAIN' => 'سيتم تصغير الصور التي تتجاوز هذه القيمة ويمكن تكبيرها بإستخدام تقنية النافذة المضيئة Lightbox. القيمة صفر تعني تعطيل هذا الخيار.', 32 | 'LIGHTBOX_ALL_IMAGES' => 'التطبيق على جميع الصور ', 33 | 'LIGHTBOX_ALL_IMAGES_EXPLAIN' => 'عند اختيارك “نعم”, سيكون بالامكان فتح جميع صور المشاركات بواسطة تقنية النافذة المضيئة Lightbox حتى إذا لم يتم تصغير حجمها.', 34 | 'LIGHTBOX_GALLERY' => 'السماح بالتنقل بين الصور', 35 | 'LIGHTBOX_GALLERY_EXPLAIN' => 'السماح بسهولة التنقل بين جميع الصور المُصغرة في الصفحة بإستخدام تقنية النافذة المضيئة.', 36 | 'LIGHTBOX_GALLERY_ALL' => 'جميع الصور المُصغرة في الصفحة', 37 | 'LIGHTBOX_GALLERY_POSTS' => 'جميع الصور المُصغرة بكل مشاركة', 38 | 'LIGHTBOX_SIGNATURES' => 'تصغير صور التواقيع', 39 | 'LIGHTBOX_SIGNATURES_EXPLAIN' => 'السماح بتصغير الصور الموجودة في تواقيع الأعضاء.', 40 | 'LIGHTBOX_IMG_TITLES' => 'إظهار أسماء الصور', 41 | 'LIGHTBOX_IMG_TITLES_EXPLAIN' => 'سيتم عرض أسماء الصور كعنوان في خانة التفاصيل للصورة.', 42 | )); 43 | -------------------------------------------------------------------------------- /language/cs/common.php: -------------------------------------------------------------------------------- 1 | 'Obrázek %1 z %2', 27 | )); 28 | -------------------------------------------------------------------------------- /language/cs/lightbox.php: -------------------------------------------------------------------------------- 1 | 'Lightbox prohlížení obrázků', 27 | 'LIGHTBOX_MAX_WIDTH' => 'Maximální šířka obrázku v pixelech', 28 | 'LIGHTBOX_MAX_WIDTH_EXPLAIN' => 'Obrázky, které překročí tento limit šířky budou zmenšeny. Zvětšeny budou moci být pomocí lightbox efektu. Nastavením této hodnoty na 0 vypnete funkci lightbox prohlížení obrázků podle šířky.', 29 | 'LIGHTBOX_MAX_WIDTH_APPEND' => 'Doporučení založené na nastavení obrázkových příloh: %s px', 30 | 'LIGHTBOX_MAX_HEIGHT' => 'Maximální výška obrazu v pixelech', 31 | 'LIGHTBOX_MAX_HEIGHT_EXPLAIN' => 'Obrázky, které překročí tento limit výšky budou zmenšeny. Zvětšeny budou moci být pomocí lightbox efektu. Nastavením této hodnoty na 0 vypnete funkci lightbox prohlížení obrázků podle výšky.', 32 | 'LIGHTBOX_ALL_IMAGES' => 'Include all images in Lightbox effect', 33 | 'LIGHTBOX_ALL_IMAGES_EXPLAIN' => 'With this setting enabled, all posted images can be opened in the Lightbox effect even if they are not being resized.', 34 | 'LIGHTBOX_GALLERY' => 'Povolit režim galerie', 35 | 'LIGHTBOX_GALLERY_EXPLAIN' => 'Umožňuje snadnou navigaci mezi obrázky na stránce prostřednictvím lightbox efektu.', 36 | 'LIGHTBOX_GALLERY_ALL' => 'All resized images on page', 37 | 'LIGHTBOX_GALLERY_POSTS' => 'All resized images per post', 38 | 'LIGHTBOX_SIGNATURES' => 'Měnit velikost obrázků v podpisech', 39 | 'LIGHTBOX_SIGNATURES_EXPLAIN' => 'Umožňuje změnu velikosti obrázků v podpisech.', 40 | 'LIGHTBOX_IMG_TITLES' => 'Zobrazovat názvy obrázků', 41 | 'LIGHTBOX_IMG_TITLES_EXPLAIN' => 'Názvy obrázků se zobrazí jako titulek v lightboxu.', 42 | )); 43 | -------------------------------------------------------------------------------- /language/de/common.php: -------------------------------------------------------------------------------- 1 | 'Bild %1 von %2', 27 | )); 28 | -------------------------------------------------------------------------------- /language/de/lightbox.php: -------------------------------------------------------------------------------- 1 | 'Lightbox Bildverkleinerung', 27 | 'LIGHTBOX_MAX_WIDTH' => 'Maximale Bildbreite in pixel', 28 | 'LIGHTBOX_MAX_WIDTH_EXPLAIN' => 'Bilder, die diese Breite überschreiten, werden verkleinert und können durch den Lightbox-Effekt vergrößert werden. Setze diesen Wert auf 0, um die Bildgrößenanpassung nach Breite zu deaktivieren.', 29 | 'LIGHTBOX_MAX_WIDTH_APPEND' => 'Empfehlung basierend auf den Bilderanhang-Einstellungen: %spx', 30 | 'LIGHTBOX_MAX_HEIGHT' => 'Maximale Bildhöhe in pixel', 31 | 'LIGHTBOX_MAX_HEIGHT_EXPLAIN' => 'Bilder, die diese Höhe überschreiten, werden verkleinert und können durch den Lightbox-Effekt vergrößert werden. Setze diesen Wert auf 0, um die Bildgrößenanpassung nach Höhe zu deaktivieren.', 32 | 'LIGHTBOX_ALL_IMAGES' => 'Alle Bilder in den Lightbox-Effekt einschließen', 33 | 'LIGHTBOX_ALL_IMAGES_EXPLAIN' => 'Wenn diese Einstellung aktiviert ist, können alle geposteten Bilder im Lightbox-Effekt geöffnet werden, auch wenn sie nicht in der Größe geändert werden.', 34 | 'LIGHTBOX_GALLERY' => 'Erlaube Galeriemodus', 35 | 'LIGHTBOX_GALLERY_EXPLAIN' => 'Erlaubt einfache Navigation zwischen allen verkleinerten Bildern auf der Seite, unter Benutzung des Lightbox-Effekts.', 36 | 'LIGHTBOX_GALLERY_ALL' => 'Alle skalierten Bilder der Seite', 37 | 'LIGHTBOX_GALLERY_POSTS' => 'Alle skalierten Bilder je Beitrag', 38 | 'LIGHTBOX_SIGNATURES' => 'Verkleinere Signaturbilder', 39 | 'LIGHTBOX_SIGNATURES_EXPLAIN' => 'Erlaubt die Verkleinerung von Bildern, die in Signaturen benutzt werden.', 40 | 'LIGHTBOX_IMG_TITLES' => 'Zeige Bildernamen', 41 | 'LIGHTBOX_IMG_TITLES_EXPLAIN' => 'Bildernamen werden als Beschriftung im Lightbox-Effekt erscheinen.', 42 | )); 43 | -------------------------------------------------------------------------------- /language/en/common.php: -------------------------------------------------------------------------------- 1 | 'Image %1 of %2', 27 | )); 28 | -------------------------------------------------------------------------------- /language/en/lightbox.php: -------------------------------------------------------------------------------- 1 | 'Lightbox image resizing', 27 | 'LIGHTBOX_MAX_WIDTH' => 'Maximum image width', 28 | 'LIGHTBOX_MAX_WIDTH_EXPLAIN' => 'Images that exceed this width will be resized and can be enlarged using the Lightbox effect. Set this value to 0 to disable Lightbox image resizing by width.', 29 | 'LIGHTBOX_MAX_WIDTH_APPEND' => 'Recommendation based on image attachment settings: %spx', 30 | 'LIGHTBOX_MAX_HEIGHT' => 'Maximum image height', 31 | 'LIGHTBOX_MAX_HEIGHT_EXPLAIN' => 'Images that exceed this height will be resized and can be enlarged using the Lightbox effect. Set this value to 0 to disable Lightbox image resizing by height.', 32 | 'LIGHTBOX_ALL_IMAGES' => 'Include all images in Lightbox effect', 33 | 'LIGHTBOX_ALL_IMAGES_EXPLAIN' => 'With this setting enabled, all posted images can be opened in the Lightbox effect even if they are not being resized.', 34 | 'LIGHTBOX_GALLERY' => 'Gallery mode', 35 | 'LIGHTBOX_GALLERY_EXPLAIN' => 'Allows easy navigation between resized images using the Lightbox effect.', 36 | 'LIGHTBOX_GALLERY_ALL' => 'All resized images on page', 37 | 'LIGHTBOX_GALLERY_POSTS' => 'All resized images per post', 38 | 'LIGHTBOX_SIGNATURES' => 'Resize signature images', 39 | 'LIGHTBOX_SIGNATURES_EXPLAIN' => 'Allow images used in signatures to be resized.', 40 | 'LIGHTBOX_IMG_TITLES' => 'Show image file names', 41 | 'LIGHTBOX_IMG_TITLES_EXPLAIN' => 'Image names will appear as a caption in the Lightbox effect.', 42 | )); 43 | -------------------------------------------------------------------------------- /language/es/common.php: -------------------------------------------------------------------------------- 1 | 'Imagen %1 de %2', 27 | )); 28 | -------------------------------------------------------------------------------- /language/es/lightbox.php: -------------------------------------------------------------------------------- 1 | 'Ajustes de Lightbox', 27 | 'LIGHTBOX_MAX_WIDTH' => 'Ancho máximo de imagen en píxeles', 28 | 'LIGHTBOX_MAX_WIDTH_EXPLAIN' => 'Las imágenes que excedan este ancho serán redimensionadas y se pueden ampliar mediante el efecto de Lightbox. Establezca este valor en 0 para desactivar el cambio de tamaño de la imagen por ancho.', 29 | 'LIGHTBOX_MAX_WIDTH_APPEND' => 'Recomendación sobre la base de la configuración de la imagen adjunta: %spx', 30 | 'LIGHTBOX_MAX_HEIGHT' => 'Altura máxima de imagen en píxeles', 31 | 'LIGHTBOX_MAX_HEIGHT_EXPLAIN' => 'Las imágenes que excedan este altura serán redimensionadas y se pueden ampliar mediante el efecto de Lightbox. Establezca este valor en 0 para desactivar el cambio de tamaño de la imagen por altura', 32 | 'LIGHTBOX_ALL_IMAGES' => 'Incluir todas las imágenes con el efecto Lightbox', 33 | 'LIGHTBOX_ALL_IMAGES_EXPLAIN' => 'Con esta configuración habilitada, todas las imágenes publicadas se pueden abrir con el efecto Lightbox incluso si no se les cambia el tamaño.', 34 | 'LIGHTBOX_GALLERY' => 'Permitir el modo de galería', 35 | 'LIGHTBOX_GALLERY_EXPLAIN' => 'Permite una fácil navegación entre todas las imágenes redimensionadas en la página utilizando el efecto de Lightbox.', 36 | 'LIGHTBOX_GALLERY_ALL' => 'Redimensionar todas las imágenes de la página', 37 | 'LIGHTBOX_GALLERY_POSTS' => 'Redimensionar todas las imágenes del mensaje', 38 | 'LIGHTBOX_SIGNATURES' => 'Redimensionar imágenes de las firmas', 39 | 'LIGHTBOX_SIGNATURES_EXPLAIN' => 'Permitir que las imágenes usadas en las firmas seán redimensionadas.', 40 | 'LIGHTBOX_IMG_TITLES' => 'Mostrar los nombres de archivo de las imágenes', 41 | 'LIGHTBOX_IMG_TITLES_EXPLAIN' => 'Nombres de imagen aparecerá en una leyenda en el efecto Lightbox.', 42 | )); 43 | -------------------------------------------------------------------------------- /language/fr/common.php: -------------------------------------------------------------------------------- 1 | 'Image %1 sur %2', 27 | )); 28 | -------------------------------------------------------------------------------- /language/fr/lightbox.php: -------------------------------------------------------------------------------- 1 | 'Paramètres de redimensionnement de la « Lightbox »', 27 | 'LIGHTBOX_MAX_WIDTH' => 'Largeur maximale de l’image en pixel', 28 | 'LIGHTBOX_MAX_WIDTH_EXPLAIN' => 'Permet aux images qui dépassent cette largeur d’être redimensionnées et agrandies en utilisant l’effet « Lightbox ». Définir cette valeur sur 0 désactive le redimensionnement de l’image dans la « Lightbox » suivant sa largeur.', 29 | 'LIGHTBOX_MAX_WIDTH_APPEND' => 'Recommandation en fonction des paramètres des images transférées en pièces jointes : %spx', 30 | 'LIGHTBOX_MAX_HEIGHT' => 'Hauteur maximale de l’image en pixels', 31 | 'LIGHTBOX_MAX_HEIGHT_EXPLAIN' => 'Permet aux images qui dépassent cette hauteur d’être redimensionnées et agrandies en utilisant l’effet « Lightbox ». Définir cette valeur sur 0 désactive le redimensionnement de l’image dans la « Lightbox » suivant sa hauteur.', 32 | 'LIGHTBOX_ALL_IMAGES' => 'Intégrer toutes les images dans la « Lightbox »', 33 | 'LIGHTBOX_ALL_IMAGES_EXPLAIN' => 'Permet à toutes les images publiées d’être affichées au moyen de l’effet « Lightbox » même si elles n’ont pas été redimensionnées.', 34 | 'LIGHTBOX_GALLERY' => 'Utiliser le mode galerie', 35 | 'LIGHTBOX_GALLERY_EXPLAIN' => 'Permet de parcourir les images redimensionnées plus facilement en utilisant l’effet de la « Lightbox ».', 36 | 'LIGHTBOX_GALLERY_ALL' => 'Pour toutes les images redimensionnées sur la page', 37 | 'LIGHTBOX_GALLERY_POSTS' => 'Pour toutes les images redimensionnées par message', 38 | 'LIGHTBOX_SIGNATURES' => 'Redimensionner les images de la signature', 39 | 'LIGHTBOX_SIGNATURES_EXPLAIN' => 'Permet aux images utilisées dans les signatures d’être redimensionnées.', 40 | 'LIGHTBOX_IMG_TITLES' => 'Afficher les noms des fichiers des images', 41 | 'LIGHTBOX_IMG_TITLES_EXPLAIN' => 'Permet d’afficher le nom du fichier en tant que légende dans la « Lightbox ».', 42 | )); 43 | -------------------------------------------------------------------------------- /language/it/common.php: -------------------------------------------------------------------------------- 1 | 'Immagine %1 di %2', 27 | )); 28 | -------------------------------------------------------------------------------- /language/it/lightbox.php: -------------------------------------------------------------------------------- 1 | 'Impostazioni Lightbox', 27 | 'LIGHTBOX_MAX_WIDTH' => 'Larghezza massima immagine in pixel', 28 | 'LIGHTBOX_MAX_WIDTH_EXPLAIN' => 'Le immagini di larghezza superiore a quella specificata saranno ridimensionate e potranno essere ingrandite con l’effetto Lightbox. Impostare il valore a 0 per disattivare il ridimensionamento delle immagini in base all’larghezza.', 29 | 'LIGHTBOX_MAX_WIDTH_APPEND' => 'Raccomandazione sulla base di impostazioni per gli allegati di immagini: %spx', 30 | 'LIGHTBOX_MAX_HEIGHT' => 'Altezza massima immagine in pixel', 31 | 'LIGHTBOX_MAX_HEIGHT_EXPLAIN' => 'Le immagini di altezza superiore a quella specificata saranno ridimensionate e potranno essere ingrandite con l’effetto Lightbox. Impostare il valore a 0 per disattivare il ridimensionamento delle immagini in base all’altezza.', 32 | 'LIGHTBOX_ALL_IMAGES' => 'Includi tutte le immagini nell’effetto Lightbox', 33 | 'LIGHTBOX_ALL_IMAGES_EXPLAIN' => 'Con questa impostazione attivata, tutte le immagini pubblicate possono essere aperte con l’effetto Lightbox anche se non vengono ridimensionate.', 34 | 'LIGHTBOX_GALLERY' => 'Attiva modalità galleria', 35 | 'LIGHTBOX_GALLERY_EXPLAIN' => 'Permette la navigazione fra immagini ridimensionate nella stessa pagina con l’effetto Lightbox.', 36 | 'LIGHTBOX_GALLERY_ALL' => 'Tutte le immagini ridimensionate nellaa pagina', 37 | 'LIGHTBOX_GALLERY_POSTS' => 'Tutte le immagini ridimensionate per post', 38 | 'LIGHTBOX_SIGNATURES' => 'Ridimensiona immagini in firma', 39 | 'LIGHTBOX_SIGNATURES_EXPLAIN' => 'Permette il ridimensionamento delle immagini inserite in firma', 40 | 'LIGHTBOX_IMG_TITLES' => 'Mostra nomi file immagine', 41 | 'LIGHTBOX_IMG_TITLES_EXPLAIN' => 'I nomi delle immagini compariranno in una didascalia con l’effetto Lightbox.', 42 | )); 43 | -------------------------------------------------------------------------------- /language/ja/common.php: -------------------------------------------------------------------------------- 1 | '%2 の画像 %1', 27 | )); 28 | -------------------------------------------------------------------------------- /language/ja/lightbox.php: -------------------------------------------------------------------------------- 1 | 'Lightbox 設定', 27 | 'LIGHTBOX_MAX_WIDTH' => '最大画像幅(ピクセル)', 28 | 'LIGHTBOX_MAX_WIDTH_EXPLAIN' => 'この幅を超える画像はリサイズされLightboxエフェクトを使用して引き伸ばすことが出来ます。この値を0に設定すると画像のリサイズを無効にします。', 29 | 'LIGHTBOX_MAX_WIDTH_APPEND' => '添付ファイルの設定に基づいて勧告: %spx', 30 | 'LIGHTBOX_MAX_HEIGHT' => 'Maximum image height', 31 | 'LIGHTBOX_MAX_HEIGHT_EXPLAIN' => 'Images that exceed this height will be resized and can be enlarged using the Lightbox effect. Set this value to 0 to disable Lightbox image resizing by height.', 32 | 'LIGHTBOX_ALL_IMAGES' => 'Include all images in Lightbox effect', 33 | 'LIGHTBOX_ALL_IMAGES_EXPLAIN' => 'With this setting enabled, all posted images can be opened in the Lightbox effect even if they are not being resized.', 34 | 'LIGHTBOX_GALLERY' => 'ギャラリーモードを許可', 35 | 'LIGHTBOX_GALLERY_EXPLAIN' => 'Lightboxエフェクトを使用するページの全てのリサイズされた画像の間で簡単なナビゲーションを許可します。', 36 | 'LIGHTBOX_GALLERY_ALL' => 'All resized images on page', 37 | 'LIGHTBOX_GALLERY_POSTS' => 'All resized images per post', 38 | 'LIGHTBOX_SIGNATURES' => '署名画像のリサイズ', 39 | 'LIGHTBOX_SIGNATURES_EXPLAIN' => '署名でリサイズされた画像の使用を許可します。', 40 | 'LIGHTBOX_IMG_TITLES' => '画像のファイル名を表示', 41 | 'LIGHTBOX_IMG_TITLES_EXPLAIN' => '画像名はLightboxエフェクトの見出しとして表示されます。', 42 | )); 43 | -------------------------------------------------------------------------------- /language/nl/common.php: -------------------------------------------------------------------------------- 1 | 6 | * 7 | * @copyright (c) 2015 Matt Friedman 8 | * @license GNU General Public License, version 2 (GPL-2.0) 9 | * 10 | */ 11 | 12 | /** 13 | * DO NOT CHANGE 14 | */ 15 | if (!defined('IN_PHPBB')) 16 | { 17 | exit; 18 | } 19 | 20 | if (empty($lang) || !is_array($lang)) 21 | { 22 | $lang = array(); 23 | } 24 | 25 | $lang = array_merge($lang, array( 26 | 'LIGHTBOX_GALLERY_LABEL' => 'Afbeelding %1 van %2', 27 | )); 28 | -------------------------------------------------------------------------------- /language/nl/lightbox.php: -------------------------------------------------------------------------------- 1 | 'Lightbox instellingen', 27 | 'LIGHTBOX_MAX_WIDTH' => 'Maximale afbeeldingsbreedte in pixels', 28 | 'LIGHTBOX_MAX_WIDTH_EXPLAIN' => 'De afbeeldingen die deze breedte overschrijden worden herschaald en kunnen vergroot worden door gebruik te maken van het Lightbox effect. Zet deze waarde op 0 om het herschalen van afbeeldingen op breedte uit te schakelen.', 29 | 'LIGHTBOX_MAX_WIDTH_APPEND' => 'Aanbeveling op basis van afbeelding bijlagen: %spx', 30 | 'LIGHTBOX_MAX_HEIGHT' => 'Maximale beeldhoogte in pixels', 31 | 'LIGHTBOX_MAX_HEIGHT_EXPLAIN' => 'De afbeeldingen die deze hoogte overschrijden worden herschaald en kunnen vergroot worden door gebruik te maken van het Lightbox effect. Zet deze waarde op 0 om het herschalen van afbeeldingen op hoogte uit te schakelen.', 32 | 'LIGHTBOX_ALL_IMAGES' => 'Include all images in Lightbox effect', 33 | 'LIGHTBOX_ALL_IMAGES_EXPLAIN' => 'With this setting enabled, all posted images can be opened in the Lightbox effect even if they are not being resized.', 34 | 'LIGHTBOX_GALLERY' => 'Galerij mode toestaan', 35 | 'LIGHTBOX_GALLERY_EXPLAIN' => 'Hiermee kan makkelijk genavigeerd worden tussen alle herschaalde afbeeldingen op de pagina door gebruik te maken van het Lightbox effect.', 36 | 'LIGHTBOX_GALLERY_ALL' => 'All resized images on page', 37 | 'LIGHTBOX_GALLERY_POSTS' => 'All resized images per post', 38 | 'LIGHTBOX_SIGNATURES' => 'Herschaal afbeeldingen in onderschrift', 39 | 'LIGHTBOX_SIGNATURES_EXPLAIN' => 'De afbeeldingen die in het onderschrift worden gebruikt herschalen.', 40 | 'LIGHTBOX_IMG_TITLES' => 'Bestandsnamen weergeven', 41 | 'LIGHTBOX_IMG_TITLES_EXPLAIN' => 'De afbeeldingsnaam zal als bijschrift worden weergegeven in het Lightbox effect.', 42 | )); 43 | -------------------------------------------------------------------------------- /language/pl/common.php: -------------------------------------------------------------------------------- 1 | 'Obraz %1 z %2', 27 | )); 28 | -------------------------------------------------------------------------------- /language/pl/lightbox.php: -------------------------------------------------------------------------------- 1 | 'Ustawienia Lightbox', 27 | 'LIGHTBOX_MAX_WIDTH' => 'Maksymalna szerokość obrazka w pikselach', 28 | 'LIGHTBOX_MAX_WIDTH_EXPLAIN' => 'Obrazki, które przekraczają podaną szerokość, zostaną zmniejszone, a powiększenie będzie można uzyskać przez efekt Lightbox.
Ustaw wartość na 0, aby wyłączyć zmianę rozmiaru obrazu według szerokości.', 29 | 'LIGHTBOX_MAX_WIDTH_APPEND' => 'Zalecenie podstawie ustawień załączanego obrazka: %spx', 30 | 'LIGHTBOX_MAX_HEIGHT' => 'Maksymalna wysokość obrazu w pikselach', 31 | 'LIGHTBOX_MAX_HEIGHT_EXPLAIN' => 'Obrazki, które przekraczają podaną wysokość, zostaną zmniejszone, a powiększenie będzie można uzyskać przez efekt Lightbox.
Ustaw wartość na 0, aby wyłączyć zmianę rozmiaru obrazu według wysokości.', 32 | 'LIGHTBOX_ALL_IMAGES' => 'Include all images in Lightbox effect', 33 | 'LIGHTBOX_ALL_IMAGES_EXPLAIN' => 'With this setting enabled, all posted images can be opened in the Lightbox effect even if they are not being resized.', 34 | 'LIGHTBOX_GALLERY' => 'Zezwól na tryb galerii', 35 | 'LIGHTBOX_GALLERY_EXPLAIN' => 'Pozwala na łatwą nawigację pomiędzy wszystkimi obrazkami, które wymagają użycia efektu Lightbox.', 36 | 'LIGHTBOX_GALLERY_ALL' => 'All resized images on page', 37 | 'LIGHTBOX_GALLERY_POSTS' => 'All resized images per post', 38 | 'LIGHTBOX_SIGNATURES' => 'Zmiana rozmiaru obrazków w sygnaturach', 39 | 'LIGHTBOX_SIGNATURES_EXPLAIN' => 'Wykorzustuje Lightbox do zmiany rozmiaru obrazków w sygnaturach.', 40 | 'LIGHTBOX_IMG_TITLES' => 'Pokaż nazwy obrazków', 41 | 'LIGHTBOX_IMG_TITLES_EXPLAIN' => 'Wyświetla w nagłówku nazwy obrazków.', 42 | )); 43 | -------------------------------------------------------------------------------- /language/pt_br/common.php: -------------------------------------------------------------------------------- 1 | 'Imagem %1 de %2', 27 | )); 28 | -------------------------------------------------------------------------------- /language/pt_br/lightbox.php: -------------------------------------------------------------------------------- 1 | 'Redimensionamento de imagem Lightbox', 27 | 'LIGHTBOX_MAX_WIDTH' => 'Largura máxima da imagem em pixels', 28 | 'LIGHTBOX_MAX_WIDTH_EXPLAIN' => 'Imagens que excederem este tamanho serão reduzidas e poderão ser vistas em tamanho maior usando o efeito Lightbox. Deixando em 0 desabilita o redimensionamento.', 29 | 'LIGHTBOX_MAX_WIDTH_APPEND' => 'Recomendação com base nas configurações de anexo da imagem: %spx', 30 | 'LIGHTBOX_MAX_HEIGHT' => 'Maximum image height', 31 | 'LIGHTBOX_MAX_HEIGHT_EXPLAIN' => 'Images that exceed this height will be resized and can be enlarged using the Lightbox effect. Set this value to 0 to disable Lightbox image resizing by height.', 32 | 'LIGHTBOX_ALL_IMAGES' => 'Include all images in Lightbox effect', 33 | 'LIGHTBOX_ALL_IMAGES_EXPLAIN' => 'With this setting enabled, all posted images can be opened in the Lightbox effect even if they are not being resized.', 34 | 'LIGHTBOX_GALLERY' => 'Permite modo galeria', 35 | 'LIGHTBOX_GALLERY_EXPLAIN' => 'Permite fácil navegação entre todas as imagens redimensionadas da página usando o efeito Lightbox.', 36 | 'LIGHTBOX_GALLERY_ALL' => 'Todas as imagens redimensionadas na página', 37 | 'LIGHTBOX_GALLERY_POSTS' => 'Todas as imagens redimensionadas por post', 38 | 'LIGHTBOX_SIGNATURES' => 'Redimensiona imagens na assinatura', 39 | 'LIGHTBOX_SIGNATURES_EXPLAIN' => 'Permite que imagens usadas em assinaturas sejam redimensionadas.', 40 | 'LIGHTBOX_IMG_TITLES' => 'Mostra o nome de arquivo da imagem', 41 | 'LIGHTBOX_IMG_TITLES_EXPLAIN' => 'Os nomes das imagens aparecerão como rodapé no efeito Lightbox.', 42 | )); 43 | -------------------------------------------------------------------------------- /language/ru/common.php: -------------------------------------------------------------------------------- 1 | 'Изображение %1 из %2', 30 | )); 31 | -------------------------------------------------------------------------------- /language/ru/lightbox.php: -------------------------------------------------------------------------------- 1 | 'Настройки Lightbox', 30 | 'LIGHTBOX_MAX_WIDTH' => 'Максимальная ширина изображения в пикселях', 31 | 'LIGHTBOX_MAX_WIDTH_EXPLAIN' => 'Изображения, которые выходят за указанный размер будут уменьшены, а полная версия будет доступна по щелчку. Чтобы отключить эту функцию, поставьте 0', 32 | 'LIGHTBOX_MAX_WIDTH_APPEND' => 'Рекомендация основана на настройках вложения изображения: %sпикс.', 33 | 'LIGHTBOX_MAX_HEIGHT' => 'Maximum image height', 34 | 'LIGHTBOX_MAX_HEIGHT_EXPLAIN' => 'Images that exceed this height will be resized and can be enlarged using the Lightbox effect. Set this value to 0 to disable Lightbox image resizing by height.', 35 | 'LIGHTBOX_ALL_IMAGES' => 'Include all images in Lightbox effect', 36 | 'LIGHTBOX_ALL_IMAGES_EXPLAIN' => 'With this setting enabled, all posted images can be opened in the Lightbox effect even if they are not being resized.', 37 | 'LIGHTBOX_GALLERY' => 'Включить режим галереи', 38 | 'LIGHTBOX_GALLERY_EXPLAIN' => 'Включает простую навигацию по уменьшенным избражениям с использованием Lightbox-эффекта.', 39 | 'LIGHTBOX_GALLERY_ALL' => 'All resized images on page', 40 | 'LIGHTBOX_GALLERY_POSTS' => 'All resized images per post', 41 | 'LIGHTBOX_SIGNATURES' => 'Уменьшать изображения в подписях', 42 | 'LIGHTBOX_SIGNATURES_EXPLAIN' => 'Если опция включена, то изображения в подписях пользователей так же будут уменьшены средствами LightBox.', 43 | 'LIGHTBOX_IMG_TITLES' => 'Показывать имена файлов изображений', 44 | 'LIGHTBOX_IMG_TITLES_EXPLAIN' => 'Названия файлов изображений будут отображены в качестве заголовков в Lightbox.', 45 | )); 46 | -------------------------------------------------------------------------------- /language/sk/common.php: -------------------------------------------------------------------------------- 1 | 'Obrázok %1 z %2', 27 | )); 28 | -------------------------------------------------------------------------------- /language/sk/lightbox.php: -------------------------------------------------------------------------------- 1 | 'Lightbox prehliadač obrázkov', 27 | 'LIGHTBOX_MAX_WIDTH' => 'Maximálna šírka obrázku v pixeloch', 28 | 'LIGHTBOX_MAX_WIDTH_EXPLAIN' => 'Obrázky, ktoré prekročia tento limit šírky budú zmenšené. Zväčšené budú môcť byť pomocou lightbox efektu. Nastavením tejto hodnoty na 0 vypnete funkciu lightbox prezeranie obrázkov podľa šírky.', 29 | 'LIGHTBOX_MAX_WIDTH_APPEND' => 'Odporúčania založené na nastavenie obrázkových príloh: %s px', 30 | 'LIGHTBOX_MAX_HEIGHT' => 'Maximálna výška obrázka v pixeloch', 31 | 'LIGHTBOX_MAX_HEIGHT_EXPLAIN' => 'Obrázky, ktoré prekročia tento limit výšku budú zmenšené. Zväčšené budú môcť byť pomocou lightbox efektu. Nastavením tejto hodnoty na 0 vypnete funkciu lightbox prezeranie obrázkov podľa výšky', 32 | 'LIGHTBOX_ALL_IMAGES' => 'Include all images in Lightbox effect', 33 | 'LIGHTBOX_ALL_IMAGES_EXPLAIN' => 'With this setting enabled, all posted images can be opened in the Lightbox effect even if they are not being resized.', 34 | 'LIGHTBOX_GALLERY' => 'Povoliť režim galérie', 35 | 'LIGHTBOX_GALLERY_EXPLAIN' => 'Umožňuje jednoduchú navigáciu medzi obrázkami na stránke prostredníctvom lightbox efektu.', 36 | 'LIGHTBOX_GALLERY_ALL' => 'Všetky veľkosti obrázkov na stránke', 37 | 'LIGHTBOX_GALLERY_POSTS' => 'Všetky veľkosti obrázkov v príspevku', 38 | 'LIGHTBOX_SIGNATURES' => 'Meniť veľkosť obrázkov v podpisoch', 39 | 'LIGHTBOX_SIGNATURES_EXPLAIN' => 'Umožňuje zmenu veľkosti obrázkov v podpisoch.', 40 | 'LIGHTBOX_IMG_TITLES' => 'Zobrazovať názvy obrázkov', 41 | 'LIGHTBOX_IMG_TITLES_EXPLAIN' => 'Názvy obrázkov sa zobrazí ako titulok v lightboxe.', 42 | )); 43 | -------------------------------------------------------------------------------- /language/sl/common.php: -------------------------------------------------------------------------------- 1 | 'Slika %1 od %2', 27 | )); 28 | -------------------------------------------------------------------------------- /language/sl/lightbox.php: -------------------------------------------------------------------------------- 1 | 'Lightbox spreminjanje velikosti slike', 27 | 'LIGHTBOX_MAX_WIDTH' => 'Največja širina slike', 28 | 'LIGHTBOX_MAX_WIDTH_EXPLAIN' => 'Slike, ki presegajo to širino, bodo spremenjene velikosti in jih je mogoče povečati z učinkom Lightbox. To vrednost nastavite na 0, če želite onemogočiti spreminjanje velikosti slike Lightbox po širini.', 29 | 'LIGHTBOX_MAX_WIDTH_APPEND' => 'Priporočilo, ki temelji na nastavitvah priloge slike: %spx', 30 | 'LIGHTBOX_MAX_HEIGHT' => 'Največja višina slike', 31 | 'LIGHTBOX_MAX_HEIGHT_EXPLAIN' => 'Slike, ki presegajo to višino, bodo spremenjene velikosti in jih lahko povečate z učinkom Lightbox. To vrednost nastavite na 0, če želite onemogočiti spreminjanje velikosti slike Lightbox po višini.', 32 | 'LIGHTBOX_ALL_IMAGES' => 'V učinek Lightbox vključi vse slike', 33 | 'LIGHTBOX_ALL_IMAGES_EXPLAIN' => 'Če je omogočena ta nastavitev, se lahko vse objavljene slike odprejo v učinku Lightbox, tudi če jih ne spremenite v velikost.', 34 | 'LIGHTBOX_GALLERY' => 'Način galerije', 35 | 'LIGHTBOX_GALLERY_EXPLAIN' => 'Omogoča enostavno navigacijo med spremenjenimi slikami z učinkom Lightbox.', 36 | 'LIGHTBOX_GALLERY_ALL' => 'Vse spremenjene slike na strani', 37 | 'LIGHTBOX_GALLERY_POSTS' => 'se spremenjene slike na objavo', 38 | 'LIGHTBOX_SIGNATURES' => 'Spremeni velikost slik v podpisu', 39 | 'LIGHTBOX_SIGNATURES_EXPLAIN' => 'Slikam v podpisu dovoli spremembo velikosti.', 40 | 'LIGHTBOX_IMG_TITLES' => 'Prikaži imena slikovnih datotek', 41 | 'LIGHTBOX_IMG_TITLES_EXPLAIN' => 'Imena slik bodo prikazana kot napis v učinku Lightbox.', 42 | )); 43 | -------------------------------------------------------------------------------- /language/sv/common.php: -------------------------------------------------------------------------------- 1 | 'Bild %1 av %2', 27 | )); 28 | -------------------------------------------------------------------------------- /language/sv/lightbox.php: -------------------------------------------------------------------------------- 1 | 'Lightbox inställningar', 27 | 'LIGHTBOX_MAX_WIDTH' => 'Maximal bredd i pixel', 28 | 'LIGHTBOX_MAX_WIDTH_EXPLAIN' => 'Bilder som överskrider denna bredd kommer att förminskas och kan sedan förstoras med hjälp av Lightbox-effekten. Ställ in till 0 för att deaktivera bildförminskningen efter bredd.', 29 | 'LIGHTBOX_MAX_WIDTH_APPEND' => 'Rekommendation baserad på bildbilagor: %spx', 30 | 'LIGHTBOX_MAX_HEIGHT' => 'Maximal bildhöjd i pixlar', 31 | 'LIGHTBOX_MAX_HEIGHT_EXPLAIN' => 'Bilder som överskrider denna bildhöjd kommer att förminskas och kan sedan förstoras med hjälp av Lightbox-effekten. Ställ in till 0 för att deaktivera bildförminskningen efter höjd.', 32 | 'LIGHTBOX_ALL_IMAGES' => 'Include all images in Lightbox effect', 33 | 'LIGHTBOX_ALL_IMAGES_EXPLAIN' => 'With this setting enabled, all posted images can be opened in the Lightbox effect even if they are not being resized.', 34 | 'LIGHTBOX_GALLERY' => 'Tillåt galleriläge', 35 | 'LIGHTBOX_GALLERY_EXPLAIN' => 'Gör det enkelt att navigera mellan alla förminskade bilder på sidan.', 36 | 'LIGHTBOX_GALLERY_ALL' => 'All resized images on page', 37 | 'LIGHTBOX_GALLERY_POSTS' => 'All resized images per post', 38 | 'LIGHTBOX_SIGNATURES' => 'Förminska signaturbilder', 39 | 'LIGHTBOX_SIGNATURES_EXPLAIN' => 'Tillåt att bilder som används i signaturer blir föminskande.', 40 | 'LIGHTBOX_IMG_TITLES' => 'Visa bildernas filnamn', 41 | 'LIGHTBOX_IMG_TITLES_EXPLAIN' => 'Bildernas filnamn visas i Lightbox-effekten.', 42 | )); 43 | -------------------------------------------------------------------------------- /language/tr/common.php: -------------------------------------------------------------------------------- 1 | 'Resim %1 / %2', 27 | )); 28 | -------------------------------------------------------------------------------- /language/tr/lightbox.php: -------------------------------------------------------------------------------- 1 | 'Lightbox görsel yeniden boyutlandırma', 27 | 'LIGHTBOX_MAX_WIDTH' => 'Maksimum görsel genişliği', 28 | 'LIGHTBOX_MAX_WIDTH_EXPLAIN' => 'Bu genişliği geçen görseller yeniden boyutlandırılacak ve Lightbox efekti kullanılarak genişletilebilecek. Genişliğe göre Lightbox görsel yeniden boyutlandırmasını kapatmak için bu değeri 0 girin', 29 | 'LIGHTBOX_MAX_WIDTH_APPEND' => 'Görsel eklenti ayarlarına dayalı öneri: %spx', 30 | 'LIGHTBOX_MAX_HEIGHT' => 'Maksimum görsel yüksekliği', 31 | 'LIGHTBOX_MAX_HEIGHT_EXPLAIN' => 'Bu yüksekliği geçen görseller yeniden boyutlandırılacak ve Lightbox efekti kullanılarak genişletilebilecek. Yüksekliğe göre Lightbox görsel yeniden boyutlandırmasını kapatmak için bu değeri 0 girin.', 32 | 'LIGHTBOX_ALL_IMAGES' => 'Tüm görselleri Lightbox efektine dahil et', 33 | 'LIGHTBOX_ALL_IMAGES_EXPLAIN' => 'Bu ayar etkinleştirildiğinde, gönderilen tüm görseller yeniden boyutlandırılmasa bile Lightbox efektinde açılabilir.', 34 | 'LIGHTBOX_GALLERY' => 'Galeri modu', 35 | 'LIGHTBOX_GALLERY_EXPLAIN' => 'Lightbox efekti kullanılarak yeniden boyutlandrılmış görseller arasında kolay gezintiye izin verir.', 36 | 'LIGHTBOX_GALLERY_ALL' => 'Sayfadaki tüm yeniden boyutlandırılmış görseller', 37 | 'LIGHTBOX_GALLERY_POSTS' => 'Her gönderideki tüm yeniden boyutlandırılmış görseller', 38 | 'LIGHTBOX_SIGNATURES' => 'İmza görsellerini yeniden boyutlandır', 39 | 'LIGHTBOX_SIGNATURES_EXPLAIN' => 'İmzalarda kullanılan görsellerin yeniden boyutlandırılmasına izin ver.', 40 | 'LIGHTBOX_IMG_TITLES' => 'Görsel dosya isimlerini göster', 41 | 'LIGHTBOX_IMG_TITLES_EXPLAIN' => 'Görsel isimleri Lightbox efektinde başlık olarak görünecek.', 42 | )); 43 | -------------------------------------------------------------------------------- /language/vi/common.php: -------------------------------------------------------------------------------- 1 | 6 | * 7 | * @copyright (c) 2015 Matt Friedman 8 | * @license GNU General Public License, version 2 (GPL-2.0) 9 | * 10 | */ 11 | 12 | /** 13 | * DO NOT CHANGE 14 | */ 15 | if (!defined('IN_PHPBB')) 16 | { 17 | exit; 18 | } 19 | 20 | if (empty($lang) || !is_array($lang)) 21 | { 22 | $lang = array(); 23 | } 24 | 25 | $lang = array_merge($lang, array( 26 | 'LIGHTBOX_GALLERY_LABEL' => 'Hình ảnh %1 trên %2', 27 | )); 28 | -------------------------------------------------------------------------------- /language/vi/lightbox.php: -------------------------------------------------------------------------------- 1 | 6 | * 7 | * @copyright (c) 2015 Matt Friedman 8 | * @license GNU General Public License, version 2 (GPL-2.0) 9 | * 10 | */ 11 | 12 | /** 13 | * DO NOT CHANGE 14 | */ 15 | if (!defined('IN_PHPBB')) 16 | { 17 | exit; 18 | } 19 | 20 | if (empty($lang) || !is_array($lang)) 21 | { 22 | $lang = array(); 23 | } 24 | 25 | $lang = array_merge($lang, array( 26 | 'LIGHTBOX_SETTINGS' => 'Lightbox image resizing', 27 | 'LIGHTBOX_MAX_WIDTH' => 'Bề rộng tối đa của ảnh (px)', 28 | 'LIGHTBOX_MAX_WIDTH_EXPLAIN' => 'Hình ảnh vượt quá chiều rộng này sẽ được thay đổi kích thước và có thể được mở rộng bằng hiệu ứng Hộp đèn. Đặt giá trị này là 0 để vô hiệu hóa việc thay đổi kích thước hình ảnh của Lightbox.', 29 | 'LIGHTBOX_MAX_WIDTH_APPEND' => 'Dựa trên cài đặt ảnh đính kèm: %spx', 30 | 'LIGHTBOX_MAX_HEIGHT' => 'Maximum image height', 31 | 'LIGHTBOX_MAX_HEIGHT_EXPLAIN' => 'Images that exceed this height will be resized and can be enlarged using the Lightbox effect. Set this value to 0 to disable Lightbox image resizing by height.', 32 | 'LIGHTBOX_ALL_IMAGES' => 'Include all images in Lightbox effect', 33 | 'LIGHTBOX_ALL_IMAGES_EXPLAIN' => 'With this setting enabled, all posted images can be opened in the Lightbox effect even if they are not being resized.', 34 | 'LIGHTBOX_GALLERY' => 'Bật chế độ Gallery', 35 | 'LIGHTBOX_GALLERY_EXPLAIN' => 'Dễ dàng chuyển ảnh qua lại trên trang nhờ sử dụng Lightbox effect.', 36 | 'LIGHTBOX_GALLERY_ALL' => 'All resized images on page', 37 | 'LIGHTBOX_GALLERY_POSTS' => 'All resized images per post', 38 | 'LIGHTBOX_SIGNATURES' => 'Bật thu nhỏ hình ảnh trong chữ ký', 39 | 'LIGHTBOX_SIGNATURES_EXPLAIN' => 'Thu nhỏ hình ảnh trong chữ ký.', 40 | 'LIGHTBOX_IMG_TITLES' => 'Hiển thị tên file ảnh', 41 | 'LIGHTBOX_IMG_TITLES_EXPLAIN' => 'Tên file ảnh được hiển thị là captions khi phóng to ảnh.', 42 | )); 43 | -------------------------------------------------------------------------------- /license.txt: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 2, June 1991 3 | 4 | Copyright (C) 1989, 1991 Free Software Foundation, Inc., 5 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 6 | Everyone is permitted to copy and distribute verbatim copies 7 | of this license document, but changing it is not allowed. 8 | 9 | Preamble 10 | 11 | The licenses for most software are designed to take away your 12 | freedom to share and change it. By contrast, the GNU General Public 13 | License is intended to guarantee your freedom to share and change free 14 | software--to make sure the software is free for all its users. This 15 | General Public License applies to most of the Free Software 16 | Foundation's software and to any other program whose authors commit to 17 | using it. (Some other Free Software Foundation software is covered by 18 | the GNU Lesser General Public License instead.) You can apply it to 19 | your programs, too. 20 | 21 | When we speak of free software, we are referring to freedom, not 22 | price. Our General Public Licenses are designed to make sure that you 23 | have the freedom to distribute copies of free software (and charge for 24 | this service if you wish), that you receive source code or can get it 25 | if you want it, that you can change the software or use pieces of it 26 | in new free programs; and that you know you can do these things. 27 | 28 | To protect your rights, we need to make restrictions that forbid 29 | anyone to deny you these rights or to ask you to surrender the rights. 30 | These restrictions translate to certain responsibilities for you if you 31 | distribute copies of the software, or if you modify it. 32 | 33 | For example, if you distribute copies of such a program, whether 34 | gratis or for a fee, you must give the recipients all the rights that 35 | you have. You must make sure that they, too, receive or can get the 36 | source code. And you must show them these terms so they know their 37 | rights. 38 | 39 | We protect your rights with two steps: (1) copyright the software, and 40 | (2) offer you this license which gives you legal permission to copy, 41 | distribute and/or modify the software. 42 | 43 | Also, for each author's protection and ours, we want to make certain 44 | that everyone understands that there is no warranty for this free 45 | software. If the software is modified by someone else and passed on, we 46 | want its recipients to know that what they have is not the original, so 47 | that any problems introduced by others will not reflect on the original 48 | authors' reputations. 49 | 50 | Finally, any free program is threatened constantly by software 51 | patents. We wish to avoid the danger that redistributors of a free 52 | program will individually obtain patent licenses, in effect making the 53 | program proprietary. To prevent this, we have made it clear that any 54 | patent must be licensed for everyone's free use or not licensed at all. 55 | 56 | The precise terms and conditions for copying, distribution and 57 | modification follow. 58 | 59 | GNU GENERAL PUBLIC LICENSE 60 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 61 | 62 | 0. This License applies to any program or other work which contains 63 | a notice placed by the copyright holder saying it may be distributed 64 | under the terms of this General Public License. The "Program", below, 65 | refers to any such program or work, and a "work based on the Program" 66 | means either the Program or any derivative work under copyright law: 67 | that is to say, a work containing the Program or a portion of it, 68 | either verbatim or with modifications and/or translated into another 69 | language. (Hereinafter, translation is included without limitation in 70 | the term "modification".) Each licensee is addressed as "you". 71 | 72 | Activities other than copying, distribution and modification are not 73 | covered by this License; they are outside its scope. The act of 74 | running the Program is not restricted, and the output from the Program 75 | is covered only if its contents constitute a work based on the 76 | Program (independent of having been made by running the Program). 77 | Whether that is true depends on what the Program does. 78 | 79 | 1. You may copy and distribute verbatim copies of the Program's 80 | source code as you receive it, in any medium, provided that you 81 | conspicuously and appropriately publish on each copy an appropriate 82 | copyright notice and disclaimer of warranty; keep intact all the 83 | notices that refer to this License and to the absence of any warranty; 84 | and give any other recipients of the Program a copy of this License 85 | along with the Program. 86 | 87 | You may charge a fee for the physical act of transferring a copy, and 88 | you may at your option offer warranty protection in exchange for a fee. 89 | 90 | 2. You may modify your copy or copies of the Program or any portion 91 | of it, thus forming a work based on the Program, and copy and 92 | distribute such modifications or work under the terms of Section 1 93 | above, provided that you also meet all of these conditions: 94 | 95 | a) You must cause the modified files to carry prominent notices 96 | stating that you changed the files and the date of any change. 97 | 98 | b) You must cause any work that you distribute or publish, that in 99 | whole or in part contains or is derived from the Program or any 100 | part thereof, to be licensed as a whole at no charge to all third 101 | parties under the terms of this License. 102 | 103 | c) If the modified program normally reads commands interactively 104 | when run, you must cause it, when started running for such 105 | interactive use in the most ordinary way, to print or display an 106 | announcement including an appropriate copyright notice and a 107 | notice that there is no warranty (or else, saying that you provide 108 | a warranty) and that users may redistribute the program under 109 | these conditions, and telling the user how to view a copy of this 110 | License. (Exception: if the Program itself is interactive but 111 | does not normally print such an announcement, your work based on 112 | the Program is not required to print an announcement.) 113 | 114 | These requirements apply to the modified work as a whole. If 115 | identifiable sections of that work are not derived from the Program, 116 | and can be reasonably considered independent and separate works in 117 | themselves, then this License, and its terms, do not apply to those 118 | sections when you distribute them as separate works. But when you 119 | distribute the same sections as part of a whole which is a work based 120 | on the Program, the distribution of the whole must be on the terms of 121 | this License, whose permissions for other licensees extend to the 122 | entire whole, and thus to each and every part regardless of who wrote it. 123 | 124 | Thus, it is not the intent of this section to claim rights or contest 125 | your rights to work written entirely by you; rather, the intent is to 126 | exercise the right to control the distribution of derivative or 127 | collective works based on the Program. 128 | 129 | In addition, mere aggregation of another work not based on the Program 130 | with the Program (or with a work based on the Program) on a volume of 131 | a storage or distribution medium does not bring the other work under 132 | the scope of this License. 133 | 134 | 3. You may copy and distribute the Program (or a work based on it, 135 | under Section 2) in object code or executable form under the terms of 136 | Sections 1 and 2 above provided that you also do one of the following: 137 | 138 | a) Accompany it with the complete corresponding machine-readable 139 | source code, which must be distributed under the terms of Sections 140 | 1 and 2 above on a medium customarily used for software interchange; or, 141 | 142 | b) Accompany it with a written offer, valid for at least three 143 | years, to give any third party, for a charge no more than your 144 | cost of physically performing source distribution, a complete 145 | machine-readable copy of the corresponding source code, to be 146 | distributed under the terms of Sections 1 and 2 above on a medium 147 | customarily used for software interchange; or, 148 | 149 | c) Accompany it with the information you received as to the offer 150 | to distribute corresponding source code. (This alternative is 151 | allowed only for noncommercial distribution and only if you 152 | received the program in object code or executable form with such 153 | an offer, in accord with Subsection b above.) 154 | 155 | The source code for a work means the preferred form of the work for 156 | making modifications to it. For an executable work, complete source 157 | code means all the source code for all modules it contains, plus any 158 | associated interface definition files, plus the scripts used to 159 | control compilation and installation of the executable. However, as a 160 | special exception, the source code distributed need not include 161 | anything that is normally distributed (in either source or binary 162 | form) with the major components (compiler, kernel, and so on) of the 163 | operating system on which the executable runs, unless that component 164 | itself accompanies the executable. 165 | 166 | If distribution of executable or object code is made by offering 167 | access to copy from a designated place, then offering equivalent 168 | access to copy the source code from the same place counts as 169 | distribution of the source code, even though third parties are not 170 | compelled to copy the source along with the object code. 171 | 172 | 4. You may not copy, modify, sublicense, or distribute the Program 173 | except as expressly provided under this License. Any attempt 174 | otherwise to copy, modify, sublicense or distribute the Program is 175 | void, and will automatically terminate your rights under this License. 176 | However, parties who have received copies, or rights, from you under 177 | this License will not have their licenses terminated so long as such 178 | parties remain in full compliance. 179 | 180 | 5. You are not required to accept this License, since you have not 181 | signed it. However, nothing else grants you permission to modify or 182 | distribute the Program or its derivative works. These actions are 183 | prohibited by law if you do not accept this License. Therefore, by 184 | modifying or distributing the Program (or any work based on the 185 | Program), you indicate your acceptance of this License to do so, and 186 | all its terms and conditions for copying, distributing or modifying 187 | the Program or works based on it. 188 | 189 | 6. Each time you redistribute the Program (or any work based on the 190 | Program), the recipient automatically receives a license from the 191 | original licensor to copy, distribute or modify the Program subject to 192 | these terms and conditions. You may not impose any further 193 | restrictions on the recipients' exercise of the rights granted herein. 194 | You are not responsible for enforcing compliance by third parties to 195 | this License. 196 | 197 | 7. If, as a consequence of a court judgment or allegation of patent 198 | infringement or for any other reason (not limited to patent issues), 199 | conditions are imposed on you (whether by court order, agreement or 200 | otherwise) that contradict the conditions of this License, they do not 201 | excuse you from the conditions of this License. If you cannot 202 | distribute so as to satisfy simultaneously your obligations under this 203 | License and any other pertinent obligations, then as a consequence you 204 | may not distribute the Program at all. For example, if a patent 205 | license would not permit royalty-free redistribution of the Program by 206 | all those who receive copies directly or indirectly through you, then 207 | the only way you could satisfy both it and this License would be to 208 | refrain entirely from distribution of the Program. 209 | 210 | If any portion of this section is held invalid or unenforceable under 211 | any particular circumstance, the balance of the section is intended to 212 | apply and the section as a whole is intended to apply in other 213 | circumstances. 214 | 215 | It is not the purpose of this section to induce you to infringe any 216 | patents or other property right claims or to contest validity of any 217 | such claims; this section has the sole purpose of protecting the 218 | integrity of the free software distribution system, which is 219 | implemented by public license practices. Many people have made 220 | generous contributions to the wide range of software distributed 221 | through that system in reliance on consistent application of that 222 | system; it is up to the author/donor to decide if he or she is willing 223 | to distribute software through any other system and a licensee cannot 224 | impose that choice. 225 | 226 | This section is intended to make thoroughly clear what is believed to 227 | be a consequence of the rest of this License. 228 | 229 | 8. If the distribution and/or use of the Program is restricted in 230 | certain countries either by patents or by copyrighted interfaces, the 231 | original copyright holder who places the Program under this License 232 | may add an explicit geographical distribution limitation excluding 233 | those countries, so that distribution is permitted only in or among 234 | countries not thus excluded. In such case, this License incorporates 235 | the limitation as if written in the body of this License. 236 | 237 | 9. The Free Software Foundation may publish revised and/or new versions 238 | of the General Public License from time to time. Such new versions will 239 | be similar in spirit to the present version, but may differ in detail to 240 | address new problems or concerns. 241 | 242 | Each version is given a distinguishing version number. If the Program 243 | specifies a version number of this License which applies to it and "any 244 | later version", you have the option of following the terms and conditions 245 | either of that version or of any later version published by the Free 246 | Software Foundation. If the Program does not specify a version number of 247 | this License, you may choose any version ever published by the Free Software 248 | Foundation. 249 | 250 | 10. If you wish to incorporate parts of the Program into other free 251 | programs whose distribution conditions are different, write to the author 252 | to ask for permission. For software which is copyrighted by the Free 253 | Software Foundation, write to the Free Software Foundation; we sometimes 254 | make exceptions for this. Our decision will be guided by the two goals 255 | of preserving the free status of all derivatives of our free software and 256 | of promoting the sharing and reuse of software generally. 257 | 258 | NO WARRANTY 259 | 260 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 261 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 262 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 263 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 264 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 265 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 266 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE 267 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 268 | REPAIR OR CORRECTION. 269 | 270 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 271 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 272 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 273 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING 274 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED 275 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY 276 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER 277 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 278 | POSSIBILITY OF SUCH DAMAGES. 279 | 280 | END OF TERMS AND CONDITIONS 281 | 282 | How to Apply These Terms to Your New Programs 283 | 284 | If you develop a new program, and you want it to be of the greatest 285 | possible use to the public, the best way to achieve this is to make it 286 | free software which everyone can redistribute and change under these terms. 287 | 288 | To do so, attach the following notices to the program. It is safest 289 | to attach them to the start of each source file to most effectively 290 | convey the exclusion of warranty; and each file should have at least 291 | the "copyright" line and a pointer to where the full notice is found. 292 | 293 | 294 | Copyright (C) 295 | 296 | This program is free software; you can redistribute it and/or modify 297 | it under the terms of the GNU General Public License as published by 298 | the Free Software Foundation; either version 2 of the License, or 299 | (at your option) any later version. 300 | 301 | This program is distributed in the hope that it will be useful, 302 | but WITHOUT ANY WARRANTY; without even the implied warranty of 303 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 304 | GNU General Public License for more details. 305 | 306 | You should have received a copy of the GNU General Public License along 307 | with this program; if not, write to the Free Software Foundation, Inc., 308 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 309 | 310 | Also add information on how to contact you by electronic and paper mail. 311 | 312 | If the program is interactive, make it output a short notice like this 313 | when it starts in an interactive mode: 314 | 315 | Gnomovision version 69, Copyright (C) year name of author 316 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 317 | This is free software, and you are welcome to redistribute it 318 | under certain conditions; type `show c' for details. 319 | 320 | The hypothetical commands `show w' and `show c' should show the appropriate 321 | parts of the General Public License. Of course, the commands you use may 322 | be called something other than `show w' and `show c'; they could even be 323 | mouse-clicks or menu items--whatever suits your program. 324 | 325 | You should also get your employer (if you work as a programmer) or your 326 | school, if any, to sign a "copyright disclaimer" for the program, if 327 | necessary. Here is a sample; alter the names: 328 | 329 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program 330 | `Gnomovision' (which makes passes at compilers) written by James Hacker. 331 | 332 | , 1 April 1989 333 | Ty Coon, President of Vice 334 | 335 | This General Public License does not permit incorporating your program into 336 | proprietary programs. If your program is a subroutine library, you may 337 | consider it more useful to permit linking proprietary applications with the 338 | library. If this is what you want to do, use the GNU Lesser General 339 | Public License instead of this License. 340 | -------------------------------------------------------------------------------- /migrations/m1_add_configs.php: -------------------------------------------------------------------------------- 1 | config['lightbox_max_width']); 18 | } 19 | 20 | public static function depends_on() 21 | { 22 | return array('\phpbb\db\migration\data\v310\gold'); 23 | } 24 | 25 | public function update_data() 26 | { 27 | return array( 28 | array('config.add', array('lightbox_max_width', 0)), 29 | array('config.add', array('lightbox_gallery', 0)), 30 | array('config.add', array('lightbox_signatures', 0)), 31 | ); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /migrations/m2_image_titles.php: -------------------------------------------------------------------------------- 1 | config['lightbox_img_titles']); 18 | } 19 | 20 | public static function depends_on() 21 | { 22 | return array('\vse\lightbox\migrations\m1_add_configs'); 23 | } 24 | 25 | public function update_data() 26 | { 27 | return array( 28 | array('config.add', array('lightbox_img_titles', 0)), 29 | ); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /migrations/m3_add_configs.php: -------------------------------------------------------------------------------- 1 | config->offsetExists('lightbox_max_height'); 18 | } 19 | 20 | public static function depends_on() 21 | { 22 | return array('\vse\lightbox\migrations\m1_add_configs'); 23 | } 24 | 25 | public function update_data() 26 | { 27 | return array( 28 | array('config.add', array('lightbox_max_height', 0)), 29 | array('config.add', array('lightbox_all_images', 0)), 30 | ); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lightbox", 3 | "lockfileVersion": 3, 4 | "requires": true, 5 | "packages": { 6 | "": { 7 | "license": "GPL-2.0", 8 | "dependencies": { 9 | "lightbox2": "^2.11.3" 10 | }, 11 | "devDependencies": { 12 | "copyfiles": "^2.4.1", 13 | "npm-run-all": "^4.1.5" 14 | } 15 | }, 16 | "node_modules/ansi-regex": { 17 | "version": "5.0.1", 18 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 19 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 20 | "dev": true, 21 | "engines": { 22 | "node": ">=8" 23 | } 24 | }, 25 | "node_modules/ansi-styles": { 26 | "version": "3.2.1", 27 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 28 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 29 | "dev": true, 30 | "dependencies": { 31 | "color-convert": "^1.9.0" 32 | }, 33 | "engines": { 34 | "node": ">=4" 35 | } 36 | }, 37 | "node_modules/array-buffer-byte-length": { 38 | "version": "1.0.2", 39 | "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", 40 | "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", 41 | "dev": true, 42 | "dependencies": { 43 | "call-bound": "^1.0.3", 44 | "is-array-buffer": "^3.0.5" 45 | }, 46 | "engines": { 47 | "node": ">= 0.4" 48 | }, 49 | "funding": { 50 | "url": "https://github.com/sponsors/ljharb" 51 | } 52 | }, 53 | "node_modules/arraybuffer.prototype.slice": { 54 | "version": "1.0.4", 55 | "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", 56 | "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", 57 | "dev": true, 58 | "dependencies": { 59 | "array-buffer-byte-length": "^1.0.1", 60 | "call-bind": "^1.0.8", 61 | "define-properties": "^1.2.1", 62 | "es-abstract": "^1.23.5", 63 | "es-errors": "^1.3.0", 64 | "get-intrinsic": "^1.2.6", 65 | "is-array-buffer": "^3.0.4" 66 | }, 67 | "engines": { 68 | "node": ">= 0.4" 69 | }, 70 | "funding": { 71 | "url": "https://github.com/sponsors/ljharb" 72 | } 73 | }, 74 | "node_modules/async-function": { 75 | "version": "1.0.0", 76 | "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", 77 | "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", 78 | "dev": true, 79 | "engines": { 80 | "node": ">= 0.4" 81 | } 82 | }, 83 | "node_modules/available-typed-arrays": { 84 | "version": "1.0.7", 85 | "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", 86 | "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", 87 | "dev": true, 88 | "dependencies": { 89 | "possible-typed-array-names": "^1.0.0" 90 | }, 91 | "engines": { 92 | "node": ">= 0.4" 93 | }, 94 | "funding": { 95 | "url": "https://github.com/sponsors/ljharb" 96 | } 97 | }, 98 | "node_modules/balanced-match": { 99 | "version": "1.0.2", 100 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 101 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 102 | "dev": true 103 | }, 104 | "node_modules/brace-expansion": { 105 | "version": "1.1.11", 106 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 107 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 108 | "dev": true, 109 | "dependencies": { 110 | "balanced-match": "^1.0.0", 111 | "concat-map": "0.0.1" 112 | } 113 | }, 114 | "node_modules/call-bind": { 115 | "version": "1.0.8", 116 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", 117 | "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", 118 | "dev": true, 119 | "dependencies": { 120 | "call-bind-apply-helpers": "^1.0.0", 121 | "es-define-property": "^1.0.0", 122 | "get-intrinsic": "^1.2.4", 123 | "set-function-length": "^1.2.2" 124 | }, 125 | "engines": { 126 | "node": ">= 0.4" 127 | }, 128 | "funding": { 129 | "url": "https://github.com/sponsors/ljharb" 130 | } 131 | }, 132 | "node_modules/call-bind-apply-helpers": { 133 | "version": "1.0.2", 134 | "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", 135 | "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", 136 | "dev": true, 137 | "dependencies": { 138 | "es-errors": "^1.3.0", 139 | "function-bind": "^1.1.2" 140 | }, 141 | "engines": { 142 | "node": ">= 0.4" 143 | } 144 | }, 145 | "node_modules/call-bound": { 146 | "version": "1.0.4", 147 | "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", 148 | "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", 149 | "dev": true, 150 | "dependencies": { 151 | "call-bind-apply-helpers": "^1.0.2", 152 | "get-intrinsic": "^1.3.0" 153 | }, 154 | "engines": { 155 | "node": ">= 0.4" 156 | }, 157 | "funding": { 158 | "url": "https://github.com/sponsors/ljharb" 159 | } 160 | }, 161 | "node_modules/chalk": { 162 | "version": "2.4.2", 163 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 164 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 165 | "dev": true, 166 | "dependencies": { 167 | "ansi-styles": "^3.2.1", 168 | "escape-string-regexp": "^1.0.5", 169 | "supports-color": "^5.3.0" 170 | }, 171 | "engines": { 172 | "node": ">=4" 173 | } 174 | }, 175 | "node_modules/cliui": { 176 | "version": "7.0.4", 177 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", 178 | "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", 179 | "dev": true, 180 | "dependencies": { 181 | "string-width": "^4.2.0", 182 | "strip-ansi": "^6.0.0", 183 | "wrap-ansi": "^7.0.0" 184 | } 185 | }, 186 | "node_modules/color-convert": { 187 | "version": "1.9.3", 188 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 189 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 190 | "dev": true, 191 | "dependencies": { 192 | "color-name": "1.1.3" 193 | } 194 | }, 195 | "node_modules/color-name": { 196 | "version": "1.1.3", 197 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 198 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", 199 | "dev": true 200 | }, 201 | "node_modules/concat-map": { 202 | "version": "0.0.1", 203 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 204 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", 205 | "dev": true 206 | }, 207 | "node_modules/copyfiles": { 208 | "version": "2.4.1", 209 | "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.1.tgz", 210 | "integrity": "sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==", 211 | "dev": true, 212 | "dependencies": { 213 | "glob": "^7.0.5", 214 | "minimatch": "^3.0.3", 215 | "mkdirp": "^1.0.4", 216 | "noms": "0.0.0", 217 | "through2": "^2.0.1", 218 | "untildify": "^4.0.0", 219 | "yargs": "^16.1.0" 220 | }, 221 | "bin": { 222 | "copyfiles": "copyfiles", 223 | "copyup": "copyfiles" 224 | } 225 | }, 226 | "node_modules/core-util-is": { 227 | "version": "1.0.3", 228 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", 229 | "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", 230 | "dev": true 231 | }, 232 | "node_modules/cross-spawn": { 233 | "version": "6.0.6", 234 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", 235 | "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", 236 | "dev": true, 237 | "dependencies": { 238 | "nice-try": "^1.0.4", 239 | "path-key": "^2.0.1", 240 | "semver": "^5.5.0", 241 | "shebang-command": "^1.2.0", 242 | "which": "^1.2.9" 243 | }, 244 | "engines": { 245 | "node": ">=4.8" 246 | } 247 | }, 248 | "node_modules/data-view-buffer": { 249 | "version": "1.0.2", 250 | "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", 251 | "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", 252 | "dev": true, 253 | "dependencies": { 254 | "call-bound": "^1.0.3", 255 | "es-errors": "^1.3.0", 256 | "is-data-view": "^1.0.2" 257 | }, 258 | "engines": { 259 | "node": ">= 0.4" 260 | }, 261 | "funding": { 262 | "url": "https://github.com/sponsors/ljharb" 263 | } 264 | }, 265 | "node_modules/data-view-byte-length": { 266 | "version": "1.0.2", 267 | "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", 268 | "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", 269 | "dev": true, 270 | "dependencies": { 271 | "call-bound": "^1.0.3", 272 | "es-errors": "^1.3.0", 273 | "is-data-view": "^1.0.2" 274 | }, 275 | "engines": { 276 | "node": ">= 0.4" 277 | }, 278 | "funding": { 279 | "url": "https://github.com/sponsors/inspect-js" 280 | } 281 | }, 282 | "node_modules/data-view-byte-offset": { 283 | "version": "1.0.1", 284 | "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", 285 | "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", 286 | "dev": true, 287 | "dependencies": { 288 | "call-bound": "^1.0.2", 289 | "es-errors": "^1.3.0", 290 | "is-data-view": "^1.0.1" 291 | }, 292 | "engines": { 293 | "node": ">= 0.4" 294 | }, 295 | "funding": { 296 | "url": "https://github.com/sponsors/ljharb" 297 | } 298 | }, 299 | "node_modules/define-data-property": { 300 | "version": "1.1.4", 301 | "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", 302 | "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", 303 | "dev": true, 304 | "dependencies": { 305 | "es-define-property": "^1.0.0", 306 | "es-errors": "^1.3.0", 307 | "gopd": "^1.0.1" 308 | }, 309 | "engines": { 310 | "node": ">= 0.4" 311 | }, 312 | "funding": { 313 | "url": "https://github.com/sponsors/ljharb" 314 | } 315 | }, 316 | "node_modules/define-properties": { 317 | "version": "1.2.1", 318 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", 319 | "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", 320 | "dev": true, 321 | "dependencies": { 322 | "define-data-property": "^1.0.1", 323 | "has-property-descriptors": "^1.0.0", 324 | "object-keys": "^1.1.1" 325 | }, 326 | "engines": { 327 | "node": ">= 0.4" 328 | }, 329 | "funding": { 330 | "url": "https://github.com/sponsors/ljharb" 331 | } 332 | }, 333 | "node_modules/dunder-proto": { 334 | "version": "1.0.1", 335 | "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", 336 | "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", 337 | "dev": true, 338 | "dependencies": { 339 | "call-bind-apply-helpers": "^1.0.1", 340 | "es-errors": "^1.3.0", 341 | "gopd": "^1.2.0" 342 | }, 343 | "engines": { 344 | "node": ">= 0.4" 345 | } 346 | }, 347 | "node_modules/emoji-regex": { 348 | "version": "8.0.0", 349 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 350 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 351 | "dev": true 352 | }, 353 | "node_modules/error-ex": { 354 | "version": "1.3.2", 355 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 356 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 357 | "dev": true, 358 | "dependencies": { 359 | "is-arrayish": "^0.2.1" 360 | } 361 | }, 362 | "node_modules/es-abstract": { 363 | "version": "1.23.9", 364 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", 365 | "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", 366 | "dev": true, 367 | "dependencies": { 368 | "array-buffer-byte-length": "^1.0.2", 369 | "arraybuffer.prototype.slice": "^1.0.4", 370 | "available-typed-arrays": "^1.0.7", 371 | "call-bind": "^1.0.8", 372 | "call-bound": "^1.0.3", 373 | "data-view-buffer": "^1.0.2", 374 | "data-view-byte-length": "^1.0.2", 375 | "data-view-byte-offset": "^1.0.1", 376 | "es-define-property": "^1.0.1", 377 | "es-errors": "^1.3.0", 378 | "es-object-atoms": "^1.0.0", 379 | "es-set-tostringtag": "^2.1.0", 380 | "es-to-primitive": "^1.3.0", 381 | "function.prototype.name": "^1.1.8", 382 | "get-intrinsic": "^1.2.7", 383 | "get-proto": "^1.0.0", 384 | "get-symbol-description": "^1.1.0", 385 | "globalthis": "^1.0.4", 386 | "gopd": "^1.2.0", 387 | "has-property-descriptors": "^1.0.2", 388 | "has-proto": "^1.2.0", 389 | "has-symbols": "^1.1.0", 390 | "hasown": "^2.0.2", 391 | "internal-slot": "^1.1.0", 392 | "is-array-buffer": "^3.0.5", 393 | "is-callable": "^1.2.7", 394 | "is-data-view": "^1.0.2", 395 | "is-regex": "^1.2.1", 396 | "is-shared-array-buffer": "^1.0.4", 397 | "is-string": "^1.1.1", 398 | "is-typed-array": "^1.1.15", 399 | "is-weakref": "^1.1.0", 400 | "math-intrinsics": "^1.1.0", 401 | "object-inspect": "^1.13.3", 402 | "object-keys": "^1.1.1", 403 | "object.assign": "^4.1.7", 404 | "own-keys": "^1.0.1", 405 | "regexp.prototype.flags": "^1.5.3", 406 | "safe-array-concat": "^1.1.3", 407 | "safe-push-apply": "^1.0.0", 408 | "safe-regex-test": "^1.1.0", 409 | "set-proto": "^1.0.0", 410 | "string.prototype.trim": "^1.2.10", 411 | "string.prototype.trimend": "^1.0.9", 412 | "string.prototype.trimstart": "^1.0.8", 413 | "typed-array-buffer": "^1.0.3", 414 | "typed-array-byte-length": "^1.0.3", 415 | "typed-array-byte-offset": "^1.0.4", 416 | "typed-array-length": "^1.0.7", 417 | "unbox-primitive": "^1.1.0", 418 | "which-typed-array": "^1.1.18" 419 | }, 420 | "engines": { 421 | "node": ">= 0.4" 422 | }, 423 | "funding": { 424 | "url": "https://github.com/sponsors/ljharb" 425 | } 426 | }, 427 | "node_modules/es-define-property": { 428 | "version": "1.0.1", 429 | "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", 430 | "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", 431 | "dev": true, 432 | "engines": { 433 | "node": ">= 0.4" 434 | } 435 | }, 436 | "node_modules/es-errors": { 437 | "version": "1.3.0", 438 | "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", 439 | "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", 440 | "dev": true, 441 | "engines": { 442 | "node": ">= 0.4" 443 | } 444 | }, 445 | "node_modules/es-object-atoms": { 446 | "version": "1.1.1", 447 | "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", 448 | "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", 449 | "dev": true, 450 | "dependencies": { 451 | "es-errors": "^1.3.0" 452 | }, 453 | "engines": { 454 | "node": ">= 0.4" 455 | } 456 | }, 457 | "node_modules/es-set-tostringtag": { 458 | "version": "2.1.0", 459 | "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", 460 | "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", 461 | "dev": true, 462 | "dependencies": { 463 | "es-errors": "^1.3.0", 464 | "get-intrinsic": "^1.2.6", 465 | "has-tostringtag": "^1.0.2", 466 | "hasown": "^2.0.2" 467 | }, 468 | "engines": { 469 | "node": ">= 0.4" 470 | } 471 | }, 472 | "node_modules/es-to-primitive": { 473 | "version": "1.3.0", 474 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", 475 | "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", 476 | "dev": true, 477 | "dependencies": { 478 | "is-callable": "^1.2.7", 479 | "is-date-object": "^1.0.5", 480 | "is-symbol": "^1.0.4" 481 | }, 482 | "engines": { 483 | "node": ">= 0.4" 484 | }, 485 | "funding": { 486 | "url": "https://github.com/sponsors/ljharb" 487 | } 488 | }, 489 | "node_modules/escalade": { 490 | "version": "3.2.0", 491 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", 492 | "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", 493 | "dev": true, 494 | "engines": { 495 | "node": ">=6" 496 | } 497 | }, 498 | "node_modules/escape-string-regexp": { 499 | "version": "1.0.5", 500 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 501 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", 502 | "dev": true, 503 | "engines": { 504 | "node": ">=0.8.0" 505 | } 506 | }, 507 | "node_modules/for-each": { 508 | "version": "0.3.5", 509 | "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", 510 | "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", 511 | "dev": true, 512 | "dependencies": { 513 | "is-callable": "^1.2.7" 514 | }, 515 | "engines": { 516 | "node": ">= 0.4" 517 | }, 518 | "funding": { 519 | "url": "https://github.com/sponsors/ljharb" 520 | } 521 | }, 522 | "node_modules/fs.realpath": { 523 | "version": "1.0.0", 524 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 525 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", 526 | "dev": true 527 | }, 528 | "node_modules/function-bind": { 529 | "version": "1.1.2", 530 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", 531 | "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", 532 | "dev": true, 533 | "funding": { 534 | "url": "https://github.com/sponsors/ljharb" 535 | } 536 | }, 537 | "node_modules/function.prototype.name": { 538 | "version": "1.1.8", 539 | "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", 540 | "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", 541 | "dev": true, 542 | "dependencies": { 543 | "call-bind": "^1.0.8", 544 | "call-bound": "^1.0.3", 545 | "define-properties": "^1.2.1", 546 | "functions-have-names": "^1.2.3", 547 | "hasown": "^2.0.2", 548 | "is-callable": "^1.2.7" 549 | }, 550 | "engines": { 551 | "node": ">= 0.4" 552 | }, 553 | "funding": { 554 | "url": "https://github.com/sponsors/ljharb" 555 | } 556 | }, 557 | "node_modules/functions-have-names": { 558 | "version": "1.2.3", 559 | "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", 560 | "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", 561 | "dev": true, 562 | "funding": { 563 | "url": "https://github.com/sponsors/ljharb" 564 | } 565 | }, 566 | "node_modules/get-caller-file": { 567 | "version": "2.0.5", 568 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", 569 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", 570 | "dev": true, 571 | "engines": { 572 | "node": "6.* || 8.* || >= 10.*" 573 | } 574 | }, 575 | "node_modules/get-intrinsic": { 576 | "version": "1.3.0", 577 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", 578 | "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", 579 | "dev": true, 580 | "dependencies": { 581 | "call-bind-apply-helpers": "^1.0.2", 582 | "es-define-property": "^1.0.1", 583 | "es-errors": "^1.3.0", 584 | "es-object-atoms": "^1.1.1", 585 | "function-bind": "^1.1.2", 586 | "get-proto": "^1.0.1", 587 | "gopd": "^1.2.0", 588 | "has-symbols": "^1.1.0", 589 | "hasown": "^2.0.2", 590 | "math-intrinsics": "^1.1.0" 591 | }, 592 | "engines": { 593 | "node": ">= 0.4" 594 | }, 595 | "funding": { 596 | "url": "https://github.com/sponsors/ljharb" 597 | } 598 | }, 599 | "node_modules/get-proto": { 600 | "version": "1.0.1", 601 | "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", 602 | "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", 603 | "dev": true, 604 | "dependencies": { 605 | "dunder-proto": "^1.0.1", 606 | "es-object-atoms": "^1.0.0" 607 | }, 608 | "engines": { 609 | "node": ">= 0.4" 610 | } 611 | }, 612 | "node_modules/get-symbol-description": { 613 | "version": "1.1.0", 614 | "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", 615 | "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", 616 | "dev": true, 617 | "dependencies": { 618 | "call-bound": "^1.0.3", 619 | "es-errors": "^1.3.0", 620 | "get-intrinsic": "^1.2.6" 621 | }, 622 | "engines": { 623 | "node": ">= 0.4" 624 | }, 625 | "funding": { 626 | "url": "https://github.com/sponsors/ljharb" 627 | } 628 | }, 629 | "node_modules/glob": { 630 | "version": "7.2.3", 631 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", 632 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", 633 | "deprecated": "Glob versions prior to v9 are no longer supported", 634 | "dev": true, 635 | "dependencies": { 636 | "fs.realpath": "^1.0.0", 637 | "inflight": "^1.0.4", 638 | "inherits": "2", 639 | "minimatch": "^3.1.1", 640 | "once": "^1.3.0", 641 | "path-is-absolute": "^1.0.0" 642 | }, 643 | "engines": { 644 | "node": "*" 645 | }, 646 | "funding": { 647 | "url": "https://github.com/sponsors/isaacs" 648 | } 649 | }, 650 | "node_modules/globalthis": { 651 | "version": "1.0.4", 652 | "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", 653 | "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", 654 | "dev": true, 655 | "dependencies": { 656 | "define-properties": "^1.2.1", 657 | "gopd": "^1.0.1" 658 | }, 659 | "engines": { 660 | "node": ">= 0.4" 661 | }, 662 | "funding": { 663 | "url": "https://github.com/sponsors/ljharb" 664 | } 665 | }, 666 | "node_modules/gopd": { 667 | "version": "1.2.0", 668 | "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", 669 | "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", 670 | "dev": true, 671 | "engines": { 672 | "node": ">= 0.4" 673 | }, 674 | "funding": { 675 | "url": "https://github.com/sponsors/ljharb" 676 | } 677 | }, 678 | "node_modules/graceful-fs": { 679 | "version": "4.2.11", 680 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", 681 | "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", 682 | "dev": true 683 | }, 684 | "node_modules/has-bigints": { 685 | "version": "1.1.0", 686 | "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", 687 | "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", 688 | "dev": true, 689 | "engines": { 690 | "node": ">= 0.4" 691 | }, 692 | "funding": { 693 | "url": "https://github.com/sponsors/ljharb" 694 | } 695 | }, 696 | "node_modules/has-flag": { 697 | "version": "3.0.0", 698 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 699 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", 700 | "dev": true, 701 | "engines": { 702 | "node": ">=4" 703 | } 704 | }, 705 | "node_modules/has-property-descriptors": { 706 | "version": "1.0.2", 707 | "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", 708 | "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", 709 | "dev": true, 710 | "dependencies": { 711 | "es-define-property": "^1.0.0" 712 | }, 713 | "funding": { 714 | "url": "https://github.com/sponsors/ljharb" 715 | } 716 | }, 717 | "node_modules/has-proto": { 718 | "version": "1.2.0", 719 | "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", 720 | "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", 721 | "dev": true, 722 | "dependencies": { 723 | "dunder-proto": "^1.0.0" 724 | }, 725 | "engines": { 726 | "node": ">= 0.4" 727 | }, 728 | "funding": { 729 | "url": "https://github.com/sponsors/ljharb" 730 | } 731 | }, 732 | "node_modules/has-symbols": { 733 | "version": "1.1.0", 734 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", 735 | "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", 736 | "dev": true, 737 | "engines": { 738 | "node": ">= 0.4" 739 | }, 740 | "funding": { 741 | "url": "https://github.com/sponsors/ljharb" 742 | } 743 | }, 744 | "node_modules/has-tostringtag": { 745 | "version": "1.0.2", 746 | "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", 747 | "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", 748 | "dev": true, 749 | "dependencies": { 750 | "has-symbols": "^1.0.3" 751 | }, 752 | "engines": { 753 | "node": ">= 0.4" 754 | }, 755 | "funding": { 756 | "url": "https://github.com/sponsors/ljharb" 757 | } 758 | }, 759 | "node_modules/hasown": { 760 | "version": "2.0.2", 761 | "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", 762 | "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", 763 | "dev": true, 764 | "dependencies": { 765 | "function-bind": "^1.1.2" 766 | }, 767 | "engines": { 768 | "node": ">= 0.4" 769 | } 770 | }, 771 | "node_modules/hosted-git-info": { 772 | "version": "2.8.9", 773 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", 774 | "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", 775 | "dev": true 776 | }, 777 | "node_modules/inflight": { 778 | "version": "1.0.6", 779 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 780 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", 781 | "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", 782 | "dev": true, 783 | "dependencies": { 784 | "once": "^1.3.0", 785 | "wrappy": "1" 786 | } 787 | }, 788 | "node_modules/inherits": { 789 | "version": "2.0.4", 790 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 791 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 792 | "dev": true 793 | }, 794 | "node_modules/internal-slot": { 795 | "version": "1.1.0", 796 | "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", 797 | "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", 798 | "dev": true, 799 | "dependencies": { 800 | "es-errors": "^1.3.0", 801 | "hasown": "^2.0.2", 802 | "side-channel": "^1.1.0" 803 | }, 804 | "engines": { 805 | "node": ">= 0.4" 806 | } 807 | }, 808 | "node_modules/is-array-buffer": { 809 | "version": "3.0.5", 810 | "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", 811 | "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", 812 | "dev": true, 813 | "dependencies": { 814 | "call-bind": "^1.0.8", 815 | "call-bound": "^1.0.3", 816 | "get-intrinsic": "^1.2.6" 817 | }, 818 | "engines": { 819 | "node": ">= 0.4" 820 | }, 821 | "funding": { 822 | "url": "https://github.com/sponsors/ljharb" 823 | } 824 | }, 825 | "node_modules/is-arrayish": { 826 | "version": "0.2.1", 827 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 828 | "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", 829 | "dev": true 830 | }, 831 | "node_modules/is-async-function": { 832 | "version": "2.1.1", 833 | "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", 834 | "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", 835 | "dev": true, 836 | "dependencies": { 837 | "async-function": "^1.0.0", 838 | "call-bound": "^1.0.3", 839 | "get-proto": "^1.0.1", 840 | "has-tostringtag": "^1.0.2", 841 | "safe-regex-test": "^1.1.0" 842 | }, 843 | "engines": { 844 | "node": ">= 0.4" 845 | }, 846 | "funding": { 847 | "url": "https://github.com/sponsors/ljharb" 848 | } 849 | }, 850 | "node_modules/is-bigint": { 851 | "version": "1.1.0", 852 | "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", 853 | "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", 854 | "dev": true, 855 | "dependencies": { 856 | "has-bigints": "^1.0.2" 857 | }, 858 | "engines": { 859 | "node": ">= 0.4" 860 | }, 861 | "funding": { 862 | "url": "https://github.com/sponsors/ljharb" 863 | } 864 | }, 865 | "node_modules/is-boolean-object": { 866 | "version": "1.2.2", 867 | "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", 868 | "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", 869 | "dev": true, 870 | "dependencies": { 871 | "call-bound": "^1.0.3", 872 | "has-tostringtag": "^1.0.2" 873 | }, 874 | "engines": { 875 | "node": ">= 0.4" 876 | }, 877 | "funding": { 878 | "url": "https://github.com/sponsors/ljharb" 879 | } 880 | }, 881 | "node_modules/is-callable": { 882 | "version": "1.2.7", 883 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", 884 | "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", 885 | "dev": true, 886 | "engines": { 887 | "node": ">= 0.4" 888 | }, 889 | "funding": { 890 | "url": "https://github.com/sponsors/ljharb" 891 | } 892 | }, 893 | "node_modules/is-core-module": { 894 | "version": "2.16.1", 895 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", 896 | "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", 897 | "dev": true, 898 | "dependencies": { 899 | "hasown": "^2.0.2" 900 | }, 901 | "engines": { 902 | "node": ">= 0.4" 903 | }, 904 | "funding": { 905 | "url": "https://github.com/sponsors/ljharb" 906 | } 907 | }, 908 | "node_modules/is-data-view": { 909 | "version": "1.0.2", 910 | "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", 911 | "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", 912 | "dev": true, 913 | "dependencies": { 914 | "call-bound": "^1.0.2", 915 | "get-intrinsic": "^1.2.6", 916 | "is-typed-array": "^1.1.13" 917 | }, 918 | "engines": { 919 | "node": ">= 0.4" 920 | }, 921 | "funding": { 922 | "url": "https://github.com/sponsors/ljharb" 923 | } 924 | }, 925 | "node_modules/is-date-object": { 926 | "version": "1.1.0", 927 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", 928 | "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", 929 | "dev": true, 930 | "dependencies": { 931 | "call-bound": "^1.0.2", 932 | "has-tostringtag": "^1.0.2" 933 | }, 934 | "engines": { 935 | "node": ">= 0.4" 936 | }, 937 | "funding": { 938 | "url": "https://github.com/sponsors/ljharb" 939 | } 940 | }, 941 | "node_modules/is-finalizationregistry": { 942 | "version": "1.1.1", 943 | "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", 944 | "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", 945 | "dev": true, 946 | "dependencies": { 947 | "call-bound": "^1.0.3" 948 | }, 949 | "engines": { 950 | "node": ">= 0.4" 951 | }, 952 | "funding": { 953 | "url": "https://github.com/sponsors/ljharb" 954 | } 955 | }, 956 | "node_modules/is-fullwidth-code-point": { 957 | "version": "3.0.0", 958 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 959 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 960 | "dev": true, 961 | "engines": { 962 | "node": ">=8" 963 | } 964 | }, 965 | "node_modules/is-generator-function": { 966 | "version": "1.1.0", 967 | "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", 968 | "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", 969 | "dev": true, 970 | "dependencies": { 971 | "call-bound": "^1.0.3", 972 | "get-proto": "^1.0.0", 973 | "has-tostringtag": "^1.0.2", 974 | "safe-regex-test": "^1.1.0" 975 | }, 976 | "engines": { 977 | "node": ">= 0.4" 978 | }, 979 | "funding": { 980 | "url": "https://github.com/sponsors/ljharb" 981 | } 982 | }, 983 | "node_modules/is-map": { 984 | "version": "2.0.3", 985 | "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", 986 | "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", 987 | "dev": true, 988 | "engines": { 989 | "node": ">= 0.4" 990 | }, 991 | "funding": { 992 | "url": "https://github.com/sponsors/ljharb" 993 | } 994 | }, 995 | "node_modules/is-number-object": { 996 | "version": "1.1.1", 997 | "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", 998 | "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", 999 | "dev": true, 1000 | "dependencies": { 1001 | "call-bound": "^1.0.3", 1002 | "has-tostringtag": "^1.0.2" 1003 | }, 1004 | "engines": { 1005 | "node": ">= 0.4" 1006 | }, 1007 | "funding": { 1008 | "url": "https://github.com/sponsors/ljharb" 1009 | } 1010 | }, 1011 | "node_modules/is-regex": { 1012 | "version": "1.2.1", 1013 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", 1014 | "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", 1015 | "dev": true, 1016 | "dependencies": { 1017 | "call-bound": "^1.0.2", 1018 | "gopd": "^1.2.0", 1019 | "has-tostringtag": "^1.0.2", 1020 | "hasown": "^2.0.2" 1021 | }, 1022 | "engines": { 1023 | "node": ">= 0.4" 1024 | }, 1025 | "funding": { 1026 | "url": "https://github.com/sponsors/ljharb" 1027 | } 1028 | }, 1029 | "node_modules/is-set": { 1030 | "version": "2.0.3", 1031 | "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", 1032 | "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", 1033 | "dev": true, 1034 | "engines": { 1035 | "node": ">= 0.4" 1036 | }, 1037 | "funding": { 1038 | "url": "https://github.com/sponsors/ljharb" 1039 | } 1040 | }, 1041 | "node_modules/is-shared-array-buffer": { 1042 | "version": "1.0.4", 1043 | "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", 1044 | "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", 1045 | "dev": true, 1046 | "dependencies": { 1047 | "call-bound": "^1.0.3" 1048 | }, 1049 | "engines": { 1050 | "node": ">= 0.4" 1051 | }, 1052 | "funding": { 1053 | "url": "https://github.com/sponsors/ljharb" 1054 | } 1055 | }, 1056 | "node_modules/is-string": { 1057 | "version": "1.1.1", 1058 | "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", 1059 | "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", 1060 | "dev": true, 1061 | "dependencies": { 1062 | "call-bound": "^1.0.3", 1063 | "has-tostringtag": "^1.0.2" 1064 | }, 1065 | "engines": { 1066 | "node": ">= 0.4" 1067 | }, 1068 | "funding": { 1069 | "url": "https://github.com/sponsors/ljharb" 1070 | } 1071 | }, 1072 | "node_modules/is-symbol": { 1073 | "version": "1.1.1", 1074 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", 1075 | "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", 1076 | "dev": true, 1077 | "dependencies": { 1078 | "call-bound": "^1.0.2", 1079 | "has-symbols": "^1.1.0", 1080 | "safe-regex-test": "^1.1.0" 1081 | }, 1082 | "engines": { 1083 | "node": ">= 0.4" 1084 | }, 1085 | "funding": { 1086 | "url": "https://github.com/sponsors/ljharb" 1087 | } 1088 | }, 1089 | "node_modules/is-typed-array": { 1090 | "version": "1.1.15", 1091 | "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", 1092 | "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", 1093 | "dev": true, 1094 | "dependencies": { 1095 | "which-typed-array": "^1.1.16" 1096 | }, 1097 | "engines": { 1098 | "node": ">= 0.4" 1099 | }, 1100 | "funding": { 1101 | "url": "https://github.com/sponsors/ljharb" 1102 | } 1103 | }, 1104 | "node_modules/is-weakmap": { 1105 | "version": "2.0.2", 1106 | "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", 1107 | "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", 1108 | "dev": true, 1109 | "engines": { 1110 | "node": ">= 0.4" 1111 | }, 1112 | "funding": { 1113 | "url": "https://github.com/sponsors/ljharb" 1114 | } 1115 | }, 1116 | "node_modules/is-weakref": { 1117 | "version": "1.1.1", 1118 | "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", 1119 | "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", 1120 | "dev": true, 1121 | "dependencies": { 1122 | "call-bound": "^1.0.3" 1123 | }, 1124 | "engines": { 1125 | "node": ">= 0.4" 1126 | }, 1127 | "funding": { 1128 | "url": "https://github.com/sponsors/ljharb" 1129 | } 1130 | }, 1131 | "node_modules/is-weakset": { 1132 | "version": "2.0.4", 1133 | "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", 1134 | "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", 1135 | "dev": true, 1136 | "dependencies": { 1137 | "call-bound": "^1.0.3", 1138 | "get-intrinsic": "^1.2.6" 1139 | }, 1140 | "engines": { 1141 | "node": ">= 0.4" 1142 | }, 1143 | "funding": { 1144 | "url": "https://github.com/sponsors/ljharb" 1145 | } 1146 | }, 1147 | "node_modules/isarray": { 1148 | "version": "0.0.1", 1149 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", 1150 | "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", 1151 | "dev": true 1152 | }, 1153 | "node_modules/isexe": { 1154 | "version": "2.0.0", 1155 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 1156 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", 1157 | "dev": true 1158 | }, 1159 | "node_modules/json-parse-better-errors": { 1160 | "version": "1.0.2", 1161 | "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", 1162 | "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", 1163 | "dev": true 1164 | }, 1165 | "node_modules/lightbox2": { 1166 | "version": "2.11.5", 1167 | "resolved": "https://registry.npmjs.org/lightbox2/-/lightbox2-2.11.5.tgz", 1168 | "integrity": "sha512-IsDqv/D9pjgh7GvwTNvmHF98+nrIcOD17fraXgtx8ivq469y95l5ycLi6SeZAZHdeyD3cGLjYwbDX8SRfWx5fA==" 1169 | }, 1170 | "node_modules/load-json-file": { 1171 | "version": "4.0.0", 1172 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", 1173 | "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", 1174 | "dev": true, 1175 | "dependencies": { 1176 | "graceful-fs": "^4.1.2", 1177 | "parse-json": "^4.0.0", 1178 | "pify": "^3.0.0", 1179 | "strip-bom": "^3.0.0" 1180 | }, 1181 | "engines": { 1182 | "node": ">=4" 1183 | } 1184 | }, 1185 | "node_modules/math-intrinsics": { 1186 | "version": "1.1.0", 1187 | "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", 1188 | "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", 1189 | "dev": true, 1190 | "engines": { 1191 | "node": ">= 0.4" 1192 | } 1193 | }, 1194 | "node_modules/memorystream": { 1195 | "version": "0.3.1", 1196 | "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", 1197 | "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", 1198 | "dev": true, 1199 | "engines": { 1200 | "node": ">= 0.10.0" 1201 | } 1202 | }, 1203 | "node_modules/minimatch": { 1204 | "version": "3.1.2", 1205 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 1206 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 1207 | "dev": true, 1208 | "dependencies": { 1209 | "brace-expansion": "^1.1.7" 1210 | }, 1211 | "engines": { 1212 | "node": "*" 1213 | } 1214 | }, 1215 | "node_modules/mkdirp": { 1216 | "version": "1.0.4", 1217 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", 1218 | "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", 1219 | "dev": true, 1220 | "bin": { 1221 | "mkdirp": "bin/cmd.js" 1222 | }, 1223 | "engines": { 1224 | "node": ">=10" 1225 | } 1226 | }, 1227 | "node_modules/nice-try": { 1228 | "version": "1.0.5", 1229 | "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", 1230 | "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", 1231 | "dev": true 1232 | }, 1233 | "node_modules/noms": { 1234 | "version": "0.0.0", 1235 | "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", 1236 | "integrity": "sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==", 1237 | "dev": true, 1238 | "dependencies": { 1239 | "inherits": "^2.0.1", 1240 | "readable-stream": "~1.0.31" 1241 | } 1242 | }, 1243 | "node_modules/normalize-package-data": { 1244 | "version": "2.5.0", 1245 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", 1246 | "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", 1247 | "dev": true, 1248 | "dependencies": { 1249 | "hosted-git-info": "^2.1.4", 1250 | "resolve": "^1.10.0", 1251 | "semver": "2 || 3 || 4 || 5", 1252 | "validate-npm-package-license": "^3.0.1" 1253 | } 1254 | }, 1255 | "node_modules/npm-run-all": { 1256 | "version": "4.1.5", 1257 | "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", 1258 | "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", 1259 | "dev": true, 1260 | "dependencies": { 1261 | "ansi-styles": "^3.2.1", 1262 | "chalk": "^2.4.1", 1263 | "cross-spawn": "^6.0.5", 1264 | "memorystream": "^0.3.1", 1265 | "minimatch": "^3.0.4", 1266 | "pidtree": "^0.3.0", 1267 | "read-pkg": "^3.0.0", 1268 | "shell-quote": "^1.6.1", 1269 | "string.prototype.padend": "^3.0.0" 1270 | }, 1271 | "bin": { 1272 | "npm-run-all": "bin/npm-run-all/index.js", 1273 | "run-p": "bin/run-p/index.js", 1274 | "run-s": "bin/run-s/index.js" 1275 | }, 1276 | "engines": { 1277 | "node": ">= 4" 1278 | } 1279 | }, 1280 | "node_modules/object-inspect": { 1281 | "version": "1.13.4", 1282 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", 1283 | "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", 1284 | "dev": true, 1285 | "engines": { 1286 | "node": ">= 0.4" 1287 | }, 1288 | "funding": { 1289 | "url": "https://github.com/sponsors/ljharb" 1290 | } 1291 | }, 1292 | "node_modules/object-keys": { 1293 | "version": "1.1.1", 1294 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", 1295 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", 1296 | "dev": true, 1297 | "engines": { 1298 | "node": ">= 0.4" 1299 | } 1300 | }, 1301 | "node_modules/object.assign": { 1302 | "version": "4.1.7", 1303 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", 1304 | "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", 1305 | "dev": true, 1306 | "dependencies": { 1307 | "call-bind": "^1.0.8", 1308 | "call-bound": "^1.0.3", 1309 | "define-properties": "^1.2.1", 1310 | "es-object-atoms": "^1.0.0", 1311 | "has-symbols": "^1.1.0", 1312 | "object-keys": "^1.1.1" 1313 | }, 1314 | "engines": { 1315 | "node": ">= 0.4" 1316 | }, 1317 | "funding": { 1318 | "url": "https://github.com/sponsors/ljharb" 1319 | } 1320 | }, 1321 | "node_modules/once": { 1322 | "version": "1.4.0", 1323 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1324 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 1325 | "dev": true, 1326 | "dependencies": { 1327 | "wrappy": "1" 1328 | } 1329 | }, 1330 | "node_modules/own-keys": { 1331 | "version": "1.0.1", 1332 | "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", 1333 | "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", 1334 | "dev": true, 1335 | "dependencies": { 1336 | "get-intrinsic": "^1.2.6", 1337 | "object-keys": "^1.1.1", 1338 | "safe-push-apply": "^1.0.0" 1339 | }, 1340 | "engines": { 1341 | "node": ">= 0.4" 1342 | }, 1343 | "funding": { 1344 | "url": "https://github.com/sponsors/ljharb" 1345 | } 1346 | }, 1347 | "node_modules/parse-json": { 1348 | "version": "4.0.0", 1349 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", 1350 | "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", 1351 | "dev": true, 1352 | "dependencies": { 1353 | "error-ex": "^1.3.1", 1354 | "json-parse-better-errors": "^1.0.1" 1355 | }, 1356 | "engines": { 1357 | "node": ">=4" 1358 | } 1359 | }, 1360 | "node_modules/path-is-absolute": { 1361 | "version": "1.0.1", 1362 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1363 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", 1364 | "dev": true, 1365 | "engines": { 1366 | "node": ">=0.10.0" 1367 | } 1368 | }, 1369 | "node_modules/path-key": { 1370 | "version": "2.0.1", 1371 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", 1372 | "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", 1373 | "dev": true, 1374 | "engines": { 1375 | "node": ">=4" 1376 | } 1377 | }, 1378 | "node_modules/path-parse": { 1379 | "version": "1.0.7", 1380 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 1381 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 1382 | "dev": true 1383 | }, 1384 | "node_modules/path-type": { 1385 | "version": "3.0.0", 1386 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", 1387 | "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", 1388 | "dev": true, 1389 | "dependencies": { 1390 | "pify": "^3.0.0" 1391 | }, 1392 | "engines": { 1393 | "node": ">=4" 1394 | } 1395 | }, 1396 | "node_modules/pidtree": { 1397 | "version": "0.3.1", 1398 | "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", 1399 | "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", 1400 | "dev": true, 1401 | "bin": { 1402 | "pidtree": "bin/pidtree.js" 1403 | }, 1404 | "engines": { 1405 | "node": ">=0.10" 1406 | } 1407 | }, 1408 | "node_modules/pify": { 1409 | "version": "3.0.0", 1410 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", 1411 | "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", 1412 | "dev": true, 1413 | "engines": { 1414 | "node": ">=4" 1415 | } 1416 | }, 1417 | "node_modules/possible-typed-array-names": { 1418 | "version": "1.1.0", 1419 | "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", 1420 | "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", 1421 | "dev": true, 1422 | "engines": { 1423 | "node": ">= 0.4" 1424 | } 1425 | }, 1426 | "node_modules/process-nextick-args": { 1427 | "version": "2.0.1", 1428 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 1429 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", 1430 | "dev": true 1431 | }, 1432 | "node_modules/read-pkg": { 1433 | "version": "3.0.0", 1434 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", 1435 | "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", 1436 | "dev": true, 1437 | "dependencies": { 1438 | "load-json-file": "^4.0.0", 1439 | "normalize-package-data": "^2.3.2", 1440 | "path-type": "^3.0.0" 1441 | }, 1442 | "engines": { 1443 | "node": ">=4" 1444 | } 1445 | }, 1446 | "node_modules/readable-stream": { 1447 | "version": "1.0.34", 1448 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", 1449 | "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", 1450 | "dev": true, 1451 | "dependencies": { 1452 | "core-util-is": "~1.0.0", 1453 | "inherits": "~2.0.1", 1454 | "isarray": "0.0.1", 1455 | "string_decoder": "~0.10.x" 1456 | } 1457 | }, 1458 | "node_modules/reflect.getprototypeof": { 1459 | "version": "1.0.10", 1460 | "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", 1461 | "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", 1462 | "dev": true, 1463 | "dependencies": { 1464 | "call-bind": "^1.0.8", 1465 | "define-properties": "^1.2.1", 1466 | "es-abstract": "^1.23.9", 1467 | "es-errors": "^1.3.0", 1468 | "es-object-atoms": "^1.0.0", 1469 | "get-intrinsic": "^1.2.7", 1470 | "get-proto": "^1.0.1", 1471 | "which-builtin-type": "^1.2.1" 1472 | }, 1473 | "engines": { 1474 | "node": ">= 0.4" 1475 | }, 1476 | "funding": { 1477 | "url": "https://github.com/sponsors/ljharb" 1478 | } 1479 | }, 1480 | "node_modules/regexp.prototype.flags": { 1481 | "version": "1.5.4", 1482 | "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", 1483 | "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", 1484 | "dev": true, 1485 | "dependencies": { 1486 | "call-bind": "^1.0.8", 1487 | "define-properties": "^1.2.1", 1488 | "es-errors": "^1.3.0", 1489 | "get-proto": "^1.0.1", 1490 | "gopd": "^1.2.0", 1491 | "set-function-name": "^2.0.2" 1492 | }, 1493 | "engines": { 1494 | "node": ">= 0.4" 1495 | }, 1496 | "funding": { 1497 | "url": "https://github.com/sponsors/ljharb" 1498 | } 1499 | }, 1500 | "node_modules/require-directory": { 1501 | "version": "2.1.1", 1502 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 1503 | "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", 1504 | "dev": true, 1505 | "engines": { 1506 | "node": ">=0.10.0" 1507 | } 1508 | }, 1509 | "node_modules/resolve": { 1510 | "version": "1.22.10", 1511 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", 1512 | "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", 1513 | "dev": true, 1514 | "dependencies": { 1515 | "is-core-module": "^2.16.0", 1516 | "path-parse": "^1.0.7", 1517 | "supports-preserve-symlinks-flag": "^1.0.0" 1518 | }, 1519 | "bin": { 1520 | "resolve": "bin/resolve" 1521 | }, 1522 | "engines": { 1523 | "node": ">= 0.4" 1524 | }, 1525 | "funding": { 1526 | "url": "https://github.com/sponsors/ljharb" 1527 | } 1528 | }, 1529 | "node_modules/safe-array-concat": { 1530 | "version": "1.1.3", 1531 | "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", 1532 | "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", 1533 | "dev": true, 1534 | "dependencies": { 1535 | "call-bind": "^1.0.8", 1536 | "call-bound": "^1.0.2", 1537 | "get-intrinsic": "^1.2.6", 1538 | "has-symbols": "^1.1.0", 1539 | "isarray": "^2.0.5" 1540 | }, 1541 | "engines": { 1542 | "node": ">=0.4" 1543 | }, 1544 | "funding": { 1545 | "url": "https://github.com/sponsors/ljharb" 1546 | } 1547 | }, 1548 | "node_modules/safe-array-concat/node_modules/isarray": { 1549 | "version": "2.0.5", 1550 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", 1551 | "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", 1552 | "dev": true 1553 | }, 1554 | "node_modules/safe-buffer": { 1555 | "version": "5.1.2", 1556 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1557 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", 1558 | "dev": true 1559 | }, 1560 | "node_modules/safe-push-apply": { 1561 | "version": "1.0.0", 1562 | "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", 1563 | "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", 1564 | "dev": true, 1565 | "dependencies": { 1566 | "es-errors": "^1.3.0", 1567 | "isarray": "^2.0.5" 1568 | }, 1569 | "engines": { 1570 | "node": ">= 0.4" 1571 | }, 1572 | "funding": { 1573 | "url": "https://github.com/sponsors/ljharb" 1574 | } 1575 | }, 1576 | "node_modules/safe-push-apply/node_modules/isarray": { 1577 | "version": "2.0.5", 1578 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", 1579 | "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", 1580 | "dev": true 1581 | }, 1582 | "node_modules/safe-regex-test": { 1583 | "version": "1.1.0", 1584 | "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", 1585 | "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", 1586 | "dev": true, 1587 | "dependencies": { 1588 | "call-bound": "^1.0.2", 1589 | "es-errors": "^1.3.0", 1590 | "is-regex": "^1.2.1" 1591 | }, 1592 | "engines": { 1593 | "node": ">= 0.4" 1594 | }, 1595 | "funding": { 1596 | "url": "https://github.com/sponsors/ljharb" 1597 | } 1598 | }, 1599 | "node_modules/semver": { 1600 | "version": "5.7.2", 1601 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", 1602 | "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", 1603 | "dev": true, 1604 | "bin": { 1605 | "semver": "bin/semver" 1606 | } 1607 | }, 1608 | "node_modules/set-function-length": { 1609 | "version": "1.2.2", 1610 | "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", 1611 | "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", 1612 | "dev": true, 1613 | "dependencies": { 1614 | "define-data-property": "^1.1.4", 1615 | "es-errors": "^1.3.0", 1616 | "function-bind": "^1.1.2", 1617 | "get-intrinsic": "^1.2.4", 1618 | "gopd": "^1.0.1", 1619 | "has-property-descriptors": "^1.0.2" 1620 | }, 1621 | "engines": { 1622 | "node": ">= 0.4" 1623 | } 1624 | }, 1625 | "node_modules/set-function-name": { 1626 | "version": "2.0.2", 1627 | "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", 1628 | "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", 1629 | "dev": true, 1630 | "dependencies": { 1631 | "define-data-property": "^1.1.4", 1632 | "es-errors": "^1.3.0", 1633 | "functions-have-names": "^1.2.3", 1634 | "has-property-descriptors": "^1.0.2" 1635 | }, 1636 | "engines": { 1637 | "node": ">= 0.4" 1638 | } 1639 | }, 1640 | "node_modules/set-proto": { 1641 | "version": "1.0.0", 1642 | "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", 1643 | "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", 1644 | "dev": true, 1645 | "dependencies": { 1646 | "dunder-proto": "^1.0.1", 1647 | "es-errors": "^1.3.0", 1648 | "es-object-atoms": "^1.0.0" 1649 | }, 1650 | "engines": { 1651 | "node": ">= 0.4" 1652 | } 1653 | }, 1654 | "node_modules/shebang-command": { 1655 | "version": "1.2.0", 1656 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 1657 | "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", 1658 | "dev": true, 1659 | "dependencies": { 1660 | "shebang-regex": "^1.0.0" 1661 | }, 1662 | "engines": { 1663 | "node": ">=0.10.0" 1664 | } 1665 | }, 1666 | "node_modules/shebang-regex": { 1667 | "version": "1.0.0", 1668 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 1669 | "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", 1670 | "dev": true, 1671 | "engines": { 1672 | "node": ">=0.10.0" 1673 | } 1674 | }, 1675 | "node_modules/shell-quote": { 1676 | "version": "1.8.2", 1677 | "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", 1678 | "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", 1679 | "dev": true, 1680 | "engines": { 1681 | "node": ">= 0.4" 1682 | }, 1683 | "funding": { 1684 | "url": "https://github.com/sponsors/ljharb" 1685 | } 1686 | }, 1687 | "node_modules/side-channel": { 1688 | "version": "1.1.0", 1689 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", 1690 | "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", 1691 | "dev": true, 1692 | "dependencies": { 1693 | "es-errors": "^1.3.0", 1694 | "object-inspect": "^1.13.3", 1695 | "side-channel-list": "^1.0.0", 1696 | "side-channel-map": "^1.0.1", 1697 | "side-channel-weakmap": "^1.0.2" 1698 | }, 1699 | "engines": { 1700 | "node": ">= 0.4" 1701 | }, 1702 | "funding": { 1703 | "url": "https://github.com/sponsors/ljharb" 1704 | } 1705 | }, 1706 | "node_modules/side-channel-list": { 1707 | "version": "1.0.0", 1708 | "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", 1709 | "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", 1710 | "dev": true, 1711 | "dependencies": { 1712 | "es-errors": "^1.3.0", 1713 | "object-inspect": "^1.13.3" 1714 | }, 1715 | "engines": { 1716 | "node": ">= 0.4" 1717 | }, 1718 | "funding": { 1719 | "url": "https://github.com/sponsors/ljharb" 1720 | } 1721 | }, 1722 | "node_modules/side-channel-map": { 1723 | "version": "1.0.1", 1724 | "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", 1725 | "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", 1726 | "dev": true, 1727 | "dependencies": { 1728 | "call-bound": "^1.0.2", 1729 | "es-errors": "^1.3.0", 1730 | "get-intrinsic": "^1.2.5", 1731 | "object-inspect": "^1.13.3" 1732 | }, 1733 | "engines": { 1734 | "node": ">= 0.4" 1735 | }, 1736 | "funding": { 1737 | "url": "https://github.com/sponsors/ljharb" 1738 | } 1739 | }, 1740 | "node_modules/side-channel-weakmap": { 1741 | "version": "1.0.2", 1742 | "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", 1743 | "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", 1744 | "dev": true, 1745 | "dependencies": { 1746 | "call-bound": "^1.0.2", 1747 | "es-errors": "^1.3.0", 1748 | "get-intrinsic": "^1.2.5", 1749 | "object-inspect": "^1.13.3", 1750 | "side-channel-map": "^1.0.1" 1751 | }, 1752 | "engines": { 1753 | "node": ">= 0.4" 1754 | }, 1755 | "funding": { 1756 | "url": "https://github.com/sponsors/ljharb" 1757 | } 1758 | }, 1759 | "node_modules/spdx-correct": { 1760 | "version": "3.2.0", 1761 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", 1762 | "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", 1763 | "dev": true, 1764 | "dependencies": { 1765 | "spdx-expression-parse": "^3.0.0", 1766 | "spdx-license-ids": "^3.0.0" 1767 | } 1768 | }, 1769 | "node_modules/spdx-exceptions": { 1770 | "version": "2.5.0", 1771 | "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", 1772 | "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", 1773 | "dev": true 1774 | }, 1775 | "node_modules/spdx-expression-parse": { 1776 | "version": "3.0.1", 1777 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", 1778 | "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", 1779 | "dev": true, 1780 | "dependencies": { 1781 | "spdx-exceptions": "^2.1.0", 1782 | "spdx-license-ids": "^3.0.0" 1783 | } 1784 | }, 1785 | "node_modules/spdx-license-ids": { 1786 | "version": "3.0.21", 1787 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz", 1788 | "integrity": "sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==", 1789 | "dev": true 1790 | }, 1791 | "node_modules/string_decoder": { 1792 | "version": "0.10.31", 1793 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", 1794 | "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", 1795 | "dev": true 1796 | }, 1797 | "node_modules/string-width": { 1798 | "version": "4.2.3", 1799 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 1800 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 1801 | "dev": true, 1802 | "dependencies": { 1803 | "emoji-regex": "^8.0.0", 1804 | "is-fullwidth-code-point": "^3.0.0", 1805 | "strip-ansi": "^6.0.1" 1806 | }, 1807 | "engines": { 1808 | "node": ">=8" 1809 | } 1810 | }, 1811 | "node_modules/string.prototype.padend": { 1812 | "version": "3.1.6", 1813 | "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz", 1814 | "integrity": "sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==", 1815 | "dev": true, 1816 | "dependencies": { 1817 | "call-bind": "^1.0.7", 1818 | "define-properties": "^1.2.1", 1819 | "es-abstract": "^1.23.2", 1820 | "es-object-atoms": "^1.0.0" 1821 | }, 1822 | "engines": { 1823 | "node": ">= 0.4" 1824 | }, 1825 | "funding": { 1826 | "url": "https://github.com/sponsors/ljharb" 1827 | } 1828 | }, 1829 | "node_modules/string.prototype.trim": { 1830 | "version": "1.2.10", 1831 | "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", 1832 | "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", 1833 | "dev": true, 1834 | "dependencies": { 1835 | "call-bind": "^1.0.8", 1836 | "call-bound": "^1.0.2", 1837 | "define-data-property": "^1.1.4", 1838 | "define-properties": "^1.2.1", 1839 | "es-abstract": "^1.23.5", 1840 | "es-object-atoms": "^1.0.0", 1841 | "has-property-descriptors": "^1.0.2" 1842 | }, 1843 | "engines": { 1844 | "node": ">= 0.4" 1845 | }, 1846 | "funding": { 1847 | "url": "https://github.com/sponsors/ljharb" 1848 | } 1849 | }, 1850 | "node_modules/string.prototype.trimend": { 1851 | "version": "1.0.9", 1852 | "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", 1853 | "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", 1854 | "dev": true, 1855 | "dependencies": { 1856 | "call-bind": "^1.0.8", 1857 | "call-bound": "^1.0.2", 1858 | "define-properties": "^1.2.1", 1859 | "es-object-atoms": "^1.0.0" 1860 | }, 1861 | "engines": { 1862 | "node": ">= 0.4" 1863 | }, 1864 | "funding": { 1865 | "url": "https://github.com/sponsors/ljharb" 1866 | } 1867 | }, 1868 | "node_modules/string.prototype.trimstart": { 1869 | "version": "1.0.8", 1870 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", 1871 | "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", 1872 | "dev": true, 1873 | "dependencies": { 1874 | "call-bind": "^1.0.7", 1875 | "define-properties": "^1.2.1", 1876 | "es-object-atoms": "^1.0.0" 1877 | }, 1878 | "engines": { 1879 | "node": ">= 0.4" 1880 | }, 1881 | "funding": { 1882 | "url": "https://github.com/sponsors/ljharb" 1883 | } 1884 | }, 1885 | "node_modules/strip-ansi": { 1886 | "version": "6.0.1", 1887 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 1888 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 1889 | "dev": true, 1890 | "dependencies": { 1891 | "ansi-regex": "^5.0.1" 1892 | }, 1893 | "engines": { 1894 | "node": ">=8" 1895 | } 1896 | }, 1897 | "node_modules/strip-bom": { 1898 | "version": "3.0.0", 1899 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", 1900 | "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", 1901 | "dev": true, 1902 | "engines": { 1903 | "node": ">=4" 1904 | } 1905 | }, 1906 | "node_modules/supports-color": { 1907 | "version": "5.5.0", 1908 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 1909 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 1910 | "dev": true, 1911 | "dependencies": { 1912 | "has-flag": "^3.0.0" 1913 | }, 1914 | "engines": { 1915 | "node": ">=4" 1916 | } 1917 | }, 1918 | "node_modules/supports-preserve-symlinks-flag": { 1919 | "version": "1.0.0", 1920 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 1921 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 1922 | "dev": true, 1923 | "engines": { 1924 | "node": ">= 0.4" 1925 | }, 1926 | "funding": { 1927 | "url": "https://github.com/sponsors/ljharb" 1928 | } 1929 | }, 1930 | "node_modules/through2": { 1931 | "version": "2.0.5", 1932 | "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", 1933 | "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", 1934 | "dev": true, 1935 | "dependencies": { 1936 | "readable-stream": "~2.3.6", 1937 | "xtend": "~4.0.1" 1938 | } 1939 | }, 1940 | "node_modules/through2/node_modules/isarray": { 1941 | "version": "1.0.0", 1942 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 1943 | "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", 1944 | "dev": true 1945 | }, 1946 | "node_modules/through2/node_modules/readable-stream": { 1947 | "version": "2.3.8", 1948 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", 1949 | "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", 1950 | "dev": true, 1951 | "dependencies": { 1952 | "core-util-is": "~1.0.0", 1953 | "inherits": "~2.0.3", 1954 | "isarray": "~1.0.0", 1955 | "process-nextick-args": "~2.0.0", 1956 | "safe-buffer": "~5.1.1", 1957 | "string_decoder": "~1.1.1", 1958 | "util-deprecate": "~1.0.1" 1959 | } 1960 | }, 1961 | "node_modules/through2/node_modules/string_decoder": { 1962 | "version": "1.1.1", 1963 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 1964 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 1965 | "dev": true, 1966 | "dependencies": { 1967 | "safe-buffer": "~5.1.0" 1968 | } 1969 | }, 1970 | "node_modules/typed-array-buffer": { 1971 | "version": "1.0.3", 1972 | "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", 1973 | "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", 1974 | "dev": true, 1975 | "dependencies": { 1976 | "call-bound": "^1.0.3", 1977 | "es-errors": "^1.3.0", 1978 | "is-typed-array": "^1.1.14" 1979 | }, 1980 | "engines": { 1981 | "node": ">= 0.4" 1982 | } 1983 | }, 1984 | "node_modules/typed-array-byte-length": { 1985 | "version": "1.0.3", 1986 | "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", 1987 | "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", 1988 | "dev": true, 1989 | "dependencies": { 1990 | "call-bind": "^1.0.8", 1991 | "for-each": "^0.3.3", 1992 | "gopd": "^1.2.0", 1993 | "has-proto": "^1.2.0", 1994 | "is-typed-array": "^1.1.14" 1995 | }, 1996 | "engines": { 1997 | "node": ">= 0.4" 1998 | }, 1999 | "funding": { 2000 | "url": "https://github.com/sponsors/ljharb" 2001 | } 2002 | }, 2003 | "node_modules/typed-array-byte-offset": { 2004 | "version": "1.0.4", 2005 | "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", 2006 | "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", 2007 | "dev": true, 2008 | "dependencies": { 2009 | "available-typed-arrays": "^1.0.7", 2010 | "call-bind": "^1.0.8", 2011 | "for-each": "^0.3.3", 2012 | "gopd": "^1.2.0", 2013 | "has-proto": "^1.2.0", 2014 | "is-typed-array": "^1.1.15", 2015 | "reflect.getprototypeof": "^1.0.9" 2016 | }, 2017 | "engines": { 2018 | "node": ">= 0.4" 2019 | }, 2020 | "funding": { 2021 | "url": "https://github.com/sponsors/ljharb" 2022 | } 2023 | }, 2024 | "node_modules/typed-array-length": { 2025 | "version": "1.0.7", 2026 | "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", 2027 | "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", 2028 | "dev": true, 2029 | "dependencies": { 2030 | "call-bind": "^1.0.7", 2031 | "for-each": "^0.3.3", 2032 | "gopd": "^1.0.1", 2033 | "is-typed-array": "^1.1.13", 2034 | "possible-typed-array-names": "^1.0.0", 2035 | "reflect.getprototypeof": "^1.0.6" 2036 | }, 2037 | "engines": { 2038 | "node": ">= 0.4" 2039 | }, 2040 | "funding": { 2041 | "url": "https://github.com/sponsors/ljharb" 2042 | } 2043 | }, 2044 | "node_modules/unbox-primitive": { 2045 | "version": "1.1.0", 2046 | "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", 2047 | "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", 2048 | "dev": true, 2049 | "dependencies": { 2050 | "call-bound": "^1.0.3", 2051 | "has-bigints": "^1.0.2", 2052 | "has-symbols": "^1.1.0", 2053 | "which-boxed-primitive": "^1.1.1" 2054 | }, 2055 | "engines": { 2056 | "node": ">= 0.4" 2057 | }, 2058 | "funding": { 2059 | "url": "https://github.com/sponsors/ljharb" 2060 | } 2061 | }, 2062 | "node_modules/untildify": { 2063 | "version": "4.0.0", 2064 | "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", 2065 | "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", 2066 | "dev": true, 2067 | "engines": { 2068 | "node": ">=8" 2069 | } 2070 | }, 2071 | "node_modules/util-deprecate": { 2072 | "version": "1.0.2", 2073 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 2074 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", 2075 | "dev": true 2076 | }, 2077 | "node_modules/validate-npm-package-license": { 2078 | "version": "3.0.4", 2079 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", 2080 | "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", 2081 | "dev": true, 2082 | "dependencies": { 2083 | "spdx-correct": "^3.0.0", 2084 | "spdx-expression-parse": "^3.0.0" 2085 | } 2086 | }, 2087 | "node_modules/which": { 2088 | "version": "1.3.1", 2089 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 2090 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", 2091 | "dev": true, 2092 | "dependencies": { 2093 | "isexe": "^2.0.0" 2094 | }, 2095 | "bin": { 2096 | "which": "bin/which" 2097 | } 2098 | }, 2099 | "node_modules/which-boxed-primitive": { 2100 | "version": "1.1.1", 2101 | "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", 2102 | "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", 2103 | "dev": true, 2104 | "dependencies": { 2105 | "is-bigint": "^1.1.0", 2106 | "is-boolean-object": "^1.2.1", 2107 | "is-number-object": "^1.1.1", 2108 | "is-string": "^1.1.1", 2109 | "is-symbol": "^1.1.1" 2110 | }, 2111 | "engines": { 2112 | "node": ">= 0.4" 2113 | }, 2114 | "funding": { 2115 | "url": "https://github.com/sponsors/ljharb" 2116 | } 2117 | }, 2118 | "node_modules/which-builtin-type": { 2119 | "version": "1.2.1", 2120 | "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", 2121 | "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", 2122 | "dev": true, 2123 | "dependencies": { 2124 | "call-bound": "^1.0.2", 2125 | "function.prototype.name": "^1.1.6", 2126 | "has-tostringtag": "^1.0.2", 2127 | "is-async-function": "^2.0.0", 2128 | "is-date-object": "^1.1.0", 2129 | "is-finalizationregistry": "^1.1.0", 2130 | "is-generator-function": "^1.0.10", 2131 | "is-regex": "^1.2.1", 2132 | "is-weakref": "^1.0.2", 2133 | "isarray": "^2.0.5", 2134 | "which-boxed-primitive": "^1.1.0", 2135 | "which-collection": "^1.0.2", 2136 | "which-typed-array": "^1.1.16" 2137 | }, 2138 | "engines": { 2139 | "node": ">= 0.4" 2140 | }, 2141 | "funding": { 2142 | "url": "https://github.com/sponsors/ljharb" 2143 | } 2144 | }, 2145 | "node_modules/which-builtin-type/node_modules/isarray": { 2146 | "version": "2.0.5", 2147 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", 2148 | "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", 2149 | "dev": true 2150 | }, 2151 | "node_modules/which-collection": { 2152 | "version": "1.0.2", 2153 | "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", 2154 | "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", 2155 | "dev": true, 2156 | "dependencies": { 2157 | "is-map": "^2.0.3", 2158 | "is-set": "^2.0.3", 2159 | "is-weakmap": "^2.0.2", 2160 | "is-weakset": "^2.0.3" 2161 | }, 2162 | "engines": { 2163 | "node": ">= 0.4" 2164 | }, 2165 | "funding": { 2166 | "url": "https://github.com/sponsors/ljharb" 2167 | } 2168 | }, 2169 | "node_modules/which-typed-array": { 2170 | "version": "1.1.19", 2171 | "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", 2172 | "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", 2173 | "dev": true, 2174 | "dependencies": { 2175 | "available-typed-arrays": "^1.0.7", 2176 | "call-bind": "^1.0.8", 2177 | "call-bound": "^1.0.4", 2178 | "for-each": "^0.3.5", 2179 | "get-proto": "^1.0.1", 2180 | "gopd": "^1.2.0", 2181 | "has-tostringtag": "^1.0.2" 2182 | }, 2183 | "engines": { 2184 | "node": ">= 0.4" 2185 | }, 2186 | "funding": { 2187 | "url": "https://github.com/sponsors/ljharb" 2188 | } 2189 | }, 2190 | "node_modules/wrap-ansi": { 2191 | "version": "7.0.0", 2192 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", 2193 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", 2194 | "dev": true, 2195 | "dependencies": { 2196 | "ansi-styles": "^4.0.0", 2197 | "string-width": "^4.1.0", 2198 | "strip-ansi": "^6.0.0" 2199 | }, 2200 | "engines": { 2201 | "node": ">=10" 2202 | }, 2203 | "funding": { 2204 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 2205 | } 2206 | }, 2207 | "node_modules/wrap-ansi/node_modules/ansi-styles": { 2208 | "version": "4.3.0", 2209 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 2210 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 2211 | "dev": true, 2212 | "dependencies": { 2213 | "color-convert": "^2.0.1" 2214 | }, 2215 | "engines": { 2216 | "node": ">=8" 2217 | }, 2218 | "funding": { 2219 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 2220 | } 2221 | }, 2222 | "node_modules/wrap-ansi/node_modules/color-convert": { 2223 | "version": "2.0.1", 2224 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 2225 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 2226 | "dev": true, 2227 | "dependencies": { 2228 | "color-name": "~1.1.4" 2229 | }, 2230 | "engines": { 2231 | "node": ">=7.0.0" 2232 | } 2233 | }, 2234 | "node_modules/wrap-ansi/node_modules/color-name": { 2235 | "version": "1.1.4", 2236 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 2237 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 2238 | "dev": true 2239 | }, 2240 | "node_modules/wrappy": { 2241 | "version": "1.0.2", 2242 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2243 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", 2244 | "dev": true 2245 | }, 2246 | "node_modules/xtend": { 2247 | "version": "4.0.2", 2248 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", 2249 | "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", 2250 | "dev": true, 2251 | "engines": { 2252 | "node": ">=0.4" 2253 | } 2254 | }, 2255 | "node_modules/y18n": { 2256 | "version": "5.0.8", 2257 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", 2258 | "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", 2259 | "dev": true, 2260 | "engines": { 2261 | "node": ">=10" 2262 | } 2263 | }, 2264 | "node_modules/yargs": { 2265 | "version": "16.2.0", 2266 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", 2267 | "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", 2268 | "dev": true, 2269 | "dependencies": { 2270 | "cliui": "^7.0.2", 2271 | "escalade": "^3.1.1", 2272 | "get-caller-file": "^2.0.5", 2273 | "require-directory": "^2.1.1", 2274 | "string-width": "^4.2.0", 2275 | "y18n": "^5.0.5", 2276 | "yargs-parser": "^20.2.2" 2277 | }, 2278 | "engines": { 2279 | "node": ">=10" 2280 | } 2281 | }, 2282 | "node_modules/yargs-parser": { 2283 | "version": "20.2.9", 2284 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", 2285 | "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", 2286 | "dev": true, 2287 | "engines": { 2288 | "node": ">=10" 2289 | } 2290 | } 2291 | } 2292 | } 2293 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "author": "Matt Friedman", 3 | "license": "GPL-2.0", 4 | "dependencies": { 5 | "lightbox2": "^2.11.3" 6 | }, 7 | "devDependencies": { 8 | "copyfiles": "^2.4.1", 9 | "npm-run-all": "^4.1.5" 10 | }, 11 | "scripts": { 12 | "copy-lightbox": "copyfiles --exclude \"node_modules/lightbox2/dist/js/*plus-jquery.*\" -u 3 node_modules/lightbox2/dist/**/* styles/all/template/lightbox" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /styles/all/template/event/overall_footer_after.html: -------------------------------------------------------------------------------- 1 | {% if S_LIGHTBOX_ALL_IMAGES or LIGHTBOX_RESIZE_WIDTH or LIGHTBOX_RESIZE_HEIGHT %} 2 | {% INCLUDEJS '@vse_lightbox/js/resizer.js' %} 3 | {# Test $INCLUDED_LIGHTBOXJS is not defined #} 4 | {% if not definition.INCLUDED_LIGHTBOXJS %} 5 | {% INCLUDECSS '@vse_lightbox/lightbox/css/lightbox.min.css' %} 6 | {% INCLUDEJS '@vse_lightbox/lightbox/js/lightbox.min.js' %} 7 | {% DEFINE INCLUDED_LIGHTBOXJS = true %} 8 | {% endif %} 9 | 19 | {% endif %} 20 | -------------------------------------------------------------------------------- /styles/all/template/event/overall_footer_body_after.html: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /styles/all/template/event/overall_header_stylesheets_after.html: -------------------------------------------------------------------------------- 1 | {% if LIGHTBOX_RESIZE_HEIGHT || LIGHTBOX_RESIZE_WIDTH %} 2 | 12 | {% endif %} 13 | -------------------------------------------------------------------------------- /styles/all/template/js/resizer.js: -------------------------------------------------------------------------------- 1 | /*global vseLightbox, mChat*/ 2 | (function($) { // Avoid conflicts with other libraries 3 | 4 | 'use strict'; 5 | 6 | $.fn.extend({ 7 | borderHover: function() { 8 | return this.each(function() { 9 | $(this).css({ 10 | border: 'solid 3px transparent', 11 | borderRadius: '6px', 12 | transition: 'border-color 0.1s ease-out', 13 | cursor: 'pointer' 14 | }).on('mouseenter', function() { 15 | $(this).css('border-color', '#4ae'); 16 | }).on('mouseleave', function() { 17 | $(this).css('border-color', 'transparent'); 18 | }); 19 | }); 20 | } 21 | }); 22 | 23 | function resizeWideImages() { 24 | return (vseLightbox.resizeWidth > 0); 25 | } 26 | 27 | function resizeTallImages() { 28 | return (vseLightbox.resizeHeight > 0); 29 | } 30 | 31 | function isMobile() { 32 | // Check if running as PWA (in standalone mode or display-mode: standalone) 33 | const isPWA = window.matchMedia('(display-mode: standalone)').matches || 34 | window.navigator.standalone || 35 | document.referrer.includes('android-app://'); 36 | 37 | // Check if on a mobile device using more reliable methods 38 | const isMobileDevice = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) || 39 | ('maxTouchPoints' in navigator && navigator.maxTouchPoints > 0); 40 | 41 | return !isPWA && isMobileDevice; 42 | } 43 | 44 | function isOversized(img) { 45 | return (resizeWideImages() && img.width >= vseLightbox.resizeWidth) || (resizeTallImages() && img.height >= vseLightbox.resizeHeight); 46 | } 47 | 48 | function lightboxResizer(elements) { 49 | if (isMobile() || (!resizeWideImages() && !resizeTallImages() && !vseLightbox.lightboxAll)) { 50 | return; 51 | } 52 | var $targetImage = elements.find('.postimage'), 53 | galleryName = 'post-gallery'; 54 | if (!vseLightbox.lightboxSig) { 55 | $targetImage = $targetImage.not(function() { 56 | return $(this).closest('.signature').length > 0; 57 | }); 58 | } 59 | // enclosing the following in a setTimeout seems to solve issues with 60 | // images not being ready and causing $(this).width() to return 0. 61 | setTimeout(function() { 62 | $targetImage.one('load', function() { 63 | if ($(this).closest('.postlink').length > 0) { 64 | return; 65 | } 66 | var img = { 67 | index: '', 68 | width: $(this).outerWidth(), 69 | height: $(this).outerHeight() 70 | }; 71 | switch (vseLightbox.lightboxGal) 72 | { 73 | case 0: 74 | img.index = $targetImage.index(this); 75 | break; 76 | case 2: 77 | img.index = $(this).closest('.post').attr('id') || ''; 78 | break; 79 | } 80 | // attached images 81 | if ($(this).parent('a').length > 0) { 82 | if (vseLightbox.lightboxAll || isOversized(img)) { 83 | $(this).parent('a').attr({ 84 | 'data-lightbox': galleryName + img.index, 85 | 'data-title': (vseLightbox.imageTitles) ? $(this).attr('alt') : '' 86 | }).end().borderHover(); 87 | } 88 | } 89 | // regular images 90 | else if (vseLightbox.lightboxAll || isOversized(img)) { 91 | $(this).wrap(function() { 92 | var url = $(this).attr('src'); 93 | return $('').attr({ 94 | href: url, 95 | 'data-lightbox': (vseLightbox.lightboxSig && $(this).closest('.signature').length > 0) ? $targetImage.index(this) : galleryName + img.index, 96 | 'data-title': (vseLightbox.imageTitles) ? ((url.indexOf(vseLightbox.downloadFile) !== -1) ? $(this).attr('alt') : url.split('/').pop()) : '' 97 | }); 98 | }).borderHover(); 99 | } 100 | }).each(function() { 101 | if (this.complete) { 102 | $(this).trigger('load'); 103 | } 104 | }); 105 | }, 0); 106 | } 107 | 108 | $(function() { 109 | lightboxResizer($(document)); 110 | }); 111 | 112 | // Compatibility with QuickReply Reloaded extension 113 | $('#qr_posts').on('qr_loaded', function(e, elements) { 114 | lightboxResizer(elements); 115 | }); 116 | $('#qr_postform').on('ajax_submit_preview', function() { 117 | lightboxResizer($('#preview')); 118 | }); 119 | 120 | // Compatibility with SimpleSpoiler extension 121 | $('.spoiler-header').on('click', function(e) { 122 | var spoiler = e.target.closest('.spoiler'); 123 | if (!spoiler.hasAttribute('open')) { 124 | lightboxResizer($(spoiler).find('.spoiler-body')); 125 | } 126 | }); 127 | 128 | // Compatibility with ABBC3 spoil BBCode 129 | $('.spoilbtn').on('click', function(e) { 130 | var spoilcontent = $(e.target.closest('.spoilwrapper')).find('.spoilcontent'); 131 | if (spoilcontent.css('display') === 'none') { 132 | lightboxResizer(spoilcontent); 133 | } 134 | }); 135 | 136 | // Compatibility with mChat extension 137 | if (typeof mChat === 'object') { 138 | $(mChat).on({ 139 | mchat_add_message_before: function(e, data) { 140 | setTimeout(function() { 141 | lightboxResizer(data.message); 142 | }, 0); 143 | }, 144 | mchat_edit_message_before: function(e, data) { 145 | setTimeout(function() { 146 | lightboxResizer(data.newMessage); 147 | }, 0); 148 | } 149 | }); 150 | } 151 | 152 | })(jQuery); 153 | -------------------------------------------------------------------------------- /styles/all/template/lightbox/css/lightbox.css: -------------------------------------------------------------------------------- 1 | body.lb-disable-scrolling { 2 | overflow: hidden; 3 | } 4 | 5 | .lightboxOverlay { 6 | position: absolute; 7 | top: 0; 8 | left: 0; 9 | z-index: 9999; 10 | background-color: black; 11 | opacity: 0.8; 12 | display: none; 13 | } 14 | 15 | .lightbox { 16 | position: absolute; 17 | left: 0; 18 | width: 100%; 19 | z-index: 10000; 20 | text-align: center; 21 | line-height: 0; 22 | font-weight: normal; 23 | outline: none; 24 | } 25 | 26 | .lightbox .lb-image { 27 | display: block; 28 | height: auto; 29 | max-width: inherit; 30 | max-height: none; 31 | border-radius: 3px; 32 | 33 | /* Image border */ 34 | border: 4px solid white; 35 | } 36 | 37 | .lightbox a img { 38 | border: none; 39 | } 40 | 41 | .lb-outerContainer { 42 | position: relative; 43 | width: 250px; 44 | height: 250px; 45 | margin: 0 auto; 46 | border-radius: 4px; 47 | 48 | /* Background color behind image. 49 | This is visible during transitions. */ 50 | background-color: white; 51 | } 52 | 53 | .lb-outerContainer:after { 54 | content: ""; 55 | display: table; 56 | clear: both; 57 | } 58 | 59 | .lb-loader { 60 | position: absolute; 61 | top: 43%; 62 | left: 0; 63 | height: 25%; 64 | width: 100%; 65 | text-align: center; 66 | line-height: 0; 67 | } 68 | 69 | .lb-cancel { 70 | display: block; 71 | width: 32px; 72 | height: 32px; 73 | margin: 0 auto; 74 | background: url(../images/loading.gif) no-repeat; 75 | } 76 | 77 | .lb-nav { 78 | position: absolute; 79 | top: 0; 80 | left: 0; 81 | height: 100%; 82 | width: 100%; 83 | z-index: 10; 84 | } 85 | 86 | .lb-container > .nav { 87 | left: 0; 88 | } 89 | 90 | .lb-nav a { 91 | outline: none; 92 | background-image: url('data:image/gif;base64,R0lGODlhAQABAPAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=='); 93 | } 94 | 95 | .lb-prev, .lb-next { 96 | height: 100%; 97 | cursor: pointer; 98 | display: block; 99 | } 100 | 101 | .lb-nav a.lb-prev { 102 | width: 34%; 103 | left: 0; 104 | float: left; 105 | background: url(../images/prev.png) left 48% no-repeat; 106 | opacity: 0; 107 | -webkit-transition: opacity 0.6s; 108 | -moz-transition: opacity 0.6s; 109 | -o-transition: opacity 0.6s; 110 | transition: opacity 0.6s; 111 | } 112 | 113 | .lb-nav a.lb-prev:hover { 114 | opacity: 1; 115 | } 116 | 117 | .lb-nav a.lb-next { 118 | width: 64%; 119 | right: 0; 120 | float: right; 121 | background: url(../images/next.png) right 48% no-repeat; 122 | opacity: 0; 123 | -webkit-transition: opacity 0.6s; 124 | -moz-transition: opacity 0.6s; 125 | -o-transition: opacity 0.6s; 126 | transition: opacity 0.6s; 127 | } 128 | 129 | .lb-nav a.lb-next:hover { 130 | opacity: 1; 131 | } 132 | 133 | .lb-dataContainer { 134 | margin: 0 auto; 135 | padding-top: 5px; 136 | width: 100%; 137 | border-bottom-left-radius: 4px; 138 | border-bottom-right-radius: 4px; 139 | } 140 | 141 | .lb-dataContainer:after { 142 | content: ""; 143 | display: table; 144 | clear: both; 145 | } 146 | 147 | .lb-data { 148 | padding: 0 4px; 149 | color: #ccc; 150 | } 151 | 152 | .lb-data .lb-details { 153 | width: 85%; 154 | float: left; 155 | text-align: left; 156 | line-height: 1.1em; 157 | } 158 | 159 | .lb-data .lb-caption { 160 | font-size: 13px; 161 | font-weight: bold; 162 | line-height: 1em; 163 | } 164 | 165 | .lb-data .lb-caption a { 166 | color: #4ae; 167 | } 168 | 169 | .lb-data .lb-number { 170 | display: block; 171 | clear: left; 172 | padding-bottom: 1em; 173 | font-size: 12px; 174 | color: #999999; 175 | } 176 | 177 | .lb-data .lb-close { 178 | display: block; 179 | float: right; 180 | width: 30px; 181 | height: 30px; 182 | background: url(../images/close.png) top right no-repeat; 183 | text-align: right; 184 | outline: none; 185 | opacity: 0.7; 186 | -webkit-transition: opacity 0.2s; 187 | -moz-transition: opacity 0.2s; 188 | -o-transition: opacity 0.2s; 189 | transition: opacity 0.2s; 190 | } 191 | 192 | .lb-data .lb-close:hover { 193 | cursor: pointer; 194 | opacity: 1; 195 | } 196 | -------------------------------------------------------------------------------- /styles/all/template/lightbox/css/lightbox.min.css: -------------------------------------------------------------------------------- 1 | .lb-loader,.lightbox{text-align:center;line-height:0}body.lb-disable-scrolling{overflow:hidden}.lightboxOverlay{position:absolute;top:0;left:0;z-index:9999;background-color:#000;opacity:.8;display:none}.lightbox{position:absolute;left:0;width:100%;z-index:10000;font-weight:400;outline:0}.lightbox .lb-image{display:block;height:auto;max-width:inherit;max-height:none;border-radius:3px;border:4px solid #fff}.lightbox a img{border:none}.lb-outerContainer{position:relative;width:250px;height:250px;margin:0 auto;border-radius:4px;background-color:#fff}.lb-loader,.lb-nav{position:absolute;left:0}.lb-outerContainer:after{content:"";display:table;clear:both}.lb-loader{top:43%;height:25%;width:100%}.lb-cancel{display:block;width:32px;height:32px;margin:0 auto;background:url(../images/loading.gif) no-repeat}.lb-nav{top:0;height:100%;width:100%;z-index:10}.lb-container>.nav{left:0}.lb-nav a{outline:0;background-image:url(data:image/gif;base64,R0lGODlhAQABAPAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==)}.lb-next,.lb-prev{height:100%;cursor:pointer;display:block}.lb-nav a.lb-prev{width:34%;left:0;float:left;background:url(../images/prev.png) left 48% no-repeat;opacity:0;-webkit-transition:opacity .6s;-moz-transition:opacity .6s;-o-transition:opacity .6s;transition:opacity .6s}.lb-nav a.lb-prev:hover{opacity:1}.lb-nav a.lb-next{width:64%;right:0;float:right;background:url(../images/next.png) right 48% no-repeat;opacity:0;-webkit-transition:opacity .6s;-moz-transition:opacity .6s;-o-transition:opacity .6s;transition:opacity .6s}.lb-nav a.lb-next:hover{opacity:1}.lb-dataContainer{margin:0 auto;padding-top:5px;width:100%;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.lb-dataContainer:after{content:"";display:table;clear:both}.lb-data{padding:0 4px;color:#ccc}.lb-data .lb-details{width:85%;float:left;text-align:left;line-height:1.1em}.lb-data .lb-caption{font-size:13px;font-weight:700;line-height:1em}.lb-data .lb-caption a{color:#4ae}.lb-data .lb-number{display:block;clear:left;padding-bottom:1em;font-size:12px;color:#999}.lb-data .lb-close{display:block;float:right;width:30px;height:30px;background:url(../images/close.png) top right no-repeat;text-align:right;outline:0;opacity:.7;-webkit-transition:opacity .2s;-moz-transition:opacity .2s;-o-transition:opacity .2s;transition:opacity .2s}.lb-data .lb-close:hover{cursor:pointer;opacity:1} -------------------------------------------------------------------------------- /styles/all/template/lightbox/images/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iMattPro/lightbox/12a09b1ef0a298028b57d6601da76ee0a91752be/styles/all/template/lightbox/images/close.png -------------------------------------------------------------------------------- /styles/all/template/lightbox/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iMattPro/lightbox/12a09b1ef0a298028b57d6601da76ee0a91752be/styles/all/template/lightbox/images/loading.gif -------------------------------------------------------------------------------- /styles/all/template/lightbox/images/next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iMattPro/lightbox/12a09b1ef0a298028b57d6601da76ee0a91752be/styles/all/template/lightbox/images/next.png -------------------------------------------------------------------------------- /styles/all/template/lightbox/images/prev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iMattPro/lightbox/12a09b1ef0a298028b57d6601da76ee0a91752be/styles/all/template/lightbox/images/prev.png -------------------------------------------------------------------------------- /styles/all/template/lightbox/js/lightbox.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Lightbox v2.11.5 3 | * by Lokesh Dhakar 4 | * 5 | * More info: 6 | * http://lokeshdhakar.com/projects/lightbox2/ 7 | * 8 | * Copyright Lokesh Dhakar 9 | * Released under the MIT license 10 | * https://github.com/lokesh/lightbox2/blob/master/LICENSE 11 | * 12 | * @preserve 13 | */ 14 | 15 | // Uses Node, AMD or browser globals to create a module. 16 | (function (root, factory) { 17 | if (typeof define === 'function' && define.amd) { 18 | // AMD. Register as an anonymous module. 19 | define(['jquery'], factory); 20 | } else if (typeof exports === 'object') { 21 | // Node. Does not work with strict CommonJS, but 22 | // only CommonJS-like environments that support module.exports, 23 | // like Node. 24 | module.exports = factory(require('jquery')); 25 | } else { 26 | // Browser globals (root is window) 27 | root.lightbox = factory(root.jQuery); 28 | } 29 | }(this, function ($) { 30 | 31 | function Lightbox(options) { 32 | this.album = []; 33 | this.currentImageIndex = void 0; 34 | this.init(); 35 | 36 | // options 37 | this.options = $.extend({}, this.constructor.defaults); 38 | this.option(options); 39 | } 40 | 41 | // Descriptions of all options available on the demo site: 42 | // http://lokeshdhakar.com/projects/lightbox2/index.html#options 43 | Lightbox.defaults = { 44 | albumLabel: 'Image %1 of %2', 45 | alwaysShowNavOnTouchDevices: false, 46 | fadeDuration: 600, 47 | fitImagesInViewport: true, 48 | imageFadeDuration: 600, 49 | // maxWidth: 800, 50 | // maxHeight: 600, 51 | positionFromTop: 50, 52 | resizeDuration: 700, 53 | showImageNumberLabel: true, 54 | wrapAround: false, 55 | disableScrolling: false, 56 | /* 57 | Sanitize Title 58 | If the caption data is trusted, for example you are hardcoding it in, then leave this to false. 59 | This will free you to add html tags, such as links, in the caption. 60 | 61 | If the caption data is user submitted or from some other untrusted source, then set this to true 62 | to prevent xss and other injection attacks. 63 | */ 64 | sanitizeTitle: false 65 | }; 66 | 67 | Lightbox.prototype.option = function(options) { 68 | $.extend(this.options, options); 69 | }; 70 | 71 | Lightbox.prototype.imageCountLabel = function(currentImageNum, totalImages) { 72 | return this.options.albumLabel.replace(/%1/g, currentImageNum).replace(/%2/g, totalImages); 73 | }; 74 | 75 | Lightbox.prototype.init = function() { 76 | var self = this; 77 | // Both enable and build methods require the body tag to be in the DOM. 78 | $(document).ready(function() { 79 | self.enable(); 80 | self.build(); 81 | }); 82 | }; 83 | 84 | // Loop through anchors and areamaps looking for either data-lightbox attributes or rel attributes 85 | // that contain 'lightbox'. When these are clicked, start lightbox. 86 | Lightbox.prototype.enable = function() { 87 | var self = this; 88 | $('body').on('click', 'a[rel^=lightbox], area[rel^=lightbox], a[data-lightbox], area[data-lightbox]', function(event) { 89 | self.start($(event.currentTarget)); 90 | return false; 91 | }); 92 | }; 93 | 94 | // Build html for the lightbox and the overlay. 95 | // Attach event handlers to the new DOM elements. click click click 96 | Lightbox.prototype.build = function() { 97 | if ($('#lightbox').length > 0) { 98 | return; 99 | } 100 | 101 | var self = this; 102 | 103 | // The two root notes generated, #lightboxOverlay and #lightbox are given 104 | // tabindex attrs so they are focusable. We attach our keyboard event 105 | // listeners to these two elements, and not the document. Clicking anywhere 106 | // while Lightbox is opened will keep the focus on or inside one of these 107 | // two elements. 108 | // 109 | // We do this so we can prevent propagation of the Esc keypress when 110 | // Lightbox is open. This prevents it from interfering with other components 111 | // on the page below. 112 | // 113 | // Github issue: https://github.com/lokesh/lightbox2/issues/663 114 | $('
').appendTo($('body')); 115 | 116 | // Cache jQuery objects 117 | this.$lightbox = $('#lightbox'); 118 | this.$overlay = $('#lightboxOverlay'); 119 | this.$outerContainer = this.$lightbox.find('.lb-outerContainer'); 120 | this.$container = this.$lightbox.find('.lb-container'); 121 | this.$image = this.$lightbox.find('.lb-image'); 122 | this.$nav = this.$lightbox.find('.lb-nav'); 123 | 124 | // Store css values for future lookup 125 | this.containerPadding = { 126 | top: parseInt(this.$container.css('padding-top'), 10), 127 | right: parseInt(this.$container.css('padding-right'), 10), 128 | bottom: parseInt(this.$container.css('padding-bottom'), 10), 129 | left: parseInt(this.$container.css('padding-left'), 10) 130 | }; 131 | 132 | this.imageBorderWidth = { 133 | top: parseInt(this.$image.css('border-top-width'), 10), 134 | right: parseInt(this.$image.css('border-right-width'), 10), 135 | bottom: parseInt(this.$image.css('border-bottom-width'), 10), 136 | left: parseInt(this.$image.css('border-left-width'), 10) 137 | }; 138 | 139 | // Attach event handlers to the newly minted DOM elements 140 | this.$overlay.hide().on('click', function() { 141 | self.end(); 142 | return false; 143 | }); 144 | 145 | this.$lightbox.hide().on('click', function(event) { 146 | if ($(event.target).attr('id') === 'lightbox') { 147 | self.end(); 148 | } 149 | }); 150 | 151 | this.$outerContainer.on('click', function(event) { 152 | if ($(event.target).attr('id') === 'lightbox') { 153 | self.end(); 154 | } 155 | return false; 156 | }); 157 | 158 | this.$lightbox.find('.lb-prev').on('click', function() { 159 | if (self.currentImageIndex === 0) { 160 | self.changeImage(self.album.length - 1); 161 | } else { 162 | self.changeImage(self.currentImageIndex - 1); 163 | } 164 | return false; 165 | }); 166 | 167 | this.$lightbox.find('.lb-next').on('click', function() { 168 | if (self.currentImageIndex === self.album.length - 1) { 169 | self.changeImage(0); 170 | } else { 171 | self.changeImage(self.currentImageIndex + 1); 172 | } 173 | return false; 174 | }); 175 | 176 | /* 177 | Show context menu for image on right-click 178 | 179 | There is a div containing the navigation that spans the entire image and lives above of it. If 180 | you right-click, you are right clicking this div and not the image. This prevents users from 181 | saving the image or using other context menu actions with the image. 182 | 183 | To fix this, when we detect the right mouse button is pressed down, but not yet clicked, we 184 | set pointer-events to none on the nav div. This is so that the upcoming right-click event on 185 | the next mouseup will bubble down to the image. Once the right-click/contextmenu event occurs 186 | we set the pointer events back to auto for the nav div so it can capture hover and left-click 187 | events as usual. 188 | */ 189 | this.$nav.on('mousedown', function(event) { 190 | if (event.which === 3) { 191 | self.$nav.css('pointer-events', 'none'); 192 | 193 | self.$lightbox.one('contextmenu', function() { 194 | setTimeout(function() { 195 | this.$nav.css('pointer-events', 'auto'); 196 | }.bind(self), 0); 197 | }); 198 | } 199 | }); 200 | 201 | 202 | this.$lightbox.find('.lb-loader, .lb-close').on('click keyup', function(e) { 203 | // If mouse click OR 'enter' or 'space' keypress, close LB 204 | if ( 205 | e.type === 'click' || (e.type === 'keyup' && (e.which === 13 || e.which === 32))) { 206 | self.end(); 207 | return false; 208 | } 209 | }); 210 | }; 211 | 212 | // Show overlay and lightbox. If the image is part of a set, add siblings to album array. 213 | Lightbox.prototype.start = function($link) { 214 | var self = this; 215 | var $window = $(window); 216 | 217 | $window.on('resize', $.proxy(this.sizeOverlay, this)); 218 | 219 | this.sizeOverlay(); 220 | 221 | this.album = []; 222 | var imageNumber = 0; 223 | 224 | function addToAlbum($link) { 225 | self.album.push({ 226 | alt: $link.attr('data-alt'), 227 | link: $link.attr('href'), 228 | title: $link.attr('data-title') || $link.attr('title') 229 | }); 230 | } 231 | 232 | // Support both data-lightbox attribute and rel attribute implementations 233 | var dataLightboxValue = $link.attr('data-lightbox'); 234 | var $links; 235 | 236 | if (dataLightboxValue) { 237 | $links = $($link.prop('tagName') + '[data-lightbox="' + dataLightboxValue + '"]'); 238 | for (var i = 0; i < $links.length; i = ++i) { 239 | addToAlbum($($links[i])); 240 | if ($links[i] === $link[0]) { 241 | imageNumber = i; 242 | } 243 | } 244 | } else { 245 | if ($link.attr('rel') === 'lightbox') { 246 | // If image is not part of a set 247 | addToAlbum($link); 248 | } else { 249 | // If image is part of a set 250 | $links = $($link.prop('tagName') + '[rel="' + $link.attr('rel') + '"]'); 251 | for (var j = 0; j < $links.length; j = ++j) { 252 | addToAlbum($($links[j])); 253 | if ($links[j] === $link[0]) { 254 | imageNumber = j; 255 | } 256 | } 257 | } 258 | } 259 | 260 | // Position Lightbox 261 | var top = $window.scrollTop() + this.options.positionFromTop; 262 | var left = $window.scrollLeft(); 263 | this.$lightbox.css({ 264 | top: top + 'px', 265 | left: left + 'px' 266 | }).fadeIn(this.options.fadeDuration); 267 | 268 | // Disable scrolling of the page while open 269 | if (this.options.disableScrolling) { 270 | $('body').addClass('lb-disable-scrolling'); 271 | } 272 | 273 | this.changeImage(imageNumber); 274 | }; 275 | 276 | // Hide most UI elements in preparation for the animated resizing of the lightbox. 277 | Lightbox.prototype.changeImage = function(imageNumber) { 278 | var self = this; 279 | var filename = this.album[imageNumber].link; 280 | var filetype = filename.split('.').slice(-1)[0]; 281 | var $image = this.$lightbox.find('.lb-image'); 282 | 283 | // Disable keyboard nav during transitions 284 | this.disableKeyboardNav(); 285 | 286 | // Show loading state 287 | this.$overlay.fadeIn(this.options.fadeDuration); 288 | $('.lb-loader').fadeIn('slow'); 289 | this.$lightbox.find('.lb-image, .lb-nav, .lb-prev, .lb-next, .lb-dataContainer, .lb-numbers, .lb-caption').hide(); 290 | this.$outerContainer.addClass('animating'); 291 | 292 | // When image to show is preloaded, we send the width and height to sizeContainer() 293 | var preloader = new Image(); 294 | preloader.onload = function() { 295 | var $preloader; 296 | var imageHeight; 297 | var imageWidth; 298 | var maxImageHeight; 299 | var maxImageWidth; 300 | var windowHeight; 301 | var windowWidth; 302 | 303 | $image.attr({ 304 | 'alt': self.album[imageNumber].alt, 305 | 'src': filename 306 | }); 307 | 308 | $preloader = $(preloader); 309 | 310 | $image.width(preloader.width); 311 | $image.height(preloader.height); 312 | 313 | var aspectRatio = preloader.width / preloader.height; 314 | 315 | windowWidth = $(window).width(); 316 | windowHeight = $(window).height(); 317 | 318 | // Calculate the max image dimensions for the current viewport. 319 | // Take into account the border around the image and an additional 10px gutter on each side. 320 | maxImageWidth = windowWidth - self.containerPadding.left - self.containerPadding.right - self.imageBorderWidth.left - self.imageBorderWidth.right - 20; 321 | maxImageHeight = windowHeight - self.containerPadding.top - self.containerPadding.bottom - self.imageBorderWidth.top - self.imageBorderWidth.bottom - self.options.positionFromTop - 70; 322 | 323 | /* 324 | Since many SVGs have small intrinsic dimensions, but they support scaling 325 | up without quality loss because of their vector format, max out their 326 | size inside the viewport. 327 | */ 328 | if (filetype === 'svg') { 329 | if (aspectRatio >= 1) { 330 | imageWidth = maxImageWidth; 331 | imageHeight = parseInt(maxImageWidth / aspectRatio, 10); 332 | } else { 333 | imageWidth = parseInt(maxImageHeight / aspectRatio, 10); 334 | imageHeight = maxImageHeight; 335 | } 336 | $image.width(imageWidth); 337 | $image.height(imageHeight); 338 | 339 | } else { 340 | 341 | // Fit image inside the viewport. 342 | if (self.options.fitImagesInViewport) { 343 | 344 | // Check if image size is larger then maxWidth|maxHeight in settings 345 | if (self.options.maxWidth && self.options.maxWidth < maxImageWidth) { 346 | maxImageWidth = self.options.maxWidth; 347 | } 348 | if (self.options.maxHeight && self.options.maxHeight < maxImageHeight) { 349 | maxImageHeight = self.options.maxHeight; 350 | } 351 | 352 | } else { 353 | maxImageWidth = self.options.maxWidth || preloader.width || maxImageWidth; 354 | maxImageHeight = self.options.maxHeight || preloader.height || maxImageHeight; 355 | } 356 | 357 | // Is the current image's width or height is greater than the maxImageWidth or maxImageHeight 358 | // option than we need to size down while maintaining the aspect ratio. 359 | if ((preloader.width > maxImageWidth) || (preloader.height > maxImageHeight)) { 360 | if ((preloader.width / maxImageWidth) > (preloader.height / maxImageHeight)) { 361 | imageWidth = maxImageWidth; 362 | imageHeight = parseInt(preloader.height / (preloader.width / imageWidth), 10); 363 | $image.width(imageWidth); 364 | $image.height(imageHeight); 365 | } else { 366 | imageHeight = maxImageHeight; 367 | imageWidth = parseInt(preloader.width / (preloader.height / imageHeight), 10); 368 | $image.width(imageWidth); 369 | $image.height(imageHeight); 370 | } 371 | } 372 | } 373 | 374 | self.sizeContainer($image.width(), $image.height()); 375 | }; 376 | 377 | // Preload image before showing 378 | preloader.src = this.album[imageNumber].link; 379 | this.currentImageIndex = imageNumber; 380 | }; 381 | 382 | // Stretch overlay to fit the viewport 383 | Lightbox.prototype.sizeOverlay = function() { 384 | var self = this; 385 | /* 386 | We use a setTimeout 0 to pause JS execution and let the rendering catch-up. 387 | Why do this? If the `disableScrolling` option is set to true, a class is added to the body 388 | tag that disables scrolling and hides the scrollbar. We want to make sure the scrollbar is 389 | hidden before we measure the document width, as the presence of the scrollbar will affect the 390 | number. 391 | */ 392 | setTimeout(function() { 393 | self.$overlay 394 | .width($(document).width()) 395 | .height($(document).height()); 396 | 397 | }, 0); 398 | }; 399 | 400 | // Animate the size of the lightbox to fit the image we are showing 401 | // This method also shows the the image. 402 | Lightbox.prototype.sizeContainer = function(imageWidth, imageHeight) { 403 | var self = this; 404 | 405 | var oldWidth = this.$outerContainer.outerWidth(); 406 | var oldHeight = this.$outerContainer.outerHeight(); 407 | var newWidth = imageWidth + this.containerPadding.left + this.containerPadding.right + this.imageBorderWidth.left + this.imageBorderWidth.right; 408 | var newHeight = imageHeight + this.containerPadding.top + this.containerPadding.bottom + this.imageBorderWidth.top + this.imageBorderWidth.bottom; 409 | 410 | function postResize() { 411 | self.$lightbox.find('.lb-dataContainer').width(newWidth); 412 | self.$lightbox.find('.lb-prevLink').height(newHeight); 413 | self.$lightbox.find('.lb-nextLink').height(newHeight); 414 | 415 | // Set focus on one of the two root nodes so keyboard events are captured. 416 | self.$overlay.trigger('focus'); 417 | 418 | self.showImage(); 419 | } 420 | 421 | if (oldWidth !== newWidth || oldHeight !== newHeight) { 422 | this.$outerContainer.animate({ 423 | width: newWidth, 424 | height: newHeight 425 | }, this.options.resizeDuration, 'swing', function() { 426 | postResize(); 427 | }); 428 | } else { 429 | postResize(); 430 | } 431 | }; 432 | 433 | // Display the image and its details and begin preload neighboring images. 434 | Lightbox.prototype.showImage = function() { 435 | this.$lightbox.find('.lb-loader').stop(true).hide(); 436 | this.$lightbox.find('.lb-image').fadeIn(this.options.imageFadeDuration); 437 | 438 | this.updateNav(); 439 | this.updateDetails(); 440 | this.preloadNeighboringImages(); 441 | this.enableKeyboardNav(); 442 | }; 443 | 444 | // Display previous and next navigation if appropriate. 445 | Lightbox.prototype.updateNav = function() { 446 | // Check to see if the browser supports touch events. If so, we take the conservative approach 447 | // and assume that mouse hover events are not supported and always show prev/next navigation 448 | // arrows in image sets. 449 | var alwaysShowNav = false; 450 | try { 451 | document.createEvent('TouchEvent'); 452 | alwaysShowNav = (this.options.alwaysShowNavOnTouchDevices) ? true : false; 453 | } catch (e) {} 454 | 455 | this.$lightbox.find('.lb-nav').show(); 456 | 457 | if (this.album.length > 1) { 458 | if (this.options.wrapAround) { 459 | if (alwaysShowNav) { 460 | this.$lightbox.find('.lb-prev, .lb-next').css('opacity', '1'); 461 | } 462 | this.$lightbox.find('.lb-prev, .lb-next').show(); 463 | } else { 464 | if (this.currentImageIndex > 0) { 465 | this.$lightbox.find('.lb-prev').show(); 466 | if (alwaysShowNav) { 467 | this.$lightbox.find('.lb-prev').css('opacity', '1'); 468 | } 469 | } 470 | if (this.currentImageIndex < this.album.length - 1) { 471 | this.$lightbox.find('.lb-next').show(); 472 | if (alwaysShowNav) { 473 | this.$lightbox.find('.lb-next').css('opacity', '1'); 474 | } 475 | } 476 | } 477 | } 478 | }; 479 | 480 | // Display caption, image number, and closing button. 481 | Lightbox.prototype.updateDetails = function() { 482 | var self = this; 483 | 484 | // Enable anchor clicks in the injected caption html. 485 | // Thanks Nate Wright for the fix. @https://github.com/NateWr 486 | if (typeof this.album[this.currentImageIndex].title !== 'undefined' && 487 | this.album[this.currentImageIndex].title !== '') { 488 | var $caption = this.$lightbox.find('.lb-caption'); 489 | if (this.options.sanitizeTitle) { 490 | $caption.text(this.album[this.currentImageIndex].title); 491 | } else { 492 | $caption.html(this.album[this.currentImageIndex].title); 493 | } 494 | $caption.fadeIn('fast'); 495 | } 496 | 497 | if (this.album.length > 1 && this.options.showImageNumberLabel) { 498 | var labelText = this.imageCountLabel(this.currentImageIndex + 1, this.album.length); 499 | this.$lightbox.find('.lb-number').text(labelText).fadeIn('fast'); 500 | } else { 501 | this.$lightbox.find('.lb-number').hide(); 502 | } 503 | 504 | this.$outerContainer.removeClass('animating'); 505 | 506 | this.$lightbox.find('.lb-dataContainer').fadeIn(this.options.resizeDuration, function() { 507 | return self.sizeOverlay(); 508 | }); 509 | }; 510 | 511 | // Preload previous and next images in set. 512 | Lightbox.prototype.preloadNeighboringImages = function() { 513 | if (this.album.length > this.currentImageIndex + 1) { 514 | var preloadNext = new Image(); 515 | preloadNext.src = this.album[this.currentImageIndex + 1].link; 516 | } 517 | if (this.currentImageIndex > 0) { 518 | var preloadPrev = new Image(); 519 | preloadPrev.src = this.album[this.currentImageIndex - 1].link; 520 | } 521 | }; 522 | 523 | Lightbox.prototype.enableKeyboardNav = function() { 524 | this.$lightbox.on('keyup.keyboard', $.proxy(this.keyboardAction, this)); 525 | this.$overlay.on('keyup.keyboard', $.proxy(this.keyboardAction, this)); 526 | }; 527 | 528 | Lightbox.prototype.disableKeyboardNav = function() { 529 | this.$lightbox.off('.keyboard'); 530 | this.$overlay.off('.keyboard'); 531 | }; 532 | 533 | Lightbox.prototype.keyboardAction = function(event) { 534 | var KEYCODE_ESC = 27; 535 | var KEYCODE_LEFTARROW = 37; 536 | var KEYCODE_RIGHTARROW = 39; 537 | 538 | var keycode = event.keyCode; 539 | if (keycode === KEYCODE_ESC) { 540 | // Prevent bubbling so as to not affect other components on the page. 541 | event.stopPropagation(); 542 | this.end(); 543 | } else if (keycode === KEYCODE_LEFTARROW) { 544 | if (this.currentImageIndex !== 0) { 545 | this.changeImage(this.currentImageIndex - 1); 546 | } else if (this.options.wrapAround && this.album.length > 1) { 547 | this.changeImage(this.album.length - 1); 548 | } 549 | } else if (keycode === KEYCODE_RIGHTARROW) { 550 | if (this.currentImageIndex !== this.album.length - 1) { 551 | this.changeImage(this.currentImageIndex + 1); 552 | } else if (this.options.wrapAround && this.album.length > 1) { 553 | this.changeImage(0); 554 | } 555 | } 556 | }; 557 | 558 | // Closing time. :-( 559 | Lightbox.prototype.end = function() { 560 | this.disableKeyboardNav(); 561 | $(window).off('resize', this.sizeOverlay); 562 | this.$lightbox.fadeOut(this.options.fadeDuration); 563 | this.$overlay.fadeOut(this.options.fadeDuration); 564 | 565 | if (this.options.disableScrolling) { 566 | $('body').removeClass('lb-disable-scrolling'); 567 | } 568 | }; 569 | 570 | return new Lightbox(); 571 | })); 572 | -------------------------------------------------------------------------------- /styles/all/template/lightbox/js/lightbox.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Lightbox v2.11.5 3 | * by Lokesh Dhakar 4 | * 5 | * More info: 6 | * http://lokeshdhakar.com/projects/lightbox2/ 7 | * 8 | * Copyright Lokesh Dhakar 9 | * Released under the MIT license 10 | * https://github.com/lokesh/lightbox2/blob/master/LICENSE 11 | * 12 | * @preserve 13 | */ 14 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],b):"object"==typeof exports?module.exports=b(require("jquery")):a.lightbox=b(a.jQuery)}(this,function(a){function b(b){this.album=[],this.currentImageIndex=void 0,this.init(),this.options=a.extend({},this.constructor.defaults),this.option(b)}return b.defaults={albumLabel:"Image %1 of %2",alwaysShowNavOnTouchDevices:!1,fadeDuration:600,fitImagesInViewport:!0,imageFadeDuration:600,positionFromTop:50,resizeDuration:700,showImageNumberLabel:!0,wrapAround:!1,disableScrolling:!1,sanitizeTitle:!1},b.prototype.option=function(b){a.extend(this.options,b)},b.prototype.imageCountLabel=function(a,b){return this.options.albumLabel.replace(/%1/g,a).replace(/%2/g,b)},b.prototype.init=function(){var b=this;a(document).ready(function(){b.enable(),b.build()})},b.prototype.enable=function(){var b=this;a("body").on("click","a[rel^=lightbox], area[rel^=lightbox], a[data-lightbox], area[data-lightbox]",function(c){return b.start(a(c.currentTarget)),!1})},b.prototype.build=function(){if(!(a("#lightbox").length>0)){var b=this;a('
').appendTo(a("body")),this.$lightbox=a("#lightbox"),this.$overlay=a("#lightboxOverlay"),this.$outerContainer=this.$lightbox.find(".lb-outerContainer"),this.$container=this.$lightbox.find(".lb-container"),this.$image=this.$lightbox.find(".lb-image"),this.$nav=this.$lightbox.find(".lb-nav"),this.containerPadding={top:parseInt(this.$container.css("padding-top"),10),right:parseInt(this.$container.css("padding-right"),10),bottom:parseInt(this.$container.css("padding-bottom"),10),left:parseInt(this.$container.css("padding-left"),10)},this.imageBorderWidth={top:parseInt(this.$image.css("border-top-width"),10),right:parseInt(this.$image.css("border-right-width"),10),bottom:parseInt(this.$image.css("border-bottom-width"),10),left:parseInt(this.$image.css("border-left-width"),10)},this.$overlay.hide().on("click",function(){return b.end(),!1}),this.$lightbox.hide().on("click",function(c){"lightbox"===a(c.target).attr("id")&&b.end()}),this.$outerContainer.on("click",function(c){return"lightbox"===a(c.target).attr("id")&&b.end(),!1}),this.$lightbox.find(".lb-prev").on("click",function(){return 0===b.currentImageIndex?b.changeImage(b.album.length-1):b.changeImage(b.currentImageIndex-1),!1}),this.$lightbox.find(".lb-next").on("click",function(){return b.currentImageIndex===b.album.length-1?b.changeImage(0):b.changeImage(b.currentImageIndex+1),!1}),this.$nav.on("mousedown",function(a){3===a.which&&(b.$nav.css("pointer-events","none"),b.$lightbox.one("contextmenu",function(){setTimeout(function(){this.$nav.css("pointer-events","auto")}.bind(b),0)}))}),this.$lightbox.find(".lb-loader, .lb-close").on("click keyup",function(a){if("click"===a.type||"keyup"===a.type&&(13===a.which||32===a.which))return b.end(),!1})}},b.prototype.start=function(b){function c(a){d.album.push({alt:a.attr("data-alt"),link:a.attr("href"),title:a.attr("data-title")||a.attr("title")})}var d=this,e=a(window);e.on("resize",a.proxy(this.sizeOverlay,this)),this.sizeOverlay(),this.album=[];var f,g=0,h=b.attr("data-lightbox");if(h){f=a(b.prop("tagName")+'[data-lightbox="'+h+'"]');for(var i=0;i=1?(i=k,h=parseInt(k/n,10)):(i=parseInt(j/n,10),h=j),f.width(i),f.height(h)):(c.options.fitImagesInViewport?(c.options.maxWidth&&c.options.maxWidthk||g.height>j)&&(g.width/k>g.height/j?(i=k,h=parseInt(g.height/(g.width/i),10),f.width(i),f.height(h)):(h=j,i=parseInt(g.width/(g.height/h),10),f.width(i),f.height(h)))),c.sizeContainer(f.width(),f.height())},g.src=this.album[b].link,this.currentImageIndex=b},b.prototype.sizeOverlay=function(){var b=this;setTimeout(function(){b.$overlay.width(a(document).width()).height(a(document).height())},0)},b.prototype.sizeContainer=function(a,b){function c(){d.$lightbox.find(".lb-dataContainer").width(g),d.$lightbox.find(".lb-prevLink").height(h),d.$lightbox.find(".lb-nextLink").height(h),d.$overlay.trigger("focus"),d.showImage()}var d=this,e=this.$outerContainer.outerWidth(),f=this.$outerContainer.outerHeight(),g=a+this.containerPadding.left+this.containerPadding.right+this.imageBorderWidth.left+this.imageBorderWidth.right,h=b+this.containerPadding.top+this.containerPadding.bottom+this.imageBorderWidth.top+this.imageBorderWidth.bottom;e!==g||f!==h?this.$outerContainer.animate({width:g,height:h},this.options.resizeDuration,"swing",function(){c()}):c()},b.prototype.showImage=function(){this.$lightbox.find(".lb-loader").stop(!0).hide(),this.$lightbox.find(".lb-image").fadeIn(this.options.imageFadeDuration),this.updateNav(),this.updateDetails(),this.preloadNeighboringImages(),this.enableKeyboardNav()},b.prototype.updateNav=function(){var a=!1;try{document.createEvent("TouchEvent"),a=!!this.options.alwaysShowNavOnTouchDevices}catch(a){}this.$lightbox.find(".lb-nav").show(),this.album.length>1&&(this.options.wrapAround?(a&&this.$lightbox.find(".lb-prev, .lb-next").css("opacity","1"),this.$lightbox.find(".lb-prev, .lb-next").show()):(this.currentImageIndex>0&&(this.$lightbox.find(".lb-prev").show(),a&&this.$lightbox.find(".lb-prev").css("opacity","1")),this.currentImageIndex1&&this.options.showImageNumberLabel){var c=this.imageCountLabel(this.currentImageIndex+1,this.album.length);this.$lightbox.find(".lb-number").text(c).fadeIn("fast")}else this.$lightbox.find(".lb-number").hide();this.$outerContainer.removeClass("animating"),this.$lightbox.find(".lb-dataContainer").fadeIn(this.options.resizeDuration,function(){return a.sizeOverlay()})},b.prototype.preloadNeighboringImages=function(){if(this.album.length>this.currentImageIndex+1){(new Image).src=this.album[this.currentImageIndex+1].link}if(this.currentImageIndex>0){(new Image).src=this.album[this.currentImageIndex-1].link}},b.prototype.enableKeyboardNav=function(){this.$lightbox.on("keyup.keyboard",a.proxy(this.keyboardAction,this)),this.$overlay.on("keyup.keyboard",a.proxy(this.keyboardAction,this))},b.prototype.disableKeyboardNav=function(){this.$lightbox.off(".keyboard"),this.$overlay.off(".keyboard")},b.prototype.keyboardAction=function(a){var b=a.keyCode;27===b?(a.stopPropagation(),this.end()):37===b?0!==this.currentImageIndex?this.changeImage(this.currentImageIndex-1):this.options.wrapAround&&this.album.length>1&&this.changeImage(this.album.length-1):39===b&&(this.currentImageIndex!==this.album.length-1?this.changeImage(this.currentImageIndex+1):this.options.wrapAround&&this.album.length>1&&this.changeImage(0))},b.prototype.end=function(){this.disableKeyboardNav(),a(window).off("resize",this.sizeOverlay),this.$lightbox.fadeOut(this.options.fadeDuration),this.$overlay.fadeOut(this.options.fadeDuration),this.options.disableScrolling&&a("body").removeClass("lb-disable-scrolling")},new b}); 15 | //# sourceMappingURL=lightbox.min.map -------------------------------------------------------------------------------- /styles/all/template/lightbox/js/lightbox.min.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["../../src/js/lightbox.js"],"names":["root","factory","define","amd","exports","module","require","lightbox","jQuery","this","$","Lightbox","options","album","currentImageIndex","init","extend","constructor","defaults","option","albumLabel","alwaysShowNavOnTouchDevices","fadeDuration","fitImagesInViewport","imageFadeDuration","positionFromTop","resizeDuration","showImageNumberLabel","wrapAround","disableScrolling","sanitizeTitle","prototype","imageCountLabel","currentImageNum","totalImages","replace","self","document","ready","enable","build","on","event","start","currentTarget","length","appendTo","$lightbox","$overlay","$outerContainer","find","$container","$image","$nav","containerPadding","top","parseInt","css","right","bottom","left","imageBorderWidth","hide","end","target","attr","changeImage","which","one","setTimeout","bind","e","type","$link","addToAlbum","push","alt","link","title","$window","window","proxy","sizeOverlay","$links","imageNumber","dataLightboxValue","prop","i","j","scrollTop","scrollLeft","fadeIn","addClass","filename","filetype","split","slice","disableKeyboardNav","preloader","Image","onload","imageHeight","imageWidth","maxImageHeight","maxImageWidth","windowHeight","windowWidth","src","width","height","aspectRatio","maxWidth","maxHeight","sizeContainer","postResize","newWidth","newHeight","trigger","showImage","oldWidth","outerWidth","oldHeight","outerHeight","animate","stop","updateNav","updateDetails","preloadNeighboringImages","enableKeyboardNav","alwaysShowNav","createEvent","show","$caption","text","html","labelText","removeClass","keyboardAction","off","keycode","keyCode","stopPropagation","fadeOut"],"mappings":";;;;;;;;;;;;;CAeC,SAAUA,EAAMC,GACS,kBAAXC,SAAyBA,OAAOC,IAEvCD,QAAQ,UAAWD,GACO,gBAAZG,SAIdC,OAAOD,QAAUH,EAAQK,QAAQ,WAGjCN,EAAKO,SAAWN,EAAQD,EAAKQ,SAEnCC,KAAM,SAAUC,GAEhB,QAASC,GAASC,GAChBH,KAAKI,SACLJ,KAAKK,sBAAoB,GACzBL,KAAKM,OAGLN,KAAKG,QAAUF,EAAEM,UAAWP,KAAKQ,YAAYC,UAC7CT,KAAKU,OAAOP,GAohBd,MA/gBAD,GAASO,UACPE,WAAY,iBACZC,6BAA6B,EAC7BC,aAAc,IACdC,qBAAqB,EACrBC,kBAAmB,IAGnBC,gBAAiB,GACjBC,eAAgB,IAChBC,sBAAsB,EACtBC,YAAY,EACZC,kBAAkB,EASlBC,eAAe,GAGjBnB,EAASoB,UAAUZ,OAAS,SAASP,GACnCF,EAAEM,OAAOP,KAAKG,QAASA,IAGzBD,EAASoB,UAAUC,gBAAkB,SAASC,EAAiBC,GAC7D,MAAOzB,MAAKG,QAAQQ,WAAWe,QAAQ,MAAOF,GAAiBE,QAAQ,MAAOD,IAGhFvB,EAASoB,UAAUhB,KAAO,WACxB,GAAIqB,GAAO3B,IAEXC,GAAE2B,UAAUC,MAAM,WAChBF,EAAKG,SACLH,EAAKI,WAMT7B,EAASoB,UAAUQ,OAAS,WAC1B,GAAIH,GAAO3B,IACXC,GAAE,QAAQ+B,GAAG,QAAS,+EAAgF,SAASC,GAE7G,MADAN,GAAKO,MAAMjC,EAAEgC,EAAME,iBACZ,KAMXjC,EAASoB,UAAUS,MAAQ,WACzB,KAAI9B,EAAE,aAAamC,OAAS,GAA5B,CAIA,GAAIT,GAAO3B,IAaXC,GAAE,u0BAAu0BoC,SAASpC,EAAE,SAGp1BD,KAAKsC,UAAkBrC,EAAE,aACzBD,KAAKuC,SAAkBtC,EAAE,oBACzBD,KAAKwC,gBAAkBxC,KAAKsC,UAAUG,KAAK,sBAC3CzC,KAAK0C,WAAkB1C,KAAKsC,UAAUG,KAAK,iBAC3CzC,KAAK2C,OAAkB3C,KAAKsC,UAAUG,KAAK,aAC3CzC,KAAK4C,KAAkB5C,KAAKsC,UAAUG,KAAK,WAG3CzC,KAAK6C,kBACHC,IAAKC,SAAS/C,KAAK0C,WAAWM,IAAI,eAAgB,IAClDC,MAAOF,SAAS/C,KAAK0C,WAAWM,IAAI,iBAAkB,IACtDE,OAAQH,SAAS/C,KAAK0C,WAAWM,IAAI,kBAAmB,IACxDG,KAAMJ,SAAS/C,KAAK0C,WAAWM,IAAI,gBAAiB,KAGtDhD,KAAKoD,kBACHN,IAAKC,SAAS/C,KAAK2C,OAAOK,IAAI,oBAAqB,IACnDC,MAAOF,SAAS/C,KAAK2C,OAAOK,IAAI,sBAAuB,IACvDE,OAAQH,SAAS/C,KAAK2C,OAAOK,IAAI,uBAAwB,IACzDG,KAAMJ,SAAS/C,KAAK2C,OAAOK,IAAI,qBAAsB,KAIvDhD,KAAKuC,SAASc,OAAOrB,GAAG,QAAS,WAE/B,MADAL,GAAK2B,OACE,IAGTtD,KAAKsC,UAAUe,OAAOrB,GAAG,QAAS,SAASC,GACN,aAA/BhC,EAAEgC,EAAMsB,QAAQC,KAAK,OACvB7B,EAAK2B,QAITtD,KAAKwC,gBAAgBR,GAAG,QAAS,SAASC,GAIxC,MAHmC,aAA/BhC,EAAEgC,EAAMsB,QAAQC,KAAK,OACvB7B,EAAK2B,OAEA,IAGTtD,KAAKsC,UAAUG,KAAK,YAAYT,GAAG,QAAS,WAM1C,MAL+B,KAA3BL,EAAKtB,kBACPsB,EAAK8B,YAAY9B,EAAKvB,MAAMgC,OAAS,GAErCT,EAAK8B,YAAY9B,EAAKtB,kBAAoB,IAErC,IAGTL,KAAKsC,UAAUG,KAAK,YAAYT,GAAG,QAAS,WAM1C,MALIL,GAAKtB,oBAAsBsB,EAAKvB,MAAMgC,OAAS,EACjDT,EAAK8B,YAAY,GAEjB9B,EAAK8B,YAAY9B,EAAKtB,kBAAoB,IAErC,IAgBTL,KAAK4C,KAAKZ,GAAG,YAAa,SAASC,GACb,IAAhBA,EAAMyB,QACR/B,EAAKiB,KAAKI,IAAI,iBAAkB,QAEhCrB,EAAKW,UAAUqB,IAAI,cAAe,WAChCC,WAAW,WACP5D,KAAK4C,KAAKI,IAAI,iBAAkB,SAClCa,KAAKlC,GAAO,QAMpB3B,KAAKsC,UAAUG,KAAK,yBAAyBT,GAAG,cAAe,SAAS8B,GAEtE,GACa,UAAXA,EAAEC,MAAgC,UAAXD,EAAEC,OAAiC,KAAZD,EAAEJ,OAA4B,KAAZI,EAAEJ,OAElE,MADA/B,GAAK2B,OACE,MAMbpD,EAASoB,UAAUY,MAAQ,SAAS8B,GAWlC,QAASC,GAAWD,GAClBrC,EAAKvB,MAAM8D,MACTC,IAAKH,EAAMR,KAAK,YAChBY,KAAMJ,EAAMR,KAAK,QACjBa,MAAOL,EAAMR,KAAK,eAAiBQ,EAAMR,KAAK,WAdlD,GAAI7B,GAAU3B,KACVsE,EAAUrE,EAAEsE,OAEhBD,GAAQtC,GAAG,SAAU/B,EAAEuE,MAAMxE,KAAKyE,YAAazE,OAE/CA,KAAKyE,cAELzE,KAAKI,QACL,IAYIsE,GAZAC,EAAc,EAWdC,EAAoBZ,EAAMR,KAAK,gBAGnC,IAAIoB,EAAmB,CACrBF,EAASzE,EAAE+D,EAAMa,KAAK,WAAa,mBAAqBD,EAAoB,KAC5E,KAAK,GAAIE,GAAI,EAAGA,EAAIJ,EAAOtC,OAAQ0C,IAAMA,EACvCb,EAAWhE,EAAEyE,EAAOI,KAChBJ,EAAOI,KAAOd,EAAM,KACtBW,EAAcG,OAIlB,IAA0B,aAAtBd,EAAMR,KAAK,OAEbS,EAAWD,OACN,CAELU,EAASzE,EAAE+D,EAAMa,KAAK,WAAa,SAAWb,EAAMR,KAAK,OAAS,KAClE,KAAK,GAAIuB,GAAI,EAAGA,EAAIL,EAAOtC,OAAQ2C,IAAMA,EACvCd,EAAWhE,EAAEyE,EAAOK,KAChBL,EAAOK,KAAOf,EAAM,KACtBW,EAAcI,GAOtB,GAAIjC,GAAOwB,EAAQU,YAAchF,KAAKG,QAAQa,gBAC1CmC,EAAOmB,EAAQW,YACnBjF,MAAKsC,UAAUU,KACbF,IAAKA,EAAM,KACXK,KAAMA,EAAO,OACZ+B,OAAOlF,KAAKG,QAAQU,cAGnBb,KAAKG,QAAQiB,kBACfnB,EAAE,QAAQkF,SAAS,wBAGrBnF,KAAKyD,YAAYkB,IAInBzE,EAASoB,UAAUmC,YAAc,SAASkB,GACxC,GAAIhD,GAAO3B,KACPoF,EAAWpF,KAAKI,MAAMuE,GAAaP,KACnCiB,EAAWD,EAASE,MAAM,KAAKC,OAAO,GAAG,GACzC5C,EAAS3C,KAAKsC,UAAUG,KAAK,YAGjCzC,MAAKwF,qBAGLxF,KAAKuC,SAAS2C,OAAOlF,KAAKG,QAAQU,cAClCZ,EAAE,cAAciF,OAAO,QACvBlF,KAAKsC,UAAUG,KAAK,uFAAuFY,OAC3GrD,KAAKwC,gBAAgB2C,SAAS,YAG9B,IAAIM,GAAY,GAAIC,MACpBD,GAAUE,OAAS,WACjB,GACIC,GACAC,EACAC,EACAC,EACAC,EACAC,CAEJtD,GAAOa,MACLW,IAAOxC,EAAKvB,MAAMuE,GAAaR,IAC/B+B,IAAOd,IAGInF,EAAEwF,GAEf9C,EAAOwD,MAAMV,EAAUU,OACvBxD,EAAOyD,OAAOX,EAAUW,OAExB,IAAIC,GAAcZ,EAAUU,MAAQV,EAAUW,MAE9CH,GAAchG,EAAEsE,QAAQ4B,QACxBH,EAAe/F,EAAEsE,QAAQ6B,SAIzBL,EAAiBE,EAActE,EAAKkB,iBAAiBM,KAAOxB,EAAKkB,iBAAiBI,MAAQtB,EAAKyB,iBAAiBD,KAAOxB,EAAKyB,iBAAiBH,MAAQ,GACrJ6C,EAAiBE,EAAerE,EAAKkB,iBAAiBC,IAAMnB,EAAKkB,iBAAiBK,OAASvB,EAAKyB,iBAAiBN,IAAMnB,EAAKyB,iBAAiBF,OAASvB,EAAKxB,QAAQa,gBAAkB,GAOpK,QAAbqE,GACEgB,GAAe,GACjBR,EAAaE,EACbH,EAAc7C,SAASgD,EAAgBM,EAAa,MAEpDR,EAAa9C,SAAS+C,EAAiBO,EAAa,IACpDT,EAAcE,GAEhBnD,EAAOwD,MAAMN,GACblD,EAAOyD,OAAOR,KAKVjE,EAAKxB,QAAQW,qBAGXa,EAAKxB,QAAQmG,UAAY3E,EAAKxB,QAAQmG,SAAWP,IACnDA,EAAgBpE,EAAKxB,QAAQmG,UAE3B3E,EAAKxB,QAAQoG,WAAa5E,EAAKxB,QAAQoG,UAAYT,IACrDA,EAAiBnE,EAAKxB,QAAQoG,aAIhCR,EAAgBpE,EAAKxB,QAAQmG,UAAYb,EAAUU,OAASJ,EAC5DD,EAAiBnE,EAAKxB,QAAQoG,WAAad,EAAUW,QAAUN,IAK5DL,EAAUU,MAAQJ,GAAmBN,EAAUW,OAASN,KACtDL,EAAUU,MAAQJ,EAAkBN,EAAUW,OAASN,GAC1DD,EAAcE,EACdH,EAAc7C,SAAS0C,EAAUW,QAAUX,EAAUU,MAAQN,GAAa,IAC1ElD,EAAOwD,MAAMN,GACblD,EAAOyD,OAAOR,KAEdA,EAAcE,EACdD,EAAa9C,SAAS0C,EAAUU,OAASV,EAAUW,OAASR,GAAc,IAC1EjD,EAAOwD,MAAMN,GACblD,EAAOyD,OAAOR,MAKpBjE,EAAK6E,cAAc7D,EAAOwD,QAASxD,EAAOyD,WAI5CX,EAAUS,IAAMlG,KAAKI,MAAMuE,GAAaP,KACxCpE,KAAKK,kBAAoBsE,GAI3BzE,EAASoB,UAAUmD,YAAc,WAC/B,GAAI9C,GAAO3B,IAQX4D,YAAW,WACTjC,EAAKY,SACF4D,MAAMlG,EAAE2B,UAAUuE,SAClBC,OAAOnG,EAAE2B,UAAUwE,WAErB,IAKLlG,EAASoB,UAAUkF,cAAgB,SAASX,EAAYD,GAQtD,QAASa,KACP9E,EAAKW,UAAUG,KAAK,qBAAqB0D,MAAMO,GAC/C/E,EAAKW,UAAUG,KAAK,gBAAgB2D,OAAOO,GAC3ChF,EAAKW,UAAUG,KAAK,gBAAgB2D,OAAOO,GAG3ChF,EAAKY,SAASqE,QAAQ,SAEtBjF,EAAKkF,YAfP,GAAIlF,GAAO3B,KAEP8G,EAAY9G,KAAKwC,gBAAgBuE,aACjCC,EAAYhH,KAAKwC,gBAAgByE,cACjCP,EAAYb,EAAa7F,KAAK6C,iBAAiBM,KAAOnD,KAAK6C,iBAAiBI,MAAQjD,KAAKoD,iBAAiBD,KAAOnD,KAAKoD,iBAAiBH,MACvI0D,EAAYf,EAAc5F,KAAK6C,iBAAiBC,IAAM9C,KAAK6C,iBAAiBK,OAASlD,KAAKoD,iBAAiBN,IAAM9C,KAAKoD,iBAAiBF,MAavI4D,KAAaJ,GAAYM,IAAcL,EACzC3G,KAAKwC,gBAAgB0E,SACnBf,MAAOO,EACPN,OAAQO,GACP3G,KAAKG,QAAQc,eAAgB,QAAS,WACvCwF,MAGFA,KAKJvG,EAASoB,UAAUuF,UAAY,WAC7B7G,KAAKsC,UAAUG,KAAK,cAAc0E,MAAK,GAAM9D,OAC7CrD,KAAKsC,UAAUG,KAAK,aAAayC,OAAOlF,KAAKG,QAAQY,mBAErDf,KAAKoH,YACLpH,KAAKqH,gBACLrH,KAAKsH,2BACLtH,KAAKuH,qBAIPrH,EAASoB,UAAU8F,UAAY,WAI7B,GAAII,IAAgB,CACpB,KACE5F,SAAS6F,YAAY,cACrBD,IAAiBxH,KAAKG,QAAmC,4BACzD,MAAO2D,IAET9D,KAAKsC,UAAUG,KAAK,WAAWiF,OAE3B1H,KAAKI,MAAMgC,OAAS,IAClBpC,KAAKG,QAAQgB,YACXqG,GACFxH,KAAKsC,UAAUG,KAAK,sBAAsBO,IAAI,UAAW,KAE3DhD,KAAKsC,UAAUG,KAAK,sBAAsBiF,SAEtC1H,KAAKK,kBAAoB,IAC3BL,KAAKsC,UAAUG,KAAK,YAAYiF,OAC5BF,GACFxH,KAAKsC,UAAUG,KAAK,YAAYO,IAAI,UAAW,MAG/ChD,KAAKK,kBAAoBL,KAAKI,MAAMgC,OAAS,IAC/CpC,KAAKsC,UAAUG,KAAK,YAAYiF,OAC5BF,GACFxH,KAAKsC,UAAUG,KAAK,YAAYO,IAAI,UAAW,SAQzD9C,EAASoB,UAAU+F,cAAgB,WACjC,GAAI1F,GAAO3B,IAIX,QAAwD,KAA7CA,KAAKI,MAAMJ,KAAKK,mBAAmBgE,OACC,KAA7CrE,KAAKI,MAAMJ,KAAKK,mBAAmBgE,MAAc,CACjD,GAAIsD,GAAW3H,KAAKsC,UAAUG,KAAK,cAC/BzC,MAAKG,QAAQkB,cACfsG,EAASC,KAAK5H,KAAKI,MAAMJ,KAAKK,mBAAmBgE,OAEjDsD,EAASE,KAAK7H,KAAKI,MAAMJ,KAAKK,mBAAmBgE,OAEnDsD,EAASzC,OAAO,QAGlB,GAAIlF,KAAKI,MAAMgC,OAAS,GAAKpC,KAAKG,QAAQe,qBAAsB,CAC9D,GAAI4G,GAAY9H,KAAKuB,gBAAgBvB,KAAKK,kBAAoB,EAAGL,KAAKI,MAAMgC,OAC5EpC,MAAKsC,UAAUG,KAAK,cAAcmF,KAAKE,GAAW5C,OAAO,YAEzDlF,MAAKsC,UAAUG,KAAK,cAAcY,MAGpCrD,MAAKwC,gBAAgBuF,YAAY,aAEjC/H,KAAKsC,UAAUG,KAAK,qBAAqByC,OAAOlF,KAAKG,QAAQc,eAAgB,WAC3E,MAAOU,GAAK8C,iBAKhBvE,EAASoB,UAAUgG,yBAA2B,WAC5C,GAAItH,KAAKI,MAAMgC,OAASpC,KAAKK,kBAAoB,EAAG,EAChC,GAAIqF,QACVQ,IAAMlG,KAAKI,MAAMJ,KAAKK,kBAAoB,GAAG+D,KAE3D,GAAIpE,KAAKK,kBAAoB,EAAG,EACZ,GAAIqF,QACVQ,IAAMlG,KAAKI,MAAMJ,KAAKK,kBAAoB,GAAG+D,OAI7DlE,EAASoB,UAAUiG,kBAAoB,WACrCvH,KAAKsC,UAAUN,GAAG,iBAAkB/B,EAAEuE,MAAMxE,KAAKgI,eAAgBhI,OACjEA,KAAKuC,SAASP,GAAG,iBAAkB/B,EAAEuE,MAAMxE,KAAKgI,eAAgBhI,QAGlEE,EAASoB,UAAUkE,mBAAqB,WACtCxF,KAAKsC,UAAU2F,IAAI,aACnBjI,KAAKuC,SAAS0F,IAAI,cAGpB/H,EAASoB,UAAU0G,eAAiB,SAAS/F,GAC3C,GAIIiG,GAAUjG,EAAMkG,OAJK,MAKrBD,GAEFjG,EAAMmG,kBACNpI,KAAKsD,OAPkB,KAQd4E,EACsB,IAA3BlI,KAAKK,kBACPL,KAAKyD,YAAYzD,KAAKK,kBAAoB,GACjCL,KAAKG,QAAQgB,YAAcnB,KAAKI,MAAMgC,OAAS,GACxDpC,KAAKyD,YAAYzD,KAAKI,MAAMgC,OAAS,GAXhB,KAad8F,IACLlI,KAAKK,oBAAsBL,KAAKI,MAAMgC,OAAS,EACjDpC,KAAKyD,YAAYzD,KAAKK,kBAAoB,GACjCL,KAAKG,QAAQgB,YAAcnB,KAAKI,MAAMgC,OAAS,GACxDpC,KAAKyD,YAAY,KAMvBvD,EAASoB,UAAUgC,IAAM,WACvBtD,KAAKwF,qBACLvF,EAAEsE,QAAQ0D,IAAI,SAAUjI,KAAKyE,aAC7BzE,KAAKsC,UAAU+F,QAAQrI,KAAKG,QAAQU,cACpCb,KAAKuC,SAAS8F,QAAQrI,KAAKG,QAAQU,cAE/Bb,KAAKG,QAAQiB,kBACfnB,EAAE,QAAQ8H,YAAY,yBAInB,GAAI7H","file":"lightbox.min.js"} --------------------------------------------------------------------------------