in src/state.ts [244:266]
serialize() {
// Serialize regular properties.
let props: string[] = [];
State.PROPS.forEach(({name, type, keyMap}) => {
let value = this[name];
// Don't serialize missing values.
if (value == null) {
return;
}
if (type === Type.OBJECT) {
value = getKeyFromValue(keyMap, value);
} else if (type === Type.ARRAY_NUMBER ||
type === Type.ARRAY_STRING) {
value = value.join(",");
}
props.push(`${name}=${value}`);
});
// Serialize properties that correspond to hiding UI controls.
getHideProps(this).forEach(prop => {
props.push(`${prop}=${this[prop]}`);
});
window.location.hash = props.join("&");
}