Nxdom Framework

Nusantara eXtreme Development Object Model — dokumentasi resmi

NX.fileType — NexaType

Pratinjau ikon Font Awesome, gambar (lightbox), atau PDF (modal) di satu elemen DOM dari path berkas. Modul Dom/NexaType.js — bukan bagian dari NexaKit (selektor/generik), dan bukan Storage() (API data).

Prasyarat

  • window.NEXA.url — basis URL absolut untuk gabung path file.
  • window.NXNexaLightbox.initAll, modal PDF / modalHTML.
  • Font Awesome (fas), stylesheet modal bila PDF.

Tanda tangan

const info = NX.fileType(filePath, targetSelector); // setara: NX.NexaType.fileType(...)

filePath string path relatif (bukan URL penuh); targetSelector CSS unik (disarankan #id). Balikan objek info atau null.

Perilaku menurut jenis file

  • Tanpa ekstensi — placeholder gambar tersembunyi, isText: true.
  • Gambar (jpg, png, gif, webp, …) — <img class="nexa-lightbox"> + initAll.
  • PDF — ikon klik → openModalPDF + iframe.
  • Lainnya — ikon FA dari peta ekstensi / warna.

Objek kembalian

Properti antara lain: fileName, extension, hasExtension, iconClass, iconColor, isImage, isPDF, isText, targetElement — lihat Markdown untuk tipe lengkap.

Pemetaan ekstensi

Ikon dan warna dari fileIcons / fileColors internal: gambar, dokumen, data, arsip, audio, video; tidak terdaftar → fas fa-file.

Integrasi NX

NX.fileType, NX.NexaType, alias NX.Type. ES module: import { fileType, NexaType } from '…/nxdom.js'.

Contoh minimal

NX.fileType('/uploads/nota.pdf', '#preview-1'); NX.fileType('/media/thumb.png', '#preview-2');

Elemen target harus sudah ada di DOM sebelum pemanggilan.

Demo di proyek

templates/filetype.js — route SPA /filetype; lihat konsol untuk log objek kembalian.

Troubleshooting

null → selector / elemen / path; gambar putus → NEXA.url atau 404; PDF → modal belum siap; lightbox → inisialisasi / jangan panggil initAll berlebihan pada daftar besar.

Lisensi / catatan

Perluasan ekstensi atau id unik untuk ikon non-PDF — edit NexaType.js.

Sumber lengkap

  • templates/theme/docs/platform/javascript/docs/fileType.md
  • assets/modules/Dom/NexaType.js