Membuat ekstensi tile

Mulai Looker 24.0, ekstensi dapat dikembangkan untuk dijalankan di kartu di dasbor. Ekstensi yang mendukung untuk dijalankan sebagai kartu atau visualisasi dapat ditambahkan saat dasbor dalam mode edit atau disimpan ke dasbor sebagai visualisasi dari Jelajah. Ekstensi juga dapat dikonfigurasi sebagai kartu di dasbor LookML.

Contoh ekstensi yang dapat digunakan sebagai kartu dasbor tersedia:

Menggunakan SDK Ekstensi Looker dengan ekstensi kartu

Ekstensi kartu memerlukan parameter mount_points yang ditentukan dalam file manifes project LookML agar ekstensi dapat dimuat sebagai kartu ke dasbor. Ada dua jenis mount_points yang terkait dengan ekstensi kartu:

  mount_points: {
    dashboard_vis: yes
    dashboard_tile: yes
    standalone: yes
  }
  • dashboard_vis — Jika diaktifkan, ekstensi akan muncul di opsi visualisasi Jelajah, tempat ekstensi dapat dipilih sebagai visualisasi dan disimpan sebagai kartu dasbor. Saat dasbor dijalankan, dasbor akan menjalankan kueri yang terkait dengan kartu dan menyediakan data untuk ekstensi. Cara ini mirip dengan cara kerja visualisasi kustom. Perbedaan utama antara visualisasi kustom dan ekstensi yang berjalan di kartu dasbor yang mengaktifkan dashboard_vis adalah ekstensi dapat melakukan panggilan Looker API.
  • dashboard_tile — Jika diaktifkan, ekstensi akan muncul di panel Extensions yang ditampilkan saat pengguna mengedit dasbor dan memilih opsi Extensions setelah mengklik tombol Add. Jenis ekstensi ini bertanggung jawab untuk mengambil datanya sendiri, bukan membuat kueri kartu otomatis menyediakan data untuk ekstensi.

Titik pemasangan tambahan, standalone, menyebabkan ekstensi muncul di bagian Aplikasi pada menu utama Looker. Ekstensi dapat memiliki beberapa titik pemasangan yang ditentukan. Saat runtime, ekstensi akan diberi tahu cara pemasangannya dan dapat menyesuaikan perilakunya. Misalnya, ekstensi standalone mungkin perlu menetapkan tingginya sendiri, sedangkan ekstensi kartu tidak perlu.

API tambahan ekstensi kartu

Ekstensi kartu dilengkapi dengan API dan data tambahan saat runtime. Ini diperoleh dari konteks ekstensi:

const {
  tileSDK,
  tileHostData,
  visualizationData,
  visualizationSDK,
} = useContext(ExtensionContext40)
  • tileSDK — Menyediakan fungsi khusus kartu untuk memungkinkan ekstensi berinteraksi dengan host dasbor Looker. Misalnya, untuk mengizinkan ekstensi menampilkan dan menghapus pesan error.
  • tileHostData — Memberikan data kartu ke ekstensi. Data diperbarui secara otomatis berdasarkan interaksi dengan dasbor hosting. Contohnya adalah indikator isDashboardEditing.
  • visualizationSDK — Menyediakan fungsi khusus visualisasi untuk memungkinkan ekstensi berinteraksi dengan host dasbor Looker. Contohnya adalah fungsi updateRowLimit.
  • visualizationData — Memberikan data visualisasi ke ekstensi. Data diperbarui secara otomatis berdasarkan interaksi dengan dasbor hosting. Data ini mirip dengan data yang diberikan ke visualisasi kustom.

Mem-build ekstensi reaktif

Iframe tempat ekstensi berjalan akan otomatis diubah ukurannya saat ukuran jendela host Looker induk diubah. Hal ini akan otomatis ditampilkan di jendela konten iframe. Komponen iframe tidak memiliki padding atau margin, sehingga ekstensi harus menyediakan padding dan marginnya sendiri agar terlihat konsisten dengan aplikasi Looker. Untuk ekstensi mandiri, ekstensi tersebut dapat mengontrol tinggi ekstensi. Untuk ekstensi yang berjalan di kartu dasbor atau visualisasi Jelajahi, jendela konten iframe akan otomatis disetel ke tinggi yang disediakan oleh iframe.

Pertimbangan rendering

Perhatikan bahwa ekstensi kartu akan dirender saat dasbor didownload sebagai PDF atau gambar. Perender mengharapkan bahwa kartu akan memberi tahu saat rendering selesai. Jika tidak dilakukan, perender akan berhenti merespons. Berikut adalah contoh cara memberi tahu perender bahwa kartu telah dirender.

  const { extensionSDK } = useContext(ExtensionContext40)

  useEffect(() => {
    extensionSDK.rendered()
  }, [])

Animasi juga harus dinonaktifkan saat merender. Berikut adalah contoh saat konfigurasi animasi dinonaktifkan saat rendering:

  const { lookerHostData} = useContext(ExtensionContext40)
  const isRendering = lookerHostData?.isRendering

  const config = isRendering
    ? {
        ...visConfig,
        valueCountUp: false,
        waveAnimateTime: 0,
        waveRiseTime: 0,
        waveAnimate: false,
        waveRise: false,
      }
    : visConfig

  if (mountPoint === MountPoint.dashboardVisualization) {
    return <VisualizationTile config={config} />
  }

Fungsi dan properti Tile SDK

SDK kartu menyediakan fungsi yang memungkinkan ekstensi kartu berinteraksi dengan dasbor hosting-nya.

Fungsi dan properti yang tersedia ditampilkan dalam tabel berikut:

Fungsi atau properti Deskripsi
tileHostData (properti) Menghosting data khusus untuk ekstensi kartu. Lihat bagian Data Tile SDK untuk mengetahui detailnya.
addError Saat dipanggil, dasbor atau Jelajah akan menampilkan pesan error di bawah visualisasi.
clearError Saat dipanggil, dasbor atau Jelajah akan menyembunyikan pesan error yang ditampilkan di bawah visualisasi.
openDrillMenu Untuk ekstensi visualisasi, panggilan ini akan membuka menu penelusuran. Panggilan ini akan diabaikan jika ekstensi bukan visualisasi ekstensi kartu.
runDashboard Menjalankan dasbor saat ini. Panggilan ini diabaikan oleh ekstensi visualisasi kartu yang berjalan di Jelajahi.
stopDashboard Menghentikan dasbor yang sedang berjalan. Panggilan ini diabaikan oleh ekstensi visualisasi kartu yang berjalan di Jelajahi.
updateFilters Memperbarui filter di dasbor atau Eksplorasi saat ini.
openScheduleDialog Membuka dialog jadwal. Panggilan ini diabaikan saat berjalan di Jelajahi.
toggleCrossFilter Mengaktifkan/menonaktifkan filter silang. Panggilan ini diabaikan saat berjalan di Jelajahi.

Data Tile SDK

Properti data SDK kartu yang tersedia ditampilkan dalam tabel berikut:

Properti Deskripsi
isExploring Jika true, menunjukkan bahwa kartu sedang dikonfigurasi sebagai visualisasi di dalam Jelajahi.
dashboardId ID dasbor kartu yang sedang dirender. Jika kartu dikonfigurasi sebagai Jelajahi, properti ini tidak akan diisi.
elementId ID elemen kartu yang sedang dirender. Jika kartu dikonfigurasi sebagai Jelajahi, properti ini tidak akan diisi.
queryId ID kueri kartu yang dirender jika dikaitkan dengan visualisasi. Jika kartu dikonfigurasi sebagai Jelajahi, properti ini tidak akan diisi.

queryId adalah ID kueri yang dibuat saat visualisasi dibuat di Looker Explore. Laporan ini tidak berisi filter atau pemfilteran silang yang akan diterapkan ke dasbor. Untuk mencerminkan data yang ditampilkan di QueryResponse, filter dan filter silang harus diterapkan dan kueri baru dibuat. Akibatnya, mungkin ada lebih banyak properti yang berguna daripada queryId. Lihat filteredQuery untuk objek kueri dengan filter yang diterapkan.
querySlug Slug kueri kartu yang dirender jika terkait dengan visualisasi. Jika kartu dikonfigurasi sebagai Jelajahi, properti ini tidak akan diisi.

querySlug adalah slug kueri yang dibuat saat visualisasi dibuat di Looker Explore. Laporan ini tidak berisi filter atau pemfilteran silang yang diterapkan ke dasbor. Untuk mencerminkan data yang ditampilkan di QueryResponse, filter dan filter silang harus diterapkan dan kueri baru dibuat. Akibatnya, mungkin ada lebih banyak properti yang berguna daripada querySlug. Lihat filteredQuery untuk objek kueri dengan filter yang diterapkan.
dashboardFilters Filter yang diterapkan ke dasbor. Jika kartu dikonfigurasi sebagai Jelajahi, properti ini tidak akan diisi.
dashboardRunState Menunjukkan apakah dasbor sedang berjalan. Jika kartu dikonfigurasi sebagai Jelajahi, statusnya akan menjadi UNKNOWN.

Untuk alasan performa dasbor, status operasi mungkin tidak pernah ditampilkan sebagai berjalan. Hal ini biasanya terjadi jika tidak ada kartu lain yang terkait dengan kueri, termasuk kartu yang terkait dengan ekstensi. Jika ekstensi perlu mengetahui dengan pasti bahwa dasbor telah dijalankan, mendeteksi perbedaan di lastRunStartTime adalah cara yang andal.
isDashboardEditing Jika true, dasbor sedang diedit. Jika kartu dikonfigurasi sebagai Jelajahi, properti ini tidak akan diisi.
isDashboardCrossFilteringEnabled Jika true, filter silang akan diaktifkan di dasbor. Jika kartu dikonfigurasi sebagai Jelajahi, properti ini tidak akan diisi.
filteredQuery Objek kueri yang cocok dengan ID kueri yang dikaitkan dengan elemen dasbor pokok yang menerapkan filter dasbor dan perubahan zona waktu yang dilakukan di tingkat dasbor.
lastRunSourceElementId ID elemen ekstensi kartu yang memicu dasbor terakhir dijalankan. ID tidak akan ditentukan jika operasi dasbor dipicu oleh tombol Run atau autorefresh dasbor, atau jika operasi dipicu menggunakan SDK sematan. Jika kartu dikonfigurasi sebagai Jelajahi, properti ini tidak akan diisi.

Perhatikan bahwa lastRunSourceElementId dapat sama dengan ID elemen instance ekstensi saat ini. Misalnya, jika ekstensi memicu dasbor berjalan, ekstensi tersebut akan diberi tahu saat dasbor berjalan dimulai dan selesai.
lastRunStartTime Menunjukkan waktu mulai dasbor terakhir yang dijalankan. Jika kartu dikonfigurasi sebagai Jelajahi, properti ini tidak akan diisi.

Perhatikan bahwa waktu mulai dan waktu berakhir yang dilaporkan tidak boleh digunakan untuk mengambil metrik performa.
lastRunEndTime Menunjukkan waktu berakhir operasi dasbor terakhir. Jika kartu dikonfigurasi sebagai Jelajahi, properti ini tidak akan diisi. Jika kartu sedang berjalan, properti ini tidak akan diisi.

Perhatikan bahwa waktu mulai dan waktu akhir yang dilaporkan tidak boleh digunakan untuk mengambil metrik performa.
lastRunSuccess Menunjukkan apakah dasbor terakhir berhasil dijalankan atau tidak. Jika kartu dikonfigurasi sebagai Jelajahi, properti ini tidak akan diisi. Jika kartu sedang berjalan, properti ini tidak akan diisi.

Fungsi dan properti Visualization SDK

Fungsi dan properti SDK visualisasi yang tersedia ditampilkan dalam tabel berikut:

Fungsi atau properti Deskripsi
visualizationData (properti) Visualisasi (kombinasi data visConfig dan queryResponse).
visConfig (properti) Data konfigurasi visualisasi:

  • Konfigurasi pengukuran
  • Konfigurasi dimensi
  • Kalkulasi tabel
  • Konfigurasi pivot
  • Konfigurasi visualisasi

Ini digunakan untuk menyesuaikan tampilan dan nuansa visualisasi di Jelajahi.
queryResponse (properti) Data respons dari kueri
configureVisualization Menetapkan konfigurasi default untuk visualisasi ekstensi. Konfigurasi akan dirender di dalam editor visualisasi Jelajahi. Ini hanya boleh dipanggil satu kali.
setVisConfig Memperbarui konfigurasi visualisasi.
updateRowLimit Memperbarui batas baris kueri.

Data Visualization SDK

SDK visualisasi terdiri dari hal berikut:

  • Data konfigurasi visualisasi
  • Data respons kueri

Data konfigurasi visualisasi

Properti Deskripsi
queryFieldMeasures Informasi pengukuran
queryFieldDimensions Informasi dimensi
queryFieldTableCalculations Informasi kalkulasi tabel
queryFieldPivots Informasi pivot
visConfig Data konfigurasi visual. Ini harus digabungkan dengan konfigurasi default dan diterapkan ke visualisasi yang dirender oleh ekstensi.
export interface VisualizationConfig {
  queryFieldMeasures: Measure[]
  queryFieldDimensions: Dimension[]
  queryFieldTableCalculations: TableCalculation[]
  queryFieldPivots: PivotConfig[]
  visConfig: RawVisConfig
}

Data respons kueri

Properti Deskripsi
data Array data baris
fieldMeasures Informasi pengukuran kolom.
fieldDimensions Informasi dimensi kolom.
fieldTableCalculations Informasi kalkulasi tabel kolom.
fieldPivots Informasi pivot kolom.
fieldMeasureLike Array gabungan informasi ukuran kolom dan kalkulasi tabel yang berperilaku seperti ukuran.
fieldDimensionLike Array gabungan informasi dimensi kolom dan kalkulasi tabel yang berperilaku seperti dimensi.