|
|
@ -30,9 +30,8 @@ var OverlayManager = { |
|
|
|
* @returns {Promise} A promise that is resolved when the overlay has been |
|
|
|
* @returns {Promise} A promise that is resolved when the overlay has been |
|
|
|
* registered. |
|
|
|
* registered. |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
register: function overlayManagerRegister(name, element, |
|
|
|
register(name, element, callerCloseMethod, canForceClose) { |
|
|
|
callerCloseMethod, canForceClose) { |
|
|
|
return new Promise((resolve) => { |
|
|
|
return new Promise(function (resolve) { |
|
|
|
|
|
|
|
var container; |
|
|
|
var container; |
|
|
|
if (!name || !element || !(container = element.parentNode)) { |
|
|
|
if (!name || !element || !(container = element.parentNode)) { |
|
|
|
throw new Error('Not enough parameters.'); |
|
|
|
throw new Error('Not enough parameters.'); |
|
|
@ -46,7 +45,7 @@ var OverlayManager = { |
|
|
|
canForceClose: (canForceClose || false), |
|
|
|
canForceClose: (canForceClose || false), |
|
|
|
}; |
|
|
|
}; |
|
|
|
resolve(); |
|
|
|
resolve(); |
|
|
|
}.bind(this)); |
|
|
|
}); |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
@ -54,8 +53,8 @@ var OverlayManager = { |
|
|
|
* @returns {Promise} A promise that is resolved when the overlay has been |
|
|
|
* @returns {Promise} A promise that is resolved when the overlay has been |
|
|
|
* unregistered. |
|
|
|
* unregistered. |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
unregister: function overlayManagerUnregister(name) { |
|
|
|
unregister(name) { |
|
|
|
return new Promise(function (resolve) { |
|
|
|
return new Promise((resolve) => { |
|
|
|
if (!this.overlays[name]) { |
|
|
|
if (!this.overlays[name]) { |
|
|
|
throw new Error('The overlay does not exist.'); |
|
|
|
throw new Error('The overlay does not exist.'); |
|
|
|
} else if (this.active === name) { |
|
|
|
} else if (this.active === name) { |
|
|
@ -64,7 +63,7 @@ var OverlayManager = { |
|
|
|
delete this.overlays[name]; |
|
|
|
delete this.overlays[name]; |
|
|
|
|
|
|
|
|
|
|
|
resolve(); |
|
|
|
resolve(); |
|
|
|
}.bind(this)); |
|
|
|
}); |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
@ -72,8 +71,8 @@ var OverlayManager = { |
|
|
|
* @returns {Promise} A promise that is resolved when the overlay has been |
|
|
|
* @returns {Promise} A promise that is resolved when the overlay has been |
|
|
|
* opened. |
|
|
|
* opened. |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
open: function overlayManagerOpen(name) { |
|
|
|
open(name) { |
|
|
|
return new Promise(function (resolve) { |
|
|
|
return new Promise((resolve) => { |
|
|
|
if (!this.overlays[name]) { |
|
|
|
if (!this.overlays[name]) { |
|
|
|
throw new Error('The overlay does not exist.'); |
|
|
|
throw new Error('The overlay does not exist.'); |
|
|
|
} else if (this.active) { |
|
|
|
} else if (this.active) { |
|
|
@ -91,7 +90,7 @@ var OverlayManager = { |
|
|
|
|
|
|
|
|
|
|
|
window.addEventListener('keydown', this._keyDown); |
|
|
|
window.addEventListener('keydown', this._keyDown); |
|
|
|
resolve(); |
|
|
|
resolve(); |
|
|
|
}.bind(this)); |
|
|
|
}); |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
@ -99,8 +98,8 @@ var OverlayManager = { |
|
|
|
* @returns {Promise} A promise that is resolved when the overlay has been |
|
|
|
* @returns {Promise} A promise that is resolved when the overlay has been |
|
|
|
* closed. |
|
|
|
* closed. |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
close: function overlayManagerClose(name) { |
|
|
|
close(name) { |
|
|
|
return new Promise(function (resolve) { |
|
|
|
return new Promise((resolve) => { |
|
|
|
if (!this.overlays[name]) { |
|
|
|
if (!this.overlays[name]) { |
|
|
|
throw new Error('The overlay does not exist.'); |
|
|
|
throw new Error('The overlay does not exist.'); |
|
|
|
} else if (!this.active) { |
|
|
|
} else if (!this.active) { |
|
|
@ -114,13 +113,13 @@ var OverlayManager = { |
|
|
|
|
|
|
|
|
|
|
|
window.removeEventListener('keydown', this._keyDown); |
|
|
|
window.removeEventListener('keydown', this._keyDown); |
|
|
|
resolve(); |
|
|
|
resolve(); |
|
|
|
}.bind(this)); |
|
|
|
}); |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* @private |
|
|
|
* @private |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
_keyDown: function overlayManager_keyDown(evt) { |
|
|
|
_keyDown(evt) { |
|
|
|
var self = OverlayManager; |
|
|
|
var self = OverlayManager; |
|
|
|
if (self.active && evt.keyCode === 27) { // Esc key.
|
|
|
|
if (self.active && evt.keyCode === 27) { // Esc key.
|
|
|
|
self._closeThroughCaller(); |
|
|
|
self._closeThroughCaller(); |
|
|
@ -131,7 +130,7 @@ var OverlayManager = { |
|
|
|
/** |
|
|
|
/** |
|
|
|
* @private |
|
|
|
* @private |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
_closeThroughCaller: function overlayManager_closeThroughCaller() { |
|
|
|
_closeThroughCaller() { |
|
|
|
if (this.overlays[this.active].callerCloseMethod) { |
|
|
|
if (this.overlays[this.active].callerCloseMethod) { |
|
|
|
this.overlays[this.active].callerCloseMethod(); |
|
|
|
this.overlays[this.active].callerCloseMethod(); |
|
|
|
} |
|
|
|
} |
|
|
|