Le risorse JS sono condivise tra Core e Servizi: il bundle è generato da tutti i componenti del progetto, 08-servizi/ incluso — a differenza del CSS, che è splittato in core.css/servizi.css, il JS non ha un bundle “solo core” o “solo servizi” (vedi Bundle unico vs file singoli sotto). Componenti Servizi con JS proprio: 08-servizi/popover, 08-servizi/table-interactive.
I file js singoli sono inclusi nelle sezioni dei singoli componenti:
components/{PERCORSO}/{nome-componente}/{nome-componente}.js (sorgente)dist/{core|servizi}/components/raw/{nome-componente}/{nome-componente}.js (build statica Fractal)components/{categoria}/{nome-componente}/{nome-componente}.js (pacchetto di distribuzione, accanto al markup renderizzato del componente)cdn/js/components/{nome-componente}.js (sottoinsieme CDN del pacchetto — cartella piatta, senza l’albero delle categorie)Un ambiente ospite ha due opzioni per integrare il JS dei componenti, a seconda dell’approccio scelto:
Bundle completo — un unico file generato da tutti i .js dei componenti (build-entries.js + webpack.config.js):
public/js/componentsJs.js ← sorgente compilato
dist/{core|servizi}/js/componentsJs.js ← build statica Fractal
js/componentsJs.js ← pacchetto di distribuzione
cdn/js/componentsJs.js ← sottoinsieme CDN del pacchettocomponentsJs.js - file js completo
Adatto a chi integra l’intero design system; carica anche il JS dei componenti non utilizzati.
File JS singoli per componente (vedi sopra) — un ambiente che integra solo alcuni componenti (es. solo accordion e tablist) può includere singolarmente questi file al posto del bundle completo, evitando di caricare JS di componenti non utilizzati.
I file js delle librerie figurano in:
dist/{core|servizi}/js/libraries/{nome-libreria}public/js/libraries/{nome-libreria}Le librerie esterne non sono distribuite via CDN RT (a differenza di
componentsJs.jse dei file singoli per componente, che sono codice di autoria RTDS): sono codice di terzi con proprio ciclo di versioning/sicurezza. Restano disponibili solo nel pacchetto ZIP o nel sito documentale — un ambiente che le richiede le include autonomamente (proprio bundler, altro CDN pubblico, o file dello ZIP). Per lo stesso motivo la cartellacdn/del pacchetto non le contiene, mentrejs/libraries/ecss/libraries/sì.
Libreria Splide.js per il componente carousel/slider.
Libreria Tobii.js per il componente lightbox.
Vedi anche documentazione Tobii.js
Libreria Accessible Autocomplete