FlowDefinition
FlowDefinition mendefinisikan struktur dasar dan konfigurasi flow, adalah salah satu konsep inti flow engine. Mendeskripsikan meta info, kondisi trigger, langkah eksekusi flow, dll.
Definisi Tipe
Tipe on adalah sebagai berikut:
Cara Registrasi
Penjelasan Property
key
Tipe: string
Wajib: Ya
Deskripsi: Identifier unik flow
Disarankan menggunakan gaya penamaan terpadu xxxSettings, contoh:
pageSettings,tableSettings,cardSettings,formSettings,buttonSettings
Penamaan ini memudahkan identifikasi dan maintenance, disarankan terpadu secara global.
title
Tipe: string
Wajib: Tidak
Deskripsi: Judul flow yang dapat dibaca manusia
Disarankan menjaga gaya yang konsisten dengan key, menggunakan penamaan Xxx settings, seperti Page settings, Table settings, dll.
manual
Tipe: boolean
Wajib: Tidak
Default: false
Deskripsi: Apakah flow hanya dieksekusi secara manual
true: Flow hanya dapat dipicu secara manual, tidak akan dieksekusi otomatisfalse: Flow dapat dieksekusi otomatis (saat tidak ada propertyondefault eksekusi otomatis)
sort
Tipe: number
Wajib: Tidak
Default: 0
Deskripsi: Urutan eksekusi flow, semakin kecil semakin dieksekusi terlebih dahulu
Dapat berupa negatif, untuk mengontrol urutan eksekusi beberapa flow.
on
Tipe: FlowEvent<TModel>
Wajib: Tidak
Deskripsi: Konfigurasi event yang mengizinkan flow ini dipicu oleh dispatchEvent
Digunakan untuk mendeklarasikan nama event trigger (string atau { eventName }), dan timing eksekusi opsional (phase). Tidak termasuk function handler (logika pemrosesan ada di steps).
Tipe Event yang Didukung:
'beforeRender'- Event sebelum rendering, otomatis dipicu saat Component pertama kali dirender'click'- Event klik'submit'- Event submit'reset'- Event reset'remove'- Event delete'openView'- Event buka view'dropdownOpen'- Event dropdown terbuka'popupScroll'- Event scroll modal'search'- Event pencarian'customRequest'- Event request kustom'collapseToggle'- Event toggle collapse- Atau string kustom apa pun
Timing Eksekusi (phase)
Saat ada beberapa event flow di satu event yang sama (seperti click), dapat menggunakan phase / flowKey / stepKey untuk menentukan posisi flow ini disisipkan dalam static flow bawaan untuk dieksekusi:
steps
Tipe: Record<string, StepDefinition<TModel>>
Wajib: Ya
Deskripsi: Definisi step flow
Mendefinisikan semua step yang termasuk dalam flow, setiap step memiliki nama key yang unik.
defaultParams
Tipe: Record<string, any> | ((ctx: FlowModelContext) => StepParam | Promise<StepParam>)
Wajib: Tidak
Deskripsi: Parameter default level flow
Saat instansiasi model (createModel), mengisi nilai awal untuk parameter step "flow saat ini". Hanya melengkapi yang hilang, tidak overwrite yang sudah ada. Bentuk return tetap: { [stepKey]: params }

