1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 | var __assign = function() {
|
24 | __assign = Object.assign || function __assign(t) {
|
25 | for (var s, i = 1, n = arguments.length; i < n; i++) {
|
26 | s = arguments[i];
|
27 | for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
28 | }
|
29 | return t;
|
30 | };
|
31 | return __assign.apply(this, arguments);
|
32 | };
|
33 |
|
34 | function __spreadArrays() {
|
35 | for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
|
36 | for (var r = Array(s), k = 0, i = 0; i < il; i++)
|
37 | for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
|
38 | r[k] = a[j];
|
39 | return r;
|
40 | }
|
41 |
|
42 | var shareSettings = {
|
43 | share: true,
|
44 | facebook: true,
|
45 | facebookDropdownText: 'Facebook',
|
46 | twitter: true,
|
47 | twitterDropdownText: 'Twitter',
|
48 | pinterest: true,
|
49 | pinterestDropdownText: 'Pinterest',
|
50 | additionalShareOptions: [],
|
51 | sharePluginStrings: { share: 'Share' },
|
52 | };
|
53 |
|
54 | function getFacebookShareLink(galleryItem) {
|
55 | var facebookBaseUrl = '//www.facebook.com/sharer/sharer.php?u=';
|
56 | return (facebookBaseUrl +
|
57 | encodeURIComponent(galleryItem.facebookShareUrl || window.location.href));
|
58 | }
|
59 |
|
60 | function getTwitterShareLink(galleryItem) {
|
61 | var twitterBaseUrl = '//twitter.com/intent/tweet?text=';
|
62 | var url = encodeURIComponent(galleryItem.twitterShareUrl || window.location.href);
|
63 | var text = galleryItem.tweetText;
|
64 | return twitterBaseUrl + text + '&url=' + url;
|
65 | }
|
66 |
|
67 | function getPinterestShareLink(galleryItem) {
|
68 | var pinterestBaseUrl = 'http://www.pinterest.com/pin/create/button/?url=';
|
69 | var description = galleryItem.pinterestText;
|
70 | var media = encodeURIComponent(galleryItem.src);
|
71 | var url = encodeURIComponent(galleryItem.pinterestShareUrl || window.location.href);
|
72 | return (pinterestBaseUrl +
|
73 | url +
|
74 | '&media=' +
|
75 | media +
|
76 | '&description=' +
|
77 | description);
|
78 | }
|
79 |
|
80 |
|
81 |
|
82 |
|
83 |
|
84 |
|
85 | var lGEvents = {
|
86 | afterAppendSlide: 'lgAfterAppendSlide',
|
87 | init: 'lgInit',
|
88 | hasVideo: 'lgHasVideo',
|
89 | containerResize: 'lgContainerResize',
|
90 | updateSlides: 'lgUpdateSlides',
|
91 | afterAppendSubHtml: 'lgAfterAppendSubHtml',
|
92 | beforeOpen: 'lgBeforeOpen',
|
93 | afterOpen: 'lgAfterOpen',
|
94 | slideItemLoad: 'lgSlideItemLoad',
|
95 | beforeSlide: 'lgBeforeSlide',
|
96 | afterSlide: 'lgAfterSlide',
|
97 | posterClick: 'lgPosterClick',
|
98 | dragStart: 'lgDragStart',
|
99 | dragMove: 'lgDragMove',
|
100 | dragEnd: 'lgDragEnd',
|
101 | beforeNextSlide: 'lgBeforeNextSlide',
|
102 | beforePrevSlide: 'lgBeforePrevSlide',
|
103 | beforeClose: 'lgBeforeClose',
|
104 | afterClose: 'lgAfterClose',
|
105 | rotateLeft: 'lgRotateLeft',
|
106 | rotateRight: 'lgRotateRight',
|
107 | flipHorizontal: 'lgFlipHorizontal',
|
108 | flipVertical: 'lgFlipVertical',
|
109 | autoplay: 'lgAutoplay',
|
110 | autoplayStart: 'lgAutoplayStart',
|
111 | autoplayStop: 'lgAutoplayStop',
|
112 | };
|
113 |
|
114 | var Share = (function () {
|
115 | function Share(instance) {
|
116 | this.shareOptions = [];
|
117 |
|
118 | this.core = instance;
|
119 |
|
120 | this.settings = __assign(__assign({}, shareSettings), this.core.settings);
|
121 | return this;
|
122 | }
|
123 | Share.prototype.init = function () {
|
124 | if (!this.settings.share) {
|
125 | return;
|
126 | }
|
127 | this.shareOptions = __spreadArrays(this.getDefaultShareOptions(), this.settings.additionalShareOptions);
|
128 | this.setLgShareMarkup();
|
129 | this.core.outer
|
130 | .find('.lg-share .lg-dropdown')
|
131 | .append(this.getShareListHtml());
|
132 | this.core.LGel.on(lGEvents.afterSlide + ".share", this.onAfterSlide.bind(this));
|
133 | };
|
134 | Share.prototype.getShareListHtml = function () {
|
135 | var shareHtml = '';
|
136 | this.shareOptions.forEach(function (shareOption) {
|
137 | shareHtml += shareOption.dropdownHTML;
|
138 | });
|
139 | return shareHtml;
|
140 | };
|
141 | Share.prototype.setLgShareMarkup = function () {
|
142 | var _this = this;
|
143 | 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>");
|
144 | this.core.outer.append('<div class="lg-dropdown-overlay"></div>');
|
145 | var $shareButton = this.core.outer.find('.lg-share');
|
146 | $shareButton.first().on('click.lg', function () {
|
147 | _this.core.outer.toggleClass('lg-dropdown-active');
|
148 | if (_this.core.outer.hasClass('lg-dropdown-active')) {
|
149 | _this.core.outer.attr('aria-expanded', true);
|
150 | }
|
151 | else {
|
152 | _this.core.outer.attr('aria-expanded', false);
|
153 | }
|
154 | });
|
155 | this.core.outer
|
156 | .find('.lg-dropdown-overlay')
|
157 | .first()
|
158 | .on('click.lg', function () {
|
159 | _this.core.outer.removeClass('lg-dropdown-active');
|
160 | _this.core.outer.attr('aria-expanded', false);
|
161 | });
|
162 | };
|
163 | Share.prototype.onAfterSlide = function (event) {
|
164 | var _this = this;
|
165 | var index = event.detail.index;
|
166 | var currentItem = this.core.galleryItems[index];
|
167 | setTimeout(function () {
|
168 | _this.shareOptions.forEach(function (shareOption) {
|
169 | var selector = shareOption.selector;
|
170 | _this.core.outer
|
171 | .find(selector)
|
172 | .attr('href', shareOption.generateLink(currentItem));
|
173 | });
|
174 | }, 100);
|
175 | };
|
176 | Share.prototype.getShareListItemHTML = function (type, text) {
|
177 | return "<li><a class=\"lg-share-" + type + "\" rel=\"noopener\" target=\"_blank\"><span class=\"lg-icon\"></span><span class=\"lg-dropdown-text\">" + text + "</span></a></li>";
|
178 | };
|
179 | Share.prototype.getDefaultShareOptions = function () {
|
180 | return __spreadArrays((this.settings.facebook
|
181 | ? [
|
182 | {
|
183 | type: 'facebook',
|
184 | generateLink: getFacebookShareLink,
|
185 | dropdownHTML: this.getShareListItemHTML('facebook', this.settings.facebookDropdownText),
|
186 | selector: '.lg-share-facebook',
|
187 | },
|
188 | ]
|
189 | : []), (this.settings.twitter
|
190 | ? [
|
191 | {
|
192 | type: 'twitter',
|
193 | generateLink: getTwitterShareLink,
|
194 | dropdownHTML: this.getShareListItemHTML('twitter', this.settings.twitterDropdownText),
|
195 | selector: '.lg-share-twitter',
|
196 | },
|
197 | ]
|
198 | : []), (this.settings.pinterest
|
199 | ? [
|
200 | {
|
201 | type: 'pinterest',
|
202 | generateLink: getPinterestShareLink,
|
203 | dropdownHTML: this.getShareListItemHTML('pinterest', this.settings.pinterestDropdownText),
|
204 | selector: '.lg-share-pinterest',
|
205 | },
|
206 | ]
|
207 | : []));
|
208 | };
|
209 | Share.prototype.destroy = function () {
|
210 | this.core.outer.find('.lg-dropdown-overlay').remove();
|
211 | this.core.outer.find('.lg-share').remove();
|
212 | this.core.LGel.off('.lg.share');
|
213 | this.core.LGel.off('.share');
|
214 | };
|
215 | return Share;
|
216 | }());
|
217 |
|
218 | export default Share;
|
219 |
|