/** * @param {JQuery} $element Element. * @param {angular.IScope} $scope Angular scope. * @param {import('ngeo/map/LayerHelper').LayerHelper} ngeoLayerHelper Ngeo Layer Helper. * @param {import('gmf/datasource/LayerBeingSwipe').LayerBeingSwipe} gmfLayerBeingSwipe * @param {import('gmf/datasource/DataSourceBeingFiltered').DataSourceBeingFiltered} gmfDataSourceBeingFiltered * The Gmf value service that determines the data source currently being * filtered. * @param {import('gmf/datasource/ExternalDataSourcesManager').ExternalDatSourcesManager} gmfExternalDataSourcesManager * The Gmf external data sources manager service. Used here to fetch the external WMS groups. * @param {import('gmf/permalink/Permalink').PermalinkService} gmfPermalink The gmf permalink service. * @param {import('gmf/layertree/TreeManager').LayertreeTreeManager} gmfTreeManager * gmf Tree Manager service. * @param {import('gmf/layertree/SyncLayertreeMap').SyncLayertreeMap} gmfSyncLayertreeMap * gmfSyncLayertreeMap service. * @param {import('ngeo/misc/WMSTime').WMSTime} ngeoWMSTime wms time service. * @param {import('gmf/theme/Themes').ThemesService} gmfThemes The gmf Themes service. * @param {angular.ITimeoutService} $timeout Angular timeout service. * @param {import('gmf/options').gmfLayerTreeOptions} gmfLayerTreeOptions The options. * @class * @hidden * @ngdoc controller * @ngname gmfLayertreeController */ export function Controller($element: JQuery, $scope: angular.IScope, ngeoLayerHelper: import("ngeo/map/LayerHelper").LayerHelper, gmfLayerBeingSwipe: import("gmf/datasource/LayerBeingSwipe").LayerBeingSwipe, gmfDataSourceBeingFiltered: import("gmf/datasource/DataSourceBeingFiltered").DataSourceBeingFiltered, gmfExternalDataSourcesManager: import("gmf/datasource/ExternalDataSourcesManager").ExternalDatSourcesManager, gmfPermalink: import("gmf/permalink/Permalink").PermalinkService, gmfTreeManager: import("gmf/layertree/TreeManager").LayertreeTreeManager, gmfSyncLayertreeMap: import("gmf/layertree/SyncLayertreeMap").SyncLayertreeMap, ngeoWMSTime: import("ngeo/misc/WMSTime").WMSTime, gmfThemes: import("gmf/theme/Themes").ThemesService, $timeout: angular.ITimeoutService, gmfLayerTreeOptions: import("gmf/options").gmfLayerTreeOptions): void; export class Controller { /** * @param {JQuery} $element Element. * @param {angular.IScope} $scope Angular scope. * @param {import('ngeo/map/LayerHelper').LayerHelper} ngeoLayerHelper Ngeo Layer Helper. * @param {import('gmf/datasource/LayerBeingSwipe').LayerBeingSwipe} gmfLayerBeingSwipe * @param {import('gmf/datasource/DataSourceBeingFiltered').DataSourceBeingFiltered} gmfDataSourceBeingFiltered * The Gmf value service that determines the data source currently being * filtered. * @param {import('gmf/datasource/ExternalDataSourcesManager').ExternalDatSourcesManager} gmfExternalDataSourcesManager * The Gmf external data sources manager service. Used here to fetch the external WMS groups. * @param {import('gmf/permalink/Permalink').PermalinkService} gmfPermalink The gmf permalink service. * @param {import('gmf/layertree/TreeManager').LayertreeTreeManager} gmfTreeManager * gmf Tree Manager service. * @param {import('gmf/layertree/SyncLayertreeMap').SyncLayertreeMap} gmfSyncLayertreeMap * gmfSyncLayertreeMap service. * @param {import('ngeo/misc/WMSTime').WMSTime} ngeoWMSTime wms time service. * @param {import('gmf/theme/Themes').ThemesService} gmfThemes The gmf Themes service. * @param {angular.ITimeoutService} $timeout Angular timeout service. * @param {import('gmf/options').gmfLayerTreeOptions} gmfLayerTreeOptions The options. * @class * @hidden * @ngdoc controller * @ngname gmfLayertreeController */ constructor($element: JQuery, $scope: angular.IScope, ngeoLayerHelper: import("ngeo/map/LayerHelper").LayerHelper, gmfLayerBeingSwipe: import("gmf/datasource/LayerBeingSwipe").LayerBeingSwipe, gmfDataSourceBeingFiltered: import("gmf/datasource/DataSourceBeingFiltered").DataSourceBeingFiltered, gmfExternalDataSourcesManager: import("gmf/datasource/ExternalDataSourcesManager").ExternalDatSourcesManager, gmfPermalink: import("gmf/permalink/Permalink").PermalinkService, gmfTreeManager: import("gmf/layertree/TreeManager").LayertreeTreeManager, gmfSyncLayertreeMap: import("gmf/layertree/SyncLayertreeMap").SyncLayertreeMap, ngeoWMSTime: import("ngeo/misc/WMSTime").WMSTime, gmfThemes: import("gmf/theme/Themes").ThemesService, $timeout: angular.ITimeoutService, gmfLayerTreeOptions: import("gmf/options").gmfLayerTreeOptions); /** * @type {import('gmf/options').gmfLayerTreeOptions} */ options: import("gmf/options").gmfLayerTreeOptions; /** * @type {import('ol/Map').default} */ map: import("ol/Map").default; /** * @type {?Object} */ dimensions: { [x: string]: string; } | null; /** * @type {angular.IScope} */ scope_: angular.IScope; /** * @type {import('ngeo/map/LayerHelper').LayerHelper} */ layerHelper_: import("ngeo/map/LayerHelper").LayerHelper; /** * @type {import('gmf/datasource/LayerBeingSwipe').LayerBeingSwipe} */ gmfLayerBeingSwipe: import("gmf/datasource/LayerBeingSwipe").LayerBeingSwipe; /** * @type {import('gmf/datasource/DataSourceBeingFiltered').DataSourceBeingFiltered} */ gmfDataSourceBeingFiltered: import("gmf/datasource/DataSourceBeingFiltered").DataSourceBeingFiltered; /** * @type {import('gmf/datasource/ExternalDataSourcesManager').ExternalDatSourcesManager} */ gmfExternalDataSourcesManager: import("gmf/datasource/ExternalDataSourcesManager").ExternalDatSourcesManager; /** * @type {import('gmf/permalink/Permalink').PermalinkService} */ gmfPermalink_: import("gmf/permalink/Permalink").PermalinkService; /** * @type {import('gmf/layertree/TreeManager').LayertreeTreeManager} */ gmfTreeManager_: import("gmf/layertree/TreeManager").LayertreeTreeManager; /** * @type {import('gmf/themes').GmfRootNode} */ root: import("gmf/themes").GmfRootNode; /** * @type {import('gmf/layertree/SyncLayertreeMap').SyncLayertreeMap} */ gmfSyncLayertreeMap_: import("gmf/layertree/SyncLayertreeMap").SyncLayertreeMap; /** * @type {import('ngeo/misc/WMSTime').WMSTime} */ ngeoWMSTime_: import("ngeo/misc/WMSTime").WMSTime; /** * @type {Object} */ groupNodeStates_: { [x: number]: string[]; }; /** * @type {?import('ol/layer/Group').default} */ dataLayerGroup_: import("ol/layer/Group").default | null; /** * @type {import('ol/layer/Base').default[]} */ layers: import("ol/layer/Base").default[]; /** * @type {import('gmf/theme/Themes').ThemesService} */ gmfThemes_: import("gmf/theme/Themes").ThemesService; /** * @type {angular.ITimeoutService} */ $timeout_: angular.ITimeoutService; /** * Init the controller, */ $onInit(): void; /** * @param {import('ngeo/layertree/Controller').LayertreeController} treeCtrl Layer tree controller. */ updateDimensions_(treeCtrl: import("ngeo/layertree/Controller").LayertreeController): void; /** * @param {olLayerLayer} layer Layer to update. * @param {import('gmf/themes').GmfGroup|import('gmf/themes').GmfLayer} node Layer tree node. */ updateLayerDimensions_(layer: olLayerLayer, node: import("gmf/themes").GmfGroup | import("gmf/themes").GmfLayer): void; /** * Use the gmfSyncLayertreeMap_ to create and get layer corresponding to this * treeCtrl. The layer will be inserted into the map. The layer can be null * if the treeCtrl is based on a node inside a mixed node. It this case, the * layer will be in the first parent declared as a mixed node. * * @param {import('ngeo/layertree/Controller').LayertreeController} treeCtrl tree controller of the * node. * @returns {import('ol/layer/Base').default|import('ol/layer/Group').default|null} The OpenLayers * layer or group for the node. */ getLayer(treeCtrl: import("ngeo/layertree/Controller").LayertreeController): import("ol/layer/Base").default | import("ol/layer/Group").default | null; /** * Remove layer from this component's layergroup (and then, from the map) on * a ngeo layertree destroy event. * * @param {angular.IScope} scope treeCtrl scope. * @param {import('ngeo/layertree/Controller').LayertreeController} treeCtrl ngeo layertree controller, * from the current node. */ listeners(scope: angular.IScope, treeCtrl: import("ngeo/layertree/Controller").LayertreeController): void; /** * Toggle the state of treeCtrl's node. * * @param {import('ngeo/layertree/Controller').LayertreeController} treeCtrl ngeo layertree controller, * from the current node. */ toggleActive(treeCtrl: import("ngeo/layertree/Controller").LayertreeController): void; /** * Return the current state of the given treeCtrl's node. * Return a class name that match with the current node activation state. * * @param {import('ngeo/layertree/Controller').LayertreeController} treeCtrl ngeo layertree controller, * from the current node. * @returns {string} 'on' or 'off' or 'indeterminate'. */ getNodeState(treeCtrl: import("ngeo/layertree/Controller").LayertreeController): string; /** * Update the `timeRangeValue` property of the data source bound to the * given tree controller and the state of the permalink using the given time. * * LayertreeController.prototype.updateTimeData - description * * @param {import('ngeo/layertree/Controller').LayertreeController} layertreeCtrl ngeo layertree controller * @param {import('ngeo/datasource/OGC').TimeRange} time The start * and optionally the end datetime (for time range selection) selected by user */ updateTimeData(layertreeCtrl: import("ngeo/layertree/Controller").LayertreeController, time: import("ngeo/datasource/OGC").TimeRange): void; /** * Update the `timeRangeValue` property of the data source bound to the * given tree controller using the given time. If the tree controller has * no data source, it means that it has children and they might have * data sources. * * The setting of the TIME parameter on the layer occurs in the * `gmf.datasource.Manager` service * * LayertreeController.prototype.updateWMSTimeLayerState - description * * @param {import('ngeo/layertree/Controller').LayertreeController} layertreeCtrl ngeo layertree controller * @param {import('ngeo/datasource/OGC').TimeRange} time The start * and optionally the end datetime (for time range selection) selected by user */ updateWMSTimeLayerState(layertreeCtrl: import("ngeo/layertree/Controller").LayertreeController, time: import("ngeo/datasource/OGC").TimeRange): void; /** * Get the icon image URL for the given treeCtrl's layer. It can only return a * string for internal WMS layers without multiple childlayers in the node. * * @param {import('ngeo/layertree/Controller').LayertreeController} treeCtrl ngeo layertree controller, * from the current node. * @returns {string|undefined} The icon legend URL or undefined. */ getLegendIconURL(treeCtrl: import("ngeo/layertree/Controller").LayertreeController): string | undefined; /** * Get the legends object ( for each layer) for the given treeCtrl. * * @param {import('ngeo/layertree/Controller').LayertreeController} treeCtrl ngeo layertree controller, * from the current node. * @returns {?Object} A object that provides a * layer for each layer. */ getLegendsObject(treeCtrl: import("ngeo/layertree/Controller").LayertreeController): { [x: string]: string; } | null; /** * Get the number of legends object for this layertree controller. * * @param {import('ngeo/layertree/Controller').LayertreeController} treeCtrl ngeo layertree controller, * from the current node. * @returns {number} The number of Legends object. */ getNumberOfLegendsObject(treeCtrl: import("ngeo/layertree/Controller").LayertreeController): number; /** * Return the current scale of the map. * * @returns {number} Scale. */ getScale_(): number; /** * Is snapping activated for this LayertreeController * * @param {import('ngeo/layertree/Controller').LayertreeController} treeCtrl ngeo layertree controller. * @returns {boolean} True if snapping is activated for that layer. */ isSnappingActivated(treeCtrl: import("ngeo/layertree/Controller").LayertreeController): boolean; /** * Toggle snapping for this LayertreeController. * * @param {import('ngeo/layertree/Controller').LayertreeController} treeCtrl ngeo layertree controller. */ toggleSnapping(treeCtrl: import("ngeo/layertree/Controller").LayertreeController): void; /** * Opens a openIframePopup with the content of the metadata url of a node. * * @param {import('ngeo/layertree/Controller').LayertreeController} treeCtrl ngeo layertree controller, * from the current node. */ displayMetadata(treeCtrl: import("ngeo/layertree/Controller").LayertreeController): void; /** * Update the layers order in the map and the treeCtrl in the treeManager after * a reorder of the first-level groups. Then update the permalink. */ afterReorder(): void; /** * @param {import('gmf/themes').GmfGroup} node Layer tree node to tag popup identifier. */ tagPopup(node: import("gmf/themes").GmfGroup): void; /** * @param {import('gmf/themes').GmfGroup} node Layer tree node to remove. */ removeNode(node: import("gmf/themes").GmfGroup): void; removeAllNodes(): void; /** * @returns {number} first level node count. */ nodesCount(): number; /** * Return 'out-of-resolution' if the current resolution of the map is out of * the min/max resolution in the node. * * @param {import('gmf/themes').GmfLayerWMS} gmfLayer the GeoMapFish Layer. WMTS layer is * also allowed (the type is defined as GmfLayerWMS only to avoid some * useless tests to know if a minResolutionHint property can exist * on the node). * @returns {string|undefined} 'out-of-resolution' or undefined. */ getResolutionStyle(gmfLayer: import("gmf/themes").GmfLayerWMS): string | undefined; /** * Set the resolution of the map with the max or min resolution of the node. * * @param {import('ngeo/layertree/Controller').LayertreeController} treeCtrl ngeo layertree controller, * from the current node. */ zoomToResolution(treeCtrl: import("ngeo/layertree/Controller").LayertreeController): void; /** * Toggle the legend for a node * * @param {string} legendNodeId The DOM node legend id to toggle */ toggleNodeLegend(legendNodeId: string): void; /** * Toggle the menu for a node * * @param {string} menuNodeId The DOM node menu id to toggle */ toggleNodeMenu(menuNodeId: string): void; /** * @param {import('gmf/datasource/OGC').default} ds Data source to filter. */ toggleFiltrableDataSource(ds: import("gmf/datasource/OGC").default): void; /** * @param {string} legendNodeId The DOM node legend id * @returns {boolean} Whenever the legend is currently displayed. */ isNodeLegendVisible(legendNodeId: string): boolean; /** * Determines whether the layer tree controller supports being customized. * For example, having its layer opacity changed, displaying its legend, etc. * * If any requirement is met, then the treeCtrl is considered supporting * "customization", regardless of what it actually is. * * The requirements are: * * - must not be the root controller, any of the following: * - it supports legend * - it supports having the layer opacity being changed * * @param {import('ngeo/layertree/Controller').LayertreeController} treeCtrl Ngeo tree controller. * @returns {boolean} Whether the layer tree controller supports being * "customized" or not. */ supportsCustomization(treeCtrl: import("ngeo/layertree/Controller").LayertreeController): boolean; /** * @param {import('ngeo/layertree/Controller').LayertreeController} treeCtrl Ngeo tree controller. * @returns {boolean} Whether the layer tree controller supports having a * legend being shown. */ supportsLegend(treeCtrl: import("ngeo/layertree/Controller").LayertreeController): boolean; /** * @param {import('ngeo/layertree/Controller').LayertreeController} treeCtrl Ngeo tree controller. * @returns {boolean} Whether the layer tree controller supports having its * layer opacity being changed or not. */ supportsOpacityChange(treeCtrl: import("ngeo/layertree/Controller").LayertreeController): boolean; /** * @param {import('ngeo/layertree/Controller').LayertreeController} treeCtrl Ngeo tree controller. * @returns {boolean} Whether the layer tree controller has a filtrable datasource or not. */ isFiltrable(treeCtrl: import("ngeo/layertree/Controller").LayertreeController): boolean; /** * @param {import('ngeo/layertree/Controller').LayertreeController} treeCtrl Ngeo tree controller. * @returns {import('ngeo/layertree/Controller').LayertreeController} first parent that supports * opacity change or is filtrable. Or null if there is any parent with layer functions. */ getFirstParentWithLayerFunctions(treeCtrl: import("ngeo/layertree/Controller").LayertreeController): import("ngeo/layertree/Controller").LayertreeController; } export namespace Controller { let $inject: string[]; } export default myModule; /** * Static function to create a popup with an iframe. */ export type openIframePopup = Function; import angular from 'angular'; import olLayerLayer from 'ol/layer/Layer'; /** * Static function to create a popup with an iframe. * * @typedef {Function} openIframePopup * @param {string} url an url. * @param {string} title (text). * @param {string} [opt_width] CSS width. * @param {string} [opt_height] CSS height. * @param {boolean} [opt_apply] If true, trigger the Angular digest loop. Default to true. */ /** * @type {angular.IModule} * @hidden */ declare const myModule: angular.IModule;