{#if !isBranchAll && !isParallelLoop}
{#snippet header()}
If defined, at the end of the step, the predicate expression will be evaluated to decide
if the flow should stop early, skip rest of steps in iteration/branch if inside a parallel
for loop or branch all, or break if inside a for/while loop or branch all.
{/snippet}
{
if (isStopAfterIfEnabled && flowModule.stop_after_if) {
flowModule.stop_after_if = undefined
} else {
flowModule.stop_after_if = {
expr: 'result == undefined',
skip_if_stopped: false,
error_message: undefined
}
}
}}
options={{
right: isLoop
? 'Break loop'
: breakableParent
? breakableParent.isParallel
? breakableParent.type === 'loop'
? 'Skip rest of steps in iteration'
: 'Skip rest of steps in branch'
: 'Break parent loop module'
: 'Stop flow if condition met'
}}
/>
{
if (flowModule.stop_after_if && event.detail) {
flowModule.stop_after_if.error_message = undefined
raise_error_message_stop_after_if = false
}
}}
options={{
right: 'Label flow as "skipped" if stopped'
}}
/>
{
if (flowModule.stop_after_if) {
if (event.detail) {
flowModule.stop_after_if.error_message = ''
flowModule.stop_after_if.skip_if_stopped = false
} else {
flowModule.stop_after_if.error_message = undefined
}
}
}}
options={{
right: 'Raise an error message if stopped',
rightTooltip:
'If enabled and the stop condition is met, an error message will be raised. A custom message can be provided; otherwise, a default message will be used. Mutually exclusive with "Label flow as skipped".'
}}
/>
{/if}
{#if isLoop || isBranchAll}
{#snippet header()}
If defined, at the end of the step, the predicate expression will be evaluated to decide
if the flow should stop early, skip rest of steps in iteration/branch if inside a parallel
for loop or branch all, or break if inside a for/while loop or branch all.
{/snippet}
{
if (isStopAfterAllIterationsEnabled && flowModule.stop_after_all_iters_if) {
flowModule.stop_after_all_iters_if = undefined
} else {
flowModule.stop_after_all_iters_if = {
expr: 'result == undefined',
skip_if_stopped: false,
error_message: undefined
}
}
}}
options={{
right:
(breakableParent
? breakableParent.isParallel
? breakableParent.type === 'loop'
? 'Skip rest of steps in iteration'
: 'Skip rest of steps in branch'
: 'Break parent loop module ' + breakableParent.stepId
: 'Stop flow') + ' if condition met'
}}
/>
{
if (flowModule.stop_after_all_iters_if && event.detail) {
flowModule.stop_after_all_iters_if.error_message = undefined
raise_error_message_stop_after_all_if = false
}
}}
options={{
right: 'Label flow as "skipped" if stopped'
}}
/>
{
if (flowModule.stop_after_all_iters_if) {
if (event.detail) {
flowModule.stop_after_all_iters_if.error_message = ''
flowModule.stop_after_all_iters_if.skip_if_stopped = false
} else {
flowModule.stop_after_all_iters_if.error_message = undefined
}
}
}}
options={{
right: 'Raise an error message if stopped',
rightTooltip:
'If enabled and the stop condition is met, an error message will be raised. A custom message can be provided; otherwise, a default message will be used. Mutually exclusive with "Label flow as skipped".'
}}
/>