HTML IDs

Prefix-based HTML ID generator for token selector DOM elements.

TokenSelectorHtmlIds


def TokenSelectorHtmlIds(
    prefix:str
)->None:

Prefix-based HTML ID generator for token selector DOM elements.

ids = TokenSelectorHtmlIds(prefix="ts0")
assert ids.container == "ts0-token-selector"
assert ids.token_grid == "ts0-token-grid"
assert ids.anchor_input == "ts0-anchor"
assert ids.focus_input == "ts0-focus"
assert ids.anchor_name == "ts0_anchor"
assert ids.focus_name == "ts0_focus"
assert ids.token(3) == "ts0-token-3"
assert ids.token(0) == "ts0-token-0"

# Different prefix
ids2 = TokenSelectorHtmlIds(prefix="my-split")
assert ids2.container == "my-split-token-selector"
assert ids2.token_grid == "my-split-token-grid"
assert ids2.anchor_name == "my-split_anchor"
assert ids2.focus_name == "my-split_focus"

# No collision
assert ids.container != ids2.container
assert ids.token_grid != ids2.token_grid
assert ids.anchor_name != ids2.anchor_name

# IDs use hyphens, names use underscores
assert "-" in ids.anchor_input
assert "_" in ids.anchor_name

print("TokenSelectorHtmlIds tests passed!")
TokenSelectorHtmlIds tests passed!