Merge pull request #1395 from elemoine/exports
Fix exports (remove export_as hack)
This commit is contained in:
@@ -85,10 +85,9 @@ class ObjectLiteral(Exportable):
|
||||
|
||||
class Symbol(Exportable):
|
||||
|
||||
def __init__(self, name, export_symbol, export_as=None):
|
||||
def __init__(self, name, export_symbol):
|
||||
Exportable.__init__(self, name)
|
||||
self.export_symbol = export_symbol
|
||||
self.export_as = export_as or self.name
|
||||
self.props = set()
|
||||
|
||||
__repr__ = simplerepr
|
||||
@@ -96,7 +95,7 @@ class Symbol(Exportable):
|
||||
def export(self):
|
||||
lines = []
|
||||
if self.export_symbol:
|
||||
lines.append('\n\ngoog.exportSymbol(\n \'%s\',\n %s);\n' % (self.name, self.export_as))
|
||||
lines.append('\n\ngoog.exportSymbol(\n \'%s\',\n %s);\n' % (self.name, self.name))
|
||||
lines.extend('goog.exportProperty(\n %s,\n \'%s\',\n %s.%s);\n' % (self.name, prop, self.name, prop) for prop in sorted(self.props))
|
||||
return ''.join(lines)
|
||||
|
||||
@@ -165,19 +164,17 @@ def main(argv):
|
||||
objects[name] = symbol
|
||||
symbol.props.add(prop)
|
||||
continue
|
||||
m = re.match(r'@exportSymbol\s+(?P<name>\S+)(?:\s+(?P<export_as>\S+))?\Z', line)
|
||||
m = re.match(r'@exportSymbol\s+(?P<name>\S+)\Z', line)
|
||||
if m:
|
||||
name = m.group('name')
|
||||
if name in objects:
|
||||
raise RuntimeError(line) # Name already defined
|
||||
export_as = m.group('export_as')
|
||||
symbol = Symbol(name, True, export_as)
|
||||
symbol = Symbol(name, True)
|
||||
objects[name] = symbol
|
||||
if not export_as:
|
||||
components = m.group('name').split('.')
|
||||
if re.match(r'[A-Z]', components[-1]):
|
||||
requires.add(name)
|
||||
elif len(components) > 1:
|
||||
else:
|
||||
requires.add('.'.join(components[:-1]))
|
||||
continue
|
||||
raise RuntimeError(line)
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
goog.require('ol.BrowserFeature');
|
||||
goog.require('ol.Map');
|
||||
goog.require('ol.RendererHints');
|
||||
goog.require('ol.View2D');
|
||||
goog.require('ol.dom.Input');
|
||||
goog.require('ol.layer.Tile');
|
||||
goog.require('ol.source.OSM');
|
||||
goog.require('ol.webgl');
|
||||
|
||||
|
||||
if (!ol.webgl.SUPPORTED) {
|
||||
if (!ol.BrowserFeature.HAS_WEBGL) {
|
||||
var inputs = document.getElementsByClassName('webgl');
|
||||
for (var i = 0, len = inputs.length; i < len; i++) {
|
||||
inputs[i].disabled = true;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
goog.require('ol.BrowserFeature');
|
||||
goog.require('ol.Map');
|
||||
goog.require('ol.RendererHint');
|
||||
goog.require('ol.View2D');
|
||||
goog.require('ol.layer.Tile');
|
||||
goog.require('ol.source.MapQuestOpenAerial');
|
||||
goog.require('ol.webgl');
|
||||
|
||||
|
||||
function setResetBrightnessButtonHTML() {
|
||||
@@ -15,7 +15,7 @@ function setResetContrastButtonHTML() {
|
||||
resetContrast.innerHTML = 'Contrast (' + layer.getContrast().toFixed(3) + ')';
|
||||
}
|
||||
|
||||
if (!ol.webgl.SUPPORTED) {
|
||||
if (!ol.BrowserFeature.HAS_WEBGL) {
|
||||
var info = document.getElementById('no-webgl');
|
||||
/**
|
||||
* display error message
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
goog.require('ol.BrowserFeature');
|
||||
goog.require('ol.Map');
|
||||
goog.require('ol.RendererHint');
|
||||
goog.require('ol.View2D');
|
||||
goog.require('ol.layer.Tile');
|
||||
goog.require('ol.proj');
|
||||
goog.require('ol.source.BingMaps');
|
||||
goog.require('ol.webgl');
|
||||
|
||||
|
||||
function setResetHueButtonHTML() {
|
||||
@@ -16,7 +16,7 @@ function setResetSaturationButtonHTML() {
|
||||
layer.getSaturation().toFixed(2) + ')';
|
||||
}
|
||||
|
||||
if (!ol.webgl.SUPPORTED) {
|
||||
if (!ol.BrowserFeature.HAS_WEBGL) {
|
||||
var info = document.getElementById('no-webgl');
|
||||
/**
|
||||
* display error message
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
goog.require('ol.BrowserFeature');
|
||||
goog.require('ol.Map');
|
||||
goog.require('ol.RendererHint');
|
||||
goog.require('ol.View2D');
|
||||
goog.require('ol.layer.Tile');
|
||||
goog.require('ol.source.MapQuestOpenAerial');
|
||||
goog.require('ol.webgl');
|
||||
|
||||
|
||||
var domMap = new ol.Map({
|
||||
@@ -20,7 +20,7 @@ var domMap = new ol.Map({
|
||||
})
|
||||
});
|
||||
|
||||
if (ol.webgl.SUPPORTED) {
|
||||
if (!ol.BrowserFeature.HAS_WEBGL) {
|
||||
var webglMap = new ol.Map({
|
||||
renderer: ol.RendererHint.WEBGL,
|
||||
target: 'webglMap'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
@exportSymbol ol.animation.bounce ol.animation.bounce
|
||||
@exportSymbol ol.animation.pan ol.animation.pan
|
||||
@exportSymbol ol.animation.rotate ol.animation.rotate
|
||||
@exportSymbol ol.animation.zoom ol.animation.zoom
|
||||
@exportSymbol ol.animation.bounce
|
||||
@exportSymbol ol.animation.pan
|
||||
@exportSymbol ol.animation.rotate
|
||||
@exportSymbol ol.animation.zoom
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
@exportSymbol ol.BrowserFeature
|
||||
@exportProperty ol.BrowserFeature.DEVICE_PIXEL_RATIO
|
||||
@exportProperty ol.BrowserFeature.HAS_CANVAS
|
||||
@exportProperty ol.BrowserFeature.HAS_DEVICE_ORIENTATION
|
||||
@exportProperty ol.BrowserFeature.HAS_GEOLOCATION
|
||||
@exportProperty ol.BrowserFeature.HAS_TOUCH
|
||||
@exportProperty ol.BrowserFeature.HAS_WEBGL
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
goog.provide('ol.BrowserFeature');
|
||||
|
||||
goog.require('goog.dom');
|
||||
goog.require('goog.dom.TagName');
|
||||
goog.require('ol.webgl');
|
||||
|
||||
|
||||
/**
|
||||
* @define {boolean} Assume touch.
|
||||
@@ -8,22 +12,111 @@ ol.ASSUME_TOUCH = false;
|
||||
|
||||
|
||||
/**
|
||||
* @type {Object}
|
||||
* @define {boolean} Whether to enable canvas.
|
||||
*/
|
||||
ol.BrowserFeature = {
|
||||
ol.ENABLE_CANVAS = true;
|
||||
|
||||
|
||||
/**
|
||||
* @define {boolean} Whether to enable DOM.
|
||||
*/
|
||||
ol.ENABLE_DOM = true;
|
||||
|
||||
|
||||
/**
|
||||
* @define {boolean} Whether to enable WebGL.
|
||||
*/
|
||||
ol.ENABLE_WEBGL = true;
|
||||
|
||||
|
||||
/**
|
||||
* The ratio between physical pixels and device-independent pixels
|
||||
* (dips) on the device (`window.devicePixelRatio`).
|
||||
* @type {number}
|
||||
* @const {number}
|
||||
* @todo stability experimental
|
||||
*/
|
||||
DEVICE_PIXEL_RATIO: goog.global.devicePixelRatio || 1,
|
||||
ol.BrowserFeature.DEVICE_PIXEL_RATIO = goog.global.devicePixelRatio || 1;
|
||||
|
||||
|
||||
/**
|
||||
* True if browser supports Canvas.
|
||||
* @const {boolean}
|
||||
* @todo stability experimental
|
||||
*/
|
||||
ol.BrowserFeature.HAS_CANVAS = ol.ENABLE_CANVAS && (
|
||||
/**
|
||||
* @return {boolean} Canvas supported.
|
||||
*/
|
||||
function() {
|
||||
if (!('HTMLCanvasElement' in goog.global)) {
|
||||
return false;
|
||||
}
|
||||
try {
|
||||
var canvas = /** @type {HTMLCanvasElement} */
|
||||
(goog.dom.createElement(goog.dom.TagName.CANVAS));
|
||||
return !goog.isNull(canvas.getContext('2d'));
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
})();
|
||||
|
||||
|
||||
/**
|
||||
* Indicates if DeviceOrientation is supported in the user's browser.
|
||||
* @const {boolean}
|
||||
* @todo stability experimental
|
||||
*/
|
||||
ol.BrowserFeature.HAS_DEVICE_ORIENTATION =
|
||||
'DeviceOrientationEvent' in goog.global;
|
||||
|
||||
|
||||
/**
|
||||
* True if browser supports DOM.
|
||||
* @const {boolean}
|
||||
* @todo stability experimental
|
||||
*/
|
||||
ol.BrowserFeature.HAS_DOM = ol.ENABLE_DOM;
|
||||
|
||||
|
||||
/**
|
||||
* Is HTML5 geolocation supported in the current browser?
|
||||
* @const {boolean}
|
||||
* @todo stability experimental
|
||||
*/
|
||||
ol.BrowserFeature.HAS_GEOLOCATION = 'geolocation' in goog.global.navigator;
|
||||
|
||||
|
||||
/**
|
||||
* True if browser supports touch events.
|
||||
* @type {boolean}
|
||||
* @const {boolean}
|
||||
* @todo stability experimental
|
||||
*/
|
||||
HAS_TOUCH: ol.ASSUME_TOUCH ||
|
||||
ol.BrowserFeature.HAS_TOUCH = ol.ASSUME_TOUCH ||
|
||||
(goog.global.document &&
|
||||
'ontouchstart' in goog.global.document.documentElement) ||
|
||||
!!(goog.global.navigator.msPointerEnabled)
|
||||
};
|
||||
!!(goog.global.navigator.msPointerEnabled);
|
||||
|
||||
|
||||
/**
|
||||
* True if browser supports WebGL.
|
||||
* @const {boolean}
|
||||
* @todo stability experimental
|
||||
*/
|
||||
ol.BrowserFeature.HAS_WEBGL = ol.ENABLE_WEBGL && (
|
||||
/**
|
||||
* @return {boolean} WebGL supported.
|
||||
*/
|
||||
function() {
|
||||
if (!('WebGLRenderingContext' in goog.global)) {
|
||||
return false;
|
||||
}
|
||||
try {
|
||||
var canvas = /** @type {HTMLCanvasElement} */
|
||||
(goog.dom.createElement(goog.dom.TagName.CANVAS));
|
||||
return !goog.isNull(ol.webgl.getContext(canvas, {
|
||||
failIfMajorPerformanceCaveat: true
|
||||
}));
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
})();
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
goog.provide('ol.canvas');
|
||||
|
||||
goog.require('goog.dom');
|
||||
goog.require('goog.dom.TagName');
|
||||
|
||||
|
||||
/**
|
||||
* Is supported.
|
||||
* @const
|
||||
* @type {boolean}
|
||||
*/
|
||||
ol.canvas.SUPPORTED = (
|
||||
/**
|
||||
* @return {boolean} Canvas supported.
|
||||
*/
|
||||
function() {
|
||||
if (!('HTMLCanvasElement' in goog.global)) {
|
||||
return false;
|
||||
}
|
||||
try {
|
||||
var canvas = /** @type {HTMLCanvasElement} */
|
||||
(goog.dom.createElement(goog.dom.TagName.CANVAS));
|
||||
return !goog.isNull(canvas.getContext('2d'));
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
})();
|
||||
@@ -1 +1 @@
|
||||
@exportSymbol ol.control.defaults ol.control.defaults
|
||||
@exportSymbol ol.control.defaults
|
||||
|
||||
@@ -1,2 +1 @@
|
||||
@exportSymbol ol.DeviceOrientation
|
||||
@exportSymbol ol.DeviceOrientation.SUPPORTED ol.DeviceOrientation.SUPPORTED
|
||||
|
||||
@@ -3,6 +3,7 @@ goog.provide('ol.DeviceOrientationProperty');
|
||||
|
||||
goog.require('goog.events');
|
||||
goog.require('goog.math');
|
||||
goog.require('ol.BrowserFeature');
|
||||
goog.require('ol.Object');
|
||||
|
||||
|
||||
@@ -111,15 +112,6 @@ ol.DeviceOrientation.prototype.disposeInternal = function() {
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Indicates if DeviceOrientation is supported in the user's browser.
|
||||
* @const
|
||||
* @type {boolean}
|
||||
* @todo stability experimental
|
||||
*/
|
||||
ol.DeviceOrientation.SUPPORTED = 'DeviceOrientationEvent' in goog.global;
|
||||
|
||||
|
||||
/**
|
||||
* @private
|
||||
* @param {goog.events.BrowserEvent} browserEvent Event.
|
||||
@@ -230,7 +222,7 @@ goog.exportProperty(
|
||||
* @private
|
||||
*/
|
||||
ol.DeviceOrientation.prototype.handleTrackingChanged_ = function() {
|
||||
if (ol.DeviceOrientation.SUPPORTED) {
|
||||
if (ol.BrowserFeature.HAS_DEVICE_ORIENTATION) {
|
||||
var tracking = this.getTracking();
|
||||
if (tracking && goog.isNull(this.listenerKey_)) {
|
||||
this.listenerKey_ = goog.events.listen(goog.global, 'deviceorientation',
|
||||
|
||||
@@ -1,2 +1 @@
|
||||
@exportSymbol ol.Geolocation
|
||||
@exportSymbol ol.Geolocation.SUPPORTED ol.Geolocation.SUPPORTED
|
||||
|
||||
@@ -6,6 +6,7 @@ goog.provide('ol.GeolocationProperty');
|
||||
goog.require('goog.events');
|
||||
goog.require('goog.events.EventType');
|
||||
goog.require('goog.math');
|
||||
goog.require('ol.BrowserFeature');
|
||||
goog.require('ol.Coordinate');
|
||||
goog.require('ol.Object');
|
||||
goog.require('ol.proj');
|
||||
@@ -140,7 +141,7 @@ ol.Geolocation.prototype.handleProjectionChanged_ = function() {
|
||||
* @private
|
||||
*/
|
||||
ol.Geolocation.prototype.handleTrackingChanged_ = function() {
|
||||
if (ol.Geolocation.SUPPORTED) {
|
||||
if (ol.BrowserFeature.HAS_GEOLOCATION) {
|
||||
var tracking = this.getTracking();
|
||||
if (tracking && !goog.isDef(this.watchId_)) {
|
||||
this.watchId_ = goog.global.navigator.geolocation.watchPosition(
|
||||
@@ -155,15 +156,6 @@ ol.Geolocation.prototype.handleTrackingChanged_ = function() {
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Is HTML5 geolocation supported in the current browser?
|
||||
* @const
|
||||
* @type {boolean}
|
||||
* @todo stability experimental
|
||||
*/
|
||||
ol.Geolocation.SUPPORTED = 'geolocation' in goog.global.navigator;
|
||||
|
||||
|
||||
/**
|
||||
* @private
|
||||
* @param {GeolocationPosition} position position event.
|
||||
|
||||
@@ -1 +1 @@
|
||||
@exportSymbol ol.interaction.defaults ol.interaction.defaults
|
||||
@exportSymbol ol.interaction.defaults
|
||||
|
||||
@@ -58,34 +58,13 @@ goog.require('ol.layer.Group');
|
||||
goog.require('ol.proj');
|
||||
goog.require('ol.proj.common');
|
||||
goog.require('ol.renderer.Map');
|
||||
goog.require('ol.renderer.canvas');
|
||||
goog.require('ol.renderer.canvas.Map');
|
||||
goog.require('ol.renderer.dom');
|
||||
goog.require('ol.renderer.dom.Map');
|
||||
goog.require('ol.renderer.webgl');
|
||||
goog.require('ol.renderer.webgl.Map');
|
||||
goog.require('ol.structs.PriorityQueue');
|
||||
goog.require('ol.vec.Mat4');
|
||||
|
||||
|
||||
/**
|
||||
* @define {boolean} Whether to enable canvas.
|
||||
*/
|
||||
ol.ENABLE_CANVAS = true;
|
||||
|
||||
|
||||
/**
|
||||
* @define {boolean} Whether to enable DOM.
|
||||
*/
|
||||
ol.ENABLE_DOM = true;
|
||||
|
||||
|
||||
/**
|
||||
* @define {boolean} Whether to enable WebGL.
|
||||
*/
|
||||
ol.ENABLE_WEBGL = true;
|
||||
|
||||
|
||||
/**
|
||||
* @enum {string}
|
||||
* @todo stability experimental
|
||||
@@ -1307,17 +1286,17 @@ ol.Map.createOptionsInternal = function(options) {
|
||||
for (i = 0; i < n; ++i) {
|
||||
rendererHint = rendererHints[i];
|
||||
if (rendererHint == ol.RendererHint.CANVAS) {
|
||||
if (ol.ENABLE_CANVAS && ol.renderer.canvas.SUPPORTED) {
|
||||
if (ol.BrowserFeature.HAS_CANVAS) {
|
||||
rendererConstructor = ol.renderer.canvas.Map;
|
||||
break;
|
||||
}
|
||||
} else if (rendererHint == ol.RendererHint.DOM) {
|
||||
if (ol.ENABLE_DOM && ol.renderer.dom.SUPPORTED) {
|
||||
if (ol.BrowserFeature.HAS_DOM) {
|
||||
rendererConstructor = ol.renderer.dom.Map;
|
||||
break;
|
||||
}
|
||||
} else if (rendererHint == ol.RendererHint.WEBGL) {
|
||||
if (ol.ENABLE_WEBGL && ol.renderer.webgl.SUPPORTED) {
|
||||
if (ol.BrowserFeature.HAS_WEBGL) {
|
||||
rendererConstructor = ol.renderer.webgl.Map;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
goog.provide('ol.renderer.canvas');
|
||||
|
||||
goog.require('ol.canvas');
|
||||
|
||||
|
||||
/**
|
||||
* Is supported.
|
||||
* @const
|
||||
* @type {boolean}
|
||||
*/
|
||||
ol.renderer.canvas.SUPPORTED = ol.canvas.SUPPORTED;
|
||||
@@ -1,9 +0,0 @@
|
||||
goog.provide('ol.renderer.dom');
|
||||
|
||||
|
||||
/**
|
||||
* Is supported.
|
||||
* @const
|
||||
* @type {boolean}
|
||||
*/
|
||||
ol.renderer.dom.SUPPORTED = true;
|
||||
@@ -1,11 +0,0 @@
|
||||
goog.provide('ol.renderer.webgl');
|
||||
|
||||
goog.require('ol.webgl');
|
||||
|
||||
|
||||
/**
|
||||
* Is supported.
|
||||
* @const
|
||||
* @type {boolean}
|
||||
*/
|
||||
ol.renderer.webgl.SUPPORTED = ol.webgl.SUPPORTED;
|
||||
@@ -1 +0,0 @@
|
||||
@exportSymbol ol.webgl.SUPPORTED ol.webgl.SUPPORTED
|
||||
@@ -1,9 +1,6 @@
|
||||
goog.provide('ol.webgl');
|
||||
goog.provide('ol.webgl.WebGLContextEventType');
|
||||
|
||||
goog.require('goog.dom');
|
||||
goog.require('goog.dom.TagName');
|
||||
|
||||
|
||||
/**
|
||||
* @const
|
||||
@@ -45,28 +42,3 @@ ol.webgl.getContext = function(canvas, opt_attributes) {
|
||||
}
|
||||
return null;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Is supported.
|
||||
* @const
|
||||
* @type {boolean}
|
||||
*/
|
||||
ol.webgl.SUPPORTED = (
|
||||
/**
|
||||
* @return {boolean} WebGL supported.
|
||||
*/
|
||||
function() {
|
||||
if (!('WebGLRenderingContext' in goog.global)) {
|
||||
return false;
|
||||
}
|
||||
try {
|
||||
var canvas = /** @type {HTMLCanvasElement} */
|
||||
(goog.dom.createElement(goog.dom.TagName.CANVAS));
|
||||
return !goog.isNull(ol.webgl.getContext(canvas, {
|
||||
failIfMajorPerformanceCaveat: true
|
||||
}));
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
})();
|
||||
|
||||
Reference in New Issue
Block a user