@yyasinaslan/easyform
Version:
Angular Easy Form
41 lines • 8.19 kB
JavaScript
import { Component, ContentChild, inject, Input, TemplateRef } from '@angular/core';
import { EasyFormComponent } from "../../easy-form/easy-form.component";
import { NgTemplateOutlet } from "@angular/common";
import { ArrayItemTemplateDirective } from "../../directives/array-item-template.directive";
import { ArrayWrapperTemplateDirective } from "../../directives/array-wrapper-template.directive";
import { EfErrorsComponent } from "../ef-errors/ef-errors.component";
import * as i0 from "@angular/core";
export class EfFormArrayComponent {
constructor() {
this.easyFormComponent = inject(EasyFormComponent);
}
get schema() {
return this.easyFormComponent.form.getSchema(this.path);
}
get control() {
return this.easyFormComponent.form.getControl(this.path);
}
get arrayControls() {
const arr = this.easyFormComponent.form.formGroup.get(this.path);
return arr.controls ?? [];
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: EfFormArrayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: EfFormArrayComponent, isStandalone: true, selector: "ef-form-array", inputs: { path: "path" }, queries: [{ propertyName: "itemTemplate", first: true, predicate: ArrayItemTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "wrapperTemplate", first: true, predicate: ArrayWrapperTemplateDirective, descendants: true, read: TemplateRef }], ngImport: i0, template: "@if (wrapperTemplate) {\r\n <ng-container [ngTemplateOutlet]=\"wrapperTemplate\" [ngTemplateOutletContext]=\"{\r\n $implicit: arrayControls,\r\n itemTemplate: itemTemplate\r\n }\"/>\r\n} @else {\r\n @if (itemTemplate) {\r\n @for (control of arrayControls; track control) {\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{$implicit:'', index: $index}\"/>\r\n }\r\n }\r\n}\r\n", styles: [""], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: EfFormArrayComponent, decorators: [{
type: Component,
args: [{ selector: 'ef-form-array', standalone: true, imports: [
NgTemplateOutlet,
EfErrorsComponent
], template: "@if (wrapperTemplate) {\r\n <ng-container [ngTemplateOutlet]=\"wrapperTemplate\" [ngTemplateOutletContext]=\"{\r\n $implicit: arrayControls,\r\n itemTemplate: itemTemplate\r\n }\"/>\r\n} @else {\r\n @if (itemTemplate) {\r\n @for (control of arrayControls; track control) {\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{$implicit:'', index: $index}\"/>\r\n }\r\n }\r\n}\r\n" }]
}], propDecorators: { itemTemplate: [{
type: ContentChild,
args: [ArrayItemTemplateDirective, { read: TemplateRef }]
}], wrapperTemplate: [{
type: ContentChild,
args: [ArrayWrapperTemplateDirective, { read: TemplateRef }]
}], path: [{
type: Input,
args: [{ required: true }]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWYtZm9ybS1hcnJheS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lYXN5LWZvcm0vc3JjL2xpYi9jb21wb25lbnRzL2VmLWZvcm0tYXJyYXkvZWYtZm9ybS1hcnJheS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lYXN5LWZvcm0vc3JjL2xpYi9jb21wb25lbnRzL2VmLWZvcm0tYXJyYXkvZWYtZm9ybS1hcnJheS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUMxRixPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUNoRyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFZbkUsTUFBTSxPQUFPLG9CQUFvQjtJQVZqQztRQXVCRSxzQkFBaUIsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtLQWM5QztJQVpDLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQWMsQ0FBQztRQUM5RSxPQUFPLEdBQUcsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUM7K0dBMUJVLG9CQUFvQjttR0FBcEIsb0JBQW9CLDZJQUNqQiwwQkFBMEIsMkJBQVMsV0FBVywrREFLOUMsNkJBQTZCLDJCQUFTLFdBQVcsNkJDeEJqRSw0YUFZQSwwRERBSSxnQkFBZ0I7OzRGQU1QLG9CQUFvQjtrQkFWaEMsU0FBUzsrQkFDRSxlQUFlLGNBQ2IsSUFBSSxXQUNQO3dCQUNQLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3FCQUNsQjs4QkFLOEQsWUFBWTtzQkFBMUUsWUFBWTt1QkFBQywwQkFBMEIsRUFBRSxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUM7Z0JBS0ssZUFBZTtzQkFBaEYsWUFBWTt1QkFBQyw2QkFBNkIsRUFBRSxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUM7Z0JBS3ZDLElBQUk7c0JBQTVCLEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgaW5qZWN0LCBJbnB1dCwgVGVtcGxhdGVSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Vhc3lGb3JtQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vZWFzeS1mb3JtL2Vhc3ktZm9ybS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtOZ1RlbXBsYXRlT3V0bGV0fSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7Rm9ybUFycmF5fSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHtBcnJheUl0ZW1UZW1wbGF0ZURpcmVjdGl2ZX0gZnJvbSBcIi4uLy4uL2RpcmVjdGl2ZXMvYXJyYXktaXRlbS10ZW1wbGF0ZS5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHtBcnJheVdyYXBwZXJUZW1wbGF0ZURpcmVjdGl2ZX0gZnJvbSBcIi4uLy4uL2RpcmVjdGl2ZXMvYXJyYXktd3JhcHBlci10ZW1wbGF0ZS5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHtFZkVycm9yc0NvbXBvbmVudH0gZnJvbSBcIi4uL2VmLWVycm9ycy9lZi1lcnJvcnMuY29tcG9uZW50XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VmLWZvcm0tYXJyYXknLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcclxuICAgIEVmRXJyb3JzQ29tcG9uZW50XHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZWYtZm9ybS1hcnJheS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2VmLWZvcm0tYXJyYXkuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFZkZvcm1BcnJheUNvbXBvbmVudCB7XHJcbiAgQENvbnRlbnRDaGlsZChBcnJheUl0ZW1UZW1wbGF0ZURpcmVjdGl2ZSwge3JlYWQ6IFRlbXBsYXRlUmVmfSkgaXRlbVRlbXBsYXRlITogVGVtcGxhdGVSZWY8e1xyXG4gICAgJGltcGxpY2l0OiBhbnksXHJcbiAgICBpbmRleDogbnVtYmVyXHJcbiAgfT47XHJcblxyXG4gIEBDb250ZW50Q2hpbGQoQXJyYXlXcmFwcGVyVGVtcGxhdGVEaXJlY3RpdmUsIHtyZWFkOiBUZW1wbGF0ZVJlZn0pIHdyYXBwZXJUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPHtcclxuICAgICRpbXBsaWNpdDogYW55LFxyXG4gICAgaXRlbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+XHJcbiAgfT47XHJcblxyXG4gIEBJbnB1dCh7cmVxdWlyZWQ6IHRydWV9KSBwYXRoITogc3RyaW5nO1xyXG5cclxuICBlYXN5Rm9ybUNvbXBvbmVudCA9IGluamVjdChFYXN5Rm9ybUNvbXBvbmVudClcclxuXHJcbiAgZ2V0IHNjaGVtYSgpIHtcclxuICAgIHJldHVybiB0aGlzLmVhc3lGb3JtQ29tcG9uZW50LmZvcm0uZ2V0U2NoZW1hKHRoaXMucGF0aCk7XHJcbiAgfVxyXG5cclxuICBnZXQgY29udHJvbCgpIHtcclxuICAgIHJldHVybiB0aGlzLmVhc3lGb3JtQ29tcG9uZW50LmZvcm0uZ2V0Q29udHJvbCh0aGlzLnBhdGgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFycmF5Q29udHJvbHMoKSB7XHJcbiAgICBjb25zdCBhcnIgPSB0aGlzLmVhc3lGb3JtQ29tcG9uZW50LmZvcm0uZm9ybUdyb3VwLmdldCh0aGlzLnBhdGgpIGFzIEZvcm1BcnJheTtcclxuICAgIHJldHVybiBhcnIuY29udHJvbHMgPz8gW107XHJcbiAgfVxyXG59XHJcbiIsIkBpZiAod3JhcHBlclRlbXBsYXRlKSB7XHJcbiAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ3cmFwcGVyVGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xyXG4gICRpbXBsaWNpdDogYXJyYXlDb250cm9scyxcclxuICBpdGVtVGVtcGxhdGU6IGl0ZW1UZW1wbGF0ZVxyXG4gIH1cIi8+XHJcbn0gQGVsc2Uge1xyXG4gIEBpZiAoaXRlbVRlbXBsYXRlKSB7XHJcbiAgICBAZm9yIChjb250cm9sIG9mIGFycmF5Q29udHJvbHM7IHRyYWNrIGNvbnRyb2wpIHtcclxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtVGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyRpbXBsaWNpdDonJywgaW5kZXg6ICRpbmRleH1cIi8+XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==