Просмотр исходного кода

feat(material): add condition rows for array (#609)

* feat: add unregister type

* feat: support contains for array in condition row

* feat: array support equal

* feat: pnpm lock

* fix: cli error
Yiwei Mao 5 месяцев назад
Родитель
Сommit
c1281160f5

+ 7 - 7
common/config/rush/pnpm-lock.yaml

@@ -4175,8 +4175,8 @@ importers:
         specifier: ~0.2.2
         version: 0.2.2
       rxjs:
-        specifier: ^7.8.1
-        version: 7.8.1
+        specifier: ^7.8.2
+        version: 7.8.2
     devDependencies:
       '@flowgram.ai/eslint-config':
         specifier: workspace:*
@@ -9862,7 +9862,7 @@ packages:
     resolution: {integrity: sha512-Q0zyBupO6NxGRZut/JdmqYKOnN95Eg5V8Csg3PGKkP+FnvsUZx1jAyK7fztIszxxMuoBA6E3KXWvdZVXIpx60g==}
     dependencies:
       '@types/through': 0.0.33
-      rxjs: 7.8.1
+      rxjs: 7.8.2
     dev: true
 
   /@types/istanbul-lib-coverage@2.0.6:
@@ -14025,7 +14025,7 @@ packages:
       mute-stream: 1.0.0
       ora: 5.4.1
       run-async: 3.0.0
-      rxjs: 7.8.1
+      rxjs: 7.8.2
       string-width: 4.2.3
       strip-ansi: 6.0.1
       wrap-ansi: 6.2.0
@@ -18330,8 +18330,8 @@ packages:
     dependencies:
       queue-microtask: 1.2.3
 
-  /rxjs@7.8.1:
-    resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==}
+  /rxjs@7.8.2:
+    resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==}
     dependencies:
       tslib: 2.8.1
 
@@ -18549,7 +18549,7 @@ packages:
       buffer-builder: 0.2.0
       colorjs.io: 0.5.2
       immutable: 5.0.3
-      rxjs: 7.8.1
+      rxjs: 7.8.2
       supports-color: 8.1.1
       sync-child-process: 1.0.2
       varint: 6.0.0

+ 4 - 0
packages/materials/form-materials/src/components/condition-row/constants.ts

@@ -51,6 +51,10 @@ export const rules: IRules = {
   array: {
     [Op.IS_EMPTY]: null,
     [Op.IS_NOT_EMPTY]: null,
+    [Op.CONTAINS]: 'array',
+    [Op.NOT_CONTAINS]: 'array',
+    [Op.EQ]: 'array',
+    [Op.NEQ]: 'array',
   },
   map: {
     [Op.IS_EMPTY]: null,

+ 1 - 1
packages/materials/form-materials/src/components/json-schema-editor/config.json

@@ -2,7 +2,7 @@
   "name": "json-schema-editor",
   "depMaterials": [
     "type-selector",
-    "constant-inputs",
+    "constant-inputs"
   ],
   "depPackages": [
     "@douyinfe/semi-ui",

+ 4 - 2
packages/materials/form-materials/src/shared/json-schema-preset/create-type-preset-plugin.tsx

@@ -14,13 +14,15 @@ import { jsonSchemaTypePreset } from './type-definition';
 import { JsonSchemaTypeRegistry } from './manager';
 
 export const createTypePresetPlugin = definePluginCreator<{
-  types: JsonSchemaTypeRegistry[];
+  types?: JsonSchemaTypeRegistry[];
+  unregisterTypes?: string[];
 }>({
   onInit(ctx, opts) {
     const typeManager = ctx.get(BaseTypeManager) as JsonSchemaTypeManager;
     jsonSchemaTypePreset.forEach((_type) => typeManager.register(_type));
 
-    opts.types.forEach((_type) => typeManager.register(_type));
+    opts.types?.forEach((_type) => typeManager.register(_type));
+    opts.unregisterTypes?.forEach((_type) => typeManager.unregister(_type));
   },
   containerModules: [jsonSchemaContainerModule],
 });

+ 1 - 1
packages/variable-engine/json-schema/src/context.tsx

@@ -26,7 +26,7 @@ export const useTypeManager = () => {
     return typeManagerFromContext;
   }
 
-  if (container?.isBound(BaseTypeManager)) {
+  if (container?.isBound?.(BaseTypeManager)) {
     return container.get(BaseTypeManager);
   }
 

+ 1 - 1
packages/variable-engine/variable-core/package.json

@@ -40,7 +40,7 @@
     "lodash": "^4.17.21",
     "nanoid": "^4.0.2",
     "reflect-metadata": "~0.2.2",
-    "rxjs": "^7.8.1"
+    "rxjs": "^7.8.2"
   },
   "devDependencies": {
     "@flowgram.ai/eslint-config": "workspace:*",