feat: support remove first and remove last in variable assigner (#19144)

Signed-off-by: -LAN- <laipz8200@outlook.com>
This commit is contained in:
-LAN-
2025-04-30 15:50:00 +08:00
committed by GitHub
parent 69b43a955f
commit bcc95e520b
12 changed files with 425 additions and 4 deletions

View File

@@ -152,6 +152,7 @@ const VarList: FC<Props> = ({
/>
</div>
{item.operation !== WriteMode.clear && item.operation !== WriteMode.set
&& item.operation !== WriteMode.removeFirst && item.operation !== WriteMode.removeLast
&& !writeModeTypesNum?.includes(item.operation)
&& (
<VarReferencePicker

View File

@@ -29,7 +29,7 @@ const nodeDefault: NodeDefault<AssignerNodeType> = {
if (!errorMessages && !value.variable_selector?.length)
errorMessages = t(`${i18nPrefix}.fieldRequired`, { field: t('workflow.nodes.assigner.assignedVariable') })
if (!errorMessages && value.operation !== WriteMode.clear) {
if (!errorMessages && value.operation !== WriteMode.clear && value.operation !== WriteMode.removeFirst && value.operation !== WriteMode.removeLast) {
if (value.operation === WriteMode.set || value.operation === WriteMode.increment
|| value.operation === WriteMode.decrement || value.operation === WriteMode.multiply
|| value.operation === WriteMode.divide) {

View File

@@ -10,6 +10,8 @@ export enum WriteMode {
decrement = '-=',
multiply = '*=',
divide = '/=',
removeFirst = 'remove-first',
removeLast = 'remove-last',
}
export enum AssignerNodeInputType {

View File

@@ -69,7 +69,7 @@ const useConfig = (id: string, rawPayload: AssignerNodeType) => {
newSetInputs(newInputs)
}, [inputs, newSetInputs])
const writeModeTypesArr = [WriteMode.overwrite, WriteMode.clear, WriteMode.append, WriteMode.extend]
const writeModeTypesArr = [WriteMode.overwrite, WriteMode.clear, WriteMode.append, WriteMode.extend, WriteMode.removeFirst, WriteMode.removeLast]
const writeModeTypes = [WriteMode.overwrite, WriteMode.clear, WriteMode.set]
const writeModeTypesNum = [WriteMode.increment, WriteMode.decrement, WriteMode.multiply, WriteMode.divide]