Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | import * as React from "react"
import * as ReactDOMServer from "react-dom/server"
import { ENV } from "../settings/serverSettings"
import { GlobalEntitySelector } from "../grapher/controls/globalEntitySelector/GlobalEntitySelector"
import {
GLOBAL_ENTITY_SELECTOR_DATA_ATTR,
GLOBAL_ENTITY_SELECTOR_ELEMENT,
} from "../grapher/controls/globalEntitySelector/GlobalEntitySelectorConstants"
import { SelectionArray } from "../grapher/selection/SelectionArray"
export const bakeGlobalEntitySelector = (cheerioEl: CheerioStatic) => {
// The data attr used to be `data-entity-select`, but later changed for consistency in the code.
// But we should still support the old attribute.
cheerioEl(`*[data-entity-select], ${GLOBAL_ENTITY_SELECTOR_ELEMENT}`).each(
(_, el) => {
const $el = cheerioEl(el)
const $section = $el.closest("section")
const rendered = ReactDOMServer.renderToString(
<GlobalEntitySelector
environment={ENV}
selection={new SelectionArray()}
/>
)
// Move the element to top-level where <section>s are,
// in order to make position:sticky work.
$el.remove()
$el.attr(GLOBAL_ENTITY_SELECTOR_DATA_ATTR, "")
$el.addClass("global-entity-control-container")
$el.html(rendered).insertAfter($section)
}
)
}
|