{"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      &nbsp;\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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"}