@flowgram.ai/form-materials 0.4.13 → 0.4.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/dist/cjs/components/code-editor/editor.js +54 -77
  2. package/dist/cjs/components/code-editor/index.js +10 -2
  3. package/dist/cjs/components/code-editor/language-features.js +119 -16
  4. package/dist/cjs/components/code-editor/theme/dark.js +120 -50
  5. package/dist/cjs/components/code-editor/theme/light.js +110 -61
  6. package/dist/cjs/components/condition-context/context.js +59 -0
  7. package/dist/cjs/components/condition-context/hooks/use-condition.js +97 -0
  8. package/dist/cjs/components/condition-context/index.js +47 -0
  9. package/dist/cjs/components/condition-context/op.js +117 -0
  10. package/dist/cjs/components/condition-row/index.js +43 -26
  11. package/dist/cjs/components/condition-row/types.js +1 -35
  12. package/dist/cjs/components/coze-editor-extensions/extensions/variable-tag.js +4 -3
  13. package/dist/cjs/components/coze-editor-extensions/extensions/variable-tree.js +3 -0
  14. package/dist/cjs/components/db-condition-row/index.js +59 -34
  15. package/dist/cjs/form-plugins/infer-inputs-plugin/index.js +30 -3
  16. package/dist/cjs/plugins/json-schema-preset/create-type-preset-plugin.js +1 -0
  17. package/dist/cjs/plugins/json-schema-preset/react.js +1 -0
  18. package/dist/cjs/plugins/json-schema-preset/type-definition/array.js +30 -1
  19. package/dist/cjs/plugins/json-schema-preset/type-definition/boolean.js +23 -0
  20. package/dist/cjs/plugins/json-schema-preset/type-definition/date-time.js +31 -2
  21. package/dist/cjs/plugins/json-schema-preset/type-definition/index.js +9 -1
  22. package/dist/cjs/plugins/json-schema-preset/type-definition/integer.js +34 -1
  23. package/dist/cjs/{components/code-editor/init-worker.js → plugins/json-schema-preset/type-definition/map.js} +21 -23
  24. package/dist/cjs/plugins/json-schema-preset/type-definition/number.js +34 -1
  25. package/dist/cjs/plugins/json-schema-preset/type-definition/object.js +6 -1
  26. package/dist/cjs/plugins/json-schema-preset/type-definition/string.js +30 -1
  27. package/dist/cjs/plugins/json-schema-preset/types.js +18 -0
  28. package/dist/cjs/shared/flow-value/utils.js +22 -8
  29. package/dist/esm/components/code-editor/editor.mjs +4 -9
  30. package/dist/esm/components/code-editor/index.mjs +5 -2
  31. package/dist/esm/components/code-editor/language-features.mjs +49 -13
  32. package/dist/esm/components/code-editor/theme/dark.mjs +117 -50
  33. package/dist/esm/components/code-editor/theme/light.mjs +108 -62
  34. package/dist/esm/components/condition-context/context.mjs +19 -0
  35. package/dist/esm/components/condition-context/hooks/use-condition.mjs +63 -0
  36. package/dist/esm/components/condition-context/index.mjs +4 -0
  37. package/dist/esm/components/condition-context/op.mjs +80 -0
  38. package/dist/esm/components/condition-row/index.mjs +45 -28
  39. package/dist/esm/components/condition-row/types.mjs +0 -18
  40. package/dist/esm/components/coze-editor-extensions/extensions/variable-tag.mjs +4 -3
  41. package/dist/esm/components/coze-editor-extensions/extensions/variable-tree.mjs +3 -0
  42. package/dist/esm/components/db-condition-row/index.mjs +59 -34
  43. package/dist/esm/form-plugins/infer-inputs-plugin/index.mjs +31 -4
  44. package/dist/esm/plugins/json-schema-preset/create-type-preset-plugin.mjs +2 -1
  45. package/dist/esm/plugins/json-schema-preset/react.mjs +2 -1
  46. package/dist/esm/plugins/json-schema-preset/type-definition/array.mjs +30 -1
  47. package/dist/esm/plugins/json-schema-preset/type-definition/boolean.mjs +23 -0
  48. package/dist/esm/plugins/json-schema-preset/type-definition/date-time.mjs +31 -2
  49. package/dist/esm/plugins/json-schema-preset/type-definition/index.mjs +7 -2
  50. package/dist/esm/plugins/json-schema-preset/type-definition/integer.mjs +34 -1
  51. package/dist/esm/plugins/json-schema-preset/type-definition/map.mjs +20 -0
  52. package/dist/esm/plugins/json-schema-preset/type-definition/number.mjs +34 -1
  53. package/dist/esm/plugins/json-schema-preset/type-definition/object.mjs +6 -1
  54. package/dist/esm/plugins/json-schema-preset/type-definition/string.mjs +30 -1
  55. package/dist/esm/plugins/json-schema-preset/types.mjs +0 -0
  56. package/dist/esm/shared/flow-value/utils.mjs +22 -8
  57. package/dist/tsconfig.tsbuildinfo +1 -1
  58. package/dist/types/components/code-editor/editor.d.ts +0 -2
  59. package/dist/types/components/code-editor/language-features.d.ts +4 -1
  60. package/dist/types/components/code-editor/theme/dark.d.ts +29 -0
  61. package/dist/types/components/code-editor/theme/light.d.ts +24 -0
  62. package/dist/types/components/condition-context/context.d.ts +14 -0
  63. package/dist/types/components/condition-context/hooks/use-condition.d.ts +29 -0
  64. package/dist/types/components/condition-context/index.d.ts +8 -0
  65. package/dist/types/components/condition-context/op.d.ts +22 -0
  66. package/dist/types/components/condition-context/types.d.ts +14 -0
  67. package/dist/types/components/condition-row/index.d.ts +4 -7
  68. package/dist/types/components/condition-row/types.d.ts +0 -24
  69. package/dist/types/components/db-condition-row/index.d.ts +4 -3
  70. package/dist/types/components/db-condition-row/types.d.ts +0 -8
  71. package/dist/types/form-plugins/infer-inputs-plugin/index.d.ts +4 -0
  72. package/dist/types/plugins/json-schema-preset/create-type-preset-plugin.d.ts +1 -1
  73. package/dist/types/plugins/json-schema-preset/index.d.ts +1 -1
  74. package/dist/types/plugins/json-schema-preset/react.d.ts +1 -1
  75. package/dist/types/plugins/json-schema-preset/type-definition/array.d.ts +1 -1
  76. package/dist/types/plugins/json-schema-preset/type-definition/boolean.d.ts +1 -1
  77. package/dist/types/plugins/json-schema-preset/type-definition/date-time.d.ts +1 -1
  78. package/dist/types/plugins/json-schema-preset/type-definition/index.d.ts +3 -1
  79. package/dist/types/plugins/json-schema-preset/type-definition/integer.d.ts +1 -1
  80. package/dist/types/plugins/json-schema-preset/type-definition/map.d.ts +6 -0
  81. package/dist/types/plugins/json-schema-preset/type-definition/number.d.ts +1 -1
  82. package/dist/types/plugins/json-schema-preset/type-definition/object.d.ts +1 -1
  83. package/dist/types/plugins/json-schema-preset/type-definition/string.d.ts +1 -1
  84. package/dist/types/plugins/json-schema-preset/{manager.d.ts → types.d.ts} +5 -0
  85. package/dist/types/shared/flow-value/utils.d.ts +3 -1
  86. package/package.json +7 -6
  87. package/src/components/code-editor/editor.tsx +7 -10
  88. package/src/components/code-editor/index.tsx +3 -1
  89. package/src/components/code-editor/language-features.ts +52 -14
  90. package/src/components/code-editor/theme/dark.ts +62 -77
  91. package/src/components/code-editor/theme/light.ts +60 -91
  92. package/src/components/condition-context/context.tsx +28 -0
  93. package/src/components/condition-context/hooks/use-condition.tsx +99 -0
  94. package/src/components/condition-context/index.tsx +14 -0
  95. package/src/components/condition-context/op.ts +86 -0
  96. package/src/components/condition-context/types.ts +22 -0
  97. package/src/components/condition-row/index.tsx +44 -22
  98. package/src/components/condition-row/types.ts +0 -30
  99. package/src/components/coze-editor-extensions/extensions/variable-tag.tsx +6 -3
  100. package/src/components/coze-editor-extensions/extensions/variable-tree.tsx +3 -0
  101. package/src/components/db-condition-row/index.tsx +76 -24
  102. package/src/components/db-condition-row/types.ts +0 -13
  103. package/src/form-plugins/infer-inputs-plugin/index.ts +62 -14
  104. package/src/plugins/json-schema-preset/create-type-preset-plugin.tsx +4 -2
  105. package/src/plugins/json-schema-preset/index.tsx +1 -1
  106. package/src/plugins/json-schema-preset/react.tsx +5 -2
  107. package/src/plugins/json-schema-preset/type-definition/array.tsx +10 -1
  108. package/src/plugins/json-schema-preset/type-definition/boolean.tsx +17 -1
  109. package/src/plugins/json-schema-preset/type-definition/date-time.tsx +21 -2
  110. package/src/plugins/json-schema-preset/type-definition/index.tsx +10 -1
  111. package/src/plugins/json-schema-preset/type-definition/integer.tsx +19 -1
  112. package/src/plugins/json-schema-preset/type-definition/map.tsx +31 -0
  113. package/src/plugins/json-schema-preset/type-definition/number.tsx +19 -1
  114. package/src/plugins/json-schema-preset/type-definition/object.tsx +6 -1
  115. package/src/plugins/json-schema-preset/type-definition/string.tsx +19 -1
  116. package/src/plugins/json-schema-preset/{manager.ts → types.ts} +7 -0
  117. package/src/shared/flow-value/utils.ts +22 -9
  118. package/dist/cjs/components/condition-row/constants.js +0 -165
  119. package/dist/cjs/components/condition-row/hooks/useOp.js +0 -78
  120. package/dist/cjs/components/condition-row/hooks/useRule.js +0 -68
  121. package/dist/cjs/components/db-condition-row/hooks/use-left.js +0 -86
  122. package/dist/cjs/components/db-condition-row/hooks/use-op.js +0 -79
  123. package/dist/esm/components/code-editor/init-worker.mjs +0 -19
  124. package/dist/esm/components/condition-row/constants.mjs +0 -128
  125. package/dist/esm/components/condition-row/hooks/useOp.mjs +0 -44
  126. package/dist/esm/components/condition-row/hooks/useRule.mjs +0 -34
  127. package/dist/esm/components/db-condition-row/hooks/use-left.mjs +0 -52
  128. package/dist/esm/components/db-condition-row/hooks/use-op.mjs +0 -45
  129. package/dist/types/components/code-editor/init-worker.d.ts +0 -5
  130. package/dist/types/components/condition-row/constants.d.ts +0 -7
  131. package/dist/types/components/condition-row/hooks/useOp.d.ts +0 -18
  132. package/dist/types/components/condition-row/hooks/useRule.d.ts +0 -9
  133. package/dist/types/components/db-condition-row/hooks/use-left.d.ts +0 -18
  134. package/dist/types/components/db-condition-row/hooks/use-op.d.ts +0 -18
  135. package/src/components/code-editor/init-worker.ts +0 -27
  136. package/src/components/condition-row/constants.ts +0 -134
  137. package/src/components/condition-row/hooks/useOp.tsx +0 -56
  138. package/src/components/condition-row/hooks/useRule.ts +0 -35
  139. package/src/components/db-condition-row/hooks/use-left.tsx +0 -66
  140. package/src/components/db-condition-row/hooks/use-op.tsx +0 -59
  141. /package/dist/cjs/{plugins/json-schema-preset/manager.js → components/condition-context/types.js} +0 -0
  142. /package/dist/esm/{plugins/json-schema-preset/manager.mjs → components/condition-context/types.mjs} +0 -0
@@ -1,49 +1,74 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { useMemo } from "react";
3
3
  import { I18n } from "@flowgram.ai/editor";
4
- import { Input } from "@douyinfe/semi-ui";
4
+ import { Button, Icon, Input, Select } from "@douyinfe/semi-ui";
5
+ import { IconChevronDownStroked } from "@douyinfe/semi-icons";
6
+ import { useTypeManager } from "../../plugins/index.mjs";
5
7
  import { InjectDynamicValueInput } from "../dynamic-value-input/index.mjs";
6
- import { UIContainer, UILeft, UIOperator, UIRight, UIValues } from "./styles.mjs";
7
- import { useOp } from "./hooks/use-op.mjs";
8
- import { useLeft } from "./hooks/use-left.mjs";
8
+ import { useCondition } from "../condition-context/index.mjs";
9
+ import { UIContainer, UILeft, UIOperator, UIOptionLabel, UIRight, UISelect, UIValues } from "./styles.mjs";
9
10
  const defaultRuleConfig = {
10
11
  ops: {},
11
12
  rules: {}
12
13
  };
13
14
  function DBConditionRow({ style, value, onChange, readonly, options, ruleConfig = defaultRuleConfig }) {
14
15
  const { left, operator, right } = value || {};
15
- const { rule, renderDBOptionSelect } = useLeft({
16
+ const typeManager = useTypeManager();
17
+ const leftSchema = useMemo(()=>options?.find((item)=>item.value === left)?.schema, [
16
18
  left,
17
- options,
18
- onChange: (leftKey)=>onChange({
19
- ...value,
20
- left: leftKey
21
- }),
22
- readonly,
23
- userRules: ruleConfig.rules
24
- });
25
- const { renderOpSelect, opConfig } = useOp({
26
- rule,
27
- op: operator,
28
- onChange: (v)=>onChange({
29
- ...value,
30
- operator: v
31
- }),
32
- readonly,
33
- userOps: ruleConfig.ops
34
- });
35
- const targetSchema = useMemo(()=>{
36
- const targetType = rule?.[operator || ''] || null;
37
- return targetType ? {
38
- type: targetType,
39
- extra: {
40
- weak: true
41
- }
42
- } : null;
43
- }, [
44
- rule,
45
- opConfig
19
+ options
46
20
  ]);
21
+ const { opConfig, rule, opOptionList, targetSchema } = useCondition({
22
+ leftSchema,
23
+ operator,
24
+ ruleConfig
25
+ });
26
+ const renderDBOptionSelect = ()=>/*#__PURE__*/ jsx(UISelect, {
27
+ disabled: readonly,
28
+ size: "small",
29
+ style: {
30
+ width: '100%'
31
+ },
32
+ value: left,
33
+ onChange: (v)=>onChange({
34
+ ...value,
35
+ left: v
36
+ }),
37
+ optionList: options?.map((item)=>({
38
+ label: /*#__PURE__*/ jsxs(UIOptionLabel, {
39
+ children: [
40
+ /*#__PURE__*/ jsx(Icon, {
41
+ size: "small",
42
+ svg: typeManager.getDisplayIcon(item.schema)
43
+ }),
44
+ item.label
45
+ ]
46
+ }),
47
+ value: item.value
48
+ })) || []
49
+ });
50
+ const renderOpSelect = ()=>/*#__PURE__*/ jsx(Select, {
51
+ style: {
52
+ height: 22
53
+ },
54
+ disabled: readonly,
55
+ size: "small",
56
+ value: operator,
57
+ optionList: opOptionList,
58
+ onChange: (v)=>{
59
+ onChange({
60
+ ...value,
61
+ operator: v
62
+ });
63
+ },
64
+ triggerRender: ({ value })=>/*#__PURE__*/ jsx(Button, {
65
+ size: "small",
66
+ disabled: !rule,
67
+ children: opConfig?.abbreviation || /*#__PURE__*/ jsx(IconChevronDownStroked, {
68
+ size: "small"
69
+ })
70
+ })
71
+ });
47
72
  return /*#__PURE__*/ jsxs(UIContainer, {
48
73
  style: style,
49
74
  children: [
@@ -1,11 +1,38 @@
1
- import { get, set } from "lodash-es";
1
+ import { get, omit, set } from "lodash-es";
2
+ import { Immer } from "immer";
2
3
  import { defineFormPluginCreator, getNodePrivateScope, getNodeScope } from "@flowgram.ai/editor";
3
4
  import { FlowValueUtils } from "../../shared/index.mjs";
5
+ const { produce } = new Immer({
6
+ autoFreeze: false
7
+ });
4
8
  const createInferInputsPlugin = defineFormPluginCreator({
5
- onSetupFormMeta ({ addFormatOnSubmit }, { sourceKey, targetKey, scope }) {
9
+ onSetupFormMeta ({ addFormatOnSubmit, addFormatOnInit }, { sourceKey, targetKey, scope, ignoreConstantSchema }) {
6
10
  if (!sourceKey || !targetKey) return;
7
- addFormatOnSubmit((formData, ctx)=>{
8
- set(formData, targetKey, FlowValueUtils.inferJsonSchema(get(formData, sourceKey), 'private' === scope ? getNodePrivateScope(ctx.node) : getNodeScope(ctx.node)));
11
+ addFormatOnSubmit((formData, ctx)=>produce(formData, (draft)=>{
12
+ const sourceData = get(formData, sourceKey);
13
+ set(draft, targetKey, FlowValueUtils.inferJsonSchema(sourceData, 'private' === scope ? getNodePrivateScope(ctx.node) : getNodeScope(ctx.node)));
14
+ if (ignoreConstantSchema) {
15
+ for (const { value, path } of FlowValueUtils.traverse(sourceData, {
16
+ includeTypes: [
17
+ 'constant'
18
+ ]
19
+ }))if (FlowValueUtils.isConstant(value) && value?.schema) set(formData, `${sourceKey}.${path}`, omit(value, [
20
+ 'schema'
21
+ ]));
22
+ }
23
+ }));
24
+ if (ignoreConstantSchema) addFormatOnInit((formData, ctx)=>{
25
+ const targetSchema = get(formData, targetKey);
26
+ if (!targetSchema) return formData;
27
+ for (const { value, pathArr } of FlowValueUtils.traverse(get(formData, sourceKey), {
28
+ includeTypes: [
29
+ 'constant'
30
+ ]
31
+ }))if (FlowValueUtils.isConstant(value) && !value?.schema) {
32
+ const schemaPath = pathArr.map((_item)=>`properties.${_item}`).join('.');
33
+ const schema = get(targetSchema, schemaPath);
34
+ if (schema) set(value, 'schema', schema);
35
+ }
9
36
  return formData;
10
37
  });
11
38
  }
@@ -1,6 +1,7 @@
1
1
  import { BaseTypeManager, jsonSchemaContainerModule } from "@flowgram.ai/json-schema";
2
2
  import { definePluginCreator } from "@flowgram.ai/editor";
3
- import { jsonSchemaTypePreset } from "./type-definition/index.mjs";
3
+ import { initRegistries, jsonSchemaTypePreset } from "./type-definition/index.mjs";
4
+ initRegistries();
4
5
  const createTypePresetPlugin = definePluginCreator({
5
6
  onInit (ctx, opts) {
6
7
  const typeManager = ctx.get(BaseTypeManager);
@@ -1,7 +1,8 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import "react";
3
3
  import { TypePresetProvider, useTypeManager } from "@flowgram.ai/json-schema";
4
- import { jsonSchemaTypePreset } from "./type-definition/index.mjs";
4
+ import { initRegistries, jsonSchemaTypePreset } from "./type-definition/index.mjs";
5
+ initRegistries();
5
6
  const react_useTypeManager = ()=>useTypeManager();
6
7
  const JsonSchemaTypePresetProvider = ({ types = [], children })=>/*#__PURE__*/ jsx(TypePresetProvider, {
7
8
  types: [
@@ -1,6 +1,7 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import "react";
3
3
  import { I18n } from "@flowgram.ai/editor";
4
+ import { ConditionPresetOp } from "../../../components/condition-context/op.mjs";
4
5
  import { CodeEditorMini } from "../../../components/code-editor-mini/index.mjs";
5
6
  const arrayRegistry = {
6
7
  type: 'array',
@@ -10,6 +11,34 @@ const arrayRegistry = {
10
11
  onChange: (v)=>props.onChange?.(v),
11
12
  placeholder: I18n.t('Please Input Array'),
12
13
  readonly: props.readonly
13
- })
14
+ }),
15
+ conditionRule: {
16
+ [ConditionPresetOp.IS_EMPTY]: null,
17
+ [ConditionPresetOp.IS_NOT_EMPTY]: null,
18
+ [ConditionPresetOp.CONTAINS]: {
19
+ type: 'array',
20
+ extra: {
21
+ weak: true
22
+ }
23
+ },
24
+ [ConditionPresetOp.NOT_CONTAINS]: {
25
+ type: 'array',
26
+ extra: {
27
+ weak: true
28
+ }
29
+ },
30
+ [ConditionPresetOp.EQ]: {
31
+ type: 'array',
32
+ extra: {
33
+ weak: true
34
+ }
35
+ },
36
+ [ConditionPresetOp.NEQ]: {
37
+ type: 'array',
38
+ extra: {
39
+ weak: true
40
+ }
41
+ }
42
+ }
14
43
  };
15
44
  export { arrayRegistry };
@@ -2,6 +2,7 @@ import { jsx } from "react/jsx-runtime";
2
2
  import "react";
3
3
  import { I18n } from "@flowgram.ai/editor";
4
4
  import { Select } from "@douyinfe/semi-ui";
5
+ import { ConditionPresetOp } from "../../../components/condition-context/op.mjs";
5
6
  const booleanRegistry = {
6
7
  type: 'boolean',
7
8
  ConstantRenderer: (props)=>{
@@ -24,6 +25,28 @@ const booleanRegistry = {
24
25
  onChange: (value)=>onChange?.(!!value),
25
26
  ...rest
26
27
  });
28
+ },
29
+ conditionRule: {
30
+ [ConditionPresetOp.EQ]: {
31
+ type: 'boolean'
32
+ },
33
+ [ConditionPresetOp.NEQ]: {
34
+ type: 'boolean'
35
+ },
36
+ [ConditionPresetOp.IS_TRUE]: null,
37
+ [ConditionPresetOp.IS_FALSE]: null,
38
+ [ConditionPresetOp.IN]: {
39
+ type: 'array',
40
+ items: {
41
+ type: 'boolean'
42
+ }
43
+ },
44
+ [ConditionPresetOp.NIN]: {
45
+ type: 'array',
46
+ items: {
47
+ type: 'boolean'
48
+ }
49
+ }
27
50
  }
28
51
  };
29
52
  export { booleanRegistry };
@@ -1,18 +1,47 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import "react";
3
+ import { format } from "date-fns";
3
4
  import { DatePicker } from "@douyinfe/semi-ui";
5
+ import { ConditionPresetOp } from "../../../components/condition-context/op.mjs";
4
6
  const dateTimeRegistry = {
5
7
  type: 'date-time',
6
8
  ConstantRenderer: (props)=>/*#__PURE__*/ jsx(DatePicker, {
7
9
  size: "small",
8
10
  type: "dateTime",
9
11
  density: "compact",
12
+ defaultValue: Date.now(),
10
13
  style: {
11
14
  width: '100%',
12
15
  ...props.style || {}
13
16
  },
14
17
  disabled: props.readonly,
15
- ...props
16
- })
18
+ ...props,
19
+ onChange: (date)=>{
20
+ props.onChange?.(format(date, "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"));
21
+ },
22
+ value: props.value
23
+ }),
24
+ conditionRule: {
25
+ [ConditionPresetOp.EQ]: {
26
+ type: 'date-time'
27
+ },
28
+ [ConditionPresetOp.NEQ]: {
29
+ type: 'date-time'
30
+ },
31
+ [ConditionPresetOp.GT]: {
32
+ type: 'date-time'
33
+ },
34
+ [ConditionPresetOp.GTE]: {
35
+ type: 'date-time'
36
+ },
37
+ [ConditionPresetOp.LT]: {
38
+ type: 'date-time'
39
+ },
40
+ [ConditionPresetOp.LTE]: {
41
+ type: 'date-time'
42
+ },
43
+ [ConditionPresetOp.IS_EMPTY]: null,
44
+ [ConditionPresetOp.IS_NOT_EMPTY]: null
45
+ }
17
46
  };
18
47
  export { dateTimeRegistry };
@@ -2,6 +2,7 @@ import { jsonSchemaTypeManager } from "@flowgram.ai/json-schema";
2
2
  import { stringRegistry } from "./string.mjs";
3
3
  import { objectRegistry } from "./object.mjs";
4
4
  import { numberRegistry } from "./number.mjs";
5
+ import { mapRegistry } from "./map.mjs";
5
6
  import { integerRegistry } from "./integer.mjs";
6
7
  import { dateTimeRegistry } from "./date-time.mjs";
7
8
  import { booleanRegistry } from "./boolean.mjs";
@@ -13,7 +14,11 @@ const jsonSchemaTypePreset = [
13
14
  integerRegistry,
14
15
  booleanRegistry,
15
16
  arrayRegistry,
17
+ mapRegistry,
16
18
  dateTimeRegistry
17
19
  ];
18
- jsonSchemaTypePreset.forEach((_type)=>jsonSchemaTypeManager.register(_type));
19
- export { jsonSchemaTypePreset };
20
+ const initRegistries = ()=>{
21
+ if (jsonSchemaTypeManager.getTypeByName('string')?.ConstantRenderer) return;
22
+ jsonSchemaTypePreset.forEach((_type)=>jsonSchemaTypeManager.register(_type));
23
+ };
24
+ export { initRegistries, jsonSchemaTypePreset };
@@ -2,6 +2,7 @@ import { jsx } from "react/jsx-runtime";
2
2
  import "react";
3
3
  import { I18n } from "@flowgram.ai/editor";
4
4
  import { InputNumber } from "@douyinfe/semi-ui";
5
+ import { ConditionPresetOp } from "../../../components/condition-context/op.mjs";
5
6
  const integerRegistry = {
6
7
  type: 'integer',
7
8
  ConstantRenderer: (props)=>/*#__PURE__*/ jsx(InputNumber, {
@@ -10,6 +11,38 @@ const integerRegistry = {
10
11
  disabled: props.readonly,
11
12
  precision: 0,
12
13
  ...props
13
- })
14
+ }),
15
+ conditionRule: {
16
+ [ConditionPresetOp.EQ]: {
17
+ type: 'number'
18
+ },
19
+ [ConditionPresetOp.NEQ]: {
20
+ type: 'number'
21
+ },
22
+ [ConditionPresetOp.GT]: {
23
+ type: 'number'
24
+ },
25
+ [ConditionPresetOp.GTE]: {
26
+ type: 'number'
27
+ },
28
+ [ConditionPresetOp.LT]: {
29
+ type: 'number'
30
+ },
31
+ [ConditionPresetOp.LTE]: {
32
+ type: 'number'
33
+ },
34
+ [ConditionPresetOp.IN]: {
35
+ type: 'array',
36
+ extra: {
37
+ weak: true
38
+ }
39
+ },
40
+ [ConditionPresetOp.NIN]: {
41
+ type: 'array',
42
+ extra: {
43
+ weak: true
44
+ }
45
+ }
46
+ }
14
47
  };
15
48
  export { integerRegistry };
@@ -0,0 +1,20 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import "react";
3
+ import { I18n } from "@flowgram.ai/editor";
4
+ import { ConditionPresetOp } from "../../../components/condition-context/op.mjs";
5
+ import { CodeEditorMini } from "../../../components/code-editor-mini/index.mjs";
6
+ const mapRegistry = {
7
+ type: 'map',
8
+ ConstantRenderer: (props)=>/*#__PURE__*/ jsx(CodeEditorMini, {
9
+ value: props.value,
10
+ onChange: (v)=>props.onChange?.(v),
11
+ languageId: "json",
12
+ placeholder: I18n.t('Please Input Map'),
13
+ readonly: props.readonly
14
+ }),
15
+ conditionRule: {
16
+ [ConditionPresetOp.IS_EMPTY]: null,
17
+ [ConditionPresetOp.IS_NOT_EMPTY]: null
18
+ }
19
+ };
20
+ export { mapRegistry };
@@ -2,6 +2,7 @@ import { jsx } from "react/jsx-runtime";
2
2
  import "react";
3
3
  import { I18n } from "@flowgram.ai/editor";
4
4
  import { InputNumber } from "@douyinfe/semi-ui";
5
+ import { ConditionPresetOp } from "../../../components/condition-context/op.mjs";
5
6
  const numberRegistry = {
6
7
  type: 'number',
7
8
  ConstantRenderer: (props)=>/*#__PURE__*/ jsx(InputNumber, {
@@ -10,6 +11,38 @@ const numberRegistry = {
10
11
  disabled: props.readonly,
11
12
  hideButtons: true,
12
13
  ...props
13
- })
14
+ }),
15
+ conditionRule: {
16
+ [ConditionPresetOp.EQ]: {
17
+ type: 'number'
18
+ },
19
+ [ConditionPresetOp.NEQ]: {
20
+ type: 'number'
21
+ },
22
+ [ConditionPresetOp.GT]: {
23
+ type: 'number'
24
+ },
25
+ [ConditionPresetOp.GTE]: {
26
+ type: 'number'
27
+ },
28
+ [ConditionPresetOp.LT]: {
29
+ type: 'number'
30
+ },
31
+ [ConditionPresetOp.LTE]: {
32
+ type: 'number'
33
+ },
34
+ [ConditionPresetOp.IN]: {
35
+ type: 'array',
36
+ extra: {
37
+ weak: true
38
+ }
39
+ },
40
+ [ConditionPresetOp.NIN]: {
41
+ type: 'array',
42
+ extra: {
43
+ weak: true
44
+ }
45
+ }
46
+ }
14
47
  };
15
48
  export { numberRegistry };
@@ -1,6 +1,7 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import "react";
3
3
  import { I18n } from "@flowgram.ai/editor";
4
+ import { ConditionPresetOp } from "../../../components/condition-context/op.mjs";
4
5
  import { CodeEditorMini } from "../../../components/code-editor-mini/index.mjs";
5
6
  const objectRegistry = {
6
7
  type: 'object',
@@ -10,6 +11,10 @@ const objectRegistry = {
10
11
  languageId: "json",
11
12
  placeholder: I18n.t('Please Input Object'),
12
13
  readonly: props.readonly
13
- })
14
+ }),
15
+ conditionRule: {
16
+ [ConditionPresetOp.IS_EMPTY]: null,
17
+ [ConditionPresetOp.IS_NOT_EMPTY]: null
18
+ }
14
19
  };
15
20
  export { objectRegistry };
@@ -2,6 +2,7 @@ import { jsx } from "react/jsx-runtime";
2
2
  import "react";
3
3
  import { I18n } from "@flowgram.ai/editor";
4
4
  import { Input, TextArea } from "@douyinfe/semi-ui";
5
+ import { ConditionPresetOp } from "../../../components/condition-context/op.mjs";
5
6
  const stringRegistry = {
6
7
  type: 'string',
7
8
  ConstantRenderer: (props)=>props?.enableMultiLineStr ? /*#__PURE__*/ jsx(TextArea, {
@@ -15,6 +16,34 @@ const stringRegistry = {
15
16
  placeholder: I18n.t('Please Input String'),
16
17
  disabled: props.readonly,
17
18
  ...props
18
- })
19
+ }),
20
+ conditionRule: {
21
+ [ConditionPresetOp.EQ]: {
22
+ type: 'string'
23
+ },
24
+ [ConditionPresetOp.NEQ]: {
25
+ type: 'string'
26
+ },
27
+ [ConditionPresetOp.CONTAINS]: {
28
+ type: 'string'
29
+ },
30
+ [ConditionPresetOp.NOT_CONTAINS]: {
31
+ type: 'string'
32
+ },
33
+ [ConditionPresetOp.IN]: {
34
+ type: 'array',
35
+ items: {
36
+ type: 'string'
37
+ }
38
+ },
39
+ [ConditionPresetOp.NIN]: {
40
+ type: 'array',
41
+ items: {
42
+ type: 'string'
43
+ }
44
+ },
45
+ [ConditionPresetOp.IS_EMPTY]: null,
46
+ [ConditionPresetOp.IS_NOT_EMPTY]: null
47
+ }
19
48
  };
20
49
  export { stringRegistry };
File without changes
@@ -29,34 +29,48 @@ import { constantSchema, expressionSchema, refSchema, templateSchema } from "./s
29
29
  function* traverse(value, options) {
30
30
  const { includeTypes = [
31
31
  'ref',
32
- 'template'
33
- ], path = '' } = options;
32
+ 'template',
33
+ 'expression',
34
+ 'constant'
35
+ ], path = '', pathArr = [] } = options || {};
34
36
  if (isPlainObject(value)) {
35
37
  if (isRef(value) && includeTypes.includes('ref')) return void (yield {
36
38
  value,
37
- path
39
+ path,
40
+ pathArr
38
41
  });
39
42
  if (isTemplate(value) && includeTypes.includes('template')) return void (yield {
40
43
  value,
41
- path
44
+ path,
45
+ pathArr
42
46
  });
43
47
  if (isExpression(value) && includeTypes.includes('expression')) return void (yield {
44
48
  value,
45
- path
49
+ path,
50
+ pathArr
46
51
  });
47
52
  if (isConstant(value) && includeTypes.includes('constant')) return void (yield {
48
53
  value,
49
- path
54
+ path,
55
+ pathArr
50
56
  });
51
57
  for (const [_key, _value] of Object.entries(value))yield* traverse(_value, {
52
58
  ...options,
53
- path: `${path}.${_key}`
59
+ path: path ? `${path}.${_key}` : _key,
60
+ pathArr: [
61
+ ...pathArr,
62
+ _key
63
+ ]
54
64
  });
55
65
  return;
56
66
  }
57
67
  if (isArray(value)) for (const [_idx, _value] of value.entries())yield* traverse(_value, {
58
68
  ...options,
59
- path: `${path}[${_idx}]`
69
+ path: path ? `${path}[${_idx}]` : `[${_idx}]`,
70
+ pathArr: [
71
+ ...pathArr,
72
+ `[${_idx}]`
73
+ ]
60
74
  });
61
75
  }
62
76
  FlowValueUtils.traverse = traverse;
@@ -1 +1 @@
1
- {"root":["../src/index.ts","../src/components/index.ts","../src/components/assign-row/index.tsx","../src/components/assign-row/types.ts","../src/components/assign-rows/index.tsx","../src/components/batch-outputs/index.tsx","../src/components/batch-outputs/styles.tsx","../src/components/batch-outputs/types.ts","../src/components/batch-variable-selector/index.tsx","../src/components/blur-input/index.tsx","../src/components/code-editor/editor.tsx","../src/components/code-editor/index.tsx","../src/components/code-editor/init-worker.ts","../src/components/code-editor/language-features.ts","../src/components/code-editor/utils.ts","../src/components/code-editor/theme/dark.ts","../src/components/code-editor/theme/index.ts","../src/components/code-editor/theme/light.ts","../src/components/code-editor-mini/index.tsx","../src/components/condition-row/constants.ts","../src/components/condition-row/index.tsx","../src/components/condition-row/styles.tsx","../src/components/condition-row/types.ts","../src/components/condition-row/hooks/useOp.tsx","../src/components/condition-row/hooks/useRule.ts","../src/components/constant-input/index.tsx","../src/components/constant-input/types.ts","../src/components/coze-editor-extensions/index.tsx","../src/components/coze-editor-extensions/styles.tsx","../src/components/coze-editor-extensions/extensions/inputs-tree.tsx","../src/components/coze-editor-extensions/extensions/variable-tag.tsx","../src/components/coze-editor-extensions/extensions/variable-tree.tsx","../src/components/db-condition-row/index.tsx","../src/components/db-condition-row/styles.tsx","../src/components/db-condition-row/types.ts","../src/components/db-condition-row/hooks/use-left.tsx","../src/components/db-condition-row/hooks/use-op.tsx","../src/components/display-flow-value/index.tsx","../src/components/display-inputs-values/index.tsx","../src/components/display-inputs-values/styles.ts","../src/components/display-outputs/index.tsx","../src/components/display-outputs/styles.ts","../src/components/display-schema-tag/index.tsx","../src/components/display-schema-tag/styles.ts","../src/components/display-schema-tree/index.tsx","../src/components/display-schema-tree/styles.tsx","../src/components/dynamic-value-input/hooks.ts","../src/components/dynamic-value-input/index.tsx","../src/components/dynamic-value-input/styles.tsx","../src/components/inputs-values/index.tsx","../src/components/inputs-values/styles.tsx","../src/components/inputs-values/types.ts","../src/components/inputs-values-tree/index.tsx","../src/components/inputs-values-tree/row.tsx","../src/components/inputs-values-tree/styles.tsx","../src/components/inputs-values-tree/types.ts","../src/components/inputs-values-tree/hooks/use-child-list.tsx","../src/components/json-editor-with-variables/editor.tsx","../src/components/json-editor-with-variables/index.tsx","../src/components/json-schema-editor/default-value.tsx","../src/components/json-schema-editor/hooks.tsx","../src/components/json-schema-editor/index.tsx","../src/components/json-schema-editor/styles.tsx","../src/components/json-schema-editor/types.ts","../src/components/prompt-editor/editor.tsx","../src/components/prompt-editor/index.tsx","../src/components/prompt-editor/styles.tsx","../src/components/prompt-editor/types.tsx","../src/components/prompt-editor/extensions/jinja.tsx","../src/components/prompt-editor/extensions/language-support.tsx","../src/components/prompt-editor/extensions/markdown.tsx","../src/components/prompt-editor-with-inputs/editor.tsx","../src/components/prompt-editor-with-inputs/index.tsx","../src/components/prompt-editor-with-variables/editor.tsx","../src/components/prompt-editor-with-variables/index.tsx","../src/components/type-selector/index.tsx","../src/components/variable-selector/context.tsx","../src/components/variable-selector/index.tsx","../src/components/variable-selector/styles.tsx","../src/components/variable-selector/use-variable-tree.tsx","../src/effects/index.ts","../src/effects/auto-rename-ref/index.ts","../src/effects/listen-ref-schema-change/index.ts","../src/effects/listen-ref-value-change/index.ts","../src/effects/provide-batch-input/index.ts","../src/effects/provide-json-schema-outputs/index.ts","../src/effects/sync-variable-title/index.ts","../src/effects/validate-when-variable-sync/index.ts","../src/form-plugins/index.ts","../src/form-plugins/batch-outputs-plugin/index.ts","../src/form-plugins/infer-assign-plugin/index.ts","../src/form-plugins/infer-inputs-plugin/index.ts","../src/hooks/index.ts","../src/hooks/use-object-list/index.tsx","../src/plugins/index.ts","../src/plugins/disable-declaration-plugin/create-disable-declaration-plugin.ts","../src/plugins/disable-declaration-plugin/index.tsx","../src/plugins/json-schema-preset/create-type-preset-plugin.tsx","../src/plugins/json-schema-preset/index.tsx","../src/plugins/json-schema-preset/manager.ts","../src/plugins/json-schema-preset/react.tsx","../src/plugins/json-schema-preset/type-definition/array.tsx","../src/plugins/json-schema-preset/type-definition/boolean.tsx","../src/plugins/json-schema-preset/type-definition/date-time.tsx","../src/plugins/json-schema-preset/type-definition/index.tsx","../src/plugins/json-schema-preset/type-definition/integer.tsx","../src/plugins/json-schema-preset/type-definition/number.tsx","../src/plugins/json-schema-preset/type-definition/object.tsx","../src/plugins/json-schema-preset/type-definition/string.tsx","../src/shared/index.ts","../src/shared/flow-value/index.ts","../src/shared/flow-value/schema.ts","../src/shared/flow-value/types.ts","../src/shared/flow-value/utils.ts","../src/shared/format-legacy-refs/index.ts","../src/shared/inject-material/index.tsx","../src/shared/lazy-suspense/index.tsx","../src/shared/polyfill-create-root/index.tsx","../src/validate/index.ts","../src/validate/validate-flow-value/index.tsx"],"version":"5.8.3"}
1
+ {"root":["../src/index.ts","../src/components/index.ts","../src/components/assign-row/index.tsx","../src/components/assign-row/types.ts","../src/components/assign-rows/index.tsx","../src/components/batch-outputs/index.tsx","../src/components/batch-outputs/styles.tsx","../src/components/batch-outputs/types.ts","../src/components/batch-variable-selector/index.tsx","../src/components/blur-input/index.tsx","../src/components/code-editor/editor.tsx","../src/components/code-editor/index.tsx","../src/components/code-editor/language-features.ts","../src/components/code-editor/utils.ts","../src/components/code-editor/theme/dark.ts","../src/components/code-editor/theme/index.ts","../src/components/code-editor/theme/light.ts","../src/components/code-editor-mini/index.tsx","../src/components/condition-context/context.tsx","../src/components/condition-context/index.tsx","../src/components/condition-context/op.ts","../src/components/condition-context/types.ts","../src/components/condition-context/hooks/use-condition.tsx","../src/components/condition-row/index.tsx","../src/components/condition-row/styles.tsx","../src/components/condition-row/types.ts","../src/components/constant-input/index.tsx","../src/components/constant-input/types.ts","../src/components/coze-editor-extensions/index.tsx","../src/components/coze-editor-extensions/styles.tsx","../src/components/coze-editor-extensions/extensions/inputs-tree.tsx","../src/components/coze-editor-extensions/extensions/variable-tag.tsx","../src/components/coze-editor-extensions/extensions/variable-tree.tsx","../src/components/db-condition-row/index.tsx","../src/components/db-condition-row/styles.tsx","../src/components/db-condition-row/types.ts","../src/components/display-flow-value/index.tsx","../src/components/display-inputs-values/index.tsx","../src/components/display-inputs-values/styles.ts","../src/components/display-outputs/index.tsx","../src/components/display-outputs/styles.ts","../src/components/display-schema-tag/index.tsx","../src/components/display-schema-tag/styles.ts","../src/components/display-schema-tree/index.tsx","../src/components/display-schema-tree/styles.tsx","../src/components/dynamic-value-input/hooks.ts","../src/components/dynamic-value-input/index.tsx","../src/components/dynamic-value-input/styles.tsx","../src/components/inputs-values/index.tsx","../src/components/inputs-values/styles.tsx","../src/components/inputs-values/types.ts","../src/components/inputs-values-tree/index.tsx","../src/components/inputs-values-tree/row.tsx","../src/components/inputs-values-tree/styles.tsx","../src/components/inputs-values-tree/types.ts","../src/components/inputs-values-tree/hooks/use-child-list.tsx","../src/components/json-editor-with-variables/editor.tsx","../src/components/json-editor-with-variables/index.tsx","../src/components/json-schema-editor/default-value.tsx","../src/components/json-schema-editor/hooks.tsx","../src/components/json-schema-editor/index.tsx","../src/components/json-schema-editor/styles.tsx","../src/components/json-schema-editor/types.ts","../src/components/prompt-editor/editor.tsx","../src/components/prompt-editor/index.tsx","../src/components/prompt-editor/styles.tsx","../src/components/prompt-editor/types.tsx","../src/components/prompt-editor/extensions/jinja.tsx","../src/components/prompt-editor/extensions/language-support.tsx","../src/components/prompt-editor/extensions/markdown.tsx","../src/components/prompt-editor-with-inputs/editor.tsx","../src/components/prompt-editor-with-inputs/index.tsx","../src/components/prompt-editor-with-variables/editor.tsx","../src/components/prompt-editor-with-variables/index.tsx","../src/components/type-selector/index.tsx","../src/components/variable-selector/context.tsx","../src/components/variable-selector/index.tsx","../src/components/variable-selector/styles.tsx","../src/components/variable-selector/use-variable-tree.tsx","../src/effects/index.ts","../src/effects/auto-rename-ref/index.ts","../src/effects/listen-ref-schema-change/index.ts","../src/effects/listen-ref-value-change/index.ts","../src/effects/provide-batch-input/index.ts","../src/effects/provide-json-schema-outputs/index.ts","../src/effects/sync-variable-title/index.ts","../src/effects/validate-when-variable-sync/index.ts","../src/form-plugins/index.ts","../src/form-plugins/batch-outputs-plugin/index.ts","../src/form-plugins/infer-assign-plugin/index.ts","../src/form-plugins/infer-inputs-plugin/index.ts","../src/hooks/index.ts","../src/hooks/use-object-list/index.tsx","../src/plugins/index.ts","../src/plugins/disable-declaration-plugin/create-disable-declaration-plugin.ts","../src/plugins/disable-declaration-plugin/index.tsx","../src/plugins/json-schema-preset/create-type-preset-plugin.tsx","../src/plugins/json-schema-preset/index.tsx","../src/plugins/json-schema-preset/react.tsx","../src/plugins/json-schema-preset/types.ts","../src/plugins/json-schema-preset/type-definition/array.tsx","../src/plugins/json-schema-preset/type-definition/boolean.tsx","../src/plugins/json-schema-preset/type-definition/date-time.tsx","../src/plugins/json-schema-preset/type-definition/index.tsx","../src/plugins/json-schema-preset/type-definition/integer.tsx","../src/plugins/json-schema-preset/type-definition/map.tsx","../src/plugins/json-schema-preset/type-definition/number.tsx","../src/plugins/json-schema-preset/type-definition/object.tsx","../src/plugins/json-schema-preset/type-definition/string.tsx","../src/shared/index.ts","../src/shared/flow-value/index.ts","../src/shared/flow-value/schema.ts","../src/shared/flow-value/types.ts","../src/shared/flow-value/utils.ts","../src/shared/format-legacy-refs/index.ts","../src/shared/inject-material/index.tsx","../src/shared/lazy-suspense/index.tsx","../src/shared/polyfill-create-root/index.tsx","../src/validate/index.ts","../src/validate/validate-flow-value/index.tsx"],"version":"5.8.3"}
@@ -5,8 +5,6 @@
5
5
  import React from 'react';
6
6
  import { InferValues } from '@flowgram.ai/coze-editor/react';
7
7
  import preset from '@flowgram.ai/coze-editor/preset-code';
8
- import './theme';
9
- import './language-features';
10
8
  type Preset = typeof preset;
11
9
  type Options = Partial<InferValues<Preset[number]>>;
12
10
  export interface CodeEditorPropsType extends React.PropsWithChildren<{}> {
@@ -2,4 +2,7 @@
2
2
  * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
3
3
  * SPDX-License-Identifier: MIT
4
4
  */
5
- export {};
5
+ export declare const dynamicLoadLanguages: Record<string, () => Promise<void>>;
6
+ export declare const useDynamicLoadLanguage: (languageId: string) => {
7
+ loaded: boolean;
8
+ };
@@ -3,4 +3,33 @@
3
3
  * SPDX-License-Identifier: MIT
4
4
  */
5
5
  import { type Extension } from '@codemirror/state';
6
+ export declare const colors: {
7
+ background: string;
8
+ foreground: string;
9
+ selection: string;
10
+ cursor: string;
11
+ dropdownBackground: string;
12
+ dropdownBorder: string;
13
+ activeLine: string;
14
+ matchingBracket: string;
15
+ keyword: string;
16
+ storage: string;
17
+ variable: string;
18
+ variableName: string;
19
+ parameter: string;
20
+ function: string;
21
+ string: string;
22
+ constant: string;
23
+ type: string;
24
+ class: string;
25
+ number: string;
26
+ comment: string;
27
+ heading: string;
28
+ invalid: string;
29
+ regexp: string;
30
+ propertyName: string;
31
+ separator: string;
32
+ gutters: string;
33
+ moduleKeyword: string;
34
+ };
6
35
  export declare const darkTheme: Extension;