104 lines
3.1 KiB
JSON
104 lines
3.1 KiB
JSON
{
|
|
"comment": "admin_basic 소유 자동 계산 친화 보기 프리셋 (R-P1~R-P4). expr 은 {{}} 없이 {paramKey} 플레이스홀더만.",
|
|
"filter_default": {
|
|
"label": "$t:editor.computed.filter_default.label",
|
|
"group": "common",
|
|
"params": [
|
|
{
|
|
"key": "localPath",
|
|
"label": "$t:editor.computed.filter_default.param_local_path",
|
|
"widget": "text",
|
|
"required": true
|
|
},
|
|
{
|
|
"key": "queryKey",
|
|
"label": "$t:editor.computed.filter_default.param_query_key",
|
|
"widget": "text",
|
|
"required": true
|
|
},
|
|
{
|
|
"key": "fallback",
|
|
"label": "$t:editor.computed.filter_default.param_fallback",
|
|
"widget": "text"
|
|
}
|
|
],
|
|
"expr": "_local.{localPath} ?? query.{queryKey} ?? '{fallback}'"
|
|
},
|
|
"readonly_by_ability": {
|
|
"label": "$t:editor.computed.readonly_by_ability.label",
|
|
"group": "common",
|
|
"params": [
|
|
{
|
|
"key": "source",
|
|
"label": "$t:editor.computed.readonly_by_ability.param_source",
|
|
"widget": "datasource-picker",
|
|
"required": true
|
|
},
|
|
{
|
|
"key": "abilityKey",
|
|
"label": "$t:editor.computed.readonly_by_ability.param_ability_key",
|
|
"widget": "text",
|
|
"required": true
|
|
},
|
|
{
|
|
"key": "requireRouteId",
|
|
"label": "$t:editor.computed.readonly_by_ability.param_require_route_id",
|
|
"widget": "toggle"
|
|
}
|
|
],
|
|
"expr": "{source}?.data?.abilities?.{abilityKey} !== true"
|
|
},
|
|
"options_from_api": {
|
|
"label": "$t:editor.computed.options_from_api.label",
|
|
"group": "common",
|
|
"params": [
|
|
{
|
|
"key": "source",
|
|
"label": "$t:editor.computed.options_from_api.param_source",
|
|
"widget": "binding-picker",
|
|
"required": true
|
|
},
|
|
{
|
|
"key": "filter",
|
|
"label": "$t:editor.computed.options_from_api.param_filter",
|
|
"widget": "condition"
|
|
},
|
|
{
|
|
"key": "valueField",
|
|
"label": "$t:editor.computed.options_from_api.param_value_field",
|
|
"widget": "text",
|
|
"required": true
|
|
},
|
|
{
|
|
"key": "labelField",
|
|
"label": "$t:editor.computed.options_from_api.param_label_field",
|
|
"widget": "text",
|
|
"required": true
|
|
}
|
|
],
|
|
"expr": "({source} ?? []).filter({filter}).map(x => ({ value: x.{valueField}, label: x.{labelField} }))"
|
|
},
|
|
"constant": {
|
|
"label": "$t:editor.computed.constant.label",
|
|
"group": "common",
|
|
"params": [
|
|
{
|
|
"key": "valueKind",
|
|
"label": "$t:editor.computed.constant.param_value_kind",
|
|
"widget": "select",
|
|
"options": [
|
|
{ "value": "string", "label": "$t:editor.computed.constant.value_kind_string" },
|
|
{ "value": "number", "label": "$t:editor.computed.constant.value_kind_number" },
|
|
{ "value": "boolean", "label": "$t:editor.computed.constant.value_kind_boolean" }
|
|
]
|
|
},
|
|
{
|
|
"key": "value",
|
|
"label": "$t:editor.computed.constant.param_value",
|
|
"widget": "text"
|
|
}
|
|
],
|
|
"expr": "'{value}'"
|
|
}
|
|
}
|