PageSourceSearch

https://scoutingfryslan.nl/components/com_mymaplocations/assets/js/Leaflet.fullscreen.js

js scoutingfryslan.nl collected 2026-10-03 01:59:00 UTC 6,025 bytes, 168 lines download raw bytes

vendor: 6,025 bytes, lines 1-168
1(function (factory) {
2    if (typeof define === 'function' && define.amd) {
3        // AMD
4        define(['leaflet'], factory);
5    } else if (typeof module !== 'undefined') {
6        // Node/CommonJS
7        module.exports = factory(require('leaflet'));
8    } else {
9        // Browser globals
10        if (typeof window.L === 'undefined') {
11            throw new Error('Leaflet must be loaded first');
12        }
13        factory(window.L);
14    }
15}(function (L) {
16    L.Control.Fullscreen = L.Control.extend({
17        options: {
18            position: 'topleft',
19            title: {
20                'false': 'View Fullscreen',
21                'true': 'Exit Fullscreen'
22            }
23        },
24
25        onAdd: function (map) {
26            var container = L.DomUtil.create('div', 'leaflet-control-fullscreen leaflet-bar leaflet-control');
27
28            this.link = L.DomUtil.create('a', 'leaflet-control-fullscreen-button leaflet-bar-part', container);
29            this.link.href = '#';
30
31            this._map = map;
32            this._map.on('fullscreenchange', this._toggleTitle, this);
33            this._toggleTitle();
34
35            L.DomEvent.on(this.link, 'click', this._click, this);
36
37            return container;
38        },
39
40        _click: function (e) {
41            L.DomEvent.stopPropagation(e);
42            L.DomEvent.preventDefault(e);
43            this._map.toggleFullscreen(this.options);
44        },
45
46        _toggleTitle: function() {
47            this.link.title = this.options.title[this._map.isFullscreen()];
48        }
49    });
50
51    L.Map.include({
52        isFullscreen: function () {
53            return this._isFullscreen || false;
54        },
55
56        toggleFullscreen: function (options) {
57            var container = this.getContainer();
58            if (this.isFullscreen()) {
59                if (options && options.pseudoFullscreen) {
60                    this._disablePseudoFullscreen(container);
61                } else if (document.exitFullscreen) {
62                    document.exitFullscreen();
63                } else if (document.mozCancelFullScreen) {
64                    document.mozCancelFullScreen();
65                } else if (document.webkitCancelFullScreen) {
66                    document.webkitCancelFullScreen();
67                } else if (document.msExitFullscreen) {
68                    document.msExitFullscreen();
69                } else {
70                    this._disablePseudoFullscreen(container);
71                }
72            } else {
73                if (options && options.pseudoFullscreen) {
74                    this._enablePseudoFullscreen(container);
75                } else if (container.requestFullscreen) {
76                    container.requestFullscreen();
77                } else if (container.mozRequestFullScreen) {
78                    container.mozRequestFullScreen();
79                } else if (container.webkitRequestFullscreen) {
80                    container.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
81                } else if (container.msRequestFullscreen) {
82                    container.msRequestFullscreen();
83                } else {
84                    this._enablePseudoFullscreen(container);
85                }
86            }
87
88        },
89
90        _enablePseudoFullscreen: function (container) {
91            L.DomUtil.addClass(container, 'leaflet-pseudo-fullscreen');
92            this._setFullscreen(true);
93            this.fire('fullscreenchange');
94        },
95
96        _disablePseudoFullscreen: function (container) {
97            L.DomUtil.removeClass(container, 'leaflet-pseudo-fullscreen');
98            this._setFullscreen(false);
99            this.fire('fullscreenchange');
100        },
101
102        _setFullscreen: function(fullscreen) {
103            this._isFullscreen = fullscreen;
104            var container = this.getContainer();
105            if (fullscreen) {
106                L.DomUtil.addClass(container, 'leaflet-fullscreen-on');
107            } else {
108                L.DomUtil.removeClass(container, 'leaflet-fullscreen-on');
109            }
110            this.invalidateSize();
111        },
112
113        _onFullscreenChange: function (e) {
114            var fullscreenElement =
115                document.fullscreenElement ||
116                document.mozFullScreenElement ||
117                document.webkitFullscreenElement ||
118                document.msFullscreenElement;
119
120            if (fullscreenElement === this.getContainer() && !this._isFullscreen) {
121                this._setFullscreen(true);
122                this.fire('fullscreenchange');
123            } else if (fullscreenElement !== this.getContainer() && this._isFullscreen) {
124                this._setFullscreen(false);
125                this.fire('fullscreenchange');
126            }
127        }
128    });
129
130    L.Map.mergeOptions({
131        fullscreenControl: false
132    });
133
134    L.Map.addInitHook(function () {
135        if (this.options.fullscreenControl) {
136            this.fullscreenControl = new L.Control.Fullscreen(this.options.fullscreenControl);
137            this.addControl(this.fullscreenControl);
138        }
139
140        var fullscreenchange;
141
142        if ('onfullscreenchange' in document) {
143            fullscreenchange = 'fullscreenchange';
144        } else if ('onmozfullscreenchange' in document) {
145            fullscreenchange = 'mozfullscreenchange';
146        } else if ('onwebkitfullscreenchange' in document) {
147            fullscreenchange = 'webkitfullscreenchange';
148        } else if ('onmsfullscreenchange' in document) {
149            fullscreenchange = 'MSFullscreenChange';
150        }
151
152        if (fullscreenchange) {
153            var onFullscreenChange = L.bind(this._onFullscreenChange, this);
154
155            this.whenReady(function () {
156                L.DomEvent.on(document, fullscreenchange, onFullscreenChange);
157            });
158
159            this.on('unload', function () {
160                L.DomEvent.off(document, fullscreenchange, onFullscreenChange);
161            });
162        }
163    });
164
165    L.control.fullscreen = function (options) {
166        return new L.Control.Fullscreen(options);
167    };
168}));

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.