@tft/crispr-forms 13.0.12 → 13.0.13
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/esm2020/lib/field-component-map.const.mjs +5 -2
- package/esm2020/lib/field.directive.mjs +18 -8
- package/esm2020/lib/form/form.component.mjs +4 -6
- package/fesm2015/tft-crispr-forms.mjs +23 -12
- package/fesm2015/tft-crispr-forms.mjs.map +1 -1
- package/fesm2020/tft-crispr-forms.mjs +23 -12
- package/fesm2020/tft-crispr-forms.mjs.map +1 -1
- package/lib/field-component-map.const.d.ts +4 -2
- package/lib/field.directive.d.ts +9 -4
- package/lib/form/form.component.d.ts +3 -3
- package/package.json +1 -1
- package/tft-crispr-forms-13.0.13.tgz +0 -0
- package/tft-crispr-forms-13.0.12.tgz +0 -0
|
@@ -20,6 +20,9 @@ export const FIELD_COMPONENTS = {
|
|
|
20
20
|
unitConversion: import('./material').then(({ UnitConversionFieldComponent }) => UnitConversionFieldComponent)
|
|
21
21
|
};
|
|
22
22
|
export function isControlComponent(component) {
|
|
23
|
-
return isControlConfig(component.config) || component.config.controlType === ControlType.BUTTON;
|
|
23
|
+
return isControlConfig(component.config) && 'value' in component; // || component.config.controlType === ControlType.BUTTON;
|
|
24
24
|
}
|
|
25
|
-
|
|
25
|
+
export function isControlOrButtonComponent(component) {
|
|
26
|
+
return isControlComponent(component) || component.config.controlType === ControlType.BUTTON;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtY29tcG9uZW50LW1hcC5jb25zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvZmllbGQtY29tcG9uZW50LW1hcC5jb25zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV2QyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM5QixTQUFTLEVBQUUsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUMsSUFBSSxDQUFFLENBQUMsRUFBQyxzQkFBc0IsRUFBQyxFQUFFLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztJQUNsRyxRQUFRLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLEVBQUMsRUFBRSxFQUFFLENBQUUsaUJBQWlCLENBQUM7SUFDbEYsTUFBTSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLGVBQWUsRUFBQyxFQUFFLEVBQUUsQ0FBRSxlQUFlLENBQUM7SUFDM0UsS0FBSyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLG1CQUFtQixFQUFDLEVBQUUsRUFBRSxDQUFFLG1CQUFtQixDQUFDO0lBQ2xGLE1BQU0sRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxvQkFBb0IsRUFBQyxFQUFFLEVBQUUsQ0FBRSxvQkFBb0IsQ0FBQztJQUNyRixLQUFLLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsbUJBQW1CLEVBQUMsRUFBRSxFQUFFLENBQUUsbUJBQW1CLENBQUM7SUFDbEYsWUFBWSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLDBCQUEwQixFQUFDLEVBQUUsRUFBRSxDQUFFLDBCQUEwQixDQUFDO0lBQ3ZHLG9CQUFvQixFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLGtDQUFrQyxFQUFDLEVBQUUsRUFBRSxDQUFFLGtDQUFrQyxDQUFDO0lBQy9ILFFBQVEsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxzQkFBc0IsRUFBQyxFQUFFLEVBQUUsQ0FBRSxzQkFBc0IsQ0FBQztJQUMzRixRQUFRLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsc0JBQXNCLEVBQUMsRUFBRSxFQUFFLENBQUUsc0JBQXNCLENBQUM7SUFDM0YsTUFBTSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLG9CQUFvQixFQUFDLEVBQUUsRUFBRSxDQUFFLG9CQUFvQixDQUFDO0lBQ3JGLFVBQVUsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSx3QkFBd0IsRUFBQyxFQUFFLEVBQUUsQ0FBRSx3QkFBd0IsQ0FBQztJQUNqRyxVQUFVLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsd0JBQXdCLEVBQUMsRUFBRSxFQUFFLENBQUUsd0JBQXdCLENBQUM7SUFDakcsV0FBVyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLHlCQUF5QixFQUFDLEVBQUUsRUFBRSxDQUFFLHlCQUF5QixDQUFDO0lBQ3BHLE9BQU8sRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsRUFBQyxFQUFFLEVBQUUsQ0FBRSxnQkFBZ0IsQ0FBQztJQUM5RSxPQUFPLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLEVBQUMsRUFBRSxFQUFFLENBQUUsZ0JBQWdCLENBQUM7SUFDOUUsY0FBYyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLDRCQUE0QixFQUFDLEVBQUUsRUFBRSxDQUFFLDRCQUE0QixDQUFDO0NBQzlHLENBQUM7QUFFRixNQUFNLFVBQVUsa0JBQWtCLENBQUMsU0FBK0I7SUFDaEUsT0FBTyxlQUFlLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE9BQU8sSUFBSSxTQUFTLENBQUEsQ0FBQywwREFBMEQ7QUFDN0gsQ0FBQztBQUVELE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxTQUErQjtJQUN4RSxPQUFPLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsV0FBVyxLQUFLLFdBQVcsQ0FBQyxNQUFNLENBQUM7QUFDOUYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbWF4LWxpbmUtbGVuZ3RoXG5pbXBvcnQgdHlwZSB7IElucHV0RmllbGRDb21wb25lbnQsIFNlbGVjdEZpZWxkQ29tcG9uZW50LCBBdXRvY29tcGxldGVGaWVsZENvbXBvbmVudCxcbiAgQXV0b2NvbXBsZXRlQ2hpcGxpc3RGaWVsZENvbXBvbmVudCwgVGV4dGFyZWFGaWVsZENvbXBvbmVudCwgQ2hlY2tib3hGaWVsZENvbXBvbmVudCxcbiAgUmFkaW9GaWVsZENvbXBvbmVudCwgRmlsZVVwbG9hZEZpZWxkQ29tcG9uZW50LCBTbGlkZXJGaWVsZENvbXBvbmVudCwgRGF0ZXBpY2tlckZpZWxkQ29tcG9uZW50LFxuICBIZWFkaW5nQ29tcG9uZW50LCBEaXZpZGVyQ29tcG9uZW50LCBCdXR0b25Db21wb25lbnQsIFVuaXRDb252ZXJzaW9uRmllbGRDb21wb25lbnQsIEltYWdlVXBsb2FkRmllbGRDb21wb25lbnQgfSBmcm9tICcuL21hdGVyaWFsJztcbmltcG9ydCB0eXBlIHsgRm9ybUdyb3VwTGlzdENvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1ncm91cC1saXN0L2Zvcm0tZ3JvdXAtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHR5cGUgeyBTdWJHcm91cENvbXBvbmVudCB9IGZyb20gJy4vc3ViLWdyb3VwL3N1Yi1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgaXNDb250cm9sQ29uZmlnIH0gZnJvbSAnLi9mb3JtLmhlbHBlcnMnO1xuaW1wb3J0IHsgQ29udHJvbFR5cGUgfSBmcm9tICcuL21vZGVscyc7XG5cbmV4cG9ydCBjb25zdCBGSUVMRF9DT01QT05FTlRTID0ge1xuICBncm91cExpc3Q6IGltcG9ydCgnLi9mb3JtLWdyb3VwLWxpc3QnKS50aGVuICgoe0Zvcm1Hcm91cExpc3RDb21wb25lbnR9KSA9PiBGb3JtR3JvdXBMaXN0Q29tcG9uZW50KSxcbiAgc3ViR3JvdXA6IGltcG9ydCgnLi9zdWItZ3JvdXAnKS50aGVuKCh7IFN1Ykdyb3VwQ29tcG9uZW50fSkgPT4gIFN1Ykdyb3VwQ29tcG9uZW50KSxcbiAgYnV0dG9uOiBpbXBvcnQoJy4vbWF0ZXJpYWwnKS50aGVuKCh7IEJ1dHRvbkNvbXBvbmVudH0pID0+ICBCdXR0b25Db21wb25lbnQpLFxuICBpbnB1dDogaW1wb3J0KCcuL21hdGVyaWFsJykudGhlbigoeyBJbnB1dEZpZWxkQ29tcG9uZW50fSkgPT4gIElucHV0RmllbGRDb21wb25lbnQpLFxuICBzZWxlY3Q6IGltcG9ydCgnLi9tYXRlcmlhbCcpLnRoZW4oKHsgU2VsZWN0RmllbGRDb21wb25lbnR9KSA9PiAgU2VsZWN0RmllbGRDb21wb25lbnQpLFxuICByYWRpbzogaW1wb3J0KCcuL21hdGVyaWFsJykudGhlbigoeyBSYWRpb0ZpZWxkQ29tcG9uZW50fSkgPT4gIFJhZGlvRmllbGRDb21wb25lbnQpLFxuICBhdXRvY29tcGxldGU6IGltcG9ydCgnLi9tYXRlcmlhbCcpLnRoZW4oKHsgQXV0b2NvbXBsZXRlRmllbGRDb21wb25lbnR9KSA9PiAgQXV0b2NvbXBsZXRlRmllbGRDb21wb25lbnQpLFxuICBhdXRvY29tcGxldGVDaGlwbGlzdDogaW1wb3J0KCcuL21hdGVyaWFsJykudGhlbigoeyBBdXRvY29tcGxldGVDaGlwbGlzdEZpZWxkQ29tcG9uZW50fSkgPT4gIEF1dG9jb21wbGV0ZUNoaXBsaXN0RmllbGRDb21wb25lbnQpLFxuICB0ZXh0YXJlYTogaW1wb3J0KCcuL21hdGVyaWFsJykudGhlbigoeyBUZXh0YXJlYUZpZWxkQ29tcG9uZW50fSkgPT4gIFRleHRhcmVhRmllbGRDb21wb25lbnQpLFxuICBjaGVja2JveDogaW1wb3J0KCcuL21hdGVyaWFsJykudGhlbigoeyBDaGVja2JveEZpZWxkQ29tcG9uZW50fSkgPT4gIENoZWNrYm94RmllbGRDb21wb25lbnQpLFxuICBzbGlkZXI6IGltcG9ydCgnLi9tYXRlcmlhbCcpLnRoZW4oKHsgU2xpZGVyRmllbGRDb21wb25lbnR9KSA9PiAgU2xpZGVyRmllbGRDb21wb25lbnQpLFxuICBkYXRlcGlja2VyOiBpbXBvcnQoJy4vbWF0ZXJpYWwnKS50aGVuKCh7IERhdGVwaWNrZXJGaWVsZENvbXBvbmVudH0pID0+ICBEYXRlcGlja2VyRmllbGRDb21wb25lbnQpLFxuICBmaWxlVXBsb2FkOiBpbXBvcnQoJy4vbWF0ZXJpYWwnKS50aGVuKCh7IEZpbGVVcGxvYWRGaWVsZENvbXBvbmVudH0pID0+ICBGaWxlVXBsb2FkRmllbGRDb21wb25lbnQpLFxuICBpbWFnZVVwbG9hZDogaW1wb3J0KCcuL21hdGVyaWFsJykudGhlbigoeyBJbWFnZVVwbG9hZEZpZWxkQ29tcG9uZW50fSkgPT4gIEltYWdlVXBsb2FkRmllbGRDb21wb25lbnQpLFxuICBoZWFkaW5nOiBpbXBvcnQoJy4vbWF0ZXJpYWwnKS50aGVuKCh7IEhlYWRpbmdDb21wb25lbnR9KSA9PiAgSGVhZGluZ0NvbXBvbmVudCksXG4gIGRpdmlkZXI6IGltcG9ydCgnLi9tYXRlcmlhbCcpLnRoZW4oKHsgRGl2aWRlckNvbXBvbmVudH0pID0+ICBEaXZpZGVyQ29tcG9uZW50KSxcbiAgdW5pdENvbnZlcnNpb246IGltcG9ydCgnLi9tYXRlcmlhbCcpLnRoZW4oKHsgVW5pdENvbnZlcnNpb25GaWVsZENvbXBvbmVudH0pID0+ICBVbml0Q29udmVyc2lvbkZpZWxkQ29tcG9uZW50KVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udHJvbENvbXBvbmVudChjb21wb25lbnQ6IENyaXNwckZpZWxkQ29tcG9uZW50KTogY29tcG9uZW50IGlzIENyaXNwckNvbnRyb2xDb21wb25lbnQge1xuICByZXR1cm4gaXNDb250cm9sQ29uZmlnKGNvbXBvbmVudC5jb25maWcpICYmICd2YWx1ZScgaW4gY29tcG9uZW50IC8vIHx8IGNvbXBvbmVudC5jb25maWcuY29udHJvbFR5cGUgPT09IENvbnRyb2xUeXBlLkJVVFRPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udHJvbE9yQnV0dG9uQ29tcG9uZW50KGNvbXBvbmVudDogQ3Jpc3ByRmllbGRDb21wb25lbnQpOiBjb21wb25lbnQgaXMgQ3Jpc3ByQ29udHJvbE9yQnV0dG9uIHtcbiAgcmV0dXJuIGlzQ29udHJvbENvbXBvbmVudChjb21wb25lbnQpIHx8IGNvbXBvbmVudC5jb25maWcuY29udHJvbFR5cGUgPT09IENvbnRyb2xUeXBlLkJVVFRPTjtcbn1cblxuZXhwb3J0IHR5cGUgQ3Jpc3ByQ29udHJvbE9yQnV0dG9uID0gQ3Jpc3ByQ29udHJvbENvbXBvbmVudCB8IEJ1dHRvbkNvbXBvbmVudDtcblxuZXhwb3J0IHR5cGUgQ3Jpc3ByQ29udHJvbENvbXBvbmVudCA9IElucHV0RmllbGRDb21wb25lbnQgfFxuICBTZWxlY3RGaWVsZENvbXBvbmVudCB8XG4gIFJhZGlvRmllbGRDb21wb25lbnQgfFxuICBTdWJHcm91cENvbXBvbmVudCB8XG4gIEZvcm1Hcm91cExpc3RDb21wb25lbnQgfFxuICBBdXRvY29tcGxldGVGaWVsZENvbXBvbmVudCB8XG4gIEF1dG9jb21wbGV0ZUNoaXBsaXN0RmllbGRDb21wb25lbnQgfFxuICBUZXh0YXJlYUZpZWxkQ29tcG9uZW50IHxcbiAgQ2hlY2tib3hGaWVsZENvbXBvbmVudCB8XG4gIFNsaWRlckZpZWxkQ29tcG9uZW50IHxcbiAgRmlsZVVwbG9hZEZpZWxkQ29tcG9uZW50IHxcbiAgSW1hZ2VVcGxvYWRGaWVsZENvbXBvbmVudHxcbiAgRGF0ZXBpY2tlckZpZWxkQ29tcG9uZW50IHxcbiAgVW5pdENvbnZlcnNpb25GaWVsZENvbXBvbmVudDtcblxuZXhwb3J0IHR5cGUgQ29tcG9uZW50S2V5cyA9IGtleW9mIHR5cGVvZiBGSUVMRF9DT01QT05FTlRTO1xuLy8gZXhwb3J0IHR5cGUgQ3Jpc3ByRmllbGRDb21wb25lbnQgPSBGSUVMRF9DT01QT05FTlRTW0NvbXBvbmVudEtleXNdO1xuXG5leHBvcnQgdHlwZSBDcmlzcHJGaWVsZENvbXBvbmVudCA9IENyaXNwckNvbnRyb2xDb21wb25lbnQgfFxuICBIZWFkaW5nQ29tcG9uZW50IHxcbiAgRGl2aWRlckNvbXBvbmVudCB8XG4gIEJ1dHRvbkNvbXBvbmVudDtcblxuIl19
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Directive, Input, ViewContainerRef, Renderer2, NgModule, ChangeDetectorRef } from '@angular/core';
|
|
2
2
|
import { FormGroup } from '@angular/forms';
|
|
3
|
-
import { FIELD_COMPONENTS, isControlComponent } from './field-component-map.const';
|
|
3
|
+
import { FIELD_COMPONENTS, isControlComponent, isControlOrButtonComponent } from './field-component-map.const';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export class CrisprFieldDirective {
|
|
@@ -9,7 +9,17 @@ export class CrisprFieldDirective {
|
|
|
9
9
|
this.renderer = renderer;
|
|
10
10
|
this.cdr = cdr;
|
|
11
11
|
}
|
|
12
|
-
|
|
12
|
+
set value(value) {
|
|
13
|
+
this._value = value;
|
|
14
|
+
if (this.component && isControlComponent(this.component)) {
|
|
15
|
+
this.component.value = value;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
;
|
|
19
|
+
get value() {
|
|
20
|
+
return this._value;
|
|
21
|
+
}
|
|
22
|
+
async ngOnInit() {
|
|
13
23
|
/**
|
|
14
24
|
* create component and set values from config on its instance
|
|
15
25
|
*/
|
|
@@ -17,11 +27,11 @@ export class CrisprFieldDirective {
|
|
|
17
27
|
const componentRef = this.container.createComponent(component);
|
|
18
28
|
this.component = componentRef.instance;
|
|
19
29
|
this.component.config = this.config;
|
|
20
|
-
if (
|
|
30
|
+
if (isControlOrButtonComponent(this.component)) {
|
|
21
31
|
this.component.group = this.group;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
32
|
+
}
|
|
33
|
+
if (isControlComponent(this.component)) {
|
|
34
|
+
this.component.value = this.value;
|
|
25
35
|
}
|
|
26
36
|
this.cdr.detectChanges();
|
|
27
37
|
// adds any config classes to the dynamically generated component
|
|
@@ -40,7 +50,7 @@ export class CrisprFieldDirective {
|
|
|
40
50
|
}
|
|
41
51
|
}
|
|
42
52
|
CrisprFieldDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: CrisprFieldDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
43
|
-
CrisprFieldDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.1", type: CrisprFieldDirective, selector: "[crisprField]", inputs: { config: "config", group: "group", value: "value" },
|
|
53
|
+
CrisprFieldDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.1", type: CrisprFieldDirective, selector: "[crisprField]", inputs: { config: "config", group: "group", value: "value" }, ngImport: i0 });
|
|
44
54
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: CrisprFieldDirective, decorators: [{
|
|
45
55
|
type: Directive,
|
|
46
56
|
args: [{
|
|
@@ -74,4 +84,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImpor
|
|
|
74
84
|
]
|
|
75
85
|
}]
|
|
76
86
|
}] });
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jcmlzcHItZm9ybXMvc3JjL2xpYi9maWVsZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFDN0ksT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBd0IsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNySSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBSy9DLE1BQU0sT0FBTyxvQkFBb0I7SUFvQi9CLFlBQ1UsU0FBMkIsRUFDM0IsUUFBbUIsRUFDbkIsR0FBc0I7UUFGdEIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtJQUM3QixDQUFDO0lBZkosSUFBYSxLQUFLLENBQUMsS0FBMkI7UUFDNUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBRyxJQUFJLENBQUMsU0FBUyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUN2RCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7U0FDOUI7SUFDSCxDQUFDO0lBQUEsQ0FBQztJQUNGLElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBU0QsS0FBSyxDQUFDLFFBQVE7UUFDWjs7V0FFRztRQUNILE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLE1BQU0sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzRixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBdUIsU0FBUyxDQUFDLENBQUM7UUFFckYsSUFBSSxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDcEMsSUFBSSwwQkFBMEIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDOUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNuQztRQUNELElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDbkM7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3pCLGlFQUFpRTtRQUNqRSx5R0FBeUc7UUFDekcsSUFBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTztZQUFFLE9BQU87UUFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDcEMsMERBQTBEO1lBQzFELElBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDdEIsTUFBTSxLQUFLLENBQUMsZ0NBQWdDLEtBQUssMEJBQTBCLENBQUMsQ0FBQzthQUM5RTtpQkFBTTtnQkFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQzthQUNwRTtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7aUhBckRVLG9CQUFvQjtxR0FBcEIsb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBSGhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7aUJBQzFCOytKQUdVLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBTU8sS0FBSztzQkFBakIsS0FBSzs7QUF5RFIsTUFBTSxPQUFPLGlCQUFpQjs7OEdBQWpCLGlCQUFpQjsrR0FBakIsaUJBQWlCLGlCQWxFakIsb0JBQW9CLGFBeUQ3QixZQUFZLGFBekRILG9CQUFvQjsrR0FrRXBCLGlCQUFpQixZQVZuQjtZQUNQLFlBQVk7U0FDYjsyRkFRVSxpQkFBaUI7a0JBWDdCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG9CQUFvQjtxQkFDckI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLG9CQUFvQjtxQkFDckI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBWaWV3Q29udGFpbmVyUmVmLCBSZW5kZXJlcjIsIE5nTW9kdWxlLCBDaGFuZ2VEZXRlY3RvclJlZiwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB0eXBlIHsgQW55RmllbGRDb25maWcsIENvbnRyb2xWYWx1ZSB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IENyaXNwckZpZWxkQ29tcG9uZW50LCBGSUVMRF9DT01QT05FTlRTLCBpc0NvbnRyb2xDb21wb25lbnQsIGlzQ29udHJvbE9yQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9maWVsZC1jb21wb25lbnQtbWFwLmNvbnN0JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tjcmlzcHJGaWVsZF0nXG59KVxuZXhwb3J0IGNsYXNzIENyaXNwckZpZWxkRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBjb25maWc6IEFueUZpZWxkQ29uZmlnO1xuICBASW5wdXQoKSBncm91cDogRm9ybUdyb3VwO1xuXG4gIC8qKlxuICAgKiB2YWx1ZSBzZXR0ZXIgdXBkYXRlcyB0aGUgY29udHJvbCdzIHZhbHVlIGFzIHdlbGxcbiAgICovXG4gIF92YWx1ZTogQ29udHJvbFZhbHVlIHwgYW55W11cbiAgQElucHV0KCkgc2V0IHZhbHVlKHZhbHVlOiBDb250cm9sVmFsdWUgfCBhbnlbXSkge1xuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgaWYodGhpcy5jb21wb25lbnQgJiYgaXNDb250cm9sQ29tcG9uZW50KHRoaXMuY29tcG9uZW50KSkge1xuICAgICAgdGhpcy5jb21wb25lbnQudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG4gIH07XG4gIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cbiAgY29tcG9uZW50OiBDcmlzcHJGaWVsZENvbXBvbmVudDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHt9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgLyoqXG4gICAgICogY3JlYXRlIGNvbXBvbmVudCBhbmQgc2V0IHZhbHVlcyBmcm9tIGNvbmZpZyBvbiBpdHMgaW5zdGFuY2VcbiAgICAgKi9cbiAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLmNvbmZpZy5jb21wb25lbnQgfHwgYXdhaXQgRklFTERfQ09NUE9ORU5UU1t0aGlzLmNvbmZpZy5jb250cm9sVHlwZV07XG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5jb250YWluZXIuY3JlYXRlQ29tcG9uZW50PENyaXNwckZpZWxkQ29tcG9uZW50Pihjb21wb25lbnQpO1xuXG4gICAgdGhpcy5jb21wb25lbnQgPSBjb21wb25lbnRSZWYuaW5zdGFuY2U7XG4gICAgdGhpcy5jb21wb25lbnQuY29uZmlnID0gdGhpcy5jb25maWc7XG4gICAgaWYgKGlzQ29udHJvbE9yQnV0dG9uQ29tcG9uZW50KHRoaXMuY29tcG9uZW50KSkge1xuICAgICAgdGhpcy5jb21wb25lbnQuZ3JvdXAgPSB0aGlzLmdyb3VwO1xuICAgIH1cbiAgICBpZiAoaXNDb250cm9sQ29tcG9uZW50KHRoaXMuY29tcG9uZW50KSkge1xuICAgICAgdGhpcy5jb21wb25lbnQudmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgIH1cbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgLy8gYWRkcyBhbnkgY29uZmlnIGNsYXNzZXMgdG8gdGhlIGR5bmFtaWNhbGx5IGdlbmVyYXRlZCBjb21wb25lbnRcbiAgICAvLyBkb2luZyB0aGlzIGhlcmUga2VlcHMgdXMgZnJvbSBoYXZpbmcgdG8gZXh0ZW5kIGEgYmFzZSBjb21wb25lbnQgaW50byBlYWNoIGZpZWxkIGNvbXBvbmVudCBpbmRpdmlkdWFsbHlcbiAgICBpZighdGhpcy5jb25maWcuY2xhc3NlcykgcmV0dXJuO1xuICAgIHRoaXMuY29uZmlnLmNsYXNzZXMuZm9yRWFjaCgoa2xhc3MpID0+IHtcbiAgICAgIC8vIGNoZWNrIGZvciBwYXNzaW5nIG11bHRpcGxlIGNsYXNzZXMgaW4gb25lIGFycmF5IGVsZW1lbnRcbiAgICAgIGlmKGtsYXNzLmluY2x1ZGVzKCcgJykpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoYEltcHJvcGVybHkgZm9ybWF0dGVkIGNsYXNzLiAnJHtrbGFzc30nIGNhbm5vdCBjb250YWluIHNwYWNlcy5gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQsIGtsYXNzKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIENyaXNwckZpZWxkRGlyZWN0aXZlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIENyaXNwckZpZWxkRGlyZWN0aXZlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQ3Jpc3ByRmllbGRNb2R1bGUge1xufVxuIl19
|
|
@@ -18,11 +18,9 @@ export class CrisprFormComponent {
|
|
|
18
18
|
this.statusChanges = this.form.statusChanges;
|
|
19
19
|
this.subs = [];
|
|
20
20
|
}
|
|
21
|
-
|
|
21
|
+
ngOnInit() {
|
|
22
22
|
// build out the form, note that we pass in the form as the third argument and the function modifies it
|
|
23
|
-
|
|
24
|
-
buildFormGroupFromConfig(this.config, this.value, this.form);
|
|
25
|
-
}
|
|
23
|
+
buildFormGroupFromConfig(this.config, this.value, this.form);
|
|
26
24
|
}
|
|
27
25
|
handleSubmit() {
|
|
28
26
|
this.form.markAllAsTouched();
|
|
@@ -33,7 +31,7 @@ export class CrisprFormComponent {
|
|
|
33
31
|
}
|
|
34
32
|
}
|
|
35
33
|
CrisprFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: CrisprFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
36
|
-
CrisprFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: CrisprFormComponent, selector: "crispr-form", inputs: { config: "config", form: "form", value: "value" }, outputs: { submitted: "submitted", valueChanges: "valueChanges", statusChanges: "statusChanges" }, viewQueries: [{ propertyName: "submitTrigger", first: true, predicate: ["submitTrigger"], descendants: true }],
|
|
34
|
+
CrisprFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: CrisprFormComponent, selector: "crispr-form", inputs: { config: "config", form: "form", value: "value" }, outputs: { submitted: "submitted", valueChanges: "valueChanges", statusChanges: "statusChanges" }, viewQueries: [{ propertyName: "submitTrigger", first: true, predicate: ["submitTrigger"], descendants: true }], ngImport: i0, template: "<form\n class=\"crispr-form\"\n [ngClass]=\"config.classes\"\n [formGroup]=\"form\"\n (ngSubmit)=\"handleSubmit()\"\n [autocomplete]=\"config.autocomplete || 'off'\"\n [errorDictionary]=\"config.errorDictionary\"\n #ngFormElement=\"ngForm\">\n\n <ng-container\n *ngFor=\"let field of config.fields;\"\n crisprField\n [value]=\"value | initialControlValue : field\"\n [config]=\"field\"\n [group]=\"form\">\n </ng-container>\n <!-- Hidden button, programmatically clicked when crispr form triggerSubmit function called.\n Uses a hidden button with type=\"submit\" because it will trigger both native form submit event\n (which the error handler has to listen for) and ngSubmit event -->\n <button #submitTrigger class=\"submit-trigger\" type=\"submit\">\n </button>\n</form>\n", styles: [".submit-trigger{display:none}\n"], directives: [{ type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.ControlErrorsFormDirective, selector: "form", inputs: ["errorDictionary"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.CrisprFieldDirective, selector: "[crisprField]", inputs: ["config", "group", "value"] }], pipes: { "initialControlValue": i5.InitialControlValuePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
|
|
37
35
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: CrisprFormComponent, decorators: [{
|
|
38
36
|
type: Component,
|
|
39
37
|
args: [{ selector: 'crispr-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<form\n class=\"crispr-form\"\n [ngClass]=\"config.classes\"\n [formGroup]=\"form\"\n (ngSubmit)=\"handleSubmit()\"\n [autocomplete]=\"config.autocomplete || 'off'\"\n [errorDictionary]=\"config.errorDictionary\"\n #ngFormElement=\"ngForm\">\n\n <ng-container\n *ngFor=\"let field of config.fields;\"\n crisprField\n [value]=\"value | initialControlValue : field\"\n [config]=\"field\"\n [group]=\"form\">\n </ng-container>\n <!-- Hidden button, programmatically clicked when crispr form triggerSubmit function called.\n Uses a hidden button with type=\"submit\" because it will trigger both native form submit event\n (which the error handler has to listen for) and ngSubmit event -->\n <button #submitTrigger class=\"submit-trigger\" type=\"submit\">\n </button>\n</form>\n", styles: [".submit-trigger{display:none}\n"] }]
|
|
@@ -53,4 +51,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImpor
|
|
|
53
51
|
type: ViewChild,
|
|
54
52
|
args: ['submitTrigger']
|
|
55
53
|
}] } });
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL2Zvcm0vZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL2Zvcm0vZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQW9DLE1BQU0sZUFBZSxDQUFDO0FBQ3pKLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRCxPQUFPLEVBQWdCLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7OztBQU9oRCxNQUFNLE9BQU8sbUJBQW1CO0lBTmhDO1FBU1csU0FBSSxHQUFjLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLFVBQUssR0FBc0IsSUFBSSxDQUFDO1FBRS9CLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBYSxDQUFDO1FBQ3BELHNFQUFzRTtRQUM1RCxpQkFBWSxHQUFvQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUN2RCxrQkFBYSxHQUF1QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUV0RSxTQUFJLEdBQW1CLEVBQUUsQ0FBQztLQWlCM0I7SUFiQyxRQUFRO1FBQ04sdUdBQXVHO1FBQ3ZHLHdCQUF3QixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDM0MsQ0FBQzs7Z0hBM0JVLG1CQUFtQjtvR0FBbkIsbUJBQW1CLGtVQ1hoQywyeUJBc0JBOzJGRFhhLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSxhQUFhLG1CQUdOLHVCQUF1QixDQUFDLE1BQU07OEJBSXRDLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUVJLFNBQVM7c0JBQWxCLE1BQU07Z0JBRUcsWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUlxQixhQUFhO3NCQUF4QyxTQUFTO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbnRyb2xHcm91cFZhbHVlLCBGb3JtQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IGJ1aWxkRm9ybUdyb3VwRnJvbUNvbmZpZyB9IGZyb20gJy4uL2Zvcm0uaGVscGVycyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NyaXNwci1mb3JtJyxcbiAgc3R5bGVVcmxzOiBbJ2Zvcm0uY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICdmb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ3Jpc3ByRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8vIGlmIG5vIGZvcm0gaGFzIGJlZW4gcGFzc2VkIGluIGJ5IGNvbnN1bWluZyBjb21wb25lbnQsIHdlIGNyZWF0ZSBhbiBlbXB0eSBncm91cCB0byBidWlsZCBvdXRcbiAgQElucHV0KCkgY29uZmlnOiBGb3JtQ29uZmlnO1xuICBASW5wdXQoKSBmb3JtOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgQElucHV0KCkgdmFsdWU6IENvbnRyb2xHcm91cFZhbHVlID0gbnVsbDtcblxuICBAT3V0cHV0KCkgc3VibWl0dGVkID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtR3JvdXA+KCk7XG4gIC8vIHByb3h5IHZhbHVlIGFuZCBzdGF0dXMgY2hhbmdlIGV2ZW50cyB0aHJvdWdoIHRvIGNvbnN1bWluZyBjb21wb25lbnRcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlczogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5mb3JtLnZhbHVlQ2hhbmdlcztcbiAgQE91dHB1dCgpIHN0YXR1c0NoYW5nZXM6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMuZm9ybS5zdGF0dXNDaGFuZ2VzO1xuXG4gIHN1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgQFZpZXdDaGlsZCgnc3VibWl0VHJpZ2dlcicpIHN1Ym1pdFRyaWdnZXI6IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vIGJ1aWxkIG91dCB0aGUgZm9ybSwgbm90ZSB0aGF0IHdlIHBhc3MgaW4gdGhlIGZvcm0gYXMgdGhlIHRoaXJkIGFyZ3VtZW50IGFuZCB0aGUgZnVuY3Rpb24gbW9kaWZpZXMgaXRcbiAgICBidWlsZEZvcm1Hcm91cEZyb21Db25maWcodGhpcy5jb25maWcsIHRoaXMudmFsdWUsIHRoaXMuZm9ybSk7XG4gIH1cblxuICBoYW5kbGVTdWJtaXQoKSB7XG4gICAgdGhpcy5mb3JtLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICB0aGlzLnN1Ym1pdHRlZC5lbWl0KHRoaXMuZm9ybSk7XG4gIH1cblxuICB0cmlnZ2VyU3VibWl0KCkge1xuICAgIHRoaXMuc3VibWl0VHJpZ2dlci5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gIH1cbn1cbiIsIjxmb3JtXG4gIGNsYXNzPVwiY3Jpc3ByLWZvcm1cIlxuICBbbmdDbGFzc109XCJjb25maWcuY2xhc3Nlc1wiXG4gIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gIChuZ1N1Ym1pdCk9XCJoYW5kbGVTdWJtaXQoKVwiXG4gIFthdXRvY29tcGxldGVdPVwiY29uZmlnLmF1dG9jb21wbGV0ZSB8fCAnb2ZmJ1wiXG4gIFtlcnJvckRpY3Rpb25hcnldPVwiY29uZmlnLmVycm9yRGljdGlvbmFyeVwiXG4gICNuZ0Zvcm1FbGVtZW50PVwibmdGb3JtXCI+XG5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBjb25maWcuZmllbGRzO1wiXG4gICAgY3Jpc3ByRmllbGRcbiAgICBbdmFsdWVdPVwidmFsdWUgfCBpbml0aWFsQ29udHJvbFZhbHVlIDogZmllbGRcIlxuICAgIFtjb25maWddPVwiZmllbGRcIlxuICAgIFtncm91cF09XCJmb3JtXCI+XG4gIDwvbmctY29udGFpbmVyPlxuICA8IS0tIEhpZGRlbiBidXR0b24sIHByb2dyYW1tYXRpY2FsbHkgY2xpY2tlZCB3aGVuIGNyaXNwciBmb3JtIHRyaWdnZXJTdWJtaXQgZnVuY3Rpb24gY2FsbGVkLlxuICAgIFVzZXMgYSBoaWRkZW4gYnV0dG9uIHdpdGggdHlwZT1cInN1Ym1pdFwiIGJlY2F1c2UgaXQgd2lsbCB0cmlnZ2VyIGJvdGggbmF0aXZlIGZvcm0gc3VibWl0IGV2ZW50XG4gICAgKHdoaWNoIHRoZSBlcnJvciBoYW5kbGVyIGhhcyB0byBsaXN0ZW4gZm9yKSBhbmQgbmdTdWJtaXQgZXZlbnQgIC0tPlxuICA8YnV0dG9uICNzdWJtaXRUcmlnZ2VyIGNsYXNzPVwic3VibWl0LXRyaWdnZXJcIiB0eXBlPVwic3VibWl0XCI+XG4gIDwvYnV0dG9uPlxuPC9mb3JtPlxuIl19
|
|
@@ -1572,7 +1572,10 @@ const FIELD_COMPONENTS = {
|
|
|
1572
1572
|
unitConversion: Promise.resolve().then(function () { return index$2; }).then(({ UnitConversionFieldComponent }) => UnitConversionFieldComponent)
|
|
1573
1573
|
};
|
|
1574
1574
|
function isControlComponent(component) {
|
|
1575
|
-
return isControlConfig(component.config) || component.config.controlType === ControlType.BUTTON;
|
|
1575
|
+
return isControlConfig(component.config) && 'value' in component; // || component.config.controlType === ControlType.BUTTON;
|
|
1576
|
+
}
|
|
1577
|
+
function isControlOrButtonComponent(component) {
|
|
1578
|
+
return isControlComponent(component) || component.config.controlType === ControlType.BUTTON;
|
|
1576
1579
|
}
|
|
1577
1580
|
|
|
1578
1581
|
class CrisprFieldDirective {
|
|
@@ -1581,7 +1584,17 @@ class CrisprFieldDirective {
|
|
|
1581
1584
|
this.renderer = renderer;
|
|
1582
1585
|
this.cdr = cdr;
|
|
1583
1586
|
}
|
|
1584
|
-
|
|
1587
|
+
set value(value) {
|
|
1588
|
+
this._value = value;
|
|
1589
|
+
if (this.component && isControlComponent(this.component)) {
|
|
1590
|
+
this.component.value = value;
|
|
1591
|
+
}
|
|
1592
|
+
}
|
|
1593
|
+
;
|
|
1594
|
+
get value() {
|
|
1595
|
+
return this._value;
|
|
1596
|
+
}
|
|
1597
|
+
ngOnInit() {
|
|
1585
1598
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1586
1599
|
/**
|
|
1587
1600
|
* create component and set values from config on its instance
|
|
@@ -1590,11 +1603,11 @@ class CrisprFieldDirective {
|
|
|
1590
1603
|
const componentRef = this.container.createComponent(component);
|
|
1591
1604
|
this.component = componentRef.instance;
|
|
1592
1605
|
this.component.config = this.config;
|
|
1593
|
-
if (
|
|
1606
|
+
if (isControlOrButtonComponent(this.component)) {
|
|
1594
1607
|
this.component.group = this.group;
|
|
1595
|
-
|
|
1596
|
-
|
|
1597
|
-
|
|
1608
|
+
}
|
|
1609
|
+
if (isControlComponent(this.component)) {
|
|
1610
|
+
this.component.value = this.value;
|
|
1598
1611
|
}
|
|
1599
1612
|
this.cdr.detectChanges();
|
|
1600
1613
|
// adds any config classes to the dynamically generated component
|
|
@@ -1614,7 +1627,7 @@ class CrisprFieldDirective {
|
|
|
1614
1627
|
}
|
|
1615
1628
|
}
|
|
1616
1629
|
CrisprFieldDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: CrisprFieldDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
1617
|
-
CrisprFieldDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.1", type: CrisprFieldDirective, selector: "[crisprField]", inputs: { config: "config", group: "group", value: "value" },
|
|
1630
|
+
CrisprFieldDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.1", type: CrisprFieldDirective, selector: "[crisprField]", inputs: { config: "config", group: "group", value: "value" }, ngImport: i0 });
|
|
1618
1631
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: CrisprFieldDirective, decorators: [{
|
|
1619
1632
|
type: Directive,
|
|
1620
1633
|
args: [{
|
|
@@ -1676,11 +1689,9 @@ class CrisprFormComponent {
|
|
|
1676
1689
|
this.statusChanges = this.form.statusChanges;
|
|
1677
1690
|
this.subs = [];
|
|
1678
1691
|
}
|
|
1679
|
-
|
|
1692
|
+
ngOnInit() {
|
|
1680
1693
|
// build out the form, note that we pass in the form as the third argument and the function modifies it
|
|
1681
|
-
|
|
1682
|
-
buildFormGroupFromConfig(this.config, this.value, this.form);
|
|
1683
|
-
}
|
|
1694
|
+
buildFormGroupFromConfig(this.config, this.value, this.form);
|
|
1684
1695
|
}
|
|
1685
1696
|
handleSubmit() {
|
|
1686
1697
|
this.form.markAllAsTouched();
|
|
@@ -1691,7 +1702,7 @@ class CrisprFormComponent {
|
|
|
1691
1702
|
}
|
|
1692
1703
|
}
|
|
1693
1704
|
CrisprFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: CrisprFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1694
|
-
CrisprFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: CrisprFormComponent, selector: "crispr-form", inputs: { config: "config", form: "form", value: "value" }, outputs: { submitted: "submitted", valueChanges: "valueChanges", statusChanges: "statusChanges" }, viewQueries: [{ propertyName: "submitTrigger", first: true, predicate: ["submitTrigger"], descendants: true }],
|
|
1705
|
+
CrisprFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: CrisprFormComponent, selector: "crispr-form", inputs: { config: "config", form: "form", value: "value" }, outputs: { submitted: "submitted", valueChanges: "valueChanges", statusChanges: "statusChanges" }, viewQueries: [{ propertyName: "submitTrigger", first: true, predicate: ["submitTrigger"], descendants: true }], ngImport: i0, template: "<form\n class=\"crispr-form\"\n [ngClass]=\"config.classes\"\n [formGroup]=\"form\"\n (ngSubmit)=\"handleSubmit()\"\n [autocomplete]=\"config.autocomplete || 'off'\"\n [errorDictionary]=\"config.errorDictionary\"\n #ngFormElement=\"ngForm\">\n\n <ng-container\n *ngFor=\"let field of config.fields;\"\n crisprField\n [value]=\"value | initialControlValue : field\"\n [config]=\"field\"\n [group]=\"form\">\n </ng-container>\n <!-- Hidden button, programmatically clicked when crispr form triggerSubmit function called.\n Uses a hidden button with type=\"submit\" because it will trigger both native form submit event\n (which the error handler has to listen for) and ngSubmit event -->\n <button #submitTrigger class=\"submit-trigger\" type=\"submit\">\n </button>\n</form>\n", styles: [".submit-trigger{display:none}\n"], directives: [{ type: i4$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i4$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5.ControlErrorsFormDirective, selector: "form", inputs: ["errorDictionary"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: CrisprFieldDirective, selector: "[crisprField]", inputs: ["config", "group", "value"] }], pipes: { "initialControlValue": InitialControlValuePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
|
|
1695
1706
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: CrisprFormComponent, decorators: [{
|
|
1696
1707
|
type: Component,
|
|
1697
1708
|
args: [{ selector: 'crispr-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<form\n class=\"crispr-form\"\n [ngClass]=\"config.classes\"\n [formGroup]=\"form\"\n (ngSubmit)=\"handleSubmit()\"\n [autocomplete]=\"config.autocomplete || 'off'\"\n [errorDictionary]=\"config.errorDictionary\"\n #ngFormElement=\"ngForm\">\n\n <ng-container\n *ngFor=\"let field of config.fields;\"\n crisprField\n [value]=\"value | initialControlValue : field\"\n [config]=\"field\"\n [group]=\"form\">\n </ng-container>\n <!-- Hidden button, programmatically clicked when crispr form triggerSubmit function called.\n Uses a hidden button with type=\"submit\" because it will trigger both native form submit event\n (which the error handler has to listen for) and ngSubmit event -->\n <button #submitTrigger class=\"submit-trigger\" type=\"submit\">\n </button>\n</form>\n", styles: [".submit-trigger{display:none}\n"] }]
|