1/*! 2 * lightgallery | 2.7.1 | January 11th 2023 3 * http://www.lightgalleryjs.com/ 4 * Copyright (c) 2020 Sachin Neravath; 5 * @license GPLv3 6 */ 7 8(function (global, factory) { 9 typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 10 typeof define === 'function' && define.amd ? define(factory) : 11 (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lgShare = factory()); 12}(this, (function () { 'use strict'; 13 14 /*! ***************************************************************************** 15 Copyright (c) Microsoft Corporation. 16 17 Permission to use, copy, modify, and/or distribute this software for any 18 purpose with or without fee is hereby granted. 19 20 THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH 21 REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 22 AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, 23 INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 24 LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 25 OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 26 PERFORMANCE OF THIS SOFTWARE. 27 ***************************************************************************** */ 28 29 var __assign = function() { 30 __assign = Object.assign || function __assign(t) { 31 for (var s, i = 1, n = arguments.length; i < n; i++) { 32 s = arguments[i]; 33 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; 34 } 35 return t; 36 }; 37 return __assign.apply(this, arguments); 38 }; 39 40 function __spreadArrays() { 41 for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; 42 for (var r = Array(s), k = 0, i = 0; i < il; i++) 43 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) 44 r[k] = a[j]; 45 return r; 46 } 47 48 var shareSettings = { 49 share: true, 50 facebook: true, 51 facebookDropdownText: 'Facebook', 52 twitter: true, 53 twitterDropdownText: 'Twitter', 54 pinterest: true, 55 pinterestDropdownText: 'Pinterest', 56 additionalShareOptions: [], 57 sharePluginStrings: { share: 'Share' }, 58 }; 59 60 function getFacebookShareLink(galleryItem) { 61 var facebookBaseUrl = '//www.facebook.com/sharer/sharer.php?u='; 62 return (facebookBaseUrl + 63 encodeURIComponent(galleryItem.facebookShareUrl || window.location.href)); 64 } 65 66 function getTwitterShareLink(galleryItem) { 67 var twitterBaseUrl = '//twitter.com/intent/tweet?text='; 68 var url = encodeURIComponent(galleryItem.twitterShareUrl || window.location.href); 69 var text = galleryItem.tweetText; 70 return twitterBaseUrl + text + '&url=' + url; 71 } 72 73 function getPinterestShareLink(galleryItem) { 74 var pinterestBaseUrl = 'http://www.pinterest.com/pin/create/button/?url='; 75 var description = galleryItem.pinterestText; 76 var media = encodeURIComponent(galleryItem.src); 77 var url = encodeURIComponent(galleryItem.pinterestShareUrl || window.location.href); 78 return (pinterestBaseUrl + 79 url + 80 '&media=' + 81 media + 82 '&description=' + 83 description); 84 } 85 86 /** 87 * List of lightGallery events 88 * All events should be documented here 89 * Below interfaces are used to build the website documentations 90 * */ 91 var lGEvents = { 92 afterAppendSlide: 'lgAfterAppendSlide', 93 init: 'lgInit', 94 hasVideo: 'lgHasVideo', 95 containerResize: 'lgContainerResize', 96 updateSlides: 'lgUpdateSlides', 97 afterAppendSubHtml: 'lgAfterAppendSubHtml', 98 beforeOpen: 'lgBeforeOpen', 99 afterOpen: 'lgAfterOpen', 100 slideItemLoad: 'lgSlideItemLoad', 101 beforeSlide: 'lgBeforeSlide', 102 afterSlide: 'lgAfterSlide', 103 posterClick: 'lgPosterClick', 104 dragStart: 'lgDragStart', 105 dragMove: 'lgDragMove', 106 dragEnd: 'lgDragEnd', 107 beforeNextSlide: 'lgBeforeNextSlide', 108 beforePrevSlide: 'lgBeforePrevSlide', 109 beforeClose: 'lgBeforeClose', 110 afterClose: 'lgAfterClose', 111 rotateLeft: 'lgRotateLeft', 112 rotateRight: 'lgRotateRight', 113 flipHorizontal: 'lgFlipHorizontal', 114 flipVertical: 'lgFlipVertical', 115 autoplay: 'lgAutoplay', 116 autoplayStart: 'lgAutoplayStart', 117 autoplayStop: 'lgAutoplayStop', 118 }; 119 120 var Share = /** @class */ (function () { 121 function Share(instance) { 122 this.shareOptions = []; 123 // get lightGallery core plugin instance 124 this.core = instance; 125 // extend module default settings with lightGallery core settings 126 this.settings = __assign(__assign({}, shareSettings), this.core.settings); 127 return this; 128 } 129 Share.prototype.init = function () { 130 if (!this.settings.share) { 131 return; 132 } 133 this.shareOptions = __spreadArrays(this.getDefaultShareOptions(), this.settings.additionalShareOptions); 134 this.setLgShareMarkup(); 135 this.core.outer 136 .find('.lg-share .lg-dropdown') 137 .append(this.getShareListHtml()); 138 this.core.LGel.on(lGEvents.afterSlide + ".share", this.onAfterSlide.bind(this)); 139 }; 140 Share.prototype.getShareListHtml = function () { 141 var shareHtml = ''; 142 this.shareOptions.forEach(function (shareOption) { 143 shareHtml += shareOption.dropdownHTML; 144 }); 145 return shareHtml; 146 }; 147 Share.prototype.setLgShareMarkup = function () { 148 var _this = this; 149 this.core.$toolbar.append("<button type=\"button\" aria-label=\"" + this.settings.sharePluginStrings['share'] + "\" aria-haspopup=\"true\" aria-expanded=\"false\" class=\"lg-share lg-icon\">\n <ul class=\"lg-dropdown\" style=\"position: absolute;\"></ul></button>"); 150 this.core.outer.append('<div class="lg-dropdown-overlay"></div>'); 151 var $shareButton = this.core.outer.find('.lg-share'); 152 $shareButton.first().on('click.lg', function () { 153 _this.core.outer.toggleClass('lg-dropdown-active'); 154 if (_this.core.outer.hasClass('lg-dropdown-active')) { 155 _this.core.outer.attr('aria-expanded', true); 156 } 157 else { 158 _this.core.outer.attr('aria-expanded', false); 159 } 160 }); 161 this.core.outer 162 .find('.lg-dropdown-overlay') 163 .first() 164 .on('click.lg', function () { 165 _this.core.outer.removeClass('lg-dropdown-active'); 166 _this.core.outer.attr('aria-expanded', false); 167 }); 168 }; 169 Share.prototype.onAfterSlide = function (event) { 170 var _this = this; 171 var index = event.detail.index; 172 var currentItem = this.core.galleryItems[index]; 173 setTimeout(function () { 174 _this.shareOptions.forEach(function (shareOption) { 175 var selector = shareOption.selector; 176 _this.core.outer 177 .find(selector) 178 .attr('href', shareOption.generateLink(currentItem)); 179 }); 180 }, 100); 181 }; 182 Share.prototype.getShareListItemHTML = function (type, text) { 183 return "<li><a class=\"lg-share-" + type + "\" rel=\"noopener\" target=\"_blank\"><span class=\"lg-icon\"></span><span class=\"lg-dropdown-text\">
183" + text + "</span></a></li>"; 184 }; 185 Share.prototype.getDefaultShareOptions = function () { 186 return __spreadArrays((this.settings.facebook 187 ? [ 188 { 189 type: 'facebook', 190 generateLink: getFacebookShareLink, 191 dropdownHTML: this.getShareListItemHTML('facebook', this.settings.facebookDropdownText), 192 selector: '.lg-share-facebook', 193 }, 194 ] 195 : []), (this.settings.twitter 196 ? [ 197 { 198 type: 'twitter', 199 generateLink: getTwitterShareLink, 200 dropdownHTML: this.getShareListItemHTML('twitter', this.settings.twitterDropdownText), 201 selector: '.lg-share-twitter', 202 }, 203 ] 204 : []), (this.settings.pinterest 205 ? [ 206 { 207 type: 'pinterest', 208 generateLink: getPinterestShareLink, 209 dropdownHTML: this.getShareListItemHTML('pinterest', this.settings.pinterestDropdownText), 210 selector: '.lg-share-pinterest', 211 }, 212 ] 213 : [])); 214 }; 215 Share.prototype.destroy = function () { 216 this.core.outer.find('.lg-dropdown-overlay').remove(); 217 this.core.outer.find('.lg-share').remove(); 218 this.core.LGel.off('.lg.share'); 219 this.core.LGel.off('.share'); 220 }; 221 return Share; 222 }()); 223 224 return Share; 225 226}))); 227//# sourceMappingURL=lg-share.umd.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.