@angular/core
Version:
Angular - the core framework
73 lines • 6.78 kB
JavaScript
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import { Property } from './property';
/**
* Map from jsaction annotation to a parsed map from event name to action name.
*/
const parseCache = {};
export function registerEventType(element, eventType, action) {
const cache = get(element) || {};
cache[eventType] = action;
set(element, cache);
}
export function unregisterEventType(element, eventType) {
const cache = get(element);
if (cache) {
cache[eventType] = undefined;
}
}
/**
* Reads the jsaction parser cache from the given DOM Element.
*
* @param element .
* @return Map from event to qualified name of the jsaction bound to it.
*/
export function get(element) {
// @ts-ignore
return element[Property.JSACTION];
}
/**
* Writes the jsaction parser cache to the given DOM Element.
*
* @param element .
* @param actionMap Map from event to qualified name of the jsaction bound to
* it.
*/
export function set(element, actionMap) {
// @ts-ignore
element[Property.JSACTION] = actionMap;
}
/**
* Looks up the parsed action map from the source jsaction attribute value.
*
* @param text Unparsed jsaction attribute value.
* @return Parsed jsaction attribute value, if already present in the cache.
*/
export function getParsed(text) {
return parseCache[text];
}
/**
* Inserts the parse result for the given source jsaction value into the cache.
*
* @param text Unparsed jsaction attribute value.
* @param parsed Attribute value parsed into the action map.
*/
export function setParsed(text, parsed) {
parseCache[text] = parsed;
}
/**
* Clears the jsaction parser cache from the given DOM Element.
*
* @param element .
*/
export function clear(element) {
if (Property.JSACTION in element) {
delete element[Property.JSACTION];
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3ByaW1pdGl2ZXMvZXZlbnQtZGlzcGF0Y2gvc3JjL2NhY2hlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFFcEM7O0dBRUc7QUFDSCxNQUFNLFVBQVUsR0FBNkMsRUFBRSxDQUFDO0FBRWhFLE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxPQUFnQixFQUFFLFNBQWlCLEVBQUUsTUFBYztJQUNuRixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2pDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxNQUFNLENBQUM7SUFDMUIsR0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN0QixDQUFDO0FBRUQsTUFBTSxVQUFVLG1CQUFtQixDQUFDLE9BQWdCLEVBQUUsU0FBaUI7SUFDckUsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNCLElBQUksS0FBSyxFQUFFLENBQUM7UUFDVixLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsU0FBOEIsQ0FBQztJQUNwRCxDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLEdBQUcsQ0FBQyxPQUFnQjtJQUNsQyxhQUFhO0lBQ2IsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsR0FBRyxDQUFDLE9BQWdCLEVBQUUsU0FBa0M7SUFDdEUsYUFBYTtJQUNiLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxTQUFTLENBQUMsSUFBWTtJQUNwQyxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMxQixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUFDLElBQVksRUFBRSxNQUErQjtJQUNyRSxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDO0FBQzVCLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLEtBQUssQ0FBQyxPQUFnQjtJQUNwQyxJQUFJLFFBQVEsQ0FBQyxRQUFRLElBQUksT0FBTyxFQUFFLENBQUM7UUFDakMsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7UHJvcGVydHl9IGZyb20gJy4vcHJvcGVydHknO1xuXG4vKipcbiAqIE1hcCBmcm9tIGpzYWN0aW9uIGFubm90YXRpb24gdG8gYSBwYXJzZWQgbWFwIGZyb20gZXZlbnQgbmFtZSB0byBhY3Rpb24gbmFtZS5cbiAqL1xuY29uc3QgcGFyc2VDYWNoZToge1trZXk6IHN0cmluZ106IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9fSA9IHt9O1xuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJFdmVudFR5cGUoZWxlbWVudDogRWxlbWVudCwgZXZlbnRUeXBlOiBzdHJpbmcsIGFjdGlvbjogc3RyaW5nKSB7XG4gIGNvbnN0IGNhY2hlID0gZ2V0KGVsZW1lbnQpIHx8IHt9O1xuICBjYWNoZVtldmVudFR5cGVdID0gYWN0aW9uO1xuICBzZXQoZWxlbWVudCwgY2FjaGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5yZWdpc3RlckV2ZW50VHlwZShlbGVtZW50OiBFbGVtZW50LCBldmVudFR5cGU6IHN0cmluZykge1xuICBjb25zdCBjYWNoZSA9IGdldChlbGVtZW50KTtcbiAgaWYgKGNhY2hlKSB7XG4gICAgY2FjaGVbZXZlbnRUeXBlXSA9IHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIHN0cmluZztcbiAgfVxufVxuXG4vKipcbiAqIFJlYWRzIHRoZSBqc2FjdGlvbiBwYXJzZXIgY2FjaGUgZnJvbSB0aGUgZ2l2ZW4gRE9NIEVsZW1lbnQuXG4gKlxuICogQHBhcmFtIGVsZW1lbnQgLlxuICogQHJldHVybiBNYXAgZnJvbSBldmVudCB0byBxdWFsaWZpZWQgbmFtZSBvZiB0aGUganNhY3Rpb24gYm91bmQgdG8gaXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXQoZWxlbWVudDogRWxlbWVudCk6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9IHtcbiAgLy8gQHRzLWlnbm9yZVxuICByZXR1cm4gZWxlbWVudFtQcm9wZXJ0eS5KU0FDVElPTl07XG59XG5cbi8qKlxuICogV3JpdGVzIHRoZSBqc2FjdGlvbiBwYXJzZXIgY2FjaGUgdG8gdGhlIGdpdmVuIERPTSBFbGVtZW50LlxuICpcbiAqIEBwYXJhbSBlbGVtZW50IC5cbiAqIEBwYXJhbSBhY3Rpb25NYXAgTWFwIGZyb20gZXZlbnQgdG8gcXVhbGlmaWVkIG5hbWUgb2YgdGhlIGpzYWN0aW9uIGJvdW5kIHRvXG4gKiAgICAgaXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXQoZWxlbWVudDogRWxlbWVudCwgYWN0aW9uTWFwOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSkge1xuICAvLyBAdHMtaWdub3JlXG4gIGVsZW1lbnRbUHJvcGVydHkuSlNBQ1RJT05dID0gYWN0aW9uTWFwO1xufVxuXG4vKipcbiAqIExvb2tzIHVwIHRoZSBwYXJzZWQgYWN0aW9uIG1hcCBmcm9tIHRoZSBzb3VyY2UganNhY3Rpb24gYXR0cmlidXRlIHZhbHVlLlxuICpcbiAqIEBwYXJhbSB0ZXh0IFVucGFyc2VkIGpzYWN0aW9uIGF0dHJpYnV0ZSB2YWx1ZS5cbiAqIEByZXR1cm4gUGFyc2VkIGpzYWN0aW9uIGF0dHJpYnV0ZSB2YWx1ZSwgaWYgYWxyZWFkeSBwcmVzZW50IGluIHRoZSBjYWNoZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFBhcnNlZCh0ZXh0OiBzdHJpbmcpOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBwYXJzZUNhY2hlW3RleHRdO1xufVxuXG4vKipcbiAqIEluc2VydHMgdGhlIHBhcnNlIHJlc3VsdCBmb3IgdGhlIGdpdmVuIHNvdXJjZSBqc2FjdGlvbiB2YWx1ZSBpbnRvIHRoZSBjYWNoZS5cbiAqXG4gKiBAcGFyYW0gdGV4dCBVbnBhcnNlZCBqc2FjdGlvbiBhdHRyaWJ1dGUgdmFsdWUuXG4gKiBAcGFyYW0gcGFyc2VkIEF0dHJpYnV0ZSB2YWx1ZSBwYXJzZWQgaW50byB0aGUgYWN0aW9uIG1hcC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldFBhcnNlZCh0ZXh0OiBzdHJpbmcsIHBhcnNlZDoge1trZXk6IHN0cmluZ106IHN0cmluZ30pIHtcbiAgcGFyc2VDYWNoZVt0ZXh0XSA9IHBhcnNlZDtcbn1cblxuLyoqXG4gKiBDbGVhcnMgdGhlIGpzYWN0aW9uIHBhcnNlciBjYWNoZSBmcm9tIHRoZSBnaXZlbiBET00gRWxlbWVudC5cbiAqXG4gKiBAcGFyYW0gZWxlbWVudCAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGVhcihlbGVtZW50OiBFbGVtZW50KSB7XG4gIGlmIChQcm9wZXJ0eS5KU0FDVElPTiBpbiBlbGVtZW50KSB7XG4gICAgZGVsZXRlIGVsZW1lbnRbUHJvcGVydHkuSlNBQ1RJT05dO1xuICB9XG59XG4iXX0=