Skip to content

Commit ae69808

Browse files
committed
feat: support to add FullscreenOptions
resolve #482
1 parent cd313a9 commit ae69808

File tree

13 files changed

+41
-94
lines changed

13 files changed

+41
-94
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Changelog
22

3+
## next
4+
5+
- Enhance `fullscreen` option and `play` method to support [`FullscreenOptions`](https://developer.mozilla.org/en-US/docs/Web/API/FullscreenOptions) (#482, #483).
6+
37
## 1.9.2 (May 29, 2021)
48

59
- Avoid conflicts with other modals (#474).

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ new Viewer(image, {
272272
273273
### fullscreen
274274

275-
- Type: `Boolean`
275+
- Type: `Boolean` or [`FullscreenOptions`](https://developer.mozilla.org/en-US/docs/Web/API/FullscreenOptions)
276276
- Default: `true`
277277

278278
Enable to request full screen when play.
@@ -838,7 +838,7 @@ viewer.zoomTo(1); // Zoom to natural size (100%)
838838
### play([fullscreen])
839839

840840
- **fullscreen** (optional):
841-
- Type: `Boolean`
841+
- Type: `Boolean` or [`FullscreenOptions`](https://developer.mozilla.org/en-US/docs/Web/API/FullscreenOptions)
842842
- Default: `false`
843843
- Indicate if request fullscreen or not.
844844

dist/viewer.common.js

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* Copyright 2015-present Chen Fengyuan
66
* Released under the MIT license
77
*
8-
* Date: 2021-06-11T21:03:35.919Z
8+
* Date: 2021-05-29T03:50:07.891Z
99
*/
1010

1111
'use strict';
@@ -157,14 +157,6 @@ var DEFAULTS = {
157157
*/
158158
fullscreen: true,
159159

160-
/**
161-
* Hide navigation UI controls.
162-
* See https://developer.mozilla.org/en-US/docs/Web/API/FullscreenOptions
163-
* Valid values are either 'show', 'hide', or the default value 'auto';
164-
* @type {string}
165-
*/
166-
fullscreenNavigationUI: 'auto',
167-
168160
/**
169161
* Define the extra attributes to inherit from the original image.
170162
* @type {Array}
@@ -3073,18 +3065,13 @@ var others = {
30733065
}
30743066
},
30753067
requestFullscreen: function requestFullscreen() {
3076-
var options = this.options;
30773068
var document = this.element.ownerDocument;
30783069

30793070
if (this.fulled && !(document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement)) {
30803071
var documentElement = document.documentElement; // Element.requestFullscreen()
30813072

30823073
if (documentElement.requestFullscreen) {
3083-
// https://developer.mozilla.org/en-US/docs/Web/API/FullscreenOptions
3084-
var opts = {
3085-
navigationUI: options.fullscreenNavigationUI
3086-
};
3087-
documentElement.requestFullscreen(opts);
3074+
documentElement.requestFullscreen();
30883075
} else if (documentElement.webkitRequestFullscreen) {
30893076
documentElement.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
30903077
} else if (documentElement.mozRequestFullScreen) {
@@ -3513,4 +3500,3 @@ var Viewer = /*#__PURE__*/function () {
35133500
assign(Viewer.prototype, render, events, handlers, methods, others);
35143501

35153502
module.exports = Viewer;
3516-
//# sourceMappingURL=viewer.common.js.map

dist/viewer.esm.js

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* Copyright 2015-present Chen Fengyuan
66
* Released under the MIT license
77
*
8-
* Date: 2021-06-11T21:03:35.919Z
8+
* Date: 2021-05-29T03:50:07.891Z
99
*/
1010

1111
function ownKeys(object, enumerableOnly) {
@@ -155,14 +155,6 @@ var DEFAULTS = {
155155
*/
156156
fullscreen: true,
157157

158-
/**
159-
* Hide navigation UI controls.
160-
* See https://developer.mozilla.org/en-US/docs/Web/API/FullscreenOptions
161-
* Valid values are either 'show', 'hide', or the default value 'auto';
162-
* @type {string}
163-
*/
164-
fullscreenNavigationUI: 'auto',
165-
166158
/**
167159
* Define the extra attributes to inherit from the original image.
168160
* @type {Array}
@@ -3071,18 +3063,13 @@ var others = {
30713063
}
30723064
},
30733065
requestFullscreen: function requestFullscreen() {
3074-
var options = this.options;
30753066
var document = this.element.ownerDocument;
30763067

30773068
if (this.fulled && !(document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement)) {
30783069
var documentElement = document.documentElement; // Element.requestFullscreen()
30793070

30803071
if (documentElement.requestFullscreen) {
3081-
// https://developer.mozilla.org/en-US/docs/Web/API/FullscreenOptions
3082-
var opts = {
3083-
navigationUI: options.fullscreenNavigationUI
3084-
};
3085-
documentElement.requestFullscreen(opts);
3072+
documentElement.requestFullscreen();
30863073
} else if (documentElement.webkitRequestFullscreen) {
30873074
documentElement.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
30883075
} else if (documentElement.mozRequestFullScreen) {
@@ -3511,4 +3498,3 @@ var Viewer = /*#__PURE__*/function () {
35113498
assign(Viewer.prototype, render, events, handlers, methods, others);
35123499

35133500
export default Viewer;
3514-
//# sourceMappingURL=viewer.esm.js.map

dist/viewer.js

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* Copyright 2015-present Chen Fengyuan
66
* Released under the MIT license
77
*
8-
* Date: 2021-06-11T21:03:35.919Z
8+
* Date: 2021-05-29T03:50:07.891Z
99
*/
1010

1111
(function (global, factory) {
@@ -161,14 +161,6 @@
161161
*/
162162
fullscreen: true,
163163

164-
/**
165-
* Hide navigation UI controls.
166-
* See https://developer.mozilla.org/en-US/docs/Web/API/FullscreenOptions
167-
* Valid values are either 'show', 'hide', or the default value 'auto';
168-
* @type {string}
169-
*/
170-
fullscreenNavigationUI: 'auto',
171-
172164
/**
173165
* Define the extra attributes to inherit from the original image.
174166
* @type {Array}
@@ -3077,18 +3069,13 @@
30773069
}
30783070
},
30793071
requestFullscreen: function requestFullscreen() {
3080-
var options = this.options;
30813072
var document = this.element.ownerDocument;
30823073

30833074
if (this.fulled && !(document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement)) {
30843075
var documentElement = document.documentElement; // Element.requestFullscreen()
30853076

30863077
if (documentElement.requestFullscreen) {
3087-
// https://developer.mozilla.org/en-US/docs/Web/API/FullscreenOptions
3088-
var opts = {
3089-
navigationUI: options.fullscreenNavigationUI
3090-
};
3091-
documentElement.requestFullscreen(opts);
3078+
documentElement.requestFullscreen();
30923079
} else if (documentElement.webkitRequestFullscreen) {
30933080
documentElement.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
30943081
} else if (documentElement.mozRequestFullScreen) {
@@ -3519,4 +3506,3 @@
35193506
return Viewer;
35203507

35213508
})));
3522-
//# sourceMappingURL=viewer.js.map

docs/css/viewer.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* Copyright 2015-present Chen Fengyuan
66
* Released under the MIT license
77
*
8-
* Date: 2021-06-11T21:03:36.148Z
8+
* Date: 2021-05-29T03:50:04.939Z
99
*/
1010

1111
.viewer-zoom-in::before,

docs/js/viewer.js

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* Copyright 2015-present Chen Fengyuan
66
* Released under the MIT license
77
*
8-
* Date: 2021-06-11T21:03:35.919Z
8+
* Date: 2021-05-29T03:50:07.891Z
99
*/
1010

1111
(function (global, factory) {
@@ -161,14 +161,6 @@
161161
*/
162162
fullscreen: true,
163163

164-
/**
165-
* Hide navigation UI controls.
166-
* See https://developer.mozilla.org/en-US/docs/Web/API/FullscreenOptions
167-
* Valid values are either 'show', 'hide', or the default value 'auto';
168-
* @type {string}
169-
*/
170-
fullscreenNavigationUI: 'auto',
171-
172164
/**
173165
* Define the extra attributes to inherit from the original image.
174166
* @type {Array}
@@ -3077,18 +3069,13 @@
30773069
}
30783070
},
30793071
requestFullscreen: function requestFullscreen() {
3080-
var options = this.options;
30813072
var document = this.element.ownerDocument;
30823073

30833074
if (this.fulled && !(document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement)) {
30843075
var documentElement = document.documentElement; // Element.requestFullscreen()
30853076

30863077
if (documentElement.requestFullscreen) {
3087-
// https://developer.mozilla.org/en-US/docs/Web/API/FullscreenOptions
3088-
var opts = {
3089-
navigationUI: options.fullscreenNavigationUI
3090-
};
3091-
documentElement.requestFullscreen(opts);
3078+
documentElement.requestFullscreen();
30923079
} else if (documentElement.webkitRequestFullscreen) {
30933080
documentElement.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
30943081
} else if (documentElement.mozRequestFullScreen) {
@@ -3519,4 +3506,3 @@
35193506
return Viewer;
35203507

35213508
})));
3522-
//# sourceMappingURL=viewer.js.map

src/js/defaults.js

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -50,18 +50,11 @@ export default {
5050

5151
/**
5252
* Enable to request fullscreen when play.
53-
* @type {boolean}
53+
* {@link https://developer.mozilla.org/en-US/docs/Web/API/FullscreenOptions}
54+
* @type {boolean|FullscreenOptions}
5455
*/
5556
fullscreen: true,
5657

57-
/**
58-
* Hide navigation UI controls.
59-
* See https://developer.mozilla.org/en-US/docs/Web/API/FullscreenOptions
60-
* Valid values are either 'show', 'hide', or the default value 'auto';
61-
* @type {string}
62-
*/
63-
fullscreenNavigationUI: 'auto',
64-
6558
/**
6659
* Define the extra attributes to inherit from the original image.
6760
* @type {Array}

src/js/methods.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -768,7 +768,7 @@ export default {
768768

769769
/**
770770
* Play the images
771-
* @param {boolean} [fullscreen=false] - Indicate if request fullscreen or not.
771+
* @param {boolean|FullscreenOptions} [fullscreen=false] - Indicate if request fullscreen or not.
772772
* @returns {Viewer} this
773773
*/
774774
play(fullscreen = false) {
@@ -798,7 +798,7 @@ export default {
798798
this.onLoadWhenPlay = onLoad;
799799

800800
if (fullscreen) {
801-
this.requestFullscreen();
801+
this.requestFullscreen(fullscreen);
802802
}
803803

804804
addClass(player, CLASS_SHOW);

src/js/others.js

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import {
1515
forEach,
1616
getMaxZoomRatio,
1717
isFunction,
18+
isPlainObject,
1819
isString,
1920
removeClass,
2021
removeListener,
@@ -138,8 +139,7 @@ export default {
138139
}
139140
},
140141

141-
requestFullscreen() {
142-
const { options } = this;
142+
requestFullscreen(options) {
143143
const document = this.element.ownerDocument;
144144

145145
if (this.fulled && !(
@@ -149,11 +149,15 @@ export default {
149149
|| document.msFullscreenElement
150150
)) {
151151
const { documentElement } = document;
152+
152153
// Element.requestFullscreen()
153154
if (documentElement.requestFullscreen) {
154-
// https://developer.mozilla.org/en-US/docs/Web/API/FullscreenOptions
155-
const opts = { navigationUI: options.fullscreenNavigationUI };
156-
documentElement.requestFullscreen(opts);
155+
// Avoid TypeError when convert `options` to dictionary
156+
if (isPlainObject(options)) {
157+
documentElement.requestFullscreen(options);
158+
} else {
159+
documentElement.requestFullscreen();
160+
}
157161
} else if (documentElement.webkitRequestFullscreen) {
158162
documentElement.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
159163
} else if (documentElement.mozRequestFullScreen) {

0 commit comments

Comments
 (0)