/** * @hidden */ export class QueryModeSelector { /** * Service that provides the query "mode", i.e. how queries on the * map should be made by the user. * * It also provides the query "action", i.e. what to do with the * query results. * * Both the "mode" and "action" can be temporarily set if a key is * pressed on the keyboard by the user. Therefore, this service * listens to the keyboard `keydown` and `keyup` events to * temporarily set them accordingly depending on the key that was * pressed. * * @param {angular.IScope} $rootScope The root scope. */ constructor($rootScope: angular.IScope); /** * The key to press to temporarily set the action to "ADD" * * @type {string} * @private */ private keyActionAdd_; /** * The key to press to temporarily set the action to "REMOVE" * * @type {string} * @private */ private keyActionRemove_; /** * @type {string[]} * @private */ private keysAction_; /** * The action currently active. * * @type {string} * @private */ private action_; /** * A flag that determines whether a request is currently pending * in the query component. * * While this flag is set, the mode can't change due to keyboard * keys being pressed. * * @type {boolean} * @private */ private pending_; /** * A flag than handles the change of mode while a request was * still pending. * * @type {boolean} * @private */ private wasPending_; /** * If a key is pressed, it can temporarily change the currently * active action. When that happens, the currently active action * is stored here to be restored later, after the key has been * released. * * @type {?string} * @private */ private previousAction_; /** * The mode currently active. * * @type {string} * @private */ private mode_; /** * If a key is pressed, it can temporarily change the currently * active mode. When that happens, the currently active mode is * stored here to be restored later, after the key has been * released. * * @type {?string} * @private */ private previousMode_; /** * The action key currently being pressed. Only those registered * in `this.keysAction_` can be active. * * @type {?string} * @private */ private activeActionKey_; /** * @type {angular.IScope} * @private */ private rootScope_; /** * @param {string} action The query action to set as active */ set action(action: string); /** * @returns {string} The query action currently active */ get action(): string; /** * @param {string} mode The query mode to set as active */ set mode(mode: string); /** * @returns {string} The query mode currently active */ get mode(): string; /** * @param {boolean} pending Whether a request is currently pending or not. */ set pending(pending: boolean); /** * @returns {boolean} Whether a request is currently pending or not. */ get pending(): boolean; /** * Handle key down events. * Watch out, some computer or OS (not browser) trigger a pressed key event only once, but * some others trigger it infinitely every x milliseconds. * * @param {Event|import('ol/events/Event').default} evt Event. * @private */ private handleKeyDown_; /** * Handle key up events. * Watch out, some computer or OS (not browser) trigger a pressed key event only once, but * some others trigger it infinitely every x milliseconds. * * @param {Event|import('ol/events/Event').default} evt Event. * @private */ private handleKeyUp_; /** * Check the focus on the page determined by the browser. * If the page is not anymore focus then reset the mode. * * @private */ private checkPageFocus_; /** * Reset the mode to the default one. * * @returns {boolean} true if the scope should be updated. * @private */ private reset_; } export namespace QueryModeSelector { let $inject: string[]; } export default myModule; import angular from 'angular'; /** * @type {angular.IModule} * @hidden */ declare const myModule: angular.IModule;