Skip to main content

Tree

shadow

Element Tree umožňuje hierarchické zobrazovanie dát v stromovej štruktúre. Používa sa na vizualizáciu kategórií, súborových systémov alebo navigačných štruktúr. Tree obsahuje wje-tree ako hlavný kontajner a wje-tree-item ako jednotlivé položky stromu. Položky môžu obsahovať deti, čím vytvárajú vnorenú hierarchiu.

Základné použitie​

Ukážka predstavuje základný strom s vnorenými uzlami, aby bolo jasné predvolené otváranie a hierarchia.

Slots​

Ukážka používa sloty na doplnenie ikon alebo sekundárneho obsahu pri uzloch stromu. Ak je na wje-tree nastavený boolean atribút reorder, priamy obsah v slote start slúži ako drag handle pre presúvanie položiek.

Presúvanie položiek​

Presúvanie sa zapína atribútom reorder na wje-tree. Položku je možné presunúť pred cieľ, za cieľ alebo dovnútra cieľovej položky. Po úspešnom presune komponent dispatchuje event wje-tree:move.

Detail eventu obsahuje rovnaké základné polia ako wje-reorder:change (from, to, order, orderElements) a dopĺňa stromové údaje vhodné na odoslanie na backend: itemId, targetId, fromParentId, toParentId, position a orderIds. itemId a rodičovské ID sa čítajú z atribútu value, prípadne z id.

Drop indikátory sa dajú tematizovať cez CSS tokeny, napr. --wje-tree-item-drop-color, --wje-tree-item-drop-line-width, --wje-tree-item-drop-border-width a --wje-tree-item-drop-border-radius.

Multiple​

Ukážka povoľuje otvorenie viacerých vetiev stromu naraz, čo sa hodí pri porovnávaní vzdialenejších vetiev.

Odsadenie vnorení​

Pre viac úrovní vnorenia (napr. Deciduous -> Maple -> Field maple) sa odsadenie aplikuje priebežne na každú otvorenú vetvu. Vďaka tomu je tretia a ďalšie úrovne čitateľne oddelené od rodiča.

TO DO complete tree and tree item docs​

Kedy použiť​

Použite wje-tree, keď používateľ potrebuje orientáciu v aplikácii alebo prechod medzi stavmi/obrazovkami.

Kedy nepoužiť​

Nepoužívajte viac paralelných navigačných vzorov, ktoré si navzájom konkurujú.

Prístupnosť​

Zabezpečte jasné active/selected stavy, predvídateľné poradie tabulátora a pomenovanie ovládacích prvkov.

Odporúčané postupy​

  • Držte URL a UI stav v synchronizácii, aby bola navigácia reprodukovateľná.
  • Používajte konzistentné názvoslovie položiek naprieč menu, breadcrumbom a tabmi.
  • Pri hlbokých štruktúrach pridajte pomocný kontext (breadcrumb, nadpis, ikony).

Atribúty a vlastnosti​

reorder​

PopisUrčuje, či je voľba reorder zapnutá a ovplyvňuje správanie komponentu.
Atribútreorder
Typboolean
Predvolenéfalse

selection​

PopisRiadi správanie výberu položiek pre voľbu selection.
Atribútselection
Typstring
Predvolenésingle

Udalosti​

NázovPopis
wje-tree:moveVyvolá sa pri odoslaní udalosti wje-tree:move.

Metódy​

getAllItems​

PopisVráti všetky položky z aktuálneho stavu komponentu.
Signatúra() => Array<Element>

appendTemplateSlot​

PopisSpustí metódu appendTemplateSlot na vykonanie logiky komponentu a aktualizáciu jeho stavu.
Signatúra(item: HTMLElement, template: HTMLTemplateElement|null, slotName: string) => void

getTemplateSlotClass​

PopisVráti template slot class z aktuálneho stavu komponentu.
Signatúra(slotName: string) => string

setupReorderHandle​

PopisInicializuje reorder handle pred interaktívnym použitím.
Signatúra(item: HTMLElement) => void

getTreeItemFromEvent​

PopisVráti tree položku from udalosť z aktuálneho stavu komponentu.
Signatúra(e: Event) => HTMLElement|null

isReorderHandleEvent​

PopisOverí, či je reorder handle udalosť aktuálne pravda.
Signatúra(e: Event) => boolean

isTreeItem​

PopisOverí, či je tree položku aktuálne pravda.
Signatúra(node: object) => boolean

getDirectTreeItems​

PopisVráti direct tree položky z aktuálneho stavu komponentu.
Signatúra(parent: HTMLElement) => HTMLElement[]

getTreeItemIndex​

PopisVráti tree položku index z aktuálneho stavu komponentu.
Signatúra(item: HTMLElement) => number

canDrop​

PopisSpustí metódu canDrop na vykonanie logiky komponentu a aktualizáciu jeho stavu.
Signatúra(draggedItem: HTMLElement, targetItem: HTMLElement) => boolean

getDropPosition​

PopisVráti pustenie position z aktuálneho stavu komponentu.
Signatúra(e: DragEvent, target: HTMLElement|null) => 'before'|'inside'|'after'

setDropState​

PopisNastaví pustenie state a aplikuje súvisiace zmeny stavu.
Signatúra(target: HTMLElement, position: string) => void

clearDropState​

PopisVyčistí pustenie state a obnoví súvisiace hodnoty.
Signatúra() => void

clearDragState​

PopisVyčistí ťahanie state a obnoví súvisiace hodnoty.
Signatúra() => void

getDropPositionClass​

PopisVráti pustenie position class z aktuálneho stavu komponentu.
Signatúra(position: 'before'|'inside'|'after') => string

moveItem​

PopisPresunie položku na novú pozíciu v dátach komponentu.
Signatúra(draggedItem: HTMLElement, targetItem: HTMLElement, position: 'before'|'inside'|'after') => object|null

getOrderElements​

PopisVráti order elements z aktuálneho stavu komponentu.
Signatúra(parent: HTMLElement) => HTMLElement[]

getOrderIds​

PopisVráti order ids z aktuálneho stavu komponentu.
Signatúra(parent: HTMLElement) => Array<string|null>

getItemId​

PopisVráti položku id z aktuálneho stavu komponentu.
Signatúra(item: HTMLElement|null) => string|null

syncTreeItems​

PopisSynchronizuje tree položky s externým alebo interným zdrojom stavu.
Signatúra() => void

refreshMovedItems​

PopisSpustí metódu refreshMovedItems na vykonanie logiky komponentu a aktualizáciu jeho stavu.
Signatúra(items: HTMLElement[]) => void

updateCheckboxState​

PopisAktualizuje checkbox state podľa najnovších údajov komponentu.
Signatúra(changedItem: object, isInitialSync?: boolean) => void

updateParentState​

PopisAktualizuje parent state podľa najnovších údajov komponentu.
Signatúra(item: object) => void

propagateStateUpwards​

PopisSpustí metódu propagateStateUpwards na vykonanie logiky komponentu a aktualizáciu jeho stavu.
Signatúra(item: HTMLElement) => void

propagateStateDownwards​

PopisSpustí metódu propagateStateDownwards na vykonanie logiky komponentu a aktualizáciu jeho stavu.
Signatúra(item: object) => void

CSS tieňové časti​

NázovPopis
nativeŠtýluje koreňovú shadow časť komponentu.

CSS vlastné premenné​

Pre tento komponent nie sú dostupné žiadne vlastné CSS vlastnosti.

Sloty​

NázovPopis
defaultPredvolený slot pre hlavný obsah komponentu.