@piying/view-angular-core 1.7.3 → 1.7.5
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.
package/adapter/index.d.ts
CHANGED
|
@@ -39,7 +39,7 @@ interface J2VOptions {
|
|
|
39
39
|
afterResolve?: (jSchema: ResolvedJsonSchema, vSchema: ResolvedSchema) => ResolvedSchema | undefined;
|
|
40
40
|
};
|
|
41
41
|
}
|
|
42
|
-
declare function jsonSchemaToValibot(schema:
|
|
42
|
+
declare function jsonSchemaToValibot(schema: Record<string, any>, options?: J2VOptions): ResolvedSchema;
|
|
43
43
|
declare class JsonSchemaToValibot {
|
|
44
44
|
#private;
|
|
45
45
|
root: JSONSchemaRaw;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"piying-view-angular-core-adapter.mjs","sources":["../../../projects/view-angular-core/adapter/json-schema/json-schema.service.ts","../../../projects/view-angular-core/adapter/piying-view-angular-core-adapter.ts"],"sourcesContent":["import { map, switchMap } from 'rxjs/operators';\nimport rfdc from 'rfdc';\nimport * as v from 'valibot';\nimport { formConfig, hideWhen } from '@piying/view-angular-core';\nimport * as jsonActions from '@piying/view-angular-core';\nimport {\n intersection,\n isBoolean,\n isNil,\n isString,\n isUndefined,\n union,\n uniq,\n} from 'es-toolkit';\nimport { BehaviorSubject } from 'rxjs';\nimport { schema as cSchema } from '@piying/valibot-visit';\nimport {\n JsonSchemaDraft202012,\n JsonSchemaDraft202012Object,\n} from '@hyperjump/json-schema/draft-2020-12';\nimport { JsonSchemaDraft07 } from '@hyperjump/json-schema/draft-07';\nimport { deepEqual } from 'fast-equals';\nexport type JSType = NonNullable<\n Exclude<JsonSchemaDraft202012Object['type'], any[]>\n>;\ntype BaseAction = v.BaseMetadata<any> | v.BaseValidation<any, any, any>;\nfunction createImpasseAction(key: string, value?: any) {\n return v.rawCheck(({ dataset, addIssue }) => {\n if (dataset.issues) {\n return;\n }\n addIssue({\n label: `impasse:${key}`,\n expected: '[no validation conflict]',\n received: value,\n });\n });\n}\nfunction isNumber(value?: any): value is number {\n return typeof value === 'number';\n}\nconst anyType = [\n 'object',\n 'array',\n 'string',\n 'number',\n 'boolean',\n 'null',\n 'integer',\n] as Extract<JsonSchemaDraft202012Object['type'], any[]>;\n\n// todo 先按照类型不可变设计,之后修改代码支持组件变更\nconst clone = rfdc({ proto: false, circles: false });\ntype ResolvedSchema =\n | v.BaseSchema<any, any, any>\n | v.SchemaWithPipe<\n // @ts-ignore // TODO: Remove comment\n readonly [\n v.BaseSchema<any, any, any>,\n ...(\n | v.BaseSchema<any, any, any>\n | v.PipeAction<any, any, v.BaseIssue<unknown>>\n )[],\n ]\n >;\n\nfunction getMetadataAction(schema: JSONSchemaRaw) {\n const action = [];\n if (isString(schema.title)) {\n action.push(v.title(schema.title));\n }\n if (isString(schema.description)) {\n action.push(v.description(schema.description));\n }\n return action;\n}\n\ninterface JSONSchemaRaw extends JsonSchemaDraft202012Object {\n actions?: { name: string; params: any[] }[];\n}\ninterface JSONSchemaNoRef extends JSONSchemaRaw {\n __resolved: {\n hasRef: boolean;\n };\n}\ntype ResolvedJsonSchema = JSONSchemaNoRef & {\n __resolved: {\n type: {\n types: Extract<JsonSchemaDraft202012Object['type'], any[]>;\n optional: boolean;\n };\n isResolved: boolean;\n };\n};\nfunction arrayIntersection(a: any, b: any) {\n if (!isNil(a) && !isNil(b)) {\n a = Array.isArray(a) ? a : [a];\n b = Array.isArray(b) ? b : [b];\n if (a.length && b.length) {\n const result = intersection(a, b);\n if (result.length === 0) {\n return {\n action: createImpasseAction('applicator'),\n value: undefined,\n };\n } else {\n return { value: result };\n }\n }\n return {\n value: a.length ? a : b,\n };\n }\n return { value: a ?? b };\n}\n/** 合并schema\n * 子级需要解析\n */\nexport interface TypeHandle {\n afterResolve: (\n type: string,\n jSchema: any,\n vSchema: ResolvedSchema,\n ) => ResolvedSchema | undefined;\n}\ninterface J2VOptions {\n customActions?: Record<\n string,\n (...args: any[]) => v.BaseMetadata<any> | v.BaseValidation<any, any, any>\n >;\n schemaHandle?: {\n type?: TypeHandle;\n afterResolve?: (\n jSchema: ResolvedJsonSchema,\n vSchema: ResolvedSchema,\n ) => ResolvedSchema | undefined;\n };\n}\n// 应该传入定制\n\nexport function jsonSchemaToValibot(\n schema: JSONSchemaRaw,\n options?: J2VOptions,\n) {\n return new JsonSchemaToValibot(schema, options).convert() as ResolvedSchema;\n}\nconst Schema2012 = 'https://json-schema.org/draft/2020-12/schema';\nexport class JsonSchemaToValibot {\n root;\n #options;\n private cacheSchema = new WeakMap();\n constructor(root: JSONSchemaRaw, options?: J2VOptions) {\n this.root = root;\n this.#options = options;\n root.$schema ??= Schema2012;\n }\n convert() {\n return this.#jSchemaToVSchema(clone(this.root));\n }\n\n #applicatorParse(schema: ResolvedJsonSchema) {\n let vSchema;\n if (schema.allOf) {\n const result = this.#mergeSchema(schema, ...schema.allOf);\n vSchema = v.pipe(\n this.#jsonSchemaBase(result.schema, () => result.actionList)!,\n );\n } else if (schema.anyOf) {\n vSchema = this.#conditionCreate(schema, {\n useOr: false,\n getChildren: () => schema.anyOf!,\n conditionCheckActionFn(childOriginSchemaList, getActivateList) {\n return v.rawCheck(({ dataset, addIssue }) => {\n if (dataset.issues) {\n return;\n }\n let childFailedResult:\n | { index: number; issues?: any[] }\n | undefined;\n // 验证项全为可选,所以需要这里再次验证\n const hasSuccess = childOriginSchemaList.some((item, index) => {\n const isActive = getActivateList()[index];\n if (!isActive) {\n childFailedResult ??= { index: index };\n return false;\n }\n const result = v.safeParse(item, dataset.value);\n if (!result.success) {\n childFailedResult = { index: index, issues: result.issues };\n }\n return result.success;\n });\n if (!hasSuccess) {\n const extMessage =\n childFailedResult?.issues\n ?.map((item) => item.message)\n .join(',') ?? '';\n addIssue({\n label: `anyOf:${childFailedResult?.index ?? ''}:${extMessage}`,\n });\n }\n });\n },\n conditionSchemaFn(baseSchema, conditionVSchema, childSchemaList) {\n return v.pipe(\n v.intersect([\n conditionVSchema,\n baseSchema,\n cSchema.intersect(\n childSchemaList.map((item) =>\n v.pipe(\n v.optional(item),\n jsonActions.renderConfig({ hidden: true }),\n ),\n ),\n ),\n ]),\n jsonActions.setComponent('anyOf-condition'),\n );\n },\n });\n } else if (schema.oneOf) {\n vSchema = this.#conditionCreate(schema, {\n useOr: true,\n getChildren() {\n return schema.oneOf!;\n },\n conditionCheckActionFn(childOriginSchemaList, getActivateList) {\n return v.rawCheck(({ dataset, addIssue }) => {\n if (dataset.issues) {\n return;\n }\n // 验证项全为可选,所以需要这里再次验证\n const hasSuccess = childOriginSchemaList.filter((item, index) => {\n const isActive = getActivateList()[index];\n if (!isActive) {\n return false;\n }\n const result = v.safeParse(item, dataset.value);\n return result.success;\n });\n if (hasSuccess.length !== 1) {\n addIssue({\n label: `oneOf`,\n expected: '1',\n received: `${hasSuccess.length}`,\n });\n }\n });\n },\n conditionSchemaFn(baseSchema, conditionVSchema, childSchemaList) {\n return v.pipe(\n cSchema.intersect([\n conditionVSchema,\n baseSchema,\n v.union(\n childSchemaList.map((item) =>\n v.pipe(item, jsonActions.renderConfig({ hidden: true })),\n ),\n ),\n ]),\n jsonActions.setComponent('oneOf-condition'),\n );\n },\n });\n } else if ('if' in schema) {\n /**\n * 当前设计中if/then/else是采用的分离显示\n * 也就是then/else都会合并base,然后按条件展示,\n */\n\n const useThen$ = new BehaviorSubject<boolean | undefined>(undefined);\n const baseSchema = v.pipe(\n this.#jsonSchemaBase(schema, () => [\n ...this.#getValidationAction(schema),\n hideWhen({\n disabled: false,\n listen: (fn) =>\n fn({}).pipe(\n map(({ list: [value], field }) => {\n const isThen = isBoolean(schema.if)\n ? schema.if\n : v.safeParse(ifVSchema, value).success;\n (\n field.form.parent as jsonActions.FieldLogicGroup\n ).activateIndex$.set(isThen ? 1 : 2);\n useThen$.next(isThen);\n return !((isThen && !thenSchema) || (!isThen && !elseSchema));\n }),\n ),\n }),\n ]),\n );\n /** 仅为验证项,非显示用 */\n let ifVSchema: ResolvedSchema;\n if (isBoolean(schema.if)) {\n ifVSchema = v.literal(schema.if);\n } else {\n const ifSchema = this.#mergeSchema(schema, schema.if!);\n ifVSchema = v.pipe(\n this.#jsonSchemaBase(ifSchema.schema, () => ifSchema.actionList)!,\n );\n }\n function hideAction(isThen: boolean) {\n return [\n jsonActions.renderConfig({ hidden: true }),\n hideWhen({\n disabled: true,\n listen(fn) {\n return fn({ list: [['..', 0]] }).pipe(\n switchMap(({ list: [] }) => useThen$),\n map((a) => (a === undefined ? true : isThen ? !a : a)),\n );\n },\n }),\n ];\n }\n let thenSchema: ResolvedSchema | undefined;\n if (schema.then && !isBoolean(schema.then)) {\n const subSchema = this.#mergeSchema(schema, schema.then!);\n thenSchema = v.pipe(\n this.#jsonSchemaBase(subSchema.schema, () => [\n ...subSchema.actionList,\n ...hideAction(true),\n ]),\n );\n }\n\n let elseSchema: ResolvedSchema | undefined;\n if (schema.else && !isBoolean(schema.else)) {\n const subSchema = this.#mergeSchema(schema, schema.else);\n elseSchema = v.pipe(\n this.#jsonSchemaBase(subSchema.schema, () => [\n ...subSchema.actionList,\n ...hideAction(false),\n ]),\n );\n }\n\n // 这种逻辑没问题,因为jsonschema验证中,也会出现base和子级架构一起验证\n vSchema = v.pipe(\n v.union(\n [\n baseSchema,\n thenSchema ?? baseSchema,\n elseSchema ?? baseSchema,\n ].filter(Boolean),\n ),\n formConfig({ disableOrUpdateActivate: true }),\n v.rawCheck(({ dataset, addIssue }) => {\n if (dataset.issues) {\n return;\n }\n const status = useThen$.value;\n if (status && thenSchema) {\n const result = v.safeParse(thenSchema, dataset.value);\n if (!result.success) {\n addIssue();\n return;\n }\n }\n if (!status && elseSchema) {\n const result = v.safeParse(elseSchema, dataset.value);\n if (!result.success) {\n addIssue();\n return;\n }\n }\n }),\n );\n } else {\n vSchema = v.pipe(\n // 通用部分\n this.#jsonSchemaBase(this.#jsonSchemaCompatiable(schema), () =>\n this.#getValidationAction(schema),\n ),\n );\n }\n return (\n this.#options?.schemaHandle?.afterResolve?.(schema, vSchema) ?? vSchema\n );\n }\n #applicatorNot(schema: ResolvedJsonSchema) {\n const actionList = [];\n if (isBoolean(schema.not)) {\n if (schema.not) {\n actionList.push(createImpasseAction('not', schema.not));\n }\n } else if (schema.not) {\n const vSchema = this.#jSchemaToVSchema(schema.not);\n actionList.push(\n v.rawCheck(({ dataset, addIssue }) => {\n if (dataset.issues) {\n return;\n }\n const result = v.safeParse(vSchema, dataset.value);\n if (result.success) {\n addIssue({ label: `applicator:not` });\n }\n }),\n );\n }\n return actionList;\n }\n #jSchemaToVSchema(input: JsonSchemaDraft202012): ResolvedSchema {\n if (isBoolean(input)) {\n return input\n ? v.pipe(v.any(), jsonActions.setComponent('always-true'))\n : v.pipe(\n v.any(),\n v.check((value) => isUndefined(value)),\n );\n }\n if (this.cacheSchema.has(input)) {\n return this.cacheSchema.get(input);\n }\n const schema = this.#resolveSchema2(input);\n\n const actionList = this.#applicatorNot(schema);\n const result = actionList.length\n ? v.pipe(this.#applicatorParse(schema), ...actionList)\n : this.#applicatorParse(schema);\n this.cacheSchema.set(input, result);\n return result;\n }\n\n #jsonSchemaCompatiable(schema: JsonSchemaDraft202012Object) {\n if ('__resolved' in schema && (schema.__resolved as any).isResolved) {\n return schema as any as ResolvedJsonSchema;\n }\n const resolved = schema as any as ResolvedJsonSchema;\n const type = this.#guessSchemaType(resolved);\n resolved.__resolved = { ...resolved.__resolved, type, isResolved: true };\n if (type.types.includes('object')) {\n this.#objectCompatible(resolved);\n }\n if (type.types.includes('array')) {\n this.#arrayCompatible(resolved);\n }\n if (type.types.includes('number') || type.types.includes('integer')) {\n if ((resolved.exclusiveMaximum as any) === true) {\n resolved.exclusiveMaximum = resolved.maximum;\n delete resolved.maximum;\n }\n if ((resolved.exclusiveMinimum as any) === true) {\n resolved.exclusiveMinimum = resolved.minimum;\n delete resolved.minimum;\n }\n }\n return resolved;\n }\n\n #jsonSchemaBase(\n schema: ResolvedJsonSchema,\n getValidationActionList: () => BaseAction[],\n ) {\n const types = schema.__resolved.type;\n // 暂时为只支持一个\n const type = types.types[0];\n const actionList: any[] = getMetadataAction(schema);\n\n const createTypeFn = <T extends v.BaseSchema<any, any, any>>(input: T) => {\n const result = v.pipe(input, ...actionList, ...getValidationActionList());\n const result2 = types.optional\n ? v.optional(result, schema.default)\n : result;\n return (\n this.#options?.schemaHandle?.type?.afterResolve(\n type,\n result2,\n result,\n ) ?? result2\n );\n };\n if (!isNil(schema.const)) {\n return createTypeFn(v.literal(schema.const! as any));\n }\n if (Array.isArray(schema.enum)) {\n return createTypeFn(v.picklist(schema.enum as any));\n }\n switch (type) {\n case 'number': {\n return createTypeFn(v.number());\n }\n case 'integer': {\n actionList.push(v.integer());\n return createTypeFn(v.number());\n }\n case 'boolean': {\n return createTypeFn(v.boolean());\n }\n case 'string': {\n return createTypeFn(v.string());\n }\n case 'null': {\n return createTypeFn(v.optional(v.null(), null));\n }\n case 'object': {\n const childObject: Record<string, ResolvedSchema> = {};\n /** 附加 */\n let defaultRest: ResolvedSchema | undefined;\n\n let mode = 'default';\n\n if (schema.dependentRequired) {\n actionList.push(\n v.rawCheck(({ dataset, addIssue }) => {\n if (dataset.issues) {\n return;\n }\n Object.keys(schema.dependentRequired!).forEach((key) => {\n if ((dataset.value as any)?.[key] !== undefined) {\n for (const reqKey of schema.dependentRequired![key]) {\n if ((dataset.value as any)[reqKey] === undefined) {\n addIssue({\n label: `dependentRequired:${key}=>${reqKey}`,\n expected: '[required]',\n received: 'undefined',\n });\n }\n }\n }\n });\n }),\n );\n }\n // 普通属性\n if (schema.properties) {\n for (const key in schema.properties) {\n const propJSchema = schema.properties[key];\n let propData;\n if (isBoolean(propJSchema)) {\n propData = { optional: false, hasRef: false };\n } else {\n const rSchema = this.#resolveSchema2(propJSchema);\n propData = {\n optional: rSchema.__resolved.type.optional,\n hasRef: rSchema.__resolved.hasRef,\n };\n }\n\n const isRequired = !!schema.required?.includes(key);\n const wrapperOptional = !isRequired && !propData.optional;\n const createRef = () => {\n let propVSchema = this.#jSchemaToVSchema(propJSchema);\n const depList = schema.dependentRequired?.[key];\n if (depList) {\n propVSchema = v.pipe(\n propVSchema,\n jsonActions.patchHooks({\n allFieldsResolved: (field) => {\n field.form.control!.statusChanges.subscribe(() => {\n const valid = field.form.control!.valid;\n depList.map((item) => {\n field.form.parent\n .get(item)\n ?.config$.update((config) => ({\n ...config,\n required: valid,\n }));\n });\n });\n },\n }),\n );\n }\n return propVSchema;\n };\n childObject[key] = propData.hasRef\n ? wrapperOptional\n ? v.optional(v.lazy(() => createRef()))\n : v.lazy(() => createRef())\n : wrapperOptional\n ? v.optional(createRef())\n : createRef();\n }\n }\n // 附加属性规则\n if (isBoolean(schema.additionalProperties)) {\n mode = schema.additionalProperties === false ? 'strict' : mode;\n } else if (schema.additionalProperties) {\n mode = 'rest';\n // rest要符合的规则\n defaultRest = this.#jSchemaToVSchema(schema.additionalProperties!);\n }\n const patternRestList = [] as {\n regexp: RegExp;\n schema: ResolvedSchema;\n }[];\n if (schema.patternProperties) {\n for (const key in schema.patternProperties) {\n const item = this.#jSchemaToVSchema(schema.patternProperties[key]);\n if (!item) {\n throw new Error(`patternProperties->${key}: 定义未找到`);\n }\n patternRestList.push({\n regexp: new RegExp(key),\n schema: item,\n });\n }\n }\n /** 条件显示 */\n const conditionList = [];\n if (schema.dependentSchemas) {\n const depSchemaMap = {} as Record<string, ResolvedSchema>;\n for (const key in schema.dependentSchemas) {\n const jSchema = schema.dependentSchemas[key];\n let vSchema = this.#jSchemaToVSchema(jSchema);\n if (!vSchema) {\n throw new Error(`依赖->${key}: 定义未找到`);\n }\n depSchemaMap[key] = vSchema;\n\n vSchema = v.pipe(\n vSchema,\n hideWhen({\n disabled: true,\n listen: (fn, field) =>\n field\n .get(['..', '..', 0, key])!\n .form.control!.statusChanges.pipe(\n map((item) => item === 'VALID'),\n ),\n }),\n );\n conditionList.push(vSchema);\n }\n actionList.push(\n v.rawCheck(({ dataset, addIssue }) => {\n if (dataset.issues) {\n return;\n }\n Object.keys(schema.dependentSchemas!).forEach((key) => {\n if ((dataset.value as any)?.[key] !== undefined) {\n const result = v.safeParse(depSchemaMap[key], dataset.value);\n if (!result.success) {\n for (const item of result.issues) {\n addIssue({\n ...item,\n });\n }\n }\n }\n });\n }),\n );\n }\n if (isBoolean(schema.propertyNames) && !schema.propertyNames) {\n actionList.push(v.check(() => false));\n } else if (schema.propertyNames) {\n const propNameSchema = this.#jSchemaToVSchema(schema.propertyNames)!;\n actionList.push(\n v.rawCheck(({ dataset, addIssue }) => {\n if (dataset.issues) {\n return;\n }\n if (dataset.value && typeof dataset.value === 'object') {\n for (const key of Object.keys(dataset.value)) {\n const result = v.safeParse(propNameSchema, key);\n if (!result.success) {\n addIssue({\n label: `propertyNames:${key}`,\n expected: `[match]`,\n received: key,\n });\n }\n }\n }\n }),\n );\n }\n let schemaDefine;\n if (!Object.keys(childObject).length) {\n types.optional = true;\n }\n if (mode === 'default') {\n if (conditionList.length) {\n schemaDefine = v.pipe(\n cSchema.intersect([\n v.looseObject(childObject),\n v.optional(v.intersect(conditionList)),\n ]),\n );\n } else {\n schemaDefine = v.pipe(v.looseObject(childObject));\n }\n } else if (mode === 'strict') {\n if (conditionList.length) {\n schemaDefine = v.pipe(\n cSchema.intersect([\n v.object(childObject),\n v.optional(v.intersect(conditionList)),\n ]),\n );\n } else {\n schemaDefine = v.pipe(v.object(childObject));\n }\n } else {\n // rest\n let restDefine = v.any() as NonNullable<ResolvedSchema>;\n //propCheck patternMapRest addonRest\n if (defaultRest && !patternRestList.length) {\n restDefine = defaultRest;\n } else {\n restDefine = v.any();\n }\n\n if (conditionList.length) {\n schemaDefine = v.intersect([\n v.objectWithRest(childObject, restDefine),\n v.optional(v.intersect(conditionList)),\n ]);\n } else {\n schemaDefine = v.pipe(v.objectWithRest(childObject, restDefine));\n }\n }\n if (schema.patternProperties && schema.additionalProperties) {\n actionList.push(\n v.rawCheck(({ dataset, addIssue }) => {\n if (dataset.issues || dataset.value === undefined) {\n return;\n }\n\n if (typeof dataset.value === 'object') {\n datasetLoop: for (const key in dataset.value) {\n if (key in childObject) {\n continue;\n }\n for (const { regexp, schema } of patternRestList) {\n const isMatch = regexp.test(key);\n if (!isMatch) {\n continue;\n }\n const result = v.safeParse(\n schema,\n (dataset.value as any)[key],\n );\n if (!result.success) {\n addIssue();\n }\n continue datasetLoop;\n }\n if (defaultRest) {\n const result = v.safeParse(\n defaultRest,\n (dataset.value as any)[key],\n );\n if (!result.success) {\n addIssue();\n }\n }\n }\n }\n }),\n );\n }\n return createTypeFn(schemaDefine);\n }\n case 'array': {\n let parent: v.BaseSchema<any, any, any>;\n const fixedItems = schema.prefixItems;\n if (isBoolean(schema.contains) && !schema.contains) {\n actionList.push(createImpasseAction('contains', schema.contains));\n } else if (schema.contains && !isBoolean(schema.contains)) {\n const containsSchema = this.#jSchemaToVSchema(schema.contains!)!;\n const minContains = schema.minContains ?? 1;\n actionList.push(\n v.check((list) => {\n if (Array.isArray(list)) {\n const result = list.filter(\n (item) => v.safeParse(containsSchema, item).success,\n );\n if (result.length < minContains) {\n return false;\n }\n\n if (typeof schema.maxContains === 'number') {\n return result.length <= schema.maxContains;\n }\n\n return true;\n }\n return false;\n }),\n );\n }\n const jSchemaToVSchema = (schema: JsonSchemaDraft202012) => {\n const hasRef = this.#schemahasRef(schema);\n return hasRef\n ? v.lazy(() => this.#jSchemaToVSchema(schema!))\n : this.#jSchemaToVSchema(schema);\n };\n if (fixedItems && fixedItems.length) {\n const fixedList = fixedItems.map((item) => jSchemaToVSchema(item));\n if (schema.items) {\n const result = jSchemaToVSchema(schema.items);\n parent = v.tupleWithRest(fixedList, result!);\n } else if (schema.items === false) {\n parent = v.tuple(fixedList);\n } else {\n parent = v.looseTuple(fixedList);\n }\n } else if (isBoolean(schema.items)) {\n parent = schema.items ? v.array(v.any()) : v.tuple([]);\n } else if (schema.items) {\n const result = jSchemaToVSchema(schema.items);\n parent = v.array(result);\n } else {\n parent = v.array(v.any());\n }\n return createTypeFn(parent!);\n }\n default:\n throw new Error(`未知类型:${type}`);\n }\n }\n\n #resolveDefinition(schema: JSONSchemaRaw): JSONSchemaRaw {\n if (!schema.$ref) {\n return schema;\n }\n const [uri, pointer] = schema.$ref!.split('#/');\n if (uri) {\n throw Error(`Remote schemas for ${schema.$ref} not supported yet.`);\n }\n\n const definition = !pointer\n ? null\n : pointer\n .split('/')\n .reduce(\n (def, path) =>\n def?.hasOwnProperty(path) ? (def as any)[path] : null,\n this.root,\n );\n\n if (!definition) {\n throw Error(`Cannot find a definition for ${schema.$ref}.`);\n }\n\n if (definition.$ref) {\n return this.#resolveDefinition(definition);\n }\n\n return {\n ...definition,\n ...['title', 'description', 'default', 'actions'].reduce(\n (annotation, p) => {\n if (schema.hasOwnProperty(p)) {\n annotation[p] = (schema as any)[p];\n }\n\n return annotation;\n },\n {} as any,\n ),\n $ref: undefined,\n __resolved: {\n hasRef: true,\n },\n } as JSONSchemaNoRef;\n }\n\n /** todo 当前只能存在一个类型 */\n #guessSchemaType(\n schema: JsonSchemaDraft202012Object,\n ): ResolvedJsonSchema['__resolved']['type'] {\n let type = schema?.type;\n\n if (isString(type)) {\n return { types: [type], optional: false };\n }\n if (Array.isArray(type)) {\n if (type.length === 1) {\n return { types: type, optional: false };\n }\n const nullIndex = type.findIndex((item) => item === 'null');\n if (nullIndex !== -1) {\n type.splice(nullIndex, 1);\n }\n return {\n types: type,\n optional: nullIndex !== -1,\n };\n }\n if (\n schema.items ||\n schema.prefixItems ||\n isNumber(schema.minContains) ||\n isNumber(schema.maxContains) ||\n !isNil(schema.contains) ||\n isBoolean(schema.uniqueItems)\n ) {\n type = 'array';\n } else if (\n isNumber(schema.minimum) ||\n isNumber(schema.maximum) ||\n isNumber(schema.exclusiveMaximum) ||\n isNumber(schema.exclusiveMinimum) ||\n isNumber(schema.multipleOf)\n ) {\n type = 'number';\n } else if (\n isNumber(schema.minLength) ||\n isNumber(schema.maxLength) ||\n isString(schema.pattern)\n ) {\n type = 'string';\n }\n\n return type\n ? { types: [type], optional: false }\n : { types: anyType, optional: false };\n }\n #objectCompatible(schema: JsonSchemaDraft202012Object) {\n if ('dependencies' in schema && schema.dependencies) {\n const dependencies = schema.dependencies as Record<\n string,\n JsonSchemaDraft07\n >;\n const dependentRequiredData = {} as Record<string, string[]>;\n const dependentSchemasData = {} as Record<string, JsonSchemaDraft202012>;\n Object.keys(dependencies).forEach((prop) => {\n const dependency = dependencies![prop];\n if (Array.isArray(dependency)) {\n dependentRequiredData[prop] = dependency;\n } else {\n dependentSchemasData[prop] = dependency as any;\n }\n });\n schema.dependentRequired = dependentRequiredData;\n schema.dependentSchemas = dependentSchemasData;\n }\n }\n\n #arrayCompatible(schema: JsonSchemaDraft202012Object) {\n if (this.root.$schema !== Schema2012 || !isNil(schema.additionalItems)) {\n if (!isNil(schema.items) || !isNil(schema.additionalItems)) {\n // 2019-09\n schema.prefixItems = schema.items as\n | JsonSchemaDraft202012[]\n | undefined;\n schema.items = schema.additionalItems as\n | JsonSchemaDraft202012\n | undefined;\n }\n }\n return;\n }\n\n #mergeSchema(\n schema: JsonSchemaDraft202012Object,\n ...list: JsonSchemaDraft202012[]\n ) {\n let base = clone(schema);\n let baseKeyList = Object.keys(base);\n const actionList = this.#getValidationAction(base);\n for (let childSchema of list.filter(\n (item) => !isBoolean(item),\n ) as any as JsonSchemaDraft202012Object[]) {\n childSchema = this.#resolveSchema2(childSchema);\n actionList.push(...this.#getValidationAction(childSchema));\n baseKeyList = union(baseKeyList, Object.keys(childSchema));\n for (const key of baseKeyList) {\n switch (key) {\n case 'const': {\n childSchema[key] ??= base[key];\n break;\n }\n case 'type':\n case 'enum': {\n // 类型\n const typeResult = arrayIntersection(base[key], childSchema[key]);\n if (typeResult.action) {\n actionList.push(typeResult.action);\n }\n if (!isUndefined(typeResult.value)) {\n childSchema[key] = typeResult.value;\n }\n break;\n }\n\n case 'additionalProperties': {\n // todo 此属性false在当前使用,子级会验证失败,\n // 附加属性\n childSchema.additionalProperties ??= base.additionalProperties;\n\n break;\n }\n case 'contains': {\n if (childSchema[key] === false || base[key] === false) {\n actionList.push(v.check(() => false));\n break;\n } else if (childSchema[key] === true) {\n childSchema[key] = base[key];\n break;\n } else if (base[key] === true) {\n break;\n }\n if (!isUndefined((childSchema as any)[key])) {\n (childSchema as any)[key] = {\n ...(base as any)[key],\n ...(childSchema as any)[key],\n };\n } else {\n (childSchema as any)[key] = (base as any)[key];\n }\n break;\n }\n case 'if':\n case 'then':\n case 'else':\n case 'patternProperties':\n case 'dependentSchemas':\n case 'propertyNames':\n case 'properties': {\n // 属性赋值\n if (!isUndefined((childSchema as any)[key])) {\n (childSchema as any)[key] = {\n ...(base as any)[key],\n ...(childSchema as any)[key],\n };\n } else {\n (childSchema as any)[key] = (base as any)[key];\n }\n break;\n }\n\n default:\n (childSchema as any)[key] ??= (base as any)[key];\n break;\n }\n }\n\n base = childSchema as any;\n }\n return { schema: this.#jsonSchemaCompatiable(base), actionList };\n }\n #resolveSchema2(schema: JsonSchemaDraft202012Object) {\n return this.#jsonSchemaCompatiable(this.#resolveDefinition(schema));\n }\n #schemahasRef(schema: JsonSchemaDraft202012) {\n if (isBoolean(schema)) {\n return false;\n } else {\n const result = this.#resolveSchema2(schema);\n return result.__resolved.hasRef;\n }\n }\n #parseEnum(schema: JsonSchemaDraft202012Object):\n | {\n type: string;\n data: JsonSchemaDraft202012Object;\n }\n | undefined {\n // 普通枚举\n if (schema.enum) {\n return {\n type: 'enum',\n data: {\n enum: schema.enum,\n },\n };\n } else if (schema.const) {\n return { type: 'const', data: { const: schema.const } };\n } else if (schema.items && !isBoolean(schema.items)) {\n const result = this.#parseEnum(schema.items);\n if (result?.data) {\n return {\n type: 'multiselect',\n data: {\n items: result.data,\n },\n };\n }\n return undefined;\n }\n return undefined;\n }\n #intersectSchemaType(\n a: JsonSchemaDraft202012Object | undefined,\n b: JsonSchemaDraft202012Object,\n ) {\n const parent = a ? this.#resolveSchema2(a) : undefined;\n b = parent ? this.#mergeSchema(parent, b).schema : b;\n const child = this.#resolveSchema2(b);\n const parentEnum = parent ? this.#parseEnum(parent) : undefined;\n const childEnum = this.#parseEnum(child);\n if (parentEnum?.data.items && childEnum?.data.items) {\n const result = intersection(\n (parentEnum.data.items! as JsonSchemaDraft202012Object).enum!,\n (childEnum.data.items! as JsonSchemaDraft202012Object).enum!,\n );\n if (result.length) {\n return {\n type: 'multiselect',\n data: {\n items: {\n enum: result,\n },\n } as JsonSchemaDraft202012Object,\n };\n }\n } else if (childEnum?.type === 'multiselect') {\n return childEnum;\n }\n\n // 枚举\n if (parentEnum?.data.enum && childEnum?.data.enum) {\n const result = intersection(parentEnum.data.enum, childEnum.data.enum);\n if (result.length) {\n return {\n type: 'enum',\n data: { enum: result } as JsonSchemaDraft202012Object,\n };\n }\n } else if (childEnum?.data.enum) {\n return childEnum;\n }\n // 常量\n if (isNil(parentEnum?.data.const) && !isNil(childEnum?.data.const)) {\n return childEnum;\n }\n // 类型\n const typeResult = parent?.__resolved.type.types\n ? intersection(parent.__resolved.type.types, child.__resolved.type.types)\n : child.__resolved.type.types;\n if (typeResult.length) {\n delete (child as any)['resolved'];\n const result = this.#jsonSchemaCompatiable({\n ...child,\n type: typeResult[0],\n });\n return {\n type: typeResult[0],\n data: result,\n };\n }\n return;\n }\n #schemaExtract(\n schema: ResolvedJsonSchema,\n ...childList: ResolvedJsonSchema[]\n ) {\n /** 所有子属性key */\n const childKeyList = uniq(\n childList.flatMap((item) => Object.keys(item.properties ?? {})),\n );\n if (!childKeyList.length) {\n // 无效返回\n return;\n }\n const conditionJSchema = {\n properties: {},\n additionalProperties: false,\n } as JsonSchemaDraft202012Object;\n const childConditionJSchemaList = childList.map(\n () => ({ properties: {} }) as JsonSchemaDraft202012Object,\n );\n const conditionKeyList = [];\n for (const key of childKeyList) {\n const parentItem = schema.properties?.[key] as any;\n //如果父级不存在这个属性,并且禁止添加,跳过\n // todo 还应该增加额外的匹配\n if (!parentItem && schema.additionalProperties === false) {\n continue;\n }\n // 所有子级都存在某个Key\n const keyExist = childList.every((item) => {\n const propItem = item.properties?.[key];\n // todo 对象应该先解析\n return propItem && !isBoolean(propItem) && propItem.type !== 'object';\n });\n if (!keyExist) {\n continue;\n }\n\n let currentType = undefined;\n const childPropList: JsonSchemaDraft202012Object[] = [];\n for (const sub of childList) {\n const result = this.#intersectSchemaType(\n schema?.properties?.[key] as any,\n sub.properties![key] as any,\n );\n if (!result) {\n currentType = undefined;\n break;\n } else if (\n currentType === undefined ||\n deepEqual(currentType, result.type)\n ) {\n currentType = result.type;\n // 枚举\n if (\n result.data!.enum ||\n 'const' in result.data! ||\n result.type === 'multiselect'\n ) {\n childPropList.push(result.data!);\n } else {\n childPropList.push(result.data as any);\n }\n } else {\n break;\n }\n }\n\n if (currentType) {\n conditionKeyList.push(key);\n for (let index = 0; index < childConditionJSchemaList.length; index++) {\n const schema = childConditionJSchemaList[index];\n schema.properties![key] = childPropList[index];\n }\n if (currentType === 'enum') {\n conditionJSchema.properties![key] = {\n enum: childPropList.flatMap((item) => item.enum!),\n };\n } else if (currentType === 'const') {\n conditionJSchema.properties![key] = {\n enum: childPropList.flatMap((item) => item.const!),\n };\n } else if (currentType === 'multiselect') {\n conditionJSchema.properties![key] = {\n type: 'array',\n items: {\n enum: childPropList.flatMap(\n (item) => (item.items as JsonSchemaDraft202012Object)!.enum!,\n ),\n },\n uniqueItems: true,\n };\n } else {\n conditionJSchema.properties![key] = {\n type: currentType as any,\n };\n }\n }\n }\n return { conditionJSchema, childConditionJSchemaList, conditionKeyList };\n }\n\n #conditionCreate(\n schema: ResolvedJsonSchema,\n options: {\n getChildren: () => JsonSchemaDraft202012[];\n conditionSchemaFn: (\n baseSchema: ResolvedSchema,\n conditionVSchema: ResolvedSchema,\n childSchemaList: ResolvedSchema[],\n ) => ResolvedSchema;\n conditionCheckActionFn: (\n childOriginSchemaList: ResolvedSchema[],\n getActivateList: () => boolean[],\n ) => v.BaseValidation<any, any, any>;\n useOr: boolean;\n },\n ) {\n const resolvedChildList = options\n .getChildren()!\n .map((item) => this.#mergeSchema(schema, item));\n const resolvedChildJSchemaList = resolvedChildList.map(\n (item) => item.schema,\n );\n const isObject = [schema, ...resolvedChildJSchemaList].every((item) =>\n item.__resolved.type.types.includes('object'),\n );\n /** 通用子级验证部分,不显示 */\n const childOriginSchemaList = resolvedChildList.map((item) =>\n v.pipe(this.#jsonSchemaBase(item.schema, () => item.actionList)),\n );\n let activateList: boolean[] = [];\n\n const conditionCheckAction = options.conditionCheckActionFn(\n childOriginSchemaList,\n () => activateList,\n );\n // 仅处理object,实现条件显示\n if (isObject) {\n const conditionResult = this.#schemaExtract(\n schema,\n ...resolvedChildJSchemaList,\n );\n\n if (conditionResult) {\n /** 子级的共同部分验证,用于检测是哪个子级,不显示 */\n const childConditionVSchemaList =\n conditionResult.childConditionJSchemaList.map((schema) => {\n const rSchema = this.#jsonSchemaCompatiable(schema);\n return v.pipe(\n this.#jsonSchemaBase(rSchema, () =>\n this.#getValidationAction(rSchema),\n ),\n );\n });\n /** 主条件部分,用于显示切换 */\n const conditionVSchema = v.pipe(\n this.#jsonSchemaBase(\n this.#jsonSchemaCompatiable(conditionResult.conditionJSchema),\n () => [],\n ),\n jsonActions.valueChange((fn) => {\n fn().subscribe(({ list: [value], field }) => {\n activateList.length = 0;\n const conditionParent = field.get(['..', 2])!.form\n .control as any as jsonActions.FieldLogicGroup;\n const parentAList = [];\n\n for (\n let index = 0;\n index < childConditionVSchemaList.length;\n index++\n ) {\n const schema = childConditionVSchemaList[index];\n const result = v.safeParse(schema, value);\n activateList.push(result.success);\n\n field.get(['..', 2, index])?.renderConfig.update((data) => ({\n ...data,\n hidden: !result.success,\n }));\n if (result.success) {\n parentAList.push(conditionParent!.children$$!()[index]);\n }\n }\n if (!options.useOr) {\n conditionParent.activateControls$.set(parentAList);\n }\n });\n }),\n );\n conditionResult.conditionKeyList.forEach((key) => {\n resolvedChildJSchemaList.forEach((item) => {\n delete item.properties![key];\n });\n delete schema.properties?.[key];\n });\n\n const baseSchema = v.pipe(\n this.#jsonSchemaBase(schema, () => this.#getValidationAction(schema)),\n );\n const childVSchemaList = resolvedChildJSchemaList.map((item) =>\n // 验证部分被单独提取出来\n v.pipe(this.#jsonSchemaBase(item, () => [])),\n );\n return v.pipe(\n options.conditionSchemaFn(\n baseSchema,\n conditionVSchema,\n childVSchemaList,\n ),\n conditionCheckAction,\n );\n }\n }\n const baseSchema = v.pipe(\n this.#jsonSchemaBase(schema, () => this.#getValidationAction(schema)),\n );\n activateList = childOriginSchemaList.map((_, i) => true);\n return v.pipe(baseSchema, conditionCheckAction);\n }\n\n #getValidationAction(schema: JSONSchemaRaw) {\n const action = [];\n\n // string/array\n if (isNumber(schema.minLength) || isNumber(schema.minItems)) {\n action.push(v.minLength(schema.minLength ?? schema.minItems!));\n }\n // string/array\n if (isNumber(schema.maxLength) || isNumber(schema.maxItems)) {\n action.push(v.maxLength(schema.maxLength ?? schema.maxItems!));\n }\n\n // string\n if (isString(schema.pattern)) {\n action.push(v.regex(new RegExp(schema.pattern)));\n }\n // todo format https://json-schema.org/understanding-json-schema/reference/type#built-in-formats\n // duration idn-email idn-hostname uri-reference iri iri-reference uri-template json-pointer regex\n if (schema.format) {\n switch (schema.format) {\n // case 'date-time': {\n // action.push(v.isoDateTime());\n // break;\n // }\n // case 'time': {\n // action.push(v.isoTime());\n // break;\n // }\n case 'date': {\n action.push(v.isoDate());\n break;\n }\n case 'email': {\n action.push(v.email());\n break;\n }\n case 'ipv4': {\n action.push(v.ipv4());\n break;\n }\n case 'ipv6': {\n action.push(v.ipv6());\n break;\n }\n case 'uuid': {\n action.push(v.uuid());\n break;\n }\n case 'uri': {\n action.push(v.url());\n break;\n }\n\n default:\n break;\n }\n }\n\n // number\n if (isNumber(schema.exclusiveMinimum)) {\n action.push(v.gtValue(schema.exclusiveMinimum!));\n }\n if (isNumber(schema.exclusiveMaximum)) {\n action.push(v.ltValue(schema.exclusiveMaximum));\n }\n if (isNumber(schema.minimum)) {\n action.push(v.minValue(schema.minimum));\n }\n if (isNumber(schema.maximum)) {\n action.push(v.maxValue(schema.maximum));\n }\n\n // number\n if (isNumber(schema.multipleOf)) {\n action.push(v.multipleOf(schema.multipleOf));\n }\n\n // array\n if (schema.uniqueItems) {\n action.push(\n v.check((input: any[]) => uniq(input).length === input.length),\n );\n }\n // object\n if (isNumber(schema.maxProperties)) {\n action.push(v.maxEntries(schema.maxProperties));\n }\n // object\n if (isNumber(schema.minProperties)) {\n action.push(v.minEntries(schema.minProperties));\n }\n if (schema.actions) {\n for (const rawAction of schema.actions!) {\n const inlineActions =\n (jsonActions as any)[rawAction.name] ??\n this.#options?.customActions?.[rawAction.name];\n if (!inlineActions) {\n throw new Error(`action:[${rawAction.name}]❗`);\n }\n action.push(inlineActions.apply(undefined, rawAction.params));\n }\n }\n\n return action;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["schema","cSchema"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"piying-view-angular-core-adapter.mjs","sources":["../../../projects/view-angular-core/adapter/json-schema/json-schema.service.ts","../../../projects/view-angular-core/adapter/piying-view-angular-core-adapter.ts"],"sourcesContent":["import { map, switchMap } from 'rxjs/operators';\nimport rfdc from 'rfdc';\nimport * as v from 'valibot';\nimport { formConfig, hideWhen } from '@piying/view-angular-core';\nimport * as jsonActions from '@piying/view-angular-core';\nimport {\n intersection,\n isBoolean,\n isNil,\n isString,\n isUndefined,\n union,\n uniq,\n} from 'es-toolkit';\nimport { BehaviorSubject } from 'rxjs';\nimport { schema as cSchema } from '@piying/valibot-visit';\nimport type {\n JsonSchemaDraft202012,\n JsonSchemaDraft202012Object,\n} from '@hyperjump/json-schema/draft-2020-12';\nimport type { JsonSchemaDraft07 } from '@hyperjump/json-schema/draft-07';\nimport { deepEqual } from 'fast-equals';\nexport type JSType = NonNullable<\n Exclude<JsonSchemaDraft202012Object['type'], any[]>\n>;\ntype BaseAction = v.BaseMetadata<any> | v.BaseValidation<any, any, any>;\nfunction createImpasseAction(key: string, value?: any) {\n return v.rawCheck(({ dataset, addIssue }) => {\n if (dataset.issues) {\n return;\n }\n addIssue({\n label: `impasse:${key}`,\n expected: '[no validation conflict]',\n received: value,\n });\n });\n}\nfunction isNumber(value?: any): value is number {\n return typeof value === 'number';\n}\nconst anyType = [\n 'object',\n 'array',\n 'string',\n 'number',\n 'boolean',\n 'null',\n 'integer',\n] as Extract<JsonSchemaDraft202012Object['type'], any[]>;\n\n// todo 先按照类型不可变设计,之后修改代码支持组件变更\nconst clone = rfdc({ proto: false, circles: false });\ntype ResolvedSchema =\n | v.BaseSchema<any, any, any>\n | v.SchemaWithPipe<\n // @ts-ignore // TODO: Remove comment\n readonly [\n v.BaseSchema<any, any, any>,\n ...(\n | v.BaseSchema<any, any, any>\n | v.PipeAction<any, any, v.BaseIssue<unknown>>\n )[],\n ]\n >;\n\nfunction getMetadataAction(schema: JSONSchemaRaw) {\n const action = [];\n if (isString(schema.title)) {\n action.push(v.title(schema.title));\n }\n if (isString(schema.description)) {\n action.push(v.description(schema.description));\n }\n return action;\n}\n\ninterface JSONSchemaRaw extends JsonSchemaDraft202012Object {\n actions?: { name: string; params: any[] }[];\n}\ninterface JSONSchemaNoRef extends JSONSchemaRaw {\n __resolved: {\n hasRef: boolean;\n };\n}\ntype ResolvedJsonSchema = JSONSchemaNoRef & {\n __resolved: {\n type: {\n types: Extract<JsonSchemaDraft202012Object['type'], any[]>;\n optional: boolean;\n };\n isResolved: boolean;\n };\n};\nfunction arrayIntersection(a: any, b: any) {\n if (!isNil(a) && !isNil(b)) {\n a = Array.isArray(a) ? a : [a];\n b = Array.isArray(b) ? b : [b];\n if (a.length && b.length) {\n const result = intersection(a, b);\n if (result.length === 0) {\n return {\n action: createImpasseAction('applicator'),\n value: undefined,\n };\n } else {\n return { value: result };\n }\n }\n return {\n value: a.length ? a : b,\n };\n }\n return { value: a ?? b };\n}\n/** 合并schema\n * 子级需要解析\n */\nexport interface TypeHandle {\n afterResolve: (\n type: string,\n jSchema: any,\n vSchema: ResolvedSchema,\n ) => ResolvedSchema | undefined;\n}\ninterface J2VOptions {\n customActions?: Record<\n string,\n (...args: any[]) => v.BaseMetadata<any> | v.BaseValidation<any, any, any>\n >;\n schemaHandle?: {\n type?: TypeHandle;\n afterResolve?: (\n jSchema: ResolvedJsonSchema,\n vSchema: ResolvedSchema,\n ) => ResolvedSchema | undefined;\n };\n}\n// 应该传入定制\n\nexport function jsonSchemaToValibot(\n schema: Record<string, any>,\n options?: J2VOptions,\n) {\n return new JsonSchemaToValibot(schema, options).convert() as ResolvedSchema;\n}\nconst Schema2012 = 'https://json-schema.org/draft/2020-12/schema';\nexport class JsonSchemaToValibot {\n root;\n #options;\n private cacheSchema = new WeakMap();\n constructor(root: JSONSchemaRaw, options?: J2VOptions) {\n this.root = root;\n this.#options = options;\n root.$schema ??= Schema2012;\n }\n convert() {\n return this.#jSchemaToVSchema(clone(this.root));\n }\n\n #applicatorParse(schema: ResolvedJsonSchema) {\n let vSchema;\n if (schema.allOf) {\n const result = this.#mergeSchema(schema, ...schema.allOf);\n vSchema = v.pipe(\n this.#jsonSchemaBase(result.schema, () => result.actionList)!,\n );\n } else if (schema.anyOf) {\n vSchema = this.#conditionCreate(schema, {\n useOr: false,\n getChildren: () => schema.anyOf!,\n conditionCheckActionFn(childOriginSchemaList, getActivateList) {\n return v.rawCheck(({ dataset, addIssue }) => {\n if (dataset.issues) {\n return;\n }\n let childFailedResult:\n | { index: number; issues?: any[] }\n | undefined;\n // 验证项全为可选,所以需要这里再次验证\n const hasSuccess = childOriginSchemaList.some((item, index) => {\n const isActive = getActivateList()[index];\n if (!isActive) {\n childFailedResult ??= { index: index };\n return false;\n }\n const result = v.safeParse(item, dataset.value);\n if (!result.success) {\n childFailedResult = { index: index, issues: result.issues };\n }\n return result.success;\n });\n if (!hasSuccess) {\n const extMessage =\n childFailedResult?.issues\n ?.map((item) => item.message)\n .join(',') ?? '';\n addIssue({\n label: `anyOf:${childFailedResult?.index ?? ''}:${extMessage}`,\n });\n }\n });\n },\n conditionSchemaFn(baseSchema, conditionVSchema, childSchemaList) {\n return v.pipe(\n v.intersect([\n conditionVSchema,\n baseSchema,\n cSchema.intersect(\n childSchemaList.map((item) =>\n v.pipe(\n v.optional(item),\n jsonActions.renderConfig({ hidden: true }),\n ),\n ),\n ),\n ]),\n jsonActions.setComponent('anyOf-condition'),\n );\n },\n });\n } else if (schema.oneOf) {\n vSchema = this.#conditionCreate(schema, {\n useOr: true,\n getChildren() {\n return schema.oneOf!;\n },\n conditionCheckActionFn(childOriginSchemaList, getActivateList) {\n return v.rawCheck(({ dataset, addIssue }) => {\n if (dataset.issues) {\n return;\n }\n // 验证项全为可选,所以需要这里再次验证\n const hasSuccess = childOriginSchemaList.filter((item, index) => {\n const isActive = getActivateList()[index];\n if (!isActive) {\n return false;\n }\n const result = v.safeParse(item, dataset.value);\n return result.success;\n });\n if (hasSuccess.length !== 1) {\n addIssue({\n label: `oneOf`,\n expected: '1',\n received: `${hasSuccess.length}`,\n });\n }\n });\n },\n conditionSchemaFn(baseSchema, conditionVSchema, childSchemaList) {\n return v.pipe(\n cSchema.intersect([\n conditionVSchema,\n baseSchema,\n v.union(\n childSchemaList.map((item) =>\n v.pipe(item, jsonActions.renderConfig({ hidden: true })),\n ),\n ),\n ]),\n jsonActions.setComponent('oneOf-condition'),\n );\n },\n });\n } else if ('if' in schema) {\n /**\n * 当前设计中if/then/else是采用的分离显示\n * 也就是then/else都会合并base,然后按条件展示,\n */\n\n const useThen$ = new BehaviorSubject<boolean | undefined>(undefined);\n const baseSchema = v.pipe(\n this.#jsonSchemaBase(schema, () => [\n ...this.#getValidationAction(schema),\n hideWhen({\n disabled: false,\n listen: (fn) =>\n fn({}).pipe(\n map(({ list: [value], field }) => {\n const isThen = isBoolean(schema.if)\n ? schema.if\n : v.safeParse(ifVSchema, value).success;\n (\n field.form.parent as jsonActions.FieldLogicGroup\n ).activateIndex$.set(isThen ? 1 : 2);\n useThen$.next(isThen);\n return !((isThen && !thenSchema) || (!isThen && !elseSchema));\n }),\n ),\n }),\n ]),\n );\n /** 仅为验证项,非显示用 */\n let ifVSchema: ResolvedSchema;\n if (isBoolean(schema.if)) {\n ifVSchema = v.literal(schema.if);\n } else {\n const ifSchema = this.#mergeSchema(schema, schema.if!);\n ifVSchema = v.pipe(\n this.#jsonSchemaBase(ifSchema.schema, () => ifSchema.actionList)!,\n );\n }\n function hideAction(isThen: boolean) {\n return [\n jsonActions.renderConfig({ hidden: true }),\n hideWhen({\n disabled: true,\n listen(fn) {\n return fn({ list: [['..', 0]] }).pipe(\n switchMap(({ list: [] }) => useThen$),\n map((a) => (a === undefined ? true : isThen ? !a : a)),\n );\n },\n }),\n ];\n }\n let thenSchema: ResolvedSchema | undefined;\n if (schema.then && !isBoolean(schema.then)) {\n const subSchema = this.#mergeSchema(schema, schema.then!);\n thenSchema = v.pipe(\n this.#jsonSchemaBase(subSchema.schema, () => [\n ...subSchema.actionList,\n ...hideAction(true),\n ]),\n );\n }\n\n let elseSchema: ResolvedSchema | undefined;\n if (schema.else && !isBoolean(schema.else)) {\n const subSchema = this.#mergeSchema(schema, schema.else);\n elseSchema = v.pipe(\n this.#jsonSchemaBase(subSchema.schema, () => [\n ...subSchema.actionList,\n ...hideAction(false),\n ]),\n );\n }\n\n // 这种逻辑没问题,因为jsonschema验证中,也会出现base和子级架构一起验证\n vSchema = v.pipe(\n v.union(\n [\n baseSchema,\n thenSchema ?? baseSchema,\n elseSchema ?? baseSchema,\n ].filter(Boolean),\n ),\n formConfig({ disableOrUpdateActivate: true }),\n v.rawCheck(({ dataset, addIssue }) => {\n if (dataset.issues) {\n return;\n }\n const status = useThen$.value;\n if (status && thenSchema) {\n const result = v.safeParse(thenSchema, dataset.value);\n if (!result.success) {\n addIssue();\n return;\n }\n }\n if (!status && elseSchema) {\n const result = v.safeParse(elseSchema, dataset.value);\n if (!result.success) {\n addIssue();\n return;\n }\n }\n }),\n );\n } else {\n vSchema = v.pipe(\n // 通用部分\n this.#jsonSchemaBase(this.#jsonSchemaCompatiable(schema), () =>\n this.#getValidationAction(schema),\n ),\n );\n }\n return (\n this.#options?.schemaHandle?.afterResolve?.(schema, vSchema) ?? vSchema\n );\n }\n #applicatorNot(schema: ResolvedJsonSchema) {\n const actionList = [];\n if (isBoolean(schema.not)) {\n if (schema.not) {\n actionList.push(createImpasseAction('not', schema.not));\n }\n } else if (schema.not) {\n const vSchema = this.#jSchemaToVSchema(schema.not);\n actionList.push(\n v.rawCheck(({ dataset, addIssue }) => {\n if (dataset.issues) {\n return;\n }\n const result = v.safeParse(vSchema, dataset.value);\n if (result.success) {\n addIssue({ label: `applicator:not` });\n }\n }),\n );\n }\n return actionList;\n }\n #jSchemaToVSchema(input: JsonSchemaDraft202012): ResolvedSchema {\n if (isBoolean(input)) {\n return input\n ? v.pipe(v.any(), jsonActions.setComponent('always-true'))\n : v.pipe(\n v.any(),\n v.check((value) => isUndefined(value)),\n );\n }\n if (this.cacheSchema.has(input)) {\n return this.cacheSchema.get(input);\n }\n const schema = this.#resolveSchema2(input);\n\n const actionList = this.#applicatorNot(schema);\n const result = actionList.length\n ? v.pipe(this.#applicatorParse(schema), ...actionList)\n : this.#applicatorParse(schema);\n this.cacheSchema.set(input, result);\n return result;\n }\n\n #jsonSchemaCompatiable(schema: JsonSchemaDraft202012Object) {\n if ('__resolved' in schema && (schema.__resolved as any).isResolved) {\n return schema as any as ResolvedJsonSchema;\n }\n const resolved = schema as any as ResolvedJsonSchema;\n const type = this.#guessSchemaType(resolved);\n resolved.__resolved = { ...resolved.__resolved, type, isResolved: true };\n if (type.types.includes('object')) {\n this.#objectCompatible(resolved);\n }\n if (type.types.includes('array')) {\n this.#arrayCompatible(resolved);\n }\n if (type.types.includes('number') || type.types.includes('integer')) {\n if ((resolved.exclusiveMaximum as any) === true) {\n resolved.exclusiveMaximum = resolved.maximum;\n delete resolved.maximum;\n }\n if ((resolved.exclusiveMinimum as any) === true) {\n resolved.exclusiveMinimum = resolved.minimum;\n delete resolved.minimum;\n }\n }\n return resolved;\n }\n\n #jsonSchemaBase(\n schema: ResolvedJsonSchema,\n getValidationActionList: () => BaseAction[],\n ) {\n const types = schema.__resolved.type;\n // 暂时为只支持一个\n const type = types.types[0];\n const actionList: any[] = getMetadataAction(schema);\n\n const createTypeFn = <T extends v.BaseSchema<any, any, any>>(input: T) => {\n const result = v.pipe(input, ...actionList, ...getValidationActionList());\n const result2 = types.optional\n ? v.optional(result, schema.default)\n : result;\n return (\n this.#options?.schemaHandle?.type?.afterResolve(\n type,\n result2,\n result,\n ) ?? result2\n );\n };\n if (!isNil(schema.const)) {\n return createTypeFn(v.literal(schema.const! as any));\n }\n if (Array.isArray(schema.enum)) {\n return createTypeFn(v.picklist(schema.enum as any));\n }\n switch (type) {\n case 'number': {\n return createTypeFn(v.number());\n }\n case 'integer': {\n actionList.push(v.integer());\n return createTypeFn(v.number());\n }\n case 'boolean': {\n return createTypeFn(v.boolean());\n }\n case 'string': {\n return createTypeFn(v.string());\n }\n case 'null': {\n return createTypeFn(v.optional(v.null(), null));\n }\n case 'object': {\n const childObject: Record<string, ResolvedSchema> = {};\n /** 附加 */\n let defaultRest: ResolvedSchema | undefined;\n\n let mode = 'default';\n\n if (schema.dependentRequired) {\n actionList.push(\n v.rawCheck(({ dataset, addIssue }) => {\n if (dataset.issues) {\n return;\n }\n Object.keys(schema.dependentRequired!).forEach((key) => {\n if ((dataset.value as any)?.[key] !== undefined) {\n for (const reqKey of schema.dependentRequired![key]) {\n if ((dataset.value as any)[reqKey] === undefined) {\n addIssue({\n label: `dependentRequired:${key}=>${reqKey}`,\n expected: '[required]',\n received: 'undefined',\n });\n }\n }\n }\n });\n }),\n );\n }\n // 普通属性\n if (schema.properties) {\n for (const key in schema.properties) {\n const propJSchema = schema.properties[key];\n let propData;\n if (isBoolean(propJSchema)) {\n propData = { optional: false, hasRef: false };\n } else {\n const rSchema = this.#resolveSchema2(propJSchema);\n propData = {\n optional: rSchema.__resolved.type.optional,\n hasRef: rSchema.__resolved.hasRef,\n };\n }\n\n const isRequired = !!schema.required?.includes(key);\n const wrapperOptional = !isRequired && !propData.optional;\n const createRef = () => {\n let propVSchema = this.#jSchemaToVSchema(propJSchema);\n const depList = schema.dependentRequired?.[key];\n if (depList) {\n propVSchema = v.pipe(\n propVSchema,\n jsonActions.patchHooks({\n allFieldsResolved: (field) => {\n field.form.control!.statusChanges.subscribe(() => {\n const valid = field.form.control!.valid;\n depList.map((item) => {\n field.form.parent\n .get(item)\n ?.config$.update((config) => ({\n ...config,\n required: valid,\n }));\n });\n });\n },\n }),\n );\n }\n return propVSchema;\n };\n childObject[key] = propData.hasRef\n ? wrapperOptional\n ? v.optional(v.lazy(() => createRef()))\n : v.lazy(() => createRef())\n : wrapperOptional\n ? v.optional(createRef())\n : createRef();\n }\n }\n // 附加属性规则\n if (isBoolean(schema.additionalProperties)) {\n mode = schema.additionalProperties === false ? 'strict' : mode;\n } else if (schema.additionalProperties) {\n mode = 'rest';\n // rest要符合的规则\n defaultRest = this.#jSchemaToVSchema(schema.additionalProperties!);\n }\n const patternRestList = [] as {\n regexp: RegExp;\n schema: ResolvedSchema;\n }[];\n if (schema.patternProperties) {\n for (const key in schema.patternProperties) {\n const item = this.#jSchemaToVSchema(schema.patternProperties[key]);\n if (!item) {\n throw new Error(`patternProperties->${key}: 定义未找到`);\n }\n patternRestList.push({\n regexp: new RegExp(key),\n schema: item,\n });\n }\n }\n /** 条件显示 */\n const conditionList = [];\n if (schema.dependentSchemas) {\n const depSchemaMap = {} as Record<string, ResolvedSchema>;\n for (const key in schema.dependentSchemas) {\n const jSchema = schema.dependentSchemas[key];\n let vSchema = this.#jSchemaToVSchema(jSchema);\n if (!vSchema) {\n throw new Error(`依赖->${key}: 定义未找到`);\n }\n depSchemaMap[key] = vSchema;\n\n vSchema = v.pipe(\n vSchema,\n hideWhen({\n disabled: true,\n listen: (fn, field) =>\n field\n .get(['..', '..', 0, key])!\n .form.control!.statusChanges.pipe(\n map((item) => item === 'VALID'),\n ),\n }),\n );\n conditionList.push(vSchema);\n }\n actionList.push(\n v.rawCheck(({ dataset, addIssue }) => {\n if (dataset.issues) {\n return;\n }\n Object.keys(schema.dependentSchemas!).forEach((key) => {\n if ((dataset.value as any)?.[key] !== undefined) {\n const result = v.safeParse(depSchemaMap[key], dataset.value);\n if (!result.success) {\n for (const item of result.issues) {\n addIssue({\n ...item,\n });\n }\n }\n }\n });\n }),\n );\n }\n if (isBoolean(schema.propertyNames) && !schema.propertyNames) {\n actionList.push(v.check(() => false));\n } else if (schema.propertyNames) {\n const propNameSchema = this.#jSchemaToVSchema(schema.propertyNames)!;\n actionList.push(\n v.rawCheck(({ dataset, addIssue }) => {\n if (dataset.issues) {\n return;\n }\n if (dataset.value && typeof dataset.value === 'object') {\n for (const key of Object.keys(dataset.value)) {\n const result = v.safeParse(propNameSchema, key);\n if (!result.success) {\n addIssue({\n label: `propertyNames:${key}`,\n expected: `[match]`,\n received: key,\n });\n }\n }\n }\n }),\n );\n }\n let schemaDefine;\n if (!Object.keys(childObject).length) {\n types.optional = true;\n }\n if (mode === 'default') {\n if (conditionList.length) {\n schemaDefine = v.pipe(\n cSchema.intersect([\n v.looseObject(childObject),\n v.optional(v.intersect(conditionList)),\n ]),\n );\n } else {\n schemaDefine = v.pipe(v.looseObject(childObject));\n }\n } else if (mode === 'strict') {\n if (conditionList.length) {\n schemaDefine = v.pipe(\n cSchema.intersect([\n v.object(childObject),\n v.optional(v.intersect(conditionList)),\n ]),\n );\n } else {\n schemaDefine = v.pipe(v.object(childObject));\n }\n } else {\n // rest\n let restDefine = v.any() as NonNullable<ResolvedSchema>;\n //propCheck patternMapRest addonRest\n if (defaultRest && !patternRestList.length) {\n restDefine = defaultRest;\n } else {\n restDefine = v.any();\n }\n\n if (conditionList.length) {\n schemaDefine = v.intersect([\n v.objectWithRest(childObject, restDefine),\n v.optional(v.intersect(conditionList)),\n ]);\n } else {\n schemaDefine = v.pipe(v.objectWithRest(childObject, restDefine));\n }\n }\n if (schema.patternProperties && schema.additionalProperties) {\n actionList.push(\n v.rawCheck(({ dataset, addIssue }) => {\n if (dataset.issues || dataset.value === undefined) {\n return;\n }\n\n if (typeof dataset.value === 'object') {\n datasetLoop: for (const key in dataset.value) {\n if (key in childObject) {\n continue;\n }\n for (const { regexp, schema } of patternRestList) {\n const isMatch = regexp.test(key);\n if (!isMatch) {\n continue;\n }\n const result = v.safeParse(\n schema,\n (dataset.value as any)[key],\n );\n if (!result.success) {\n addIssue();\n }\n continue datasetLoop;\n }\n if (defaultRest) {\n const result = v.safeParse(\n defaultRest,\n (dataset.value as any)[key],\n );\n if (!result.success) {\n addIssue();\n }\n }\n }\n }\n }),\n );\n }\n return createTypeFn(schemaDefine);\n }\n case 'array': {\n let parent: v.BaseSchema<any, any, any>;\n const fixedItems = schema.prefixItems;\n if (isBoolean(schema.contains) && !schema.contains) {\n actionList.push(createImpasseAction('contains', schema.contains));\n } else if (schema.contains && !isBoolean(schema.contains)) {\n const containsSchema = this.#jSchemaToVSchema(schema.contains!)!;\n const minContains = schema.minContains ?? 1;\n actionList.push(\n v.check((list) => {\n if (Array.isArray(list)) {\n const result = list.filter(\n (item) => v.safeParse(containsSchema, item).success,\n );\n if (result.length < minContains) {\n return false;\n }\n\n if (typeof schema.maxContains === 'number') {\n return result.length <= schema.maxContains;\n }\n\n return true;\n }\n return false;\n }),\n );\n }\n const jSchemaToVSchema = (schema: JsonSchemaDraft202012) => {\n const hasRef = this.#schemahasRef(schema);\n return hasRef\n ? v.lazy(() => this.#jSchemaToVSchema(schema!))\n : this.#jSchemaToVSchema(schema);\n };\n if (fixedItems && fixedItems.length) {\n const fixedList = fixedItems.map((item) => jSchemaToVSchema(item));\n if (schema.items) {\n const result = jSchemaToVSchema(schema.items);\n parent = v.tupleWithRest(fixedList, result!);\n } else if (schema.items === false) {\n parent = v.tuple(fixedList);\n } else {\n parent = v.looseTuple(fixedList);\n }\n } else if (isBoolean(schema.items)) {\n parent = schema.items ? v.array(v.any()) : v.tuple([]);\n } else if (schema.items) {\n const result = jSchemaToVSchema(schema.items);\n parent = v.array(result);\n } else {\n parent = v.array(v.any());\n }\n return createTypeFn(parent!);\n }\n default:\n throw new Error(`未知类型:${type}`);\n }\n }\n\n #resolveDefinition(schema: JSONSchemaRaw): JSONSchemaRaw {\n if (!schema.$ref) {\n return schema;\n }\n const [uri, pointer] = schema.$ref!.split('#/');\n if (uri) {\n throw Error(`Remote schemas for ${schema.$ref} not supported yet.`);\n }\n\n const definition = !pointer\n ? null\n : pointer\n .split('/')\n .reduce(\n (def, path) =>\n def?.hasOwnProperty(path) ? (def as any)[path] : null,\n this.root,\n );\n\n if (!definition) {\n throw Error(`Cannot find a definition for ${schema.$ref}.`);\n }\n\n if (definition.$ref) {\n return this.#resolveDefinition(definition);\n }\n\n return {\n ...definition,\n ...['title', 'description', 'default', 'actions'].reduce(\n (annotation, p) => {\n if (schema.hasOwnProperty(p)) {\n annotation[p] = (schema as any)[p];\n }\n\n return annotation;\n },\n {} as any,\n ),\n $ref: undefined,\n __resolved: {\n hasRef: true,\n },\n } as JSONSchemaNoRef;\n }\n\n /** todo 当前只能存在一个类型 */\n #guessSchemaType(\n schema: JsonSchemaDraft202012Object,\n ): ResolvedJsonSchema['__resolved']['type'] {\n let type = schema?.type;\n\n if (isString(type)) {\n return { types: [type], optional: false };\n }\n if (Array.isArray(type)) {\n if (type.length === 1) {\n return { types: type, optional: false };\n }\n const nullIndex = type.findIndex((item) => item === 'null');\n if (nullIndex !== -1) {\n type.splice(nullIndex, 1);\n }\n return {\n types: type,\n optional: nullIndex !== -1,\n };\n }\n if (\n schema.items ||\n schema.prefixItems ||\n isNumber(schema.minContains) ||\n isNumber(schema.maxContains) ||\n !isNil(schema.contains) ||\n isBoolean(schema.uniqueItems)\n ) {\n type = 'array';\n } else if (\n isNumber(schema.minimum) ||\n isNumber(schema.maximum) ||\n isNumber(schema.exclusiveMaximum) ||\n isNumber(schema.exclusiveMinimum) ||\n isNumber(schema.multipleOf)\n ) {\n type = 'number';\n } else if (\n isNumber(schema.minLength) ||\n isNumber(schema.maxLength) ||\n isString(schema.pattern)\n ) {\n type = 'string';\n }\n\n return type\n ? { types: [type], optional: false }\n : { types: anyType, optional: false };\n }\n #objectCompatible(schema: JsonSchemaDraft202012Object) {\n if ('dependencies' in schema && schema.dependencies) {\n const dependencies = schema.dependencies as Record<\n string,\n JsonSchemaDraft07\n >;\n const dependentRequiredData = {} as Record<string, string[]>;\n const dependentSchemasData = {} as Record<string, JsonSchemaDraft202012>;\n Object.keys(dependencies).forEach((prop) => {\n const dependency = dependencies![prop];\n if (Array.isArray(dependency)) {\n dependentRequiredData[prop] = dependency;\n } else {\n dependentSchemasData[prop] = dependency as any;\n }\n });\n schema.dependentRequired = dependentRequiredData;\n schema.dependentSchemas = dependentSchemasData;\n }\n }\n\n #arrayCompatible(schema: JsonSchemaDraft202012Object) {\n if (this.root.$schema !== Schema2012 || !isNil(schema.additionalItems)) {\n if (!isNil(schema.items) || !isNil(schema.additionalItems)) {\n // 2019-09\n schema.prefixItems = schema.items as\n | JsonSchemaDraft202012[]\n | undefined;\n schema.items = schema.additionalItems as\n | JsonSchemaDraft202012\n | undefined;\n }\n }\n return;\n }\n\n #mergeSchema(\n schema: JsonSchemaDraft202012Object,\n ...list: JsonSchemaDraft202012[]\n ) {\n let base = clone(schema);\n let baseKeyList = Object.keys(base);\n const actionList = this.#getValidationAction(base);\n for (let childSchema of list.filter(\n (item) => !isBoolean(item),\n ) as any as JsonSchemaDraft202012Object[]) {\n childSchema = this.#resolveSchema2(childSchema);\n actionList.push(...this.#getValidationAction(childSchema));\n baseKeyList = union(baseKeyList, Object.keys(childSchema));\n for (const key of baseKeyList) {\n switch (key) {\n case 'const': {\n childSchema[key] ??= base[key];\n break;\n }\n case 'type':\n case 'enum': {\n // 类型\n const typeResult = arrayIntersection(base[key], childSchema[key]);\n if (typeResult.action) {\n actionList.push(typeResult.action);\n }\n if (!isUndefined(typeResult.value)) {\n childSchema[key] = typeResult.value;\n }\n break;\n }\n\n case 'additionalProperties': {\n // todo 此属性false在当前使用,子级会验证失败,\n // 附加属性\n childSchema.additionalProperties ??= base.additionalProperties;\n\n break;\n }\n case 'contains': {\n if (childSchema[key] === false || base[key] === false) {\n actionList.push(v.check(() => false));\n break;\n } else if (childSchema[key] === true) {\n childSchema[key] = base[key];\n break;\n } else if (base[key] === true) {\n break;\n }\n if (!isUndefined((childSchema as any)[key])) {\n (childSchema as any)[key] = {\n ...(base as any)[key],\n ...(childSchema as any)[key],\n };\n } else {\n (childSchema as any)[key] = (base as any)[key];\n }\n break;\n }\n case 'if':\n case 'then':\n case 'else':\n case 'patternProperties':\n case 'dependentSchemas':\n case 'propertyNames':\n case 'properties': {\n // 属性赋值\n if (!isUndefined((childSchema as any)[key])) {\n (childSchema as any)[key] = {\n ...(base as any)[key],\n ...(childSchema as any)[key],\n };\n } else {\n (childSchema as any)[key] = (base as any)[key];\n }\n break;\n }\n\n default:\n (childSchema as any)[key] ??= (base as any)[key];\n break;\n }\n }\n\n base = childSchema as any;\n }\n return { schema: this.#jsonSchemaCompatiable(base), actionList };\n }\n #resolveSchema2(schema: JsonSchemaDraft202012Object) {\n return this.#jsonSchemaCompatiable(this.#resolveDefinition(schema));\n }\n #schemahasRef(schema: JsonSchemaDraft202012) {\n if (isBoolean(schema)) {\n return false;\n } else {\n const result = this.#resolveSchema2(schema);\n return result.__resolved.hasRef;\n }\n }\n #parseEnum(schema: JsonSchemaDraft202012Object):\n | {\n type: string;\n data: JsonSchemaDraft202012Object;\n }\n | undefined {\n // 普通枚举\n if (schema.enum) {\n return {\n type: 'enum',\n data: {\n enum: schema.enum,\n },\n };\n } else if (schema.const) {\n return { type: 'const', data: { const: schema.const } };\n } else if (schema.items && !isBoolean(schema.items)) {\n const result = this.#parseEnum(schema.items);\n if (result?.data) {\n return {\n type: 'multiselect',\n data: {\n items: result.data,\n },\n };\n }\n return undefined;\n }\n return undefined;\n }\n #intersectSchemaType(\n a: JsonSchemaDraft202012Object | undefined,\n b: JsonSchemaDraft202012Object,\n ) {\n const parent = a ? this.#resolveSchema2(a) : undefined;\n b = parent ? this.#mergeSchema(parent, b).schema : b;\n const child = this.#resolveSchema2(b);\n const parentEnum = parent ? this.#parseEnum(parent) : undefined;\n const childEnum = this.#parseEnum(child);\n if (parentEnum?.data.items && childEnum?.data.items) {\n const result = intersection(\n (parentEnum.data.items! as JsonSchemaDraft202012Object).enum!,\n (childEnum.data.items! as JsonSchemaDraft202012Object).enum!,\n );\n if (result.length) {\n return {\n type: 'multiselect',\n data: {\n items: {\n enum: result,\n },\n } as JsonSchemaDraft202012Object,\n };\n }\n } else if (childEnum?.type === 'multiselect') {\n return childEnum;\n }\n\n // 枚举\n if (parentEnum?.data.enum && childEnum?.data.enum) {\n const result = intersection(parentEnum.data.enum, childEnum.data.enum);\n if (result.length) {\n return {\n type: 'enum',\n data: { enum: result } as JsonSchemaDraft202012Object,\n };\n }\n } else if (childEnum?.data.enum) {\n return childEnum;\n }\n // 常量\n if (isNil(parentEnum?.data.const) && !isNil(childEnum?.data.const)) {\n return childEnum;\n }\n // 类型\n const typeResult = parent?.__resolved.type.types\n ? intersection(parent.__resolved.type.types, child.__resolved.type.types)\n : child.__resolved.type.types;\n if (typeResult.length) {\n delete (child as any)['resolved'];\n const result = this.#jsonSchemaCompatiable({\n ...child,\n type: typeResult[0],\n });\n return {\n type: typeResult[0],\n data: result,\n };\n }\n return;\n }\n #schemaExtract(\n schema: ResolvedJsonSchema,\n ...childList: ResolvedJsonSchema[]\n ) {\n /** 所有子属性key */\n const childKeyList = uniq(\n childList.flatMap((item) => Object.keys(item.properties ?? {})),\n );\n if (!childKeyList.length) {\n // 无效返回\n return;\n }\n const conditionJSchema = {\n properties: {},\n additionalProperties: false,\n } as JsonSchemaDraft202012Object;\n const childConditionJSchemaList = childList.map(\n () => ({ properties: {} }) as JsonSchemaDraft202012Object,\n );\n const conditionKeyList = [];\n for (const key of childKeyList) {\n const parentItem = schema.properties?.[key] as any;\n //如果父级不存在这个属性,并且禁止添加,跳过\n // todo 还应该增加额外的匹配\n if (!parentItem && schema.additionalProperties === false) {\n continue;\n }\n // 所有子级都存在某个Key\n const keyExist = childList.every((item) => {\n const propItem = item.properties?.[key];\n // todo 对象应该先解析\n return propItem && !isBoolean(propItem) && propItem.type !== 'object';\n });\n if (!keyExist) {\n continue;\n }\n\n let currentType = undefined;\n const childPropList: JsonSchemaDraft202012Object[] = [];\n for (const sub of childList) {\n const result = this.#intersectSchemaType(\n schema?.properties?.[key] as any,\n sub.properties![key] as any,\n );\n if (!result) {\n currentType = undefined;\n break;\n } else if (\n currentType === undefined ||\n deepEqual(currentType, result.type)\n ) {\n currentType = result.type;\n // 枚举\n if (\n result.data!.enum ||\n 'const' in result.data! ||\n result.type === 'multiselect'\n ) {\n childPropList.push(result.data!);\n } else {\n childPropList.push(result.data as any);\n }\n } else {\n break;\n }\n }\n\n if (currentType) {\n conditionKeyList.push(key);\n for (let index = 0; index < childConditionJSchemaList.length; index++) {\n const schema = childConditionJSchemaList[index];\n schema.properties![key] = childPropList[index];\n }\n if (currentType === 'enum') {\n conditionJSchema.properties![key] = {\n enum: childPropList.flatMap((item) => item.enum!),\n };\n } else if (currentType === 'const') {\n conditionJSchema.properties![key] = {\n enum: childPropList.flatMap((item) => item.const!),\n };\n } else if (currentType === 'multiselect') {\n conditionJSchema.properties![key] = {\n type: 'array',\n items: {\n enum: childPropList.flatMap(\n (item) => (item.items as JsonSchemaDraft202012Object)!.enum!,\n ),\n },\n uniqueItems: true,\n };\n } else {\n conditionJSchema.properties![key] = {\n type: currentType as any,\n };\n }\n }\n }\n return { conditionJSchema, childConditionJSchemaList, conditionKeyList };\n }\n\n #conditionCreate(\n schema: ResolvedJsonSchema,\n options: {\n getChildren: () => JsonSchemaDraft202012[];\n conditionSchemaFn: (\n baseSchema: ResolvedSchema,\n conditionVSchema: ResolvedSchema,\n childSchemaList: ResolvedSchema[],\n ) => ResolvedSchema;\n conditionCheckActionFn: (\n childOriginSchemaList: ResolvedSchema[],\n getActivateList: () => boolean[],\n ) => v.BaseValidation<any, any, any>;\n useOr: boolean;\n },\n ) {\n const resolvedChildList = options\n .getChildren()!\n .map((item) => this.#mergeSchema(schema, item));\n const resolvedChildJSchemaList = resolvedChildList.map(\n (item) => item.schema,\n );\n const isObject = [schema, ...resolvedChildJSchemaList].every((item) =>\n item.__resolved.type.types.includes('object'),\n );\n /** 通用子级验证部分,不显示 */\n const childOriginSchemaList = resolvedChildList.map((item) =>\n v.pipe(this.#jsonSchemaBase(item.schema, () => item.actionList)),\n );\n let activateList: boolean[] = [];\n\n const conditionCheckAction = options.conditionCheckActionFn(\n childOriginSchemaList,\n () => activateList,\n );\n // 仅处理object,实现条件显示\n if (isObject) {\n const conditionResult = this.#schemaExtract(\n schema,\n ...resolvedChildJSchemaList,\n );\n\n if (conditionResult) {\n /** 子级的共同部分验证,用于检测是哪个子级,不显示 */\n const childConditionVSchemaList =\n conditionResult.childConditionJSchemaList.map((schema) => {\n const rSchema = this.#jsonSchemaCompatiable(schema);\n return v.pipe(\n this.#jsonSchemaBase(rSchema, () =>\n this.#getValidationAction(rSchema),\n ),\n );\n });\n /** 主条件部分,用于显示切换 */\n const conditionVSchema = v.pipe(\n this.#jsonSchemaBase(\n this.#jsonSchemaCompatiable(conditionResult.conditionJSchema),\n () => [],\n ),\n jsonActions.valueChange((fn) => {\n fn().subscribe(({ list: [value], field }) => {\n activateList.length = 0;\n const conditionParent = field.get(['..', 2])!.form\n .control as any as jsonActions.FieldLogicGroup;\n const parentAList = [];\n\n for (\n let index = 0;\n index < childConditionVSchemaList.length;\n index++\n ) {\n const schema = childConditionVSchemaList[index];\n const result = v.safeParse(schema, value);\n activateList.push(result.success);\n\n field.get(['..', 2, index])?.renderConfig.update((data) => ({\n ...data,\n hidden: !result.success,\n }));\n if (result.success) {\n parentAList.push(conditionParent!.children$$!()[index]);\n }\n }\n if (!options.useOr) {\n conditionParent.activateControls$.set(parentAList);\n }\n });\n }),\n );\n conditionResult.conditionKeyList.forEach((key) => {\n resolvedChildJSchemaList.forEach((item) => {\n delete item.properties![key];\n });\n delete schema.properties?.[key];\n });\n\n const baseSchema = v.pipe(\n this.#jsonSchemaBase(schema, () => this.#getValidationAction(schema)),\n );\n const childVSchemaList = resolvedChildJSchemaList.map((item) =>\n // 验证部分被单独提取出来\n v.pipe(this.#jsonSchemaBase(item, () => [])),\n );\n return v.pipe(\n options.conditionSchemaFn(\n baseSchema,\n conditionVSchema,\n childVSchemaList,\n ),\n conditionCheckAction,\n );\n }\n }\n const baseSchema = v.pipe(\n this.#jsonSchemaBase(schema, () => this.#getValidationAction(schema)),\n );\n activateList = childOriginSchemaList.map((_, i) => true);\n return v.pipe(baseSchema, conditionCheckAction);\n }\n\n #getValidationAction(schema: JSONSchemaRaw) {\n const action = [];\n\n // string/array\n if (isNumber(schema.minLength) || isNumber(schema.minItems)) {\n action.push(v.minLength(schema.minLength ?? schema.minItems!));\n }\n // string/array\n if (isNumber(schema.maxLength) || isNumber(schema.maxItems)) {\n action.push(v.maxLength(schema.maxLength ?? schema.maxItems!));\n }\n\n // string\n if (isString(schema.pattern)) {\n action.push(v.regex(new RegExp(schema.pattern)));\n }\n // todo format https://json-schema.org/understanding-json-schema/reference/type#built-in-formats\n // duration idn-email idn-hostname uri-reference iri iri-reference uri-template json-pointer regex\n if (schema.format) {\n switch (schema.format) {\n // case 'date-time': {\n // action.push(v.isoDateTime());\n // break;\n // }\n // case 'time': {\n // action.push(v.isoTime());\n // break;\n // }\n case 'date': {\n action.push(v.isoDate());\n break;\n }\n case 'email': {\n action.push(v.email());\n break;\n }\n case 'ipv4': {\n action.push(v.ipv4());\n break;\n }\n case 'ipv6': {\n action.push(v.ipv6());\n break;\n }\n case 'uuid': {\n action.push(v.uuid());\n break;\n }\n case 'uri': {\n action.push(v.url());\n break;\n }\n\n default:\n break;\n }\n }\n\n // number\n if (isNumber(schema.exclusiveMinimum)) {\n action.push(v.gtValue(schema.exclusiveMinimum!));\n }\n if (isNumber(schema.exclusiveMaximum)) {\n action.push(v.ltValue(schema.exclusiveMaximum));\n }\n if (isNumber(schema.minimum)) {\n action.push(v.minValue(schema.minimum));\n }\n if (isNumber(schema.maximum)) {\n action.push(v.maxValue(schema.maximum));\n }\n\n // number\n if (isNumber(schema.multipleOf)) {\n action.push(v.multipleOf(schema.multipleOf));\n }\n\n // array\n if (schema.uniqueItems) {\n action.push(\n v.check((input: any[]) => uniq(input).length === input.length),\n );\n }\n // object\n if (isNumber(schema.maxProperties)) {\n action.push(v.maxEntries(schema.maxProperties));\n }\n // object\n if (isNumber(schema.minProperties)) {\n action.push(v.minEntries(schema.minProperties));\n }\n if (schema.actions) {\n for (const rawAction of schema.actions!) {\n const inlineActions =\n (jsonActions as any)[rawAction.name] ??\n this.#options?.customActions?.[rawAction.name];\n if (!inlineActions) {\n throw new Error(`action:[${rawAction.name}]❗`);\n }\n action.push(inlineActions.apply(undefined, rawAction.params));\n }\n }\n\n return action;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["schema","cSchema"],"mappings":"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"}
|
|
@@ -1244,6 +1244,21 @@ function FindConfigFactory() {
|
|
|
1244
1244
|
}
|
|
1245
1245
|
|
|
1246
1246
|
var _a;
|
|
1247
|
+
// todo 临时同步
|
|
1248
|
+
function defineSync(field) {
|
|
1249
|
+
let define = field.define?.();
|
|
1250
|
+
if (define &&
|
|
1251
|
+
(field.inputs !== define.inputs ||
|
|
1252
|
+
field.outputs !== define.outputs ||
|
|
1253
|
+
field.attributes !== define.attributes)) {
|
|
1254
|
+
field.define = signal({
|
|
1255
|
+
...define,
|
|
1256
|
+
inputs: field.inputs,
|
|
1257
|
+
outputs: field.outputs,
|
|
1258
|
+
attributes: field.attributes,
|
|
1259
|
+
});
|
|
1260
|
+
}
|
|
1261
|
+
}
|
|
1247
1262
|
class FormBuilder {
|
|
1248
1263
|
#scopeMap = inject(PI_FORM_BUILDER_ALIAS_MAP, { optional: true }) ??
|
|
1249
1264
|
new ParentMap();
|
|
@@ -1388,6 +1403,7 @@ class FormBuilder {
|
|
|
1388
1403
|
};
|
|
1389
1404
|
resolvedConfig =
|
|
1390
1405
|
this.afterResolveConfig(field, resolvedConfig) ?? resolvedConfig;
|
|
1406
|
+
defineSync(resolvedConfig);
|
|
1391
1407
|
if (field.movePath) {
|
|
1392
1408
|
this.#moveViewField(field.movePath, resolvedConfig);
|
|
1393
1409
|
}
|