makepad/apps/flow/workflows/layers/components/stack.splash

30 lines
940 B
Text

use mod.flow.*
/** The layers, in order. */
let layers = Input{ type: @text many: 8 at: vec2(40, 80) }
/** Every layer joined with " / ", in order. */
let join = Fn{
in: { layers: ordered(@text, 8, [conn(1, layers.text())]) }
out: [@text]
run: |i| { let s = ""; for l in i.layers { if s != "" { s = s + " / " }; s = s + l }; {text: s} }
at: vec2(320, 40)
}
/** How many layers arrived. */
let count = Fn{
in: { layers: ordered(@text, 8, [conn(1, layers.text())]) }
out: [@text]
run: |i| { {text: "" + i.layers.len()} }
at: vec2(320, 300)
}
let joined = Output{ value: join.text() at: vec2(600, 40) }
let total = Output{ value: count.text() at: vec2(600, 300) }
/** The layers again, as an ordered result of the stack. */
let ordered = Output{ type: @text many: 8 value: [conn(1, layers.text())] at: vec2(600, 560) }
Component{
label: "Stack"
layers, join, count, joined, total, ordered
}