nz-json-schema-form
Version:
Schema form for JSON schema
1 lines • 116 kB
Source Map (JSON)
{"version":3,"file":"nz-json-schema-form.mjs","sources":["../../../projects/nz-schema/src/lib/interfaces/json-schema.ts","../../../projects/nz-schema/src/lib/utils.ts","../../../projects/nz-schema/src/lib/forms/forms.ts","../../../projects/nz-schema/src/lib/forms/schema-context.ts","../../../projects/nz-schema/src/lib/forms/schema-form-builder.ts","../../../projects/nz-schema/src/lib/error-message/zh_CN.ts","../../../projects/nz-schema/src/lib/error-message/error-message.ts","../../../projects/nz-schema/src/lib/fields/base-field.ts","../../../projects/nz-schema/src/lib/fields/boolean-field/boolean-field.component.ts","../../../projects/nz-schema/src/lib/fields/boolean-field/boolean-field.component.html","../../../projects/nz-schema/src/lib/fields/number-field/number-field.component.ts","../../../projects/nz-schema/src/lib/fields/number-field/number-field.component.html","../../../projects/nz-schema/src/lib/fields/string-field/string-field.component.ts","../../../projects/nz-schema/src/lib/fields/string-field/string-field.component.html","../../../projects/nz-schema/src/lib/widgets/autocomplete/autocomplete.component.ts","../../../projects/nz-schema/src/lib/widgets/autocomplete/autocomplete.component.html","../../../projects/nz-schema/src/lib/widgets/cascader/cascader.component.ts","../../../projects/nz-schema/src/lib/widgets/cascader/cascader.component.html","../../../projects/nz-schema/src/lib/widgets/checkbox/checkbox.component.ts","../../../projects/nz-schema/src/lib/widgets/checkbox/checkbox.component.html","../../../projects/nz-schema/src/lib/widgets/date-picker/date-picker.component.ts","../../../projects/nz-schema/src/lib/widgets/date-picker/date-picker.component.html","../../../projects/nz-schema/src/lib/widgets/mention/mention.component.ts","../../../projects/nz-schema/src/lib/widgets/mention/mention.component.html","../../../projects/nz-schema/src/lib/widgets/radio/radio.component.ts","../../../projects/nz-schema/src/lib/widgets/radio/radio.component.html","../../../projects/nz-schema/src/lib/widgets/rate/rate.component.ts","../../../projects/nz-schema/src/lib/widgets/rate/rate.component.html","../../../projects/nz-schema/src/lib/widgets/select/select.component.ts","../../../projects/nz-schema/src/lib/widgets/select/select.component.html","../../../projects/nz-schema/src/lib/widgets/slider/slider.component.ts","../../../projects/nz-schema/src/lib/widgets/slider/slider.component.html","../../../projects/nz-schema/src/lib/widgets/text/text.component.ts","../../../projects/nz-schema/src/lib/widgets/text/text.component.html","../../../projects/nz-schema/src/lib/widgets/textarea/textarea.component.ts","../../../projects/nz-schema/src/lib/widgets/textarea/textarea.component.html","../../../projects/nz-schema/src/lib/widgets/time-picker/time-picker.component.ts","../../../projects/nz-schema/src/lib/widgets/time-picker/time-picker.component.html","../../../projects/nz-schema/src/lib/widgets/transfer/transfer.component.ts","../../../projects/nz-schema/src/lib/widgets/transfer/transfer.component.html","../../../projects/nz-schema/src/lib/widgets/tree-select/tree-select.component.ts","../../../projects/nz-schema/src/lib/widgets/tree-select/tree-select.component.html","../../../projects/nz-schema/src/lib/widgets/upload/upload.component.ts","../../../projects/nz-schema/src/lib/widgets/upload/upload.component.html","../../../projects/nz-schema/src/lib/schema-widget-registry.service.ts","../../../projects/nz-schema/src/lib/schema-field/schema-field.component.ts","../../../projects/nz-schema/src/lib/schema-field/schema-field.component.html","../../../projects/nz-schema/src/lib/nz-schema.component.ts","../../../projects/nz-schema/src/public-api.ts","../../../projects/nz-schema/src/nz-json-schema-form.ts"],"sourcesContent":["// from @types/json-schema\n\nexport enum JSONSchemaTypes {\n STRING = 'string',\n NUMBER = 'number',\n INTEGER = 'integer',\n BOOLEAN = 'boolean',\n OBJECT = 'object',\n ARRAY = 'array',\n NULL = 'null'\n}\n\nexport type JSONSchemaTypeName = 'string' | 'number' | 'integer' | 'boolean' | 'object' | 'array' | 'null';\nexport type JSONSchemaType = JSONSchemaArray[] | boolean | number | null | object | string;\nexport interface JSONSchemaArray extends Array<JSONSchemaType> {}\nexport type JSONSchemaVersion = string;\nexport type JSONSchemaDefinition = JSONSchema;\nexport interface JSONSchema {\n $id?: string;\n $ref?: string;\n $schema?: JSONSchemaVersion;\n $comment?: string;\n type?: JSONSchemaTypeName;\n enum?: JSONSchemaType[];\n const?: JSONSchemaType;\n multipleOf?: number;\n maximum?: number;\n exclusiveMaximum?: number;\n minimum?: number;\n exclusiveMinimum?: number;\n maxLength?: number;\n minLength?: number;\n pattern?: string;\n items?: JSONSchemaDefinition | JSONSchemaDefinition[];\n additionalItems?: JSONSchemaDefinition;\n maxItems?: number;\n minItems?: number;\n uniqueItems?: boolean;\n contains?: JSONSchema;\n maxProperties?: number;\n minProperties?: number;\n required?: string[];\n properties?: {\n [key: string]: JSONSchemaDefinition;\n };\n patternProperties?: {\n [key: string]: JSONSchemaDefinition;\n };\n additionalProperties?: JSONSchemaDefinition;\n dependencies?: {\n [key: string]: JSONSchemaDefinition | string[];\n };\n propertyNames?: JSONSchemaDefinition;\n if?: JSONSchemaDefinition;\n then?: JSONSchemaDefinition;\n else?: JSONSchemaDefinition;\n allOf?: JSONSchemaDefinition[];\n anyOf?: JSONSchemaDefinition[];\n oneOf?: JSONSchemaDefinition[];\n not?: JSONSchemaDefinition;\n format?: string;\n contentMediaType?: string;\n contentEncoding?: string;\n definitions?: {\n [key: string]: JSONSchemaDefinition;\n };\n title?: string;\n description?: string;\n default?: JSONSchemaType;\n readOnly?: boolean;\n writeOnly?: boolean;\n examples?: JSONSchemaType;\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\n\nimport { AbstractSchemaControl } from './forms/forms';\nimport { SchemaContext } from './forms/schema-context';\nimport { JSONSchemaType, JSONSchemaTypeName, JSONSchemaTypes } from './interfaces/json-schema';\nimport { NzSchema, NZSchemaDefinition } from './interfaces/nz-schema';\n\nconst formats = {\n email:\n /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n date: /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/,\n time: /^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d:\\d\\d)?$/i,\n 'date-time': /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d:\\d\\d)$/i,\n uri: /^(?:[a-z][a-z0-9+-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n // eslint-disable-next-line no-control-regex\n url: /^(?:(?:http[s\\u017F]?|ftp):\\/\\/)(?:(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+(?::(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?@)?(?:(?!10(?:\\.[0-9]{1,3}){3})(?!127(?:\\.[0-9]{1,3}){3})(?!169\\.254(?:\\.[0-9]{1,3}){2})(?!192\\.168(?:\\.[0-9]{1,3}){2})(?!172\\.(?:1[6-9]|2[0-9]|3[01])(?:\\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-?)*(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)(?:\\.(?:(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-?)*(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)*(?:\\.(?:(?:[KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\\/(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?$/i,\n hostname: /^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*$/i,\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: null,\n uuid: /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i\n} as const;\n\nexport function isSchemaObject(schema: NZSchemaDefinition): boolean {\n const type = getSchemaType(schema);\n return type === JSONSchemaTypes.OBJECT;\n}\n\nexport function isSchemaArray(schema: NZSchemaDefinition): boolean {\n if (schema.ui && schema.ui.widget) {\n return false;\n }\n const type = getSchemaType(schema);\n return type === JSONSchemaTypes.ARRAY;\n}\n\nexport function getSchemaType(schema: NzSchema): JSONSchemaTypeName | undefined {\n const type = schema.type;\n if (!type) {\n if (schema.const) {\n return guessType(schema.const);\n }\n\n if (schema.enum) {\n return schema.enum.length ? guessType(schema.enum[0]) : JSONSchemaTypes.STRING;\n }\n\n if (schema.properties || schema.additionalProperties) {\n return JSONSchemaTypes.OBJECT;\n }\n return undefined;\n } else {\n return type;\n }\n}\n\nexport function guessType(value: any): JSONSchemaTypes {\n if (Array.isArray(value)) {\n return JSONSchemaTypes.ARRAY;\n } else if (typeof value === 'string') {\n return JSONSchemaTypes.STRING;\n } else if (value == null) {\n return JSONSchemaTypes.NULL;\n } else if (typeof value === 'boolean') {\n return JSONSchemaTypes.BOOLEAN;\n } else if (!isNaN(value)) {\n return JSONSchemaTypes.NULL;\n } else if (typeof value === 'object') {\n return JSONSchemaTypes.OBJECT;\n }\n return JSONSchemaTypes.STRING;\n}\n\nexport function getWidgetName(schema: NzSchema): string | null {\n if (schema.ui) {\n return typeof schema.ui === 'object' ? schema.ui.widget || null : typeof schema.ui === 'string' ? schema.ui : null;\n } else {\n if (Array.isArray(schema.enum)) {\n return 'select';\n }\n return null;\n }\n}\n\nexport function setRequiredProperties(properties: { [key: string]: AbstractSchemaControl }, schema: NzSchema): void {\n if (!schema.required || !Array.isArray(schema.required)) {\n return;\n }\n schema.required.forEach(name => {\n const control = properties[name];\n if (control) {\n const validators = control.validator ? [control.validator] : [];\n validators.push(Validators.required);\n control.setValidators(validators);\n }\n });\n}\n\nexport function getItemSchema(schema: NZSchemaDefinition, index: number, value?: JSONSchemaType): NZSchemaDefinition {\n if (Array.isArray(schema.items)) {\n if (schema.items[index]) {\n return {\n default: value,\n ...schema.items[index]\n };\n } else {\n if (schema.additionalItems) {\n return {\n default: value,\n ...schema.additionalItems\n };\n } else {\n return {\n default: value\n };\n }\n }\n } else {\n return {\n default: value,\n ...schema.items\n };\n }\n}\n\nexport function getSchema(schema: NzSchema, root: NzSchema): NzSchema {\n if (schema && typeof schema.$ref === 'string') {\n const def = getDefinition(root, schema.$ref);\n return Object.assign(def, schema, { $ref: undefined });\n } else {\n return schema || root;\n }\n}\n\nexport function getDefinition(schema: NzSchema, ref: string): NZSchemaDefinition {\n if (ref[0] !== '#') {\n throw new Error(`Invalid $ref path ${ref}.`);\n } else {\n let definition: any = schema;\n const paths = ref.split('/').slice(1);\n if (paths.length === 0) {\n return {};\n }\n paths.forEach(ptr => {\n if (ptr && definition[ptr]) {\n definition = definition[ptr];\n } else {\n throw new Error(`Could not find definition ${ref}.`);\n }\n });\n return definition;\n }\n}\n\nfunction isEmptyInputValue(value: any): boolean {\n return value == null || value.length === 0;\n}\n\nexport function isRequiredSchema(context: SchemaContext): boolean | undefined {\n const parentSchema = getSchema(context.parent, context.root);\n return (\n parentSchema &&\n isSchemaObject(parentSchema) &&\n parentSchema.required &&\n Array.isArray(parentSchema.required) &&\n parentSchema.required.indexOf(context.name as string) !== -1\n );\n}\n\nexport function getSchemaValidators(context: SchemaContext): ValidatorFn[] {\n const schema = context.schema;\n const validators = [];\n if (isRequiredSchema(context)) {\n validators.push(Validators.required);\n }\n if (schema.type === JSONSchemaTypes.NUMBER || schema.type === JSONSchemaTypes.INTEGER) {\n if (typeof schema.maximum === 'number') {\n validators.push(SchemaValidators.maximum(schema.maximum));\n }\n\n if (typeof schema.minimum === 'number') {\n validators.push(SchemaValidators.minimum(schema.minimum));\n }\n\n if (typeof schema.exclusiveMaximum === 'number') {\n validators.push(SchemaValidators.exclusiveMaximum(schema.exclusiveMaximum));\n }\n\n if (typeof schema.exclusiveMinimum === 'number') {\n validators.push(SchemaValidators.exclusiveMinimum(schema.exclusiveMinimum));\n }\n\n if (typeof schema.multipleOf === 'number') {\n validators.push(SchemaValidators.multipleOf(schema.multipleOf));\n }\n\n if (schema.type === JSONSchemaTypes.INTEGER) {\n validators.push(SchemaValidators.integer);\n }\n }\n\n if (schema.type === JSONSchemaTypes.STRING) {\n if (typeof schema.minLength === 'number') {\n validators.push(Validators.minLength(schema.minLength));\n }\n\n if (typeof schema.maxLength === 'number') {\n validators.push(Validators.maxLength(schema.maxLength));\n }\n\n if (schema.pattern) {\n validators.push(Validators.pattern(schema.pattern));\n }\n\n const formatKey = schema.format as keyof typeof formats;\n if (formatKey && formatKey === 'regex') {\n validators.push(SchemaValidators.regex);\n } else {\n if (formatKey && formats[formatKey]) {\n validators.push(SchemaValidators.format(formatKey, formats[formatKey]));\n } else if (formatKey) {\n console.warn(`unsupported format ${formatKey}`, schema);\n }\n }\n }\n\n if (Array.isArray(schema.enum) && schema.enum.length !== 0) {\n validators.push(SchemaValidators.enum(schema.enum));\n }\n\n return validators;\n}\n\n// @dynamic\nexport class SchemaValidators {\n static multipleOf(multipleOf: number) {\n return (control: AbstractControl): ValidationErrors | null => {\n if (isEmptyInputValue(control.value) || isEmptyInputValue(multipleOf)) {\n return null;\n }\n const value = parseFloat(control.value);\n return !isNaN(value) && value % multipleOf !== 0 ? { multipleOf: { multipleOf, actual: control.value } } : null;\n };\n }\n\n static maximum(maximum: number) {\n return (control: AbstractControl): ValidationErrors | null => {\n if (isEmptyInputValue(control.value) || isEmptyInputValue(maximum)) {\n return null;\n }\n const value = parseFloat(control.value);\n return !isNaN(value) && value > maximum ? { maximum: { maximum, actual: control.value } } : null;\n };\n }\n\n static minimum(minimum: number) {\n return (control: AbstractControl): ValidationErrors | null => {\n if (isEmptyInputValue(control.value) || isEmptyInputValue(minimum)) {\n return null;\n }\n const value = parseFloat(control.value);\n return !isNaN(value) && value < minimum ? { minimum: { minimum, actual: control.value } } : null;\n };\n }\n\n static exclusiveMinimum(exclusiveMinimum: number) {\n return (control: AbstractControl): ValidationErrors | null => {\n if (isEmptyInputValue(control.value) || isEmptyInputValue(exclusiveMinimum)) {\n return null;\n }\n const value = parseFloat(control.value);\n return !isNaN(value) && value <= exclusiveMinimum\n ? { exclusiveMinimum: { exclusiveMinimum, actual: control.value } }\n : null;\n };\n }\n\n static exclusiveMaximum(exclusiveMaximum: number) {\n return (control: AbstractControl): ValidationErrors | null => {\n if (isEmptyInputValue(control.value) || isEmptyInputValue(exclusiveMaximum)) {\n return null;\n }\n const value = parseFloat(control.value);\n return !isNaN(value) && value >= exclusiveMaximum\n ? { exclusiveMaximum: { exclusiveMaximum, actual: control.value } }\n : null;\n };\n }\n\n static integer(control: AbstractControl): ValidationErrors | null {\n if (isEmptyInputValue(control.value)) {\n return null;\n }\n\n return Number.isInteger(control.value) ? null : { integer: true };\n }\n\n static format(format: string, regex: RegExp) {\n return (control: AbstractControl): ValidationErrors | null => {\n if (isEmptyInputValue(control.value)) {\n return null;\n }\n const value: string = control.value;\n return regex.test(value) ? null : { format: { requiredPattern: regex.toString(), actualValue: value, format } };\n };\n }\n\n static enum(enumValues: any[]) {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value;\n if (isEmptyInputValue(value)) {\n return null;\n }\n return enumValues.some(e => e === value) ? null : { enum: { enum: enumValues, actualValue: value } };\n };\n }\n\n static regex(control: AbstractControl): ValidationErrors | null {\n if (isEmptyInputValue(control.value)) {\n return null;\n }\n\n try {\n new RegExp(control.value);\n return null;\n } catch {\n return { format: { actualValue: control.value, format: 'regex' } };\n }\n }\n}\n","import { AbstractControl, UntypedFormArray, UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { Subject } from 'rxjs';\n\nimport { NzSchema } from '../interfaces/nz-schema';\nimport { getItemSchema } from '../utils';\nimport { SchemaContext } from './schema-context';\nimport { SchemaFormBuilder } from './schema-form-builder';\n\nexport type UpdateSchemaFun = (schema: NzSchema) => NzSchema;\n\nfunction updateSchemaFactor(schemaContext: SchemaContext, subject: Subject<NzSchema>) {\n return (schemaOrFun: NzSchema | UpdateSchemaFun) => {\n if (typeof schemaOrFun === 'function') {\n const newSchema = schemaOrFun({ ...schemaContext.schema });\n subject.next(newSchema);\n } else {\n subject.next(schemaOrFun);\n }\n };\n}\n\nexport abstract class AbstractSchemaControl extends AbstractControl {\n // root: AbstractSchemaControl;\n schemaContext!: SchemaContext;\n onUpdateSchema$!: Subject<NzSchema>;\n abstract updateSchema(schemaOrFun: NzSchema | UpdateSchemaFun): void;\n}\n\nexport class SchemaFormControl extends UntypedFormControl implements AbstractSchemaControl {\n // root: AbstractSchemaControl;\n schemaContext!: SchemaContext;\n onUpdateSchema$ = new Subject<NzSchema>();\n get updateSchema(): (schemaOrFun: NzSchema | UpdateSchemaFun) => void {\n return updateSchemaFactor(this.schemaContext, this.onUpdateSchema$);\n }\n\n get(path: Array<string | number> | string): AbstractSchemaControl | null {\n return super.get(path) as AbstractSchemaControl | null;\n }\n\n setValue(\n value: any,\n options?: {\n onlySelf?: boolean;\n emitEvent?: boolean;\n emitModelToViewChange?: boolean;\n emitViewToModelChange?: boolean;\n }\n ): void {\n super.setValue(value, options);\n }\n}\n\nexport class SchemaFormGroup extends UntypedFormGroup implements AbstractSchemaControl {\n // root: AbstractSchemaControl;\n schemaContext!: SchemaContext;\n controls!: {\n [key: string]: AbstractSchemaControl;\n };\n onUpdateSchema$ = new Subject<NzSchema>();\n get updateSchema(): (schemaOrFun: NzSchema | UpdateSchemaFun) => void {\n return updateSchemaFactor(this.schemaContext, this.onUpdateSchema$);\n }\n get(path: Array<string | number> | string): AbstractSchemaControl | null {\n return super.get(path) as AbstractSchemaControl | null;\n }\n}\n\nexport class SchemaFormArray extends UntypedFormArray implements AbstractSchemaControl {\n // root: AbstractSchemaControl;\n schemaContext!: SchemaContext;\n controls!: AbstractSchemaControl[];\n onUpdateSchema$ = new Subject<NzSchema>();\n onControlsChange = new Subject<void>();\n _builder!: SchemaFormBuilder;\n get updateSchema(): (schemaOrFun: NzSchema | UpdateSchemaFun) => void {\n return updateSchemaFactor(this.schemaContext, this.onUpdateSchema$);\n }\n get(path: Array<string | number> | string): AbstractSchemaControl | null {\n return super.get(path) as AbstractSchemaControl | null;\n }\n\n setValue(value: any[], options?: { onlySelf?: boolean; emitEvent?: boolean }): void {\n this.clear();\n const schema = this.schemaContext.schema;\n value.forEach((newValue: any, index: number) => {\n const itemSchema = this.schemaContext.child(getItemSchema(schema, index), index);\n const control = this._builder.createControl(itemSchema, newValue);\n this.push(control);\n });\n this.updateValueAndValidity(options);\n this.onControlsChange.next();\n }\n}\n","import { NzSchema } from '../interfaces/nz-schema';\n\nexport class SchemaContext {\n parent!: NzSchema;\n root: NzSchema;\n name: string | number = '__root__';\n constructor(public schema: NzSchema) {\n this.root = schema;\n }\n\n child(schema: NzSchema, name: string | number): SchemaContext {\n const schemaContext = new SchemaContext(schema);\n schemaContext.root = this.root;\n schemaContext.parent = this.schema;\n schemaContext.name = name;\n return schemaContext;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { NzSchema } from '../interfaces/nz-schema';\nimport { getItemSchema, getSchema, getSchemaValidators, isSchemaArray, isSchemaObject } from '../utils';\nimport { AbstractSchemaControl, SchemaFormArray, SchemaFormControl, SchemaFormGroup } from './forms';\nimport { SchemaContext } from './schema-context';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SchemaFormBuilder {\n build(schema: NzSchema, value?: any): SchemaFormGroup {\n const context = new SchemaContext(schema);\n return this.object(context, value);\n }\n\n object(context: SchemaContext, value?: any): SchemaFormGroup {\n const group = this.reduceControls(context, value);\n const control = new SchemaFormGroup(group);\n control.schemaContext = context;\n return control;\n }\n\n array(context: SchemaContext, value?: any[]): SchemaFormArray {\n const schema = context.schema;\n let control: SchemaFormArray;\n if (!Array.isArray(schema.default) && !Array.isArray(value)) {\n control = new SchemaFormArray([]);\n } else {\n const controls: AbstractSchemaControl[] = [];\n const formValues = Array.isArray(value) ? value : Array.isArray(schema.default) ? schema.default : [];\n formValues.forEach((item, index) => {\n controls[index] = this.createControl(\n context.child(getItemSchema(schema, index, item), index),\n formValues[index]\n );\n });\n control = new SchemaFormArray(controls);\n }\n control.schemaContext = context;\n control._builder = this;\n return control;\n }\n\n control(context: SchemaContext, value?: any): SchemaFormControl {\n const formValue = typeof value === 'undefined' ? context.schema.default : value;\n const control = new SchemaFormControl(formValue, getSchemaValidators(context));\n control.schemaContext = context;\n return control;\n }\n\n createControl(context: SchemaContext, value?: any): AbstractSchemaControl {\n const schema = getSchema(context.schema, context.root);\n if (isSchemaObject(schema)) {\n return this.object(context, value);\n } else if (isSchemaArray(schema)) {\n return this.array(context, value);\n } else {\n return this.control(context, value);\n }\n }\n\n private reduceControls(context: SchemaContext, value?: any): { [key: string]: AbstractSchemaControl } {\n const controls: { [key: string]: AbstractSchemaControl } = {};\n const normalizeSchema = getSchema(context.schema, context.root);\n if (normalizeSchema.properties !== undefined) {\n Object.keys(normalizeSchema.properties).forEach(key => {\n controls[key] = this.createControl(\n context.child(normalizeSchema.properties![key], key),\n value ? value[key] : undefined\n );\n });\n }\n return controls;\n }\n}\n","import { NzSchemaErrorMessageItem } from './error-message';\n\nconst zhCH: NzSchemaErrorMessageItem = {\n // TODO\n additionalItems: '不允许超过 {{n}} 个元素',\n // TODO\n additionalProperties: '不允许有额外的属性',\n // TODO\n anyOf: '数据应为 anyOf 所指定的其中一个',\n // TODO\n dependencies: '应当拥有属性{{=e.params.property}}的依赖属性{{=e.params.deps}}',\n // TODO\n enum: '应当是预设定的枚举值之一',\n // TODO\n format: '应当匹配格式 \"{{format}}\"',\n maximum: '不能大于最大值 {{maximum}}',\n minimum: '不能小于最小值 {{minimum}}',\n exclusiveMinimum: '不能小于等于 {{exclusiveMinimum}}',\n exclusiveMaximum: '不能大于等于 {{exclusiveMaximum}}',\n integer: '应为整数值',\n // TODO\n maxItems: '不应多于 {{n}} 个项',\n // TODO\n minItems: '不应少于 {{n}} 个项',\n maxlength: '不应超过 {{requiredLength}} 个字符',\n minlength: '不应低于 {{requiredLength}} 个字符',\n // TODO\n maxProperties: '不应多于 {{n}} 个属性',\n // TODO\n minProperties: '不应少于 {{n}} 个属性',\n multipleOf: '应当是 {{multipleOf}} 的整数倍',\n // TODO\n oneOf: '只能匹配一个 \"oneOf\" 中的 schema',\n // TODO\n pattern: '应当匹配模式 \"{{requiredPattern}}\"',\n required: `必填项`,\n // TODO\n uniqueItems: `第 {{j}} 项与第 {{i}} 不应重复`,\n // TODO\n propertyNames: `属性名 {{propertyName}} 无效`,\n // TODO\n const: `应当等于常量 {{const}}`,\n // TODO\n contains: `应当包含一个有效项`\n};\n\nexport default zhCH;\n","import { inject, Injectable, InjectionToken } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\n\nimport { AbstractSchemaControl } from '../forms/forms';\nimport { getSchema } from '../utils';\nimport defaultMessage from './zh_CN';\n\nexport interface NzSchemaErrorMessageItem {\n [key: string]: ((error: ValidationErrors, form: AbstractSchemaControl) => string) | string;\n}\n\nexport const NZ_SCHEMA_ERROR_MESSAGES = new InjectionToken<NzSchemaErrorMessageItem>('nz-schema-error-messages', {\n providedIn: 'root',\n factory: NZ_SCHEMA_DEFAULT_ERROR_MESSAGES_FACTORY\n});\n\nexport function NZ_SCHEMA_DEFAULT_ERROR_MESSAGES_FACTORY(): NzSchemaErrorMessageItem {\n return defaultMessage;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NzSchemaErrorMessageService {\n private errorMessages = inject(NZ_SCHEMA_ERROR_MESSAGES, { optional: true });\n\n getErrorMessage(form: AbstractSchemaControl): string | null {\n const errors = form.errors;\n if (!errors || Object.keys(errors).length === 0) {\n return null;\n }\n const schema = getSchema(form.schemaContext.schema, form.schemaContext.root);\n const schemaMessages = typeof schema.ui === 'object' ? schema.ui.messages || {} : {};\n const messages = { ...(this.errorMessages || defaultMessage), ...schemaMessages };\n const errorKey = Object.keys(errors)[0];\n if (!messages.hasOwnProperty(errorKey)) {\n // TODO\n console.warn(`error type not found: ${errorKey}`, errors);\n return null;\n }\n const error = errors[errorKey];\n const message = messages[errorKey];\n let errorMessage = '';\n if (typeof error === 'object') {\n if (typeof message === 'function') {\n return message(error, form);\n } else {\n errorMessage = message as string;\n Object.keys(error).forEach(key => {\n errorMessage = errorMessage.replace(new RegExp(`{{${key}}}`, 'g'), `${error[key]}`);\n });\n return errorMessage;\n }\n } else {\n // @ts-ignore\n return message.toString();\n }\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n EventEmitter,\n inject,\n InjectionToken,\n OnDestroy,\n OnInit,\n SimpleChange,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\n\nimport { NgClassType, NgStyleInterface } from 'ng-zorro-antd/core/types';\n\nimport { NzSchemaErrorMessageService } from '../error-message/error-message';\nimport { AbstractSchemaControl, SchemaFormControl } from '../forms/forms';\nimport { JSONSchemaType } from '../interfaces/json-schema';\nimport { NzSchema, UISchema } from '../interfaces/nz-schema';\nimport { isRequiredSchema } from '../utils';\n\nexport const SCHEMA = new InjectionToken<NzSchema>('NzSchemaToken');\nexport const SCHEMA_FORM = new InjectionToken<AbstractSchemaControl>('NzSchemaFormToken');\n\n@Directive()\nexport abstract class BaseField<T extends AbstractSchemaControl = SchemaFormControl>\n implements OnInit, AfterViewInit, OnDestroy\n{\n abstract schemaForm: T;\n required: boolean | undefined = false;\n errorMessage?: string;\n @ViewChild('inputElement', { static: false }) inputElement: any;\n\n protected errorMessageService = inject(NzSchemaErrorMessageService);\n protected cdr = inject(ChangeDetectorRef);\n\n get schema(): NzSchema {\n return this.schemaForm.schemaContext.schema;\n }\n\n get userInterfaceSchema(): UISchema {\n return typeof this.schema.ui === 'object' ? this.schema.ui : {};\n }\n\n get widgetOptions(): { [p: string]: any } {\n return this.userInterfaceSchema.options || {};\n }\n\n get ngClass(): NgClassType {\n return this.userInterfaceSchema.klass || '';\n }\n\n get ngStyle(): NgStyleInterface {\n return this.userInterfaceSchema.style || {};\n }\n\n get size(): 'large' | 'default' | 'small' {\n return this.userInterfaceSchema.size || 'default';\n }\n\n get placeholder(): string {\n return this.userInterfaceSchema.placeholder || '';\n }\n\n get type(): string | undefined {\n return this.userInterfaceSchema.type;\n }\n\n get widgetData(): any {\n return this.userInterfaceSchema.widgetData;\n }\n\n get disabled(): boolean | undefined {\n return !!this.userInterfaceSchema.disabled;\n }\n\n get enum(): JSONSchemaType[] {\n return this.schema.enum || [];\n }\n\n get label(): string {\n return this.schema.title || '';\n }\n\n get description(): string {\n return this.schema.description || '';\n }\n\n // abstract update(): void;\n init(): void {\n this.required = isRequiredSchema(this.schemaForm.schemaContext);\n if (this.disabled) {\n this.schemaForm.disable({ emitEvent: false });\n }\n this.schemaForm.statusChanges.subscribe(() => {\n this.errorMessage = this.errorMessageService.getErrorMessage(this.schemaForm) || undefined;\n });\n this.schemaForm.onUpdateSchema$.subscribe(schema => {\n this.schemaForm.schemaContext.schema = schema;\n this.cdr.markForCheck();\n });\n }\n\n setInputElementOptions(firstChange = false): void {\n if (!this.inputElement) {\n console.warn('inputElement not found');\n return;\n }\n const keys = Object.keys(this.widgetOptions);\n const changes: SimpleChanges = {};\n keys.forEach(key => {\n if (this.inputElement[key] instanceof EventEmitter && typeof this.widgetOptions[key] === 'function') {\n const event = this.inputElement[key] as EventEmitter<any>;\n const fun = this.widgetOptions[key] as (data?: any, form?: AbstractSchemaControl) => any;\n event.subscribe(data => {\n fun(data, this.schemaForm);\n });\n } else if (this.inputElement[key] !== this.widgetOptions[key]) {\n changes[key] = new SimpleChange(this.inputElement[key], this.widgetOptions[key], firstChange);\n this.inputElement[key] = this.widgetOptions[key];\n }\n });\n if (Object.keys(changes).length) {\n if (typeof this.inputElement.ngOnChanges === 'function') {\n this.inputElement.ngOnChanges(changes);\n }\n this.cdr.markForCheck();\n }\n }\n\n ngAfterViewInit(): void {\n this.setInputElementOptions(true);\n }\n\n ngOnInit(): void {\n this.init();\n }\n\n ngOnDestroy(): void {\n this.schemaForm.onUpdateSchema$.complete();\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { NzSwitchModule } from 'ng-zorro-antd/switch';\n\nimport { SchemaFormControl } from '../../forms/forms';\nimport { BaseField } from '../base-field';\n\n@Component({\n selector: 'nz-boolean-field',\n templateUrl: './boolean-field.component.html',\n imports: [NzFormModule, NzSwitchModule, ReactiveFormsModule]\n})\nexport class BooleanFieldComponent extends BaseField<SchemaFormControl> {\n @Input() schemaForm!: SchemaFormControl;\n}\n","<nz-form-item>\n @if (label || required) {\n <nz-form-label [nzRequired]=\"required\">\n {{ label }}\n </nz-form-label>\n }\n <nz-form-control [nzExtra]=\"description\" [nzErrorTip]=\"errorMessage\">\n <nz-switch\n #inputElement\n [formControl]=\"schemaForm\"\n [class]=\"ngClass\"\n [style]=\"ngStyle\"\n ></nz-switch>\n </nz-form-control>\n</nz-form-item>\n","import { Component, Input } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { NzInputNumberLegacyModule } from 'ng-zorro-antd/input-number-legacy';\n\nimport { SchemaFormControl } from '../../forms/forms';\nimport { BaseField } from '../base-field';\n\n@Component({\n selector: 'nz-number-field',\n templateUrl: './number-field.component.html',\n imports: [NzFormModule, NzInputNumberLegacyModule, ReactiveFormsModule]\n})\nexport class NumberFieldComponent extends BaseField<SchemaFormControl> {\n @Input() schemaForm!: SchemaFormControl;\n}\n","<nz-form-item>\n @if (label || required) {\n <nz-form-label [nzRequired]=\"required\">\n {{ label }}\n </nz-form-label>\n }\n <nz-form-control [nzExtra]=\"description\" [nzErrorTip]=\"errorMessage\">\n <nz-input-number\n #inputElement\n [formControl]=\"schemaForm\"\n [nzPlaceHolder]=\"placeholder\"\n [nzSize]=\"size\"\n [class]=\"ngClass\"\n [style]=\"ngStyle\"\n ></nz-input-number>\n </nz-form-control>\n</nz-form-item>\n","import { Component, Input } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { NzInputModule } from 'ng-zorro-antd/input';\n\nimport { SchemaFormControl } from '../../forms/forms';\nimport { BaseField } from '../base-field';\n\n@Component({\n selector: 'nz-string-field',\n templateUrl: './string-field.component.html',\n imports: [NzFormModule, NzInputModule, ReactiveFormsModule]\n})\nexport class StringFieldComponent extends BaseField<SchemaFormControl> {\n @Input() schemaForm!: SchemaFormControl;\n}\n","<nz-form-item>\n @if (label || required) {\n <nz-form-label [nzRequired]=\"required\">\n {{ label }}\n </nz-form-label>\n }\n <nz-form-control [nzExtra]=\"description\" [nzErrorTip]=\"errorMessage\">\n <input\n nz-input\n #inputElement\n [formControl]=\"schemaForm\"\n [class]=\"ngClass\"\n [style]=\"ngStyle\"\n [nzSize]=\"size\"\n [type]=\"type\"\n [placeholder]=\"placeholder\"\n />\n </nz-form-control>\n</nz-form-item>\n","import { ChangeDetectionStrategy, Component, inject, OnInit } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { NzAutocompleteModule } from 'ng-zorro-antd/auto-complete';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { NzInputModule } from 'ng-zorro-antd/input';\n\nimport { AutocompleteOptions } from './autocomplete-options';\nimport { BaseField, SCHEMA_FORM } from '../../fields/base-field';\nimport { SchemaFormControl } from '../../forms/forms';\n\n@Component({\n selector: 'nz-schema-form-autocomplete',\n templateUrl: './autocomplete.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NzFormModule, NzInputModule, ReactiveFormsModule, NzAutocompleteModule]\n})\nexport class SchemaFormAutocompleteComponent extends BaseField implements OnInit {\n get widgetOptions(): AutocompleteOptions {\n return super.widgetOptions as AutocompleteOptions;\n }\n\n schemaForm = inject(SCHEMA_FORM) as SchemaFormControl;\n options: Array<{ label: string; value: any }> = [];\n\n setOption(): void {\n const widgetData = this.widgetData;\n if (Array.isArray(widgetData)) {\n if (widgetData.every(e => typeof e === 'object' && e.hasOwnProperty('value') && e.hasOwnProperty('label'))) {\n this.options = widgetData;\n } else {\n console.warn(`property widgetData is invalid`, widgetData);\n }\n return;\n }\n if (this.enum) {\n this.options = this.enum.map(e => ({ value: e, label: `${e}` }));\n }\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n this.setOption();\n this.schemaForm.onUpdateSchema$.subscribe(() => {\n this.setOption();\n this.cdr.markForCheck();\n });\n }\n}\n","<nz-form-item>\n @if (label || required) {\n <nz-form-label [nzRequired]=\"required\">{{ label }}</nz-form-label>\n }\n <nz-form-control [nzErrorTip]=\"errorMessage\" [nzExtra]=\"description\">\n <input\n #inputElement\n nz-input\n autocomplete=\"on\"\n [placeholder]=\"placeholder\"\n [type]=\"type\"\n [nzSize]=\"size\"\n [formControl]=\"schemaForm\"\n [nzAutocomplete]=\"auto\"\n />\n <nz-autocomplete\n #auto\n [nzBackfill]=\"widgetOptions.backfill\"\n [nzWidth]=\"widgetOptions.width\"\n [nzOverlayStyle]=\"widgetOptions.overlayStyle || {}\"\n [nzOverlayClassName]=\"widgetOptions.overlayClassName || ''\"\n [nzDefaultActiveFirstOption]=\"widgetOptions.defaultActiveFirstOption\"\n >\n @for (option of options; track option) {\n <nz-auto-option [nzValue]=\"option.value\">\n {{ option.label }}\n </nz-auto-option>\n }\n </nz-autocomplete>\n </nz-form-control>\n</nz-form-item>\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { NzCascaderModule, NzCascaderOption } from 'ng-zorro-antd/cascader';\nimport { NzFormModule } from 'ng-zorro-antd/form';\n\nimport { CascaderOptions } from './cascader-options';\nimport { BaseField, SCHEMA_FORM } from '../../fields/base-field';\nimport { SchemaFormControl } from '../../forms/forms';\n\n@Component({\n selector: 'nz-schema-form-cascader',\n templateUrl: './cascader.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NzFormModule, NzCascaderModule, ReactiveFormsModule]\n})\nexport class SchemaFormCascaderComponent extends BaseField {\n get widgetData(): NzCascaderOption[] {\n return super.widgetData as NzCascaderOption[];\n }\n\n get widgetOptions(): CascaderOptions {\n return super.widgetOptions;\n }\n\n schemaForm = inject(SCHEMA_FORM) as SchemaFormControl;\n}\n","<nz-form-item>\n @if (label || required) {\n <nz-form-label [nzRequired]=\"required\">{{ label }}</nz-form-label>\n }\n <nz-form-control [nzErrorTip]=\"errorMessage\" [nzExtra]=\"description\">\n <nz-cascader\n #inputElement\n [nzOptions]=\"widgetData\"\n [formControl]=\"schemaForm\"\n [class]=\"ngClass\"\n [style]=\"ngStyle\"\n [nzSize]=\"size\"\n [nzPlaceHolder]=\"placeholder\"\n ></nz-cascader>\n </nz-form-control>\n</nz-form-item>\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { NzCheckboxModule } from 'ng-zorro-antd/checkbox';\nimport { NzFormModule } from 'ng-zorro-antd/form';\n\nimport { BaseField, SCHEMA_FORM } from '../../fields/base-field';\nimport { SchemaFormControl } from '../../forms/forms';\n\n@Component({\n selector: 'nz-schema-form-checkbox',\n templateUrl: './checkbox.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NzFormModule, NzCheckboxModule, ReactiveFormsModule]\n})\nexport class SchemaFormCheckboxComponent extends BaseField {\n schemaForm = inject(SCHEMA_FORM) as SchemaFormControl;\n}\n","<nz-form-item>\n <nz-form-control [nzErrorTip]=\"errorMessage\" [nzExtra]=\"description\">\n <span [class.ant-form-item-required]=\"required\">\n \n <label nz-checkbox [formControl]=\"schemaForm\">\n {{ label }}\n </label>\n </span>\n </nz-form-control>\n</nz-form-item>\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { NzDatePickerModule } from 'ng-zorro-antd/date-picker';\nimport { NzFormModule } from 'ng-zorro-antd/form';\n\nimport { BaseField, SCHEMA_FORM } from '../../fields/base-field';\nimport { SchemaFormControl } from '../../forms/forms';\n\n@Component({\n selector: 'nz-schema-form-date-picker',\n templateUrl: './date-picker.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NzFormModule, NzDatePickerModule, ReactiveFormsModule]\n})\nexport class SchemaFormDatePickerComponent extends BaseField {\n schemaForm = inject(SCHEMA_FORM) as SchemaFormControl;\n}\n","<nz-form-item>\n @if (label || required) {\n <nz-form-label [nzRequired]=\"required\">{{ label }}</nz-form-label>\n }\n <nz-form-control [nzErrorTip]=\"errorMessage\" [nzExtra]=\"description\">\n <nz-date-picker\n #inputElement\n [formControl]=\"schemaForm\"\n [class]=\"ngClass\"\n [style]=\"ngStyle\"\n [nzSize]=\"size\"\n [nzPlaceHolder]=\"placeholder\"\n ></nz-date-picker>\n </nz-form-control>\n</nz-form-item>\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzMentionModule } from 'ng-zorro-antd/mention';\n\nimport { BaseField, SCHEMA_FORM } from '../../fields/base-field';\nimport { SchemaFormControl } from '../../forms/forms';\n\n@Component({\n selector: 'nz-schema-form-mention',\n templateUrl: './mention.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NzFormModule, NzMentionModule, NzInputModule, ReactiveFormsModule]\n})\nexport class SchemaFormMentionComponent extends BaseField {\n schemaForm = inject(SCHEMA_FORM) as SchemaFormControl;\n}\n","<nz-form-item>\n @if (label || required) {\n <nz-form-label [nzRequired]=\"required\">{{ label }}</nz-form-label>\n }\n <nz-form-control [nzErrorTip]=\"errorMessage\" [nzExtra]=\"description\">\n <nz-mention #inputElement [nzSuggestions]=\"widgetData\">\n <input\n nz-input\n [formControl]=\"schemaForm\"\n [class]=\"ngClass\"\n [style]=\"ngStyle\"\n [nzSize]=\"size\"\n [type]=\"type\"\n [placeholder]=\"placeholder\"\n nzMentionTrigger\n />\n </nz-mention>\n </nz-form-control>\n</nz-form-item>\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\n\nimport { BaseField, SCHEMA_FORM } from '../../fields/base-field';\nimport { SchemaFormControl } from '../../forms/forms';\n\n@Component({\n selector: 'nz-schema-form-radio',\n templateUrl: './radio.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SchemaFormRadioComponent extends BaseField {\n schemaForm = inject(SCHEMA_FORM) as SchemaFormControl;\n}\n","<p>radio works!</p>\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\n\nimport { BaseField, SCHEMA_FORM } from '../../fields/base-field';\nimport { SchemaFormControl } from '../../forms/forms';\n\n@Component({\n selector: 'nz-schema-form-rate',\n templateUrl: './rate.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SchemaFormRateComponent extends BaseField {\n schemaForm = inject(SCHEMA_FORM) as SchemaFormControl;\n}\n","<p>rate works!</p>\n","import { ChangeDetectionStrategy, Component, inject, OnInit } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\n\nimport { BaseField, SCHEMA_FORM } from '../../fields/base-field';\nimport { SchemaFormControl } from '../../forms/forms';\n\n@Component({\n selector: 'nz-schema-form-select',\n templateUrl: './select.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NzFormModule, NzSelectModule, ReactiveFormsModule]\n})\nexport class SchemaFormSelectComponent extends BaseField implements OnInit {\n options: Array<{ label: string; value: any }> = [];\n schemaForm = inject(SCHEMA_FORM) as SchemaFormControl;\n\n setOption(): void {\n const widgetData = this.widgetData;\n if (Array.isArray(widgetData)) {\n if (widgetData.every(e => typeof e === 'object' && e.hasOwnProperty('value') && e.hasOwnProperty('label'))) {\n this.options = widgetData;\n } else {\n console.warn(`property widgetData is invalid`, widgetData);\n }\n return;\n }\n if (this.enum) {\n this.options = this.enum.map(e => ({ value: e, label: `${e}` }));\n }\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n this.setOption();\n }\n}\n","<nz-form-item>\n @if (label || required) {\n <nz-form-label [nzRequired]=\"required\">{{ label }}</nz-form-label>\n }\n <nz-form-control [nzErrorTip]=\"errorMessage\" [nzExtra]=\"description\">\n <nz-select\n #inputElement\n [formControl]=\"schemaForm\"\n [class]=\"ngClass\"\n [style]=\"ngStyle\"\n [nzSize]=\"size\"\n [nzPlaceHolder]=\"placeholder\"\n >\n @for (option of options; track option) {\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\n }\n </nz-select>\n </nz-form-control>\n</nz-form-item>\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\n\nimport { BaseField, SCHEMA_FORM } from '../../fields/base-field';\nimport { SchemaFormControl } from '../../forms/forms';\n\n@Component({\n selector: 'nz-schema-form-slider',\n templateUrl: './slider.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SchemaFormSliderComponent extends BaseField {\n schemaForm = inject(SCHEMA_FORM) as SchemaFormControl;\n}\n","<p>slider works!</p>\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\n\nimport { BaseField, SCHEMA_FORM } from '../../fields/base-field';\nimport { SchemaFormControl } from '../../forms/forms';\n\n@Component({\n selector: 'nz-schema-form-text',\n templateUrl: './text.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SchemaFormTextComponent extends BaseField {\n schemaForm = inject(SCHEMA_FORM) as SchemaFormControl;\n}\n","<p>text works!</p>\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { NzInputModule } from 'ng-zorro-antd/input';\n\nimport { TextareaOptions } from './textarea-options';\nimport { BaseField, SCHEMA_FORM } from '../../fields/base-field';\nimport { SchemaFormControl } from '../../forms/forms';\n\n@Component({\n selector: 'nz-schema-form-textarea',\n templateUrl: './textarea.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NzFormModule, NzInputModule, ReactiveFormsModule]\n})\nexport class SchemaFormTextareaComponent extends BaseField {\n get widgetOptions(): TextareaOptions {\n return super.widgetOptions as TextareaOptions;\n }\n\n schemaForm = inject(SCHEMA_FORM) as SchemaFormControl;\n}\n","<nz-form-item>\n @if (label || required) {\n <nz-form-label [nzRequired]=\"required\">\n {{ label }}\n </nz-form-label>\n }\n <nz-form-control [nzExtra]=\"description\" [nzErrorTip]=\"errorMessage\">\n <textarea\n nz-input\n #inputElement\n [formControl]=\"schemaForm\"\n [class]=\"ngClass\"\n [style]=\"ngStyle\"\n [nzSize]=\"size\"\n [rows]=\"widgetOptions.rows\"\n [nzAutosize]=\"widgetOptions.autosize || false\"\n [placeholder]=\"placeholder\"\n ></textarea>\n </nz-form-control>\n</nz-form-item>\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\n\nimport { BaseField, SCHEMA_FORM } from '../../fields/base-field';\nimport { SchemaFormControl } from '../../forms/forms';\n\n@Component({\n selector: 'nz-schema-form-time-picker',\n templateUrl: './time-picker.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SchemaFormTimePickerComponent extends BaseField {\n schemaForm = inject(SCHEMA_FORM) as SchemaFormControl;\n}\n","<p>time-picker works!</p>\n","import { ChangeDetectionStrategy, Component, inject, OnInit } from '@angular/core';\n\nimport { BaseField, SCHEMA_FORM } from '../../fields/base-field';\nimport { SchemaFormControl } from '../../forms/forms';\n\n@Component({\n selector: 'nz-schema-form-transfer',\n templateUrl: './transfer.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SchemaFormTransferComponent extends BaseField implements OnInit {\n schemaForm = inject(SCHEMA_FORM) as SchemaFormControl;\n}\n","<p>transfer works!</p>\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\n\nimport { BaseField, SCHEMA_FORM } from '../../fields/base-field';\nimport { SchemaFormControl } from '../../forms/forms';\n\n@Component({\n selector: 'nz-schema-form-tree-select',\n templateUrl: './tree-select.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SchemaFormTreeSelectComponent extends BaseField {\n schemaForm = inject(SCHEMA_FORM) as SchemaFormControl;\n}\n","<p>tree-select works!</p>\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\n\nimport { BaseField, SCHEMA_FORM } from '../../fields/base-field';\nimport { SchemaFormControl } from '../../forms/forms';\n\n@Component({\n selector: 'nz-schema-form-upload',\n templateUrl: './upload.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SchemaFormUploadComponent extends BaseField {\n schemaForm = inject(SCHEMA_FORM) as SchemaFormControl;\n}\n","<p>upload works!</p>\n","import { Injectable, Type } from '@angular/core';\n\nimport { JSONSchemaTypes } from './interfaces/json-schema';\nimport { NzSchema } from './interfaces/nz-schema';\nimport { getSchemaType, getWidgetName } from './utils';\nimport {\n SchemaFormAutocompleteComponent,\n SchemaFormCascaderComponent,\n SchemaFormCheckboxComponent,\n SchemaFormDatePickerComponent,\n SchemaFormMentionComponent,\n SchemaFormSelectComponent,\n SchemaFormTextareaComponent\n} from './widgets';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SchemaWidgetRegistryService {\n widgetMap = {\n [JSONSchemaTypes.ARRAY]: {\n select: SchemaFormSelectComponent,\n cascader: SchemaFormCascaderComponent\n },\n [JSONSchemaTypes.BOOLEAN]: {\n checkbox: SchemaFormCheckboxComponent,\n select: SchemaFormSelectComponent\n },\n [JSONSchemaTypes.NUMBER]: {\n select: SchemaFormSelectComponent,\n 'date-picker': SchemaFormDatePickerComponent\n },\n [JSONSchemaTypes.OBJECT]: {},\n [JSONSchemaTypes.STRING]: {\n select: SchemaFormSelectComponent,\n autocomplete: SchemaFormAutocompleteComponent,\n textarea: SchemaFormTextareaComponent,\n 'date-picker': SchemaFormDatePickerComponent,\n mention: SchemaFormMentionComponent\n },\n [JSONSchemaTypes.NULL]: {},\n [JSONSchemaTypes.INTEGER]: {}\n };\n\n getWidget(schema: NzSchema): Type<any> | null {\n const type = getSchemaType(schema);\n const widgetName = getWidgetName(schema);\n if (type && widgetName) {\n const widgetMapType = this.widgetMap[type] as Record<string, any>;\n if (widgetMapType[widgetName]) {\n return widgetMapType[widgetName];\n }\n }\n return null;\n }\n\n setWidget(type: JSONSchemaTypes, widgetName: string, widgetComponent: Type<any>): void {\n if (this.widgetMap.hasOwnProperty(type)) {\n (this.widgetMap[type] as Record<string, any>)[widgetName] = widgetComponent;\n } else {\n throw new Error(`${type} is not a valid type.`);\n }\n }\n}\n","import { NgComponentOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n inject,\n Injector,\n Input,\n OnChanges,\n SimpleChanges,\n Type\n} from '@angular/core';\n\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzDividerModule } from 'ng-zorro-antd/divider';\n\nimport { BooleanFieldComponent, NumberFieldComponent, StringFieldComponent } from '../fields';\nimport { SCHEMA_FORM } from '../fields/base-field';\nimport { AbstractSchemaControl, SchemaFormArray, SchemaFormControl, SchemaFormGroup } from '../forms/forms';\nimport { SchemaFormBuilder } from '../forms/schema-form-builder';\nimport { JSONSchemaTypes } from '../interfaces/json-schema';\nimport { NzSchema } from '../interfaces/nz-schema';\nimport { SchemaWidgetRegistryService } from '../schema-widget-registry.service';\nimport { getItemSchema, getSchema, getWidgetName } from '../utils';\n\nexport const FIELD_ROOT_NAME = '__root__';\n\n@Component({\n selector: 'nz-schema-field',\n templateUrl: './schema-field.component.html',\n styleUrl: './schema-field.component.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NzDividerModule,\n NzButtonModule,\n NgComponentOutlet,\n NumberFieldComponent,\n BooleanFieldComponent,\n StringFieldComponent\n ]\n})\nexport class SchemaFieldComponent implements OnChanges {\n @Input() name = FIELD_ROOT_NAME;\n @Input() schema!: NzSchema;\n @Input() schemaForm!: AbstractSchemaControl;\n\n type!: JSONSchemaTypes;\n schemaTypes = JSONSchemaTypes;\n widgetInjector!: Injector | null;\n WidgetComponent!: Type<any> | null;\n controls: AbstractSchemaControl[] = [];\n\n readonly narrowGroup = (form: AbstractSchemaControl): SchemaFormGroup => form as SchemaFormGroup;\n readonly narrowArray = (form: AbstractSchemaControl): SchemaFormArray => form as SchemaFormArray;\n readonly narrowControl = (form: AbstractSchemaControl): SchemaFormControl => form as SchemaFormControl;\n\n private schemaWidgetRegistryService = inject(SchemaWidgetRegistryService);\n private injector = inject(Injector);\n private schemaFormBuilder = inject(SchemaFormBuilder);\n private cdr = inject(ChangeDetectorRef);\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.schema) {\n const value = changes.schema.currentValue as NzSchema;\n this.type = (value.type as JSONSchemaTypes) || JSONSchemaTypes.OBJECT;\n this.setWidgetIfNeed();\n this.cdr.markForCheck();\n }\n if (changes.schemaForm && this.type === JSONSchemaTypes.OBJECT) {\n this.controls = Object.values(this.narrowGroup(this.schemaForm).controls);\n this.cdr.markForCheck();\n }\n }\n\n setWidgetIfNeed(): void {\n const widgetName = getWidgetName(this.schema);\n if (!widgetName) {\n this.widgetInjector = null;\n this.WidgetComponent = null;\n return;\n }\n const widgetComponent = this.schemaWidgetRegistryService.getWidget(this.schema);\n if (widgetComponent) {\n this.createWidgetInjector();\n this.WidgetComponent = widgetComponent;\n } else {\n this.widgetInjector = null;\n this.WidgetComponent = null;\n }\n }\n\n createWidgetInjector(): void {\n this.widgetInjector = Injector.create({\n providers: [{ provide: SCHEMA_FORM, useValue: this.schemaForm }],\n parent: this.injector\n });\n }\n\n push(formArray: SchemaFormArray): void {\n const schema = getItemSchema(getSchema(this.schema, formArray.schemaContext.root), formArray.length);\n formArray.push(this.schemaFormBuilder.createControl(formArray.schemaContext.child(schema, formArray.length)));\n }\n\n removeAt(formArray: SchemaFormArray, index: number): void {\n formArray.removeAt(index);\n }\n}\n","@if (!WidgetComponent) {\n @switch (type) {\n @case (schemaTypes.OBJECT) {\n @if (schema.title) {\n <nz-divider [nzText]=\"schema.title\" nzOrientation=\"left\"></nz-divider>\n }\n @for (item of controls; track item) {\n <nz-schema-field [schemaForm]=\"item\" [schema]=\"item.schemaContext.schema\"></nz-schema-field>\n }\n }\n @case (schemaTypes.ARRAY) {\n @if (schema.title) {\n <nz-divider [nzText]=\"schema.title\" nzOrientation=\"left\"></nz-divider>\n }\n @for (item of narrowArray(schemaForm).controls; track item) {\n <div class=\"array-item\">\n <nz-schema-field [schemaForm]=\"item\" [schema]=\"item.schemaContext.schema\"></nz-schema-field>\n <button\n nz-button\n nzType=\"default\"\n nzShape=\"circle\"\n (click)=\"removeAt(narrowArray(schemaForm), $index)\"\n >\n -\n </button>\n </div>\n }\n <button\n class=\"add-btn\"\n nz-button\n nzType=\"default\"\n nzShape=\"circle\"\n (click)=\"push(narrowArray(schemaForm))\"\n >\n +\n </button>\n }\n @case (schemaTypes.NUMBER) {\n <nz-number-field [schemaForm]=\"narrowControl(schemaForm)\"></nz-number-field>\n }\n @case (schemaTypes.INTEGER) {\n <nz-number-field [schemaForm]=\"narrowControl(schemaForm)\"></nz-number-field>\n }\n @case (schemaTypes.BOOLEAN) {\n <nz-boolean-field [schemaForm]=\"narrowControl(schemaForm)\"></nz-boolean-field>\n }\n @case (schemaTypes.STRING) {\n <nz-string-field [schemaForm]=\"narrowControl(schemaForm)\"></nz-string-field>\n }\n @case (schemaTypes.NULL) {\n <nz-string-field [schemaForm]=\"narrowControl(schemaForm)\"></nz-string-field>\n }\n }\n} @else if (widgetInjector) {\n <ng-container *ngComponentOutlet=\"WidgetComponent; injector: widgetInjector\"></ng-container>\n}\n","import { ChangeDetectionStrategy, Component, inject, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { NzFormModule } from 'ng-zorro-antd/form';\n\nimport { SchemaFormGroup } from './forms/forms';\nimport { SchemaFormBuilder } from './forms/schema-form-builder';\nimport { NzSchema } from './interfaces/nz-schema';\nimport { SchemaFieldComponent } from './schema-field/schema-field.component';\n\n@Component({\n selector: 'nz-schema',\n template: `\n <form nz-form [formGroup]=\"form\">\n <nz-schema-field [schema]=\"nzSchema\" [schemaForm]=\"form\"></nz-schema-field>\n </form>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SchemaFieldComponent, NzFormModule, ReactiveFormsModule]\n})\nexport class NzSchemaComponent implements OnChanges {\n @Input() nzSchema!: NzSchema;\n @Input() nzFormValue: any;\n\n form!: SchemaFormGroup;\n private schemaFormBuilder = inject(SchemaFormBuilder);\n\n ngOnChanges(changes: SimpleChanges): void {\n const { nzSchema: schema, nzFormValue: formValue } = changes;\n if (!schema && formValue) {\n this.setFormValue();\n } else if (schema) {\n this.buildForm();\n }\n }\n\n private buildForm(): void {\n this.form = this.schemaFormBuilder.build(this.nzSchema, this.nzFormValue);\n }\n\n private setFormValue(): void {\n if (this.nzFormValue && this.form) {\n this.form.setValue(this.nzFormValue, { emitEvent: false });\n }\n }\n}\n","/*\n * Public API Surface of nz-schema\n */\n\nexport * from './lib/nz-schema.component';\nexport * from './lib/interfaces/public-api';\nexport * from './lib/custom-widget';\nexport * from './lib/forms/public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["defaultMessage","i3","i4","i5","i1","i2"],"mappings":"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"}