@piying/view-angular-core 2.0.3 → 2.0.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.
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { isString, uniq, isBoolean, isUndefined, isNil, intersection, union, difference } from 'es-toolkit';
|
|
2
|
+
import { get } from 'es-toolkit/compat';
|
|
2
3
|
import * as v from 'valibot';
|
|
3
4
|
import * as jsonActions from '@piying/view-angular-core';
|
|
4
5
|
import { hideWhen, actions, asControl, setComponent } from '@piying/view-angular-core';
|
|
@@ -141,7 +142,7 @@ class BaseTypeService {
|
|
|
141
142
|
}
|
|
142
143
|
if (schema.actions) {
|
|
143
144
|
for (const rawAction of schema.actions) {
|
|
144
|
-
const inlineActions = jsonActions
|
|
145
|
+
const inlineActions = get(jsonActions, rawAction.name) ??
|
|
145
146
|
this.instance.options?.customActions?.[rawAction.name];
|
|
146
147
|
if (!inlineActions) {
|
|
147
148
|
throw new Error(`action:[${rawAction.name}]❗`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"piying-view-angular-core-adapter.mjs","sources":["../../../projects/view-angular-core/adapter/util/is-number.ts","../../../projects/view-angular-core/adapter/json-schema/parse/base.service.ts","../../../projects/view-angular-core/adapter/json-schema/parse/number.service.ts","../../../projects/view-angular-core/adapter/json-schema/parse/integer.service.ts","../../../projects/view-angular-core/adapter/json-schema/parse/boolean.service.ts","../../../projects/view-angular-core/adapter/json-schema/parse/string.service.ts","../../../projects/view-angular-core/adapter/json-schema/parse/null.service.ts","../../../projects/view-angular-core/adapter/json-schema/parse/const.service.ts","../../../projects/view-angular-core/adapter/util/validation.ts","../../../projects/view-angular-core/adapter/json-schema/parse/object.service.ts","../../../projects/view-angular-core/adapter/json-schema/parse/array.service.ts","../../../projects/view-angular-core/adapter/util/define.ts","../../../projects/view-angular-core/adapter/util/clone.ts","../../../projects/view-angular-core/adapter/util/to-fixed-list.ts","../../../projects/view-angular-core/adapter/json-schema/parse/common.service.ts","../../../projects/view-angular-core/adapter/json-schema/parse/list.service.ts","../../../projects/view-angular-core/adapter/json-schema/json-schema.service.ts","../../../projects/view-angular-core/adapter/piying-view-angular-core-adapter.ts"],"sourcesContent":["export function isNumber(value?: any): value is number {\n return typeof value === 'number';\n}\n","import { JsonSchemaToValibot } from '../json-schema.service';\nimport {\n BaseAction,\n OptionJSType,\n ResolvedJsonSchema,\n ResolvedSchema,\n} from '../type';\nimport { isBoolean, isString, uniq } from 'es-toolkit';\nimport * as v from 'valibot';\nimport { isNumber } from '../../util/is-number';\nimport * as jsonActions from '@piying/view-angular-core';\nimport {\n JsonSchemaDraft202012,\n JsonSchemaDraft202012Object,\n} from '@hyperjump/json-schema/draft-2020-12';\nimport { ObjectTypeService } from './object.service';\nimport { computed } from '@angular/core';\nexport const enum ChildKind {\n child,\n condition,\n}\nexport class TypeContext {\n parent?: TypeContext;\n parentObject?: TypeContext;\n level = 0;\n instance?: BaseTypeService;\n}\nexport interface ParseOptions {\n kind?: ChildKind;\n}\nexport class BaseTypeService {\n static index = 0;\n context = new TypeContext();\n parent?: BaseTypeService;\n instance;\n schema;\n name!: OptionJSType;\n index = 0;\n instanceNamePrefix$$ = computed(() => `${this.index}-type`);\n constructor(instance: JsonSchemaToValibot, schema: ResolvedJsonSchema) {\n this.context.instance = this;\n this.instance = instance;\n this.schema = schema;\n }\n getAllActionList(actionList: BaseAction[]) {\n return [...actionList, ...this.getExtraActionList()];\n }\n isOptional() {\n return this.schema.__resolved.type.optional;\n }\n parseBase(actionList: BaseAction[]): ResolvedSchema {\n const Define = v.pipe(\n this.getBaseDefine(),\n ...this.getAllActionList(actionList),\n );\n const OptDefine = this.isOptional()\n ? v.optional(Define, this.schema.default)\n : Define;\n return OptDefine;\n }\n parse(actionList: BaseAction[]): ResolvedSchema {\n const OptDefine = this.parseBase(actionList);\n return (\n this.instance.options?.schemaHandle?.type?.afterResolve(\n OptDefine,\n this.schema,\n this.name as any,\n ) ?? OptDefine\n );\n }\n\n getBaseDefine(): ResolvedSchema {\n throw new Error('');\n }\n\n getValidationActionList(schema: ResolvedJsonSchema) {\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.instance.options?.customActions?.[rawAction.name];\n if (!inlineActions) {\n throw new Error(`action:[${rawAction.name}]❗`);\n }\n action.push(inlineActions(...rawAction.params));\n }\n }\n return action;\n }\n\n getExtraActionList(): BaseAction[] {\n return [];\n }\n typeParse(\n type: string,\n schema: ResolvedJsonSchema,\n actionList: BaseAction[],\n options?: ParseOptions,\n ) {\n const instance = this.getTypeParse(type, schema, options);\n return instance.parse(actionList);\n }\n getTypeParse(\n type: string,\n schema: ResolvedJsonSchema,\n options?: ParseOptions,\n ) {\n const Parser = this.instance.getTypeParser(type);\n const instance = new Parser(this.instance, schema);\n instance.index = ++BaseTypeService.index;\n instance.context.parent = this.context;\n if (instance.context.level) {\n instance.context.parentObject = this.context.parentObject;\n }\n if (options?.kind === ChildKind.child) {\n if (instance.context.level === 0) {\n instance.context.parentObject = instance.context;\n }\n } else if (options?.kind === ChildKind.condition) {\n instance.context.level++;\n instance.context.parentObject = this.context.parentObject ?? this.context;\n }\n return instance;\n }\n commonTypeParse(schema: JsonSchemaDraft202012, options?: ParseOptions) {\n // const resolved = this.resolveSchema2(schema as any);\n return this.typeParse('common', schema as any, [], options);\n }\n resolveSchema2(schema: JsonSchemaDraft202012Object) {\n return this.instance.resolveSchema2(schema);\n }\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\n getFixedChild() {\n let context: TypeContext | undefined = this.context;\n let childObject = {};\n while (context?.level) {\n context = context.parentObject;\n const instance = context?.instance as ObjectTypeService;\n\n childObject = { ...childObject, ...instance.childObject };\n }\n return childObject;\n }\n getFixedChildBy(key: string): string {\n let context: TypeContext | undefined = this.context;\n while (context?.level) {\n context = context.parentObject;\n const instance = context?.instance as ObjectTypeService;\n if (instance.name === 'object') {\n const maybeName = instance.getFixedChildPath(key);\n if (maybeName) {\n return maybeName;\n }\n }\n }\n throw new Error('');\n }\n}\n","import { OptionJSType } from '../type';\nimport { BaseTypeService } from './base.service';\nimport * as v from 'valibot';\nexport class NumberTypeService extends BaseTypeService {\n override readonly name: OptionJSType = 'number';\n\n override getBaseDefine() {\n return v.number();\n }\n}\n","import * as v from 'valibot';\nimport { NumberTypeService } from './number.service';\nexport class IntegerTypeService extends NumberTypeService {\n override readonly name = 'integer';\n\n override getBaseDefine() {\n return v.number();\n }\n override getExtraActionList() {\n return [v.integer()];\n }\n}\n","import { OptionJSType } from '../type';\nimport { BaseTypeService } from './base.service';\nimport * as v from 'valibot';\nexport class BooleanTypeService extends BaseTypeService {\n override readonly name: OptionJSType = 'boolean';\n\n override getBaseDefine() {\n return v.boolean();\n }\n}\n","import { OptionJSType } from '../type';\nimport { BaseTypeService } from './base.service';\nimport * as v from 'valibot';\nexport class StringTypeService extends BaseTypeService {\n override readonly name: OptionJSType = 'string';\n\n override getBaseDefine() {\n return v.string();\n }\n}\n","import { BaseAction, OptionJSType, ResolvedSchema } from '../type';\nimport { BaseTypeService } from './base.service';\nimport * as v from 'valibot';\nexport class NullTypeService extends BaseTypeService {\n override readonly name: OptionJSType = 'number';\n\n override parseBase(actionList: BaseAction[]): ResolvedSchema {\n const Define = v.pipe(\n v.optional(v.null(), null),\n ...this.getAllActionList(actionList),\n );\n return Define;\n }\n}\n","import { BaseAction, OptionJSType, ResolvedSchema } from '../type';\nimport { BaseTypeService } from './base.service';\nimport * as v from 'valibot';\nexport class ConstTypeService extends BaseTypeService {\n override readonly name: OptionJSType = 'const';\n\n override parseBase(actionList: BaseAction[]): ResolvedSchema {\n const value = this.schema.const!;\n const Define = v.pipe(\n v.literal(value as any),\n ...this.getAllActionList(actionList),\n );\n return Define;\n }\n}\n","import * as v from 'valibot';\n\nexport function 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}\n","import { map, merge } from 'rxjs';\nimport { BaseAction, OptionJSType, ResolvedSchema } from '../type';\nimport { BaseTypeService, ChildKind } from './base.service';\nimport * as v from 'valibot';\nimport { isBoolean } from 'es-toolkit';\nimport * as jsonActions from '@piying/view-angular-core';\nimport { schema as cSchema } from '@piying/valibot-visit';\nimport { hideWhen } from '@piying/view-angular-core';\nimport { createImpasseAction } from '../../util/validation';\n\nexport class ObjectTypeService extends BaseTypeService {\n override readonly name: OptionJSType = 'object';\n actionList: BaseAction[] = [];\n #optional = false;\n childObject = {};\n fixedActionList = [];\n // fixedObjName!: string;\n override isOptional(): boolean {\n return super.isOptional() || this.#optional;\n }\n override getExtraActionList(): BaseAction[] {\n return this.actionList;\n }\n getFixedChildPath(key: string) {\n if (key in this.childObject) {\n return this.instanceNamePrefix$$();\n }\n return undefined;\n }\n override getBaseDefine() {\n const fixedObjName = `${this.instanceNamePrefix$$()}-fixed`;\n const actionList = this.actionList;\n const schema = this.schema;\n const childObject: Record<string, ResolvedSchema> = {};\n this.childObject = childObject;\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 let hasRequiredKey = false;\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 if (isRequired && !propData.optional) {\n hasRequiredKey = true;\n }\n const createRef = () => {\n let propVSchema = this.commonTypeParse(propJSchema, {\n kind: ChildKind.child,\n });\n const depList = schema.dependentRequired?.[key];\n if (depList) {\n propVSchema = v.pipe(\n propVSchema,\n jsonActions.mergeHooks({\n allFieldsResolved: (field) => {\n field.form.control!.statusChanges.subscribe(() => {\n const valid = field.form.control!.valid;\n depList.map((item) => {\n field.form.parent.get(item)?.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.commonTypeParse(schema.additionalProperties!, {\n kind: ChildKind.condition,\n });\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.commonTypeParse(schema.patternProperties[key], {\n kind: ChildKind.condition,\n });\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\n let vSchema = this.commonTypeParse(jSchema, {\n kind: ChildKind.condition,\n });\n if (!vSchema) {\n throw new Error(`依赖->${key}: 定义未找到`);\n }\n depSchemaMap[key] = vSchema;\n\n vSchema = v.pipe(\n vSchema,\n jsonActions.renderConfig({ hidden: true }),\n hideWhen({\n disabled: true,\n listen: (fn, field) => {\n const controlField = field.get(['..', '..', 0, key])!.form\n .control!;\n return merge(\n controlField.valueChanges,\n controlField.statusChanges,\n ).pipe(\n map(\n () =>\n !(controlField.valid && controlField.value !== undefined),\n ),\n );\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(createImpasseAction('propertyNames', 'false'));\n } else if (schema.propertyNames) {\n const propNameSchema = this.commonTypeParse(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 || !hasRequiredKey) {\n this.#optional = true;\n }\n if (mode === 'default') {\n if (conditionList.length) {\n schemaDefine = cSchema.intersect([\n v.pipe(\n v.looseObject(childObject),\n jsonActions.setAlias(fixedObjName),\n ),\n v.optional(v.intersect(conditionList)),\n ]);\n } else {\n schemaDefine = v.pipe(\n v.looseObject(childObject),\n jsonActions.setAlias(fixedObjName),\n );\n }\n } else if (mode === 'strict') {\n if (conditionList.length) {\n schemaDefine = v.pipe(\n cSchema.intersect([\n v.pipe(v.object(childObject), jsonActions.setAlias(fixedObjName)),\n v.optional(v.intersect(conditionList)),\n ]),\n );\n } else {\n schemaDefine = v.pipe(\n v.object(childObject),\n jsonActions.setAlias(fixedObjName),\n );\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.pipe(\n v.objectWithRest(childObject, restDefine),\n jsonActions.setAlias(fixedObjName),\n ),\n v.optional(v.intersect(conditionList)),\n ]);\n } else {\n schemaDefine = v.pipe(\n v.objectWithRest(childObject, restDefine),\n jsonActions.setAlias(fixedObjName),\n );\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(schema, (dataset.value as any)[key]);\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 schemaDefine as ResolvedSchema;\n }\n}\n","import { JsonSchemaDraft202012 } from '@hyperjump/json-schema/draft-2020-12';\nimport { BaseAction, OptionJSType } from '../type';\nimport { BaseTypeService } from './base.service';\nimport * as v from 'valibot';\nimport { isBoolean } from 'es-toolkit';\nimport { createImpasseAction } from '../../util/validation';\nexport class ArrayTypeService extends BaseTypeService {\n override readonly name: OptionJSType = 'array';\n actionList: BaseAction[] = [];\n override getExtraActionList(): BaseAction[] {\n return this.actionList;\n }\n override getBaseDefine() {\n const actionList = this.actionList;\n\n const schema = this.schema;\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.commonTypeParse(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.commonTypeParse(schema!))\n : this.commonTypeParse(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 parent!;\n }\n}\n","import * as v from 'valibot';\nimport * as jsonActions from '@piying/view-angular-core';\nimport { isUndefined } from 'es-toolkit';\n\nconst alwaysTrueDefine = v.pipe(\n v.any(),\n jsonActions.setComponent('always-true'),\n);\nconst alwaysFalseDefine = v.pipe(\n v.any(),\n v.check((value) => isUndefined(value)),\n);\n\nexport function getBooleanDefine(value: boolean) {\n return value ? alwaysTrueDefine : alwaysFalseDefine;\n}\n","import rfdc from 'rfdc';\n\nexport const clone = rfdc({ proto: false, circles: false });\n","export function toFixedList(\n data: any[],\n labelFn: (arg: any) => any = (a) => a,\n) {\n return data.map((item) => ({ label: labelFn(item), value: item }));\n}\n","import {\n JsonSchemaDraft202012Object,\n JsonSchemaDraft202012,\n} from '@hyperjump/json-schema/draft-2020-12';\nimport {\n difference,\n intersection,\n isBoolean,\n isNil,\n isString,\n isUndefined,\n union,\n} from 'es-toolkit';\nimport {\n BehaviorSubject,\n combineLatest,\n distinctUntilChanged,\n map,\n switchMap,\n} from 'rxjs';\nimport { createImpasseAction } from '../../util/validation';\nimport {\n BaseAction,\n JSONSchemaRaw,\n ResolvedJsonSchema,\n ResolvedSchema,\n} from '../type';\nimport { BaseTypeService } from './base.service';\nimport * as v from 'valibot';\nimport { schema as cSchema } from '@piying/valibot-visit';\nimport * as jsonActions from '@piying/view-angular-core';\nimport { getBooleanDefine } from '../../util/define';\nimport { clone } from '../../util/clone';\nimport { toFixedList } from '../../util/to-fixed-list';\nconst EMPTY_DEFINE = v.pipe(v.any(), jsonActions.setComponent(''));\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}\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\nexport class CommonTypeService extends BaseTypeService {\n override readonly name: any = 'common';\n\n override parse(actionList: BaseAction[]): ResolvedSchema {\n return this.jSchemaToVSchema2(this.schema);\n }\n jSchemaToVSchema2(input: JsonSchemaDraft202012): ResolvedSchema {\n if (isBoolean(input)) {\n return getBooleanDefine(input);\n }\n if (this.instance.cacheSchema.has(input)) {\n return this.instance.cacheSchema.get(input);\n }\n const schema = this.resolveSchema2(input);\n this.schema = schema;\n const actionList = this.#applicatorNot(schema);\n const result = actionList.length\n ? v.pipe(this.#applicatorParse(schema), ...actionList)\n : this.#applicatorParse(schema);\n this.instance.cacheSchema.set(input, result);\n return result;\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.#jsonSchemaBase(\n this.resolveSchema2(schema.not),\n () => [],\n );\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\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: BaseAction[] = getMetadataAction(schema);\n\n switch (type as any) {\n case 'picklist': {\n return this.typeParse(\n '__fixedList',\n {\n type: '__fixedList',\n data: { options: [toFixedList(schema.enum!)], multi: false },\n } as any,\n [...getValidationActionList(), ...actionList],\n );\n }\n case 'const':\n case '__fixedList':\n case 'object':\n case 'null':\n case 'string':\n case 'boolean':\n case 'integer':\n case 'number': {\n return this.typeParse(type, schema, [\n ...getValidationActionList(),\n ...actionList,\n ]);\n }\n case 'array': {\n if (schema.items && !isBoolean(schema.items)) {\n const result = this.getOptions([this.resolveSchema2(schema)]);\n if (result) {\n return this.typeParse(\n '__fixedList',\n { type: '__fixedList', data: result } as any,\n [...getValidationActionList(), ...actionList],\n );\n }\n }\n return this.typeParse(type, schema, [\n ...getValidationActionList(),\n ...actionList,\n ]);\n }\n default:\n throw new Error(`未知类型:${type}`);\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 v.pipe(\n v.intersect([\n conditionVSchema,\n baseSchema,\n v.pipe(\n cSchema.intersect(\n childSchemaList.map((item) =>\n v.pipe(\n v.optional(item),\n jsonActions.renderConfig({ hidden: true }),\n ),\n ),\n ),\n jsonActions.setAlias(\n `${this.instanceNamePrefix$$()}-cond-display`,\n ),\n ),\n ]),\n jsonActions.setComponent('anyOf-condition'),\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 let ifVSchema: ResolvedSchema;\n if (isBoolean(schema.if)) {\n ifVSchema = v.pipe(\n v.any(),\n v.check(() => !!schema.if),\n );\n } else {\n const ifSchema = this.resolveSchema2(schema.if!);\n ifVSchema = v.pipe(\n this.#jsonSchemaBase(ifSchema, () =>\n this.getValidationActionList(ifSchema),\n )!,\n );\n }\n /**\n * 当前设计中if/then/else是采用的分离显示\n * 也就是then/else都会合并base,然后按条件展示,\n */\n\n const useThen$ = new BehaviorSubject<boolean | undefined>(undefined);\n\n const baseSchema = this.#jsonSchemaBase(schema, () => [\n ...this.getValidationActionList(schema),\n jsonActions.valueChange((fn) => {\n fn().subscribe(({ 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 });\n }),\n ]);\n\n function hideAction(isThen: boolean) {\n return [\n jsonActions.renderConfig({ hidden: true }),\n jsonActions.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 distinctUntilChanged(),\n );\n },\n }),\n ];\n }\n let thenSchema: ResolvedSchema;\n if (schema.then && !isBoolean(schema.then)) {\n const subSchema = this.resolveSchema2(schema.then!);\n thenSchema = v.pipe(\n this.#jsonSchemaBase(subSchema, () => [\n ...this.getValidationActionList(subSchema),\n ...hideAction(true),\n ]),\n );\n if (!subSchema.__resolved.type.types.includes('object')) {\n thenSchema = v.pipe(\n thenSchema,\n jsonActions.setComponent(''),\n jsonActions.renderConfig({ hidden: true }),\n );\n }\n } else {\n thenSchema = EMPTY_DEFINE;\n }\n\n let elseSchema: ResolvedSchema;\n if (schema.else && !isBoolean(schema.else)) {\n const subSchema = this.resolveSchema2(schema.else);\n elseSchema = v.pipe(\n this.#jsonSchemaBase(subSchema, () => [\n ...this.getValidationActionList(subSchema),\n ...hideAction(false),\n ]),\n );\n if (!subSchema.__resolved.type.types.includes('object')) {\n elseSchema = v.pipe(\n elseSchema,\n jsonActions.setComponent(''),\n jsonActions.renderConfig({ hidden: true }),\n );\n }\n } else {\n elseSchema = EMPTY_DEFINE;\n }\n // 这种逻辑没问题,因为jsonschema验证中,也会出现base和子级架构一起验证\n vSchema = v.pipe(\n v.union([baseSchema, thenSchema, elseSchema]),\n jsonActions.formConfig({ disableOrUpdateActivate: true }),\n v.rawCheck(({ dataset, addIssue }) => {\n if (dataset.issues) {\n return;\n }\n const result = v.safeParse(baseSchema, dataset.value);\n if (!result.success) {\n addIssue({ label: `if:default` });\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({ label: `if:then` });\n return;\n }\n }\n if (!status && elseSchema) {\n const result = v.safeParse(elseSchema, dataset.value);\n if (!result.success) {\n addIssue({ label: `if:else` });\n return;\n }\n }\n }),\n );\n } else {\n vSchema = v.pipe(\n // 通用部分\n this.#jsonSchemaBase(this.resolveSchema2(schema), () =>\n this.getValidationActionList(schema),\n ),\n );\n }\n return (\n this.instance.options?.schemaHandle?.afterResolve?.(vSchema, schema) ??\n vSchema\n );\n }\n\n #mergeSchema(schema: ResolvedJsonSchema, ...list: JsonSchemaDraft202012[]) {\n let base = clone(schema);\n let baseKeyList = Object.keys(base);\n const actionList = this.getValidationActionList(base) as BaseAction[];\n for (const rawChildSchema of list.filter(\n (item) => !isBoolean(item),\n ) as any as JsonSchemaDraft202012Object[]) {\n const childSchema = clone(this.resolveSchema2(rawChildSchema));\n actionList.push(...this.getValidationActionList(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(createImpasseAction('contains', 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 case 'required': {\n childSchema.required = union(\n childSchema.required ?? [],\n base.required ?? [],\n );\n break;\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: base, actionList };\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 fixedKeyList = Object.keys(this.getFixedChild());\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 ...options\n .getChildren()\n .map((item) => this.resolveSchema2(item as any)),\n );\n\n if (conditionResult) {\n const conditionKeyList = conditionResult.conditionKeyList;\n const excludeFixedConditionList = difference(\n conditionResult.conditionKeyList,\n fixedKeyList,\n );\n /** 子级的共同部分验证,用于检测是哪个子级,不显示 */\n const childConditionVSchemaList =\n conditionResult.childConditionJSchemaList.map((schema) => {\n const rSchema = this.resolveSchema2(schema);\n return v.pipe(\n this.#jsonSchemaBase(rSchema, () =>\n this.getValidationActionList(rSchema),\n ),\n );\n });\n if (fixedKeyList.length) {\n for (const key of fixedKeyList) {\n delete conditionResult.conditionJSchema.properties?.[key];\n conditionResult.childConditionJSchemaList.forEach((schema) => {\n delete schema.properties?.[key];\n });\n }\n conditionResult.conditionKeyList = excludeFixedConditionList;\n }\n const checkAction = jsonActions.mergeHooks({\n allFieldsResolved: (field) => {\n const displayName = ['..', 2];\n const list = [];\n const currenConditionSchema = field;\n list.push(currenConditionSchema.form.control!.valueChanges);\n if (fixedKeyList.length) {\n list.push(\n combineLatest(\n fixedKeyList.map((key) => {\n const instanceNamePrefix = this.getFixedChildBy(key);\n\n return field.get([\n '#',\n `@${instanceNamePrefix}-fixed`,\n key,\n ])!.form.control!.valueChanges;\n }),\n ).pipe(\n map((list) =>\n list.reduce((obj, cur, i) => {\n obj[fixedKeyList[i]] = cur;\n return obj;\n }, {} as any),\n ),\n ),\n );\n }\n combineLatest(list)\n .pipe(\n map((list) =>\n list.reduce((obj, cur) => {\n obj = { ...obj, ...cur };\n return obj;\n }, {} as any),\n ),\n )\n .subscribe((value) => {\n activateList.length = 0;\n const conditionDisplay = field.get([...displayName])!.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 // todo key需要查询\n field\n .get([...displayName, index])\n ?.renderConfig.update((data) => ({\n ...data,\n hidden: !result.success,\n }));\n if (result.success) {\n parentAList.push(conditionDisplay!.children$$!()[index]);\n }\n }\n if (!options.useOr) {\n conditionDisplay.activateControls$.set(parentAList);\n }\n });\n },\n });\n\n // todo 修改支持父级监听\n\n // todo 主条件要过滤\n /** 主条件部分,用于显示切换 */\n const conditionVSchema = v.pipe(\n this.#jsonSchemaBase(\n this.resolveSchema2(conditionResult.conditionJSchema),\n () => [],\n ),\n checkAction,\n );\n 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, () =>\n this.getValidationActionList(schema),\n ),\n );\n // todo 解析条件也要过滤\n const childVSchemaList = resolvedChildJSchemaList.map((item) =>\n // 验证部分被单独提取出来\n v.pipe(this.#jsonSchemaBase(item, () => [])),\n );\n\n return v.pipe(\n options.conditionSchemaFn(\n baseSchema,\n v.pipe(\n conditionVSchema,\n jsonActions.setAlias(`${this.instanceNamePrefix$$()}-cond`),\n ),\n\n childVSchemaList,\n ),\n conditionCheckAction,\n );\n } else {\n activateList = childOriginSchemaList.map((_, i) => true);\n const chilList = options.getChildren()!.map((item) => {\n const resolved = this.resolveSchema2(item as any);\n\n return this.#jsonSchemaBase(resolved, () =>\n this.getValidationActionList(resolved),\n );\n });\n\n return v.pipe(\n v.intersect([\n v.pipe(this.#jsonSchemaBase(schema, () => [])),\n v.pipe(\n options.useOr\n ? v.union(chilList)\n : cSchema.intersect(chilList.map((item) => v.optional(item))),\n ...getMetadataAction(schema),\n jsonActions.setComponent(\n `${options.useOr ? 'oneOf' : 'anyOf'}-select`,\n ),\n ),\n ]),\n conditionCheckAction,\n );\n }\n }\n\n const result = this.getOptions(resolvedChildJSchemaList);\n if (result) {\n const instance = this.getTypeParse('__fixedList', {\n data: result,\n type: '__fixedList',\n } as any);\n activateList = childOriginSchemaList.map((_, i) => true);\n return instance.parse([\n ...getMetadataAction(schema),\n conditionCheckAction,\n ]);\n }\n const baseSchema = v.pipe(\n this.#jsonSchemaBase(schema, () => this.getValidationActionList(schema)),\n );\n activateList = childOriginSchemaList.map((_, i) => true);\n return v.pipe(baseSchema, conditionCheckAction);\n }\n getOptions(childList: ResolvedJsonSchema[]) {\n if (!childList.length) {\n return;\n }\n const fn2 = () => {\n const data = {\n multi: undefined as boolean | undefined,\n uniqueItems: true,\n };\n const fn = (\n schema: ResolvedJsonSchema,\n ): { value: any; label: any }[] | undefined => {\n let options;\n let multi2 = false;\n if (!isUndefined(schema.const)) {\n options = [\n { value: schema.const, label: schema.title ?? schema.const },\n ];\n } else if (schema.enum) {\n if (schema.enum.length === 1) {\n options = [\n {\n value: schema.enum[0],\n label: schema.title ?? schema.enum[0],\n },\n ];\n }\n options = schema.enum.map((item) => ({ label: item, value: item }));\n } else if (schema.items && !isBoolean(schema.items)) {\n const items = this.resolveSchema2(schema.items);\n options = fn2().fn(items);\n multi2 = true;\n data.uniqueItems &&= !!schema.uniqueItems;\n }\n if (!options) {\n return undefined;\n }\n if (data.multi === undefined) {\n data.multi = multi2;\n } else if (data.multi !== multi2) {\n throw new Error(`options multi conflict`);\n }\n return options!;\n };\n return {\n fn,\n getData: () => data,\n };\n };\n\n const list = [];\n const fn$ = fn2();\n for (const schema of childList) {\n const item = fn$.fn(schema);\n if (!item) {\n return undefined;\n }\n list.push(item);\n }\n const data = fn$.getData();\n return {\n uniqueItems: data.uniqueItems,\n multi: data.multi!,\n options: list,\n };\n }\n\n #schemaExtract(\n schema: ResolvedJsonSchema,\n ...childList: ResolvedJsonSchema[]\n ) {\n const childKeyList = childList.reduce(\n (cur, item) => {\n if (cur && !cur.length) {\n return cur;\n }\n const keyList = Object.keys(item.properties ?? {}).filter((key) => {\n const propItem = item.properties![key]!;\n if (isBoolean(propItem)) {\n return false;\n }\n const resolved = this.resolveSchema2(propItem);\n return !resolved.__resolved.type.types.includes('object');\n });\n if (!cur) {\n return keyList;\n } else {\n return intersection(cur, keyList);\n }\n },\n undefined as string[] | undefined,\n )!;\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: {}, required: [] }) as JsonSchemaDraft202012Object,\n );\n const conditionKeyList = [];\n\n for (const key of childKeyList) {\n const parentItem = schema.properties?.[key] as any;\n\n //如果父级不存在这个属性,并且禁止添加,跳过\n // todo 还应该增加额外的匹配\n if (!parentItem && schema.additionalProperties === false) {\n continue;\n }\n const optionsResult = this.getOptions(\n childList.map((item) =>\n this.resolveSchema2(item.properties![key] as any),\n ),\n );\n if (optionsResult) {\n conditionKeyList.push(key);\n conditionJSchema.properties![key] = {\n type: '__fixedList',\n data: optionsResult,\n } as any;\n childConditionJSchemaList.forEach((item, i) => {\n item.properties![key] = childList[i].properties![key];\n if (childList[i].required && childList[i].required.includes(key)) {\n item.required!.push(key);\n }\n });\n } else {\n conditionKeyList.push(key);\n conditionJSchema.properties![key] = {\n type: this.resolveSchema2(childList[0].properties![key]! as any)\n .__resolved.type.types[0],\n };\n childConditionJSchemaList.forEach((item, i) => {\n item.properties![key] = childList[i].properties![key];\n if (childList[i].required && childList[i].required.includes(key)) {\n item.required!.push(key);\n }\n });\n }\n }\n return { conditionJSchema, childConditionJSchemaList, conditionKeyList };\n }\n}\n","import { asControl, actions, setComponent } from '@piying/view-angular-core';\nimport { BaseAction, ListType, ResolvedSchema } from '../type';\nimport { BaseTypeService } from './base.service';\nimport * as v from 'valibot';\nexport class ListTypeService extends BaseTypeService {\n override readonly name = '__fixedList';\n\n override parseBase(actionList: BaseAction[]): ResolvedSchema {\n const context: ListType = (this.schema as any)['data'];\n const options = context.options.flat();\n const define = v.picklist(options.map((option) => option.value));\n if (context.multi) {\n return v.pipe(\n v.array(define),\n actions.inputs.patch({ options: options }),\n asControl(),\n setComponent(\n context.uniqueItems ? 'multiselect' : 'multiselect-repeat',\n ),\n ...actionList,\n );\n } else {\n return v.pipe(\n define,\n actions.inputs.patch({ options: options }),\n ...actionList,\n );\n }\n }\n}\n","import { isBoolean, isNil, isString, isUndefined } from 'es-toolkit';\nimport type {\n JsonSchemaDraft202012,\n JsonSchemaDraft202012Object,\n} from '@hyperjump/json-schema/draft-2020-12';\nimport type { JsonSchemaDraft07 } from '@hyperjump/json-schema/draft-07';\nimport {\n JSONSchemaRaw,\n ResolvedJsonSchema,\n JSONSchemaNoRef,\n ResolvedSchema,\n J2VOptions,\n} from './type';\nimport { NumberTypeService } from './parse/number.service';\nimport { BaseTypeService } from './parse/base.service';\nimport { isNumber } from '../util/is-number';\nimport { IntegerTypeService } from './parse/integer.service';\nimport { BooleanTypeService } from './parse/boolean.service';\nimport { StringTypeService } from './parse/string.service';\nimport { NullTypeService } from './parse/null.service';\nimport { ConstTypeService } from './parse/const.service';\nimport { ObjectTypeService } from './parse/object.service';\nimport { ArrayTypeService } from './parse/array.service';\nimport { CommonTypeService } from './parse/common.service';\nimport { ListTypeService } from './parse/list.service';\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// 应该传入定制\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';\nconst TypeMap: Record<string, typeof BaseTypeService> = {\n number: NumberTypeService,\n integer: IntegerTypeService,\n boolean: BooleanTypeService,\n string: StringTypeService,\n null: NullTypeService,\n const: ConstTypeService,\n object: ObjectTypeService,\n array: ArrayTypeService,\n common: CommonTypeService,\n __fixedList: ListTypeService,\n};\nexport class JsonSchemaToValibot {\n root;\n options;\n 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 const Service = TypeMap['common'];\n const instance = new Service(this, this.root as any);\n return instance.parse([]);\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 #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 const optional = 'default' in schema;\n if (!isUndefined(schema.const)) {\n return { types: ['const'] as any, optional: optional };\n } else if (Array.isArray(schema.enum)) {\n return { types: ['picklist'] as any, optional: optional };\n }\n let type = schema?.type;\n if (isString(type)) {\n return { types: [type], optional: optional };\n }\n if (Array.isArray(type)) {\n if (type.length === 1) {\n return { types: type, optional: optional };\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: 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 as any], optional: optional }\n : { types: anyType, optional: optional };\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 delete schema.dependencies;\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 resolveSchema2(schema: JsonSchemaDraft202012Object) {\n return this.#jsonSchemaCompatiable(this.#resolveDefinition(schema));\n }\n\n getTypeParser(type: string) {\n return TypeMap[type];\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/util/is-number.ts","../../../projects/view-angular-core/adapter/json-schema/parse/base.service.ts","../../../projects/view-angular-core/adapter/json-schema/parse/number.service.ts","../../../projects/view-angular-core/adapter/json-schema/parse/integer.service.ts","../../../projects/view-angular-core/adapter/json-schema/parse/boolean.service.ts","../../../projects/view-angular-core/adapter/json-schema/parse/string.service.ts","../../../projects/view-angular-core/adapter/json-schema/parse/null.service.ts","../../../projects/view-angular-core/adapter/json-schema/parse/const.service.ts","../../../projects/view-angular-core/adapter/util/validation.ts","../../../projects/view-angular-core/adapter/json-schema/parse/object.service.ts","../../../projects/view-angular-core/adapter/json-schema/parse/array.service.ts","../../../projects/view-angular-core/adapter/util/define.ts","../../../projects/view-angular-core/adapter/util/clone.ts","../../../projects/view-angular-core/adapter/util/to-fixed-list.ts","../../../projects/view-angular-core/adapter/json-schema/parse/common.service.ts","../../../projects/view-angular-core/adapter/json-schema/parse/list.service.ts","../../../projects/view-angular-core/adapter/json-schema/json-schema.service.ts","../../../projects/view-angular-core/adapter/piying-view-angular-core-adapter.ts"],"sourcesContent":["export function isNumber(value?: any): value is number {\n return typeof value === 'number';\n}\n","import { JsonSchemaToValibot } from '../json-schema.service';\nimport {\n BaseAction,\n OptionJSType,\n ResolvedJsonSchema,\n ResolvedSchema,\n} from '../type';\nimport { isBoolean, isString, uniq } from 'es-toolkit';\nimport { get } from 'es-toolkit/compat';\nimport * as v from 'valibot';\nimport { isNumber } from '../../util/is-number';\nimport * as jsonActions from '@piying/view-angular-core';\nimport {\n JsonSchemaDraft202012,\n JsonSchemaDraft202012Object,\n} from '@hyperjump/json-schema/draft-2020-12';\nimport { ObjectTypeService } from './object.service';\nimport { computed } from '@angular/core';\nexport const enum ChildKind {\n child,\n condition,\n}\nexport class TypeContext {\n parent?: TypeContext;\n parentObject?: TypeContext;\n level = 0;\n instance?: BaseTypeService;\n}\nexport interface ParseOptions {\n kind?: ChildKind;\n}\nexport class BaseTypeService {\n static index = 0;\n context = new TypeContext();\n parent?: BaseTypeService;\n instance;\n schema;\n name!: OptionJSType;\n index = 0;\n instanceNamePrefix$$ = computed(() => `${this.index}-type`);\n constructor(instance: JsonSchemaToValibot, schema: ResolvedJsonSchema) {\n this.context.instance = this;\n this.instance = instance;\n this.schema = schema;\n }\n getAllActionList(actionList: BaseAction[]) {\n return [...actionList, ...this.getExtraActionList()];\n }\n isOptional() {\n return this.schema.__resolved.type.optional;\n }\n parseBase(actionList: BaseAction[]): ResolvedSchema {\n const Define = v.pipe(\n this.getBaseDefine(),\n ...this.getAllActionList(actionList),\n );\n const OptDefine = this.isOptional()\n ? v.optional(Define, this.schema.default)\n : Define;\n return OptDefine;\n }\n parse(actionList: BaseAction[]): ResolvedSchema {\n const OptDefine = this.parseBase(actionList);\n return (\n this.instance.options?.schemaHandle?.type?.afterResolve(\n OptDefine,\n this.schema,\n this.name as any,\n ) ?? OptDefine\n );\n }\n\n getBaseDefine(): ResolvedSchema {\n throw new Error('');\n }\n\n getValidationActionList(schema: ResolvedJsonSchema) {\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 get(jsonActions, rawAction.name) ??\n this.instance.options?.customActions?.[rawAction.name];\n if (!inlineActions) {\n throw new Error(`action:[${rawAction.name}]❗`);\n }\n action.push(inlineActions(...rawAction.params));\n }\n }\n return action;\n }\n\n getExtraActionList(): BaseAction[] {\n return [];\n }\n typeParse(\n type: string,\n schema: ResolvedJsonSchema,\n actionList: BaseAction[],\n options?: ParseOptions,\n ) {\n const instance = this.getTypeParse(type, schema, options);\n return instance.parse(actionList);\n }\n getTypeParse(\n type: string,\n schema: ResolvedJsonSchema,\n options?: ParseOptions,\n ) {\n const Parser = this.instance.getTypeParser(type);\n const instance = new Parser(this.instance, schema);\n instance.index = ++BaseTypeService.index;\n instance.context.parent = this.context;\n if (instance.context.level) {\n instance.context.parentObject = this.context.parentObject;\n }\n if (options?.kind === ChildKind.child) {\n if (instance.context.level === 0) {\n instance.context.parentObject = instance.context;\n }\n } else if (options?.kind === ChildKind.condition) {\n instance.context.level++;\n instance.context.parentObject = this.context.parentObject ?? this.context;\n }\n return instance;\n }\n commonTypeParse(schema: JsonSchemaDraft202012, options?: ParseOptions) {\n // const resolved = this.resolveSchema2(schema as any);\n return this.typeParse('common', schema as any, [], options);\n }\n resolveSchema2(schema: JsonSchemaDraft202012Object) {\n return this.instance.resolveSchema2(schema);\n }\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\n getFixedChild() {\n let context: TypeContext | undefined = this.context;\n let childObject = {};\n while (context?.level) {\n context = context.parentObject;\n const instance = context?.instance as ObjectTypeService;\n\n childObject = { ...childObject, ...instance.childObject };\n }\n return childObject;\n }\n getFixedChildBy(key: string): string {\n let context: TypeContext | undefined = this.context;\n while (context?.level) {\n context = context.parentObject;\n const instance = context?.instance as ObjectTypeService;\n if (instance.name === 'object') {\n const maybeName = instance.getFixedChildPath(key);\n if (maybeName) {\n return maybeName;\n }\n }\n }\n throw new Error('');\n }\n}\n","import { OptionJSType } from '../type';\nimport { BaseTypeService } from './base.service';\nimport * as v from 'valibot';\nexport class NumberTypeService extends BaseTypeService {\n override readonly name: OptionJSType = 'number';\n\n override getBaseDefine() {\n return v.number();\n }\n}\n","import * as v from 'valibot';\nimport { NumberTypeService } from './number.service';\nexport class IntegerTypeService extends NumberTypeService {\n override readonly name = 'integer';\n\n override getBaseDefine() {\n return v.number();\n }\n override getExtraActionList() {\n return [v.integer()];\n }\n}\n","import { OptionJSType } from '../type';\nimport { BaseTypeService } from './base.service';\nimport * as v from 'valibot';\nexport class BooleanTypeService extends BaseTypeService {\n override readonly name: OptionJSType = 'boolean';\n\n override getBaseDefine() {\n return v.boolean();\n }\n}\n","import { OptionJSType } from '../type';\nimport { BaseTypeService } from './base.service';\nimport * as v from 'valibot';\nexport class StringTypeService extends BaseTypeService {\n override readonly name: OptionJSType = 'string';\n\n override getBaseDefine() {\n return v.string();\n }\n}\n","import { BaseAction, OptionJSType, ResolvedSchema } from '../type';\nimport { BaseTypeService } from './base.service';\nimport * as v from 'valibot';\nexport class NullTypeService extends BaseTypeService {\n override readonly name: OptionJSType = 'number';\n\n override parseBase(actionList: BaseAction[]): ResolvedSchema {\n const Define = v.pipe(\n v.optional(v.null(), null),\n ...this.getAllActionList(actionList),\n );\n return Define;\n }\n}\n","import { BaseAction, OptionJSType, ResolvedSchema } from '../type';\nimport { BaseTypeService } from './base.service';\nimport * as v from 'valibot';\nexport class ConstTypeService extends BaseTypeService {\n override readonly name: OptionJSType = 'const';\n\n override parseBase(actionList: BaseAction[]): ResolvedSchema {\n const value = this.schema.const!;\n const Define = v.pipe(\n v.literal(value as any),\n ...this.getAllActionList(actionList),\n );\n return Define;\n }\n}\n","import * as v from 'valibot';\n\nexport function 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}\n","import { map, merge } from 'rxjs';\nimport { BaseAction, OptionJSType, ResolvedSchema } from '../type';\nimport { BaseTypeService, ChildKind } from './base.service';\nimport * as v from 'valibot';\nimport { isBoolean } from 'es-toolkit';\nimport * as jsonActions from '@piying/view-angular-core';\nimport { schema as cSchema } from '@piying/valibot-visit';\nimport { hideWhen } from '@piying/view-angular-core';\nimport { createImpasseAction } from '../../util/validation';\n\nexport class ObjectTypeService extends BaseTypeService {\n override readonly name: OptionJSType = 'object';\n actionList: BaseAction[] = [];\n #optional = false;\n childObject = {};\n fixedActionList = [];\n // fixedObjName!: string;\n override isOptional(): boolean {\n return super.isOptional() || this.#optional;\n }\n override getExtraActionList(): BaseAction[] {\n return this.actionList;\n }\n getFixedChildPath(key: string) {\n if (key in this.childObject) {\n return this.instanceNamePrefix$$();\n }\n return undefined;\n }\n override getBaseDefine() {\n const fixedObjName = `${this.instanceNamePrefix$$()}-fixed`;\n const actionList = this.actionList;\n const schema = this.schema;\n const childObject: Record<string, ResolvedSchema> = {};\n this.childObject = childObject;\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 let hasRequiredKey = false;\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 if (isRequired && !propData.optional) {\n hasRequiredKey = true;\n }\n const createRef = () => {\n let propVSchema = this.commonTypeParse(propJSchema, {\n kind: ChildKind.child,\n });\n const depList = schema.dependentRequired?.[key];\n if (depList) {\n propVSchema = v.pipe(\n propVSchema,\n jsonActions.mergeHooks({\n allFieldsResolved: (field) => {\n field.form.control!.statusChanges.subscribe(() => {\n const valid = field.form.control!.valid;\n depList.map((item) => {\n field.form.parent.get(item)?.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.commonTypeParse(schema.additionalProperties!, {\n kind: ChildKind.condition,\n });\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.commonTypeParse(schema.patternProperties[key], {\n kind: ChildKind.condition,\n });\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\n let vSchema = this.commonTypeParse(jSchema, {\n kind: ChildKind.condition,\n });\n if (!vSchema) {\n throw new Error(`依赖->${key}: 定义未找到`);\n }\n depSchemaMap[key] = vSchema;\n\n vSchema = v.pipe(\n vSchema,\n jsonActions.renderConfig({ hidden: true }),\n hideWhen({\n disabled: true,\n listen: (fn, field) => {\n const controlField = field.get(['..', '..', 0, key])!.form\n .control!;\n return merge(\n controlField.valueChanges,\n controlField.statusChanges,\n ).pipe(\n map(\n () =>\n !(controlField.valid && controlField.value !== undefined),\n ),\n );\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(createImpasseAction('propertyNames', 'false'));\n } else if (schema.propertyNames) {\n const propNameSchema = this.commonTypeParse(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 || !hasRequiredKey) {\n this.#optional = true;\n }\n if (mode === 'default') {\n if (conditionList.length) {\n schemaDefine = cSchema.intersect([\n v.pipe(\n v.looseObject(childObject),\n jsonActions.setAlias(fixedObjName),\n ),\n v.optional(v.intersect(conditionList)),\n ]);\n } else {\n schemaDefine = v.pipe(\n v.looseObject(childObject),\n jsonActions.setAlias(fixedObjName),\n );\n }\n } else if (mode === 'strict') {\n if (conditionList.length) {\n schemaDefine = v.pipe(\n cSchema.intersect([\n v.pipe(v.object(childObject), jsonActions.setAlias(fixedObjName)),\n v.optional(v.intersect(conditionList)),\n ]),\n );\n } else {\n schemaDefine = v.pipe(\n v.object(childObject),\n jsonActions.setAlias(fixedObjName),\n );\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.pipe(\n v.objectWithRest(childObject, restDefine),\n jsonActions.setAlias(fixedObjName),\n ),\n v.optional(v.intersect(conditionList)),\n ]);\n } else {\n schemaDefine = v.pipe(\n v.objectWithRest(childObject, restDefine),\n jsonActions.setAlias(fixedObjName),\n );\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(schema, (dataset.value as any)[key]);\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 schemaDefine as ResolvedSchema;\n }\n}\n","import { JsonSchemaDraft202012 } from '@hyperjump/json-schema/draft-2020-12';\nimport { BaseAction, OptionJSType } from '../type';\nimport { BaseTypeService } from './base.service';\nimport * as v from 'valibot';\nimport { isBoolean } from 'es-toolkit';\nimport { createImpasseAction } from '../../util/validation';\nexport class ArrayTypeService extends BaseTypeService {\n override readonly name: OptionJSType = 'array';\n actionList: BaseAction[] = [];\n override getExtraActionList(): BaseAction[] {\n return this.actionList;\n }\n override getBaseDefine() {\n const actionList = this.actionList;\n\n const schema = this.schema;\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.commonTypeParse(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.commonTypeParse(schema!))\n : this.commonTypeParse(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 parent!;\n }\n}\n","import * as v from 'valibot';\nimport * as jsonActions from '@piying/view-angular-core';\nimport { isUndefined } from 'es-toolkit';\n\nconst alwaysTrueDefine = v.pipe(\n v.any(),\n jsonActions.setComponent('always-true'),\n);\nconst alwaysFalseDefine = v.pipe(\n v.any(),\n v.check((value) => isUndefined(value)),\n);\n\nexport function getBooleanDefine(value: boolean) {\n return value ? alwaysTrueDefine : alwaysFalseDefine;\n}\n","import rfdc from 'rfdc';\n\nexport const clone = rfdc({ proto: false, circles: false });\n","export function toFixedList(\n data: any[],\n labelFn: (arg: any) => any = (a) => a,\n) {\n return data.map((item) => ({ label: labelFn(item), value: item }));\n}\n","import {\n JsonSchemaDraft202012Object,\n JsonSchemaDraft202012,\n} from '@hyperjump/json-schema/draft-2020-12';\nimport {\n difference,\n intersection,\n isBoolean,\n isNil,\n isString,\n isUndefined,\n union,\n} from 'es-toolkit';\nimport {\n BehaviorSubject,\n combineLatest,\n distinctUntilChanged,\n map,\n switchMap,\n} from 'rxjs';\nimport { createImpasseAction } from '../../util/validation';\nimport {\n BaseAction,\n JSONSchemaRaw,\n ResolvedJsonSchema,\n ResolvedSchema,\n} from '../type';\nimport { BaseTypeService } from './base.service';\nimport * as v from 'valibot';\nimport { schema as cSchema } from '@piying/valibot-visit';\nimport * as jsonActions from '@piying/view-angular-core';\nimport { getBooleanDefine } from '../../util/define';\nimport { clone } from '../../util/clone';\nimport { toFixedList } from '../../util/to-fixed-list';\nconst EMPTY_DEFINE = v.pipe(v.any(), jsonActions.setComponent(''));\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}\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\nexport class CommonTypeService extends BaseTypeService {\n override readonly name: any = 'common';\n\n override parse(actionList: BaseAction[]): ResolvedSchema {\n return this.jSchemaToVSchema2(this.schema);\n }\n jSchemaToVSchema2(input: JsonSchemaDraft202012): ResolvedSchema {\n if (isBoolean(input)) {\n return getBooleanDefine(input);\n }\n if (this.instance.cacheSchema.has(input)) {\n return this.instance.cacheSchema.get(input);\n }\n const schema = this.resolveSchema2(input);\n this.schema = schema;\n const actionList = this.#applicatorNot(schema);\n const result = actionList.length\n ? v.pipe(this.#applicatorParse(schema), ...actionList)\n : this.#applicatorParse(schema);\n this.instance.cacheSchema.set(input, result);\n return result;\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.#jsonSchemaBase(\n this.resolveSchema2(schema.not),\n () => [],\n );\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\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: BaseAction[] = getMetadataAction(schema);\n\n switch (type as any) {\n case 'picklist': {\n return this.typeParse(\n '__fixedList',\n {\n type: '__fixedList',\n data: { options: [toFixedList(schema.enum!)], multi: false },\n } as any,\n [...getValidationActionList(), ...actionList],\n );\n }\n case 'const':\n case '__fixedList':\n case 'object':\n case 'null':\n case 'string':\n case 'boolean':\n case 'integer':\n case 'number': {\n return this.typeParse(type, schema, [\n ...getValidationActionList(),\n ...actionList,\n ]);\n }\n case 'array': {\n if (schema.items && !isBoolean(schema.items)) {\n const result = this.getOptions([this.resolveSchema2(schema)]);\n if (result) {\n return this.typeParse(\n '__fixedList',\n { type: '__fixedList', data: result } as any,\n [...getValidationActionList(), ...actionList],\n );\n }\n }\n return this.typeParse(type, schema, [\n ...getValidationActionList(),\n ...actionList,\n ]);\n }\n default:\n throw new Error(`未知类型:${type}`);\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 v.pipe(\n v.intersect([\n conditionVSchema,\n baseSchema,\n v.pipe(\n cSchema.intersect(\n childSchemaList.map((item) =>\n v.pipe(\n v.optional(item),\n jsonActions.renderConfig({ hidden: true }),\n ),\n ),\n ),\n jsonActions.setAlias(\n `${this.instanceNamePrefix$$()}-cond-display`,\n ),\n ),\n ]),\n jsonActions.setComponent('anyOf-condition'),\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 let ifVSchema: ResolvedSchema;\n if (isBoolean(schema.if)) {\n ifVSchema = v.pipe(\n v.any(),\n v.check(() => !!schema.if),\n );\n } else {\n const ifSchema = this.resolveSchema2(schema.if!);\n ifVSchema = v.pipe(\n this.#jsonSchemaBase(ifSchema, () =>\n this.getValidationActionList(ifSchema),\n )!,\n );\n }\n /**\n * 当前设计中if/then/else是采用的分离显示\n * 也就是then/else都会合并base,然后按条件展示,\n */\n\n const useThen$ = new BehaviorSubject<boolean | undefined>(undefined);\n\n const baseSchema = this.#jsonSchemaBase(schema, () => [\n ...this.getValidationActionList(schema),\n jsonActions.valueChange((fn) => {\n fn().subscribe(({ 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 });\n }),\n ]);\n\n function hideAction(isThen: boolean) {\n return [\n jsonActions.renderConfig({ hidden: true }),\n jsonActions.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 distinctUntilChanged(),\n );\n },\n }),\n ];\n }\n let thenSchema: ResolvedSchema;\n if (schema.then && !isBoolean(schema.then)) {\n const subSchema = this.resolveSchema2(schema.then!);\n thenSchema = v.pipe(\n this.#jsonSchemaBase(subSchema, () => [\n ...this.getValidationActionList(subSchema),\n ...hideAction(true),\n ]),\n );\n if (!subSchema.__resolved.type.types.includes('object')) {\n thenSchema = v.pipe(\n thenSchema,\n jsonActions.setComponent(''),\n jsonActions.renderConfig({ hidden: true }),\n );\n }\n } else {\n thenSchema = EMPTY_DEFINE;\n }\n\n let elseSchema: ResolvedSchema;\n if (schema.else && !isBoolean(schema.else)) {\n const subSchema = this.resolveSchema2(schema.else);\n elseSchema = v.pipe(\n this.#jsonSchemaBase(subSchema, () => [\n ...this.getValidationActionList(subSchema),\n ...hideAction(false),\n ]),\n );\n if (!subSchema.__resolved.type.types.includes('object')) {\n elseSchema = v.pipe(\n elseSchema,\n jsonActions.setComponent(''),\n jsonActions.renderConfig({ hidden: true }),\n );\n }\n } else {\n elseSchema = EMPTY_DEFINE;\n }\n // 这种逻辑没问题,因为jsonschema验证中,也会出现base和子级架构一起验证\n vSchema = v.pipe(\n v.union([baseSchema, thenSchema, elseSchema]),\n jsonActions.formConfig({ disableOrUpdateActivate: true }),\n v.rawCheck(({ dataset, addIssue }) => {\n if (dataset.issues) {\n return;\n }\n const result = v.safeParse(baseSchema, dataset.value);\n if (!result.success) {\n addIssue({ label: `if:default` });\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({ label: `if:then` });\n return;\n }\n }\n if (!status && elseSchema) {\n const result = v.safeParse(elseSchema, dataset.value);\n if (!result.success) {\n addIssue({ label: `if:else` });\n return;\n }\n }\n }),\n );\n } else {\n vSchema = v.pipe(\n // 通用部分\n this.#jsonSchemaBase(this.resolveSchema2(schema), () =>\n this.getValidationActionList(schema),\n ),\n );\n }\n return (\n this.instance.options?.schemaHandle?.afterResolve?.(vSchema, schema) ??\n vSchema\n );\n }\n\n #mergeSchema(schema: ResolvedJsonSchema, ...list: JsonSchemaDraft202012[]) {\n let base = clone(schema);\n let baseKeyList = Object.keys(base);\n const actionList = this.getValidationActionList(base) as BaseAction[];\n for (const rawChildSchema of list.filter(\n (item) => !isBoolean(item),\n ) as any as JsonSchemaDraft202012Object[]) {\n const childSchema = clone(this.resolveSchema2(rawChildSchema));\n actionList.push(...this.getValidationActionList(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(createImpasseAction('contains', 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 case 'required': {\n childSchema.required = union(\n childSchema.required ?? [],\n base.required ?? [],\n );\n break;\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: base, actionList };\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 fixedKeyList = Object.keys(this.getFixedChild());\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 ...options\n .getChildren()\n .map((item) => this.resolveSchema2(item as any)),\n );\n\n if (conditionResult) {\n const conditionKeyList = conditionResult.conditionKeyList;\n const excludeFixedConditionList = difference(\n conditionResult.conditionKeyList,\n fixedKeyList,\n );\n /** 子级的共同部分验证,用于检测是哪个子级,不显示 */\n const childConditionVSchemaList =\n conditionResult.childConditionJSchemaList.map((schema) => {\n const rSchema = this.resolveSchema2(schema);\n return v.pipe(\n this.#jsonSchemaBase(rSchema, () =>\n this.getValidationActionList(rSchema),\n ),\n );\n });\n if (fixedKeyList.length) {\n for (const key of fixedKeyList) {\n delete conditionResult.conditionJSchema.properties?.[key];\n conditionResult.childConditionJSchemaList.forEach((schema) => {\n delete schema.properties?.[key];\n });\n }\n conditionResult.conditionKeyList = excludeFixedConditionList;\n }\n const checkAction = jsonActions.mergeHooks({\n allFieldsResolved: (field) => {\n const displayName = ['..', 2];\n const list = [];\n const currenConditionSchema = field;\n list.push(currenConditionSchema.form.control!.valueChanges);\n if (fixedKeyList.length) {\n list.push(\n combineLatest(\n fixedKeyList.map((key) => {\n const instanceNamePrefix = this.getFixedChildBy(key);\n\n return field.get([\n '#',\n `@${instanceNamePrefix}-fixed`,\n key,\n ])!.form.control!.valueChanges;\n }),\n ).pipe(\n map((list) =>\n list.reduce((obj, cur, i) => {\n obj[fixedKeyList[i]] = cur;\n return obj;\n }, {} as any),\n ),\n ),\n );\n }\n combineLatest(list)\n .pipe(\n map((list) =>\n list.reduce((obj, cur) => {\n obj = { ...obj, ...cur };\n return obj;\n }, {} as any),\n ),\n )\n .subscribe((value) => {\n activateList.length = 0;\n const conditionDisplay = field.get([...displayName])!.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 // todo key需要查询\n field\n .get([...displayName, index])\n ?.renderConfig.update((data) => ({\n ...data,\n hidden: !result.success,\n }));\n if (result.success) {\n parentAList.push(conditionDisplay!.children$$!()[index]);\n }\n }\n if (!options.useOr) {\n conditionDisplay.activateControls$.set(parentAList);\n }\n });\n },\n });\n\n // todo 修改支持父级监听\n\n // todo 主条件要过滤\n /** 主条件部分,用于显示切换 */\n const conditionVSchema = v.pipe(\n this.#jsonSchemaBase(\n this.resolveSchema2(conditionResult.conditionJSchema),\n () => [],\n ),\n checkAction,\n );\n 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, () =>\n this.getValidationActionList(schema),\n ),\n );\n // todo 解析条件也要过滤\n const childVSchemaList = resolvedChildJSchemaList.map((item) =>\n // 验证部分被单独提取出来\n v.pipe(this.#jsonSchemaBase(item, () => [])),\n );\n\n return v.pipe(\n options.conditionSchemaFn(\n baseSchema,\n v.pipe(\n conditionVSchema,\n jsonActions.setAlias(`${this.instanceNamePrefix$$()}-cond`),\n ),\n\n childVSchemaList,\n ),\n conditionCheckAction,\n );\n } else {\n activateList = childOriginSchemaList.map((_, i) => true);\n const chilList = options.getChildren()!.map((item) => {\n const resolved = this.resolveSchema2(item as any);\n\n return this.#jsonSchemaBase(resolved, () =>\n this.getValidationActionList(resolved),\n );\n });\n\n return v.pipe(\n v.intersect([\n v.pipe(this.#jsonSchemaBase(schema, () => [])),\n v.pipe(\n options.useOr\n ? v.union(chilList)\n : cSchema.intersect(chilList.map((item) => v.optional(item))),\n ...getMetadataAction(schema),\n jsonActions.setComponent(\n `${options.useOr ? 'oneOf' : 'anyOf'}-select`,\n ),\n ),\n ]),\n conditionCheckAction,\n );\n }\n }\n\n const result = this.getOptions(resolvedChildJSchemaList);\n if (result) {\n const instance = this.getTypeParse('__fixedList', {\n data: result,\n type: '__fixedList',\n } as any);\n activateList = childOriginSchemaList.map((_, i) => true);\n return instance.parse([\n ...getMetadataAction(schema),\n conditionCheckAction,\n ]);\n }\n const baseSchema = v.pipe(\n this.#jsonSchemaBase(schema, () => this.getValidationActionList(schema)),\n );\n activateList = childOriginSchemaList.map((_, i) => true);\n return v.pipe(baseSchema, conditionCheckAction);\n }\n getOptions(childList: ResolvedJsonSchema[]) {\n if (!childList.length) {\n return;\n }\n const fn2 = () => {\n const data = {\n multi: undefined as boolean | undefined,\n uniqueItems: true,\n };\n const fn = (\n schema: ResolvedJsonSchema,\n ): { value: any; label: any }[] | undefined => {\n let options;\n let multi2 = false;\n if (!isUndefined(schema.const)) {\n options = [\n { value: schema.const, label: schema.title ?? schema.const },\n ];\n } else if (schema.enum) {\n if (schema.enum.length === 1) {\n options = [\n {\n value: schema.enum[0],\n label: schema.title ?? schema.enum[0],\n },\n ];\n }\n options = schema.enum.map((item) => ({ label: item, value: item }));\n } else if (schema.items && !isBoolean(schema.items)) {\n const items = this.resolveSchema2(schema.items);\n options = fn2().fn(items);\n multi2 = true;\n data.uniqueItems &&= !!schema.uniqueItems;\n }\n if (!options) {\n return undefined;\n }\n if (data.multi === undefined) {\n data.multi = multi2;\n } else if (data.multi !== multi2) {\n throw new Error(`options multi conflict`);\n }\n return options!;\n };\n return {\n fn,\n getData: () => data,\n };\n };\n\n const list = [];\n const fn$ = fn2();\n for (const schema of childList) {\n const item = fn$.fn(schema);\n if (!item) {\n return undefined;\n }\n list.push(item);\n }\n const data = fn$.getData();\n return {\n uniqueItems: data.uniqueItems,\n multi: data.multi!,\n options: list,\n };\n }\n\n #schemaExtract(\n schema: ResolvedJsonSchema,\n ...childList: ResolvedJsonSchema[]\n ) {\n const childKeyList = childList.reduce(\n (cur, item) => {\n if (cur && !cur.length) {\n return cur;\n }\n const keyList = Object.keys(item.properties ?? {}).filter((key) => {\n const propItem = item.properties![key]!;\n if (isBoolean(propItem)) {\n return false;\n }\n const resolved = this.resolveSchema2(propItem);\n return !resolved.__resolved.type.types.includes('object');\n });\n if (!cur) {\n return keyList;\n } else {\n return intersection(cur, keyList);\n }\n },\n undefined as string[] | undefined,\n )!;\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: {}, required: [] }) as JsonSchemaDraft202012Object,\n );\n const conditionKeyList = [];\n\n for (const key of childKeyList) {\n const parentItem = schema.properties?.[key] as any;\n\n //如果父级不存在这个属性,并且禁止添加,跳过\n // todo 还应该增加额外的匹配\n if (!parentItem && schema.additionalProperties === false) {\n continue;\n }\n const optionsResult = this.getOptions(\n childList.map((item) =>\n this.resolveSchema2(item.properties![key] as any),\n ),\n );\n if (optionsResult) {\n conditionKeyList.push(key);\n conditionJSchema.properties![key] = {\n type: '__fixedList',\n data: optionsResult,\n } as any;\n childConditionJSchemaList.forEach((item, i) => {\n item.properties![key] = childList[i].properties![key];\n if (childList[i].required && childList[i].required.includes(key)) {\n item.required!.push(key);\n }\n });\n } else {\n conditionKeyList.push(key);\n conditionJSchema.properties![key] = {\n type: this.resolveSchema2(childList[0].properties![key]! as any)\n .__resolved.type.types[0],\n };\n childConditionJSchemaList.forEach((item, i) => {\n item.properties![key] = childList[i].properties![key];\n if (childList[i].required && childList[i].required.includes(key)) {\n item.required!.push(key);\n }\n });\n }\n }\n return { conditionJSchema, childConditionJSchemaList, conditionKeyList };\n }\n}\n","import { asControl, actions, setComponent } from '@piying/view-angular-core';\nimport { BaseAction, ListType, ResolvedSchema } from '../type';\nimport { BaseTypeService } from './base.service';\nimport * as v from 'valibot';\nexport class ListTypeService extends BaseTypeService {\n override readonly name = '__fixedList';\n\n override parseBase(actionList: BaseAction[]): ResolvedSchema {\n const context: ListType = (this.schema as any)['data'];\n const options = context.options.flat();\n const define = v.picklist(options.map((option) => option.value));\n if (context.multi) {\n return v.pipe(\n v.array(define),\n actions.inputs.patch({ options: options }),\n asControl(),\n setComponent(\n context.uniqueItems ? 'multiselect' : 'multiselect-repeat',\n ),\n ...actionList,\n );\n } else {\n return v.pipe(\n define,\n actions.inputs.patch({ options: options }),\n ...actionList,\n );\n }\n }\n}\n","import { isBoolean, isNil, isString, isUndefined } from 'es-toolkit';\nimport type {\n JsonSchemaDraft202012,\n JsonSchemaDraft202012Object,\n} from '@hyperjump/json-schema/draft-2020-12';\nimport type { JsonSchemaDraft07 } from '@hyperjump/json-schema/draft-07';\nimport {\n JSONSchemaRaw,\n ResolvedJsonSchema,\n JSONSchemaNoRef,\n ResolvedSchema,\n J2VOptions,\n} from './type';\nimport { NumberTypeService } from './parse/number.service';\nimport { BaseTypeService } from './parse/base.service';\nimport { isNumber } from '../util/is-number';\nimport { IntegerTypeService } from './parse/integer.service';\nimport { BooleanTypeService } from './parse/boolean.service';\nimport { StringTypeService } from './parse/string.service';\nimport { NullTypeService } from './parse/null.service';\nimport { ConstTypeService } from './parse/const.service';\nimport { ObjectTypeService } from './parse/object.service';\nimport { ArrayTypeService } from './parse/array.service';\nimport { CommonTypeService } from './parse/common.service';\nimport { ListTypeService } from './parse/list.service';\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// 应该传入定制\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';\nconst TypeMap: Record<string, typeof BaseTypeService> = {\n number: NumberTypeService,\n integer: IntegerTypeService,\n boolean: BooleanTypeService,\n string: StringTypeService,\n null: NullTypeService,\n const: ConstTypeService,\n object: ObjectTypeService,\n array: ArrayTypeService,\n common: CommonTypeService,\n __fixedList: ListTypeService,\n};\nexport class JsonSchemaToValibot {\n root;\n options;\n 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 const Service = TypeMap['common'];\n const instance = new Service(this, this.root as any);\n return instance.parse([]);\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 #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 const optional = 'default' in schema;\n if (!isUndefined(schema.const)) {\n return { types: ['const'] as any, optional: optional };\n } else if (Array.isArray(schema.enum)) {\n return { types: ['picklist'] as any, optional: optional };\n }\n let type = schema?.type;\n if (isString(type)) {\n return { types: [type], optional: optional };\n }\n if (Array.isArray(type)) {\n if (type.length === 1) {\n return { types: type, optional: optional };\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: 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 as any], optional: optional }\n : { types: anyType, optional: optional };\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 delete schema.dependencies;\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 resolveSchema2(schema: JsonSchemaDraft202012Object) {\n return this.#jsonSchemaCompatiable(this.#resolveDefinition(schema));\n }\n\n getTypeParser(type: string) {\n return TypeMap[type];\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["schema","cSchema"],"mappings":"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"}
|