import { assert } from "./chunk-QFCIXVZ3.js"; import { clamp } from "./chunk-54BTDBAD.js"; import { Object_default, abstract } from "./chunk-Q5ZULJHM.js"; // node_modules/ol/layer/Property.js var Property_default = { OPACITY: "opacity", VISIBLE: "visible", EXTENT: "extent", Z_INDEX: "zIndex", MAX_RESOLUTION: "maxResolution", MIN_RESOLUTION: "minResolution", MAX_ZOOM: "maxZoom", MIN_ZOOM: "minZoom", SOURCE: "source", MAP: "map" }; // node_modules/ol/layer/Base.js var BaseLayer = class extends Object_default { /** * @param {Options} options Layer options. */ constructor(options) { super(); this.on; this.once; this.un; this.background_ = options.background; const properties = Object.assign({}, options); if (typeof options.properties === "object") { delete properties.properties; Object.assign(properties, options.properties); } properties[Property_default.OPACITY] = options.opacity !== void 0 ? options.opacity : 1; assert( typeof properties[Property_default.OPACITY] === "number", "Layer opacity must be a number" ); properties[Property_default.VISIBLE] = options.visible !== void 0 ? options.visible : true; properties[Property_default.Z_INDEX] = options.zIndex; properties[Property_default.MAX_RESOLUTION] = options.maxResolution !== void 0 ? options.maxResolution : Infinity; properties[Property_default.MIN_RESOLUTION] = options.minResolution !== void 0 ? options.minResolution : 0; properties[Property_default.MIN_ZOOM] = options.minZoom !== void 0 ? options.minZoom : -Infinity; properties[Property_default.MAX_ZOOM] = options.maxZoom !== void 0 ? options.maxZoom : Infinity; this.className_ = properties.className !== void 0 ? properties.className : "ol-layer"; delete properties.className; this.setProperties(properties); this.state_ = null; } /** * Get the background for this layer. * @return {BackgroundColor|false} Layer background. */ getBackground() { return this.background_; } /** * @return {string} CSS class name. */ getClassName() { return this.className_; } /** * This method is not meant to be called by layers or layer renderers because the state * is incorrect if the layer is included in a layer group. * * @param {boolean} [managed] Layer is managed. * @return {import("./Layer.js").State} Layer state. */ getLayerState(managed) { const state = this.state_ || /** @type {?} */ { layer: this, managed: managed === void 0 ? true : managed }; const zIndex = this.getZIndex(); state.opacity = clamp(Math.round(this.getOpacity() * 100) / 100, 0, 1); state.visible = this.getVisible(); state.extent = this.getExtent(); state.zIndex = zIndex === void 0 && !state.managed ? Infinity : zIndex; state.maxResolution = this.getMaxResolution(); state.minResolution = Math.max(this.getMinResolution(), 0); state.minZoom = this.getMinZoom(); state.maxZoom = this.getMaxZoom(); this.state_ = state; return state; } /** * @abstract * @param {Array} [array] Array of layers (to be * modified in place). * @return {Array} Array of layers. */ getLayersArray(array) { return abstract(); } /** * @abstract * @param {Array} [states] Optional list of layer * states (to be modified in place). * @return {Array} List of layer states. */ getLayerStatesArray(states) { return abstract(); } /** * Return the {@link module:ol/extent~Extent extent} of the layer or `undefined` if it * will be visible regardless of extent. * @return {import("../extent.js").Extent|undefined} The layer extent. * @observable * @api */ getExtent() { return ( /** @type {import("../extent.js").Extent|undefined} */ this.get(Property_default.EXTENT) ); } /** * Return the maximum resolution of the layer. Returns Infinity if * the layer has no maximum resolution set. * @return {number} The maximum resolution of the layer. * @observable * @api */ getMaxResolution() { return ( /** @type {number} */ this.get(Property_default.MAX_RESOLUTION) ); } /** * Return the minimum resolution of the layer. Returns 0 if * the layer has no minimum resolution set. * @return {number} The minimum resolution of the layer. * @observable * @api */ getMinResolution() { return ( /** @type {number} */ this.get(Property_default.MIN_RESOLUTION) ); } /** * Return the minimum zoom level of the layer. Returns -Infinity if * the layer has no minimum zoom set. * @return {number} The minimum zoom level of the layer. * @observable * @api */ getMinZoom() { return ( /** @type {number} */ this.get(Property_default.MIN_ZOOM) ); } /** * Return the maximum zoom level of the layer. Returns Infinity if * the layer has no maximum zoom set. * @return {number} The maximum zoom level of the layer. * @observable * @api */ getMaxZoom() { return ( /** @type {number} */ this.get(Property_default.MAX_ZOOM) ); } /** * Return the opacity of the layer (between 0 and 1). * @return {number} The opacity of the layer. * @observable * @api */ getOpacity() { return ( /** @type {number} */ this.get(Property_default.OPACITY) ); } /** * @abstract * @return {import("../source/Source.js").State} Source state. */ getSourceState() { return abstract(); } /** * Return the value of this layer's `visible` property. To find out whether the layer * is visible on a map, use `isVisible()` instead. * @return {boolean} The value of the `visible` property of the layer. * @observable * @api */ getVisible() { return ( /** @type {boolean} */ this.get(Property_default.VISIBLE) ); } /** * Return the Z-index of the layer, which is used to order layers before * rendering. Returns undefined if the layer is unmanaged. * @return {number|undefined} The Z-index of the layer. * @observable * @api */ getZIndex() { return ( /** @type {number|undefined} */ this.get(Property_default.Z_INDEX) ); } /** * Sets the background color. * @param {BackgroundColor} [background] Background color. */ setBackground(background) { this.background_ = background; this.changed(); } /** * Set the extent at which the layer is visible. If `undefined`, the layer * will be visible at all extents. * @param {import("../extent.js").Extent|undefined} extent The extent of the layer. * @observable * @api */ setExtent(extent) { this.set(Property_default.EXTENT, extent); } /** * Set the maximum resolution at which the layer is visible. * @param {number} maxResolution The maximum resolution of the layer. * @observable * @api */ setMaxResolution(maxResolution) { this.set(Property_default.MAX_RESOLUTION, maxResolution); } /** * Set the minimum resolution at which the layer is visible. * @param {number} minResolution The minimum resolution of the layer. * @observable * @api */ setMinResolution(minResolution) { this.set(Property_default.MIN_RESOLUTION, minResolution); } /** * Set the maximum zoom (exclusive) at which the layer is visible. * Note that the zoom levels for layer visibility are based on the * view zoom level, which may be different from a tile source zoom level. * @param {number} maxZoom The maximum zoom of the layer. * @observable * @api */ setMaxZoom(maxZoom) { this.set(Property_default.MAX_ZOOM, maxZoom); } /** * Set the minimum zoom (inclusive) at which the layer is visible. * Note that the zoom levels for layer visibility are based on the * view zoom level, which may be different from a tile source zoom level. * @param {number} minZoom The minimum zoom of the layer. * @observable * @api */ setMinZoom(minZoom) { this.set(Property_default.MIN_ZOOM, minZoom); } /** * Set the opacity of the layer, allowed values range from 0 to 1. * @param {number} opacity The opacity of the layer. * @observable * @api */ setOpacity(opacity) { assert(typeof opacity === "number", "Layer opacity must be a number"); this.set(Property_default.OPACITY, opacity); } /** * Set the visibility of the layer (`true` or `false`). * @param {boolean} visible The visibility of the layer. * @observable * @api */ setVisible(visible) { this.set(Property_default.VISIBLE, visible); } /** * Set Z-index of the layer, which is used to order layers before rendering. * The default Z-index is 0. * @param {number} zindex The z-index of the layer. * @observable * @api */ setZIndex(zindex) { this.set(Property_default.Z_INDEX, zindex); } /** * Clean up. * @override */ disposeInternal() { if (this.state_) { this.state_.layer = null; this.state_ = null; } super.disposeInternal(); } }; var Base_default = BaseLayer; export { Property_default, Base_default }; //# sourceMappingURL=chunk-AYBYZSAV.js.map