Files
weave-scope/client/app/scripts/utils/dom-utils.js
2019-08-01 16:11:32 +02:00

30 lines
792 B
JavaScript

/**
* Cleans up a value to be used as an element ID.
*
* Encodes invalid characters to be valid in XHTML and makes it
* so that it can be reversed by {@link decodeIdAttribute}.
*/
export function encodeIdAttribute(id) {
return id.replace(/[<>&;]/gm, m => `__u${m.charCodeAt(0)}__`);
}
/**
* Reverts {@link encodeIdAttribute}.
*/
export function decodeIdAttribute(id) {
return id.replace(/__u(\d+)__/gm, (m, d) => String.fromCharCode(d));
}
/**
* Table row children may react to onClick events but the row
* itself does detect a click by looking at onMouseUp. To stop
* the bubbling of clicks on child elements we need to dismiss
* the onMouseUp event.
*/
export const dismissRowClickProps = {
onMouseUp: (ev) => {
ev.preventDefault();
ev.stopPropagation();
}
};