@ajsf/material 22.5.0 → 22.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/ajsf-material.mjs +3457 -1289
- package/fesm2022/ajsf-material.mjs.map +1 -1
- package/package.json +2 -2
- package/types/ajsf-material.d.ts +751 -498
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ajsf-material.mjs","sources":["../../../../projects/ajsf-material/src/lib/widgets/flex-layout-root.component.ts","../../../../projects/ajsf-material/src/lib/widgets/flex-layout-section.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-add-reference.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-button.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-button-group.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-checkbox.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-checkboxes.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-chip-list.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-datepicker.component.ts","../../../../projects/ajsf-material/src/lib/material-design-framework.component.ts","../../../../projects/ajsf-material/src/lib/material-design-framework.component.html","../../../../projects/ajsf-material/src/lib/widgets/material-file.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-input.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-number.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-one-of.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-radios.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-select.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-slider.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-stepper.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-tabs.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-textarea.component.ts","../../../../projects/ajsf-material/src/lib/widgets/public_api.ts","../../../../projects/ajsf-material/src/lib/material-design.framework.ts","../../../../projects/ajsf-material/src/lib/material-design-framework.module.ts","../../../../projects/ajsf-material/src/public_api.ts","../../../../projects/ajsf-material/src/ajsf-material.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { JsonSchemaFormService } from '@ajsf/core';\n\n\n@Component({\n selector: 'flex-layout-root-widget',\n template: `\n @for (layoutNode of layout; track layoutNode; let i = $index) {\n <div\n [class.form-flex-item]=\"isFlexItem\"\n [style.flex-grow]=\"getFlexAttribute(layoutNode, 'flex-grow')\"\n [style.flex-shrink]=\"getFlexAttribute(layoutNode, 'flex-shrink')\"\n [style.flex-basis]=\"getFlexBasis(layoutNode)\"\n [style.align-self]=\"getAlignSelf(layoutNode)\"\n [style.order]=\"getOrder(layoutNode)\"\n [style.max-width]=\"getMaxWidth(layoutNode)\"\n [style.margin-left]=\"getOffset(layoutNode)\">\n @if (showWidget(layoutNode)) {\n <select-framework-widget\n [dataIndex]=\"layoutNode?.arrayItem ? (dataIndex || []).concat(i) : (dataIndex || [])\"\n [layoutIndex]=\"(layoutIndex || []).concat(i)\"\n [layoutNode]=\"layoutNode\"></select-framework-widget>\n }\n </div>\n }`,\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class FlexLayoutRootComponent {\n @Input() dataIndex: number[];\n @Input() layoutIndex: number[];\n @Input() layout: any[];\n @Input() isFlexItem = false;\n\n constructor(\n private readonly jsf: JsonSchemaFormService\n ) { }\n\n removeItem(item) {\n this.jsf.removeItem(item);\n }\n\n // fxFlex=\"30%\" and friends used to come from @angular/flex-layout, which is\n // deprecated and has no Angular 16+ release. These translate the same option\n // values to the CSS the directives were compiling to, so schemas that set\n // fxFlex, fxFlexOrder, fxFlexOffset or fxFlexAlign keep working unchanged.\n private static readonly SELF_ALIGN = {\n start: 'flex-start', end: 'flex-end', center: 'center',\n baseline: 'baseline', stretch: 'stretch',\n };\n\n getFlexBasis(node: any): string {\n return node?.options?.fxFlex || this.getFlexAttribute(node, 'flex-basis');\n }\n\n getMaxWidth(node: any): string {\n const fxFlex = node?.options?.fxFlex;\n return fxFlex && `${fxFlex}`.trim().endsWith('%') ? fxFlex : null;\n }\n\n getAlignSelf(node: any): string {\n const options = node?.options || {};\n return options['align-self'] ||\n FlexLayoutRootComponent.SELF_ALIGN[options.fxFlexAlign] || null;\n }\n\n getOrder(node: any): string {\n const options = node?.options || {};\n return options.order || options.fxFlexOrder || null;\n }\n\n getOffset(node: any): string {\n return node?.options?.fxFlexOffset || null;\n }\n\n // Set attributes for flexbox child\n // (container attributes are set in flex-layout-section.component)\n getFlexAttribute(node: any, attribute: string) {\n const index = ['flex-grow', 'flex-shrink', 'flex-basis'].indexOf(attribute);\n return (node.options?.flex || '').split(/\\s+/)[index] ||\n node.options?.[attribute] || ['1', '1', 'auto'][index];\n }\n\n showWidget(layoutNode: any): boolean {\n return this.jsf.evaluateCondition(layoutNode, this.dataIndex);\n }\n}\n","import { AbstractControl } from '@angular/forms';\nimport { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\nimport { JsonSchemaFormService } from '@ajsf/core';\n\n@Component({\n selector: 'flex-layout-section-widget',\n template: `\n @if (containerType === 'div') {\n <div\n [class]=\"options?.htmlClass || ''\"\n [class.expandable]=\"options?.expandable && !expanded\"\n [class.expanded]=\"options?.expandable && expanded\">\n @if (sectionTitle) {\n <label\n [class]=\"'legend ' + (options?.labelHtmlClass || '')\"\n [innerHTML]=\"sectionTitle\"\n (click)=\"toggleExpanded()\"></label>\n }\n @if (expanded) {\n <flex-layout-root-widget\n [layout]=\"layoutNode.items\"\n [dataIndex]=\"dataIndex\"\n [layoutIndex]=\"layoutIndex\"\n [isFlexItem]=\"getFlexAttribute('is-flex')\"\n [class.form-flex-column]=\"getFlexAttribute('flex-direction') === 'column'\"\n [class.form-flex-row]=\"getFlexAttribute('flex-direction') === 'row'\"\n [style.display]=\"getFlexAttribute('display')\"\n [style.flex-direction]=\"getFlexAttribute('flex-direction')\"\n [style.flex-wrap]=\"getFlexAttribute('flex-wrap')\"\n [style.justify-content]=\"getFlexAttribute('justify-content')\"\n [style.align-items]=\"getFlexAttribute('align-items')\"\n [style.align-content]=\"getFlexAttribute('align-content')\"\n [style.gap]=\"options?.fxLayoutGap\"\n [style.justify-content]=\"getJustifyContent()\"\n [style.align-items]=\"getAlignItems()\"></flex-layout-root-widget>\n }\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"$safeNavigationMigration(options?.errorMessage)\"></mat-error>\n }\n </div>\n }\n \n @if (containerType === 'fieldset') {\n <fieldset\n [class]=\"options?.htmlClass || ''\"\n [class.expandable]=\"options?.expandable && !expanded\"\n [class.expanded]=\"options?.expandable && expanded\"\n [disabled]=\"$safeNavigationMigration(options?.readonly)\">\n @if (sectionTitle) {\n <legend\n [class]=\"'legend ' + (options?.labelHtmlClass || '')\"\n [innerHTML]=\"sectionTitle\"\n (click)=\"toggleExpanded()\"></legend>\n }\n @if (expanded) {\n <flex-layout-root-widget\n [layout]=\"layoutNode.items\"\n [dataIndex]=\"dataIndex\"\n [layoutIndex]=\"layoutIndex\"\n [isFlexItem]=\"getFlexAttribute('is-flex')\"\n [class.form-flex-column]=\"getFlexAttribute('flex-direction') === 'column'\"\n [class.form-flex-row]=\"getFlexAttribute('flex-direction') === 'row'\"\n [style.display]=\"getFlexAttribute('display')\"\n [style.flex-direction]=\"getFlexAttribute('flex-direction')\"\n [style.flex-wrap]=\"getFlexAttribute('flex-wrap')\"\n [style.justify-content]=\"getFlexAttribute('justify-content')\"\n [style.align-items]=\"getFlexAttribute('align-items')\"\n [style.align-content]=\"getFlexAttribute('align-content')\"\n [style.gap]=\"options?.fxLayoutGap\"\n [style.justify-content]=\"getJustifyContent()\"\n [style.align-items]=\"getAlignItems()\"></flex-layout-root-widget>\n }\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"$safeNavigationMigration(options?.errorMessage)\"></mat-error>\n }\n </fieldset>\n }\n \n @if (containerType === 'card') {\n <mat-card appearance=\"outlined\"\n [ngClass]=\"options?.htmlClass || ''\"\n [class.expandable]=\"options?.expandable && !expanded\"\n [class.expanded]=\"options?.expandable && expanded\">\n @if (sectionTitle) {\n <mat-card-header>\n <legend\n [class]=\"'legend ' + (options?.labelHtmlClass || '')\"\n [innerHTML]=\"sectionTitle\"\n (click)=\"toggleExpanded()\"></legend>\n </mat-card-header>\n }\n @if (expanded) {\n <mat-card-content>\n <fieldset [disabled]=\"$safeNavigationMigration(options?.readonly)\">\n @if (expanded) {\n <flex-layout-root-widget\n [layout]=\"layoutNode.items\"\n [dataIndex]=\"dataIndex\"\n [layoutIndex]=\"layoutIndex\"\n [isFlexItem]=\"getFlexAttribute('is-flex')\"\n [class.form-flex-column]=\"getFlexAttribute('flex-direction') === 'column'\"\n [class.form-flex-row]=\"getFlexAttribute('flex-direction') === 'row'\"\n [style.display]=\"getFlexAttribute('display')\"\n [style.flex-direction]=\"getFlexAttribute('flex-direction')\"\n [style.flex-wrap]=\"getFlexAttribute('flex-wrap')\"\n [style.justify-content]=\"getFlexAttribute('justify-content')\"\n [style.align-items]=\"getFlexAttribute('align-items')\"\n [style.align-content]=\"getFlexAttribute('align-content')\"\n [style.gap]=\"options?.fxLayoutGap\"\n [style.justify-content]=\"getJustifyContent()\"\n [style.align-items]=\"getAlignItems()\"></flex-layout-root-widget>\n }\n </fieldset>\n </mat-card-content>\n }\n <mat-card-footer>\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"$safeNavigationMigration(options?.errorMessage)\"></mat-error>\n }\n </mat-card-footer>\n </mat-card>\n }\n \n @if (containerType === 'expansion-panel') {\n <mat-expansion-panel\n [expanded]=\"expanded\"\n [hideToggle]=\"!options?.expandable\">\n <mat-expansion-panel-header>\n <mat-panel-title>\n @if (sectionTitle) {\n <legend\n [class]=\"options?.labelHtmlClass\"\n [innerHTML]=\"sectionTitle\"\n (click)=\"toggleExpanded()\"></legend>\n }\n </mat-panel-title>\n </mat-expansion-panel-header>\n <fieldset [disabled]=\"$safeNavigationMigration(options?.readonly)\">\n @if (expanded) {\n <flex-layout-root-widget\n [layout]=\"layoutNode.items\"\n [dataIndex]=\"dataIndex\"\n [layoutIndex]=\"layoutIndex\"\n [isFlexItem]=\"getFlexAttribute('is-flex')\"\n [class.form-flex-column]=\"getFlexAttribute('flex-direction') === 'column'\"\n [class.form-flex-row]=\"getFlexAttribute('flex-direction') === 'row'\"\n [style.display]=\"getFlexAttribute('display')\"\n [style.flex-direction]=\"getFlexAttribute('flex-direction')\"\n [style.flex-wrap]=\"getFlexAttribute('flex-wrap')\"\n [style.justify-content]=\"getFlexAttribute('justify-content')\"\n [style.align-items]=\"getFlexAttribute('align-items')\"\n [style.align-content]=\"getFlexAttribute('align-content')\"\n [style.gap]=\"options?.fxLayoutGap\"\n [style.justify-content]=\"getJustifyContent()\"\n [style.align-items]=\"getAlignItems()\"></flex-layout-root-widget>\n }\n </fieldset>\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"$safeNavigationMigration(options?.errorMessage)\"></mat-error>\n }\n </mat-expansion-panel>\n }`,\n styles: [`\n fieldset { border: 0; margin: 0; padding: 0; }\n .legend { font-weight: bold; }\n .expandable > .legend:before { content: '▶'; padding-right: .3em; }\n .expanded > .legend:before { content: '▼'; padding-right: .2em; }\n `],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class FlexLayoutSectionComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n expanded = true;\n containerType = 'div';\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private readonly jsf: JsonSchemaFormService\n ) { }\n\n get sectionTitle() {\n return this.options.notitle ? null : this.jsf.setItemTitle(this);\n }\n\n ngOnInit() {\n this.jsf.initializeControl(this);\n this.options = this.layoutNode.options || {};\n this.expanded = typeof this.options.expanded === 'boolean' ?\n this.options.expanded : !this.options.expandable;\n switch (this.layoutNode.type) {\n case 'section': case 'array': case 'fieldset': case 'advancedfieldset':\n case 'authfieldset': case 'optionfieldset': case 'selectfieldset':\n this.containerType = 'fieldset';\n break;\n case 'card':\n this.containerType = 'card';\n break;\n case 'expansion-panel':\n this.containerType = 'expansion-panel';\n break;\n default: // 'div', 'flex', 'tab', 'conditional', 'actions'\n this.containerType = 'div';\n }\n }\n\n toggleExpanded() {\n if (this.options.expandable) { this.expanded = !this.expanded; }\n }\n\n // fxLayoutAlign=\"start center\" used to come from @angular/flex-layout, which\n // is deprecated and has no Angular 16+ release. These map the same option\n // values onto justify-content and align-items, so schemas setting\n // fxLayoutAlign or fxLayoutGap keep working unchanged. The existing\n // [style.display], [style.flex-direction] and [style.flex-wrap] bindings\n // already cover what fxLayout did.\n private static readonly ALIGN = {\n start: 'flex-start', end: 'flex-end', center: 'center',\n 'space-between': 'space-between', 'space-around': 'space-around',\n 'space-evenly': 'space-evenly', stretch: 'stretch', baseline: 'baseline',\n };\n\n private fxAlign(position: number): string {\n const value = `${this.options?.fxLayoutAlign || ''}`.trim().split(/\\s+/)[position];\n return FlexLayoutSectionComponent.ALIGN[value] || null;\n }\n\n getJustifyContent(): string {\n return this.getFlexAttribute('justify-content') || this.fxAlign(0);\n }\n\n getAlignItems(): string {\n return this.getFlexAttribute('align-items') || this.fxAlign(1);\n }\n\n // Set attributes for flexbox container\n // (child attributes are set in flex-layout-root.component)\n getFlexAttribute(attribute: string) {\n const flexActive: boolean =\n this.layoutNode.type === 'flex' ||\n !!this.options.displayFlex ||\n this.options.display === 'flex';\n // if (attribute !== 'flex' && !flexActive) { return null; }\n switch (attribute) {\n case 'is-flex':\n return flexActive;\n case 'display':\n return flexActive ? 'flex' : 'initial';\n case 'flex-direction': case 'flex-wrap': {\n const index = ['flex-direction', 'flex-wrap'].indexOf(attribute);\n return (this.options['flex-flow'] || '').split(/\\s+/)[index] ||\n this.options[attribute] || ['column', 'nowrap'][index];\n }\n case 'justify-content': case 'align-items': case 'align-content':\n return this.options[attribute];\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { JsonSchemaFormService } from '@ajsf/core';\n\n\n@Component({\n selector: 'material-add-reference-widget',\n template: `\n <section [class]=\"options?.htmlClass || ''\" align=\"end\">\n @if (showAddButton) {\n <button mat-raised-button\n [color]=\"options?.color || 'accent'\"\n [disabled]=\"$safeNavigationMigration(options?.readonly)\"\n (click)=\"addItem($event)\">\n @if (options?.icon) {\n <span [class]=\"options?.icon\"></span>\n }\n @if (options?.title) {\n <span [innerHTML]=\"buttonText\"></span>\n }\n </button>\n }\n </section>`,\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class MaterialAddReferenceComponent implements OnInit {\n options: any;\n itemCount: number;\n previousLayoutIndex: number[];\n previousDataIndex: number[];\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private readonly jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n }\n\n get showAddButton(): boolean {\n return !this.layoutNode.arrayItem ||\n this.layoutIndex.at(-1) < this.options.maxItems;\n }\n\n addItem(event) {\n event.preventDefault();\n this.jsf.addItem(this);\n }\n\n get buttonText(): string {\n const parent: any = {\n dataIndex: this.dataIndex.slice(0, -1),\n layoutIndex: this.layoutIndex.slice(0, -1),\n layoutNode: this.jsf.getParentNode(this),\n };\n return parent.layoutNode.add ||\n this.jsf.setArrayItemTitle(parent, this.layoutNode, this.itemCount);\n }\n}\n","import { AbstractControl } from '@angular/forms';\nimport { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\nimport { JsonSchemaFormService, hasOwn } from '@ajsf/core';\n\n@Component({\n selector: 'material-button-widget',\n template: `\n <div class=\"button-row\" [class]=\"options?.htmlClass || ''\">\n <button mat-raised-button\n [attr.readonly]=\"options?.readonly ? 'readonly' : null\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [color]=\"options?.color || 'primary'\"\n [disabled]=\"controlDisabled || options?.readonly\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n [name]=\"controlName\"\n [type]=\"$safeNavigationMigration(layoutNode?.type)\"\n [value]=\"controlValue\"\n (click)=\"updateValue($event)\">\n @if (options?.icon) {\n <mat-icon class=\"mat-24\">{{options?.icon}}</mat-icon>\n }\n @if (options?.title) {\n <span [innerHTML]=\"$safeNavigationMigration(options?.title)\"></span>\n }\n </button>\n </div>`,\n styles: [` button { margin-top: 10px; } `],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class MaterialButtonComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private readonly jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.jsf.initializeControl(this);\n if (hasOwn(this.options, 'disabled')) {\n this.controlDisabled = this.options.disabled;\n } else if (this.jsf.formOptions.disableInvalidSubmit) {\n this.controlDisabled = !this.jsf.isValid;\n this.jsf.isValidChanges.subscribe(isValid => this.controlDisabled = !isValid);\n }\n }\n\n updateValue(event) {\n if (typeof this.options.onClick === 'function') {\n this.options.onClick(event);\n } else {\n this.jsf.updateValue(this, event.target.value);\n }\n }\n}\n","import { AbstractControl } from '@angular/forms';\nimport { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\nimport { JsonSchemaFormService, buildTitleMap } from '@ajsf/core';\n\n\n@Component({\n selector: 'material-button-group-widget',\n template: `\n <div>\n @if (options?.title) {\n <div>\n <label\n [attr.for]=\"'control' + layoutNode?._id\"\n [class]=\"options?.labelHtmlClass || ''\"\n [style.display]=\"options?.notitle ? 'none' : ''\"\n [innerHTML]=\"$safeNavigationMigration(options?.title)\"></label>\n </div>\n }\n <mat-button-toggle-group\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.readonly]=\"options?.readonly ? 'readonly' : null\"\n [attr.required]=\"options?.required\"\n [disabled]=\"controlDisabled || options?.readonly\"\n [name]=\"controlName\"\n [value]=\"controlValue\"\n [vertical]=\"!!options.vertical\">\n @for (radioItem of radiosList; track radioItem) {\n <mat-button-toggle\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id) + '/' + $safeNavigationMigration(radioItem?.name)\"\n [value]=\"$safeNavigationMigration(radioItem?.value)\"\n (click)=\"updateValue($safeNavigationMigration(radioItem?.value))\">\n <span [innerHTML]=\"$safeNavigationMigration(radioItem?.name)\"></span>\n </mat-button-toggle>\n }\n </mat-button-toggle-group>\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"$safeNavigationMigration(options?.errorMessage)\"></mat-error>\n }\n </div>`,\n styles: [` mat-error { font-size: 75%; } `],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class MaterialButtonGroupComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n radiosList: any[] = [];\n vertical = false;\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private readonly jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.radiosList = buildTitleMap(\n this.options.titleMap || this.options.enumNames,\n this.options.enum, true\n );\n this.jsf.initializeControl(this);\n }\n\n updateValue(value) {\n this.options.showErrors = true;\n this.jsf.updateValue(this, value);\n }\n}\n","import { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { JsonSchemaFormService } from '@ajsf/core';\n\n@Component({\n selector: 'material-checkbox-widget',\n template: `\n @if (boundControl && !showSlideToggle) {\n <mat-checkbox\n [formControl]=\"formControl\"\n align=\"left\"\n [color]=\"options?.color || 'primary'\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n labelPosition=\"after\"\n [name]=\"controlName\"\n (blur)=\"options.showErrors = true\">\n @if (options?.title) {\n <span\n class=\"checkbox-name\"\n [style.display]=\"options?.notitle ? 'none' : ''\"\n [innerHTML]=\"$safeNavigationMigration(options?.title)\"></span>\n }\n </mat-checkbox>\n }\n @if (!boundControl && !showSlideToggle) {\n <mat-checkbox\n align=\"left\"\n [color]=\"options?.color || 'primary'\"\n [disabled]=\"controlDisabled || options?.readonly\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n labelPosition=\"after\"\n [name]=\"controlName\"\n [checked]=\"isChecked\"\n (blur)=\"options.showErrors = true\"\n (change)=\"updateValue($event)\">\n @if (options?.title) {\n <span\n class=\"checkbox-name\"\n [style.display]=\"options?.notitle ? 'none' : ''\"\n [innerHTML]=\"$safeNavigationMigration(options?.title)\"></span>\n }\n </mat-checkbox>\n }\n @if (boundControl && showSlideToggle) {\n <mat-slide-toggle\n [formControl]=\"formControl\"\n align=\"left\"\n [color]=\"options?.color || 'primary'\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n labelPosition=\"after\"\n [name]=\"controlName\"\n (blur)=\"options.showErrors = true\">\n @if (options?.title) {\n <span\n class=\"checkbox-name\"\n [style.display]=\"options?.notitle ? 'none' : ''\"\n [innerHTML]=\"$safeNavigationMigration(options?.title)\"></span>\n }\n </mat-slide-toggle>\n }\n @if (!boundControl && showSlideToggle) {\n <mat-slide-toggle\n align=\"left\"\n [color]=\"options?.color || 'primary'\"\n [disabled]=\"controlDisabled || options?.readonly\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n labelPosition=\"after\"\n [name]=\"controlName\"\n [checked]=\"isChecked\"\n (blur)=\"options.showErrors = true\"\n (change)=\"updateValue($event)\">\n @if (options?.title) {\n <span\n class=\"checkbox-name\"\n [style.display]=\"options?.notitle ? 'none' : ''\"\n [innerHTML]=\"$safeNavigationMigration(options?.title)\"></span>\n }\n </mat-slide-toggle>\n }\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"$safeNavigationMigration(options?.errorMessage)\"></mat-error>\n }`,\n styles: [`\n .checkbox-name { white-space: nowrap; }\n mat-error { font-size: 75%; }\n `],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class MaterialCheckboxComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n trueValue: any = true;\n falseValue: any = false;\n showSlideToggle = false;\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private readonly jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.jsf.initializeControl(this, !this.options.readonly);\n if (this.controlValue === null || this.controlValue === undefined) {\n this.controlValue = false;\n this.jsf.updateValue(this, this.falseValue);\n }\n if (this.layoutNode.type === 'slide-toggle' ||\n this.layoutNode.format === 'slide-toggle'\n ) {\n this.showSlideToggle = true;\n }\n }\n\n updateValue(event) {\n this.options.showErrors = true;\n this.jsf.updateValue(this, event.checked ? this.trueValue : this.falseValue);\n }\n\n get isChecked() {\n return this.jsf.getFormControlValue(this) === this.trueValue;\n }\n}\n","import { AbstractControl } from '@angular/forms';\nimport { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\nimport { buildTitleMap, JsonSchemaFormService, TitleMapItem } from '@ajsf/core';\n\n// TODO: Change this to use a Selection List instead?\n// https://material.angular.io/components/list/overview\n\n@Component({\n selector: 'material-checkboxes-widget',\n template: `\n <div>\n <mat-checkbox type=\"checkbox\"\n [checked]=\"allChecked\"\n [color]=\"options?.color || 'primary'\"\n [disabled]=\"controlDisabled || options?.readonly\"\n [indeterminate]=\"someChecked\"\n [name]=\"$safeNavigationMigration(options?.name)\"\n (blur)=\"options.showErrors = true\"\n (change)=\"updateAllValues($event)\">\n <span class=\"checkbox-name\" [innerHTML]=\"$safeNavigationMigration(options?.name)\"></span>\n </mat-checkbox>\n @if (options?.title) {\n <label\n class=\"title\"\n [class]=\"options?.labelHtmlClass || ''\"\n [style.display]=\"options?.notitle ? 'none' : ''\"\n [innerHTML]=\"$safeNavigationMigration(options?.title)\"></label>\n }\n <ul class=\"checkbox-list\" [class.horizontal-list]=\"horizontalList\">\n @for (checkboxItem of checkboxList; track checkboxItem) {\n <li\n [class]=\"options?.htmlClass || ''\">\n <mat-checkbox type=\"checkbox\"\n [(ngModel)]=\"checkboxItem.checked\"\n [color]=\"options?.color || 'primary'\"\n [disabled]=\"controlDisabled || options?.readonly\"\n [name]=\"$safeNavigationMigration(checkboxItem?.name)\"\n (blur)=\"options.showErrors = true\"\n (change)=\"updateValue()\">\n <span class=\"checkbox-name\" [innerHTML]=\"$safeNavigationMigration(checkboxItem?.name)\"></span>\n </mat-checkbox>\n </li>\n }\n </ul>\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"$safeNavigationMigration(options?.errorMessage)\"></mat-error>\n }\n </div>`,\n styles: [`\n .title { font-weight: bold; }\n .checkbox-list { list-style-type: none; }\n .horizontal-list > li { display: inline-block; margin-right: 10px; zoom: 1; }\n .checkbox-name { white-space: nowrap; }\n mat-error { font-size: 75%; }\n `],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class MaterialCheckboxesComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n horizontalList = false;\n formArray: AbstractControl;\n checkboxList: TitleMapItem[] = [];\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private readonly jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.horizontalList = this.layoutNode.type === 'checkboxes-inline' ||\n this.layoutNode.type === 'checkboxbuttons';\n this.jsf.initializeControl(this);\n this.checkboxList = buildTitleMap(\n this.options.titleMap || this.options.enumNames, this.options.enum, true\n );\n if (this.boundControl) {\n const formArray = this.jsf.getFormControl(this);\n for (const checkboxItem of this.checkboxList) {\n checkboxItem.checked = formArray.value.includes(checkboxItem.value);\n }\n }\n }\n\n get allChecked(): boolean {\n return this.checkboxList.filter(t => t.checked).length === this.checkboxList.length;\n }\n\n get someChecked(): boolean {\n const checkedItems = this.checkboxList.filter(t => t.checked).length;\n return checkedItems > 0 && checkedItems < this.checkboxList.length;\n }\n\n updateValue() {\n this.options.showErrors = true;\n if (this.boundControl) {\n this.jsf.updateArrayCheckboxList(this, this.checkboxList);\n }\n }\n\n updateAllValues(event: any) {\n this.options.showErrors = true;\n this.checkboxList.forEach(t => t.checked = event.checked);\n this.updateValue();\n }\n}\n","import { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { JsonSchemaFormService } from '@ajsf/core';\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\n\n@Component({\n selector: 'material-chip-list-widget',\n template: `\n <mat-form-field\n [appearance]=\"options?.appearance || 'fill'\"\n [class]=\"options?.htmlClass || ''\"\n [floatLabel]=\"options?.floatLabel || 'auto'\"\n [style.width]=\"'100%'\">\n @if (!options?.notitle) {\n <mat-label>{{options?.title}}</mat-label>\n }\n <mat-chip-grid #chipGrid\n [attr.aria-label]=\"options?.title\"\n [disabled]=\"controlDisabled || options?.readonly\">\n @for (tag of tags; track tag; let i = $index) {\n <mat-chip-row\n (removed)=\"remove(i)\">\n {{tag}}\n <button matChipRemove aria-label=\"Remove\">\n <mat-icon>cancel</mat-icon>\n </button>\n </mat-chip-row>\n }\n </mat-chip-grid>\n <input [matChipInputFor]=\"chipGrid\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeyCodes\"\n [matChipInputAddOnBlur]=\"true\"\n [placeholder]=\"options?.placeholder || ''\"\n (matChipInputTokenEnd)=\"add($event)\">\n @if (options?.description && (!options?.showErrors || !options?.errorMessage)) {\n <mat-hint\n align=\"end\" [innerHTML]=\"$safeNavigationMigration(options?.description)\"></mat-hint>\n }\n </mat-form-field>\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"$safeNavigationMigration(options?.errorMessage)\"></mat-error>\n }`,\n styles: [`\n mat-error { font-size: 75%; margin-top: -1rem; margin-bottom: 0.5rem; }\n `],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class MaterialChipListComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n tags: string[] = [];\n separatorKeyCodes = [ENTER, COMMA];\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private readonly jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.jsf.initializeControl(this, false);\n this.tags = Array.isArray(this.controlValue) ? [...this.controlValue] : [];\n }\n\n add(event) {\n const value = (event.value || '').trim();\n if (value) {\n this.tags.push(value);\n this.syncFormArray();\n }\n event.chipInput.clear();\n }\n\n remove(index: number) {\n this.tags.splice(index, 1);\n this.syncFormArray();\n }\n\n private syncFormArray() {\n this.jsf.updateArrayCheckboxList(\n this, this.tags.map(value => ({checked: true, value}))\n );\n }\n}\n","import { Component, Inject, Input, OnInit, Optional, ChangeDetectionStrategy } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { JsonSchemaFormService } from '@ajsf/core';\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\n\n@Component({\n selector: 'material-datepicker-widget',\n template: `\n <mat-form-field [appearance]=\"options?.appearance || matFormFieldDefaultOptions?.appearance || 'fill'\"\n [class]=\"options?.htmlClass || ''\"\n [floatLabel]=\"options?.floatLabel || matFormFieldDefaultOptions?.floatLabel || 'auto'\"\n [hideRequiredMarker]=\"options?.hideRequired ? 'true' : 'false'\"\n [style.width]=\"'100%'\">\n @if (!options?.notitle) {\n <mat-label>{{options?.title}}</mat-label>\n }\n @if (options?.prefix || options?.fieldAddonLeft) {\n <span matPrefix\n [innerHTML]=\"options?.prefix || options?.fieldAddonLeft\"></span>\n }\n @if (boundControl) {\n <input matInput\n [formControl]=\"formControl\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.list]=\"'control' + layoutNode?._id + 'Autocomplete'\"\n [attr.readonly]=\"options?.readonly ? 'readonly' : null\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n [max]=\"$safeNavigationMigration(options?.maximum)\"\n [matDatepicker]=\"picker\"\n [min]=\"$safeNavigationMigration(options?.minimum)\"\n [name]=\"controlName\"\n [placeholder]=\"$safeNavigationMigration(options?.title)\"\n [readonly]=\"$safeNavigationMigration(options?.readonly)\"\n [required]=\"$safeNavigationMigration(options?.required)\"\n [style.width]=\"'100%'\"\n (blur)=\"options.showErrors = true\"\n >\n }\n @if (!boundControl) {\n <input matInput\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.list]=\"'control' + layoutNode?._id + 'Autocomplete'\"\n [attr.readonly]=\"options?.readonly ? 'readonly' : null\"\n [disabled]=\"controlDisabled || options?.readonly\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n [max]=\"$safeNavigationMigration(options?.maximum)\"\n [matDatepicker]=\"picker\"\n [min]=\"$safeNavigationMigration(options?.minimum)\"\n [name]=\"controlName\"\n [placeholder]=\"$safeNavigationMigration(options?.title)\"\n [required]=\"$safeNavigationMigration(options?.required)\"\n [style.width]=\"'100%'\"\n [readonly]=\"$safeNavigationMigration(options?.readonly)\"\n (blur)=\"options.showErrors = true\"\n >\n }\n @if (options?.suffix || options?.fieldAddonRight) {\n <span matSuffix\n [innerHTML]=\"options?.suffix || options?.fieldAddonRight\"></span>\n }\n @if (options?.description && (!options?.showErrors || !options?.errorMessage)) {\n <mat-hint\n align=\"end\" [innerHTML]=\"$safeNavigationMigration(options?.description)\"></mat-hint>\n }\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n </mat-form-field>\n <mat-datepicker #picker ></mat-datepicker>\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"$safeNavigationMigration(options?.errorMessage)\"></mat-error>\n }`,\n styles: [`\n mat-error { font-size: 75%; margin-top: -1rem; margin-bottom: 0.5rem; }\n ::ng-deep json-schema-form mat-form-field .mat-mdc-form-field-wrapper .mat-form-field-flex\n .mat-form-field-infix { width: initial; }\n `],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class MaterialDatepickerComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n dateValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n autoCompleteList: string[] = [];\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n @Inject(MAT_FORM_FIELD_DEFAULT_OPTIONS) @Optional() public matFormFieldDefaultOptions,\n private readonly jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.jsf.initializeControl(this, !this.options.readonly);\n if (!this.options.notitle && !this.options.description && this.options.placeholder) {\n this.options.description = this.options.placeholder;\n }\n }\n}\n","import {ChangeDetectorRef, Component, Input, OnChanges, OnInit, ChangeDetectionStrategy} from '@angular/core';\nimport {cloneDeep, isDefined, JsonSchemaFormService} from '@ajsf/core';\n\nfunction hasTemplateExpression(text: string): boolean {\n let start = -1;\n for (let index = 0; index < text.length; index += 1) {\n const character = text[index];\n if (character === '\\n' || character === '\\r' || character === '\\u2028' || character === '\\u2029') {\n start = -1;\n continue;\n }\n if (start === -1 && character === '{' && text[index + 1] === '{') {\n start = index;\n } else if (start !== -1 && character === '}' && text[index + 1] === '}') {\n if (index > start + 2) { return true; }\n start = -1;\n }\n }\n return false;\n}\n\n@Component({\n selector: 'material-design-framework',\n templateUrl: './material-design-framework.component.html',\n styleUrls: ['./material-design-framework.component.scss'],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class MaterialDesignFrameworkComponent implements OnInit, OnChanges {\n frameworkInitialized = false;\n inputType: string;\n options: any; // Options used in this framework\n widgetLayoutNode: any; // layoutNode passed to child widget\n widgetOptions: any; // Options passed to child widget\n formControl: any = null;\n parentArray: any = null;\n isOrderable = false;\n dynamicTitle: string = null;\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private readonly changeDetector: ChangeDetectorRef,\n private readonly jsf: JsonSchemaFormService\n ) {\n }\n\n get showRemoveButton(): boolean {\n if (!this.layoutNode || !this.widgetOptions.removable ||\n this.widgetOptions.readonly || this.layoutNode.type === '$ref'\n ) {\n return false;\n }\n if (this.layoutNode.recursiveReference) {\n return true;\n }\n if (!this.layoutNode.arrayItem || !this.parentArray) {\n return false;\n }\n // If array length <= minItems, don't allow removing any items\n if (this.parentArray.items.length - 1 <= this.parentArray.options.minItems) {\n return false;\n }\n // For removable list items, allow removing any item\n if (this.layoutNode.arrayItemType === 'list') { return true; }\n // For removable tuple items, only allow removing last item in list\n return this.layoutIndex.at(-1) === this.parentArray.items.length - 2;\n }\n\n ngOnInit() {\n this.initializeFramework();\n }\n\n ngOnChanges() {\n if (!this.frameworkInitialized) {\n this.initializeFramework();\n }\n if (this.dynamicTitle) {\n this.updateTitle();\n }\n }\n\n initializeFramework() {\n if (this.layoutNode) {\n this.options = cloneDeep(this.layoutNode.options || {});\n this.widgetLayoutNode = {\n ...this.layoutNode,\n options: cloneDeep(this.layoutNode.options || {})\n };\n this.widgetOptions = this.widgetLayoutNode.options;\n this.formControl = this.jsf.getFormControl(this);\n\n if (\n isDefined(this.widgetOptions.minimum) &&\n isDefined(this.widgetOptions.maximum) &&\n this.widgetOptions.multipleOf >= 1\n ) {\n this.layoutNode.type = 'range';\n }\n\n if (\n !['$ref', 'advancedfieldset', 'authfieldset', 'button', 'card',\n 'checkbox', 'expansion-panel', 'help', 'message', 'msg', 'section',\n 'submit', 'tabarray', 'tabs'].includes(this.layoutNode.type) &&\n hasTemplateExpression(this.widgetOptions.title || '')\n ) {\n this.dynamicTitle = this.widgetOptions.title;\n this.updateTitle();\n }\n\n if (this.layoutNode.arrayItem && this.layoutNode.type !== '$ref') {\n this.parentArray = this.jsf.getParentNode(this);\n if (this.parentArray) {\n this.isOrderable =\n this.parentArray.type.slice(0, 3) !== 'tab' &&\n this.layoutNode.arrayItemType === 'list' &&\n !this.widgetOptions.readonly &&\n this.parentArray.options.orderable;\n }\n }\n\n this.frameworkInitialized = true;\n } else {\n this.options = {};\n }\n }\n\n updateTitle() {\n this.widgetLayoutNode.options.title = this.jsf.parseText(\n this.dynamicTitle,\n this.jsf.getFormControlValue(this),\n this.jsf.getFormControlGroup(this).value,\n this.dataIndex.at(-1)\n );\n }\n\n removeItem() {\n this.jsf.removeItem(this);\n }\n}\n","<div\n [class.array-item]=\"widgetLayoutNode?.arrayItem && widgetLayoutNode?.type !== '$ref'\"\n [orderable]=\"isOrderable\"\n [dataIndex]=\"dataIndex\"\n [layoutIndex]=\"layoutIndex\"\n [layoutNode]=\"widgetLayoutNode\">\n @if (showRemoveButton) {\n <button\n type=\"button\"\n class=\"close-button\"\n aria-label=\"Remove item\"\n (click)=\"removeItem()\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"18\" width=\"18\" viewBox=\"0 0 24 24\"\n aria-hidden=\"true\">\n <path\n d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z\"/>\n </svg>\n </button>\n }\n <select-widget-widget\n [dataIndex]=\"dataIndex\"\n [layoutIndex]=\"layoutIndex\"\n [layoutNode]=\"widgetLayoutNode\"></select-widget-widget>\n</div>\n@if (widgetLayoutNode?.arrayItem && widgetLayoutNode?.type !== '$ref') {\n <div class=\"spacer\"></div>\n}\n","import { AbstractControl } from '@angular/forms';\nimport { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\nimport { JsonSchemaFormService } from '@ajsf/core';\n\n@Component({\n selector: 'material-file-widget',\n template: `\n <div [class]=\"options?.htmlClass || ''\" [style.width]=\"'100%'\">\n @if (!options?.notitle) {\n <label\n [class]=\"options?.labelHtmlClass || ''\">{{options?.title}}</label>\n }\n <div>\n <button mat-raised-button type=\"button\"\n [disabled]=\"controlDisabled || options?.readonly\"\n (click)=\"fileInput.click()\">\n <mat-icon>upload_file</mat-icon>\n {{options?.buttonLabel || 'Choose File'}}\n </button>\n <span style=\"margin-left: 8px\">{{fileName || 'No file chosen'}}</span>\n <input #fileInput type=\"file\"\n [attr.accept]=\"options?.accept || null\"\n [hidden]=\"true\"\n (change)=\"onFileSelect($event)\">\n </div>\n @if (options?.description && (!options?.showErrors || !options?.errorMessage)) {\n <mat-hint\n [innerHTML]=\"$safeNavigationMigration(options?.description)\"\n style=\"display:block; font-size:75%; color:rgba(0,0,0,.6); margin-top:4px;\"></mat-hint>\n }\n </div>\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"$safeNavigationMigration(options?.errorMessage)\"></mat-error>\n }`,\n styles: [`\n mat-error { font-size: 75%; margin-top: -1rem; margin-bottom: 0.5rem; }\n `],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class MaterialFileComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n fileName = '';\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private readonly jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.jsf.initializeControl(this);\n }\n\n onFileSelect(event) {\n const file: File = event.target?.files?.[0];\n if (!file) { return; }\n this.fileName = file.name;\n const reader = new FileReader();\n reader.onload = () => {\n this.jsf.updateValue(this, reader.result as string);\n };\n reader.readAsDataURL(file);\n }\n}\n","import { AbstractControl } from '@angular/forms';\nimport {Component, Inject, Input, OnInit, Optional, ChangeDetectionStrategy} from '@angular/core';\nimport { JsonSchemaFormService } from '@ajsf/core';\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\n\n@Component({\n selector: 'material-input-widget',\n template: `\n <mat-form-field [appearance]=\"options?.appearance || matFormFieldDefaultOptions?.appearance || 'fill'\"\n [class]=\"options?.htmlClass || ''\"\n [floatLabel]=\"options?.floatLabel || matFormFieldDefaultOptions?.floatLabel || 'auto'\"\n [hideRequiredMarker]=\"options?.hideRequired ? 'true' : 'false'\"\n [style.width]=\"'100%'\">\n @if (!options?.notitle) {\n <mat-label>{{options?.title}}</mat-label>\n }\n @if (options?.prefix || options?.fieldAddonLeft) {\n <span matPrefix\n [innerHTML]=\"options?.prefix || options?.fieldAddonLeft\"></span>\n }\n @if (boundControl) {\n <input matInput\n [formControl]=\"formControl\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.list]=\"'control' + layoutNode?._id + 'Autocomplete'\"\n [attr.maxlength]=\"options?.maxLength\"\n [attr.minlength]=\"options?.minLength\"\n [attr.pattern]=\"options?.pattern\"\n [readonly]=\"options?.readonly ? 'readonly' : null\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n [name]=\"controlName\"\n [placeholder]=\"options?.notitle ? $safeNavigationMigration(options?.placeholder) : $safeNavigationMigration(options?.title)\"\n [required]=\"$safeNavigationMigration(options?.required)\"\n [style.width]=\"'100%'\"\n [type]=\"$safeNavigationMigration(layoutNode?.type)\"\n (blur)=\"options.showErrors = true\">\n }\n @if (!boundControl) {\n <input matInput\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.list]=\"'control' + layoutNode?._id + 'Autocomplete'\"\n [attr.maxlength]=\"options?.maxLength\"\n [attr.minlength]=\"options?.minLength\"\n [attr.pattern]=\"options?.pattern\"\n [disabled]=\"controlDisabled\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n [name]=\"controlName\"\n [placeholder]=\"options?.notitle ? $safeNavigationMigration(options?.placeholder) : $safeNavigationMigration(options?.title)\"\n [readonly]=\"options?.readonly ? 'readonly' : null\"\n [required]=\"$safeNavigationMigration(options?.required)\"\n [style.width]=\"'100%'\"\n [type]=\"$safeNavigationMigration(layoutNode?.type)\"\n [value]=\"controlValue\"\n (input)=\"updateValue($event)\"\n (blur)=\"options.showErrors = true\">\n }\n @if (options?.suffix || options?.fieldAddonRight) {\n <span matSuffix\n [innerHTML]=\"options?.suffix || options?.fieldAddonRight\"></span>\n }\n @if (options?.description && (!options?.showErrors || !options?.errorMessage)) {\n <mat-hint\n align=\"end\" [innerHTML]=\"$safeNavigationMigration(options?.description)\"></mat-hint>\n }\n @if (options?.typeahead?.source) {\n <mat-autocomplete>\n @for (word of options?.typeahead?.source; track word) {\n <mat-option\n [value]=\"word\">{{word}}</mat-option>\n }\n </mat-autocomplete>\n }\n </mat-form-field>\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"$safeNavigationMigration(options?.errorMessage)\"></mat-error>\n }`,\n styles: [`\n mat-error { font-size: 75%; margin-top: -1rem; margin-bottom: 0.5rem; }\n ::ng-deep json-schema-form mat-form-field .mat-mdc-form-field-wrapper .mat-form-field-flex\n .mat-form-field-infix { width: initial; }\n `],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class MaterialInputComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: string;\n controlDisabled = false;\n boundControl = false;\n options: any;\n autoCompleteList: string[] = [];\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n\n constructor(\n @Inject(MAT_FORM_FIELD_DEFAULT_OPTIONS) @Optional() public matFormFieldDefaultOptions,\n private readonly jsf: JsonSchemaFormService\n ) {\n }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.jsf.initializeControl(this);\n if (!this.options.notitle && !this.options.description && this.options.placeholder) {\n this.options.description = this.options.placeholder;\n }\n }\n\n updateValue(event) {\n this.jsf.updateValue(this, event.target.value);\n }\n}\n","import {Component, Inject, Input, OnInit, Optional, ChangeDetectionStrategy} from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { JsonSchemaFormService, effectiveMinimum, effectiveMaximum } from '@ajsf/core';\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\n\n@Component({\n selector: 'material-number-widget',\n template: `\n <mat-form-field [appearance]=\"options?.appearance || matFormFieldDefaultOptions?.appearance || 'fill'\"\n [class]=\"options?.htmlClass || ''\"\n [floatLabel]=\"options?.floatLabel || matFormFieldDefaultOptions?.floatLabel || 'auto'\"\n [hideRequiredMarker]=\"options?.hideRequired ? 'true' : 'false'\"\n [style.width]=\"'100%'\">\n @if (!options?.notitle) {\n <mat-label>{{options?.title}}</mat-label>\n }\n @if (options?.prefix || options?.fieldAddonLeft) {\n <span matPrefix\n [innerHTML]=\"options?.prefix || options?.fieldAddonLeft\"></span>\n }\n @if (boundControl) {\n <input matInput\n [formControl]=\"formControl\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.max]=\"maxValue\"\n [attr.min]=\"minValue\"\n [attr.step]=\"options?.multipleOf || options?.step || 'any'\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n [name]=\"controlName\"\n [placeholder]=\"options?.notitle ? $safeNavigationMigration(options?.placeholder) : $safeNavigationMigration(options?.title)\"\n [readonly]=\"options?.readonly ? 'readonly' : null\"\n [required]=\"$safeNavigationMigration(options?.required)\"\n [style.width]=\"'100%'\"\n [type]=\"'number'\"\n (blur)=\"options.showErrors = true\">\n }\n @if (!boundControl) {\n <input matInput\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.max]=\"maxValue\"\n [attr.min]=\"minValue\"\n [attr.step]=\"options?.multipleOf || options?.step || 'any'\"\n [disabled]=\"controlDisabled\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n [name]=\"controlName\"\n [placeholder]=\"options?.notitle ? $safeNavigationMigration(options?.placeholder) : $safeNavigationMigration(options?.title)\"\n [readonly]=\"options?.readonly ? 'readonly' : null\"\n [required]=\"$safeNavigationMigration(options?.required)\"\n [style.width]=\"'100%'\"\n [type]=\"'number'\"\n [value]=\"controlValue\"\n (input)=\"updateValue($event)\"\n (blur)=\"options.showErrors = true\">\n }\n @if (options?.suffix || options?.fieldAddonRight) {\n <span matSuffix\n [innerHTML]=\"options?.suffix || options?.fieldAddonRight\"></span>\n }\n @if (layoutNode?.type === 'range') {\n <mat-hint align=\"start\"\n [innerHTML]=\"controlValue\"></mat-hint>\n }\n @if (options?.description && (!options?.showErrors || !options?.errorMessage)) {\n <mat-hint\n align=\"end\" [innerHTML]=\"$safeNavigationMigration(options?.description)\"></mat-hint>\n }\n </mat-form-field>\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"$safeNavigationMigration(options?.errorMessage)\"></mat-error>\n }`,\n styles: [`\n mat-error { font-size: 75%; margin-top: -1rem; margin-bottom: 0.5rem; }\n ::ng-deep json-schema-form mat-form-field .mat-mdc-form-field-wrapper .mat-form-field-flex\n .mat-form-field-infix { width: initial; }\n `],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class MaterialNumberComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n allowNegative = true;\n allowDecimal = true;\n allowExponents = false;\n lastValidNumber = '';\n\n get minValue() { return effectiveMinimum(this.options?.minimum, this.options?.exclusiveMinimum); }\n get maxValue() { return effectiveMaximum(this.options?.maximum, this.options?.exclusiveMaximum); }\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n @Inject(MAT_FORM_FIELD_DEFAULT_OPTIONS) @Optional() public matFormFieldDefaultOptions,\n private readonly jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.jsf.initializeControl(this);\n if (this.layoutNode.dataType === 'integer') { this.allowDecimal = false; }\n if (!this.options.notitle && !this.options.description && this.options.placeholder) {\n this.options.description = this.options.placeholder;\n }\n }\n\n updateValue(event) {\n this.jsf.updateValue(this, event.target.value);\n }\n}\n","import { Component, Inject, Input, OnInit, Optional, ChangeDetectionStrategy } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { JsonSchemaFormService, buildTitleMap } from '@ajsf/core';\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\n\n@Component({\n selector: 'material-one-of-widget',\n template: `\n <mat-form-field\n [appearance]=\"options?.appearance || matFormFieldDefaultOptions?.appearance || 'fill'\"\n [class]=\"options?.htmlClass || ''\"\n [floatLabel]=\"options?.floatLabel || matFormFieldDefaultOptions?.floatLabel || 'auto'\"\n [style.width]=\"'100%'\">\n @if (!options?.notitle) {\n <mat-label>{{options?.title}}</mat-label>\n }\n \n @if (boundControl) {\n <mat-select\n [formControl]=\"formControl\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n [placeholder]=\"options?.notitle ? $safeNavigationMigration(options?.placeholder) : $safeNavigationMigration(options?.title)\"\n [required]=\"$safeNavigationMigration(options?.required)\"\n [style.width]=\"'100%'\"\n (blur)=\"options.showErrors = true\">\n @for (item of selectList; track item) {\n <mat-option [value]=\"$safeNavigationMigration(item?.value)\">\n <span [innerHTML]=\"$safeNavigationMigration(item?.name)\"></span>\n </mat-option>\n }\n </mat-select>\n }\n \n @if (!boundControl && !isFieldset) {\n <mat-select\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n [disabled]=\"controlDisabled || options?.readonly\"\n [placeholder]=\"options?.notitle ? $safeNavigationMigration(options?.placeholder) : $safeNavigationMigration(options?.title)\"\n [required]=\"$safeNavigationMigration(options?.required)\"\n [style.width]=\"'100%'\"\n [value]=\"controlValue\"\n (selectionChange)=\"updateValue($event)\"\n (blur)=\"options.showErrors = true\">\n @for (item of selectList; track item) {\n <mat-option [value]=\"$safeNavigationMigration(item?.value)\">\n <span [innerHTML]=\"$safeNavigationMigration(item?.name)\"></span>\n </mat-option>\n }\n </mat-select>\n }\n \n @if (!boundControl && isFieldset) {\n <mat-select\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n [disabled]=\"controlDisabled || options?.readonly\"\n [style.width]=\"'100%'\"\n [value]=\"selectedValue\"\n (selectionChange)=\"selectChild($event)\">\n @for (item of selectList; track item) {\n <mat-option [value]=\"$safeNavigationMigration(item?.value)\">\n <span [innerHTML]=\"$safeNavigationMigration(item?.name)\"></span>\n </mat-option>\n }\n </mat-select>\n }\n \n @if (options?.description && (!options?.showErrors || !options?.errorMessage)) {\n <mat-hint\n align=\"end\" [innerHTML]=\"$safeNavigationMigration(options?.description)\"></mat-hint>\n }\n </mat-form-field>\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"$safeNavigationMigration(options?.errorMessage)\"></mat-error>\n }\n \n @for (layoutItem of layoutNode?.items; track layoutItem; let i = $index) {\n <div>\n @if (isFieldset && selectedItem === i) {\n <select-framework-widget\n [dataIndex]=\"layoutNode?.dataType === 'array' ? (dataIndex || []).concat(i) : dataIndex\"\n [layoutIndex]=\"(layoutIndex || []).concat(i)\"\n [layoutNode]=\"layoutItem\"></select-framework-widget>\n }\n </div>\n }`,\n styles: [`\n mat-error { font-size: 75%; margin-top: -1rem; margin-bottom: 0.5rem; }\n `],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class MaterialOneOfComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n selectList: any[] = [];\n isFieldset = false;\n selectedValue: any = 0;\n private _selectedItem = 0;\n private readonly fieldsetValueMap: Map<any, number> = new Map();\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n @Inject(MAT_FORM_FIELD_DEFAULT_OPTIONS) @Optional() public matFormFieldDefaultOptions,\n private readonly jsf: JsonSchemaFormService\n ) { }\n\n get selectedItem(): number {\n if (this.isFieldset && this.formControl) {\n const val = this.formControl.value ?? this.controlValue;\n return this.fieldsetValueMap.get(val) ?? this._selectedItem;\n }\n return this._selectedItem;\n }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n const type = this.layoutNode.type;\n this.isFieldset = (type === 'selectfieldset' || type === 'optionfieldset')\n && Array.isArray(this.layoutNode.items) && this.layoutNode.items.length > 0;\n\n this.initializeSelectList();\n this.initializeFieldsetValueMap();\n this.initializeControl();\n this.selectInitialFieldsetValue();\n }\n\n private initializeSelectList() {\n if (this.isFieldset && !this.hasExplicitFieldsetOptions()) {\n this.selectList = this.layoutNode.items.map((item, i) => ({\n name: item.options?.legend || item.options?.title || item.name || `Option ${i + 1}`,\n value: i\n }));\n } else {\n this.selectList = buildTitleMap(\n this.options.titleMap || this.options.enumNames,\n this.options.enum, !!this.options.required, !!this.options.flatList\n );\n }\n }\n\n private initializeFieldsetValueMap() {\n if (!this.isFieldset || !this.hasExplicitFieldsetOptions()) { return; }\n\n let index = 0;\n for (const entry of this.selectList) {\n if (entry.value == null || entry.value === '') { continue; }\n if (index === 0) { this.selectedValue = entry.value; }\n this.fieldsetValueMap.set(entry.value, index++);\n }\n }\n\n private initializeControl() {\n if (!this.isFieldset || this.hasExplicitFieldsetOptions()) {\n this.jsf.initializeControl(this, !this.options.readonly);\n }\n }\n\n private selectInitialFieldsetValue() {\n if (this.isFieldset && this.controlValue != null) {\n this.selectedValue = this.controlValue;\n this._selectedItem = this.fieldsetValueMap.get(this.controlValue)\n ?? (typeof this.controlValue === 'number' ? this.controlValue : 0);\n }\n }\n\n private hasExplicitFieldsetOptions() {\n return this.options.titleMap || this.options.enum;\n }\n\n selectChild(event) {\n this.selectedValue = event.value;\n this._selectedItem =\n this.fieldsetValueMap.get(event.value) ?? event.value;\n }\n\n updateValue(event) {\n this.options.showErrors = true;\n this.jsf.updateValue(this, event.value);\n }\n}\n","import { AbstractControl } from '@angular/forms';\nimport { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\nimport { JsonSchemaFormService, buildTitleMap } from '@ajsf/core';\n\n\n@Component({\n selector: 'material-radios-widget',\n template: `\n <div>\n @if (options?.title) {\n <div>\n <label\n [attr.for]=\"'control' + layoutNode?._id\"\n [class]=\"options?.labelHtmlClass || ''\"\n [style.display]=\"options?.notitle ? 'none' : ''\"\n [innerHTML]=\"$safeNavigationMigration(options?.title)\"></label>\n </div>\n }\n @if (boundControl) {\n <mat-radio-group\n [formControl]=\"formControl\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.readonly]=\"options?.readonly ? 'readonly' : null\"\n [attr.required]=\"options?.required\"\n [style.flex-direction]=\"flexDirection\"\n [name]=\"controlName\"\n (blur)=\"options.showErrors = true\">\n @for (radioItem of radiosList; track radioItem) {\n <mat-radio-button\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id) + '/' + $safeNavigationMigration(radioItem?.name)\"\n [value]=\"$safeNavigationMigration(radioItem?.value)\">\n <span [innerHTML]=\"$safeNavigationMigration(radioItem?.name)\"></span>\n </mat-radio-button>\n }\n </mat-radio-group>\n }\n @if (!boundControl) {\n <mat-radio-group\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.readonly]=\"options?.readonly ? 'readonly' : null\"\n [attr.required]=\"options?.required\"\n [style.flex-direction]=\"flexDirection\"\n [disabled]=\"controlDisabled || options?.readonly\"\n [name]=\"controlName\"\n [value]=\"controlValue\">\n @for (radioItem of radiosList; track radioItem) {\n <mat-radio-button\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id) + '/' + $safeNavigationMigration(radioItem?.name)\"\n [value]=\"$safeNavigationMigration(radioItem?.value)\"\n (click)=\"updateValue($safeNavigationMigration(radioItem?.value))\">\n <span [innerHTML]=\"$safeNavigationMigration(radioItem?.name)\"></span>\n </mat-radio-button>\n }\n </mat-radio-group>\n }\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"$safeNavigationMigration(options?.errorMessage)\"></mat-error>\n }\n </div>`,\n styles: [`\n /* Element selectors, not internal classes: both still exist under MDC. */\n mat-radio-group { display: inline-flex; }\n mat-radio-button { margin: 2px; }\n mat-error { font-size: 75%; }\n `],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class MaterialRadiosComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n flexDirection = 'column';\n radiosList: any[] = [];\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private readonly jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n if (this.layoutNode.type === 'radios-inline') {\n this.flexDirection = 'row';\n }\n this.radiosList = buildTitleMap(\n this.options.titleMap || this.options.enumNames,\n this.options.enum, true\n );\n this.jsf.initializeControl(this, !this.options.readonly);\n }\n\n updateValue(value) {\n this.options.showErrors = true;\n this.jsf.updateValue(this, value);\n }\n}\n","import { AbstractControl } from '@angular/forms';\nimport {Component, Inject, Input, OnInit, Optional, ChangeDetectionStrategy} from '@angular/core';\nimport { JsonSchemaFormService, buildTitleMap, isArray } from '@ajsf/core';\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\n\n@Component({\n selector: 'material-select-widget',\n template: `\n <mat-form-field\n [appearance]=\"options?.appearance || matFormFieldDefaultOptions?.appearance || 'fill'\"\n [class]=\"options?.htmlClass || ''\"\n [floatLabel]=\"options?.floatLabel || matFormFieldDefaultOptions?.floatLabel || 'auto'\"\n [hideRequiredMarker]=\"options?.hideRequired ? 'true' : 'false'\"\n [style.width]=\"'100%'\">\n @if (!options?.notitle) {\n <mat-label>{{options?.title}}</mat-label>\n }\n @if (options?.prefix || options?.fieldAddonLeft) {\n <span matPrefix\n [innerHTML]=\"options?.prefix || options?.fieldAddonLeft\"></span>\n }\n @if (boundControl) {\n <mat-select\n [formControl]=\"formControl\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.name]=\"controlName\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n [multiple]=\"$safeNavigationMigration(options?.multiple)\"\n [placeholder]=\"options?.notitle ? $safeNavigationMigration(options?.placeholder) : $safeNavigationMigration(options?.title)\"\n [required]=\"$safeNavigationMigration(options?.required)\"\n [style.width]=\"'100%'\"\n (blur)=\"options.showErrors = true\">\n @for (selectItem of selectList; track selectItem) {\n @if (!isArray($safeNavigationMigration(selectItem?.items))) {\n <mat-option\n [value]=\"$safeNavigationMigration(selectItem?.value)\">\n <span [innerHTML]=\"$safeNavigationMigration(selectItem?.name)\"></span>\n </mat-option>\n }\n @if (isArray($safeNavigationMigration(selectItem?.items))) {\n <mat-optgroup\n [label]=\"$safeNavigationMigration(selectItem?.group)\">\n @for (subItem of selectItem.items; track subItem) {\n <mat-option\n [value]=\"$safeNavigationMigration(subItem?.value)\">\n <span [innerHTML]=\"$safeNavigationMigration(subItem?.name)\"></span>\n </mat-option>\n }\n </mat-optgroup>\n }\n }\n </mat-select>\n }\n @if (!boundControl) {\n <mat-select\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.name]=\"controlName\"\n [disabled]=\"controlDisabled || options?.readonly\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n [multiple]=\"$safeNavigationMigration(options?.multiple)\"\n [placeholder]=\"options?.notitle ? $safeNavigationMigration(options?.placeholder) : $safeNavigationMigration(options?.title)\"\n [required]=\"$safeNavigationMigration(options?.required)\"\n [style.width]=\"'100%'\"\n [value]=\"controlValue\"\n (blur)=\"options.showErrors = true\"\n (change)=\"updateValue($event)\">\n @for (selectItem of selectList; track selectItem) {\n @if (!isArray($safeNavigationMigration(selectItem?.items))) {\n <mat-option\n [attr.selected]=\"selectItem?.value === controlValue\"\n [value]=\"$safeNavigationMigration(selectItem?.value)\">\n <span [innerHTML]=\"$safeNavigationMigration(selectItem?.name)\"></span>\n </mat-option>\n }\n @if (isArray($safeNavigationMigration(selectItem?.items))) {\n <mat-optgroup\n [label]=\"$safeNavigationMigration(selectItem?.group)\">\n @for (subItem of selectItem.items; track subItem) {\n <mat-option\n [attr.selected]=\"subItem?.value === controlValue\"\n [value]=\"$safeNavigationMigration(subItem?.value)\">\n <span [innerHTML]=\"$safeNavigationMigration(subItem?.name)\"></span>\n </mat-option>\n }\n </mat-optgroup>\n }\n }\n </mat-select>\n }\n @if (options?.suffix || options?.fieldAddonRight) {\n <span matSuffix\n [innerHTML]=\"options?.suffix || options?.fieldAddonRight\"></span>\n }\n @if (options?.description && (!options?.showErrors || !options?.errorMessage)) {\n <mat-hint\n align=\"end\" [innerHTML]=\"$safeNavigationMigration(options?.description)\"></mat-hint>\n }\n </mat-form-field>\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"$safeNavigationMigration(options?.errorMessage)\"></mat-error>\n }`,\n styles: [`\n mat-error { font-size: 75%; margin-top: -1rem; margin-bottom: 0.5rem; }\n ::ng-deep json-schema-form mat-form-field .mat-mdc-form-field-wrapper .mat-form-field-flex\n .mat-form-field-infix { width: initial; }\n `],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class MaterialSelectComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n selectList: any[] = [];\n isArray = isArray;\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n @Inject(MAT_FORM_FIELD_DEFAULT_OPTIONS) @Optional() public matFormFieldDefaultOptions,\n private readonly jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.selectList = buildTitleMap(\n this.options.titleMap || this.options.enumNames,\n this.options.enum, !!this.options.required, !!this.options.flatList\n );\n this.jsf.initializeControl(this, !this.options.readonly);\n if (!this.options.notitle && !this.options.description && this.options.placeholder) {\n this.options.description = this.options.placeholder;\n }\n }\n\n updateValue(event) {\n this.options.showErrors = true;\n this.jsf.updateValue(this, event.value);\n }\n}\n","import { AbstractControl } from '@angular/forms';\nimport { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\nimport { JsonSchemaFormService, effectiveMinimum, effectiveMaximum } from '@ajsf/core';\n\n@Component({\n selector: 'material-slider-widget',\n template: `\n @if (boundControl) {\n <mat-slider discrete\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n [max]=\"maxValue\"\n [min]=\"minValue\"\n [step]=\"options?.multipleOf || options?.step || 'any'\"\n [style.width]=\"'100%'\"\n ><input matSliderThumb [formControl]=\"formControl\" (blur)=\"options.showErrors = true\" /></mat-slider>\n }\n @if (!boundControl) {\n <mat-slider discrete\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [disabled]=\"controlDisabled || options?.readonly\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n [max]=\"maxValue\"\n [min]=\"minValue\"\n [step]=\"options?.multipleOf || options?.step || 'any'\"\n [style.width]=\"'100%'\"\n (blur)=\"options.showErrors = true\" #ngSlider><input matSliderThumb [value]=\"controlValue\" (change)=\"updateValue({source: ngSliderThumb, parent: ngSlider, value: ngSliderThumb.value})\" #ngSliderThumb=\"matSliderThumb\" /></mat-slider>\n }\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"$safeNavigationMigration(options?.errorMessage)\"></mat-error>\n }`,\n styles: [` mat-error { font-size: 75%; } `],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class MaterialSliderComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n allowNegative = true;\n allowDecimal = true;\n allowExponents = false;\n lastValidNumber = '';\n\n get minValue() { return effectiveMinimum(this.options?.minimum, this.options?.exclusiveMinimum); }\n get maxValue() { return effectiveMaximum(this.options?.maximum, this.options?.exclusiveMaximum); }\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private readonly jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.jsf.initializeControl(this, !this.options.readonly);\n }\n\n updateValue(event) {\n this.options.showErrors = true;\n this.jsf.updateValue(this, event.value);\n }\n}\n","import { AbstractControl } from '@angular/forms';\nimport { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\nimport { JsonSchemaFormService } from '@ajsf/core';\n\n@Component({\n selector: 'material-stepper-widget',\n template: `\n <mat-stepper\n [selectedIndex]=\"selectedItem\"\n [linear]=\"options?.linear || false\"\n (selectionChange)=\"select($event.selectedIndex)\">\n @for (item of layoutNode?.items; track item; let i = $index) {\n @if (showAddTab || item.type !== '$ref') {\n <mat-step>\n <ng-template matStepLabel>\n <span [innerHTML]=\"setStepTitle(item, i)\"></span>\n </ng-template>\n <ng-template matStepContent>\n <select-framework-widget\n [class]=\"(options?.fieldHtmlClass || '') + ' ' + (options?.activeClass || '')\"\n [dataIndex]=\"layoutNode?.dataType === 'array' ? (dataIndex || []).concat(i) : dataIndex\"\n [layoutIndex]=\"(layoutIndex || []).concat(i)\"\n [layoutNode]=\"item\"></select-framework-widget>\n <div style=\"margin-top: 16px\">\n @if (i > 0) {\n <button mat-button matStepperPrevious type=\"button\">Back</button>\n }\n @if (hasNextVisible(i)) {\n <button mat-button matStepperNext type=\"button\">Next</button>\n }\n </div>\n </ng-template>\n </mat-step>\n }\n }\n </mat-stepper>`,\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class MaterialStepperComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n itemCount: number;\n selectedItem = 0;\n showAddTab = true;\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private readonly jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.itemCount = this.layoutNode.items.length - 1;\n this.updateControl();\n }\n\n select(index) {\n if (index >= this.layoutNode.items.length) { return; }\n if (this.layoutNode.items[index].type === '$ref') {\n if (!this.showAddTab) { return; }\n this.jsf.addItem({\n layoutNode: this.layoutNode.items[index],\n layoutIndex: this.layoutIndex.concat(index),\n dataIndex: this.dataIndex.concat(index)\n });\n this.updateControl();\n }\n this.selectedItem = index;\n }\n\n updateControl() {\n this.itemCount = this.layoutNode.items.length - 1;\n const lastItem = this.layoutNode.items[this.layoutNode.items.length - 1];\n this.showAddTab = lastItem.type === '$ref' &&\n this.itemCount < (lastItem.options.maxItems || 1000);\n }\n\n hasNextVisible(currentIndex: number): boolean {\n const next = currentIndex + 1;\n if (next > this.itemCount) { return false; }\n const nextItem = this.layoutNode.items[next];\n if (nextItem?.type === '$ref' && !this.showAddTab) { return false; }\n return true;\n }\n\n setStepTitle(item: any, index: number): string {\n return this.jsf.setArrayItemTitle(this, item, index);\n }\n}\n","import { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\nimport { JsonSchemaFormService } from '@ajsf/core';\n\n@Component({\n selector: 'material-tabs-widget',\n template: `\n <nav mat-tab-nav-bar\n [attr.aria-label]=\"options?.label || options?.title || ''\"\n [tabPanel]=\"tabPanel\"\n [style.width]=\"'100%'\">\n @for (item of layoutNode?.items; track item; let i = $index) {\n <a mat-tab-link\n [active]=\"selectedItem === i\"\n (click)=\"select(i)\">\n @if (showAddTab || item.type !== '$ref') {\n <span\n [innerHTML]=\"setTabTitle(item, i)\"></span>\n }\n </a>\n }\n </nav>\n <!-- MDC requires mat-tab-nav-bar to reference a mat-tab-nav-panel, which\n did not exist before v15. It wraps the content the nav switches. -->\n <div mat-tab-nav-panel #tabPanel>\n @for (layoutItem of layoutNode?.items; track layoutItem; let i = $index) {\n <div\n [class]=\"options?.htmlClass || ''\">\n @if (selectedItem === i) {\n <select-framework-widget\n [class]=\"(options?.fieldHtmlClass || '') + ' ' + (options?.activeClass || '') + ' ' + (options?.style?.selected || '')\"\n [dataIndex]=\"layoutNode?.dataType === 'array' ? (dataIndex || []).concat(i) : dataIndex\"\n [layoutIndex]=\"(layoutIndex || []).concat(i)\"\n [layoutNode]=\"layoutItem\"></select-framework-widget>\n }\n </div>\n }\n </div>`,\n styles: [` a { cursor: pointer; } `],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class MaterialTabsComponent implements OnInit {\n options: any;\n itemCount: number;\n selectedItem = 0;\n showAddTab = true;\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private readonly jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.itemCount = this.layoutNode.items.length - 1;\n this.updateControl();\n }\n\n select(index) {\n if (this.layoutNode.items[index].type === '$ref') {\n this.jsf.addItem({\n layoutNode: this.layoutNode.items[index],\n layoutIndex: this.layoutIndex.concat(index),\n dataIndex: this.dataIndex.concat(index)\n });\n this.updateControl();\n }\n this.selectedItem = index;\n }\n\n updateControl() {\n this.itemCount = this.layoutNode.items.length - 1;\n const lastItem = this.layoutNode.items[this.layoutNode.items.length - 1];\n this.showAddTab = lastItem.type === '$ref' &&\n this.itemCount < (lastItem.options.maxItems || 1000);\n }\n\n setTabTitle(item: any, index: number): string {\n return this.jsf.setArrayItemTitle(this, item, index);\n }\n}\n","import { AbstractControl } from '@angular/forms';\nimport {Component, Inject, Input, OnInit, Optional, ChangeDetectionStrategy} from '@angular/core';\nimport { JsonSchemaFormService } from '@ajsf/core';\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\n\n@Component({\n selector: 'material-textarea-widget',\n template: `\n <mat-form-field [appearance]=\"options?.appearance || matFormFieldDefaultOptions?.appearance || 'fill'\"\n [class]=\"options?.htmlClass || ''\"\n [floatLabel]=\"options?.floatLabel || matFormFieldDefaultOptions?.floatLabel || 'auto'\"\n [hideRequiredMarker]=\"options?.hideRequired ? 'true' : 'false'\"\n [style.width]=\"'100%'\">\n @if (!options?.notitle) {\n <mat-label>{{options?.title}}</mat-label>\n }\n @if (options?.prefix || options?.fieldAddonLeft) {\n <span matPrefix\n [innerHTML]=\"options?.prefix || options?.fieldAddonLeft\"></span>\n }\n @if (boundControl) {\n <textarea matInput\n [formControl]=\"formControl\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.list]=\"'control' + layoutNode?._id + 'Autocomplete'\"\n [attr.maxlength]=\"options?.maxLength\"\n [attr.minlength]=\"options?.minLength\"\n [attr.pattern]=\"options?.pattern\"\n [required]=\"$safeNavigationMigration(options?.required)\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n [name]=\"controlName\"\n [placeholder]=\"options?.notitle ? $safeNavigationMigration(options?.placeholder) : $safeNavigationMigration(options?.title)\"\n [readonly]=\"options?.readonly ? 'readonly' : null\"\n [style.width]=\"'100%'\"\n (blur)=\"options.showErrors = true\"></textarea>\n }\n @if (!boundControl) {\n <textarea matInput\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.list]=\"'control' + layoutNode?._id + 'Autocomplete'\"\n [attr.maxlength]=\"options?.maxLength\"\n [attr.minlength]=\"options?.minLength\"\n [attr.pattern]=\"options?.pattern\"\n [required]=\"$safeNavigationMigration(options?.required)\"\n [disabled]=\"controlDisabled\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n [name]=\"controlName\"\n [placeholder]=\"options?.notitle ? $safeNavigationMigration(options?.placeholder) : $safeNavigationMigration(options?.title)\"\n [readonly]=\"options?.readonly ? 'readonly' : null\"\n [style.width]=\"'100%'\"\n [value]=\"controlValue\"\n (input)=\"updateValue($event)\"\n (blur)=\"options.showErrors = true\"></textarea>\n }\n @if (options?.suffix || options?.fieldAddonRight) {\n <span matSuffix\n [innerHTML]=\"options?.suffix || options?.fieldAddonRight\"></span>\n }\n @if (options?.description && (!options?.showErrors || !options?.errorMessage)) {\n <mat-hint\n align=\"end\" [innerHTML]=\"$safeNavigationMigration(options?.description)\"></mat-hint>\n }\n </mat-form-field>\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"$safeNavigationMigration(options?.errorMessage)\"></mat-error>\n }`,\n styles: [`\n mat-error { font-size: 75%; margin-top: -1rem; margin-bottom: 0.5rem; }\n ::ng-deep json-schema-form mat-form-field .mat-mdc-form-field-wrapper .mat-form-field-flex\n .mat-form-field-infix { width: initial; }\n `],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class MaterialTextareaComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n @Inject(MAT_FORM_FIELD_DEFAULT_OPTIONS) @Optional() public matFormFieldDefaultOptions,\n private readonly jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.jsf.initializeControl(this);\n if (!this.options.notitle && !this.options.description && this.options.placeholder) {\n this.options.description = this.options.placeholder;\n }\n }\n\n updateValue(event) {\n this.jsf.updateValue(this, event.target.value);\n }\n}\n","import { FlexLayoutRootComponent } from './flex-layout-root.component';\nimport { FlexLayoutSectionComponent } from './flex-layout-section.component';\nimport { MaterialAddReferenceComponent } from './material-add-reference.component';\nimport { MaterialButtonComponent } from './material-button.component';\nimport { MaterialButtonGroupComponent } from './material-button-group.component';\nimport { MaterialCheckboxComponent } from './material-checkbox.component';\nimport { MaterialCheckboxesComponent } from './material-checkboxes.component';\nimport { MaterialChipListComponent } from './material-chip-list.component';\nimport { MaterialDatepickerComponent } from './material-datepicker.component';\nimport { MaterialDesignFrameworkComponent } from '../material-design-framework.component';\nimport { MaterialFileComponent } from './material-file.component';\nimport { MaterialInputComponent } from './material-input.component';\nimport { MaterialNumberComponent } from './material-number.component';\nimport { MaterialOneOfComponent } from './material-one-of.component';\nimport { MaterialRadiosComponent } from './material-radios.component';\nimport { MaterialSelectComponent } from './material-select.component';\nimport { MaterialSliderComponent } from './material-slider.component';\nimport { MaterialStepperComponent } from './material-stepper.component';\nimport { MaterialTabsComponent } from './material-tabs.component';\nimport { MaterialTextareaComponent } from './material-textarea.component';\n\n\nexport const MATERIAL_FRAMEWORK_COMPONENTS = [\n FlexLayoutRootComponent, FlexLayoutSectionComponent,\n MaterialAddReferenceComponent, MaterialOneOfComponent,\n MaterialButtonComponent, MaterialButtonGroupComponent,\n MaterialCheckboxComponent, MaterialCheckboxesComponent,\n MaterialChipListComponent, MaterialDatepickerComponent,\n MaterialFileComponent, MaterialInputComponent, MaterialNumberComponent,\n MaterialRadiosComponent, MaterialSelectComponent, MaterialSliderComponent,\n MaterialStepperComponent, MaterialTabsComponent, MaterialTextareaComponent,\n MaterialDesignFrameworkComponent\n];\n\nexport { FlexLayoutRootComponent } from './flex-layout-root.component';\nexport { FlexLayoutSectionComponent } from './flex-layout-section.component';\nexport { MaterialAddReferenceComponent } from './material-add-reference.component';\nexport { MaterialOneOfComponent } from './material-one-of.component';\nexport { MaterialButtonComponent } from './material-button.component';\nexport { MaterialButtonGroupComponent } from './material-button-group.component';\nexport { MaterialCheckboxComponent } from './material-checkbox.component';\nexport { MaterialCheckboxesComponent } from './material-checkboxes.component';\nexport { MaterialChipListComponent } from './material-chip-list.component';\nexport { MaterialDatepickerComponent } from './material-datepicker.component';\nexport { MaterialFileComponent } from './material-file.component';\nexport { MaterialInputComponent } from './material-input.component';\nexport { MaterialNumberComponent } from './material-number.component';\nexport { MaterialRadiosComponent } from './material-radios.component';\nexport { MaterialSelectComponent } from './material-select.component';\nexport { MaterialSliderComponent } from './material-slider.component';\nexport { MaterialStepperComponent } from './material-stepper.component';\nexport { MaterialTabsComponent } from './material-tabs.component';\nexport { MaterialTextareaComponent } from './material-textarea.component';\nexport { MaterialDesignFrameworkComponent } from '../material-design-framework.component';\n","import {Injectable} from '@angular/core';\nimport {Framework} from '@ajsf/core';\nimport {\n FlexLayoutRootComponent,\n FlexLayoutSectionComponent,\n MaterialAddReferenceComponent,\n MaterialButtonComponent,\n MaterialButtonGroupComponent,\n MaterialCheckboxComponent,\n MaterialCheckboxesComponent,\n MaterialChipListComponent,\n MaterialDatepickerComponent,\n MaterialDesignFrameworkComponent,\n MaterialFileComponent,\n MaterialInputComponent,\n MaterialNumberComponent,\n MaterialOneOfComponent,\n MaterialRadiosComponent,\n MaterialSelectComponent,\n MaterialSliderComponent,\n MaterialStepperComponent,\n MaterialTabsComponent,\n MaterialTextareaComponent\n} from './widgets/public_api';\n\n\n// Material Design Framework\n// https://github.com/angular/material2\n\n@Injectable()\nexport class MaterialDesignFramework extends Framework {\n name = 'material-design';\n\n framework = MaterialDesignFrameworkComponent;\n\n stylesheets = [\n '//fonts.googleapis.com/icon?family=Material+Icons',\n '//fonts.googleapis.com/css?family=Roboto:300,400,500,700',\n ];\n\n widgets = {\n 'root': FlexLayoutRootComponent,\n 'section': FlexLayoutSectionComponent,\n '$ref': MaterialAddReferenceComponent,\n 'button': MaterialButtonComponent,\n 'button-group': MaterialButtonGroupComponent,\n 'checkbox': MaterialCheckboxComponent,\n 'checkboxes': MaterialCheckboxesComponent,\n 'chip-list': MaterialChipListComponent,\n 'date': MaterialDatepickerComponent,\n 'file': MaterialFileComponent,\n 'number': MaterialNumberComponent,\n 'one-of': MaterialOneOfComponent,\n 'radios': MaterialRadiosComponent,\n 'select': MaterialSelectComponent,\n 'slider': MaterialSliderComponent,\n 'stepper': MaterialStepperComponent,\n 'tabs': MaterialTabsComponent,\n 'text': MaterialInputComponent,\n 'textarea': MaterialTextareaComponent,\n 'alt-date': 'date',\n 'any-of': 'one-of',\n 'card': 'section',\n 'color': 'text',\n 'expansion-panel': 'section',\n 'hidden': 'none',\n 'image': 'none',\n 'integer': 'number',\n 'radiobuttons': 'button-group',\n 'range': 'slider',\n 'submit': 'button',\n 'tagsinput': 'chip-list',\n 'wizard': 'stepper',\n };\n}\n","import {\n Framework,\n FrameworkLibraryService,\n JsonSchemaFormModule,\n JsonSchemaFormService,\n WidgetLibraryModule, WidgetLibraryService\n} from '@ajsf/core';\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {MatAutocompleteModule} from '@angular/material/autocomplete';\nimport {MatButtonModule} from '@angular/material/button';\nimport {MatButtonToggleModule} from '@angular/material/button-toggle';\nimport {MatCardModule} from '@angular/material/card';\nimport {MatCheckboxModule} from '@angular/material/checkbox';\nimport {MatChipsModule} from '@angular/material/chips';\nimport {MatNativeDateModule} from '@angular/material/core';\nimport {MatDatepickerModule} from '@angular/material/datepicker';\nimport {MatExpansionModule} from '@angular/material/expansion';\nimport {MatFormFieldModule} from '@angular/material/form-field';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatInputModule} from '@angular/material/input';\nimport {MatRadioModule} from '@angular/material/radio';\nimport {MatSelectModule} from '@angular/material/select';\nimport {MatSlideToggleModule} from '@angular/material/slide-toggle';\nimport {MatSliderModule} from '@angular/material/slider';\nimport {MatStepperModule} from '@angular/material/stepper';\nimport {MatTabsModule} from '@angular/material/tabs';\nimport {MatTooltipModule} from '@angular/material/tooltip';\nimport {MatMenuModule} from '@angular/material/menu';\nimport {MatToolbarModule} from '@angular/material/toolbar';\nimport {MaterialDesignFramework} from './material-design.framework';\nimport {MATERIAL_FRAMEWORK_COMPONENTS} from './widgets/public_api';\n\n/**\n * unused @angular/material modules:\n * MatDialogModule, MatGridListModule, MatListModule, MatMenuModule,\n * MatPaginatorModule, MatProgressBarModule, MatProgressSpinnerModule,\n * MatSidenavModule, MatSnackBarModule, MatSortModule, MatTableModule,\n * ,\n */\nexport const ANGULAR_MATERIAL_MODULES = [\n MatAutocompleteModule, MatButtonModule, MatButtonToggleModule, MatCardModule,\n MatCheckboxModule, MatChipsModule, MatDatepickerModule, MatExpansionModule,\n MatFormFieldModule, MatIconModule, MatInputModule, MatNativeDateModule,\n MatRadioModule, MatSelectModule, MatSliderModule, MatSlideToggleModule,\n MatStepperModule, MatTabsModule, MatTooltipModule,\n MatToolbarModule, MatMenuModule, MatToolbarModule,\n];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n ...ANGULAR_MATERIAL_MODULES,\n WidgetLibraryModule,\n JsonSchemaFormModule,\n ],\n declarations: [\n ...MATERIAL_FRAMEWORK_COMPONENTS,\n ],\n exports: [\n JsonSchemaFormModule,\n ...MATERIAL_FRAMEWORK_COMPONENTS,\n ],\n providers: [\n JsonSchemaFormService,\n FrameworkLibraryService,\n WidgetLibraryService,\n { provide: Framework, useClass: MaterialDesignFramework, multi: true },\n ]\n})\nexport class MaterialDesignFrameworkModule { }\n","/**\n * @module \\@ajsf/material\n */\n\nexport * from './lib/material-design.framework';\nexport * from './lib/material-design-framework.module';\nexport * from './lib/material-design-framework.component';\nexport * from './lib/widgets/public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i5","i6.FlexLayoutRootComponent","i2","i3","i4","i1.FlexLayoutRootComponent","i2.FlexLayoutSectionComponent","i3.MaterialAddReferenceComponent","i4.MaterialOneOfComponent","i5.MaterialButtonComponent","i6.MaterialButtonGroupComponent","i7.MaterialCheckboxComponent","i8.MaterialCheckboxesComponent","i9.MaterialChipListComponent","i10.MaterialDatepickerComponent","i11.MaterialFileComponent","i12.MaterialInputComponent","i13.MaterialNumberComponent","i14.MaterialRadiosComponent","i15.MaterialSelectComponent","i16.MaterialSliderComponent","i17.MaterialStepperComponent","i18.MaterialTabsComponent","i19.MaterialTextareaComponent","i20.MaterialDesignFrameworkComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ajsf-material.mjs","names":[],"sources":["../../../../projects/ajsf-material/src/lib/widgets/flex-layout-root.component.ts","../../../../projects/ajsf-material/src/lib/widgets/flex-layout-section.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-add-reference.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-button.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-button-group.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-checkbox.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-checkboxes.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-chip-list.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-datepicker.component.ts","../../../../projects/ajsf-material/src/lib/material-design-framework.component.ts","../../../../projects/ajsf-material/src/lib/material-design-framework.component.html","../../../../projects/ajsf-material/src/lib/widgets/material-file.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-input.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-number.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-one-of.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-radios.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-select.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-slider.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-stepper.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-tabs.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-textarea.component.ts","../../../../projects/ajsf-material/src/lib/widgets/public_api.ts","../../../../projects/ajsf-material/src/lib/material-design.framework.ts","../../../../projects/ajsf-material/src/lib/material-design-framework.module.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { JsonSchemaFormService } from '@ajsf/core';\n\n\n@Component({\n selector: 'flex-layout-root-widget',\n template: `\n @for (layoutNode of layout; track layoutNode; let i = $index) {\n <div\n [class.form-flex-item]=\"isFlexItem\"\n [style.flex-grow]=\"getFlexAttribute(layoutNode, 'flex-grow')\"\n [style.flex-shrink]=\"getFlexAttribute(layoutNode, 'flex-shrink')\"\n [style.flex-basis]=\"getFlexBasis(layoutNode)\"\n [style.align-self]=\"getAlignSelf(layoutNode)\"\n [style.order]=\"getOrder(layoutNode)\"\n [style.max-width]=\"getMaxWidth(layoutNode)\"\n [style.margin-left]=\"getOffset(layoutNode)\">\n @if (showWidget(layoutNode)) {\n <select-framework-widget\n [dataIndex]=\"layoutNode?.arrayItem ? (dataIndex || []).concat(i) : (dataIndex || [])\"\n [layoutIndex]=\"(layoutIndex || []).concat(i)\"\n [layoutNode]=\"layoutNode\"></select-framework-widget>\n }\n </div>\n }`,\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class FlexLayoutRootComponent {\n @Input() dataIndex: number[];\n @Input() layoutIndex: number[];\n @Input() layout: any[];\n @Input() isFlexItem = false;\n\n constructor(\n private readonly jsf: JsonSchemaFormService\n ) { }\n\n removeItem(item) {\n this.jsf.removeItem(item);\n }\n\n // fxFlex=\"30%\" and friends used to come from @angular/flex-layout, which is\n // deprecated and has no Angular 16+ release. These translate the same option\n // values to the CSS the directives were compiling to, so schemas that set\n // fxFlex, fxFlexOrder, fxFlexOffset or fxFlexAlign keep working unchanged.\n private static readonly SELF_ALIGN = {\n start: 'flex-start', end: 'flex-end', center: 'center',\n baseline: 'baseline', stretch: 'stretch',\n };\n\n getFlexBasis(node: any): string {\n return node?.options?.fxFlex || this.getFlexAttribute(node, 'flex-basis');\n }\n\n getMaxWidth(node: any): string {\n const fxFlex = node?.options?.fxFlex;\n return fxFlex && `${fxFlex}`.trim().endsWith('%') ? fxFlex : null;\n }\n\n getAlignSelf(node: any): string {\n const options = node?.options || {};\n return options['align-self'] ||\n FlexLayoutRootComponent.SELF_ALIGN[options.fxFlexAlign] || null;\n }\n\n getOrder(node: any): string {\n const options = node?.options || {};\n return options.order || options.fxFlexOrder || null;\n }\n\n getOffset(node: any): string {\n return node?.options?.fxFlexOffset || null;\n }\n\n // Set attributes for flexbox child\n // (container attributes are set in flex-layout-section.component)\n getFlexAttribute(node: any, attribute: string) {\n const index = ['flex-grow', 'flex-shrink', 'flex-basis'].indexOf(attribute);\n return (node.options?.flex || '').split(/\\s+/)[index] ||\n node.options?.[attribute] || ['1', '1', 'auto'][index];\n }\n\n showWidget(layoutNode: any): boolean {\n return this.jsf.evaluateCondition(layoutNode, this.dataIndex);\n }\n}\n","import { AbstractControl } from '@angular/forms';\nimport { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\nimport { JsonSchemaFormService } from '@ajsf/core';\n\n@Component({\n selector: 'flex-layout-section-widget',\n template: `\n @if (containerType === 'div') {\n <div\n [class]=\"options?.htmlClass || ''\"\n [class.expandable]=\"options?.expandable && !expanded\"\n [class.expanded]=\"options?.expandable && expanded\">\n @if (sectionTitle) {\n <label\n [class]=\"'legend ' + (options?.labelHtmlClass || '')\"\n [innerHTML]=\"sectionTitle\"\n (click)=\"toggleExpanded()\"></label>\n }\n @if (expanded) {\n <flex-layout-root-widget\n [layout]=\"layoutNode.items\"\n [dataIndex]=\"dataIndex\"\n [layoutIndex]=\"layoutIndex\"\n [isFlexItem]=\"getFlexAttribute('is-flex')\"\n [class.form-flex-column]=\"getFlexAttribute('flex-direction') === 'column'\"\n [class.form-flex-row]=\"getFlexAttribute('flex-direction') === 'row'\"\n [style.display]=\"getFlexAttribute('display')\"\n [style.flex-direction]=\"getFlexAttribute('flex-direction')\"\n [style.flex-wrap]=\"getFlexAttribute('flex-wrap')\"\n [style.justify-content]=\"getFlexAttribute('justify-content')\"\n [style.align-items]=\"getFlexAttribute('align-items')\"\n [style.align-content]=\"getFlexAttribute('align-content')\"\n [style.gap]=\"options?.fxLayoutGap\"\n [style.justify-content]=\"getJustifyContent()\"\n [style.align-items]=\"getAlignItems()\"></flex-layout-root-widget>\n }\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"$safeNavigationMigration(options?.errorMessage)\"></mat-error>\n }\n </div>\n }\n \n @if (containerType === 'fieldset') {\n <fieldset\n [class]=\"options?.htmlClass || ''\"\n [class.expandable]=\"options?.expandable && !expanded\"\n [class.expanded]=\"options?.expandable && expanded\"\n [disabled]=\"$safeNavigationMigration(options?.readonly)\">\n @if (sectionTitle) {\n <legend\n [class]=\"'legend ' + (options?.labelHtmlClass || '')\"\n [innerHTML]=\"sectionTitle\"\n (click)=\"toggleExpanded()\"></legend>\n }\n @if (expanded) {\n <flex-layout-root-widget\n [layout]=\"layoutNode.items\"\n [dataIndex]=\"dataIndex\"\n [layoutIndex]=\"layoutIndex\"\n [isFlexItem]=\"getFlexAttribute('is-flex')\"\n [class.form-flex-column]=\"getFlexAttribute('flex-direction') === 'column'\"\n [class.form-flex-row]=\"getFlexAttribute('flex-direction') === 'row'\"\n [style.display]=\"getFlexAttribute('display')\"\n [style.flex-direction]=\"getFlexAttribute('flex-direction')\"\n [style.flex-wrap]=\"getFlexAttribute('flex-wrap')\"\n [style.justify-content]=\"getFlexAttribute('justify-content')\"\n [style.align-items]=\"getFlexAttribute('align-items')\"\n [style.align-content]=\"getFlexAttribute('align-content')\"\n [style.gap]=\"options?.fxLayoutGap\"\n [style.justify-content]=\"getJustifyContent()\"\n [style.align-items]=\"getAlignItems()\"></flex-layout-root-widget>\n }\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"$safeNavigationMigration(options?.errorMessage)\"></mat-error>\n }\n </fieldset>\n }\n \n @if (containerType === 'card') {\n <mat-card appearance=\"outlined\"\n [ngClass]=\"options?.htmlClass || ''\"\n [class.expandable]=\"options?.expandable && !expanded\"\n [class.expanded]=\"options?.expandable && expanded\">\n @if (sectionTitle) {\n <mat-card-header>\n <legend\n [class]=\"'legend ' + (options?.labelHtmlClass || '')\"\n [innerHTML]=\"sectionTitle\"\n (click)=\"toggleExpanded()\"></legend>\n </mat-card-header>\n }\n @if (expanded) {\n <mat-card-content>\n <fieldset [disabled]=\"$safeNavigationMigration(options?.readonly)\">\n @if (expanded) {\n <flex-layout-root-widget\n [layout]=\"layoutNode.items\"\n [dataIndex]=\"dataIndex\"\n [layoutIndex]=\"layoutIndex\"\n [isFlexItem]=\"getFlexAttribute('is-flex')\"\n [class.form-flex-column]=\"getFlexAttribute('flex-direction') === 'column'\"\n [class.form-flex-row]=\"getFlexAttribute('flex-direction') === 'row'\"\n [style.display]=\"getFlexAttribute('display')\"\n [style.flex-direction]=\"getFlexAttribute('flex-direction')\"\n [style.flex-wrap]=\"getFlexAttribute('flex-wrap')\"\n [style.justify-content]=\"getFlexAttribute('justify-content')\"\n [style.align-items]=\"getFlexAttribute('align-items')\"\n [style.align-content]=\"getFlexAttribute('align-content')\"\n [style.gap]=\"options?.fxLayoutGap\"\n [style.justify-content]=\"getJustifyContent()\"\n [style.align-items]=\"getAlignItems()\"></flex-layout-root-widget>\n }\n </fieldset>\n </mat-card-content>\n }\n <mat-card-footer>\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"$safeNavigationMigration(options?.errorMessage)\"></mat-error>\n }\n </mat-card-footer>\n </mat-card>\n }\n \n @if (containerType === 'expansion-panel') {\n <mat-expansion-panel\n [expanded]=\"expanded\"\n [hideToggle]=\"!options?.expandable\">\n <mat-expansion-panel-header>\n <mat-panel-title>\n @if (sectionTitle) {\n <legend\n [class]=\"options?.labelHtmlClass\"\n [innerHTML]=\"sectionTitle\"\n (click)=\"toggleExpanded()\"></legend>\n }\n </mat-panel-title>\n </mat-expansion-panel-header>\n <fieldset [disabled]=\"$safeNavigationMigration(options?.readonly)\">\n @if (expanded) {\n <flex-layout-root-widget\n [layout]=\"layoutNode.items\"\n [dataIndex]=\"dataIndex\"\n [layoutIndex]=\"layoutIndex\"\n [isFlexItem]=\"getFlexAttribute('is-flex')\"\n [class.form-flex-column]=\"getFlexAttribute('flex-direction') === 'column'\"\n [class.form-flex-row]=\"getFlexAttribute('flex-direction') === 'row'\"\n [style.display]=\"getFlexAttribute('display')\"\n [style.flex-direction]=\"getFlexAttribute('flex-direction')\"\n [style.flex-wrap]=\"getFlexAttribute('flex-wrap')\"\n [style.justify-content]=\"getFlexAttribute('justify-content')\"\n [style.align-items]=\"getFlexAttribute('align-items')\"\n [style.align-content]=\"getFlexAttribute('align-content')\"\n [style.gap]=\"options?.fxLayoutGap\"\n [style.justify-content]=\"getJustifyContent()\"\n [style.align-items]=\"getAlignItems()\"></flex-layout-root-widget>\n }\n </fieldset>\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"$safeNavigationMigration(options?.errorMessage)\"></mat-error>\n }\n </mat-expansion-panel>\n }`,\n styles: [`\n fieldset { border: 0; margin: 0; padding: 0; }\n .legend { font-weight: bold; }\n .expandable > .legend:before { content: '▶'; padding-right: .3em; }\n .expanded > .legend:before { content: '▼'; padding-right: .2em; }\n `],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class FlexLayoutSectionComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n expanded = true;\n containerType = 'div';\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private readonly jsf: JsonSchemaFormService\n ) { }\n\n get sectionTitle() {\n return this.options.notitle ? null : this.jsf.setItemTitle(this);\n }\n\n ngOnInit() {\n this.jsf.initializeControl(this);\n this.options = this.layoutNode.options || {};\n this.expanded = typeof this.options.expanded === 'boolean' ?\n this.options.expanded : !this.options.expandable;\n switch (this.layoutNode.type) {\n case 'section': case 'array': case 'fieldset': case 'advancedfieldset':\n case 'authfieldset': case 'optionfieldset': case 'selectfieldset':\n this.containerType = 'fieldset';\n break;\n case 'card':\n this.containerType = 'card';\n break;\n case 'expansion-panel':\n this.containerType = 'expansion-panel';\n break;\n default: // 'div', 'flex', 'tab', 'conditional', 'actions'\n this.containerType = 'div';\n }\n }\n\n toggleExpanded() {\n if (this.options.expandable) { this.expanded = !this.expanded; }\n }\n\n // fxLayoutAlign=\"start center\" used to come from @angular/flex-layout, which\n // is deprecated and has no Angular 16+ release. These map the same option\n // values onto justify-content and align-items, so schemas setting\n // fxLayoutAlign or fxLayoutGap keep working unchanged. The existing\n // [style.display], [style.flex-direction] and [style.flex-wrap] bindings\n // already cover what fxLayout did.\n private static readonly ALIGN = {\n start: 'flex-start', end: 'flex-end', center: 'center',\n 'space-between': 'space-between', 'space-around': 'space-around',\n 'space-evenly': 'space-evenly', stretch: 'stretch', baseline: 'baseline',\n };\n\n private fxAlign(position: number): string {\n const value = `${this.options?.fxLayoutAlign || ''}`.trim().split(/\\s+/)[position];\n return FlexLayoutSectionComponent.ALIGN[value] || null;\n }\n\n getJustifyContent(): string {\n return this.getFlexAttribute('justify-content') || this.fxAlign(0);\n }\n\n getAlignItems(): string {\n return this.getFlexAttribute('align-items') || this.fxAlign(1);\n }\n\n // Set attributes for flexbox container\n // (child attributes are set in flex-layout-root.component)\n getFlexAttribute(attribute: string) {\n const flexActive: boolean =\n this.layoutNode.type === 'flex' ||\n !!this.options.displayFlex ||\n this.options.display === 'flex';\n // if (attribute !== 'flex' && !flexActive) { return null; }\n switch (attribute) {\n case 'is-flex':\n return flexActive;\n case 'display':\n return flexActive ? 'flex' : 'initial';\n case 'flex-direction': case 'flex-wrap': {\n const index = ['flex-direction', 'flex-wrap'].indexOf(attribute);\n return (this.options['flex-flow'] || '').split(/\\s+/)[index] ||\n this.options[attribute] || ['column', 'nowrap'][index];\n }\n case 'justify-content': case 'align-items': case 'align-content':\n return this.options[attribute];\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { JsonSchemaFormService } from '@ajsf/core';\n\n\n@Component({\n selector: 'material-add-reference-widget',\n template: `\n <section [class]=\"options?.htmlClass || ''\" align=\"end\">\n @if (showAddButton) {\n <button mat-raised-button\n [color]=\"options?.color || 'accent'\"\n [disabled]=\"$safeNavigationMigration(options?.readonly)\"\n (click)=\"addItem($event)\">\n @if (options?.icon) {\n <span [class]=\"options?.icon\"></span>\n }\n @if (options?.title) {\n <span [innerHTML]=\"buttonText\"></span>\n }\n </button>\n }\n </section>`,\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class MaterialAddReferenceComponent implements OnInit {\n options: any;\n itemCount: number;\n previousLayoutIndex: number[];\n previousDataIndex: number[];\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private readonly jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n }\n\n get showAddButton(): boolean {\n return !this.layoutNode.arrayItem ||\n this.layoutIndex.at(-1) < this.options.maxItems;\n }\n\n addItem(event) {\n event.preventDefault();\n this.jsf.addItem(this);\n }\n\n get buttonText(): string {\n const parent: any = {\n dataIndex: this.dataIndex.slice(0, -1),\n layoutIndex: this.layoutIndex.slice(0, -1),\n layoutNode: this.jsf.getParentNode(this),\n };\n return parent.layoutNode.add ||\n this.jsf.setArrayItemTitle(parent, this.layoutNode, this.itemCount);\n }\n}\n","import { AbstractControl } from '@angular/forms';\nimport { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\nimport { JsonSchemaFormService, hasOwn } from '@ajsf/core';\n\n@Component({\n selector: 'material-button-widget',\n template: `\n <div class=\"button-row\" [class]=\"options?.htmlClass || ''\">\n <button mat-raised-button\n [attr.readonly]=\"options?.readonly ? 'readonly' : null\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [color]=\"options?.color || 'primary'\"\n [disabled]=\"controlDisabled || options?.readonly\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n [name]=\"controlName\"\n [type]=\"$safeNavigationMigration(layoutNode?.type)\"\n [value]=\"controlValue\"\n (click)=\"updateValue($event)\">\n @if (options?.icon) {\n <mat-icon class=\"mat-24\">{{options?.icon}}</mat-icon>\n }\n @if (options?.title) {\n <span [innerHTML]=\"$safeNavigationMigration(options?.title)\"></span>\n }\n </button>\n </div>`,\n styles: [` button { margin-top: 10px; } `],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class MaterialButtonComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private readonly jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.jsf.initializeControl(this);\n if (hasOwn(this.options, 'disabled')) {\n this.controlDisabled = this.options.disabled;\n } else if (this.jsf.formOptions.disableInvalidSubmit) {\n this.controlDisabled = !this.jsf.isValid;\n this.jsf.isValidChanges.subscribe(isValid => this.controlDisabled = !isValid);\n }\n }\n\n updateValue(event) {\n if (typeof this.options.onClick === 'function') {\n this.options.onClick(event);\n } else {\n this.jsf.updateValue(this, event.target.value);\n }\n }\n}\n","import { AbstractControl } from '@angular/forms';\nimport { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\nimport { JsonSchemaFormService, buildTitleMap } from '@ajsf/core';\n\n\n@Component({\n selector: 'material-button-group-widget',\n template: `\n <div>\n @if (options?.title) {\n <div>\n <label\n [attr.for]=\"'control' + layoutNode?._id\"\n [class]=\"options?.labelHtmlClass || ''\"\n [style.display]=\"options?.notitle ? 'none' : ''\"\n [innerHTML]=\"$safeNavigationMigration(options?.title)\"></label>\n </div>\n }\n <mat-button-toggle-group\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.readonly]=\"options?.readonly ? 'readonly' : null\"\n [attr.required]=\"options?.required\"\n [disabled]=\"controlDisabled || options?.readonly\"\n [name]=\"controlName\"\n [value]=\"controlValue\"\n [vertical]=\"!!options.vertical\">\n @for (radioItem of radiosList; track radioItem) {\n <mat-button-toggle\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id) + '/' + $safeNavigationMigration(radioItem?.name)\"\n [value]=\"$safeNavigationMigration(radioItem?.value)\"\n (click)=\"updateValue($safeNavigationMigration(radioItem?.value))\">\n <span [innerHTML]=\"$safeNavigationMigration(radioItem?.name)\"></span>\n </mat-button-toggle>\n }\n </mat-button-toggle-group>\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"$safeNavigationMigration(options?.errorMessage)\"></mat-error>\n }\n </div>`,\n styles: [` mat-error { font-size: 75%; } `],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class MaterialButtonGroupComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n radiosList: any[] = [];\n vertical = false;\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private readonly jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.radiosList = buildTitleMap(\n this.options.titleMap || this.options.enumNames,\n this.options.enum, true\n );\n this.jsf.initializeControl(this);\n }\n\n updateValue(value) {\n this.options.showErrors = true;\n this.jsf.updateValue(this, value);\n }\n}\n","import { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { JsonSchemaFormService } from '@ajsf/core';\n\n@Component({\n selector: 'material-checkbox-widget',\n template: `\n @if (boundControl && !showSlideToggle) {\n <mat-checkbox\n [formControl]=\"formControl\"\n align=\"left\"\n [color]=\"options?.color || 'primary'\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n labelPosition=\"after\"\n [name]=\"controlName\"\n (blur)=\"options.showErrors = true\">\n @if (options?.title) {\n <span\n class=\"checkbox-name\"\n [style.display]=\"options?.notitle ? 'none' : ''\"\n [innerHTML]=\"$safeNavigationMigration(options?.title)\"></span>\n }\n </mat-checkbox>\n }\n @if (!boundControl && !showSlideToggle) {\n <mat-checkbox\n align=\"left\"\n [color]=\"options?.color || 'primary'\"\n [disabled]=\"controlDisabled || options?.readonly\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n labelPosition=\"after\"\n [name]=\"controlName\"\n [checked]=\"isChecked\"\n (blur)=\"options.showErrors = true\"\n (change)=\"updateValue($event)\">\n @if (options?.title) {\n <span\n class=\"checkbox-name\"\n [style.display]=\"options?.notitle ? 'none' : ''\"\n [innerHTML]=\"$safeNavigationMigration(options?.title)\"></span>\n }\n </mat-checkbox>\n }\n @if (boundControl && showSlideToggle) {\n <mat-slide-toggle\n [formControl]=\"formControl\"\n align=\"left\"\n [color]=\"options?.color || 'primary'\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n labelPosition=\"after\"\n [name]=\"controlName\"\n (blur)=\"options.showErrors = true\">\n @if (options?.title) {\n <span\n class=\"checkbox-name\"\n [style.display]=\"options?.notitle ? 'none' : ''\"\n [innerHTML]=\"$safeNavigationMigration(options?.title)\"></span>\n }\n </mat-slide-toggle>\n }\n @if (!boundControl && showSlideToggle) {\n <mat-slide-toggle\n align=\"left\"\n [color]=\"options?.color || 'primary'\"\n [disabled]=\"controlDisabled || options?.readonly\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n labelPosition=\"after\"\n [name]=\"controlName\"\n [checked]=\"isChecked\"\n (blur)=\"options.showErrors = true\"\n (change)=\"updateValue($event)\">\n @if (options?.title) {\n <span\n class=\"checkbox-name\"\n [style.display]=\"options?.notitle ? 'none' : ''\"\n [innerHTML]=\"$safeNavigationMigration(options?.title)\"></span>\n }\n </mat-slide-toggle>\n }\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"$safeNavigationMigration(options?.errorMessage)\"></mat-error>\n }`,\n styles: [`\n .checkbox-name { white-space: nowrap; }\n mat-error { font-size: 75%; }\n `],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class MaterialCheckboxComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n trueValue: any = true;\n falseValue: any = false;\n showSlideToggle = false;\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private readonly jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.jsf.initializeControl(this, !this.options.readonly);\n if (this.controlValue === null || this.controlValue === undefined) {\n this.controlValue = false;\n this.jsf.updateValue(this, this.falseValue);\n }\n if (this.layoutNode.type === 'slide-toggle' ||\n this.layoutNode.format === 'slide-toggle'\n ) {\n this.showSlideToggle = true;\n }\n }\n\n updateValue(event) {\n this.options.showErrors = true;\n this.jsf.updateValue(this, event.checked ? this.trueValue : this.falseValue);\n }\n\n get isChecked() {\n return this.jsf.getFormControlValue(this) === this.trueValue;\n }\n}\n","import { AbstractControl } from '@angular/forms';\nimport { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\nimport { buildTitleMap, JsonSchemaFormService, TitleMapItem } from '@ajsf/core';\n\n@Component({\n selector: 'material-checkboxes-widget',\n template: `\n <div>\n <mat-checkbox type=\"checkbox\"\n [checked]=\"allChecked\"\n [color]=\"options?.color || 'primary'\"\n [disabled]=\"controlDisabled || options?.readonly\"\n [indeterminate]=\"someChecked\"\n [name]=\"$safeNavigationMigration(options?.name)\"\n [attr.aria-controls]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n (blur)=\"options.showErrors = true\"\n (change)=\"updateAllValues($event)\">\n <span class=\"checkbox-name\" [innerHTML]=\"$safeNavigationMigration(options?.name)\"></span>\n </mat-checkbox>\n @if (options?.title) {\n <label\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id) + 'Title'\"\n class=\"title\"\n [class]=\"options?.labelHtmlClass || ''\"\n [style.display]=\"options?.notitle ? 'none' : ''\"\n [innerHTML]=\"$safeNavigationMigration(options?.title)\"></label>\n }\n <mat-selection-list\n [attr.aria-label]=\"options?.notitle || !options?.title ? (options?.name || options?.title || 'Options') : null\"\n [attr.aria-labelledby]=\"options?.title && !options?.notitle ? 'control' + $safeNavigationMigration(layoutNode?._id) + 'Title' : null\"\n [class.horizontal-list]=\"horizontalList\"\n [disabled]=\"controlDisabled || options?.readonly\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n [multiple]=\"true\"\n [color]=\"options?.color || 'primary'\"\n (blur)=\"options.showErrors = true\"\n (selectionChange)=\"updateValueFromSelection($event)\">\n @for (checkboxItem of checkboxList; track checkboxItem) {\n <mat-list-option\n [class]=\"options?.htmlClass || ''\"\n [disabled]=\"controlDisabled || options?.readonly\"\n [selected]=\"checkboxItem.checked\"\n [value]=\"checkboxItem.value\"\n (blur)=\"options.showErrors = true\">\n <span class=\"checkbox-name\" [innerHTML]=\"$safeNavigationMigration(checkboxItem?.name)\"></span>\n </mat-list-option>\n }\n </mat-selection-list>\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"$safeNavigationMigration(options?.errorMessage)\"></mat-error>\n }\n </div>`,\n styles: [`\n .title { font-weight: bold; }\n .horizontal-list { display: flex; flex-wrap: wrap; }\n .horizontal-list mat-list-option { width: auto; }\n .checkbox-name { white-space: nowrap; }\n mat-error { font-size: 75%; }\n `],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class MaterialCheckboxesComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n horizontalList = false;\n formArray: AbstractControl;\n checkboxList: TitleMapItem[] = [];\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private readonly jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.horizontalList = this.layoutNode.type === 'checkboxes-inline' ||\n this.layoutNode.type === 'checkboxbuttons';\n this.jsf.initializeControl(this);\n this.checkboxList = buildTitleMap(\n this.options.titleMap || this.options.enumNames, this.options.enum, true\n );\n if (this.boundControl) {\n const formArray = this.jsf.getFormControl(this);\n for (const checkboxItem of this.checkboxList) {\n checkboxItem.checked = formArray.value.includes(checkboxItem.value);\n }\n }\n }\n\n get allChecked(): boolean {\n return this.checkboxList.filter(t => t.checked).length === this.checkboxList.length;\n }\n\n get someChecked(): boolean {\n const checkedItems = this.checkboxList.filter(t => t.checked).length;\n return checkedItems > 0 && checkedItems < this.checkboxList.length;\n }\n\n updateValue() {\n this.options.showErrors = true;\n if (this.boundControl) {\n this.jsf.updateArrayCheckboxList(this, this.checkboxList);\n }\n }\n\n updateValueFromSelection(event: any) {\n const selected = event.source.options.toArray().map((option: any) => option.selected);\n this.checkboxList.forEach((item, index) => item.checked = !!selected[index]);\n this.updateValue();\n }\n\n updateAllValues(event: any) {\n this.options.showErrors = true;\n this.checkboxList.forEach(t => t.checked = event.checked);\n this.updateValue();\n }\n}\n","import { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { JsonSchemaFormService } from '@ajsf/core';\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\n\n@Component({\n selector: 'material-chip-list-widget',\n template: `\n <mat-form-field\n [appearance]=\"options?.appearance || 'fill'\"\n [class]=\"options?.htmlClass || ''\"\n [floatLabel]=\"options?.floatLabel || 'auto'\"\n [style.width]=\"'100%'\">\n @if (!options?.notitle) {\n <mat-label>{{options?.title}}</mat-label>\n }\n <mat-chip-grid #chipGrid\n [attr.aria-label]=\"options?.title\"\n [disabled]=\"controlDisabled || options?.readonly\">\n @for (tag of tags; track tag; let i = $index) {\n <mat-chip-row\n (removed)=\"remove(i)\">\n {{tag}}\n <button matChipRemove aria-label=\"Remove\">\n <mat-icon>cancel</mat-icon>\n </button>\n </mat-chip-row>\n }\n </mat-chip-grid>\n <input [matChipInputFor]=\"chipGrid\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeyCodes\"\n [matChipInputAddOnBlur]=\"true\"\n [placeholder]=\"options?.placeholder || ''\"\n (matChipInputTokenEnd)=\"add($event)\">\n @if (options?.description && (!options?.showErrors || !options?.errorMessage)) {\n <mat-hint\n align=\"end\" [innerHTML]=\"$safeNavigationMigration(options?.description)\"></mat-hint>\n }\n </mat-form-field>\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"$safeNavigationMigration(options?.errorMessage)\"></mat-error>\n }`,\n styles: [`\n mat-error { font-size: 75%; margin-top: -1rem; margin-bottom: 0.5rem; }\n `],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class MaterialChipListComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n tags: string[] = [];\n separatorKeyCodes = [ENTER, COMMA];\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private readonly jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.jsf.initializeControl(this, false);\n this.tags = Array.isArray(this.controlValue) ? [...this.controlValue] : [];\n }\n\n add(event) {\n const value = (event.value || '').trim();\n if (value) {\n this.tags.push(value);\n this.syncFormArray();\n }\n event.chipInput.clear();\n }\n\n remove(index: number) {\n this.tags.splice(index, 1);\n this.syncFormArray();\n }\n\n private syncFormArray() {\n this.jsf.updateArrayCheckboxList(\n this, this.tags.map(value => ({checked: true, value}))\n );\n }\n}\n","import { Component, Inject, Input, OnInit, Optional, ChangeDetectionStrategy } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { JsonSchemaFormService } from '@ajsf/core';\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\n\n@Component({\n selector: 'material-datepicker-widget',\n template: `\n <mat-form-field [appearance]=\"options?.appearance || matFormFieldDefaultOptions?.appearance || 'fill'\"\n [class]=\"options?.htmlClass || ''\"\n [floatLabel]=\"options?.floatLabel || matFormFieldDefaultOptions?.floatLabel || 'auto'\"\n [hideRequiredMarker]=\"options?.hideRequired ? 'true' : 'false'\"\n [style.width]=\"'100%'\">\n @if (!options?.notitle) {\n <mat-label>{{options?.title}}</mat-label>\n }\n @if (options?.prefix || options?.fieldAddonLeft) {\n <span matPrefix\n [innerHTML]=\"options?.prefix || options?.fieldAddonLeft\"></span>\n }\n @if (boundControl) {\n <input matInput\n [formControl]=\"formControl\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.list]=\"'control' + layoutNode?._id + 'Autocomplete'\"\n [attr.readonly]=\"options?.readonly ? 'readonly' : null\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n [max]=\"$safeNavigationMigration(options?.maximum)\"\n [matDatepicker]=\"picker\"\n [min]=\"$safeNavigationMigration(options?.minimum)\"\n [name]=\"controlName\"\n [placeholder]=\"$safeNavigationMigration(options?.title)\"\n [readonly]=\"$safeNavigationMigration(options?.readonly)\"\n [required]=\"$safeNavigationMigration(options?.required)\"\n [style.width]=\"'100%'\"\n (blur)=\"options.showErrors = true\"\n >\n }\n @if (!boundControl) {\n <input matInput\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.list]=\"'control' + layoutNode?._id + 'Autocomplete'\"\n [attr.readonly]=\"options?.readonly ? 'readonly' : null\"\n [disabled]=\"controlDisabled || options?.readonly\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n [max]=\"$safeNavigationMigration(options?.maximum)\"\n [matDatepicker]=\"picker\"\n [min]=\"$safeNavigationMigration(options?.minimum)\"\n [name]=\"controlName\"\n [placeholder]=\"$safeNavigationMigration(options?.title)\"\n [required]=\"$safeNavigationMigration(options?.required)\"\n [style.width]=\"'100%'\"\n [readonly]=\"$safeNavigationMigration(options?.readonly)\"\n (blur)=\"options.showErrors = true\"\n >\n }\n @if (options?.suffix || options?.fieldAddonRight) {\n <span matSuffix\n [innerHTML]=\"options?.suffix || options?.fieldAddonRight\"></span>\n }\n @if (options?.description && (!options?.showErrors || !options?.errorMessage)) {\n <mat-hint\n align=\"end\" [innerHTML]=\"$safeNavigationMigration(options?.description)\"></mat-hint>\n }\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n </mat-form-field>\n <mat-datepicker #picker ></mat-datepicker>\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"$safeNavigationMigration(options?.errorMessage)\"></mat-error>\n }`,\n styles: [`\n mat-error { font-size: 75%; margin-top: -1rem; margin-bottom: 0.5rem; }\n ::ng-deep json-schema-form mat-form-field .mat-mdc-form-field-wrapper .mat-form-field-flex\n .mat-form-field-infix { width: initial; }\n `],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class MaterialDatepickerComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n dateValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n autoCompleteList: string[] = [];\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n @Inject(MAT_FORM_FIELD_DEFAULT_OPTIONS) @Optional() public matFormFieldDefaultOptions,\n private readonly jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.jsf.initializeControl(this, !this.options.readonly);\n if (!this.options.notitle && !this.options.description && this.options.placeholder) {\n this.options.description = this.options.placeholder;\n }\n }\n}\n","import {ChangeDetectorRef, Component, Input, OnChanges, OnInit, ChangeDetectionStrategy} from '@angular/core';\nimport {cloneDeep, isDefined, JsonSchemaFormService} from '@ajsf/core';\n\nfunction hasTemplateExpression(text: string): boolean {\n let start = -1;\n for (let index = 0; index < text.length; index += 1) {\n const character = text[index];\n if (character === '\\n' || character === '\\r' || character === '\\u2028' || character === '\\u2029') {\n start = -1;\n continue;\n }\n if (start === -1 && character === '{' && text[index + 1] === '{') {\n start = index;\n } else if (start !== -1 && character === '}' && text[index + 1] === '}') {\n if (index > start + 2) { return true; }\n start = -1;\n }\n }\n return false;\n}\n\n@Component({\n selector: 'material-design-framework',\n templateUrl: './material-design-framework.component.html',\n styleUrls: ['./material-design-framework.component.scss'],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class MaterialDesignFrameworkComponent implements OnInit, OnChanges {\n frameworkInitialized = false;\n inputType: string;\n options: any; // Options used in this framework\n widgetLayoutNode: any; // layoutNode passed to child widget\n widgetOptions: any; // Options passed to child widget\n formControl: any = null;\n parentArray: any = null;\n isOrderable = false;\n dynamicTitle: string = null;\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private readonly changeDetector: ChangeDetectorRef,\n private readonly jsf: JsonSchemaFormService\n ) {\n }\n\n get showRemoveButton(): boolean {\n if (!this.layoutNode || !this.widgetOptions.removable ||\n this.widgetOptions.readonly || this.layoutNode.type === '$ref'\n ) {\n return false;\n }\n if (this.layoutNode.recursiveReference) {\n return true;\n }\n if (!this.layoutNode.arrayItem || !this.parentArray) {\n return false;\n }\n // If array length <= minItems, don't allow removing any items\n if (this.parentArray.items.length - 1 <= this.parentArray.options.minItems) {\n return false;\n }\n // For removable list items, allow removing any item\n if (this.layoutNode.arrayItemType === 'list') { return true; }\n // For removable tuple items, only allow removing last item in list\n return this.layoutIndex.at(-1) === this.parentArray.items.length - 2;\n }\n\n ngOnInit() {\n this.initializeFramework();\n }\n\n ngOnChanges() {\n if (!this.frameworkInitialized) {\n this.initializeFramework();\n }\n if (this.dynamicTitle) {\n this.updateTitle();\n }\n }\n\n initializeFramework() {\n if (this.layoutNode) {\n this.options = cloneDeep(this.layoutNode.options || {});\n this.widgetLayoutNode = {\n ...this.layoutNode,\n options: cloneDeep(this.layoutNode.options || {})\n };\n this.widgetOptions = this.widgetLayoutNode.options;\n this.formControl = this.jsf.getFormControl(this);\n\n if (\n isDefined(this.widgetOptions.minimum) &&\n isDefined(this.widgetOptions.maximum) &&\n this.widgetOptions.multipleOf >= 1\n ) {\n this.layoutNode.type = 'range';\n }\n\n if (\n !['$ref', 'advancedfieldset', 'authfieldset', 'button', 'card',\n 'checkbox', 'expansion-panel', 'help', 'message', 'msg', 'section',\n 'submit', 'tabarray', 'tabs'].includes(this.layoutNode.type) &&\n hasTemplateExpression(this.widgetOptions.title || '')\n ) {\n this.dynamicTitle = this.widgetOptions.title;\n this.updateTitle();\n }\n\n if (this.layoutNode.arrayItem && this.layoutNode.type !== '$ref') {\n this.parentArray = this.jsf.getParentNode(this);\n if (this.parentArray) {\n this.isOrderable =\n this.parentArray.type.slice(0, 3) !== 'tab' &&\n this.layoutNode.arrayItemType === 'list' &&\n !this.widgetOptions.readonly &&\n this.parentArray.options.orderable;\n }\n }\n\n this.frameworkInitialized = true;\n } else {\n this.options = {};\n }\n }\n\n updateTitle() {\n this.widgetLayoutNode.options.title = this.jsf.parseText(\n this.dynamicTitle,\n this.jsf.getFormControlValue(this),\n this.jsf.getFormControlGroup(this).value,\n this.dataIndex.at(-1)\n );\n }\n\n removeItem() {\n this.jsf.removeItem(this);\n }\n}\n","<div\n [class.array-item]=\"widgetLayoutNode?.arrayItem && widgetLayoutNode?.type !== '$ref'\"\n [orderable]=\"isOrderable\"\n [dataIndex]=\"dataIndex\"\n [layoutIndex]=\"layoutIndex\"\n [layoutNode]=\"widgetLayoutNode\">\n @if (showRemoveButton) {\n <button\n type=\"button\"\n class=\"close-button\"\n aria-label=\"Remove item\"\n (click)=\"removeItem()\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"18\" width=\"18\" viewBox=\"0 0 24 24\"\n aria-hidden=\"true\">\n <path\n d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z\"/>\n </svg>\n </button>\n }\n <select-widget-widget\n [dataIndex]=\"dataIndex\"\n [layoutIndex]=\"layoutIndex\"\n [layoutNode]=\"widgetLayoutNode\"></select-widget-widget>\n</div>\n@if (widgetLayoutNode?.arrayItem && widgetLayoutNode?.type !== '$ref') {\n <div class=\"spacer\"></div>\n}\n","import { AbstractControl } from '@angular/forms';\nimport { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\nimport { JsonSchemaFormService } from '@ajsf/core';\n\n@Component({\n selector: 'material-file-widget',\n template: `\n <div [class]=\"options?.htmlClass || ''\" [style.width]=\"'100%'\">\n @if (!options?.notitle) {\n <label\n [class]=\"options?.labelHtmlClass || ''\">{{options?.title}}</label>\n }\n <div>\n <button mat-raised-button type=\"button\"\n [disabled]=\"controlDisabled || options?.readonly\"\n (click)=\"fileInput.click()\">\n <mat-icon>upload_file</mat-icon>\n {{options?.buttonLabel || 'Choose File'}}\n </button>\n <span style=\"margin-left: 8px\">{{fileName || 'No file chosen'}}</span>\n <input #fileInput type=\"file\"\n [attr.accept]=\"options?.accept || null\"\n [hidden]=\"true\"\n (change)=\"onFileSelect($event)\">\n </div>\n @if (options?.description && (!options?.showErrors || !options?.errorMessage)) {\n <mat-hint\n [innerHTML]=\"$safeNavigationMigration(options?.description)\"\n style=\"display:block; font-size:75%; color:rgba(0,0,0,.6); margin-top:4px;\"></mat-hint>\n }\n </div>\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"$safeNavigationMigration(options?.errorMessage)\"></mat-error>\n }`,\n styles: [`\n mat-error { font-size: 75%; margin-top: -1rem; margin-bottom: 0.5rem; }\n `],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class MaterialFileComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n fileName = '';\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private readonly jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.jsf.initializeControl(this);\n }\n\n onFileSelect(event) {\n const file: File = event.target?.files?.[0];\n if (!file) { return; }\n this.fileName = file.name;\n const reader = new FileReader();\n reader.onload = () => {\n this.jsf.updateValue(this, reader.result as string);\n };\n reader.readAsDataURL(file);\n }\n}\n","import { AbstractControl } from '@angular/forms';\nimport {Component, Inject, Input, OnInit, Optional, ChangeDetectionStrategy} from '@angular/core';\nimport { JsonSchemaFormService } from '@ajsf/core';\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\n\n@Component({\n selector: 'material-input-widget',\n template: `\n <mat-form-field [appearance]=\"options?.appearance || matFormFieldDefaultOptions?.appearance || 'fill'\"\n [class]=\"options?.htmlClass || ''\"\n [floatLabel]=\"options?.floatLabel || matFormFieldDefaultOptions?.floatLabel || 'auto'\"\n [hideRequiredMarker]=\"options?.hideRequired ? 'true' : 'false'\"\n [style.width]=\"'100%'\">\n @if (!options?.notitle) {\n <mat-label>{{options?.title}}</mat-label>\n }\n @if (options?.prefix || options?.fieldAddonLeft) {\n <span matPrefix\n [innerHTML]=\"options?.prefix || options?.fieldAddonLeft\"></span>\n }\n @if (boundControl) {\n <input matInput\n [formControl]=\"formControl\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.list]=\"'control' + layoutNode?._id + 'Autocomplete'\"\n [attr.maxlength]=\"options?.maxLength\"\n [attr.minlength]=\"options?.minLength\"\n [attr.pattern]=\"options?.pattern\"\n [readonly]=\"options?.readonly ? 'readonly' : null\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n [name]=\"controlName\"\n [placeholder]=\"options?.notitle ? $safeNavigationMigration(options?.placeholder) : $safeNavigationMigration(options?.title)\"\n [required]=\"$safeNavigationMigration(options?.required)\"\n [style.width]=\"'100%'\"\n [type]=\"$safeNavigationMigration(layoutNode?.type)\"\n (blur)=\"options.showErrors = true\">\n }\n @if (!boundControl) {\n <input matInput\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.list]=\"'control' + layoutNode?._id + 'Autocomplete'\"\n [attr.maxlength]=\"options?.maxLength\"\n [attr.minlength]=\"options?.minLength\"\n [attr.pattern]=\"options?.pattern\"\n [disabled]=\"controlDisabled\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n [name]=\"controlName\"\n [placeholder]=\"options?.notitle ? $safeNavigationMigration(options?.placeholder) : $safeNavigationMigration(options?.title)\"\n [readonly]=\"options?.readonly ? 'readonly' : null\"\n [required]=\"$safeNavigationMigration(options?.required)\"\n [style.width]=\"'100%'\"\n [type]=\"$safeNavigationMigration(layoutNode?.type)\"\n [value]=\"controlValue\"\n (input)=\"updateValue($event)\"\n (blur)=\"options.showErrors = true\">\n }\n @if (options?.suffix || options?.fieldAddonRight) {\n <span matSuffix\n [innerHTML]=\"options?.suffix || options?.fieldAddonRight\"></span>\n }\n @if (options?.description && (!options?.showErrors || !options?.errorMessage)) {\n <mat-hint\n align=\"end\" [innerHTML]=\"$safeNavigationMigration(options?.description)\"></mat-hint>\n }\n @if (options?.typeahead?.source) {\n <mat-autocomplete>\n @for (word of options?.typeahead?.source; track word) {\n <mat-option\n [value]=\"word\">{{word}}</mat-option>\n }\n </mat-autocomplete>\n }\n </mat-form-field>\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"$safeNavigationMigration(options?.errorMessage)\"></mat-error>\n }`,\n styles: [`\n mat-error { font-size: 75%; margin-top: -1rem; margin-bottom: 0.5rem; }\n ::ng-deep json-schema-form mat-form-field .mat-mdc-form-field-wrapper .mat-form-field-flex\n .mat-form-field-infix { width: initial; }\n `],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class MaterialInputComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: string;\n controlDisabled = false;\n boundControl = false;\n options: any;\n autoCompleteList: string[] = [];\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n\n constructor(\n @Inject(MAT_FORM_FIELD_DEFAULT_OPTIONS) @Optional() public matFormFieldDefaultOptions,\n private readonly jsf: JsonSchemaFormService\n ) {\n }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.jsf.initializeControl(this);\n if (!this.options.notitle && !this.options.description && this.options.placeholder) {\n this.options.description = this.options.placeholder;\n }\n }\n\n updateValue(event) {\n this.jsf.updateValue(this, event.target.value);\n }\n}\n","import {Component, Inject, Input, OnInit, Optional, ChangeDetectionStrategy} from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { JsonSchemaFormService, effectiveMinimum, effectiveMaximum } from '@ajsf/core';\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\n\n@Component({\n selector: 'material-number-widget',\n template: `\n <mat-form-field [appearance]=\"options?.appearance || matFormFieldDefaultOptions?.appearance || 'fill'\"\n [class]=\"options?.htmlClass || ''\"\n [floatLabel]=\"options?.floatLabel || matFormFieldDefaultOptions?.floatLabel || 'auto'\"\n [hideRequiredMarker]=\"options?.hideRequired ? 'true' : 'false'\"\n [style.width]=\"'100%'\">\n @if (!options?.notitle) {\n <mat-label>{{options?.title}}</mat-label>\n }\n @if (options?.prefix || options?.fieldAddonLeft) {\n <span matPrefix\n [innerHTML]=\"options?.prefix || options?.fieldAddonLeft\"></span>\n }\n @if (boundControl) {\n <input matInput\n [formControl]=\"formControl\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.max]=\"maxValue\"\n [attr.min]=\"minValue\"\n [attr.step]=\"options?.multipleOf || options?.step || 'any'\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n [name]=\"controlName\"\n [placeholder]=\"options?.notitle ? $safeNavigationMigration(options?.placeholder) : $safeNavigationMigration(options?.title)\"\n [readonly]=\"options?.readonly ? 'readonly' : null\"\n [required]=\"$safeNavigationMigration(options?.required)\"\n [style.width]=\"'100%'\"\n [type]=\"'number'\"\n (blur)=\"options.showErrors = true\">\n }\n @if (!boundControl) {\n <input matInput\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.max]=\"maxValue\"\n [attr.min]=\"minValue\"\n [attr.step]=\"options?.multipleOf || options?.step || 'any'\"\n [disabled]=\"controlDisabled\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n [name]=\"controlName\"\n [placeholder]=\"options?.notitle ? $safeNavigationMigration(options?.placeholder) : $safeNavigationMigration(options?.title)\"\n [readonly]=\"options?.readonly ? 'readonly' : null\"\n [required]=\"$safeNavigationMigration(options?.required)\"\n [style.width]=\"'100%'\"\n [type]=\"'number'\"\n [value]=\"controlValue\"\n (input)=\"updateValue($event)\"\n (blur)=\"options.showErrors = true\">\n }\n @if (options?.suffix || options?.fieldAddonRight) {\n <span matSuffix\n [innerHTML]=\"options?.suffix || options?.fieldAddonRight\"></span>\n }\n @if (layoutNode?.type === 'range') {\n <mat-hint align=\"start\"\n [innerHTML]=\"controlValue\"></mat-hint>\n }\n @if (options?.description && (!options?.showErrors || !options?.errorMessage)) {\n <mat-hint\n align=\"end\" [innerHTML]=\"$safeNavigationMigration(options?.description)\"></mat-hint>\n }\n </mat-form-field>\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"$safeNavigationMigration(options?.errorMessage)\"></mat-error>\n }`,\n styles: [`\n mat-error { font-size: 75%; margin-top: -1rem; margin-bottom: 0.5rem; }\n ::ng-deep json-schema-form mat-form-field .mat-mdc-form-field-wrapper .mat-form-field-flex\n .mat-form-field-infix { width: initial; }\n `],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class MaterialNumberComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n allowNegative = true;\n allowDecimal = true;\n allowExponents = false;\n lastValidNumber = '';\n\n get minValue() { return effectiveMinimum(this.options?.minimum, this.options?.exclusiveMinimum); }\n get maxValue() { return effectiveMaximum(this.options?.maximum, this.options?.exclusiveMaximum); }\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n @Inject(MAT_FORM_FIELD_DEFAULT_OPTIONS) @Optional() public matFormFieldDefaultOptions,\n private readonly jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.jsf.initializeControl(this);\n if (this.layoutNode.dataType === 'integer') { this.allowDecimal = false; }\n if (!this.options.notitle && !this.options.description && this.options.placeholder) {\n this.options.description = this.options.placeholder;\n }\n }\n\n updateValue(event) {\n this.jsf.updateValue(this, event.target.value);\n }\n}\n","import { Component, Inject, Input, OnInit, Optional, ChangeDetectionStrategy } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { JsonSchemaFormService, buildTitleMap } from '@ajsf/core';\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\n\n@Component({\n selector: 'material-one-of-widget',\n template: `\n <mat-form-field\n [appearance]=\"options?.appearance || matFormFieldDefaultOptions?.appearance || 'fill'\"\n [class]=\"options?.htmlClass || ''\"\n [floatLabel]=\"options?.floatLabel || matFormFieldDefaultOptions?.floatLabel || 'auto'\"\n [style.width]=\"'100%'\">\n @if (!options?.notitle) {\n <mat-label>{{options?.title}}</mat-label>\n }\n \n @if (boundControl) {\n <mat-select\n [formControl]=\"formControl\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n [placeholder]=\"options?.notitle ? $safeNavigationMigration(options?.placeholder) : $safeNavigationMigration(options?.title)\"\n [required]=\"$safeNavigationMigration(options?.required)\"\n [style.width]=\"'100%'\"\n (blur)=\"options.showErrors = true\">\n @for (item of selectList; track item) {\n <mat-option [value]=\"$safeNavigationMigration(item?.value)\">\n <span [innerHTML]=\"$safeNavigationMigration(item?.name)\"></span>\n </mat-option>\n }\n </mat-select>\n }\n \n @if (!boundControl && !isFieldset) {\n <mat-select\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n [disabled]=\"controlDisabled || options?.readonly\"\n [placeholder]=\"options?.notitle ? $safeNavigationMigration(options?.placeholder) : $safeNavigationMigration(options?.title)\"\n [required]=\"$safeNavigationMigration(options?.required)\"\n [style.width]=\"'100%'\"\n [value]=\"controlValue\"\n (selectionChange)=\"updateValue($event)\"\n (blur)=\"options.showErrors = true\">\n @for (item of selectList; track item) {\n <mat-option [value]=\"$safeNavigationMigration(item?.value)\">\n <span [innerHTML]=\"$safeNavigationMigration(item?.name)\"></span>\n </mat-option>\n }\n </mat-select>\n }\n \n @if (!boundControl && isFieldset) {\n <mat-select\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n [disabled]=\"controlDisabled || options?.readonly\"\n [style.width]=\"'100%'\"\n [value]=\"selectedValue\"\n (selectionChange)=\"selectChild($event)\">\n @for (item of selectList; track item) {\n <mat-option [value]=\"$safeNavigationMigration(item?.value)\">\n <span [innerHTML]=\"$safeNavigationMigration(item?.name)\"></span>\n </mat-option>\n }\n </mat-select>\n }\n \n @if (options?.description && (!options?.showErrors || !options?.errorMessage)) {\n <mat-hint\n align=\"end\" [innerHTML]=\"$safeNavigationMigration(options?.description)\"></mat-hint>\n }\n </mat-form-field>\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"$safeNavigationMigration(options?.errorMessage)\"></mat-error>\n }\n \n @for (layoutItem of layoutNode?.items; track layoutItem; let i = $index) {\n <div>\n @if (isFieldset && selectedItem === i) {\n <select-framework-widget\n [dataIndex]=\"layoutNode?.dataType === 'array' ? (dataIndex || []).concat(i) : dataIndex\"\n [layoutIndex]=\"(layoutIndex || []).concat(i)\"\n [layoutNode]=\"layoutItem\"></select-framework-widget>\n }\n </div>\n }`,\n styles: [`\n mat-error { font-size: 75%; margin-top: -1rem; margin-bottom: 0.5rem; }\n `],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class MaterialOneOfComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n selectList: any[] = [];\n isFieldset = false;\n selectedValue: any = 0;\n private _selectedItem = 0;\n private readonly fieldsetValueMap: Map<any, number> = new Map();\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n @Inject(MAT_FORM_FIELD_DEFAULT_OPTIONS) @Optional() public matFormFieldDefaultOptions,\n private readonly jsf: JsonSchemaFormService\n ) { }\n\n get selectedItem(): number {\n if (this.isFieldset && this.formControl) {\n const val = this.formControl.value ?? this.controlValue;\n return this.fieldsetValueMap.get(val) ?? this._selectedItem;\n }\n return this._selectedItem;\n }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n const type = this.layoutNode.type;\n this.isFieldset = (type === 'selectfieldset' || type === 'optionfieldset')\n && Array.isArray(this.layoutNode.items) && this.layoutNode.items.length > 0;\n\n this.initializeSelectList();\n this.initializeFieldsetValueMap();\n this.initializeControl();\n this.selectInitialFieldsetValue();\n }\n\n private initializeSelectList() {\n if (this.isFieldset && !this.hasExplicitFieldsetOptions()) {\n this.selectList = this.layoutNode.items.map((item, i) => ({\n name: item.options?.legend || item.options?.title || item.name || `Option ${i + 1}`,\n value: i\n }));\n } else {\n this.selectList = buildTitleMap(\n this.options.titleMap || this.options.enumNames,\n this.options.enum, !!this.options.required, !!this.options.flatList\n );\n }\n }\n\n private initializeFieldsetValueMap() {\n if (!this.isFieldset || !this.hasExplicitFieldsetOptions()) { return; }\n\n let index = 0;\n for (const entry of this.selectList) {\n if (entry.value == null || entry.value === '') { continue; }\n if (index === 0) { this.selectedValue = entry.value; }\n this.fieldsetValueMap.set(entry.value, index++);\n }\n }\n\n private initializeControl() {\n if (!this.isFieldset || this.hasExplicitFieldsetOptions()) {\n this.jsf.initializeControl(this, !this.options.readonly);\n }\n }\n\n private selectInitialFieldsetValue() {\n if (this.isFieldset && this.controlValue != null) {\n this.selectedValue = this.controlValue;\n this._selectedItem = this.fieldsetValueMap.get(this.controlValue)\n ?? (typeof this.controlValue === 'number' ? this.controlValue : 0);\n }\n }\n\n private hasExplicitFieldsetOptions() {\n return this.options.titleMap || this.options.enum;\n }\n\n selectChild(event) {\n this.selectedValue = event.value;\n this._selectedItem =\n this.fieldsetValueMap.get(event.value) ?? event.value;\n }\n\n updateValue(event) {\n this.options.showErrors = true;\n this.jsf.updateValue(this, event.value);\n }\n}\n","import { AbstractControl } from '@angular/forms';\nimport { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\nimport { JsonSchemaFormService, buildTitleMap } from '@ajsf/core';\n\n\n@Component({\n selector: 'material-radios-widget',\n template: `\n <div>\n @if (options?.title) {\n <div>\n <label\n [attr.for]=\"'control' + layoutNode?._id\"\n [class]=\"options?.labelHtmlClass || ''\"\n [style.display]=\"options?.notitle ? 'none' : ''\"\n [innerHTML]=\"$safeNavigationMigration(options?.title)\"></label>\n </div>\n }\n @if (boundControl) {\n <mat-radio-group\n [formControl]=\"formControl\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.readonly]=\"options?.readonly ? 'readonly' : null\"\n [attr.required]=\"options?.required\"\n [style.flex-direction]=\"flexDirection\"\n [name]=\"controlName\"\n (blur)=\"options.showErrors = true\">\n @for (radioItem of radiosList; track radioItem) {\n <mat-radio-button\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id) + '/' + $safeNavigationMigration(radioItem?.name)\"\n [value]=\"$safeNavigationMigration(radioItem?.value)\">\n <span [innerHTML]=\"$safeNavigationMigration(radioItem?.name)\"></span>\n </mat-radio-button>\n }\n </mat-radio-group>\n }\n @if (!boundControl) {\n <mat-radio-group\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.readonly]=\"options?.readonly ? 'readonly' : null\"\n [attr.required]=\"options?.required\"\n [style.flex-direction]=\"flexDirection\"\n [disabled]=\"controlDisabled || options?.readonly\"\n [name]=\"controlName\"\n [value]=\"controlValue\">\n @for (radioItem of radiosList; track radioItem) {\n <mat-radio-button\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id) + '/' + $safeNavigationMigration(radioItem?.name)\"\n [value]=\"$safeNavigationMigration(radioItem?.value)\"\n (click)=\"updateValue($safeNavigationMigration(radioItem?.value))\">\n <span [innerHTML]=\"$safeNavigationMigration(radioItem?.name)\"></span>\n </mat-radio-button>\n }\n </mat-radio-group>\n }\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"$safeNavigationMigration(options?.errorMessage)\"></mat-error>\n }\n </div>`,\n styles: [`\n /* Element selectors, not internal classes: both still exist under MDC. */\n mat-radio-group { display: inline-flex; }\n mat-radio-button { margin: 2px; }\n mat-error { font-size: 75%; }\n `],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class MaterialRadiosComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n flexDirection = 'column';\n radiosList: any[] = [];\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private readonly jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n if (this.layoutNode.type === 'radios-inline') {\n this.flexDirection = 'row';\n }\n this.radiosList = buildTitleMap(\n this.options.titleMap || this.options.enumNames,\n this.options.enum, true\n );\n this.jsf.initializeControl(this, !this.options.readonly);\n }\n\n updateValue(value) {\n this.options.showErrors = true;\n this.jsf.updateValue(this, value);\n }\n}\n","import { AbstractControl } from '@angular/forms';\nimport {Component, Inject, Input, OnInit, Optional, ChangeDetectionStrategy} from '@angular/core';\nimport { JsonSchemaFormService, buildTitleMap, isArray } from '@ajsf/core';\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\n\n@Component({\n selector: 'material-select-widget',\n template: `\n <mat-form-field\n [appearance]=\"options?.appearance || matFormFieldDefaultOptions?.appearance || 'fill'\"\n [class]=\"options?.htmlClass || ''\"\n [floatLabel]=\"options?.floatLabel || matFormFieldDefaultOptions?.floatLabel || 'auto'\"\n [hideRequiredMarker]=\"options?.hideRequired ? 'true' : 'false'\"\n [style.width]=\"'100%'\">\n @if (!options?.notitle) {\n <mat-label>{{options?.title}}</mat-label>\n }\n @if (options?.prefix || options?.fieldAddonLeft) {\n <span matPrefix\n [innerHTML]=\"options?.prefix || options?.fieldAddonLeft\"></span>\n }\n @if (boundControl) {\n <mat-select\n [formControl]=\"formControl\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.name]=\"controlName\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n [multiple]=\"$safeNavigationMigration(options?.multiple)\"\n [placeholder]=\"options?.notitle ? $safeNavigationMigration(options?.placeholder) : $safeNavigationMigration(options?.title)\"\n [required]=\"$safeNavigationMigration(options?.required)\"\n [style.width]=\"'100%'\"\n (blur)=\"options.showErrors = true\">\n @for (selectItem of selectList; track selectItem) {\n @if (!isArray($safeNavigationMigration(selectItem?.items))) {\n <mat-option\n [value]=\"$safeNavigationMigration(selectItem?.value)\">\n <span [innerHTML]=\"$safeNavigationMigration(selectItem?.name)\"></span>\n </mat-option>\n }\n @if (isArray($safeNavigationMigration(selectItem?.items))) {\n <mat-optgroup\n [label]=\"$safeNavigationMigration(selectItem?.group)\">\n @for (subItem of selectItem.items; track subItem) {\n <mat-option\n [value]=\"$safeNavigationMigration(subItem?.value)\">\n <span [innerHTML]=\"$safeNavigationMigration(subItem?.name)\"></span>\n </mat-option>\n }\n </mat-optgroup>\n }\n }\n </mat-select>\n }\n @if (!boundControl) {\n <mat-select\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.name]=\"controlName\"\n [disabled]=\"controlDisabled || options?.readonly\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n [multiple]=\"$safeNavigationMigration(options?.multiple)\"\n [placeholder]=\"options?.notitle ? $safeNavigationMigration(options?.placeholder) : $safeNavigationMigration(options?.title)\"\n [required]=\"$safeNavigationMigration(options?.required)\"\n [style.width]=\"'100%'\"\n [value]=\"controlValue\"\n (blur)=\"options.showErrors = true\"\n (change)=\"updateValue($event)\">\n @for (selectItem of selectList; track selectItem) {\n @if (!isArray($safeNavigationMigration(selectItem?.items))) {\n <mat-option\n [attr.selected]=\"selectItem?.value === controlValue\"\n [value]=\"$safeNavigationMigration(selectItem?.value)\">\n <span [innerHTML]=\"$safeNavigationMigration(selectItem?.name)\"></span>\n </mat-option>\n }\n @if (isArray($safeNavigationMigration(selectItem?.items))) {\n <mat-optgroup\n [label]=\"$safeNavigationMigration(selectItem?.group)\">\n @for (subItem of selectItem.items; track subItem) {\n <mat-option\n [attr.selected]=\"subItem?.value === controlValue\"\n [value]=\"$safeNavigationMigration(subItem?.value)\">\n <span [innerHTML]=\"$safeNavigationMigration(subItem?.name)\"></span>\n </mat-option>\n }\n </mat-optgroup>\n }\n }\n </mat-select>\n }\n @if (options?.suffix || options?.fieldAddonRight) {\n <span matSuffix\n [innerHTML]=\"options?.suffix || options?.fieldAddonRight\"></span>\n }\n @if (options?.description && (!options?.showErrors || !options?.errorMessage)) {\n <mat-hint\n align=\"end\" [innerHTML]=\"$safeNavigationMigration(options?.description)\"></mat-hint>\n }\n </mat-form-field>\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"$safeNavigationMigration(options?.errorMessage)\"></mat-error>\n }`,\n styles: [`\n mat-error { font-size: 75%; margin-top: -1rem; margin-bottom: 0.5rem; }\n ::ng-deep json-schema-form mat-form-field .mat-mdc-form-field-wrapper .mat-form-field-flex\n .mat-form-field-infix { width: initial; }\n `],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class MaterialSelectComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n selectList: any[] = [];\n isArray = isArray;\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n @Inject(MAT_FORM_FIELD_DEFAULT_OPTIONS) @Optional() public matFormFieldDefaultOptions,\n private readonly jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.selectList = buildTitleMap(\n this.options.titleMap || this.options.enumNames,\n this.options.enum, !!this.options.required, !!this.options.flatList\n );\n this.jsf.initializeControl(this, !this.options.readonly);\n if (!this.options.notitle && !this.options.description && this.options.placeholder) {\n this.options.description = this.options.placeholder;\n }\n }\n\n updateValue(event) {\n this.options.showErrors = true;\n this.jsf.updateValue(this, event.value);\n }\n}\n","import { AbstractControl } from '@angular/forms';\nimport { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\nimport { JsonSchemaFormService, effectiveMinimum, effectiveMaximum } from '@ajsf/core';\n\n@Component({\n selector: 'material-slider-widget',\n template: `\n @if (boundControl) {\n <mat-slider discrete\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n [max]=\"maxValue\"\n [min]=\"minValue\"\n [step]=\"options?.multipleOf || options?.step || 'any'\"\n [style.width]=\"'100%'\"\n ><input matSliderThumb [formControl]=\"formControl\" (blur)=\"options.showErrors = true\" /></mat-slider>\n }\n @if (!boundControl) {\n <mat-slider discrete\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [disabled]=\"controlDisabled || options?.readonly\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n [max]=\"maxValue\"\n [min]=\"minValue\"\n [step]=\"options?.multipleOf || options?.step || 'any'\"\n [style.width]=\"'100%'\"\n (blur)=\"options.showErrors = true\" #ngSlider><input matSliderThumb [value]=\"controlValue\" (change)=\"updateValue({source: ngSliderThumb, parent: ngSlider, value: ngSliderThumb.value})\" #ngSliderThumb=\"matSliderThumb\" /></mat-slider>\n }\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"$safeNavigationMigration(options?.errorMessage)\"></mat-error>\n }`,\n styles: [` mat-error { font-size: 75%; } `],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class MaterialSliderComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n allowNegative = true;\n allowDecimal = true;\n allowExponents = false;\n lastValidNumber = '';\n\n get minValue() { return effectiveMinimum(this.options?.minimum, this.options?.exclusiveMinimum); }\n get maxValue() { return effectiveMaximum(this.options?.maximum, this.options?.exclusiveMaximum); }\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private readonly jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.jsf.initializeControl(this, !this.options.readonly);\n }\n\n updateValue(event) {\n this.options.showErrors = true;\n this.jsf.updateValue(this, event.value);\n }\n}\n","import { AbstractControl } from '@angular/forms';\nimport { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\nimport { JsonSchemaFormService } from '@ajsf/core';\n\n@Component({\n selector: 'material-stepper-widget',\n template: `\n <mat-stepper\n [selectedIndex]=\"selectedItem\"\n [linear]=\"options?.linear || false\"\n (selectionChange)=\"select($event.selectedIndex)\">\n @for (item of layoutNode?.items; track item; let i = $index) {\n @if (showAddTab || item.type !== '$ref') {\n <mat-step>\n <ng-template matStepLabel>\n <span [innerHTML]=\"setStepTitle(item, i)\"></span>\n </ng-template>\n <ng-template matStepContent>\n <select-framework-widget\n [class]=\"(options?.fieldHtmlClass || '') + ' ' + (options?.activeClass || '')\"\n [dataIndex]=\"layoutNode?.dataType === 'array' ? (dataIndex || []).concat(i) : dataIndex\"\n [layoutIndex]=\"(layoutIndex || []).concat(i)\"\n [layoutNode]=\"item\"></select-framework-widget>\n <div style=\"margin-top: 16px\">\n @if (i > 0) {\n <button mat-button matStepperPrevious type=\"button\">Back</button>\n }\n @if (hasNextVisible(i)) {\n <button mat-button matStepperNext type=\"button\">Next</button>\n }\n </div>\n </ng-template>\n </mat-step>\n }\n }\n </mat-stepper>`,\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class MaterialStepperComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n itemCount: number;\n selectedItem = 0;\n showAddTab = true;\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private readonly jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.itemCount = this.layoutNode.items.length - 1;\n this.updateControl();\n }\n\n select(index) {\n if (index >= this.layoutNode.items.length) { return; }\n if (this.layoutNode.items[index].type === '$ref') {\n if (!this.showAddTab) { return; }\n this.jsf.addItem({\n layoutNode: this.layoutNode.items[index],\n layoutIndex: this.layoutIndex.concat(index),\n dataIndex: this.dataIndex.concat(index)\n });\n this.updateControl();\n }\n this.selectedItem = index;\n }\n\n updateControl() {\n this.itemCount = this.layoutNode.items.length - 1;\n const lastItem = this.layoutNode.items[this.layoutNode.items.length - 1];\n this.showAddTab = lastItem.type === '$ref' &&\n this.itemCount < (lastItem.options.maxItems || 1000);\n }\n\n hasNextVisible(currentIndex: number): boolean {\n const next = currentIndex + 1;\n if (next > this.itemCount) { return false; }\n const nextItem = this.layoutNode.items[next];\n if (nextItem?.type === '$ref' && !this.showAddTab) { return false; }\n return true;\n }\n\n setStepTitle(item: any, index: number): string {\n return this.jsf.setArrayItemTitle(this, item, index);\n }\n}\n","import { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\nimport { JsonSchemaFormService } from '@ajsf/core';\n\n@Component({\n selector: 'material-tabs-widget',\n template: `\n <nav mat-tab-nav-bar\n [attr.aria-label]=\"options?.label || options?.title || ''\"\n [tabPanel]=\"tabPanel\"\n [style.width]=\"'100%'\">\n @for (item of layoutNode?.items; track item; let i = $index) {\n <a mat-tab-link\n [active]=\"selectedItem === i\"\n (click)=\"select(i)\">\n @if (showAddTab || item.type !== '$ref') {\n <span\n [innerHTML]=\"setTabTitle(item, i)\"></span>\n }\n </a>\n }\n </nav>\n <!-- MDC requires mat-tab-nav-bar to reference a mat-tab-nav-panel, which\n did not exist before v15. It wraps the content the nav switches. -->\n <div mat-tab-nav-panel #tabPanel>\n @for (layoutItem of layoutNode?.items; track layoutItem; let i = $index) {\n <div\n [class]=\"options?.htmlClass || ''\">\n @if (selectedItem === i) {\n <select-framework-widget\n [class]=\"(options?.fieldHtmlClass || '') + ' ' + (options?.activeClass || '') + ' ' + (options?.style?.selected || '')\"\n [dataIndex]=\"layoutNode?.dataType === 'array' ? (dataIndex || []).concat(i) : dataIndex\"\n [layoutIndex]=\"(layoutIndex || []).concat(i)\"\n [layoutNode]=\"layoutItem\"></select-framework-widget>\n }\n </div>\n }\n </div>`,\n styles: [` a { cursor: pointer; } `],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class MaterialTabsComponent implements OnInit {\n options: any;\n itemCount: number;\n selectedItem = 0;\n showAddTab = true;\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private readonly jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.itemCount = this.layoutNode.items.length - 1;\n this.updateControl();\n }\n\n select(index) {\n if (this.layoutNode.items[index].type === '$ref') {\n this.jsf.addItem({\n layoutNode: this.layoutNode.items[index],\n layoutIndex: this.layoutIndex.concat(index),\n dataIndex: this.dataIndex.concat(index)\n });\n this.updateControl();\n }\n this.selectedItem = index;\n }\n\n updateControl() {\n this.itemCount = this.layoutNode.items.length - 1;\n const lastItem = this.layoutNode.items[this.layoutNode.items.length - 1];\n this.showAddTab = lastItem.type === '$ref' &&\n this.itemCount < (lastItem.options.maxItems || 1000);\n }\n\n setTabTitle(item: any, index: number): string {\n return this.jsf.setArrayItemTitle(this, item, index);\n }\n}\n","import { AbstractControl } from '@angular/forms';\nimport {Component, Inject, Input, OnInit, Optional, ChangeDetectionStrategy} from '@angular/core';\nimport { JsonSchemaFormService } from '@ajsf/core';\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\n\n@Component({\n selector: 'material-textarea-widget',\n template: `\n <mat-form-field [appearance]=\"options?.appearance || matFormFieldDefaultOptions?.appearance || 'fill'\"\n [class]=\"options?.htmlClass || ''\"\n [floatLabel]=\"options?.floatLabel || matFormFieldDefaultOptions?.floatLabel || 'auto'\"\n [hideRequiredMarker]=\"options?.hideRequired ? 'true' : 'false'\"\n [style.width]=\"'100%'\">\n @if (!options?.notitle) {\n <mat-label>{{options?.title}}</mat-label>\n }\n @if (options?.prefix || options?.fieldAddonLeft) {\n <span matPrefix\n [innerHTML]=\"options?.prefix || options?.fieldAddonLeft\"></span>\n }\n @if (boundControl) {\n <textarea matInput\n [formControl]=\"formControl\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.list]=\"'control' + layoutNode?._id + 'Autocomplete'\"\n [attr.maxlength]=\"options?.maxLength\"\n [attr.minlength]=\"options?.minLength\"\n [attr.pattern]=\"options?.pattern\"\n [required]=\"$safeNavigationMigration(options?.required)\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n [name]=\"controlName\"\n [placeholder]=\"options?.notitle ? $safeNavigationMigration(options?.placeholder) : $safeNavigationMigration(options?.title)\"\n [readonly]=\"options?.readonly ? 'readonly' : null\"\n [style.width]=\"'100%'\"\n (blur)=\"options.showErrors = true\"></textarea>\n }\n @if (!boundControl) {\n <textarea matInput\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.list]=\"'control' + layoutNode?._id + 'Autocomplete'\"\n [attr.maxlength]=\"options?.maxLength\"\n [attr.minlength]=\"options?.minLength\"\n [attr.pattern]=\"options?.pattern\"\n [required]=\"$safeNavigationMigration(options?.required)\"\n [disabled]=\"controlDisabled\"\n [id]=\"'control' + $safeNavigationMigration(layoutNode?._id)\"\n [name]=\"controlName\"\n [placeholder]=\"options?.notitle ? $safeNavigationMigration(options?.placeholder) : $safeNavigationMigration(options?.title)\"\n [readonly]=\"options?.readonly ? 'readonly' : null\"\n [style.width]=\"'100%'\"\n [value]=\"controlValue\"\n (input)=\"updateValue($event)\"\n (blur)=\"options.showErrors = true\"></textarea>\n }\n @if (options?.suffix || options?.fieldAddonRight) {\n <span matSuffix\n [innerHTML]=\"options?.suffix || options?.fieldAddonRight\"></span>\n }\n @if (options?.description && (!options?.showErrors || !options?.errorMessage)) {\n <mat-hint\n align=\"end\" [innerHTML]=\"$safeNavigationMigration(options?.description)\"></mat-hint>\n }\n </mat-form-field>\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"$safeNavigationMigration(options?.errorMessage)\"></mat-error>\n }`,\n styles: [`\n mat-error { font-size: 75%; margin-top: -1rem; margin-bottom: 0.5rem; }\n ::ng-deep json-schema-form mat-form-field .mat-mdc-form-field-wrapper .mat-form-field-flex\n .mat-form-field-infix { width: initial; }\n `],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class MaterialTextareaComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n @Inject(MAT_FORM_FIELD_DEFAULT_OPTIONS) @Optional() public matFormFieldDefaultOptions,\n private readonly jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.jsf.initializeControl(this);\n if (!this.options.notitle && !this.options.description && this.options.placeholder) {\n this.options.description = this.options.placeholder;\n }\n }\n\n updateValue(event) {\n this.jsf.updateValue(this, event.target.value);\n }\n}\n","import { FlexLayoutRootComponent } from './flex-layout-root.component';\nimport { FlexLayoutSectionComponent } from './flex-layout-section.component';\nimport { MaterialAddReferenceComponent } from './material-add-reference.component';\nimport { MaterialButtonComponent } from './material-button.component';\nimport { MaterialButtonGroupComponent } from './material-button-group.component';\nimport { MaterialCheckboxComponent } from './material-checkbox.component';\nimport { MaterialCheckboxesComponent } from './material-checkboxes.component';\nimport { MaterialChipListComponent } from './material-chip-list.component';\nimport { MaterialDatepickerComponent } from './material-datepicker.component';\nimport { MaterialDesignFrameworkComponent } from '../material-design-framework.component';\nimport { MaterialFileComponent } from './material-file.component';\nimport { MaterialInputComponent } from './material-input.component';\nimport { MaterialNumberComponent } from './material-number.component';\nimport { MaterialOneOfComponent } from './material-one-of.component';\nimport { MaterialRadiosComponent } from './material-radios.component';\nimport { MaterialSelectComponent } from './material-select.component';\nimport { MaterialSliderComponent } from './material-slider.component';\nimport { MaterialStepperComponent } from './material-stepper.component';\nimport { MaterialTabsComponent } from './material-tabs.component';\nimport { MaterialTextareaComponent } from './material-textarea.component';\n\n\nexport const MATERIAL_FRAMEWORK_COMPONENTS = [\n FlexLayoutRootComponent, FlexLayoutSectionComponent,\n MaterialAddReferenceComponent, MaterialOneOfComponent,\n MaterialButtonComponent, MaterialButtonGroupComponent,\n MaterialCheckboxComponent, MaterialCheckboxesComponent,\n MaterialChipListComponent, MaterialDatepickerComponent,\n MaterialFileComponent, MaterialInputComponent, MaterialNumberComponent,\n MaterialRadiosComponent, MaterialSelectComponent, MaterialSliderComponent,\n MaterialStepperComponent, MaterialTabsComponent, MaterialTextareaComponent,\n MaterialDesignFrameworkComponent\n];\n\nexport { FlexLayoutRootComponent } from './flex-layout-root.component';\nexport { FlexLayoutSectionComponent } from './flex-layout-section.component';\nexport { MaterialAddReferenceComponent } from './material-add-reference.component';\nexport { MaterialOneOfComponent } from './material-one-of.component';\nexport { MaterialButtonComponent } from './material-button.component';\nexport { MaterialButtonGroupComponent } from './material-button-group.component';\nexport { MaterialCheckboxComponent } from './material-checkbox.component';\nexport { MaterialCheckboxesComponent } from './material-checkboxes.component';\nexport { MaterialChipListComponent } from './material-chip-list.component';\nexport { MaterialDatepickerComponent } from './material-datepicker.component';\nexport { MaterialFileComponent } from './material-file.component';\nexport { MaterialInputComponent } from './material-input.component';\nexport { MaterialNumberComponent } from './material-number.component';\nexport { MaterialRadiosComponent } from './material-radios.component';\nexport { MaterialSelectComponent } from './material-select.component';\nexport { MaterialSliderComponent } from './material-slider.component';\nexport { MaterialStepperComponent } from './material-stepper.component';\nexport { MaterialTabsComponent } from './material-tabs.component';\nexport { MaterialTextareaComponent } from './material-textarea.component';\nexport { MaterialDesignFrameworkComponent } from '../material-design-framework.component';\n","import {Injectable} from '@angular/core';\nimport {Framework} from '@ajsf/core';\nimport {\n FlexLayoutRootComponent,\n FlexLayoutSectionComponent,\n MaterialAddReferenceComponent,\n MaterialButtonComponent,\n MaterialButtonGroupComponent,\n MaterialCheckboxComponent,\n MaterialCheckboxesComponent,\n MaterialChipListComponent,\n MaterialDatepickerComponent,\n MaterialDesignFrameworkComponent,\n MaterialFileComponent,\n MaterialInputComponent,\n MaterialNumberComponent,\n MaterialOneOfComponent,\n MaterialRadiosComponent,\n MaterialSelectComponent,\n MaterialSliderComponent,\n MaterialStepperComponent,\n MaterialTabsComponent,\n MaterialTextareaComponent\n} from './widgets/public_api';\n\n\n// Material Design Framework\n// https://github.com/angular/material2\n\n@Injectable()\nexport class MaterialDesignFramework extends Framework {\n name = 'material-design';\n\n framework = MaterialDesignFrameworkComponent;\n\n stylesheets = [\n '//fonts.googleapis.com/icon?family=Material+Icons',\n '//fonts.googleapis.com/css?family=Roboto:300,400,500,700',\n ];\n\n widgets = {\n 'root': FlexLayoutRootComponent,\n 'section': FlexLayoutSectionComponent,\n '$ref': MaterialAddReferenceComponent,\n 'button': MaterialButtonComponent,\n 'button-group': MaterialButtonGroupComponent,\n 'checkbox': MaterialCheckboxComponent,\n 'checkboxes': MaterialCheckboxesComponent,\n 'chip-list': MaterialChipListComponent,\n 'date': MaterialDatepickerComponent,\n 'file': MaterialFileComponent,\n 'number': MaterialNumberComponent,\n 'one-of': MaterialOneOfComponent,\n 'radios': MaterialRadiosComponent,\n 'select': MaterialSelectComponent,\n 'slider': MaterialSliderComponent,\n 'stepper': MaterialStepperComponent,\n 'tabs': MaterialTabsComponent,\n 'text': MaterialInputComponent,\n 'textarea': MaterialTextareaComponent,\n 'alt-date': 'date',\n 'any-of': 'one-of',\n 'card': 'section',\n 'color': 'text',\n 'expansion-panel': 'section',\n 'hidden': 'none',\n 'image': 'none',\n 'integer': 'number',\n 'radiobuttons': 'button-group',\n 'range': 'slider',\n 'submit': 'button',\n 'tagsinput': 'chip-list',\n 'wizard': 'stepper',\n };\n}\n","import {\n Framework,\n FrameworkLibraryService,\n JsonSchemaFormModule,\n JsonSchemaFormService,\n WidgetLibraryModule, WidgetLibraryService\n} from '@ajsf/core';\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {MatAutocompleteModule} from '@angular/material/autocomplete';\nimport {MatButtonModule} from '@angular/material/button';\nimport {MatButtonToggleModule} from '@angular/material/button-toggle';\nimport {MatCardModule} from '@angular/material/card';\nimport {MatCheckboxModule} from '@angular/material/checkbox';\nimport {MatChipsModule} from '@angular/material/chips';\nimport {MatNativeDateModule} from '@angular/material/core';\nimport {MatDatepickerModule} from '@angular/material/datepicker';\nimport {MatExpansionModule} from '@angular/material/expansion';\nimport {MatFormFieldModule} from '@angular/material/form-field';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatInputModule} from '@angular/material/input';\nimport {MatListModule} from '@angular/material/list';\nimport {MatRadioModule} from '@angular/material/radio';\nimport {MatSelectModule} from '@angular/material/select';\nimport {MatSlideToggleModule} from '@angular/material/slide-toggle';\nimport {MatSliderModule} from '@angular/material/slider';\nimport {MatStepperModule} from '@angular/material/stepper';\nimport {MatTabsModule} from '@angular/material/tabs';\nimport {MatTooltipModule} from '@angular/material/tooltip';\nimport {MatMenuModule} from '@angular/material/menu';\nimport {MatToolbarModule} from '@angular/material/toolbar';\nimport {MaterialDesignFramework} from './material-design.framework';\nimport {MATERIAL_FRAMEWORK_COMPONENTS} from './widgets/public_api';\n\n/**\n * unused @angular/material modules:\n * MatDialogModule, MatGridListModule, MatMenuModule,\n * MatPaginatorModule, MatProgressBarModule, MatProgressSpinnerModule,\n * MatSidenavModule, MatSnackBarModule, MatSortModule, MatTableModule,\n * ,\n */\nexport const ANGULAR_MATERIAL_MODULES = [\n MatAutocompleteModule, MatButtonModule, MatButtonToggleModule, MatCardModule,\n MatCheckboxModule, MatChipsModule, MatDatepickerModule, MatExpansionModule, MatListModule,\n MatFormFieldModule, MatIconModule, MatInputModule, MatNativeDateModule,\n MatRadioModule, MatSelectModule, MatSliderModule, MatSlideToggleModule,\n MatStepperModule, MatTabsModule, MatTooltipModule,\n MatToolbarModule, MatMenuModule, MatToolbarModule,\n];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n ...ANGULAR_MATERIAL_MODULES,\n WidgetLibraryModule,\n JsonSchemaFormModule,\n ],\n declarations: [\n ...MATERIAL_FRAMEWORK_COMPONENTS,\n ],\n exports: [\n JsonSchemaFormModule,\n ...MATERIAL_FRAMEWORK_COMPONENTS,\n ],\n providers: [\n JsonSchemaFormService,\n FrameworkLibraryService,\n WidgetLibraryService,\n { provide: Framework, useClass: MaterialDesignFramework, multi: true },\n ]\n})\nexport class MaterialDesignFrameworkModule { }\n"],"mappings":"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"}
|