{"version":3,"file":"dashjoin-json-schema-form.mjs","sources":["../../../../projects/dashjoin/json-schema-form/src/lib/json-schema-form.service.ts","../../../../projects/dashjoin/json-schema-form/src/lib/base/base.component.ts","../../../../projects/dashjoin/json-schema-form/src/lib/base/base.component.html","../../../../projects/dashjoin/json-schema-form/src/lib/wrapper/comp.directive.ts","../../../../projects/dashjoin/json-schema-form/src/lib/boolean/boolean.component.ts","../../../../projects/dashjoin/json-schema-form/src/lib/boolean/boolean.component.html","../../../../projects/dashjoin/json-schema-form/src/lib/input/input.component.ts","../../../../projects/dashjoin/json-schema-form/src/lib/input/input.component.html","../../../../projects/dashjoin/json-schema-form/src/lib/select/select.component.ts","../../../../projects/dashjoin/json-schema-form/src/lib/select/select.component.html","../../../../projects/dashjoin/json-schema-form/src/lib/upload/upload.component.ts","../../../../projects/dashjoin/json-schema-form/src/lib/upload/upload.component.html","../../../../projects/dashjoin/json-schema-form/src/lib/date/date.component.ts","../../../../projects/dashjoin/json-schema-form/src/lib/date/date.component.html","../../../../projects/dashjoin/json-schema-form/src/lib/textarea/textarea.component.ts","../../../../projects/dashjoin/json-schema-form/src/lib/textarea/textarea.component.html","../../../../projects/dashjoin/json-schema-form/src/lib/autocomplete/autocomplete.component.ts","../../../../projects/dashjoin/json-schema-form/src/lib/autocomplete/autocomplete.component.html","../../../../projects/dashjoin/json-schema-form/src/lib/chips/chips.component.ts","../../../../projects/dashjoin/json-schema-form/src/lib/chips/chips.component.html","../../../../projects/dashjoin/json-schema-form/src/lib/wrapper/wrapper.component.ts","../../../../projects/dashjoin/json-schema-form/src/lib/wrapper/wrapper.component.html","../../../../projects/dashjoin/json-schema-form/src/lib/additional-properties/additional-properties.component.ts","../../../../projects/dashjoin/json-schema-form/src/lib/additional-properties/additional-properties.component.html","../../../../projects/dashjoin/json-schema-form/src/lib/array/array.component.ts","../../../../projects/dashjoin/json-schema-form/src/lib/array/array.component.html","../../../../projects/dashjoin/json-schema-form/src/lib/json-pointer.ts","../../../../projects/dashjoin/json-schema-form/src/lib/object/object.component.ts","../../../../projects/dashjoin/json-schema-form/src/lib/object/object.component.html","../../../../projects/dashjoin/json-schema-form/src/lib/tab/tab.component.ts","../../../../projects/dashjoin/json-schema-form/src/lib/tab/tab.component.html","../../../../projects/dashjoin/json-schema-form/src/lib/table/table.component.ts","../../../../projects/dashjoin/json-schema-form/src/lib/table/table.component.html","../../../../projects/dashjoin/json-schema-form/src/lib/json-schema-form.component.ts","../../../../projects/dashjoin/json-schema-form/src/lib/json-schema-form.module.ts","../../../../projects/dashjoin/json-schema-form/src/lib/state.ts","../../../../projects/dashjoin/json-schema-form/src/public-api.ts","../../../../projects/dashjoin/json-schema-form/src/dashjoin-json-schema-form.ts"],"sourcesContent":["import { Injectable, Type } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class JsonSchemaFormService {\n\n  constructor() { }\n\n  /**\n   * registry of custom widgets. The keys are the values used in schema.widgetType, the values\n   * are the Type<any> of the custom widget component implementing WidgetComponent\n   */\n  registry: any = {};\n\n  /**\n   * register custom component\n   * @param key     the name of the component which is used in schema extension: widget=custom, widgetType=key\n   * @param value   the implementation class\n   */\n  registerComponent(key: string, value: Type<any>) {\n    this.registry[key] = value;\n  }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Component, Input, OnInit, Type, ViewChild } from '@angular/core';\nimport { AbstractControl, FormArray, FormControl, FormGroup, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\nimport { map, Observable, startWith } from 'rxjs';\nimport { Choice } from '../choice';\nimport { JsonSchemaFormService } from '../json-schema-form.service';\nimport { Schema } from '../schema';\nimport { State } from '../state';\nimport jsonata from 'jsonata'\nimport { KeyValue } from '@angular/common';\n\n/**\n * base component for all form elements\n */\n@Component({\n  selector: 'app-base',\n  templateUrl: './base.component.html',\n  styleUrls: ['./base.component.css']\n})\nexport class BaseComponent implements OnInit {\n\n  /**\n   * built-in formats\n   */\n  static formats: any = {\n    email: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\n    ipv4: /^(?!0)(?!.*\\.$)((1?\\d?\\d|25[0-5]|2[0-4]\\d)(\\.|$)){4}$/,\n    url: /^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)$/,\n    uri: /^\\w+:(\\/?\\/?)[^\\s]+$/\n  };\n\n  @Input() state!: State;\n\n  choices: Choice[] = []\n\n  filteredOptions!: Observable<Choice[]>;\n\n  constructor(protected http: HttpClient, protected service: JsonSchemaFormService) { }\n\n  ngOnInit() {\n\n    // make sure control matches the schema\n    if (this.state.schema.type === 'object') {\n      if (!(this.state.control instanceof FormGroup))\n        throw new Error('For object schema, control must be a FormGroup');\n    }\n    else if (this.state.schema.type === 'array' && this.state.schema.layout !== 'select' && this.state.schema.layout !== 'chips') {\n      if (!(this.state.control instanceof FormArray))\n        throw new Error('For array schema, control must be a FormArray');\n    } else {\n      if (!(this.state.control instanceof FormControl))\n        throw new Error('For primitive schema, control must be a FormControl');\n    }\n\n    // load choices\n    if (this.state.schema.choicesUrl) {\n      const request = this.state.schema.choicesVerb === 'GET' ?\n        this.http.get(this.state.schema.choicesUrl) :\n        this.http.post(this.state.schema.choicesUrl, {})\n      request.subscribe((res: any) => {\n        if (this.state.schema.jsonata) {\n          jsonata(this.state.schema.jsonata).evaluate(res).then(res2 => {\n            this.setChoices(res2 as any)\n          })\n        }\n        else\n          this.setChoices(res as any)\n      })\n    }\n\n    if (this.state.schema.enum) {\n      // translate enum to choices\n      this.setChoices(this.state.schema.enum)\n    }\n    else if (this.state.schema.choices) {\n      this.setChoices(this.state.schema.choices)\n    } else if (this.state.value)\n      // default choice is current value\n      this.setChoices([this.state.value])\n\n    // set name to title if set\n    if (this.state.schema.title)\n      this.state.name = this.state.schema.title\n  }\n\n  setChoices(choices: any[]) {\n    this.choices = []\n    for (const choice of choices)\n      if (choice?.name && choice?.value)\n        this.choices.push(choice)\n      else\n        this.choices.push({\n          value: choice,\n          name: choice ? choice : ''\n        })\n    this.filteredOptions = this.state.control.valueChanges.pipe(\n      startWith(''),\n      map(value => this._filter(value || '')),\n    );\n  }\n\n  _filter(value: string): Choice[] {\n    const filterValue = value.toLowerCase();\n    return this.choices.filter(option => option.name.toLowerCase().includes(filterValue));\n  }\n\n  /**\n   * cast control to primitive type\n   */\n  formControl(): FormControl {\n    return this.state.control as FormControl;\n  }\n\n  /**\n   * case control to group / object\n   */\n  formGroup(): FormGroup {\n    return this.state.control as FormGroup;\n  }\n\n  /**\n   * case control to array\n   */\n  formArray(): FormArray {\n    return this.state.control as FormArray;\n  }\n\n  /**\n   * create control and pass value to it\n   */\n  static createControl(schema: Schema, value: any, required: boolean): AbstractControl {\n    if (schema.type === 'object') {\n      return new FormGroup({});\n    }\n    if (schema.type === 'array' && schema.layout !== 'select' && schema.layout !== 'chips') {\n      return new FormArray([]);\n    }\n\n    const control = new FormControl();\n    this.prepareControl(control, schema, value, required)\n    return control\n  }\n\n  static prepareControl(control: AbstractControl, schema: Schema, value: any, required: boolean) {\n    // handle default\n    if (schema.default)\n      if (!value)\n        value = schema.default\n\n    if (schema.type !== 'object' && schema.type !== 'array')\n      control.setValue(value)\n\n    if (required)\n      control.addValidators(Validators.required)\n\n    if (schema.pattern)\n      control.addValidators(Validators.pattern(schema.pattern))\n\n    if (schema.format)\n      control.addValidators(Validators.pattern(this.formats[schema.format]))\n\n    if (schema.maxLength)\n      control.addValidators(Validators.maxLength(schema.maxLength))\n\n    if (schema.minLength)\n      control.addValidators(Validators.minLength(schema.minLength))\n\n    if (schema.multipleOf)\n      control.addValidators(multipleOf(schema.multipleOf))\n\n    if (schema.maximum)\n      control.addValidators(Validators.max(schema.maximum))\n\n    if (schema.minimum)\n      control.addValidators(Validators.min(schema.minimum))\n\n    if (schema.exclusiveMaximum)\n      control.addValidators(Validators.max(schema.exclusiveMaximum - 1))\n\n    if (schema.exclusiveMinimum)\n      control.addValidators(Validators.min(schema.exclusiveMinimum + 1))\n\n    if (schema.maxItems)\n      control.addValidators(maxItems(schema.maxItems))\n\n    if (schema.minItems)\n      control.addValidators(minItems(schema.minItems))\n\n    if (schema.maxProperties)\n      control.addValidators(maxProperties(schema.maxProperties))\n\n    if (schema.minProperties)\n      control.addValidators(minProperties(schema.minProperties))\n\n    if (schema.uniqueItems)\n      control.addValidators(uniqueItems())\n\n    if (schema.propertyNames)\n      control.addValidators(propertyNames(schema.propertyNames))\n\n    if (schema.dependencies)\n      control.addValidators(dependencies(schema.dependencies))\n\n    if (schema.readOnly)\n      control.disable()\n\n    if (schema.createOnly && value)\n      control.disable()\n\n    return control\n  }\n\n  /**\n   * angular pipe sorting function for keyValue - keep the JSON order and do not\n   * order alphabetically\n   */\n  originalOrder = (a: KeyValue<string, Schema>, b: KeyValue<string, Schema>): number => {\n    return 0;\n  }\n}\n\nfunction multipleOf(multiple: number): ValidatorFn {\n  return (control: AbstractControl): ValidationErrors | null => {\n    if (control.value % multiple === 0)\n      return null\n    else\n      return { multipleOf: { value: control.value } }\n  };\n}\n\nfunction maxItems(max: number): ValidatorFn {\n  return (control: AbstractControl): ValidationErrors | null => {\n    if (control.value.length <= max)\n      return null\n    else\n      return { maxItems: { value: control.value } }\n  };\n}\n\nfunction minItems(min: number): ValidatorFn {\n  return (control: AbstractControl): ValidationErrors | null => {\n    if (control.value.length >= min)\n      return null\n    else\n      return { minItems: { value: control.value } }\n  };\n}\n\nfunction maxProperties(max: number): ValidatorFn {\n  return (control: AbstractControl): ValidationErrors | null => {\n    if (Object.keys(control.value).length <= max)\n      return null\n    else\n      return { maxProperties: { value: control.value } }\n  };\n}\n\nfunction minProperties(min: number): ValidatorFn {\n  return (control: AbstractControl): ValidationErrors | null => {\n    if (Object.keys(control.value).length >= min)\n      return null\n    else\n      return { minProperties: { value: control.value } }\n  };\n}\n\nfunction uniqueItems(): ValidatorFn {\n  return (control: AbstractControl): ValidationErrors | null => {\n    const unique: any = []\n    for (const i of control.value)\n      if (!unique.includes(i))\n        unique.push(i)\n    if (unique.length === control.value.length)\n      return null\n    else\n      return { minItems: { value: control.value } }\n  };\n}\n\nfunction propertyNames(pattern: string): ValidatorFn {\n  return (control: AbstractControl): ValidationErrors | null => {\n    for (const key of Object.keys(control.value)) {\n      const re = new RegExp(pattern);\n      if (!re.test(key))\n        return { propertyNames: { value: control.value } }\n    };\n    return null\n  }\n}\n\nfunction dependencies(map: any): ValidatorFn {\n  return (control: AbstractControl): ValidationErrors | null => {\n    for (const [k, v] of Object.entries(map))\n      if (control.value[k])\n        for (const i of v as any)\n          if (!control.value[i])\n            return { propertyNames: { value: control.value } }\n    return null\n  }\n}\n","<!--\n\n<app-input *ngIf=\"state.schema.type === 'string'\" [state]=\"state\"></app-input>\n<app-boolean *ngIf=\"state.schema.type === 'boolean'\" [state]=\"state\"></app-boolean>\n<app-object *ngIf=\"state.schema.type === 'object'\" [state]=\"state\"></app-object>\n<app-array *ngIf=\"state.schema.type === 'array'\" [state]=\"state\"></app-array>\n\n-->","import { Directive, ViewContainerRef } from '@angular/core';\n\n/**\n * directive to dynamically add form elements\n */\n@Directive({\n    selector: '[compHost]',\n})\nexport class CompDirective {\n    constructor(public viewContainerRef: ViewContainerRef) { }\n}\n","import { Component } from '@angular/core';\nimport { BaseComponent } from '../base/base.component';\n\n/**\n * use checkbox for boolean\n */\n@Component({\n  selector: 'app-boolean',\n  templateUrl: './boolean.component.html',\n  styleUrls: ['./boolean.component.css']\n})\nexport class BooleanComponent extends BaseComponent {\n}\n","<mat-checkbox [formControl]=\"formControl()\">{{state.name}}</mat-checkbox>","import { Component } from '@angular/core';\nimport { BaseComponent } from '../base/base.component';\n\n/**\n * single text field inputs\n */\n@Component({\n  selector: 'app-input',\n  templateUrl: './input.component.html',\n  styleUrls: ['./input.component.css']\n})\nexport class InputComponent extends BaseComponent {\n\n  /**\n   * called from template in the \"simple\" type. If \"type\" is \"number\" or \"integer\",\n   * the HTML input type is \"number\" which avoids normal string input\n   */\n  getInputType(): string {\n    if (this.state.schema.type === 'number') {\n      return 'number';\n    }\n    if (this.state.schema.type === 'integer') {\n      return 'number';\n    }\n    return this.state.schema.widget ? this.state.schema.widget : 'string';\n  }\n}\n","<mat-form-field>\n    <mat-label>{{state.name}}</mat-label>\n    <input *ngIf=\"getInputType() !== 'number'\" matInput [type]=\"getInputType()\" [formControl]=\"formControl()\"\n        [placeholder]=\"state.schema.examples && state.schema.examples[0] ? state.schema.examples[0] : ''\">\n    <input *ngIf=\"getInputType() === 'number'\" matInput type=\"number\" [formControl]=\"formControl()\"\n        [placeholder]=\"state.schema.examples && state.schema.examples[0] ? state.schema.examples[0] : ''\">\n    <mat-error *ngIf=\"state.schema.errorMessage\">{{state.schema.errorMessage}}</mat-error>\n</mat-form-field>","import { Component } from '@angular/core';\nimport { BaseComponent } from '../base/base.component';\n\n/**\n * select input\n */\n@Component({\n  selector: 'app-select',\n  templateUrl: './select.component.html',\n  styleUrls: ['./select.component.css']\n})\nexport class SelectComponent extends BaseComponent {\n\n}\n","<mat-form-field>\n    <mat-label>{{state.name}}</mat-label>\n    <mat-select [formControl]=\"formControl()\" [multiple]=\"state.schema.type === 'array'\">\n        <mat-option *ngFor=\"let choice of choices\" [value]=\"choice.value\">{{choice.name}}</mat-option>\n    </mat-select>\n</mat-form-field>","import { Component } from '@angular/core';\nimport { BaseComponent } from '../base/base.component';\n\n@Component({\n  selector: 'app-upload',\n  templateUrl: './upload.component.html',\n  styleUrls: ['./upload.component.css']\n})\nexport class UploadComponent extends BaseComponent {\n\n  /**\n   * allows for the result of a file upload to be written into a text form element\n   */\n  handleFileInput(base64: boolean, event: any) {\n    if (10 * 1024 * 1024 <= event.target.files.item(0).size) {\n      console.log('The file size is limited to 10MB');\n      return;\n    }\n    let value: any\n    const reader = new FileReader();\n    reader.onload = () => {\n      value = reader.result;\n\n      if (this.state.schema.type === 'array') {\n        value = JSON.parse(value);\n      }\n      if (this.state.schema.type === 'object') {\n        try {\n          value = JSON.parse(value);\n        }\n        catch (ignore) {\n        }\n        value = {\n          name: event.target.files.item(0).name,\n          lastModified: event.target.files.item(0).lastModified,\n          size: event.target.files.item(0).size,\n          type: event.target.files.item(0).type,\n          value: value\n        };\n      }\n\n      this.state.control.setValue(value)\n    };\n    if (base64) {\n      reader.readAsDataURL(event.target.files.item(0));\n    } else {\n      reader.readAsText(event.target.files.item(0));\n    }\n  }\n}\n","<!-- upload -->\n<div *ngIf=\"state.schema.widget === 'upload'\">\n    <input type=\"file\" id=\"file\" (change)=\"handleFileInput(false, $event)\">\n</div>\n\n<!-- upload64 -->\n<div *ngIf=\"state.schema.widget === 'upload64'\">\n    <input type=\"file\" id=\"file\" (change)=\"handleFileInput(true, $event)\">\n</div>","import { Component, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { BaseComponent } from '../base/base.component';\n\n@Component({\n  selector: 'app-date',\n  templateUrl: './date.component.html',\n  styleUrls: ['./date.component.css']\n})\nexport class DateComponent extends BaseComponent implements OnInit {\n\n  control!: FormControl\n\n  override ngOnInit(): void {\n    if (this.state.schema.type === 'integer') {\n      // create a new control and convert between timestamp and Date\n      this.control = new FormControl(new Date(this.state.value))\n      this.control.valueChanges.subscribe(res => {\n        this.state.control.setValue(res instanceof Date ? res.valueOf() : res)\n      })\n    } else if (this.state.schema.dateFormat) {\n      // create a new control and convert between Date format string and Date\n      this.control = this.state.control as FormControl\n      const pdate = this.state.value.split(this.getDelimiter(this.state.schema.dateFormat));\n      const pformat = this.state.schema.dateFormat.split(this.getDelimiter(this.state.schema.dateFormat));\n      this.control = new FormControl(new Date(pdate[pformat.indexOf('yyyy')], pdate[pformat.indexOf('MM')] - 1, pdate[pformat.indexOf('dd')]))\n      this.control.valueChanges.subscribe(date => {\n        if (!date) {\n          this.state.control.setValue(null)\n          return\n        }\n        const pformat = this.state.schema.dateFormat!.split(this.getDelimiter(this.state.schema.dateFormat!));\n        const pdate = [null, null, null];\n        pdate[pformat.indexOf('yyyy')] = date.getFullYear();\n        pdate[pformat.indexOf('MM')] = date.getMonth() + 1;\n        pdate[pformat.indexOf('dd')] = date.getDate();\n        this.state.control.setValue(pdate[0] + this.getDelimiter(this.state.schema.dateFormat!) + pdate[1] + this.getDelimiter(this.state.schema.dateFormat!) + pdate[2])\n      })\n    }\n    else\n      // use state.control directly\n      this.control = this.state.control as FormControl\n  }\n\n  /**\n   * find the first non letter character in a date format such as dd/MM/yyyy (returns /)\n   */\n  getDelimiter(format: string): string {\n    const delim = format.match(/\\W/g);\n    if (!delim?.[0]) {\n      throw new Error('No delimiter found in date format: ' + format);\n    }\n    return delim[0];\n  }\n}\n","<mat-form-field>\n    <mat-label>{{state.name}}</mat-label>\n    <input matInput [matDatepicker]=\"picker\" [formControl]=\"control\">\n    <mat-datepicker-toggle matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\n    <mat-datepicker #picker></mat-datepicker>\n</mat-form-field>","import { Component } from '@angular/core';\nimport { BaseComponent } from '../base/base.component';\n\n@Component({\n  selector: 'app-textarea',\n  templateUrl: './textarea.component.html',\n  styleUrls: ['./textarea.component.css']\n})\nexport class TextareaComponent extends BaseComponent {\n\n}\n","<mat-form-field [ngStyle]=\"state.schema.style\" [ngClass]=\"state.schema.class\">\n    <mat-label>{{state.name}}</mat-label>\n    <textarea matInput [formControl]=\"formControl()\"></textarea>\n</mat-form-field>","import { Component } from '@angular/core';\nimport { BaseComponent } from '../base/base.component';\n\n@Component({\n  selector: 'app-autocomplete',\n  templateUrl: './autocomplete.component.html',\n  styleUrls: ['./autocomplete.component.css']\n})\nexport class AutocompleteComponent extends BaseComponent {\n\n}\n","<mat-form-field>\n    <mat-label>{{state.name}}</mat-label>\n    <input type=\"text\" matInput [formControl]=\"formControl()\" [matAutocomplete]=\"auto\">\n    <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\">\n        <mat-option *ngFor=\"let option of filteredOptions | async\" [value]=\"option.value\">\n            {{option.name}}\n        </mat-option>\n    </mat-autocomplete>\n</mat-form-field>","import { Component, OnInit } from '@angular/core';\nimport { MatChipEditedEvent, MatChipInputEvent } from '@angular/material/chips';\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\nimport { BaseComponent } from '../base/base.component';\n\n@Component({\n  selector: 'app-chips',\n  templateUrl: './chips.component.html',\n  styleUrls: ['./chips.component.css']\n})\nexport class ChipsComponent extends BaseComponent implements OnInit {\n\n  override ngOnInit(): void {\n    super.ngOnInit()\n    if (!this.state.value)\n      this.state.value = []\n  }\n\n  addOnBlur = true;\n  readonly separatorKeysCodes = [ENTER, COMMA] as const;\n\n  add(event: MatChipInputEvent): void {\n    const value = (event.value || '').trim();\n\n    // Add our fruit\n    if (value) {\n      this.state.value.push(value);\n    }\n\n    // Clear the input value\n    event.chipInput!.clear();\n\n    this.state.control.setValue(this.state.value)\n  }\n\n  remove(fruit: string): void {\n    const index = this.state.value.indexOf(fruit);\n\n    if (index >= 0) {\n      this.state.value.splice(index, 1);\n    }\n\n    this.state.control.setValue(this.state.value)\n  }\n\n  edit(fruit: string, event: MatChipEditedEvent) {\n    const value = event.value.trim();\n\n    // Remove fruit if it no longer has a name\n    if (!value) {\n      this.remove(fruit);\n      return;\n    }\n\n    // Edit existing fruit\n    const index = this.state.value.indexOf(fruit);\n    if (index >= 0) {\n      this.state.value[index] = value;\n    }\n\n    this.state.control.setValue(this.state.value)\n  }\n}\n","<mat-form-field>\n    <mat-label>{{state.name}}</mat-label>\n    <mat-chip-grid #chipGrid>\n        <mat-chip-row *ngFor=\"let fruit of state.value\" (removed)=\"remove(fruit)\" [editable]=\"true\"\n            (edited)=\"edit(fruit, $event)\" [aria-description]=\"'press enter to edit ' + fruit\">\n            {{fruit}}\n            <button matChipRemove [attr.aria-label]=\"'remove ' + fruit\">\n                <mat-icon>cancel</mat-icon>\n            </button>\n        </mat-chip-row>\n        <input [matChipInputFor]=\"chipGrid\" [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n            [matChipInputAddOnBlur]=\"addOnBlur\" (matChipInputTokenEnd)=\"add($event)\" />\n    </mat-chip-grid>\n</mat-form-field>","import { Component, OnInit, Type, ViewChild } from '@angular/core';\nimport { BaseComponent } from '../base/base.component';\nimport { CompDirective } from './comp.directive';\nimport { BooleanComponent } from '../boolean/boolean.component';\nimport { InputComponent } from '../input/input.component';\nimport { SelectComponent } from '../select/select.component';\nimport { UploadComponent } from '../upload/upload.component';\nimport { DateComponent } from '../date/date.component';\nimport { TextareaComponent } from '../textarea/textarea.component';\nimport { AutocompleteComponent } from '../autocomplete/autocomplete.component';\nimport { ChipsComponent } from '../chips/chips.component';\n\n/**\n * determine which form element to use and render it dynamically\n */\n@Component({\n  selector: 'app-wrapper',\n  templateUrl: './wrapper.component.html',\n  styleUrls: ['./wrapper.component.css']\n})\nexport class WrapperComponent extends BaseComponent implements OnInit {\n\n  /**\n   * set from json-schema-form component to avoid cyclic imports\n   */\n  static objectComponent: Type<any>\n  static arrayComponent: Type<any>\n  static tabComponent: Type<any>\n  static tableComponent: Type<any>\n  static additionalPropertiesComponent: Type<any>\n\n  /**\n   * dynamically render form element\n   */\n  @ViewChild(CompDirective, { static: true }) compHost!: CompDirective;\n\n  /**\n   * determine which form element to use\n   */\n  override ngOnInit() {\n\n    const viewContainerRef = this.compHost.viewContainerRef;\n    viewContainerRef.clear();\n\n    let type: Type<any>;\n    if (this.state.schema.additionalProperties)\n      type = WrapperComponent.additionalPropertiesComponent;\n    else if (this.state.schema.layout === 'tab')\n      type = WrapperComponent.tabComponent;\n    else if (this.state.schema.layout === 'table')\n      type = WrapperComponent.tableComponent;\n    else if (this.state.schema.layout === 'select')\n      type = SelectComponent;\n    else if (this.state.schema.layout === 'chips')\n      type = ChipsComponent;\n    else if (this.state.schema.type === 'object')\n      type = WrapperComponent.objectComponent;\n    else if (this.state.schema.type === 'array')\n      type = WrapperComponent.arrayComponent;\n    else if (this.state.schema.widget === 'select')\n      type = SelectComponent;\n    else if (this.state.schema.choicesUrl || this.state.schema.choices)\n      type = AutocompleteComponent;\n    else if (this.state.schema.enum)\n      type = SelectComponent;\n    else if (this.state.schema.widget === 'custom')\n      type = this.service.registry[this.state.schema.widgetType!];\n    else if (this.state.schema.widget === 'textarea')\n      type = TextareaComponent;\n    else if (this.state.schema.widget === 'date')\n      type = DateComponent;\n    else if (this.state.schema.widget === 'upload')\n      type = UploadComponent;\n    else if (this.state.schema.widget === 'upload64')\n      type = UploadComponent;\n    else if (this.state.schema.type === 'string')\n      type = InputComponent;\n    else if (this.state.schema.type === 'number')\n      type = InputComponent;\n    else if (this.state.schema.type === 'integer')\n      type = InputComponent;\n    else if (this.state.schema.type === 'boolean')\n      type = BooleanComponent;\n    else\n      throw new Error(JSON.stringify(this.state.schema));\n\n    const componentRef = viewContainerRef.createComponent<BaseComponent>(type);\n    componentRef.instance.state = this.state;\n  }\n}\n","<span [matTooltip]=\"state.schema.description ? state.schema.description : ''\">\n    <ng-template compHost [matTooltip]=\"state.schema.description ? state.schema.description : ''\"></ng-template>\n</span>","import { Component } from '@angular/core';\nimport { BaseComponent } from '../base/base.component';\nimport { State } from '../state';\n\n@Component({\n  selector: 'app-additional-properties',\n  templateUrl: './additional-properties.component.html',\n  styleUrls: ['./additional-properties.component.css']\n})\nexport class AdditionalPropertiesComponent extends BaseComponent {\n\n  hover: number | null = null\n\n  /**\n   * child states\n   */\n  states: State[] = [];\n\n  /**\n   * populate FormGroup\n   */\n  override ngOnInit(): void {\n    super.ngOnInit();\n    if (this.state.value)\n      for (const [k, v] of Object.entries(this.state.value)) {\n\n        const control = BaseComponent.createControl(this.state.schema.additionalProperties!, v,\n          this.state.schema.required ? this.state.schema.required.includes(k) : false);\n        this.formGroup().addControl(k, control);\n\n        this.states.push({\n          name: k,\n          schema: this.state.schema.additionalProperties!,\n          value: v,\n          control\n        })\n      }\n  }\n\n  change(event: any, i: number) {\n    const control = BaseComponent.createControl(this.state.schema.additionalProperties!, undefined, false)\n    const oldKey = Object.keys(this.formGroup().value)[i]\n    const newKey = event.target.value\n    const state = {\n      name: newKey,\n      schema: this.state.schema.additionalProperties!,\n      value: undefined,\n      control\n    }\n    this.states.splice(i, 1, state)\n    this.formGroup().addControl(newKey, control)\n    this.formGroup().removeControl(oldKey)\n  }\n\n  add() {\n    if (Object.keys(this.formGroup().value).includes(''))\n      // already contains empty key\n      return\n    const control = BaseComponent.createControl(this.state.schema.additionalProperties!, undefined, false)\n    this.states.push({\n      name: '',\n      schema: this.state.schema.additionalProperties!,\n      value: undefined,\n      control\n    })\n    this.formGroup().addControl('', control)\n  }\n\n  remove(i: number) {\n    const key = Object.keys(this.formGroup().value)[i]\n    this.formGroup().removeControl(key)\n    this.states.splice(i, 1)\n  }\n}\n","<span *ngFor=\"let s of states; let i = index\">\n    <span (mouseenter)=\"hover=i\" (mouseleave)=\"hover=null\">\n        <mat-form-field>\n            <mat-label>{{state.name}}</mat-label>\n            <input matInput [value]=\"s.name\" (change)=\"change($event, i)\">\n        </mat-form-field>\n        &nbsp;\n        <app-wrapper [state]=\"s\"></app-wrapper>\n        <button mat-icon-button (click)=\"remove(i)\" [style.visibility]=\"i===hover ? 'visible' : 'hidden'\">\n            <mat-icon>remove_circle_outline</mat-icon>\n        </button>\n        &nbsp;\n    </span>\n</span>\n<button mat-icon-button (click)=\" add()\">\n    <mat-icon>add_circle_outline</mat-icon>\n</button>","import { Component } from '@angular/core';\nimport { BaseComponent } from '../base/base.component';\nimport { State } from '../state';\n\n/**\n * renders arrays as a list of subforms with + and - buttons\n */\n@Component({\n  selector: 'app-array',\n  templateUrl: './array.component.html',\n  styleUrls: ['./array.component.css']\n})\nexport class ArrayComponent extends BaseComponent {\n\n  /**\n   * child states\n   */\n  states: State[] = [];\n\n  /**\n   * which subform is active\n   */\n  hover: number | null = null\n\n  /**\n   * populate FormArray control\n   */\n  override ngOnInit(): void {\n    super.ngOnInit();\n    let i = 0;\n    if (this.state.schema.items && this.state.value)\n      for (const v of this.state.value) {\n\n        const control = BaseComponent.createControl(this.state.schema.items, v, false);\n        this.formArray().setControl(i, control);\n        this.states.push({\n          name: this.state.name,\n          schema: this.state.schema.items,\n          value: v,\n          control\n        });\n        i++;\n      }\n  }\n\n  /**\n   * add a new element\n   */\n  add() {\n    const control = BaseComponent.createControl(this.state.schema.items!, undefined, false);\n    this.formArray().setControl(this.states.length, control);\n    this.states.push({\n      name: this.state.name,\n      schema: this.state.schema.items!,\n      value: undefined,\n      control\n    });\n  }\n\n  /**\n   * remove element at index i\n   */\n  remove(i: number) {\n    this.states.splice(i, 1)\n    this.formArray().removeAt(i)\n  }\n}\n","<div\n    [ngStyle]=\"{display:'flex', 'flex-wrap': 'wrap', 'flex-direction': this.state.schema.layout === 'vertical' ? 'column':'row'}\">\n    <div *ngFor=\"let s of states; let i = index\" (mouseenter)=\"hover=i\" (mouseleave)=\"hover=null\">\n        <app-wrapper [state]=\"s\"></app-wrapper>\n        <button mat-icon-button (click)=\"remove(i)\" [style.visibility]=\"i===hover ? 'visible' : 'hidden'\">\n            <mat-icon>remove_circle_outline</mat-icon>\n        </button>\n    </div>\n    <button mat-icon-button (click)=\" add()\">\n        <mat-icon>add_circle_outline</mat-icon>\n    </button>\n</div>","/**\r\n * static JsonPointer implementation\r\n */\r\nexport class JsonPointer {\r\n\r\n    /**\r\n     * evaluate the JSON pointer on o\r\n     */\r\n    static jsonPointer(o: any, pointer: string): any {\r\n        return JsonPointer.jsonPointer2(o, JsonPointer.split(pointer));\r\n    }\r\n\r\n    /**\r\n     * evaluate the JSON pointer (parsed array of paths) on o\r\n     */\r\n    static jsonPointer2(o: any, paths: string[]): any {\r\n\r\n        if (o === undefined) {\r\n            return undefined;\r\n        }\r\n\r\n        if (paths.length === 0) {\r\n            return o;\r\n        }\r\n\r\n        const path = paths[0];\r\n        const np = Object.assign([], paths);\r\n        np.splice(0, 1);\r\n\r\n        if (paths[0] === '*') {\r\n            const res = [];\r\n            for (const f of (typeof (o) === 'object' ? Object.values(o) : o)) {\r\n                res.push(this.jsonPointer2(f, np));\r\n            }\r\n            return res;\r\n        } else {\r\n            return this.jsonPointer2(o[path], np);\r\n        }\r\n    }\r\n\r\n    /**\r\n     * strip leading / and split the JSON pointer\r\n     */\r\n    static split(s: string): string[] {\r\n        if (s === '') {\r\n            return [];\r\n        }\r\n        if (s.startsWith('/')) {\r\n            s = s.substring(1);\r\n            const arr = s.split('/');\r\n            for (const a of arr) {\r\n                if (a === '') {\r\n                    throw new Error('JSON Pointer must not contain an empty reference token');\r\n                }\r\n            }\r\n            return arr;\r\n        }\r\n        throw new Error('JSON Pointer must start with /');\r\n    }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\nimport { BaseComponent } from '../base/base.component';\nimport { State } from '../state';\n\n@Component({\n  selector: 'app-object',\n  templateUrl: './object.component.html',\n  styleUrls: ['./object.component.css']\n})\nexport class ObjectComponent extends BaseComponent implements OnInit {\n\n  /**\n   * child states\n   */\n  states: State[] = [];\n\n  /**\n   * populate FormGroup\n   */\n  override ngOnInit(): void {\n    super.ngOnInit();\n    if (this.state.schema.properties)\n      for (const [k, v] of Object.entries(this.state.schema.properties)) {\n\n        const control = BaseComponent.createControl(v, this.state.value?.[k],\n          this.state.schema.required ? this.state.schema.required.includes(k) : false);\n        this.formGroup().addControl(k, control);\n\n        this.states.push({\n          name: k,\n          schema: v,\n          value: this.state.value?.[k],\n          control\n        })\n      }\n  }\n\n  show(i: number): boolean {\n    if (this.state.schema.switch) {\n      const switc = this.formGroup().get(this.state.schema.switch)?.value\n      const prop = Object.values(this.state.schema.properties!)[i]\n      if (!prop.case)\n        return true\n      if (!switc)\n        return false\n      return (prop.case && prop.case.includes(switc))\n    }\n    return true\n  }\n\n  getState(o: string | string[]): State | undefined {\n    for (const state of this.states)\n      if (state.name === o)\n        return state\n    return undefined\n  }\n\n  getArray(o: string | string[]): string[] | undefined {\n    if (Array.isArray(o))\n      return o\n    return undefined\n  }\n}\n","<div *ngIf=\"!state.schema.order\"\n    [ngStyle]=\"{display:'flex', 'flex-wrap': 'wrap', 'flex-direction': this.state.schema.layout === 'vertical' ? 'column':'row'}\">\n    <div *ngFor=\"let s of states; let i = index\">\n        <app-wrapper *ngIf=\"show(i)\" [state]=\"s\"></app-wrapper>\n        &nbsp;\n    </div>\n</div>\n<div *ngIf=\"state.schema.order\"\n    [ngStyle]=\"{display:'flex', 'flex-wrap': 'wrap', 'flex-direction': this.state.schema.layout === 'vertical' ? 'column':'row'}\">\n    <div *ngFor=\"let o of this.state.schema.order\">\n        <app-wrapper *ngIf=\"getState(o)\" [state]=\"getState(o)!\"></app-wrapper>\n        <div\n            [ngStyle]=\"{display:'flex', 'flex-wrap': 'wrap', 'flex-direction': this.state.schema.layout === 'vertical' ? 'row':'column'}\">\n            <div *ngFor=\"let oo of getArray(o)\">\n                <app-wrapper [state]=\"getState(oo)!\"></app-wrapper>\n                &nbsp;\n            </div>\n        </div>\n        &nbsp;\n    </div>\n</div>","import { Component } from '@angular/core';\nimport { ArrayComponent } from '../array/array.component';\n\n@Component({\n  selector: 'app-tab',\n  templateUrl: './tab.component.html',\n  styleUrls: ['./tab.component.css']\n})\nexport class TabComponent extends ArrayComponent {\n\n}\n","<mat-tab-group>\n    <mat-tab *ngFor=\"let s of states; let i = index\" [label]=\"state.name + ' ' + (i+1)\">\n        <app-wrapper [state]=\"s\"></app-wrapper>\n        <button mat-icon-button (click)=\"remove(i)\">\n            <mat-icon>remove_circle_outline</mat-icon>\n        </button>\n    </mat-tab>\n    <mat-tab>\n        <ng-template mat-tab-label>\n            <button mat-icon-button (click)=\" add()\">\n                <mat-icon>add_circle_outline</mat-icon>\n            </button>\n        </ng-template>\n    </mat-tab>\n</mat-tab-group>","import { Component } from '@angular/core';\nimport { ArrayComponent } from '../array/array.component';\nimport { ObjectComponent } from '../object/object.component';\n\n@Component({\n  selector: 'app-table',\n  templateUrl: './table.component.html',\n  styleUrls: ['./table.component.css']\n})\nexport class TableComponent extends ArrayComponent {\n\n  rows: ObjectComponent[] = []\n\n  /**\n   * populate FormArray control\n   */\n  override ngOnInit(): void {\n    super.ngOnInit();\n\n    for (const state of this.states) {\n      const object = new ObjectComponent(this.http, this.service)\n      object.state = state\n      object.ngOnInit()\n      this.rows.push(object)\n    }\n  }\n\n  /**\n   * add a new element\n   */\n  override add() {\n    super.add()\n    const object = new ObjectComponent(this.http, this.service)\n    object.state = this.states[this.states.length - 1]\n    object.ngOnInit()\n    this.rows.push(object)\n  }\n\n  override remove(i: number): void {\n    super.remove(i)\n    this.rows.splice(i, 1)\n  }\n}\n","<table>\n    <tr>\n        <th *ngFor=\"let x of state.schema.items?.properties | keyvalue:originalOrder\">{{x.value.title ? x.value.title :\n            x.key}}\n        </th>\n        <th id=\"remove_row\"></th>\n    </tr>\n    <tr *ngFor=\"let s of states; let i = index\">\n        <td *ngFor=\"let x of state.schema.items?.properties | keyvalue:originalOrder; let column = index\">\n            <app-wrapper [state]=\"rows[i].states[column]\"></app-wrapper>\n        </td>\n        <td>\n            <button mat-icon-button (click)=\"remove(i)\">\n                <mat-icon>remove_circle_outline</mat-icon>\n            </button>\n        </td>\n    </tr>\n</table>\n<button mat-icon-button (click)=\" add()\">\n    <mat-icon>add_circle_outline</mat-icon>\n</button>","import { Component, Input, OnInit } from '@angular/core';\nimport { FormArray } from '@angular/forms';\nimport { BaseComponent } from '../public-api';\nimport { AdditionalPropertiesComponent } from './additional-properties/additional-properties.component';\nimport { ArrayComponent } from './array/array.component';\nimport { JsonPointer } from './json-pointer';\nimport { ObjectComponent } from './object/object.component';\nimport { Schema } from './schema';\nimport { State } from './state';\nimport { TabComponent } from './tab/tab.component';\nimport { TableComponent } from './table/table.component';\nimport { WrapperComponent } from './wrapper/wrapper.component';\n\n/**\n * entry component\n */\n@Component({\n  selector: 'lib-json-schema-form',\n  template: `\n    <app-wrapper [state]=\"resolvedState\"></app-wrapper>\n  `,\n  styles: [\n  ]\n})\nexport class JsonSchemaFormComponent implements OnInit {\n\n  @Input() state!: State;\n\n  resolvedState!: State\n\n  /**\n   * register container form elements to avoid cyclic imports\n   */\n  ngOnInit(): void {\n\n    const clone: Schema = JSON.parse(JSON.stringify(this.state.schema))\n\n    this.resolvedState = {\n      value: this.state.value,\n      schema: clone,\n      control: this.state.control,\n      name: this.state.name\n    }\n\n    WrapperComponent.arrayComponent = ArrayComponent\n    WrapperComponent.tabComponent = TabComponent\n    WrapperComponent.tableComponent = TableComponent\n    WrapperComponent.objectComponent = ObjectComponent\n    WrapperComponent.additionalPropertiesComponent = AdditionalPropertiesComponent\n\n    this.resolve(clone)\n\n    BaseComponent.prepareControl(this.state.control, clone, this.state.value, false)\n  }\n\n  resolve(schema?: Schema) {\n    if (!schema)\n      return\n    if (schema.$ref) {\n      if (schema.$ref.startsWith('#'))\n        for (const [k, v] of Object.entries(JsonPointer.jsonPointer(this.state.schema, schema.$ref.substring(1))))\n          (schema as any)[k] = v\n    }\n    this.resolve(schema.additionalProperties)\n    this.resolve(schema.items)\n    if (schema.properties)\n      for (const prop of Object.values(schema.properties))\n        this.resolve(prop)\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { BaseComponent } from './base/base.component';\nimport { BooleanComponent } from './boolean/boolean.component';\nimport { InputComponent } from './input/input.component';\nimport { JsonSchemaFormComponent } from './json-schema-form.component';\nimport { CompDirective } from './wrapper/comp.directive';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatChipsModule } from '@angular/material/chips';\n\nimport { CommonModule } from '@angular/common';\n\nimport { ObjectComponent } from './object/object.component';\nimport { ArrayComponent } from './array/array.component';\nimport { WrapperComponent } from './wrapper/wrapper.component';\nimport { SelectComponent } from './select/select.component';\nimport { HttpClientModule } from '@angular/common/http';\nimport { UploadComponent } from './upload/upload.component';\nimport { DateComponent } from './date/date.component';\nimport { TextareaComponent } from './textarea/textarea.component';\nimport { AdditionalPropertiesComponent } from './additional-properties/additional-properties.component';\nimport { AutocompleteComponent } from './autocomplete/autocomplete.component';\nimport { TabComponent } from './tab/tab.component';\nimport { TableComponent } from './table/table.component';\nimport { ChipsComponent } from './chips/chips.component';\n\n\n@NgModule({\n  declarations: [\n    JsonSchemaFormComponent,\n    BooleanComponent,\n    InputComponent,\n    ObjectComponent,\n    BaseComponent,\n    SelectComponent,\n    ArrayComponent,\n    UploadComponent,\n    DateComponent,\n    TextareaComponent,\n    AdditionalPropertiesComponent,\n    AutocompleteComponent,\n    TabComponent,\n    TableComponent,\n    ChipsComponent,\n\n    CompDirective,\n    WrapperComponent\n  ],\n  imports: [\n    CommonModule,\n    HttpClientModule,\n    FormsModule,\n    ReactiveFormsModule,\n    MatCheckboxModule,\n    MatInputModule,\n    MatIconModule,\n    MatButtonModule,\n    MatSelectModule,\n    MatDatepickerModule,\n    MatNativeDateModule,\n    MatTooltipModule,\n    MatAutocompleteModule,\n    MatTabsModule,\n    MatChipsModule\n  ],\n  exports: [\n    JsonSchemaFormComponent,\n    BaseComponent\n  ]\n})\nexport class JsonSchemaFormModule { }\n","import { AbstractControl } from \"@angular/forms\";\nimport { Schema } from \"./schema\";\n\nexport class State {\n    /**\n     * form control handling this state\n     */\n    control!: AbstractControl;\n\n    /**\n     * name of the state\n     */\n    name!: string;\n\n    /**\n     * schema for this state\n     */\n    schema!: Schema;\n\n    /**\n     * current value\n     */\n    value: any;\n}\n","/*\n * Public API Surface of json-schema-form\n */\n\nexport * from './lib/json-schema-form.service';\nexport * from './lib/json-schema-form.component';\nexport * from './lib/json-schema-form.module';\nexport * from './lib/schema';\nexport * from './lib/choice';\nexport * from './lib/state';\nexport * from './lib/base/base.component'","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.JsonSchemaFormService","i1","i2","i3","i4","i2.CompDirective","i5","i6.WrapperComponent","i4.WrapperComponent","i2.WrapperComponent","i5.WrapperComponent","i1.WrapperComponent"],"mappings":"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"}