Current section
Files
Jump to
Current section
Files
src/widget/mendix/reference.gleam
// Mendix Reference 타입 — 연관 관계 (Association) 값
// ReferenceValue: 단일 참조, ReferenceSetValue: 다중 참조
// 둘 다 ModifiableValue 패턴을 따름
import gleam/option.{type Option}
// === 타입 ===
pub type ReferenceValue
pub type ReferenceSetValue
// === ReferenceValue (단일 참조) ===
/// 참조 값 (없으면 None)
@external(javascript, "../mendix_ffi.mjs", "get_modifiable_value")
pub fn value(ref: ReferenceValue) -> Option(a)
/// 참조 설정 (None → 참조 해제)
@external(javascript, "../mendix_ffi.mjs", "modifiable_set_value")
pub fn set_value(ref: ReferenceValue, value: Option(a)) -> Nil
/// 읽기 전용 여부
@external(javascript, "../mendix_ffi.mjs", "get_modifiable_read_only")
pub fn read_only(ref: ReferenceValue) -> Bool
/// 유효성 검사 메시지 (없으면 None)
@external(javascript, "../mendix_ffi.mjs", "get_modifiable_validation")
pub fn validation(ref: ReferenceValue) -> Option(String)
// === ReferenceSetValue (다중 참조) ===
/// 참조 목록 (없으면 None) — JS Array↔Gleam List 변환 포함
@external(javascript, "../mendix_ffi.mjs", "get_reference_set_value")
pub fn multi_value(rset: ReferenceSetValue) -> Option(List(a))
/// 참조 목록 설정 (None → 전체 해제) — Gleam List→JS Array 변환 포함
@external(javascript, "../mendix_ffi.mjs", "set_reference_set_value")
pub fn set_multi_value(rset: ReferenceSetValue, value: Option(List(a))) -> Nil
/// 읽기 전용 여부
@external(javascript, "../mendix_ffi.mjs", "get_modifiable_read_only")
pub fn multi_read_only(rset: ReferenceSetValue) -> Bool
/// 유효성 검사 메시지 (없으면 None)
@external(javascript, "../mendix_ffi.mjs", "get_modifiable_validation")
pub fn multi_validation(rset: ReferenceSetValue) -> Option(String)