@vaadin/bundles 25.0.0-alpha1 → 25.0.0-alpha12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/node_modules_ol_ImageCanvas_js.js +76 -83
- package/node_modules_ol_ImageCanvas_js.js.map +1 -1
- package/node_modules_ol_TileRange_js.js +128 -110
- package/node_modules_ol_TileRange_js.js.map +1 -1
- package/node_modules_ol_Tile_js.js +279 -0
- package/node_modules_ol_Tile_js.js.map +1 -0
- package/node_modules_ol_VectorRenderTile_js.js +428 -143
- package/node_modules_ol_VectorRenderTile_js.js.map +1 -1
- package/node_modules_ol_VectorTile_js.js +405 -119
- package/node_modules_ol_VectorTile_js.js.map +1 -1
- package/node_modules_ol_control_MousePosition_js.js +327 -0
- package/node_modules_ol_control_MousePosition_js.js.map +1 -0
- package/node_modules_ol_control_ZoomToExtent_js.js +118 -0
- package/node_modules_ol_control_ZoomToExtent_js.js.map +1 -0
- package/node_modules_ol_events_SnapEvent_js.js +79 -0
- package/node_modules_ol_events_SnapEvent_js.js.map +1 -0
- package/node_modules_ol_featureloader_js.js +205 -0
- package/node_modules_ol_featureloader_js.js.map +1 -0
- package/node_modules_ol_geom_Circle_js.js +300 -0
- package/node_modules_ol_geom_Circle_js.js.map +1 -0
- package/node_modules_ol_geom_GeometryCollection_js.js +369 -0
- package/node_modules_ol_geom_GeometryCollection_js.js.map +1 -0
- package/node_modules_ol_geom_MultiPoint_js.js +228 -0
- package/node_modules_ol_geom_MultiPoint_js.js.map +1 -0
- package/node_modules_ol_geom_flat_center_js.js +47 -0
- package/node_modules_ol_geom_flat_center_js.js.map +1 -0
- package/node_modules_ol_geom_flat_geodesic_js.js +123 -88
- package/node_modules_ol_geom_flat_geodesic_js.js.map +1 -1
- package/node_modules_ol_geom_flat_interpolate_js.js +230 -0
- package/node_modules_ol_geom_flat_interpolate_js.js.map +1 -0
- package/node_modules_ol_geom_flat_length_js-_375a0.js +58 -0
- package/node_modules_ol_geom_flat_length_js-_375a0.js.map +1 -0
- package/node_modules_ol_geom_flat_length_js-_375a1.js +58 -0
- package/node_modules_ol_geom_flat_length_js-_375a1.js.map +1 -0
- package/node_modules_ol_geom_flat_length_js-_375a2.js +58 -0
- package/node_modules_ol_geom_flat_length_js-_375a2.js.map +1 -0
- package/node_modules_ol_geom_flat_length_js-_375a3.js +58 -0
- package/node_modules_ol_geom_flat_length_js-_375a3.js.map +1 -0
- package/node_modules_ol_geom_flat_length_js-_375a4.js +58 -0
- package/node_modules_ol_geom_flat_length_js-_375a4.js.map +1 -0
- package/node_modules_ol_geom_flat_linechunk_js.js +76 -0
- package/node_modules_ol_geom_flat_linechunk_js.js.map +1 -0
- package/node_modules_ol_geom_flat_straightchunk_js.js +68 -0
- package/node_modules_ol_geom_flat_straightchunk_js.js.map +1 -0
- package/node_modules_ol_geom_flat_textpath_js.js +178 -0
- package/node_modules_ol_geom_flat_textpath_js.js.map +1 -0
- package/node_modules_ol_interaction_DblClickDragZoom_js.js +285 -0
- package/node_modules_ol_interaction_DblClickDragZoom_js.js.map +1 -0
- package/node_modules_ol_interaction_DragAndDrop_js.js +351 -0
- package/node_modules_ol_interaction_DragAndDrop_js.js.map +1 -0
- package/node_modules_ol_interaction_DragRotateAndZoom_js.js +159 -0
- package/node_modules_ol_interaction_DragRotateAndZoom_js.js.map +1 -0
- package/node_modules_ol_layer_Vector_js-_49290.js +110 -0
- package/node_modules_ol_layer_Vector_js-_49290.js.map +1 -0
- package/node_modules_ol_layer_Vector_js-_49291.js +110 -0
- package/node_modules_ol_layer_Vector_js-_49291.js.map +1 -0
- package/node_modules_ol_layer_Vector_js-_49292.js +110 -0
- package/node_modules_ol_layer_Vector_js-_49292.js.map +1 -0
- package/node_modules_ol_layer_Vector_js-_49293.js +110 -0
- package/node_modules_ol_layer_Vector_js-_49293.js.map +1 -0
- package/node_modules_ol_loadingstrategy_js.js +95 -0
- package/node_modules_ol_loadingstrategy_js.js.map +1 -0
- package/node_modules_ol_render_VectorContext_js-_3ad60.js +144 -0
- package/node_modules_ol_render_VectorContext_js-_3ad60.js.map +1 -0
- package/node_modules_ol_render_VectorContext_js-_3ad61.js +144 -0
- package/node_modules_ol_render_VectorContext_js-_3ad61.js.map +1 -0
- package/node_modules_ol_render_VectorContext_js-node_modules_ol_render_canvas_hitdetect_js.js +372 -0
- package/node_modules_ol_render_VectorContext_js-node_modules_ol_render_canvas_hitdetect_js.js.map +1 -0
- package/node_modules_ol_render_canvas_ImageBuilder_js.js +318 -0
- package/node_modules_ol_render_canvas_ImageBuilder_js.js.map +1 -0
- package/node_modules_ol_render_canvas_Instruction_js.js +66 -0
- package/node_modules_ol_render_canvas_Instruction_js.js.map +1 -0
- package/node_modules_ol_render_canvas_LineStringBuilder_js.js +187 -0
- package/node_modules_ol_render_canvas_LineStringBuilder_js.js.map +1 -0
- package/node_modules_ol_render_canvas_PolygonBuilder_js.js +276 -0
- package/node_modules_ol_render_canvas_PolygonBuilder_js.js.map +1 -0
- package/node_modules_ol_render_canvas_ZIndexContext_js-_fab20.js +156 -0
- package/node_modules_ol_render_canvas_ZIndexContext_js-_fab20.js.map +1 -0
- package/node_modules_ol_render_canvas_ZIndexContext_js-_fab21.js +156 -0
- package/node_modules_ol_render_canvas_ZIndexContext_js-_fab21.js.map +1 -0
- package/node_modules_ol_render_js-node_modules_ol_render_VectorContext_js.js +301 -0
- package/node_modules_ol_render_js-node_modules_ol_render_VectorContext_js.js.map +1 -0
- package/node_modules_ol_renderer_Layer_js.js +219 -0
- package/node_modules_ol_renderer_Layer_js.js.map +1 -0
- package/node_modules_ol_source_Source_js.js +256 -0
- package/node_modules_ol_source_Source_js.js.map +1 -0
- package/node_modules_ol_source_VectorEventType_js-node_modules_ol_structs_RBush_js.js +318 -0
- package/node_modules_ol_source_VectorEventType_js-node_modules_ol_structs_RBush_js.js.map +1 -0
- package/node_modules_ol_source_VectorEventType_js.js +80 -0
- package/node_modules_ol_source_VectorEventType_js.js.map +1 -0
- package/node_modules_ol_structs_RBush_js.js +242 -0
- package/node_modules_ol_structs_RBush_js.js.map +1 -0
- package/node_modules_ol_style_js.js +2 -1
- package/node_modules_ol_style_js.js.map +1 -1
- package/node_modules_rbush_rbush_min_js.js +16 -0
- package/node_modules_rbush_rbush_min_js.js.map +1 -0
- package/package.json +142 -142
- package/vaadin-bundle.json +2059 -2368
- package/vaadin.js +46213 -64566
- package/vaadin.js.map +1 -1
- package/vendors-node_modules_dompurify_dist_purify_es_mjs.js +26 -21
- package/vendors-node_modules_dompurify_dist_purify_es_mjs.js.map +1 -1
- package/vendors-node_modules_dompurify_dist_purify_js.js +26 -21
- package/vendors-node_modules_dompurify_dist_purify_js.js.map +1 -1
- package/vendors-node_modules_marked_lib_marked_esm_js.js +2097 -2508
- package/vendors-node_modules_marked_lib_marked_esm_js.js.map +1 -1
- package/vendors-node_modules_marked_lib_marked_umd_js.js +2164 -2556
- package/vendors-node_modules_marked_lib_marked_umd_js.js.map +1 -1
- package/vendors-node_modules_ol_Feature_js.js +360 -0
- package/vendors-node_modules_ol_Feature_js.js.map +1 -0
- package/vendors-node_modules_ol_Geolocation_js.js +352 -293
- package/vendors-node_modules_ol_Geolocation_js.js.map +1 -1
- package/vendors-node_modules_ol_ImageTile_js.js +494 -0
- package/vendors-node_modules_ol_ImageTile_js.js.map +1 -0
- package/vendors-node_modules_ol_Overlay_js.js +606 -0
- package/vendors-node_modules_ol_Overlay_js.js.map +1 -0
- package/vendors-node_modules_ol_control_FullScreen_js.js +417 -0
- package/vendors-node_modules_ol_control_FullScreen_js.js.map +1 -0
- package/vendors-node_modules_ol_control_OverviewMap_js.js +711 -0
- package/vendors-node_modules_ol_control_OverviewMap_js.js.map +1 -0
- package/vendors-node_modules_ol_control_ScaleLine_js.js +509 -0
- package/vendors-node_modules_ol_control_ScaleLine_js.js.map +1 -0
- package/vendors-node_modules_ol_control_ZoomSlider_js.js +418 -0
- package/vendors-node_modules_ol_control_ZoomSlider_js.js.map +1 -0
- package/vendors-node_modules_ol_control_js.js +490 -0
- package/vendors-node_modules_ol_control_js.js.map +1 -0
- package/vendors-node_modules_ol_geom_LineString_js.js +574 -0
- package/vendors-node_modules_ol_geom_LineString_js.js.map +1 -0
- package/vendors-node_modules_ol_geom_MultiLineString_js.js +405 -0
- package/vendors-node_modules_ol_geom_MultiLineString_js.js.map +1 -0
- package/vendors-node_modules_ol_geom_MultiPolygon_js.js +773 -0
- package/vendors-node_modules_ol_geom_MultiPolygon_js.js.map +1 -0
- package/vendors-node_modules_ol_geom_js-node_modules_ol_geom_flat_length_js.js +769 -0
- package/vendors-node_modules_ol_geom_js-node_modules_ol_geom_flat_length_js.js.map +1 -0
- package/vendors-node_modules_ol_index_js.js +526 -675
- package/vendors-node_modules_ol_index_js.js.map +1 -1
- package/vendors-node_modules_ol_interaction_Draw_js.js +2777 -0
- package/vendors-node_modules_ol_interaction_Draw_js.js.map +1 -0
- package/vendors-node_modules_ol_interaction_Extent_js.js +586 -0
- package/vendors-node_modules_ol_interaction_Extent_js.js.map +1 -0
- package/vendors-node_modules_ol_interaction_Link_js.js +489 -0
- package/vendors-node_modules_ol_interaction_Link_js.js.map +1 -0
- package/vendors-node_modules_ol_interaction_Modify_js.js +1841 -0
- package/vendors-node_modules_ol_interaction_Modify_js.js.map +1 -0
- package/vendors-node_modules_ol_interaction_Select_js.js +623 -0
- package/vendors-node_modules_ol_interaction_Select_js.js.map +1 -0
- package/vendors-node_modules_ol_interaction_Snap_js.js +982 -0
- package/vendors-node_modules_ol_interaction_Snap_js.js.map +1 -0
- package/vendors-node_modules_ol_interaction_Translate_js.js +466 -0
- package/vendors-node_modules_ol_interaction_Translate_js.js.map +1 -0
- package/vendors-node_modules_ol_interaction_js.js +872 -0
- package/vendors-node_modules_ol_interaction_js.js.map +1 -0
- package/vendors-node_modules_ol_layer_Graticule_js.js +1374 -989
- package/vendors-node_modules_ol_layer_Graticule_js.js.map +1 -1
- package/vendors-node_modules_ol_render_Feature_js.js +546 -0
- package/vendors-node_modules_ol_render_Feature_js.js.map +1 -0
- package/vendors-node_modules_ol_render_canvas_BuilderGroup_js.js +897 -0
- package/vendors-node_modules_ol_render_canvas_BuilderGroup_js.js.map +1 -0
- package/vendors-node_modules_ol_render_canvas_Builder_js.js +907 -0
- package/vendors-node_modules_ol_render_canvas_Builder_js.js.map +1 -0
- package/vendors-node_modules_ol_render_canvas_ExecutorGroup_js.js +539 -0
- package/vendors-node_modules_ol_render_canvas_ExecutorGroup_js.js.map +1 -0
- package/vendors-node_modules_ol_render_canvas_Executor_js.js +1715 -0
- package/vendors-node_modules_ol_render_canvas_Executor_js.js.map +1 -0
- package/vendors-node_modules_ol_render_canvas_Immediate_js.js +1208 -0
- package/vendors-node_modules_ol_render_canvas_Immediate_js.js.map +1 -0
- package/vendors-node_modules_ol_render_canvas_TextBuilder_js.js +825 -0
- package/vendors-node_modules_ol_render_canvas_TextBuilder_js.js.map +1 -0
- package/vendors-node_modules_ol_renderer_canvas_Layer_js.js +654 -0
- package/vendors-node_modules_ol_renderer_canvas_Layer_js.js.map +1 -0
- package/vendors-node_modules_ol_renderer_canvas_VectorLayer_js.js +1044 -0
- package/vendors-node_modules_ol_renderer_canvas_VectorLayer_js.js.map +1 -0
- package/vendors-node_modules_ol_renderer_vector_js.js +460 -0
- package/vendors-node_modules_ol_renderer_vector_js.js.map +1 -0
- package/vendors-node_modules_ol_source_Vector_js.js +2091 -0
- package/vendors-node_modules_ol_source_Vector_js.js.map +1 -0
- package/node_modules_ol_ImageTile_js.js +0 -177
- package/node_modules_ol_ImageTile_js.js.map +0 -1
- package/node_modules_ol_render_js.js +0 -131
- package/node_modules_ol_render_js.js.map +0 -1
- package/node_modules_ol_structs_LRUCache_js.js +0 -275
- package/node_modules_ol_structs_LRUCache_js.js.map +0 -1
- package/node_modules_ol_tilecoord_js.js +0 -115
- package/node_modules_ol_tilecoord_js.js.map +0 -1
- package/vendors-node_modules_ol_TileCache_js.js +0 -461
- package/vendors-node_modules_ol_TileCache_js.js.map +0 -1
- package/vendors-node_modules_ol_Tile_js.js +0 -330
- package/vendors-node_modules_ol_Tile_js.js.map +0 -1
- package/vendors-node_modules_ol_style_Text_js.js +0 -509
- package/vendors-node_modules_ol_style_Text_js.js.map +0 -1
- package/vendors-node_modules_rbush_index_js.js +0 -531
- package/vendors-node_modules_rbush_index_js.js.map +0 -1
|
@@ -0,0 +1,417 @@
|
|
|
1
|
+
(self["webpackChunk_vaadin_bundles"] = self["webpackChunk_vaadin_bundles"] || []).push([["vendors-node_modules_ol_control_FullScreen_js"],{
|
|
2
|
+
|
|
3
|
+
/***/ "./node_modules/ol/control/FullScreen.js":
|
|
4
|
+
/*!***********************************************!*\
|
|
5
|
+
!*** ./node_modules/ol/control/FullScreen.js ***!
|
|
6
|
+
\***********************************************/
|
|
7
|
+
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
8
|
+
|
|
9
|
+
__webpack_require__.r(__webpack_exports__);
|
|
10
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
11
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
12
|
+
/* harmony export */ });
|
|
13
|
+
/* harmony import */ var _MapProperty_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../MapProperty.js */ "./node_modules/ol/MapProperty.js");
|
|
14
|
+
/* harmony import */ var _css_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../css.js */ "./node_modules/ol/css.js");
|
|
15
|
+
/* harmony import */ var _dom_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../dom.js */ "./node_modules/ol/dom.js");
|
|
16
|
+
/* harmony import */ var _events_EventType_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../events/EventType.js */ "./node_modules/ol/events/EventType.js");
|
|
17
|
+
/* harmony import */ var _events_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../events.js */ "./node_modules/ol/events.js");
|
|
18
|
+
/* harmony import */ var _Control_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Control.js */ "./node_modules/ol/control/Control.js");
|
|
19
|
+
/**
|
|
20
|
+
* @module ol/control/FullScreen
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
const events = ['fullscreenchange', 'webkitfullscreenchange'];
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* @enum {string}
|
|
33
|
+
*/
|
|
34
|
+
const FullScreenEventType = {
|
|
35
|
+
/**
|
|
36
|
+
* Triggered after the map entered fullscreen.
|
|
37
|
+
* @event FullScreenEventType#enterfullscreen
|
|
38
|
+
* @api
|
|
39
|
+
*/
|
|
40
|
+
ENTERFULLSCREEN: 'enterfullscreen',
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Triggered after the map leave fullscreen.
|
|
44
|
+
* @event FullScreenEventType#leavefullscreen
|
|
45
|
+
* @api
|
|
46
|
+
*/
|
|
47
|
+
LEAVEFULLSCREEN: 'leavefullscreen',
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
/***
|
|
51
|
+
* @template Return
|
|
52
|
+
* @typedef {import("../Observable").OnSignature<import("../Observable").EventTypes|
|
|
53
|
+
* 'enterfullscreen'|'leavefullscreen', import("../events/Event.js").default, Return> &
|
|
54
|
+
* import("../Observable").OnSignature<import("../ObjectEventType").Types, import("../Object").ObjectEvent, Return> &
|
|
55
|
+
* import("../Observable").CombinedOnSignature<import("../Observable").EventTypes|
|
|
56
|
+
* 'enterfullscreen'|'leavefullscreen'|import("../ObjectEventType").Types, Return>} FullScreenOnSignature
|
|
57
|
+
*/
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* @typedef {Object} Options
|
|
61
|
+
* @property {string} [className='ol-full-screen'] CSS class name.
|
|
62
|
+
* @property {string|Text|HTMLElement} [label='\u2922'] Text label to use for the button.
|
|
63
|
+
* Instead of text, also an element (e.g. a `span` element) can be used.
|
|
64
|
+
* @property {string|Text|HTMLElement} [labelActive='\u00d7'] Text label to use for the
|
|
65
|
+
* button when full-screen is active.
|
|
66
|
+
* Instead of text, also an element (e.g. a `span` element) can be used.
|
|
67
|
+
* @property {string} [activeClassName=className + '-true'] CSS class name for the button
|
|
68
|
+
* when full-screen is active.
|
|
69
|
+
* @property {string} [inactiveClassName=className + '-false'] CSS class name for the button
|
|
70
|
+
* when full-screen is inactive.
|
|
71
|
+
* @property {string} [tipLabel='Toggle full-screen'] Text label to use for the button tip.
|
|
72
|
+
* @property {boolean} [keys=false] Full keyboard access.
|
|
73
|
+
* @property {HTMLElement|string} [target] Specify a target if you want the
|
|
74
|
+
* control to be rendered outside of the map's viewport.
|
|
75
|
+
* @property {HTMLElement|string} [source] The element to be displayed
|
|
76
|
+
* fullscreen. When not provided, the element containing the map viewport will
|
|
77
|
+
* be displayed fullscreen.
|
|
78
|
+
*/
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* @classdesc
|
|
82
|
+
* Provides a button that when clicked fills up the full screen with the map.
|
|
83
|
+
* The full screen source element is by default the element containing the map viewport unless
|
|
84
|
+
* overridden by providing the `source` option. In which case, the dom
|
|
85
|
+
* element introduced using this parameter will be displayed in full screen.
|
|
86
|
+
*
|
|
87
|
+
* When in full screen mode, a close button is shown to exit full screen mode.
|
|
88
|
+
* The [Fullscreen API](https://www.w3.org/TR/fullscreen/) is used to
|
|
89
|
+
* toggle the map in full screen mode.
|
|
90
|
+
*
|
|
91
|
+
* @fires FullScreenEventType#enterfullscreen
|
|
92
|
+
* @fires FullScreenEventType#leavefullscreen
|
|
93
|
+
* @api
|
|
94
|
+
*/
|
|
95
|
+
class FullScreen extends _Control_js__WEBPACK_IMPORTED_MODULE_0__["default"] {
|
|
96
|
+
/**
|
|
97
|
+
* @param {Options} [options] Options.
|
|
98
|
+
*/
|
|
99
|
+
constructor(options) {
|
|
100
|
+
options = options ? options : {};
|
|
101
|
+
|
|
102
|
+
super({
|
|
103
|
+
element: document.createElement('div'),
|
|
104
|
+
target: options.target,
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
/***
|
|
108
|
+
* @type {FullScreenOnSignature<import("../events").EventsKey>}
|
|
109
|
+
*/
|
|
110
|
+
this.on;
|
|
111
|
+
|
|
112
|
+
/***
|
|
113
|
+
* @type {FullScreenOnSignature<import("../events").EventsKey>}
|
|
114
|
+
*/
|
|
115
|
+
this.once;
|
|
116
|
+
|
|
117
|
+
/***
|
|
118
|
+
* @type {FullScreenOnSignature<void>}
|
|
119
|
+
*/
|
|
120
|
+
this.un;
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* @private
|
|
124
|
+
* @type {boolean}
|
|
125
|
+
*/
|
|
126
|
+
this.keys_ = options.keys !== undefined ? options.keys : false;
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* @private
|
|
130
|
+
* @type {HTMLElement|string|undefined}
|
|
131
|
+
*/
|
|
132
|
+
this.source_ = options.source;
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* @type {boolean}
|
|
136
|
+
* @private
|
|
137
|
+
*/
|
|
138
|
+
this.isInFullscreen_ = false;
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* @private
|
|
142
|
+
*/
|
|
143
|
+
this.boundHandleMapTargetChange_ = this.handleMapTargetChange_.bind(this);
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* @private
|
|
147
|
+
* @type {string}
|
|
148
|
+
*/
|
|
149
|
+
this.cssClassName_ =
|
|
150
|
+
options.className !== undefined ? options.className : 'ol-full-screen';
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* @private
|
|
154
|
+
* @type {Array<import("../events.js").EventsKey>}
|
|
155
|
+
*/
|
|
156
|
+
this.documentListeners_ = [];
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* @private
|
|
160
|
+
* @type {Array<string>}
|
|
161
|
+
*/
|
|
162
|
+
this.activeClassName_ =
|
|
163
|
+
options.activeClassName !== undefined
|
|
164
|
+
? options.activeClassName.split(' ')
|
|
165
|
+
: [this.cssClassName_ + '-true'];
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* @private
|
|
169
|
+
* @type {Array<string>}
|
|
170
|
+
*/
|
|
171
|
+
this.inactiveClassName_ =
|
|
172
|
+
options.inactiveClassName !== undefined
|
|
173
|
+
? options.inactiveClassName.split(' ')
|
|
174
|
+
: [this.cssClassName_ + '-false'];
|
|
175
|
+
|
|
176
|
+
const label = options.label !== undefined ? options.label : '\u2922';
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* @private
|
|
180
|
+
* @type {Text|HTMLElement}
|
|
181
|
+
*/
|
|
182
|
+
this.labelNode_ =
|
|
183
|
+
typeof label === 'string' ? document.createTextNode(label) : label;
|
|
184
|
+
|
|
185
|
+
const labelActive =
|
|
186
|
+
options.labelActive !== undefined ? options.labelActive : '\u00d7';
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* @private
|
|
190
|
+
* @type {Text|HTMLElement}
|
|
191
|
+
*/
|
|
192
|
+
this.labelActiveNode_ =
|
|
193
|
+
typeof labelActive === 'string'
|
|
194
|
+
? document.createTextNode(labelActive)
|
|
195
|
+
: labelActive;
|
|
196
|
+
|
|
197
|
+
const tipLabel = options.tipLabel ? options.tipLabel : 'Toggle full-screen';
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* @private
|
|
201
|
+
* @type {HTMLElement}
|
|
202
|
+
*/
|
|
203
|
+
this.button_ = document.createElement('button');
|
|
204
|
+
this.button_.title = tipLabel;
|
|
205
|
+
this.button_.setAttribute('type', 'button');
|
|
206
|
+
this.button_.appendChild(this.labelNode_);
|
|
207
|
+
this.button_.addEventListener(
|
|
208
|
+
_events_EventType_js__WEBPACK_IMPORTED_MODULE_1__["default"].CLICK,
|
|
209
|
+
this.handleClick_.bind(this),
|
|
210
|
+
false,
|
|
211
|
+
);
|
|
212
|
+
this.setClassName_(this.button_, this.isInFullscreen_);
|
|
213
|
+
|
|
214
|
+
this.element.className = `${this.cssClassName_} ${_css_js__WEBPACK_IMPORTED_MODULE_2__.CLASS_UNSELECTABLE} ${_css_js__WEBPACK_IMPORTED_MODULE_2__.CLASS_CONTROL}`;
|
|
215
|
+
this.element.appendChild(this.button_);
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
* @param {MouseEvent} event The event to handle
|
|
220
|
+
* @private
|
|
221
|
+
*/
|
|
222
|
+
handleClick_(event) {
|
|
223
|
+
event.preventDefault();
|
|
224
|
+
this.handleFullScreen_();
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* @private
|
|
229
|
+
*/
|
|
230
|
+
handleFullScreen_() {
|
|
231
|
+
const map = this.getMap();
|
|
232
|
+
if (!map) {
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
const doc = map.getOwnerDocument();
|
|
236
|
+
if (!isFullScreenSupported(doc)) {
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
239
|
+
if (isFullScreen(doc)) {
|
|
240
|
+
exitFullScreen(doc);
|
|
241
|
+
} else {
|
|
242
|
+
let element;
|
|
243
|
+
if (this.source_) {
|
|
244
|
+
element =
|
|
245
|
+
typeof this.source_ === 'string'
|
|
246
|
+
? doc.getElementById(this.source_)
|
|
247
|
+
: this.source_;
|
|
248
|
+
} else {
|
|
249
|
+
element = map.getTargetElement();
|
|
250
|
+
}
|
|
251
|
+
if (this.keys_) {
|
|
252
|
+
requestFullScreenWithKeys(element);
|
|
253
|
+
} else {
|
|
254
|
+
requestFullScreen(element);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* @private
|
|
261
|
+
*/
|
|
262
|
+
handleFullScreenChange_() {
|
|
263
|
+
const map = this.getMap();
|
|
264
|
+
if (!map) {
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
const wasInFullscreen = this.isInFullscreen_;
|
|
268
|
+
this.isInFullscreen_ = isFullScreen(map.getOwnerDocument());
|
|
269
|
+
if (wasInFullscreen !== this.isInFullscreen_) {
|
|
270
|
+
this.setClassName_(this.button_, this.isInFullscreen_);
|
|
271
|
+
if (this.isInFullscreen_) {
|
|
272
|
+
(0,_dom_js__WEBPACK_IMPORTED_MODULE_3__.replaceNode)(this.labelActiveNode_, this.labelNode_);
|
|
273
|
+
this.dispatchEvent(FullScreenEventType.ENTERFULLSCREEN);
|
|
274
|
+
} else {
|
|
275
|
+
(0,_dom_js__WEBPACK_IMPORTED_MODULE_3__.replaceNode)(this.labelNode_, this.labelActiveNode_);
|
|
276
|
+
this.dispatchEvent(FullScreenEventType.LEAVEFULLSCREEN);
|
|
277
|
+
}
|
|
278
|
+
map.updateSize();
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
/**
|
|
283
|
+
* @param {HTMLElement} element Target element
|
|
284
|
+
* @param {boolean} fullscreen True if fullscreen class name should be active
|
|
285
|
+
* @private
|
|
286
|
+
*/
|
|
287
|
+
setClassName_(element, fullscreen) {
|
|
288
|
+
if (fullscreen) {
|
|
289
|
+
element.classList.remove(...this.inactiveClassName_);
|
|
290
|
+
element.classList.add(...this.activeClassName_);
|
|
291
|
+
} else {
|
|
292
|
+
element.classList.remove(...this.activeClassName_);
|
|
293
|
+
element.classList.add(...this.inactiveClassName_);
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
/**
|
|
298
|
+
* Remove the control from its current map and attach it to the new map.
|
|
299
|
+
* Pass `null` to just remove the control from the current map.
|
|
300
|
+
* Subclasses may set up event handlers to get notified about changes to
|
|
301
|
+
* the map here.
|
|
302
|
+
* @param {import("../Map.js").default|null} map Map.
|
|
303
|
+
* @api
|
|
304
|
+
* @override
|
|
305
|
+
*/
|
|
306
|
+
setMap(map) {
|
|
307
|
+
const oldMap = this.getMap();
|
|
308
|
+
if (oldMap) {
|
|
309
|
+
oldMap.removeChangeListener(
|
|
310
|
+
_MapProperty_js__WEBPACK_IMPORTED_MODULE_4__["default"].TARGET,
|
|
311
|
+
this.boundHandleMapTargetChange_,
|
|
312
|
+
);
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
super.setMap(map);
|
|
316
|
+
|
|
317
|
+
this.handleMapTargetChange_();
|
|
318
|
+
if (map) {
|
|
319
|
+
map.addChangeListener(
|
|
320
|
+
_MapProperty_js__WEBPACK_IMPORTED_MODULE_4__["default"].TARGET,
|
|
321
|
+
this.boundHandleMapTargetChange_,
|
|
322
|
+
);
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
/**
|
|
327
|
+
* @private
|
|
328
|
+
*/
|
|
329
|
+
handleMapTargetChange_() {
|
|
330
|
+
const listeners = this.documentListeners_;
|
|
331
|
+
for (let i = 0, ii = listeners.length; i < ii; ++i) {
|
|
332
|
+
(0,_events_js__WEBPACK_IMPORTED_MODULE_5__.unlistenByKey)(listeners[i]);
|
|
333
|
+
}
|
|
334
|
+
listeners.length = 0;
|
|
335
|
+
|
|
336
|
+
const map = this.getMap();
|
|
337
|
+
if (map) {
|
|
338
|
+
const doc = map.getOwnerDocument();
|
|
339
|
+
if (isFullScreenSupported(doc)) {
|
|
340
|
+
this.element.classList.remove(_css_js__WEBPACK_IMPORTED_MODULE_2__.CLASS_UNSUPPORTED);
|
|
341
|
+
} else {
|
|
342
|
+
this.element.classList.add(_css_js__WEBPACK_IMPORTED_MODULE_2__.CLASS_UNSUPPORTED);
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
for (let i = 0, ii = events.length; i < ii; ++i) {
|
|
346
|
+
listeners.push(
|
|
347
|
+
(0,_events_js__WEBPACK_IMPORTED_MODULE_5__.listen)(doc, events[i], this.handleFullScreenChange_, this),
|
|
348
|
+
);
|
|
349
|
+
}
|
|
350
|
+
this.handleFullScreenChange_();
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
/**
|
|
356
|
+
* @param {Document} doc The root document to check.
|
|
357
|
+
* @return {boolean} Fullscreen is supported by the current platform.
|
|
358
|
+
*/
|
|
359
|
+
function isFullScreenSupported(doc) {
|
|
360
|
+
const body = doc.body;
|
|
361
|
+
return !!(
|
|
362
|
+
body['webkitRequestFullscreen'] ||
|
|
363
|
+
(body.requestFullscreen && doc.fullscreenEnabled)
|
|
364
|
+
);
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
/**
|
|
368
|
+
* @param {Document} doc The root document to check.
|
|
369
|
+
* @return {boolean} Element is currently in fullscreen.
|
|
370
|
+
*/
|
|
371
|
+
function isFullScreen(doc) {
|
|
372
|
+
return !!(doc['webkitIsFullScreen'] || doc.fullscreenElement);
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
/**
|
|
376
|
+
* Request to fullscreen an element.
|
|
377
|
+
* @param {HTMLElement} element Element to request fullscreen
|
|
378
|
+
*/
|
|
379
|
+
function requestFullScreen(element) {
|
|
380
|
+
if (element.requestFullscreen) {
|
|
381
|
+
element.requestFullscreen();
|
|
382
|
+
} else if (element['webkitRequestFullscreen']) {
|
|
383
|
+
element['webkitRequestFullscreen']();
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
/**
|
|
388
|
+
* Request to fullscreen an element with keyboard input.
|
|
389
|
+
* @param {HTMLElement} element Element to request fullscreen
|
|
390
|
+
*/
|
|
391
|
+
function requestFullScreenWithKeys(element) {
|
|
392
|
+
if (element['webkitRequestFullscreen']) {
|
|
393
|
+
element['webkitRequestFullscreen']();
|
|
394
|
+
} else {
|
|
395
|
+
requestFullScreen(element);
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
/**
|
|
400
|
+
* Exit fullscreen.
|
|
401
|
+
* @param {Document} doc The document to exit fullscren from
|
|
402
|
+
*/
|
|
403
|
+
function exitFullScreen(doc) {
|
|
404
|
+
if (doc.exitFullscreen) {
|
|
405
|
+
doc.exitFullscreen();
|
|
406
|
+
} else if (doc['webkitExitFullscreen']) {
|
|
407
|
+
doc['webkitExitFullscreen']();
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (FullScreen);
|
|
412
|
+
|
|
413
|
+
|
|
414
|
+
/***/ })
|
|
415
|
+
|
|
416
|
+
}])
|
|
417
|
+
//# sourceMappingURL=vendors-node_modules_ol_control_FullScreen_js.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vendors-node_modules_ol_control_FullScreen_js.js","mappings":";;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AAC4C;AACmC;AACzC;AACS;AACI;AAChB;;AAEnC;;AAEA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,wFAAwF;AACxF;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc,QAAQ;AACtB,cAAc,yBAAyB;AACvC;AACA,cAAc,yBAAyB;AACvC;AACA;AACA,cAAc,QAAQ;AACtB;AACA,cAAc,QAAQ;AACtB;AACA,cAAc,QAAQ;AACtB,cAAc,SAAS;AACvB,cAAc,oBAAoB;AAClC;AACA,cAAc,oBAAoB;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,mDAAO;AAChC;AACA,aAAa,SAAS;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA,cAAc;AACd;AACA;;AAEA;AACA,cAAc;AACd;AACA;;AAEA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kEAAe;AACrB;AACA;AACA;AACA;;AAEA,gCAAgC,oBAAoB,EAAE,uDAAkB,EAAE,EAAE,kDAAa,CAAC;AAC1F;AACA;;AAEA;AACA,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,oDAAW;AACnB;AACA,QAAQ;AACR,QAAQ,oDAAW;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,kCAAkC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8DAAkB;AAC1B;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,QAAQ,8DAAkB;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2CAA2C,QAAQ;AACnD,MAAM,yDAAa;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA,sCAAsC,sDAAiB;AACvD,QAAQ;AACR,mCAAmC,sDAAiB;AACpD;;AAEA,0CAA0C,QAAQ;AAClD;AACA,UAAU,kDAAM;AAChB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,UAAU;AACrB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,UAAU;AACrB,YAAY,SAAS;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA,iEAAe,UAAU,EAAC","sources":["webpack://@vaadin/bundles/./node_modules/ol/control/FullScreen.js"],"sourcesContent":["/**\n * @module ol/control/FullScreen\n */\nimport MapProperty from '../MapProperty.js';\nimport {CLASS_CONTROL, CLASS_UNSELECTABLE, CLASS_UNSUPPORTED} from '../css.js';\nimport {replaceNode} from '../dom.js';\nimport EventType from '../events/EventType.js';\nimport {listen, unlistenByKey} from '../events.js';\nimport Control from './Control.js';\n\nconst events = ['fullscreenchange', 'webkitfullscreenchange'];\n\n/**\n * @enum {string}\n */\nconst FullScreenEventType = {\n /**\n * Triggered after the map entered fullscreen.\n * @event FullScreenEventType#enterfullscreen\n * @api\n */\n ENTERFULLSCREEN: 'enterfullscreen',\n\n /**\n * Triggered after the map leave fullscreen.\n * @event FullScreenEventType#leavefullscreen\n * @api\n */\n LEAVEFULLSCREEN: 'leavefullscreen',\n};\n\n/***\n * @template Return\n * @typedef {import(\"../Observable\").OnSignature<import(\"../Observable\").EventTypes|\n * 'enterfullscreen'|'leavefullscreen', import(\"../events/Event.js\").default, Return> &\n * import(\"../Observable\").OnSignature<import(\"../ObjectEventType\").Types, import(\"../Object\").ObjectEvent, Return> &\n * import(\"../Observable\").CombinedOnSignature<import(\"../Observable\").EventTypes|\n * 'enterfullscreen'|'leavefullscreen'|import(\"../ObjectEventType\").Types, Return>} FullScreenOnSignature\n */\n\n/**\n * @typedef {Object} Options\n * @property {string} [className='ol-full-screen'] CSS class name.\n * @property {string|Text|HTMLElement} [label='\\u2922'] Text label to use for the button.\n * Instead of text, also an element (e.g. a `span` element) can be used.\n * @property {string|Text|HTMLElement} [labelActive='\\u00d7'] Text label to use for the\n * button when full-screen is active.\n * Instead of text, also an element (e.g. a `span` element) can be used.\n * @property {string} [activeClassName=className + '-true'] CSS class name for the button\n * when full-screen is active.\n * @property {string} [inactiveClassName=className + '-false'] CSS class name for the button\n * when full-screen is inactive.\n * @property {string} [tipLabel='Toggle full-screen'] Text label to use for the button tip.\n * @property {boolean} [keys=false] Full keyboard access.\n * @property {HTMLElement|string} [target] Specify a target if you want the\n * control to be rendered outside of the map's viewport.\n * @property {HTMLElement|string} [source] The element to be displayed\n * fullscreen. When not provided, the element containing the map viewport will\n * be displayed fullscreen.\n */\n\n/**\n * @classdesc\n * Provides a button that when clicked fills up the full screen with the map.\n * The full screen source element is by default the element containing the map viewport unless\n * overridden by providing the `source` option. In which case, the dom\n * element introduced using this parameter will be displayed in full screen.\n *\n * When in full screen mode, a close button is shown to exit full screen mode.\n * The [Fullscreen API](https://www.w3.org/TR/fullscreen/) is used to\n * toggle the map in full screen mode.\n *\n * @fires FullScreenEventType#enterfullscreen\n * @fires FullScreenEventType#leavefullscreen\n * @api\n */\nclass FullScreen extends Control {\n /**\n * @param {Options} [options] Options.\n */\n constructor(options) {\n options = options ? options : {};\n\n super({\n element: document.createElement('div'),\n target: options.target,\n });\n\n /***\n * @type {FullScreenOnSignature<import(\"../events\").EventsKey>}\n */\n this.on;\n\n /***\n * @type {FullScreenOnSignature<import(\"../events\").EventsKey>}\n */\n this.once;\n\n /***\n * @type {FullScreenOnSignature<void>}\n */\n this.un;\n\n /**\n * @private\n * @type {boolean}\n */\n this.keys_ = options.keys !== undefined ? options.keys : false;\n\n /**\n * @private\n * @type {HTMLElement|string|undefined}\n */\n this.source_ = options.source;\n\n /**\n * @type {boolean}\n * @private\n */\n this.isInFullscreen_ = false;\n\n /**\n * @private\n */\n this.boundHandleMapTargetChange_ = this.handleMapTargetChange_.bind(this);\n\n /**\n * @private\n * @type {string}\n */\n this.cssClassName_ =\n options.className !== undefined ? options.className : 'ol-full-screen';\n\n /**\n * @private\n * @type {Array<import(\"../events.js\").EventsKey>}\n */\n this.documentListeners_ = [];\n\n /**\n * @private\n * @type {Array<string>}\n */\n this.activeClassName_ =\n options.activeClassName !== undefined\n ? options.activeClassName.split(' ')\n : [this.cssClassName_ + '-true'];\n\n /**\n * @private\n * @type {Array<string>}\n */\n this.inactiveClassName_ =\n options.inactiveClassName !== undefined\n ? options.inactiveClassName.split(' ')\n : [this.cssClassName_ + '-false'];\n\n const label = options.label !== undefined ? options.label : '\\u2922';\n\n /**\n * @private\n * @type {Text|HTMLElement}\n */\n this.labelNode_ =\n typeof label === 'string' ? document.createTextNode(label) : label;\n\n const labelActive =\n options.labelActive !== undefined ? options.labelActive : '\\u00d7';\n\n /**\n * @private\n * @type {Text|HTMLElement}\n */\n this.labelActiveNode_ =\n typeof labelActive === 'string'\n ? document.createTextNode(labelActive)\n : labelActive;\n\n const tipLabel = options.tipLabel ? options.tipLabel : 'Toggle full-screen';\n\n /**\n * @private\n * @type {HTMLElement}\n */\n this.button_ = document.createElement('button');\n this.button_.title = tipLabel;\n this.button_.setAttribute('type', 'button');\n this.button_.appendChild(this.labelNode_);\n this.button_.addEventListener(\n EventType.CLICK,\n this.handleClick_.bind(this),\n false,\n );\n this.setClassName_(this.button_, this.isInFullscreen_);\n\n this.element.className = `${this.cssClassName_} ${CLASS_UNSELECTABLE} ${CLASS_CONTROL}`;\n this.element.appendChild(this.button_);\n }\n\n /**\n * @param {MouseEvent} event The event to handle\n * @private\n */\n handleClick_(event) {\n event.preventDefault();\n this.handleFullScreen_();\n }\n\n /**\n * @private\n */\n handleFullScreen_() {\n const map = this.getMap();\n if (!map) {\n return;\n }\n const doc = map.getOwnerDocument();\n if (!isFullScreenSupported(doc)) {\n return;\n }\n if (isFullScreen(doc)) {\n exitFullScreen(doc);\n } else {\n let element;\n if (this.source_) {\n element =\n typeof this.source_ === 'string'\n ? doc.getElementById(this.source_)\n : this.source_;\n } else {\n element = map.getTargetElement();\n }\n if (this.keys_) {\n requestFullScreenWithKeys(element);\n } else {\n requestFullScreen(element);\n }\n }\n }\n\n /**\n * @private\n */\n handleFullScreenChange_() {\n const map = this.getMap();\n if (!map) {\n return;\n }\n const wasInFullscreen = this.isInFullscreen_;\n this.isInFullscreen_ = isFullScreen(map.getOwnerDocument());\n if (wasInFullscreen !== this.isInFullscreen_) {\n this.setClassName_(this.button_, this.isInFullscreen_);\n if (this.isInFullscreen_) {\n replaceNode(this.labelActiveNode_, this.labelNode_);\n this.dispatchEvent(FullScreenEventType.ENTERFULLSCREEN);\n } else {\n replaceNode(this.labelNode_, this.labelActiveNode_);\n this.dispatchEvent(FullScreenEventType.LEAVEFULLSCREEN);\n }\n map.updateSize();\n }\n }\n\n /**\n * @param {HTMLElement} element Target element\n * @param {boolean} fullscreen True if fullscreen class name should be active\n * @private\n */\n setClassName_(element, fullscreen) {\n if (fullscreen) {\n element.classList.remove(...this.inactiveClassName_);\n element.classList.add(...this.activeClassName_);\n } else {\n element.classList.remove(...this.activeClassName_);\n element.classList.add(...this.inactiveClassName_);\n }\n }\n\n /**\n * Remove the control from its current map and attach it to the new map.\n * Pass `null` to just remove the control from the current map.\n * Subclasses may set up event handlers to get notified about changes to\n * the map here.\n * @param {import(\"../Map.js\").default|null} map Map.\n * @api\n * @override\n */\n setMap(map) {\n const oldMap = this.getMap();\n if (oldMap) {\n oldMap.removeChangeListener(\n MapProperty.TARGET,\n this.boundHandleMapTargetChange_,\n );\n }\n\n super.setMap(map);\n\n this.handleMapTargetChange_();\n if (map) {\n map.addChangeListener(\n MapProperty.TARGET,\n this.boundHandleMapTargetChange_,\n );\n }\n }\n\n /**\n * @private\n */\n handleMapTargetChange_() {\n const listeners = this.documentListeners_;\n for (let i = 0, ii = listeners.length; i < ii; ++i) {\n unlistenByKey(listeners[i]);\n }\n listeners.length = 0;\n\n const map = this.getMap();\n if (map) {\n const doc = map.getOwnerDocument();\n if (isFullScreenSupported(doc)) {\n this.element.classList.remove(CLASS_UNSUPPORTED);\n } else {\n this.element.classList.add(CLASS_UNSUPPORTED);\n }\n\n for (let i = 0, ii = events.length; i < ii; ++i) {\n listeners.push(\n listen(doc, events[i], this.handleFullScreenChange_, this),\n );\n }\n this.handleFullScreenChange_();\n }\n }\n}\n\n/**\n * @param {Document} doc The root document to check.\n * @return {boolean} Fullscreen is supported by the current platform.\n */\nfunction isFullScreenSupported(doc) {\n const body = doc.body;\n return !!(\n body['webkitRequestFullscreen'] ||\n (body.requestFullscreen && doc.fullscreenEnabled)\n );\n}\n\n/**\n * @param {Document} doc The root document to check.\n * @return {boolean} Element is currently in fullscreen.\n */\nfunction isFullScreen(doc) {\n return !!(doc['webkitIsFullScreen'] || doc.fullscreenElement);\n}\n\n/**\n * Request to fullscreen an element.\n * @param {HTMLElement} element Element to request fullscreen\n */\nfunction requestFullScreen(element) {\n if (element.requestFullscreen) {\n element.requestFullscreen();\n } else if (element['webkitRequestFullscreen']) {\n element['webkitRequestFullscreen']();\n }\n}\n\n/**\n * Request to fullscreen an element with keyboard input.\n * @param {HTMLElement} element Element to request fullscreen\n */\nfunction requestFullScreenWithKeys(element) {\n if (element['webkitRequestFullscreen']) {\n element['webkitRequestFullscreen']();\n } else {\n requestFullScreen(element);\n }\n}\n\n/**\n * Exit fullscreen.\n * @param {Document} doc The document to exit fullscren from\n */\nfunction exitFullScreen(doc) {\n if (doc.exitFullscreen) {\n doc.exitFullscreen();\n } else if (doc['webkitExitFullscreen']) {\n doc['webkitExitFullscreen']();\n }\n}\n\nexport default FullScreen;\n"],"names":[],"sourceRoot":""}
|