PageSourceSearch

https://www.mrkva.ba/js/Leaflet.fullscreen.js

js mrkva.ba collected 2026-10-08 07:36:30 UTC 4,587 bytes, 140 lines download raw bytes

1L.Control.Fullscreen = L.Control.extend({
2    options: {
3        position: 'topleft',
4        title: {
5            false: 'Prikaz preko cijelog zaslona',
6            true: 'Povratak'
7        }
8    },
9
10    onAdd: function (map) {
11        var container = L.DomUtil.create('div', 'leaflet-control-fullscreen leaflet-bar leaflet-control');
12
13        this.link = L.DomUtil.create('a', 'leaflet-control-fullscreen-button leaflet-bar-part', container);
14        this.link.href = '#';
15
16        this._map = map;
17        this._map.on('fullscreenchange', this._toggleTitle, this);
18        this._toggleTitle();
19
20        L.DomEvent.on(this.link, 'click', this._click, this);
21
22        return container;
23    },
24
25    _click: function (e) {
26        L.DomEvent.stopPropagation(e);
27        L.DomEvent.preventDefault(e);
28        this._map.toggleFullscreen();
29    },
30
31    _toggleTitle: function() {
32        this.link.title = this.options.title[this._map.isFullscreen()];
33    }
34});
35
36L.Map.include({
37    isFullscreen: function () {
38        return this._isFullscreen || false;
39    },
40
41    toggleFullscreen: function () {
42        var container = this.getContainer();
43        if (this.isFullscreen()) {
44            if (document.exitFullscreen) {
45                document.exitFullscreen();
46            } else if (document.mozCancelFullScreen) {
47                document.mozCancelFullScreen();
48            } else if (document.webkitCancelFullScreen) {
49                document.webkitCancelFullScreen();
50            } else if (document.msExitFullscreen) {
51                document.msExitFullscreen();
52            } else {
53                L.DomUtil.removeClass(container, 'leaflet-pseudo-fullscreen');
54                this._toggleFullscreenClass();
55                this.invalidateSize();
56                this._isFullscreen = false;
57                this.fire('fullscreenchange');
58            }
59        } else {
60            if (container.requestFullscreen) {
61                container.requestFullscreen();
62            } else if (container.mozRequestFullScreen) {
63                container.mozRequestFullScreen();
64            } else if (container.webkitRequestFullscreen) {
65                container.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
66            } else if (container.msRequestFullscreen) {
67                container.msRequestFullscreen();
68            } else {
69                L.DomUtil.addClass(container, 'leaflet-pseudo-fullscreen');
70                this._toggleFullscreenClass();
71                this.invalidateSize();
72                this._isFullscreen = true;
73                this.fire('fullscreenchange');
74            }
75        }
76    },
77
78    _toggleFullscreenClass: function() {
79        var container = this.getContainer();
80        if (this.isFullscreen()) {
81            L.DomUtil.removeClass(container, 'leaflet-fullscreen-on');
82        } else {
83            L.DomUtil.addClass(container, 'leaflet-fullscreen-on');
84        }
85    },
86
87    _onFullscreenChange: function () {
88        var fullscreenElement =
89            document.fullscreenElement ||
90            document.mozFullScreenElement ||
91            document.webkitFullscreenElement ||
92            document.msFullscreenElement;
93
94        this._toggleFullscreenClass();
95        if (fullscreenElement === this.getContainer()) {
96            this._isFullscreen = true;
97            this.fire('fullscreenchange');
98        } else if (this._isFullscreen) {
99            this._isFullscreen = false;
100            this.fire('fullscreenchange');
101        }
102    }
103});
104
105L.Map.mergeOptions({
106    fullscreenControl: false
107});
108
109L.Map.addInitHook(function () {
110    if (this.options.fullscreenControl) {
111        this.fullscreenControl = new L.Control.Fullscreen();
112        this.addControl(this.fullscreenControl);
113    }
114
115    var fullscreenchange;
116
117    if ('onfullscreenchange' in document) {
118        fullscreenchange = 'fullscreenchange';
119    } else if ('onmozfullscreenchange' in document) {
120        fullscreenchange = 'mozfullscreenchange';
121    } else if ('onwebkitfullscreenchange' in document) {
122        fullscreenchange = 'webkitfullscreenchange';
123    } else if ('onmsfullscreenchange' in document) {
124        fullscreenchange = 'MSFullscreenChange';
125    }
126
127    if (fullscreenchange) {
128        this.whenReady(function () {
129            L.DomEvent.on(document, fullscreenchange, this._onFullscreenChange, this);
130        });
131
132        this.on('unload', function () {
133            L.DomEvent.off(document, fullscreenchange, this._onFullscreenChange);
134        });
135    }
136});
137
138L.control.fullscreen = function (options) {
139    return new L.Control.Fullscreen(options);
140};

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.