UNPKG

@enact/ui

Version:

A collection of simplified unstyled cross-platform UI components for Enact

69 lines (65 loc) 1.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.removeCancelHandler = exports.forCancel = exports.addCancelHandler = void 0; var _handle = require("@enact/core/handle"); /** * Array of cancel handlers. If any of these returns `false`, `forCancel` will return `false`; * * @type {Function[]} * @private */ var cancelHandlers = [ // always support the Escape key (0, _handle.forKey)('cancel')]; /** * Event handler compatible with {@link core/handle} that allows the handler chain to * continue for any cancel event. A cancel event is an Escape key press by default but can be * extended adding additional handlers using * {@link ui/Cancelable/cancelHandler.addCancelHandler}. * * @function * @memberof ui/Cancelable * @param {Object} ev Event object * @returns {Boolean} `true` to stop the handler chain * @private */ var forCancel = exports.forCancel = function forCancel(ev) { var ok = false; cancelHandlers.forEach(function (fn) { // if any handler returns true, we don't need to call anymore ok = ok || fn(ev); }); return ok; }; /** * Adds an event handler to filter cancel events. * * @function * @memberof ui/Cancelable * @param {Function} handler Function that will receive the event and should return `true` if * the event is a cancel event. * @returns {undefined} * @public */ var addCancelHandler = exports.addCancelHandler = function addCancelHandler(handler) { if (cancelHandlers.indexOf(handler) < 0) { cancelHandlers.push(handler); } }; /** * Removes an event handler to filter cancel events * * @function * @memberof ui/Cancelable * @param {Function} handler A previously added filter function * @returns {undefined} * @public */ var removeCancelHandler = exports.removeCancelHandler = function removeCancelHandler(handler) { var index = cancelHandlers.indexOf(handler); if (index >= 0) { cancelHandlers.splice(index, 1); } };