PageSourceSearch

https://sp20krk.pl/app/pics/jsw/views/noticeboard/GalleryView.js

js sp20krk.pl collected 2026-10-06 13:34:19 UTC 24,972 bytes, 428 lines download raw bytes

1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.GalleryViewSingleold = exports.GalleryViewSingle = exports.GalleryImage = exports.GalleryViewMulti = exports.GalleryView = void 0;
4var tslib_1 = require("tslib");
5var React = require("react");
6var EdupageAppData_1 = require("../../data/EdupageAppData");
7var LoginUtils_1 = require("../../data/LoginUtils");
8var ViewLoadingContainer_1 = require("../../components/ViewLoadingContainer");
9var OfflineView_1 = require("../OfflineView");
10var EdupageApp_1 = require("../../EdupageApp");
11var AppCommandsProvider_1 = require("../../data/AppCommandsProvider");
12var AppReactUtils_1 = require("../../utils/AppReactUtils");
13var applongpressitem_1 = require("../../components/applongpressitem");
14var AppContextToolbar_1 = require("../../components/AppContextToolbar");
15var AppNative_1 = require("../../data/AppNative");
16var AscPhotoSwipe_1 = require("../../../../../elearning/pics/jsw/AscPhotoSwipe");
17importCss('/photos/pics/css/photos.css');
18importCss('/photos/pics/css/photoswipe.css');
19importCss('/photos/pics/css/photoswipe/default-skin.css');
20importLegacyJsLib('/skin/pics/js/unveil.js');
21importLegacyJsLib('/elearning/pics/js/etest/utilsETest.js');
22importLegacyJsLib('/photos/pics/js/photoswipe.js');
23importLegacyJsLib('/photos/pics/js/photoswipe-ui-default.js');
24importLegacyJsLib('/photos/pics/js/edupageAlbum2.js');
25function GalleryView(props) {
26    var photosData = null;
27    if (props.photosData) {
28        photosData = props.photosData;
29    }
30    else {
31        var loggedUser = LoginUtils_1.LoginUtils.getLoggedUserObj();
32        var url0 = '/photos/?jwgc=EdupageGalleryViewer&akcia=getData';
33        var url = Edupage.buildMobileUrl(url0, loggedUser ? loggedUser.edupage : null, loggedUser);
34        var postData = {
35            photo: props.albumid,
36            gallery: props.galleryid,
37            fileid: props.fileid
38        };
39        if (props.files) {
40            postData['files'] = props.files.join(';');
41        }
42        var photosData0 = EdupageAppData_1.EdupageAppData.useOnlineData(url, postData)[0];
43        photosData = photosData0;
44    }
45    React.useEffect(function () {
46        EdupageApp_1.EdupageApp.inst.setViewTitle(' ', props.viewid);
47    }, []);
48    if (photosData.status == 'offline') {
49        return (React.createElement(OfflineView_1.OfflineView, null));
50    }
51    if (photosData.status != 'loaded') {
52        return (React.createElement(ViewLoadingContainer_1.ViewLoadingContainer, null));
53    }
54    return (React.createElement("div", { className: "app-view-outer0" }, props.showSinglePhoto
55        ? React.createElement(GalleryViewSingle, tslib_1.__assign({}, props, { photosData: photosData }))
56        : React.createElement(GalleryViewMulti, tslib_1.__assign({}, props, { photosData: photosData }))));
57}
58exports.GalleryView = GalleryView;
59function GalleryViewMulti(props) {
60    var _this = this;
61    var _a, _b, _c, _d;
62    var mainElemRef = React.useRef(null);
63    var photosData = props.photosData;
64    var photos = ((_a = photosData === null || photosData === void 0 ? void 0 : photosData.data) === null || _a === void 0 ? void 0 : _a.photos) || [];
65    var _e = AppReactUtils_1.AppReactUtils.useRefState({}), unveiledImages = _e[0], setUnveiledImages = _e[1], unveiledImagesRef = _e[2];
66    var _f = AppReactUtils_1.AppReactUtils.useRefState(0), refreshCounter = _f[0], setRefreshCounter = _f[1], refreshCounterRef = _f[2];
67    var wasScrolledRef = React.useRef(false);
68    var _g = AppReactUtils_1.AppReactUtils.useRefState({}), checkedItems = _g[0], setCheckedItems = _g[1], checkedItemsRef = _g[2];
69    var _h = AppReactUtils_1.AppReactUtils.useRefState(false), checkMode = _h[0], setCheckMode = _h[1], checkModeRef = _h[2];
70    var nativeAppVersion = AppReactUtils_1.AppReactUtils.useAsyncMemo(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
71        return tslib_1.__generator(this, function (_a) {
72            switch (_a.label) {
73                case 0: return [4, EdupageAppData_1.EdupageAppData.getNativeAppVersion()];
74                case 1: return [2, _a.sent()];
75            }
76        });
77    }); }, [], '2.1.0');
78    var numToUnveilAtStart = 9;
79    React.useEffect(function () {
80        EdupageApp_1.EdupageApp.inst.setViewTitle(' ', props.viewid);
81        var $scrollParent = $(mainElemRef.current).scrollParent();
82        function handleScroll(e) {
83            var $scrollContainer = orientation == 'landscape' ? $(mainElemRef.current) : $scrollParent;
84            var orientation = $(window).width() > $(window).height() ? 'landscape' : 'portrait';
85            var wndDim = orientation == 'landscape' ? $(window).width() : $(window).height();
86            var st = orientation == 'landscape' ? $scrollContainer.scrollLeft() : $scrollContainer.scrollTop();
87            var po = $scrollContainer.offset();
88            var unveilToY = st + wndDim * 3;
89            var toUnveil = {};
90            var somethingNew = false;
91            $(mainElemRef.current).find('img').each(function () {
92                var $this = $(this);
93                var o = $this.offset();
94                var pos = orientation == 'landscape' ? o.left + st - po.left : o.top + st - po.top;
95                if (pos <= unveilToY) {
96                    var ind = parseInt($this.attr('data-ind'));
97                    toUnveil[$this.attr('data-ind')] = true;
98                    if (ind >= numToUnveilAtStart && !unveiledImagesRef.current[ind]) {
99                        somethingNew = true;
100                    }
101                }
102            });
103            if (somethingNew) {
104                setUnveiledImages(toUnveil);
105            }
106            if (e) {
107                wasScrolledRef.current = true;
108            }
109        }
110        function handleResize() {
111            setRefreshCounter(refreshCounterRef.current + 1);
112        }
113        AppCommandsProvider_1.AppCommandsProvider.get().setStatusbarColor("#000000");
114        handleScroll(null);
115        $(window).on('resize', handleResize);
116        $scrollParent.on('scroll', handleScroll);
117        $(mainElemRef.current).on('scroll', handleScroll);
118        return function () {
119            $scrollParent.off('scroll', handleScroll);
120            $(window).off('resize', handleResize);
121            $(mainElemRef.current).off('scroll', handleScroll);
122        };
123    }, []);
124    React.useEffect(function () {
125        function handleGotoIndex() {
126            var _a;
127            if (wasScrolledRef.current)
128                return;
129            if (!((_a = photosData === null || photosData === void 0 ? void 0 : photosData.data) === null || _a === void 0 ? void 0 : _a.index))
130                return;
131            if ($(mainElemRef.current).closest('body').length == 0)
132                return;
133            var elem = $(mainElemRef.current).find('.photos-multigal-item[data-ind="' + photosData.data.index + '"]');
134            if (!elem.length)
135                return;
136            ETestUtils.ensureElementInFocusRect(elem, null, {
137                scrollContainer: elem.scrollParent(),
138                offsetTop: $(window).height() * 0.3,
139                offsetBottom: $(window).height() * 0.3,
140                animate: true
141            });
142        }
143        function handleImageLoaded(e) {
144            if (initTimeout) {
145                clearTimeout(initTimeout);
146                initTimeout = null;
147            }
148            handleGotoIndex();
149        }
150        var initTimeout = setTimeout(function () {
151            handleGotoIndex();
152        }, 100);
153        $(window).on('EdupageAppGalleryImageLoaded', handleImageLoaded);
154        return function () {
155            if (initTimeout) {
156                clearTimeout(initTimeout);
157                initTimeout = null;
158            }
159            $(window).off('EdupageAppGalleryImageLoaded', handleImageLoaded);
160        };
161    }, [(_b = photosData === null || photosData === void 0 ? void 0 : photosData.data) === null || _b === void 0 ? void 0 : _b.index, photosData === null || photosData === void 0 ? void 0 : photosData.data, unveiledImages]);
162    React.useEffect(function () {
163        if (wasScrolledRef.current) {
164            wasScrolledRef.current = false;
165        }
166    }, [photosData.data]);
167    function photoClick(ind) {
168        if (checkModeRef.current) {
169            var nv = $.extend({}, checkedItemsRef.current);
170            if (checkedItemsRef.current[ind]) {
171                delete nv[ind];
172            }
173            else {
174                nv[ind] = true;
175            }
176            setCheckedItems(nv);
177            return;
178        }
179        var nprops = tslib_1.__assign(tslib_1.__assign({}, props), { photosData: $.extend(true, {}, photosData), gotoIndex: parseInt(ind), showSinglePhoto: true, noTransitions: true });
180        EdupageApp_1.EdupageApp.pushReactComponentView("/app/pics/jsw/views/noticeboard/GalleryView.js", nprops);
181    }
182    function photoLongPress(ind) {
183        var nv = $.extend({}, checkedItemsRef.current);
184        if (checkedItemsRef.current[ind]) {
185            delete nv[ind];
186        }
187        else {
188            nv[ind] = true;
189        }
190        setCheckedItems(nv);
191        setCheckMode(true);
192    }
193    function clearSelectedItems() {
194        setCheckedItems({});
195        setCheckMode(false);
196    }
197    function downloadSelected() {
198        var _a;
199        var toDownload = photos.filter(function (r, ind) { return !!checkedItems[ind]; }).map(function (r) { return ({ url: ETestUtils.fixIOSSrc((r.hdsrc ? r.hdsrc : r.src).toString().replace('/cloud?', '/clouddownload?')), name: r.name || "photo.jpg" }); });
200        (_a = AppNative_1.AppNative.downloadImages) === null || _a === void 0 ? void 0 : _a.call(AppNative_1.AppNative, toDownload);
201    }
202    function allCheckedChange(e) {
203        var nv = {};
204        if (e.currentTarget.checked) {
205            for (var i = 0; i < photos.length; i++) {
206                nv[i] = true;
207            }
208        }
209        setCheckedItems(nv);
210    }
211    function shareSelected() {
212        var _a;
213        var toDownload = photos.filter(function (r, ind) { return !!checkedItems[ind]; }).map(function (r) { return ({ url: ETestUtils.fixIOSSrc((r.hdsrc ? r.hdsrc : r.src).toString().replace('/cloud?', '/clouddownload?')), name: r.name || "photo.jpg" }); });
214        (_a = AppNative_1.AppNative.shareFiles) === null || _a === void 0 ? void 0 : _a.call(AppNative_1.AppNative, toDownload);
215    }
216    var orientation = $(window).width() > $(window).height() ? 'landscape' : 'portrait';
217    var numSelectedItems = Object.keys(checkedItems).length;
218    return (React.createElement("div", { className: "app-view-outer photos-multigal " + orientation, ref: mainElemRef },
219        (numSelectedItems > 0 || checkModeRef.current) && (React.createElement(AppContextToolbar_1.AppContextToolbar, { onBackClick: clearSelectedItems, viewid: props.viewid },
220            React.createElement("div", { className: "app-header-actions flex" },
221                React.createElement("div", { className: "app-header-text" },
222                    React.createElement("span", null, numSelectedItems)),
223                MobileAppBridge.isIOS() || MobileAppBridge.compareVersion(nativeAppVersion, '2.2.0') < 0
224                    ? null
225                    : React.createElement(React.Fragment, null,
226                        React.createElement("a", tslib_1.__assign({ className: "app-header-action", title: ls(3644), "aria-label": ls(3644) }, tapOrClick(downloadSelected)),
227                            React.createElement("i", { className: "fa fa-fw fa-download", "aria-hidden": "true" })),
228                        React.createElement("a", tslib_1.__assign({ className: "app-header-action", title: ls(15067), "aria-label": ls(15067) }, tapOrClick(shareSelected), { style: { marginRight: '-8px' } }),
229                            React.createElement("i", { className: "material-icons", "aria-hidden": "true" }, "share")))),
230            React.createElement("div", { style: { position: 'absolute', left: '-55px', top: '55px', backgroundColor: 'rgba(34, 47, 62, 0.3)', padding: '6px 16px', borderRadius: '0 0 16px 0' } },
231                React.createElement("label", { className: 'app-block-label-check' },
232                    React.createElement("input", { type: "checkbox", checked: numSelectedItems == photos.length, onChange: allCheckedChange }),
233                    ls(4288))))),
234        React.createElement("div", { className: "photos-multigal-hero" },
235            React.createElement("h1", { className: "photos-multigal-title" }, undoet(((_c = photosData.data) === null || _c === void 0 ? void 0 : _c.galleryTitle) || "")),
236            React.createElement("div", { className: "photos-multigal-subtitle" }, undoet(((_d = photosData.data) === null || _d === void 0 ? void 0 : _d.galleryDesc) || ""))),
237        React.createElement("div", { className: "photos-multigal-list" }, photos.map(function (r, ind) {
238            return (React.createElement(GalleryImage, tslib_1.__assign({ row: r, unveiledImages: unveiledImages }, tapOrClick(photoClick), { index: ind, key: ind, numToUnveilAtStart: numToUnveilAtStart, onLongPress: photoLongPress, className: checkedItems[ind] ? 'selected' : '' })));
239        }))));
240}
241exports.GalleryViewMulti = GalleryViewMulti;
242function GalleryImage(props) {
243    var _a = AppReactUtils_1.AppReactUtils.useRefState(false), isLoaded = _a[0], setIsLoaded = _a[1], isLoadedRef = _a[2];
244    var _b = AppReactUtils_1.AppReactUtils.useRefState(0), retries = _b[0], setNumRetries = _b[1], numRetriesRef = _b[2];
245    var _c = AppReactUtils_1.AppReactUtils.useRefState(false), isBroken = _c[0], setIsBroken = _c[1], isBrokenRef = _c[2];
246    var _d = AppReactUtils_1.AppReactUtils.useRefState(false), forceIsUnveiled = _d[0], setForceIsUnveiled = _d[1], forceIsUnveiledRef = _d[2];
247    var r = props.row;
248    var ind = props.index;
249    var unveiledImages = props.unveiledImages;
250    var isUnveiled = ind < props.numToUnveilAtStart || unveiledImages[ind] || forceIsUnveiled;
251    React.useEffect(function () {
252        function handleBrokenImageLoad() {
253            if (isBrokenRef.current && !isLoaded) {
254                setIsBroken(false);
255                setNumRetries(0);
256            }
257        }
258        $(window).on('EdupageAppGalleryImageLoaded', handleBrokenImageLoad);
259        return function () {
260            $(window).off('EdupageAppGalleryImageLoaded', handleBrokenImageLoad);
261        };
262    }, []);
263    function onImageLoaded(e) {
264        var ind = $(e.currentTarget).attr('data-ind');
265        $(e.currentTarget).closest('.photos-multigal-item').toggleClass('photos-multigal-imageLoading', false);
266        setIsLoaded(true);
267        setIsBroken(false);
268        if (forceIsUnveiledRef.current) {
269            $(window).trigger('EdupageAppGalleryImageLoaded');
270        }
271    }
272    function imageError(e) {
273        var ind = $(e.currentTarget).attr('data-ind');
274        if (!$(e.currentTarget).attr('src'))
275            return;
276        setTimeout(function () {
277            if (numRetriesRef.current < 4) {
278                setNumRetries(numRetriesRef.current + 1);
279            }
280            else {
281                setIsBroken(true);
282            }
283        }, 100);
284    }
285    function photoClick() {
286        var _a;
287        if (isBroken) {
288            setIsBroken(false);
289            setNumRetries(0);
290            setForceIsUnveiled(true);
291        }
292        else {
293            (_a = props.onClick) === null || _a === void 0 ? void 0 : _a.call(props, ind);
294        }
295    }
296    function photoLongPress(e) {
297        var _a;
298        var ind = $(e.currentTarget).attr('data-ind');
299        (_a = props.onLongPress) === null || _a === void 0 ? void 0 : _a.call(props, ind);
300    }
301    return (React.createElement(applongpressitem_1.AppLongPressItem, tslib_1.__assign({ className: "photos-multigal-item " + (isLoaded ? '' : 'photos-multigal-imageLoading') + (props.className ? ' ' + props.className : ''), "data-ind": ind }, tapOrClick(photoClick), { key: ind, onLongPress: photoLongPress }),
302        isBroken
303            ? React.createElement("i", { className: "material-icons" }, "cloud_off")
304            : React.createElement("img", { src: isUnveiled ? (r.hdsrc ? r.hdsrc : r.src) : null, alt: "", onLoad: onImageLoaded, "data-ind": ind, onError: imageError, key: retries }),
305        r.title ? React.createElement("div", { className: "photos-multigal-item-text" }, r.title) : ''));
306}
307exports.GalleryImage = GalleryImage;
308function GalleryViewSingle(props) {
309    var _a;
310    var mainElemRef = React.useRef(null);
311    var photosData = props.photosData;
312    if (photosData.status == 'offline') {
313        return (React.createElement(OfflineView_1.OfflineView, null));
314    }
315    if (photosData.status != 'loaded') {
316        return (React.createElement(ViewLoadingContainer_1.ViewLoadingContainer, null));
317    }
318    function closeClick() {
319        EdupageApp_1.EdupageApp.popView();
320    }
321    return (React.createElement("div", { className: "app-view-outer", ref: mainElemRef },
322        React.createElement(AscPhotoSwipe_1.AscPhotoSwipe, tslib_1.__assign({}, photosData.data, { index: props.gotoIndex || ((_a = photosData.data) === null || _a === void 0 ? void 0 : _a.index) || 0, onclose: closeClick }))));
323}
324exports.GalleryViewSingle = GalleryViewSingle;
325function GalleryViewSingleold(props) {
326    var _a, _b, _c, _d, _e, _f;
327    var mainElemRef = React.useRef(null);
328    var photosData = props.photosData;
329    var _g = AppReactUtils_1.AppReactUtils.useRefState(null), currentItem = _g[0], setCurrentItem = _g[1], currentItemRef = _g[2];
330    React.useEffect(function () {
331        var _a;
332        if (photosData.data) {
333            var photos = photosData.data.photos;
334            var items = [];
335            for (var i = 0; i < photos.length; i++) {
336                var photo = photos[i];
337                items.push({
338                    src: photo.hdsrc ? photo.hdsrc : photo.src,
339                    title: (photo.title ? '' + photo.title : props.albumid == 'timeline' ? '' : (_a = photosData.data) === null || _a === void 0 ? void 0 : _a.galleryDesc),
340                    w: photo.width ? photo.width : 1200,
341                    h: photo.height ? photo.height : 800
342                });
343            }
344            var gallery = new PhotoSwipe(mainElemRef.current, PhotoSwipeUI_Default, items, {
345                index: props.gotoIndex || 0,
346                closeOnScroll: false,
347                closeOnVerticalDrag: false,
348                history: false,
349                tapToClose: false,
350                clickToCloseNonZoomable: false,
351                fullscreenEl: false,
352                closeEl: false,
353                shareEl: false,
354                pinchToClose: false,
355                loop: false
356            });
357            gallery.init();
358            setTimeout(function () {
359                AppCommandsProvider_1.AppCommandsProvider.get().setStatusbarColor("#000000");
360            }, 150);
361            gallery.listen('beforeChange', function () {
362                setCurrentItem(gallery.currItem);
363            });
364            if (!currentItemRef.current) {
365                setCurrentItem(items[props.gotoIndex || 0]);
366            }
367        }
368        EdupageApp_1.EdupageApp.inst.setViewOtherData({ additionalCssClass: 'GalleryViewSingle' }, props.viewid);
369        return function () {
370            if (gallery) {
371                gallery.destroy();
372            }
373            ;
374        };
375    }, [photosData.data]);
376    if (photosData.status == 'offline') {
377        return (React.createElement(OfflineView_1.OfflineView, null));
378    }
379    if (photosData.status != 'loaded') {
380        return (React.createElement(ViewLoadingContainer_1.ViewLoadingContainer, null));
381    }
382    function closeClick() {
383        EdupageApp_1.EdupageApp.popView();
384    }
385    function shareClick(e) {
386        var _a, _b, _c, _d, _e;
387        var toDownload = [{
388                url: ETestUtils.fixIOSSrc(((_a = currentItemRef.current) === null || _a === void 0 ? void 0 : _a.fileSrc) ? (_b = currentItemRef.current) === null || _b === void 0 ? void 0 : _b.fileSrc : (_c = currentItemRef.current) === null || _c === void 0 ? void 0 : _c.src) || "",
389                name: ((_d = currentItemRef.current) === null || _d === void 0 ? void 0 : _d.name) || "photo.jpg"
390            }];
391        (_e = AppNative_1.AppNative.shareFiles) === null || _e === void 0 ? void 0 : _e.call(AppNative_1.AppNative, toDownload);
392    }
393    return (React.createElement("div", { className: "app-view-outer" },
394        React.createElement("div", { className: "pswp", role: "dialog", "aria-hidden": "true", ref: mainElemRef },
395            React.createElement("div", { className: "pswp__bg" }),
396            React.createElement("div", { className: "pswp__scroll-wrap" },
397                React.createElement("div", { className: "pswp__container" },
398                 
398   React.createElement("div", { className: "pswp__item" }),
399                    React.createElement("div", { className: "pswp__item" }),
400                    React.createElement("div", { className: "pswp__item" })),
401                React.createElement("div", { className: "pswp__ui pswp__ui--hidden" },
402                    React.createElement("div", { className: "pswp__top-bar nobtnbg galleryView mobileGalleryView" },
403                        React.createElement("div", { className: "pswp__counter" }),
404                        React.createElement("button", { className: "pswp__button  pswp__button--close", title: ls(1567) + ' (Esc)', "aria-label": ls(1567) + ' (Esc)' },
405                            React.createElement("i", { className: "fa fa-fw fa-close", "aria-hidden": "true" })),
406                        React.createElement("button", { className: "pswp__button pswp__button--share", title: "Share", style: { display: 'none' } }),
407                        React.createElement("button", { className: "pswp__button pswp__button--fs", title: ls(8343), "aria-label": ls(8343) },
408                            React.createElement("i", { className: "material-icons", "aria-hidden": "true" }, "fullscreen")),
409                        React.createElement("button", { className: "pswp__button pswp__button--zoom", title: ls(10625), "aria-label": ls(10625) },
410                            React.createElement("i", { className: "fa fa-fw fa-search-plus", "aria-hidden": "true" })),
411                        React.createElement("a", { href: ETestUtils.fixIOSSrc(((((_a = currentItemRef.current) === null || _a === void 0 ? void 0 : _a.fileSrc) ? (_b = currentItemRef.current) === null || _b === void 0 ? void 0 : _b.fileSrc : (_c = currentItemRef.current) === null || _c === void 0 ? void 0 : _c.src) || "").toString().replace('/cloud?', '/clouddownloadimg?')), target: "_blank", className: "pswp__button", title: ls(3644), "aria-label": ls(3644), style: { background: 'none', color: '#fff' } },
412                            React.createElement("i", { className: "fa fa-fw fa-download", "aria-hidden": "true" })),
413                        MobileAppBridge.isActive() && !MobileAppBridge.isIOS() && (React.createElement("a", tslib_1.__assign({ "data-url": ETestUtils.fixIOSSrc(((((_d = currentItemRef.current) === null || _d === void 0 ? void 0 : _d.fileSrc) ? (_e = currentItemRef.current) === null || _e === void 0 ? void 0 : _e.fileSrc : (_f = currentItemRef.current) === null || _f === void 0 ? void 0 : _f.src) || "").toString().replace('/cloud?', '/clouddownloadimg?')), className: "pswp__button", title: ls(3644), "aria-label": ls(3644), style: { background: 'none', color: '#fff' } }, tapOrClick(shareClick)),
414                            React.createElement("i", { className: "material-icons", "aria-hidden": "true" }, "share"))),
415                        React.createElement("div", { className: "pswp__preloader" },
416                            React.createElement("div", { className: "pswp__preloader__icn" },
417                                React.createElement("div", { className: "pswp__preloader__cut" },
418                                    React.createElement("div", { className: "pswp__preloader__donut" }))))),
419                    React.createElement("div", { className: "pswp__share-modal pswp__share-modal--hidden pswp__single-tap" },
420                        React.createElement("div", { className: "pswp__share-tooltip" })),
421                    React.createElement("button", { className: "pswp__button pswp__button--arrow--left", title: "Previous (arrow left)" }),
422                    React.createElement("button", { className: "pswp__button pswp__button--arrow--right", title: "Next (arrow right)" }),
423                    React.createElement("div", { className: "pswp__caption" },
424                        React.createElement("div", { className: "pswp__caption__center" }))))),
425        React.createElement("a", tslib_1.__assign({ className: "app-header-action app-global-goback" }, tapOrClick(closeClick)),
426            React.createElement("i", { className: "material-icons" }, ertl('arrow_back', 'arrow_forward')))));
427}
428exports.GalleryViewSingleold = GalleryViewSingleold;

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.