mirror of
https://github.com/weaveworks/scope.git
synced 2026-03-03 18:20:27 +00:00
30 lines
792 B
JavaScript
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();
|
|
}
|
|
};
|