@ajsf/material 21.0.0 → 22.0.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 +358 -357
- package/fesm2022/ajsf-material.mjs.map +1 -1
- package/package.json +7 -7
- package/types/ajsf-material.d.ts +1 -1
|
@@ -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.Default,\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 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 } 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]=\"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]=\"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]=\"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]=\"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]=\"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]=\"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]=\"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 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 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 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]=\"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.Default,\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 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[this.layoutIndex.length - 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 } 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' + layoutNode?._id\"\n [name]=\"controlName\"\n [type]=\"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]=\"options?.title\"></span>\n }\n </button>\n </div>`,\n styles: [` button { margin-top: 10px; } `],\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 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 } 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]=\"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' + layoutNode?._id + '/' + radioItem?.name\"\n [value]=\"radioItem?.value\"\n (click)=\"updateValue(radioItem?.value)\">\n <span [innerHTML]=\"radioItem?.name\"></span>\n </mat-button-toggle>\n }\n </mat-button-toggle-group>\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"options?.errorMessage\"></mat-error>\n }\n </div>`,\n styles: [` mat-error { font-size: 75%; } `],\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 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 } 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' + 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]=\"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' + 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]=\"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' + 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]=\"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' + 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]=\"options?.title\"></span>\n }\n </mat-slide-toggle>\n }\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"options?.errorMessage\"></mat-error>\n }`,\n styles: [`\n .checkbox-name { white-space: nowrap; }\n mat-error { font-size: 75%; }\n `],\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 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 { buildTitleMap } from '@ajsf/core';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { 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]=\"options?.name\"\n (blur)=\"options.showErrors = true\"\n (change)=\"updateAllValues($event)\">\n <span class=\"checkbox-name\" [innerHTML]=\"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]=\"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]=\"checkboxItem?.name\"\n (blur)=\"options.showErrors = true\"\n (change)=\"updateValue()\">\n <span class=\"checkbox-name\" [innerHTML]=\"checkboxItem?.name\"></span>\n </mat-checkbox>\n </li>\n }\n </ul>\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"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 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 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 } 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]=\"options?.description\"></mat-hint>\n }\n </mat-form-field>\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"options?.errorMessage\"></mat-error>\n }`,\n styles: [`\n mat-error { font-size: 75%; margin-top: -1rem; margin-bottom: 0.5rem; }\n `],\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 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 } 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' + layoutNode?._id\"\n [max]=\"options?.maximum\"\n [matDatepicker]=\"picker\"\n [min]=\"options?.minimum\"\n [name]=\"controlName\"\n [placeholder]=\"options?.title\"\n [readonly]=\"options?.readonly\"\n [required]=\"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' + layoutNode?._id\"\n [max]=\"options?.maximum\"\n [matDatepicker]=\"picker\"\n [min]=\"options?.minimum\"\n [name]=\"controlName\"\n [placeholder]=\"options?.title\"\n [required]=\"options?.required\"\n [style.width]=\"'100%'\"\n [readonly]=\"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]=\"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]=\"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 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 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} from '@angular/core';\nimport {cloneDeep, isDefined, JsonSchemaFormService} from '@ajsf/core';\n\n@Component({\n selector: 'material-design-framework',\n templateUrl: './material-design-framework.component.html',\n styleUrls: ['./material-design-framework.component.scss'],\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 changeDetector: ChangeDetectorRef,\n private 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 return this.parentArray.items.length - 1 <= this.parentArray.options.minItems ? false :\n // For removable list items, allow removing any item\n this.layoutNode.arrayItemType === 'list' ? true :\n // For removable tuple items, only allow removing last item in list\n this.layoutIndex[this.layoutIndex.length - 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 /{{.+?}}/.test(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[this.dataIndex.length - 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 <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"18\" width=\"18\" viewBox=\"0 0 24 24\"\n class=\"close-button\"\n (click)=\"removeItem()\">\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 }\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 } 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]=\"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]=\"options?.errorMessage\"></mat-error>\n }`,\n styles: [`\n mat-error { font-size: 75%; margin-top: -1rem; margin-bottom: 0.5rem; }\n `],\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 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} 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' + layoutNode?._id\"\n [name]=\"controlName\"\n [placeholder]=\"options?.notitle ? options?.placeholder : options?.title\"\n [required]=\"options?.required\"\n [style.width]=\"'100%'\"\n [type]=\"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' + layoutNode?._id\"\n [name]=\"controlName\"\n [placeholder]=\"options?.notitle ? options?.placeholder : options?.title\"\n [readonly]=\"options?.readonly ? 'readonly' : null\"\n [required]=\"options?.required\"\n [style.width]=\"'100%'\"\n [type]=\"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]=\"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]=\"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 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 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} 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' + layoutNode?._id\"\n [name]=\"controlName\"\n [placeholder]=\"options?.notitle ? options?.placeholder : options?.title\"\n [readonly]=\"options?.readonly ? 'readonly' : null\"\n [required]=\"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' + layoutNode?._id\"\n [name]=\"controlName\"\n [placeholder]=\"options?.notitle ? options?.placeholder : options?.title\"\n [readonly]=\"options?.readonly ? 'readonly' : null\"\n [required]=\"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]=\"options?.description\"></mat-hint>\n }\n </mat-form-field>\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"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 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 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 } 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' + layoutNode?._id\"\n [placeholder]=\"options?.notitle ? options?.placeholder : options?.title\"\n [required]=\"options?.required\"\n [style.width]=\"'100%'\"\n (blur)=\"options.showErrors = true\">\n @for (item of selectList; track item) {\n <mat-option [value]=\"item?.value\">\n <span [innerHTML]=\"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' + layoutNode?._id\"\n [disabled]=\"controlDisabled || options?.readonly\"\n [placeholder]=\"options?.notitle ? options?.placeholder : options?.title\"\n [required]=\"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]=\"item?.value\">\n <span [innerHTML]=\"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' + 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]=\"item?.value\">\n <span [innerHTML]=\"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]=\"options?.description\"></mat-hint>\n }\n </mat-form-field>\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"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 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 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 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 if (this.isFieldset && !this.options.titleMap && !this.options.enum) {\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 if (this.isFieldset && (this.options.titleMap || this.options.enum)) {\n let idx = 0;\n for (const entry of this.selectList) {\n if (entry.value != null && entry.value !== '') {\n if (idx === 0) { this.selectedValue = entry.value; }\n this.fieldsetValueMap.set(entry.value, idx++);\n }\n }\n }\n\n if (!this.isFieldset || this.options.titleMap || this.options.enum) {\n this.jsf.initializeControl(this, !this.options.readonly);\n }\n\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 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 } 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]=\"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' + layoutNode?._id + '/' + radioItem?.name\"\n [value]=\"radioItem?.value\">\n <span [innerHTML]=\"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' + layoutNode?._id + '/' + radioItem?.name\"\n [value]=\"radioItem?.value\"\n (click)=\"updateValue(radioItem?.value)\">\n <span [innerHTML]=\"radioItem?.name\"></span>\n </mat-radio-button>\n }\n </mat-radio-group>\n }\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"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 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 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} 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' + layoutNode?._id\"\n [multiple]=\"options?.multiple\"\n [placeholder]=\"options?.notitle ? options?.placeholder : options?.title\"\n [required]=\"options?.required\"\n [style.width]=\"'100%'\"\n (blur)=\"options.showErrors = true\">\n @for (selectItem of selectList; track selectItem) {\n @if (!isArray(selectItem?.items)) {\n <mat-option\n [value]=\"selectItem?.value\">\n <span [innerHTML]=\"selectItem?.name\"></span>\n </mat-option>\n }\n @if (isArray(selectItem?.items)) {\n <mat-optgroup\n [label]=\"selectItem?.group\">\n @for (subItem of selectItem.items; track subItem) {\n <mat-option\n [value]=\"subItem?.value\">\n <span [innerHTML]=\"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' + layoutNode?._id\"\n [multiple]=\"options?.multiple\"\n [placeholder]=\"options?.notitle ? options?.placeholder : options?.title\"\n [required]=\"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(selectItem?.items)) {\n <mat-option\n [attr.selected]=\"selectItem?.value === controlValue\"\n [value]=\"selectItem?.value\">\n <span [innerHTML]=\"selectItem?.name\"></span>\n </mat-option>\n }\n @if (isArray(selectItem?.items)) {\n <mat-optgroup\n [label]=\"selectItem?.group\">\n @for (subItem of selectItem.items; track subItem) {\n <mat-option\n [attr.selected]=\"subItem?.value === controlValue\"\n [value]=\"subItem?.value\">\n <span [innerHTML]=\"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]=\"options?.description\"></mat-hint>\n }\n </mat-form-field>\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"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 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 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 } 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' + 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' + 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]=\"options?.errorMessage\"></mat-error>\n }`,\n styles: [` mat-error { font-size: 75%; } `],\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 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 } 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 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 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 } 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 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 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} 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]=\"options?.required\"\n [id]=\"'control' + layoutNode?._id\"\n [name]=\"controlName\"\n [placeholder]=\"options?.notitle ? options?.placeholder : 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]=\"options?.required\"\n [disabled]=\"controlDisabled\"\n [id]=\"'control' + layoutNode?._id\"\n [name]=\"controlName\"\n [placeholder]=\"options?.notitle ? options?.placeholder : 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]=\"options?.description\"></mat-hint>\n }\n </mat-form-field>\n @if (options?.showErrors && options?.errorMessage) {\n <mat-error\n [innerHTML]=\"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 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 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 * Public API Surface of @ajsf/material-framework\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","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 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 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 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 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[this.layoutIndex.length - 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 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 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 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 { buildTitleMap } from '@ajsf/core';\nimport { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\nimport { 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 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 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 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\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 changeDetector: ChangeDetectorRef,\n private 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 return this.parentArray.items.length - 1 <= this.parentArray.options.minItems ? false :\n // For removable list items, allow removing any item\n this.layoutNode.arrayItemType === 'list' ? true :\n // For removable tuple items, only allow removing last item in list\n this.layoutIndex[this.layoutIndex.length - 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 /{{.+?}}/.test(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[this.dataIndex.length - 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 <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"18\" width=\"18\" viewBox=\"0 0 24 24\"\n class=\"close-button\"\n (click)=\"removeItem()\">\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 }\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 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 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 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 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 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 if (this.isFieldset && !this.options.titleMap && !this.options.enum) {\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 if (this.isFieldset && (this.options.titleMap || this.options.enum)) {\n let idx = 0;\n for (const entry of this.selectList) {\n if (entry.value != null && entry.value !== '') {\n if (idx === 0) { this.selectedValue = entry.value; }\n this.fieldsetValueMap.set(entry.value, idx++);\n }\n }\n }\n\n if (!this.isFieldset || this.options.titleMap || this.options.enum) {\n this.jsf.initializeControl(this, !this.options.readonly);\n }\n\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 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 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 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 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 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 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 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 * Public API Surface of @ajsf/material-framework\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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"}
|