Display JS

Generates JS functions for updating token display state (caret indicators, highlights, dimming, hidden inputs).

Public API


generate_display_js


def generate_display_js(
    config:TokenSelectorConfig, # config for this instance
    ids:TokenSelectorHtmlIds, # HTML IDs
)->str: # JS code fragment for the IIFE

Generate display update and hidden input sync JS functions.

from cjm_fasthtml_token_selector.core.config import TokenSelectorConfig, _reset_prefix_counter
from cjm_fasthtml_token_selector.core.html_ids import TokenSelectorHtmlIds

_reset_prefix_counter()

cfg = TokenSelectorConfig(prefix="t", selection_mode="gap")
ids = TokenSelectorHtmlIds(prefix="t")
js = generate_display_js(cfg, ids)
assert "ns.updateDisplay" in js
assert "ns.updateInputs" in js
assert "t-anchor" in js
assert "t-focus" in js
assert "caret-indicator" in js
print("Gap display JS generated!")

cfg_w = TokenSelectorConfig(prefix="tw", selection_mode="word")
ids_w = TokenSelectorHtmlIds(prefix="tw")
js_w = generate_display_js(cfg_w, ids_w)
assert HIGHLIGHT_CLS in js_w
print("Word display JS generated!")

cfg_s = TokenSelectorConfig(prefix="ts", selection_mode="span")
ids_s = TokenSelectorHtmlIds(prefix="ts")
js_s = generate_display_js(cfg_s, ids_s)
assert HIGHLIGHT_CLS in js_s
assert "caret-indicator" in js_s
print("Span display JS generated!")

_reset_prefix_counter()
print("All display JS tests passed!")
Gap display JS generated!
Word display JS generated!
Span display JS generated!
All display JS tests passed!