{"version":3,"file":"mapMoveCls.js","sourceRoot":"","sources":["../../src/olHelpers/mapMoveCls.ts"],"names":[],"mappings":"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","sourcesContent":["import LayerBaseVector from \"../layers/LayerBaseVector\";\r\nimport MapInteractionBase from './mapInteractionBase';\r\nimport * as checkDefined from '../util/checkDefined';\r\nimport provide from '../util/provide';\r\nimport makeGuid from '../util/makeGuid';\r\nimport {} from 'ol/coordinate';\r\nimport $ = require('jquery');\r\nimport Map from 'ol/Map';\r\nconst nm = provide('olHelpers');\r\n\r\n\r\nexport interface extentObject{\r\n    minX: number;\r\n    minY: number;\r\n    maxX: number;\r\n    maxY: number;\r\n}\r\n\r\nexport interface mapMoveCallbackFunction{\r\n    /**\r\n     *\r\n     * @param extent extent as predefined object minX, minX, maxX, maxY\r\n     * @param zoomLevel current zoom level\r\n     * @param evtType the event type 'change:center', 'change:resolution'\r\n     */\r\n    (extent: extentObject, zoomLevel: number, evtType?: string): any\r\n}\r\n\r\n\r\n/**\r\n * assists with map move interactions, trigger callback functions\r\n * @augments MapInteractionBase\r\n */\r\nexport class MapMoveCls extends MapInteractionBase {\r\n    _mapExtent: extentObject;\r\n    _zoomLevel: number;\r\n    _lookupLayer: {[s: string]: LayerBaseVector};\r\n    _arrLayer: Array<LayerBaseVector>;\r\n    _arrLyrTimeout: Array<number>;\r\n    _mapMoveCallbackTimeout: Array<number>;\r\n    _mapMoveCallbackDelays: Array<number>;\r\n    _mapMoveCallbacksLookup: {[s: string]: mapMoveCallbackFunction};\r\n    _mapMoveCallbackContext: Array<Object>;\r\n    _mapMoveCallbacks: Array<mapMoveCallbackFunction>;\r\n    _arrLyrRequest: Array<any>;\r\n\r\n    /**\r\n     * constructor called implicitly\r\n     */\r\n    constructor() {\r\n        super('map move');\r\n        this._arrLyrRequest = [];\r\n        this._arrLyrTimeout = [];\r\n        this._arrLayer = [];\r\n        this._lookupLayer = {};\r\n\r\n        this._mapMoveCallbacks = [];\r\n        this._mapMoveCallbacksLookup = {};\r\n        this._mapMoveCallbackDelays = [];\r\n        this._mapMoveCallbackContext = [];\r\n        this._mapMoveCallbackTimeout = [];\r\n\r\n        this._mapExtent = undefined;\r\n        this._zoomLevel = undefined;\r\n\r\n    }\r\n\r\n    /**\r\n     * initialize the map move object\r\n     * @param theMap - the ol map\r\n     */\r\n    init(theMap: Map){\r\n        super.init(theMap);\r\n\r\n        this.map.getView().on(['change:center', 'change:resolution'], (e: {type: string}) =>{\r\n\r\n           this._updateMapExtent();\r\n\r\n            // trigger the layer updates\r\n            for (let i = 0; i < this._arrLayer.length; i++) {\r\n                this.triggerLyrLoad(this._arrLayer[i], i, e.type);\r\n            }\r\n\r\n            // trigger the map callbacks\r\n            for (let i = 0; i < this._mapMoveCallbacks.length; i++) {\r\n                this.triggerMoveCallback(i, e.type);\r\n            }\r\n        });\r\n    }\r\n\r\n    _updateMapExtent() {\r\n        let theView = this.map.getView();\r\n        this._zoomLevel = theView.getZoom();\r\n\r\n        let extentArray = theView.calculateExtent(this.map.getSize());\r\n\r\n        this._mapExtent = {\r\n            minX: extentArray[0],\r\n            minY: extentArray[1],\r\n            maxX: extentArray[2],\r\n            maxY: extentArray[3]\r\n        };\r\n    }\r\n\r\n    /**\r\n     * return the map extent\r\n     */\r\n    get mapExtent() {\r\n        if (!this._mapExtent) {\r\n            this._updateMapExtent();\r\n        }\r\n\r\n        return this._mapExtent;\r\n    }\r\n\r\n    /**\r\n     * Trigger the layer load\r\n     * @param lyr the layer being acted on\r\n     * @param index index of the layer\r\n     * @param eventType the event triggering the load, as 'change:center' or 'change:resolution'\r\n     */\r\n    triggerLyrLoad(lyr: LayerBaseVector, index?: number, eventType?: string) {\r\n\r\n        if (checkDefined.undefinedOrNull(lyr) && checkDefined.undefinedOrNull(index)) {\r\n            throw 'need to define lyr or index';\r\n        } else if (checkDefined.definedAndNotNull(lyr) && checkDefined.undefinedOrNull(index)) {\r\n            index = this._arrLayer.indexOf(lyr);\r\n        } else if (checkDefined.undefinedOrNull(lyr) && checkDefined.definedAndNotNull(index)) {\r\n            lyr = this._arrLayer[index];\r\n        }\r\n\r\n        // clear the timeout\r\n        if (this._arrLyrTimeout[index] != null) {\r\n            clearTimeout(this._arrLyrTimeout[index]);\r\n            this._arrLyrTimeout[index] = null;\r\n        }\r\n\r\n        // abort if necessary and clear the request\r\n        if (this._arrLyrRequest[index] != null && this._arrLyrRequest[index] != 4) {\r\n            this._arrLyrRequest[index].abort();\r\n            this._arrLyrRequest[index] = null;\r\n        }\r\n\r\n        // dummy callback used if before load returns false\r\n        let callbackFunc = function () {};\r\n\r\n        if (lyr.mapMoveBefore(this._zoomLevel, eventType)) {\r\n            lyr.mapMoveMakeGetParams(this._mapExtent, this._zoomLevel);\r\n\r\n            let __this = this;\r\n\r\n            callbackFunc = function () {\r\n                function innerFunction(theLayer: LayerBaseVector, theIndex: number) {\r\n                    let _innerThis = this;\r\n                    this._arrLyrRequest[theIndex] = $.get(\r\n                        theLayer.url,\r\n                        theLayer.mapMoveParams,\r\n                        function (d) {\r\n                            /**\r\n                             * @type {LayerBaseVector}\r\n                             */\r\n                            theLayer.mapMoveCallback(d);\r\n                            theLayer.loadCallback();\r\n                        }, 'json').fail(\r\n                        function (jqXHR) {\r\n                            if (jqXHR.statusText != 'abort') {\r\n                                console.log('failed');\r\n                                console.log(theLayer.url);\r\n                                console.log(theLayer.mapMoveParams);\r\n                            }\r\n                        }).always(\r\n                        function () {\r\n                            _innerThis._arrLyrTimeout[theIndex] = null;\r\n                            _innerThis._arrLyrRequest[theIndex] = null;\r\n                        });\r\n                }\r\n                innerFunction.call(__this, lyr, index);\r\n            };\r\n        } else {\r\n            lyr.clear();\r\n        }\r\n        this._arrLyrTimeout[index] = setTimeout(callbackFunc, lyr.onDemandDelay);\r\n    }\r\n\r\n    /**\r\n     * trigger the map move call back at the given index\r\n     * @param ind - the index of the layer\r\n     * @param eventType=undefined the event triggering the load as 'change:center' or 'change:resolution'\r\n     * @param functionId=undefined the function id used to reference the added callback function\r\n     */\r\n    triggerMoveCallback(ind: number, eventType?: string, functionId?: string) {\r\n\r\n        if (typeof ind == 'undefined' && typeof functionId == 'undefined'){\r\n            throw 'either the function index or the id must be defined';\r\n        }\r\n\r\n        if (typeof ind !== 'number'){\r\n            ind = this._mapMoveCallbacks.indexOf(this._mapMoveCallbacksLookup[functionId]);\r\n        }\r\n\r\n        if (ind < 0){\r\n            console.log('function not found');\r\n\r\n            return;\r\n        }\r\n\r\n        // clear the timeout\r\n        if (this._mapMoveCallbackTimeout[ind] != null) {\r\n            clearTimeout(this._mapMoveCallbackTimeout[ind]);\r\n            this._mapMoveCallbackTimeout[ind] = null;\r\n        }\r\n\r\n        let ctx = this._mapMoveCallbackContext[ind];\r\n        let theFunc = this._mapMoveCallbacks[ind];\r\n\r\n        let __this = this;\r\n\r\n        let f = function () {\r\n            if (ctx !== null) {\r\n                theFunc.call(ctx, __this._mapExtent, __this._zoomLevel, eventType);\r\n            } else {\r\n                theFunc(__this._mapExtent, __this._zoomLevel, eventType);\r\n            }\r\n        };\r\n\r\n        this._mapMoveCallbackTimeout[ind] = setTimeout(f, this._mapMoveCallbackDelays[ind]);\r\n    }\r\n\r\n    /**\r\n     * Add a layer to the interaction\r\n     * @param  lyr - layer to add\r\n     * @param triggerOnAdd - if the layer should be loaded on add\r\n     */\r\n    addVectorLayer(lyr: LayerBaseVector, triggerOnAdd: boolean = true) {\r\n        if (this._arrLayer.indexOf(lyr) > -1) {\r\n            console.log('already added ' + lyr.name + ' to map move');\r\n\r\n            return;\r\n        }\r\n        this._checkInit();\r\n\r\n        this._arrLyrRequest.push(null);\r\n        this._arrLyrTimeout.push(null);\r\n        this._arrLayer.push(lyr);\r\n        this._lookupLayer[lyr.id] = lyr;\r\n\r\n        triggerOnAdd = typeof triggerOnAdd == 'boolean' ? triggerOnAdd : true;\r\n\r\n        if (triggerOnAdd) {\r\n            if (this._mapExtent === undefined) {\r\n                this._updateMapExtent();\r\n            }\r\n            this.triggerLyrLoad(lyr, this._arrLayer.length - 1);\r\n        }\r\n    }\r\n\r\n\r\n    /**\r\n     * add a callback to the map move event\r\n     * @param func - callback function\r\n     * @param context - the context to use for this function\r\n     * @param delay=50 the delay before call load\r\n     * @param triggerOnAdd if the layer should be loaded on add to mapMove\r\n     * @param functionId optional id to reference the function later for outside triggering\r\n     */\r\n    addCallback(func: mapMoveCallbackFunction, context?: any, delay?: number, triggerOnAdd? : boolean, functionId?: string) {\r\n\r\n        if (this._mapMoveCallbacks.indexOf(func) > -1) {\r\n            console.log('this function already added to map move');\r\n            return;\r\n        }\r\n        this._checkInit();\r\n        if (!functionId){\r\n            functionId = makeGuid();\r\n        }\r\n\r\n        this._mapMoveCallbacks.push(func);\r\n        this._mapMoveCallbacksLookup[functionId] = func;\r\n        this._mapMoveCallbackDelays.push(typeof delay == 'number' ? delay : 50);\r\n        this._mapMoveCallbackContext.push(checkDefined.definedAndNotNull(context) ? context : null);\r\n        this._mapMoveCallbackTimeout.push(null);\r\n\r\n        triggerOnAdd = typeof triggerOnAdd == 'boolean' ? triggerOnAdd : true;\r\n\r\n        if (triggerOnAdd) {\r\n            if (this._mapExtent === undefined) {\r\n                this._updateMapExtent();\r\n            }\r\n            this.triggerMoveCallback(this._mapMoveCallbacks.length - 1);\r\n        }\r\n    }\r\n}\r\n\r\nnm.MapMoveCls = MapMoveCls;\r\nexport default MapMoveCls;\r\n"]}