@tft/crispr-forms 13.0.17 → 13.0.18

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.
@@ -20,9 +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) && 'value' in component; // || component.config.controlType === ControlType.BUTTON;
23
+ return component && isControlConfig(component.config) && 'value' in component; // || component.config.controlType === ControlType.BUTTON;
24
24
  }
25
25
  export function isControlOrButtonComponent(component) {
26
26
  return isControlComponent(component) || component.config.controlType === ControlType.BUTTON;
27
27
  }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtY29tcG9uZW50LW1hcC5jb25zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvZmllbGQtY29tcG9uZW50LW1hcC5jb25zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV2QyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM5QixTQUFTLEVBQUUsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUMsSUFBSSxDQUFFLENBQUMsRUFBQyxzQkFBc0IsRUFBQyxFQUFFLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztJQUNsRyxRQUFRLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLEVBQUMsRUFBRSxFQUFFLENBQUUsaUJBQWlCLENBQUM7SUFDbEYsTUFBTSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLGVBQWUsRUFBQyxFQUFFLEVBQUUsQ0FBRSxlQUFlLENBQUM7SUFDM0UsS0FBSyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLG1CQUFtQixFQUFDLEVBQUUsRUFBRSxDQUFFLG1CQUFtQixDQUFDO0lBQ2xGLE1BQU0sRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxvQkFBb0IsRUFBQyxFQUFFLEVBQUUsQ0FBRSxvQkFBb0IsQ0FBQztJQUNyRixLQUFLLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsbUJBQW1CLEVBQUMsRUFBRSxFQUFFLENBQUUsbUJBQW1CLENBQUM7SUFDbEYsWUFBWSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLDBCQUEwQixFQUFDLEVBQUUsRUFBRSxDQUFFLDBCQUEwQixDQUFDO0lBQ3ZHLG9CQUFvQixFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLGtDQUFrQyxFQUFDLEVBQUUsRUFBRSxDQUFFLGtDQUFrQyxDQUFDO0lBQy9ILFFBQVEsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxzQkFBc0IsRUFBQyxFQUFFLEVBQUUsQ0FBRSxzQkFBc0IsQ0FBQztJQUMzRixRQUFRLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsc0JBQXNCLEVBQUMsRUFBRSxFQUFFLENBQUUsc0JBQXNCLENBQUM7SUFDM0YsTUFBTSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLG9CQUFvQixFQUFDLEVBQUUsRUFBRSxDQUFFLG9CQUFvQixDQUFDO0lBQ3JGLFVBQVUsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSx3QkFBd0IsRUFBQyxFQUFFLEVBQUUsQ0FBRSx3QkFBd0IsQ0FBQztJQUNqRyxVQUFVLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsd0JBQXdCLEVBQUMsRUFBRSxFQUFFLENBQUUsd0JBQXdCLENBQUM7SUFDakcsV0FBVyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLHlCQUF5QixFQUFDLEVBQUUsRUFBRSxDQUFFLHlCQUF5QixDQUFDO0lBQ3BHLE9BQU8sRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsRUFBQyxFQUFFLEVBQUUsQ0FBRSxnQkFBZ0IsQ0FBQztJQUM5RSxPQUFPLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLEVBQUMsRUFBRSxFQUFFLENBQUUsZ0JBQWdCLENBQUM7SUFDOUUsY0FBYyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLDRCQUE0QixFQUFDLEVBQUUsRUFBRSxDQUFFLDRCQUE0QixDQUFDO0NBQzlHLENBQUM7QUFFRixNQUFNLFVBQVUsa0JBQWtCLENBQUMsU0FBK0I7SUFDaEUsT0FBTyxlQUFlLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE9BQU8sSUFBSSxTQUFTLENBQUEsQ0FBQywwREFBMEQ7QUFDN0gsQ0FBQztBQUVELE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxTQUErQjtJQUN4RSxPQUFPLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsV0FBVyxLQUFLLFdBQVcsQ0FBQyxNQUFNLENBQUM7QUFDOUYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbWF4LWxpbmUtbGVuZ3RoXG5pbXBvcnQgdHlwZSB7IElucHV0RmllbGRDb21wb25lbnQsIFNlbGVjdEZpZWxkQ29tcG9uZW50LCBBdXRvY29tcGxldGVGaWVsZENvbXBvbmVudCxcbiAgQXV0b2NvbXBsZXRlQ2hpcGxpc3RGaWVsZENvbXBvbmVudCwgVGV4dGFyZWFGaWVsZENvbXBvbmVudCwgQ2hlY2tib3hGaWVsZENvbXBvbmVudCxcbiAgUmFkaW9GaWVsZENvbXBvbmVudCwgRmlsZVVwbG9hZEZpZWxkQ29tcG9uZW50LCBTbGlkZXJGaWVsZENvbXBvbmVudCwgRGF0ZXBpY2tlckZpZWxkQ29tcG9uZW50LFxuICBIZWFkaW5nQ29tcG9uZW50LCBEaXZpZGVyQ29tcG9uZW50LCBCdXR0b25Db21wb25lbnQsIFVuaXRDb252ZXJzaW9uRmllbGRDb21wb25lbnQsIEltYWdlVXBsb2FkRmllbGRDb21wb25lbnQgfSBmcm9tICcuL21hdGVyaWFsJztcbmltcG9ydCB0eXBlIHsgRm9ybUdyb3VwTGlzdENvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1ncm91cC1saXN0L2Zvcm0tZ3JvdXAtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHR5cGUgeyBTdWJHcm91cENvbXBvbmVudCB9IGZyb20gJy4vc3ViLWdyb3VwL3N1Yi1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgaXNDb250cm9sQ29uZmlnIH0gZnJvbSAnLi9mb3JtLmhlbHBlcnMnO1xuaW1wb3J0IHsgQ29udHJvbFR5cGUgfSBmcm9tICcuL21vZGVscyc7XG5cbmV4cG9ydCBjb25zdCBGSUVMRF9DT01QT05FTlRTID0ge1xuICBncm91cExpc3Q6IGltcG9ydCgnLi9mb3JtLWdyb3VwLWxpc3QnKS50aGVuICgoe0Zvcm1Hcm91cExpc3RDb21wb25lbnR9KSA9PiBGb3JtR3JvdXBMaXN0Q29tcG9uZW50KSxcbiAgc3ViR3JvdXA6IGltcG9ydCgnLi9zdWItZ3JvdXAnKS50aGVuKCh7IFN1Ykdyb3VwQ29tcG9uZW50fSkgPT4gIFN1Ykdyb3VwQ29tcG9uZW50KSxcbiAgYnV0dG9uOiBpbXBvcnQoJy4vbWF0ZXJpYWwnKS50aGVuKCh7IEJ1dHRvbkNvbXBvbmVudH0pID0+ICBCdXR0b25Db21wb25lbnQpLFxuICBpbnB1dDogaW1wb3J0KCcuL21hdGVyaWFsJykudGhlbigoeyBJbnB1dEZpZWxkQ29tcG9uZW50fSkgPT4gIElucHV0RmllbGRDb21wb25lbnQpLFxuICBzZWxlY3Q6IGltcG9ydCgnLi9tYXRlcmlhbCcpLnRoZW4oKHsgU2VsZWN0RmllbGRDb21wb25lbnR9KSA9PiAgU2VsZWN0RmllbGRDb21wb25lbnQpLFxuICByYWRpbzogaW1wb3J0KCcuL21hdGVyaWFsJykudGhlbigoeyBSYWRpb0ZpZWxkQ29tcG9uZW50fSkgPT4gIFJhZGlvRmllbGRDb21wb25lbnQpLFxuICBhdXRvY29tcGxldGU6IGltcG9ydCgnLi9tYXRlcmlhbCcpLnRoZW4oKHsgQXV0b2NvbXBsZXRlRmllbGRDb21wb25lbnR9KSA9PiAgQXV0b2NvbXBsZXRlRmllbGRDb21wb25lbnQpLFxuICBhdXRvY29tcGxldGVDaGlwbGlzdDogaW1wb3J0KCcuL21hdGVyaWFsJykudGhlbigoeyBBdXRvY29tcGxldGVDaGlwbGlzdEZpZWxkQ29tcG9uZW50fSkgPT4gIEF1dG9jb21wbGV0ZUNoaXBsaXN0RmllbGRDb21wb25lbnQpLFxuICB0ZXh0YXJlYTogaW1wb3J0KCcuL21hdGVyaWFsJykudGhlbigoeyBUZXh0YXJlYUZpZWxkQ29tcG9uZW50fSkgPT4gIFRleHRhcmVhRmllbGRDb21wb25lbnQpLFxuICBjaGVja2JveDogaW1wb3J0KCcuL21hdGVyaWFsJykudGhlbigoeyBDaGVja2JveEZpZWxkQ29tcG9uZW50fSkgPT4gIENoZWNrYm94RmllbGRDb21wb25lbnQpLFxuICBzbGlkZXI6IGltcG9ydCgnLi9tYXRlcmlhbCcpLnRoZW4oKHsgU2xpZGVyRmllbGRDb21wb25lbnR9KSA9PiAgU2xpZGVyRmllbGRDb21wb25lbnQpLFxuICBkYXRlcGlja2VyOiBpbXBvcnQoJy4vbWF0ZXJpYWwnKS50aGVuKCh7IERhdGVwaWNrZXJGaWVsZENvbXBvbmVudH0pID0+ICBEYXRlcGlja2VyRmllbGRDb21wb25lbnQpLFxuICBmaWxlVXBsb2FkOiBpbXBvcnQoJy4vbWF0ZXJpYWwnKS50aGVuKCh7IEZpbGVVcGxvYWRGaWVsZENvbXBvbmVudH0pID0+ICBGaWxlVXBsb2FkRmllbGRDb21wb25lbnQpLFxuICBpbWFnZVVwbG9hZDogaW1wb3J0KCcuL21hdGVyaWFsJykudGhlbigoeyBJbWFnZVVwbG9hZEZpZWxkQ29tcG9uZW50fSkgPT4gIEltYWdlVXBsb2FkRmllbGRDb21wb25lbnQpLFxuICBoZWFkaW5nOiBpbXBvcnQoJy4vbWF0ZXJpYWwnKS50aGVuKCh7IEhlYWRpbmdDb21wb25lbnR9KSA9PiAgSGVhZGluZ0NvbXBvbmVudCksXG4gIGRpdmlkZXI6IGltcG9ydCgnLi9tYXRlcmlhbCcpLnRoZW4oKHsgRGl2aWRlckNvbXBvbmVudH0pID0+ICBEaXZpZGVyQ29tcG9uZW50KSxcbiAgdW5pdENvbnZlcnNpb246IGltcG9ydCgnLi9tYXRlcmlhbCcpLnRoZW4oKHsgVW5pdENvbnZlcnNpb25GaWVsZENvbXBvbmVudH0pID0+ICBVbml0Q29udmVyc2lvbkZpZWxkQ29tcG9uZW50KVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udHJvbENvbXBvbmVudChjb21wb25lbnQ6IENyaXNwckZpZWxkQ29tcG9uZW50KTogY29tcG9uZW50IGlzIENyaXNwckNvbnRyb2xDb21wb25lbnQge1xuICByZXR1cm4gaXNDb250cm9sQ29uZmlnKGNvbXBvbmVudC5jb25maWcpICYmICd2YWx1ZScgaW4gY29tcG9uZW50IC8vIHx8IGNvbXBvbmVudC5jb25maWcuY29udHJvbFR5cGUgPT09IENvbnRyb2xUeXBlLkJVVFRPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udHJvbE9yQnV0dG9uQ29tcG9uZW50KGNvbXBvbmVudDogQ3Jpc3ByRmllbGRDb21wb25lbnQpOiBjb21wb25lbnQgaXMgQ3Jpc3ByQ29udHJvbE9yQnV0dG9uIHtcbiAgcmV0dXJuIGlzQ29udHJvbENvbXBvbmVudChjb21wb25lbnQpIHx8IGNvbXBvbmVudC5jb25maWcuY29udHJvbFR5cGUgPT09IENvbnRyb2xUeXBlLkJVVFRPTjtcbn1cblxuZXhwb3J0IHR5cGUgQ3Jpc3ByQ29udHJvbE9yQnV0dG9uID0gQ3Jpc3ByQ29udHJvbENvbXBvbmVudCB8IEJ1dHRvbkNvbXBvbmVudDtcblxuZXhwb3J0IHR5cGUgQ3Jpc3ByQ29udHJvbENvbXBvbmVudCA9IElucHV0RmllbGRDb21wb25lbnQgfFxuICBTZWxlY3RGaWVsZENvbXBvbmVudCB8XG4gIFJhZGlvRmllbGRDb21wb25lbnQgfFxuICBTdWJHcm91cENvbXBvbmVudCB8XG4gIEZvcm1Hcm91cExpc3RDb21wb25lbnQgfFxuICBBdXRvY29tcGxldGVGaWVsZENvbXBvbmVudCB8XG4gIEF1dG9jb21wbGV0ZUNoaXBsaXN0RmllbGRDb21wb25lbnQgfFxuICBUZXh0YXJlYUZpZWxkQ29tcG9uZW50IHxcbiAgQ2hlY2tib3hGaWVsZENvbXBvbmVudCB8XG4gIFNsaWRlckZpZWxkQ29tcG9uZW50IHxcbiAgRmlsZVVwbG9hZEZpZWxkQ29tcG9uZW50IHxcbiAgSW1hZ2VVcGxvYWRGaWVsZENvbXBvbmVudHxcbiAgRGF0ZXBpY2tlckZpZWxkQ29tcG9uZW50IHxcbiAgVW5pdENvbnZlcnNpb25GaWVsZENvbXBvbmVudDtcblxuZXhwb3J0IHR5cGUgQ29tcG9uZW50S2V5cyA9IGtleW9mIHR5cGVvZiBGSUVMRF9DT01QT05FTlRTO1xuLy8gZXhwb3J0IHR5cGUgQ3Jpc3ByRmllbGRDb21wb25lbnQgPSBGSUVMRF9DT01QT05FTlRTW0NvbXBvbmVudEtleXNdO1xuXG5leHBvcnQgdHlwZSBDcmlzcHJGaWVsZENvbXBvbmVudCA9IENyaXNwckNvbnRyb2xDb21wb25lbnQgfFxuICBIZWFkaW5nQ29tcG9uZW50IHxcbiAgRGl2aWRlckNvbXBvbmVudCB8XG4gIEJ1dHRvbkNvbXBvbmVudDtcblxuIl19
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtY29tcG9uZW50LW1hcC5jb25zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvZmllbGQtY29tcG9uZW50LW1hcC5jb25zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV2QyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM5QixTQUFTLEVBQUUsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUMsSUFBSSxDQUFFLENBQUMsRUFBQyxzQkFBc0IsRUFBQyxFQUFFLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztJQUNsRyxRQUFRLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLEVBQUMsRUFBRSxFQUFFLENBQUUsaUJBQWlCLENBQUM7SUFDbEYsTUFBTSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLGVBQWUsRUFBQyxFQUFFLEVBQUUsQ0FBRSxlQUFlLENBQUM7SUFDM0UsS0FBSyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLG1CQUFtQixFQUFDLEVBQUUsRUFBRSxDQUFFLG1CQUFtQixDQUFDO0lBQ2xGLE1BQU0sRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxvQkFBb0IsRUFBQyxFQUFFLEVBQUUsQ0FBRSxvQkFBb0IsQ0FBQztJQUNyRixLQUFLLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsbUJBQW1CLEVBQUMsRUFBRSxFQUFFLENBQUUsbUJBQW1CLENBQUM7SUFDbEYsWUFBWSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLDBCQUEwQixFQUFDLEVBQUUsRUFBRSxDQUFFLDBCQUEwQixDQUFDO0lBQ3ZHLG9CQUFvQixFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLGtDQUFrQyxFQUFDLEVBQUUsRUFBRSxDQUFFLGtDQUFrQyxDQUFDO0lBQy9ILFFBQVEsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxzQkFBc0IsRUFBQyxFQUFFLEVBQUUsQ0FBRSxzQkFBc0IsQ0FBQztJQUMzRixRQUFRLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsc0JBQXNCLEVBQUMsRUFBRSxFQUFFLENBQUUsc0JBQXNCLENBQUM7SUFDM0YsTUFBTSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLG9CQUFvQixFQUFDLEVBQUUsRUFBRSxDQUFFLG9CQUFvQixDQUFDO0lBQ3JGLFVBQVUsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSx3QkFBd0IsRUFBQyxFQUFFLEVBQUUsQ0FBRSx3QkFBd0IsQ0FBQztJQUNqRyxVQUFVLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsd0JBQXdCLEVBQUMsRUFBRSxFQUFFLENBQUUsd0JBQXdCLENBQUM7SUFDakcsV0FBVyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLHlCQUF5QixFQUFDLEVBQUUsRUFBRSxDQUFFLHlCQUF5QixDQUFDO0lBQ3BHLE9BQU8sRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsRUFBQyxFQUFFLEVBQUUsQ0FBRSxnQkFBZ0IsQ0FBQztJQUM5RSxPQUFPLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLEVBQUMsRUFBRSxFQUFFLENBQUUsZ0JBQWdCLENBQUM7SUFDOUUsY0FBYyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLDRCQUE0QixFQUFDLEVBQUUsRUFBRSxDQUFFLDRCQUE0QixDQUFDO0NBQzlHLENBQUM7QUFFRixNQUFNLFVBQVUsa0JBQWtCLENBQUMsU0FBK0I7SUFDaEUsT0FBTyxTQUFTLElBQUksZUFBZSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxPQUFPLElBQUksU0FBUyxDQUFBLENBQUMsMERBQTBEO0FBQzFJLENBQUM7QUFFRCxNQUFNLFVBQVUsMEJBQTBCLENBQUMsU0FBK0I7SUFDeEUsT0FBTyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsS0FBSyxXQUFXLENBQUMsTUFBTSxDQUFDO0FBQzlGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG1heC1saW5lLWxlbmd0aFxuaW1wb3J0IHR5cGUgeyBJbnB1dEZpZWxkQ29tcG9uZW50LCBTZWxlY3RGaWVsZENvbXBvbmVudCwgQXV0b2NvbXBsZXRlRmllbGRDb21wb25lbnQsXG4gIEF1dG9jb21wbGV0ZUNoaXBsaXN0RmllbGRDb21wb25lbnQsIFRleHRhcmVhRmllbGRDb21wb25lbnQsIENoZWNrYm94RmllbGRDb21wb25lbnQsXG4gIFJhZGlvRmllbGRDb21wb25lbnQsIEZpbGVVcGxvYWRGaWVsZENvbXBvbmVudCwgU2xpZGVyRmllbGRDb21wb25lbnQsIERhdGVwaWNrZXJGaWVsZENvbXBvbmVudCxcbiAgSGVhZGluZ0NvbXBvbmVudCwgRGl2aWRlckNvbXBvbmVudCwgQnV0dG9uQ29tcG9uZW50LCBVbml0Q29udmVyc2lvbkZpZWxkQ29tcG9uZW50LCBJbWFnZVVwbG9hZEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9tYXRlcmlhbCc7XG5pbXBvcnQgdHlwZSB7IEZvcm1Hcm91cExpc3RDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tZ3JvdXAtbGlzdC9mb3JtLWdyb3VwLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB0eXBlIHsgU3ViR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL3N1Yi1ncm91cC9zdWItZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IGlzQ29udHJvbENvbmZpZyB9IGZyb20gJy4vZm9ybS5oZWxwZXJzJztcbmltcG9ydCB7IENvbnRyb2xUeXBlIH0gZnJvbSAnLi9tb2RlbHMnO1xuXG5leHBvcnQgY29uc3QgRklFTERfQ09NUE9ORU5UUyA9IHtcbiAgZ3JvdXBMaXN0OiBpbXBvcnQoJy4vZm9ybS1ncm91cC1saXN0JykudGhlbiAoKHtGb3JtR3JvdXBMaXN0Q29tcG9uZW50fSkgPT4gRm9ybUdyb3VwTGlzdENvbXBvbmVudCksXG4gIHN1Ykdyb3VwOiBpbXBvcnQoJy4vc3ViLWdyb3VwJykudGhlbigoeyBTdWJHcm91cENvbXBvbmVudH0pID0+ICBTdWJHcm91cENvbXBvbmVudCksXG4gIGJ1dHRvbjogaW1wb3J0KCcuL21hdGVyaWFsJykudGhlbigoeyBCdXR0b25Db21wb25lbnR9KSA9PiAgQnV0dG9uQ29tcG9uZW50KSxcbiAgaW5wdXQ6IGltcG9ydCgnLi9tYXRlcmlhbCcpLnRoZW4oKHsgSW5wdXRGaWVsZENvbXBvbmVudH0pID0+ICBJbnB1dEZpZWxkQ29tcG9uZW50KSxcbiAgc2VsZWN0OiBpbXBvcnQoJy4vbWF0ZXJpYWwnKS50aGVuKCh7IFNlbGVjdEZpZWxkQ29tcG9uZW50fSkgPT4gIFNlbGVjdEZpZWxkQ29tcG9uZW50KSxcbiAgcmFkaW86IGltcG9ydCgnLi9tYXRlcmlhbCcpLnRoZW4oKHsgUmFkaW9GaWVsZENvbXBvbmVudH0pID0+ICBSYWRpb0ZpZWxkQ29tcG9uZW50KSxcbiAgYXV0b2NvbXBsZXRlOiBpbXBvcnQoJy4vbWF0ZXJpYWwnKS50aGVuKCh7IEF1dG9jb21wbGV0ZUZpZWxkQ29tcG9uZW50fSkgPT4gIEF1dG9jb21wbGV0ZUZpZWxkQ29tcG9uZW50KSxcbiAgYXV0b2NvbXBsZXRlQ2hpcGxpc3Q6IGltcG9ydCgnLi9tYXRlcmlhbCcpLnRoZW4oKHsgQXV0b2NvbXBsZXRlQ2hpcGxpc3RGaWVsZENvbXBvbmVudH0pID0+ICBBdXRvY29tcGxldGVDaGlwbGlzdEZpZWxkQ29tcG9uZW50KSxcbiAgdGV4dGFyZWE6IGltcG9ydCgnLi9tYXRlcmlhbCcpLnRoZW4oKHsgVGV4dGFyZWFGaWVsZENvbXBvbmVudH0pID0+ICBUZXh0YXJlYUZpZWxkQ29tcG9uZW50KSxcbiAgY2hlY2tib3g6IGltcG9ydCgnLi9tYXRlcmlhbCcpLnRoZW4oKHsgQ2hlY2tib3hGaWVsZENvbXBvbmVudH0pID0+ICBDaGVja2JveEZpZWxkQ29tcG9uZW50KSxcbiAgc2xpZGVyOiBpbXBvcnQoJy4vbWF0ZXJpYWwnKS50aGVuKCh7IFNsaWRlckZpZWxkQ29tcG9uZW50fSkgPT4gIFNsaWRlckZpZWxkQ29tcG9uZW50KSxcbiAgZGF0ZXBpY2tlcjogaW1wb3J0KCcuL21hdGVyaWFsJykudGhlbigoeyBEYXRlcGlja2VyRmllbGRDb21wb25lbnR9KSA9PiAgRGF0ZXBpY2tlckZpZWxkQ29tcG9uZW50KSxcbiAgZmlsZVVwbG9hZDogaW1wb3J0KCcuL21hdGVyaWFsJykudGhlbigoeyBGaWxlVXBsb2FkRmllbGRDb21wb25lbnR9KSA9PiAgRmlsZVVwbG9hZEZpZWxkQ29tcG9uZW50KSxcbiAgaW1hZ2VVcGxvYWQ6IGltcG9ydCgnLi9tYXRlcmlhbCcpLnRoZW4oKHsgSW1hZ2VVcGxvYWRGaWVsZENvbXBvbmVudH0pID0+ICBJbWFnZVVwbG9hZEZpZWxkQ29tcG9uZW50KSxcbiAgaGVhZGluZzogaW1wb3J0KCcuL21hdGVyaWFsJykudGhlbigoeyBIZWFkaW5nQ29tcG9uZW50fSkgPT4gIEhlYWRpbmdDb21wb25lbnQpLFxuICBkaXZpZGVyOiBpbXBvcnQoJy4vbWF0ZXJpYWwnKS50aGVuKCh7IERpdmlkZXJDb21wb25lbnR9KSA9PiAgRGl2aWRlckNvbXBvbmVudCksXG4gIHVuaXRDb252ZXJzaW9uOiBpbXBvcnQoJy4vbWF0ZXJpYWwnKS50aGVuKCh7IFVuaXRDb252ZXJzaW9uRmllbGRDb21wb25lbnR9KSA9PiAgVW5pdENvbnZlcnNpb25GaWVsZENvbXBvbmVudClcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbnRyb2xDb21wb25lbnQoY29tcG9uZW50OiBDcmlzcHJGaWVsZENvbXBvbmVudCk6IGNvbXBvbmVudCBpcyBDcmlzcHJDb250cm9sQ29tcG9uZW50IHtcbiAgcmV0dXJuIGNvbXBvbmVudCAmJiBpc0NvbnRyb2xDb25maWcoY29tcG9uZW50LmNvbmZpZykgJiYgJ3ZhbHVlJyBpbiBjb21wb25lbnQgLy8gfHwgY29tcG9uZW50LmNvbmZpZy5jb250cm9sVHlwZSA9PT0gQ29udHJvbFR5cGUuQlVUVE9OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDb250cm9sT3JCdXR0b25Db21wb25lbnQoY29tcG9uZW50OiBDcmlzcHJGaWVsZENvbXBvbmVudCk6IGNvbXBvbmVudCBpcyBDcmlzcHJDb250cm9sT3JCdXR0b24ge1xuICByZXR1cm4gaXNDb250cm9sQ29tcG9uZW50KGNvbXBvbmVudCkgfHwgY29tcG9uZW50LmNvbmZpZy5jb250cm9sVHlwZSA9PT0gQ29udHJvbFR5cGUuQlVUVE9OO1xufVxuXG5leHBvcnQgdHlwZSBDcmlzcHJDb250cm9sT3JCdXR0b24gPSBDcmlzcHJDb250cm9sQ29tcG9uZW50IHwgQnV0dG9uQ29tcG9uZW50O1xuXG5leHBvcnQgdHlwZSBDcmlzcHJDb250cm9sQ29tcG9uZW50ID0gSW5wdXRGaWVsZENvbXBvbmVudCB8XG4gIFNlbGVjdEZpZWxkQ29tcG9uZW50IHxcbiAgUmFkaW9GaWVsZENvbXBvbmVudCB8XG4gIFN1Ykdyb3VwQ29tcG9uZW50IHxcbiAgRm9ybUdyb3VwTGlzdENvbXBvbmVudCB8XG4gIEF1dG9jb21wbGV0ZUZpZWxkQ29tcG9uZW50IHxcbiAgQXV0b2NvbXBsZXRlQ2hpcGxpc3RGaWVsZENvbXBvbmVudCB8XG4gIFRleHRhcmVhRmllbGRDb21wb25lbnQgfFxuICBDaGVja2JveEZpZWxkQ29tcG9uZW50IHxcbiAgU2xpZGVyRmllbGRDb21wb25lbnQgfFxuICBGaWxlVXBsb2FkRmllbGRDb21wb25lbnQgfFxuICBJbWFnZVVwbG9hZEZpZWxkQ29tcG9uZW50fFxuICBEYXRlcGlja2VyRmllbGRDb21wb25lbnQgfFxuICBVbml0Q29udmVyc2lvbkZpZWxkQ29tcG9uZW50O1xuXG5leHBvcnQgdHlwZSBDb21wb25lbnRLZXlzID0ga2V5b2YgdHlwZW9mIEZJRUxEX0NPTVBPTkVOVFM7XG4vLyBleHBvcnQgdHlwZSBDcmlzcHJGaWVsZENvbXBvbmVudCA9IEZJRUxEX0NPTVBPTkVOVFNbQ29tcG9uZW50S2V5c107XG5cbmV4cG9ydCB0eXBlIENyaXNwckZpZWxkQ29tcG9uZW50ID0gQ3Jpc3ByQ29udHJvbENvbXBvbmVudCB8XG4gIEhlYWRpbmdDb21wb25lbnQgfFxuICBEaXZpZGVyQ29tcG9uZW50IHxcbiAgQnV0dG9uQ29tcG9uZW50O1xuXG4iXX0=
@@ -11,6 +11,7 @@ export class CrisprFieldDirective {
11
11
  }
12
12
  set value(value) {
13
13
  this._value = value;
14
+ // This is needed to keep the group list from resetting control values to the initial input value
14
15
  this.updateComponentValue(value);
15
16
  }
16
17
  ;
@@ -44,9 +45,9 @@ export class CrisprFieldDirective {
44
45
  });
45
46
  }
46
47
  updateComponentValue(value) {
47
- if (this.component && isControlComponent(this.component)) {
48
+ if (isControlComponent(this.component)) {
48
49
  this.component.value = value;
49
- // SubGroups won't populate without this
50
+ // SubGroups won't populate without this detectChanges
50
51
  this.cdr.detectChanges();
51
52
  }
52
53
  }
@@ -86,4 +87,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImpor
86
87
  ]
87
88
  }]
88
89
  }] });
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jcmlzcHItZm9ybXMvc3JjL2xpYi9maWVsZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUF3QixnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JJLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFLL0MsTUFBTSxPQUFPLG9CQUFvQjtJQWtCL0IsWUFDVSxTQUEyQixFQUMzQixRQUFtQixFQUNuQixHQUFzQjtRQUZ0QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFFBQUcsR0FBSCxHQUFHLENBQW1CO0lBQzdCLENBQUM7SUFiSixJQUFhLEtBQUssQ0FBQyxLQUEyQjtRQUM1QyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUFBLENBQUM7SUFDRixJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQVNELEtBQUssQ0FBQyxRQUFRO1FBQ1o7O1dBRUc7UUFDSCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsSUFBSSxNQUFNLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDM0YsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQXVCLFNBQVMsQ0FBQyxDQUFDO1FBRXJGLElBQUksQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQztRQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3BDLElBQUksMEJBQTBCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQzlDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDbkM7UUFDRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLGlFQUFpRTtRQUNqRSx5R0FBeUc7UUFDekcsSUFBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTztZQUFFLE9BQU87UUFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDcEMsMERBQTBEO1lBQzFELElBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDdEIsTUFBTSxLQUFLLENBQUMsZ0NBQWdDLEtBQUssMEJBQTBCLENBQUMsQ0FBQzthQUM5RTtpQkFBTTtnQkFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQzthQUNwRTtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELG9CQUFvQixDQUFDLEtBQTJCO1FBQzlDLElBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDdkQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQzdCLHdDQUF3QztZQUN4QyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQzFCO0lBQ0gsQ0FBQzs7aUhBeERVLG9CQUFvQjtxR0FBcEIsb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBSGhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7aUJBQzFCOytKQUdVLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBTU8sS0FBSztzQkFBakIsS0FBSzs7QUE0RFIsTUFBTSxPQUFPLGlCQUFpQjs7OEdBQWpCLGlCQUFpQjsrR0FBakIsaUJBQWlCLGlCQXJFakIsb0JBQW9CLGFBNEQ3QixZQUFZLGFBNURILG9CQUFvQjsrR0FxRXBCLGlCQUFpQixZQVZuQjtZQUNQLFlBQVk7U0FDYjsyRkFRVSxpQkFBaUI7a0JBWDdCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG9CQUFvQjtxQkFDckI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLG9CQUFvQjtxQkFDckI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBWaWV3Q29udGFpbmVyUmVmLCBSZW5kZXJlcjIsIE5nTW9kdWxlLCBPbkluaXQsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgdHlwZSB7IEFueUZpZWxkQ29uZmlnLCBDb250cm9sVmFsdWUgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBDcmlzcHJGaWVsZENvbXBvbmVudCwgRklFTERfQ09NUE9ORU5UUywgaXNDb250cm9sQ29tcG9uZW50LCBpc0NvbnRyb2xPckJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vZmllbGQtY29tcG9uZW50LW1hcC5jb25zdCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbY3Jpc3ByRmllbGRdJ1xufSlcbmV4cG9ydCBjbGFzcyBDcmlzcHJGaWVsZERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgY29uZmlnOiBBbnlGaWVsZENvbmZpZztcbiAgQElucHV0KCkgZ3JvdXA6IEZvcm1Hcm91cDtcblxuICAvKipcbiAgICogdmFsdWUgc2V0dGVyIHVwZGF0ZXMgdGhlIGNvbnRyb2wncyB2YWx1ZSBhcyB3ZWxsXG4gICAqL1xuICBfdmFsdWU6IENvbnRyb2xWYWx1ZSB8IGFueVtdXG4gIEBJbnB1dCgpIHNldCB2YWx1ZSh2YWx1ZTogQ29udHJvbFZhbHVlIHwgYW55W10pIHtcbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMudXBkYXRlQ29tcG9uZW50VmFsdWUodmFsdWUpO1xuICB9O1xuICBnZXQgdmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG4gIGNvbXBvbmVudDogQ3Jpc3ByRmllbGRDb21wb25lbnQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgLyoqXG4gICAgICogY3JlYXRlIGNvbXBvbmVudCBhbmQgc2V0IHZhbHVlcyBmcm9tIGNvbmZpZyBvbiBpdHMgaW5zdGFuY2VcbiAgICAgKi9cbiAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLmNvbmZpZy5jb21wb25lbnQgfHwgYXdhaXQgRklFTERfQ09NUE9ORU5UU1t0aGlzLmNvbmZpZy5jb250cm9sVHlwZV07XG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5jb250YWluZXIuY3JlYXRlQ29tcG9uZW50PENyaXNwckZpZWxkQ29tcG9uZW50Pihjb21wb25lbnQpO1xuXG4gICAgdGhpcy5jb21wb25lbnQgPSBjb21wb25lbnRSZWYuaW5zdGFuY2U7XG4gICAgdGhpcy5jb21wb25lbnQuY29uZmlnID0gdGhpcy5jb25maWc7XG4gICAgaWYgKGlzQ29udHJvbE9yQnV0dG9uQ29tcG9uZW50KHRoaXMuY29tcG9uZW50KSkge1xuICAgICAgdGhpcy5jb21wb25lbnQuZ3JvdXAgPSB0aGlzLmdyb3VwO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZUNvbXBvbmVudFZhbHVlKHRoaXMudmFsdWUpO1xuICAgIC8vIGFkZHMgYW55IGNvbmZpZyBjbGFzc2VzIHRvIHRoZSBkeW5hbWljYWxseSBnZW5lcmF0ZWQgY29tcG9uZW50XG4gICAgLy8gZG9pbmcgdGhpcyBoZXJlIGtlZXBzIHVzIGZyb20gaGF2aW5nIHRvIGV4dGVuZCBhIGJhc2UgY29tcG9uZW50IGludG8gZWFjaCBmaWVsZCBjb21wb25lbnQgaW5kaXZpZHVhbGx5XG4gICAgaWYoIXRoaXMuY29uZmlnLmNsYXNzZXMpIHJldHVybjtcbiAgICB0aGlzLmNvbmZpZy5jbGFzc2VzLmZvckVhY2goKGtsYXNzKSA9PiB7XG4gICAgICAvLyBjaGVjayBmb3IgcGFzc2luZyBtdWx0aXBsZSBjbGFzc2VzIGluIG9uZSBhcnJheSBlbGVtZW50XG4gICAgICBpZihrbGFzcy5pbmNsdWRlcygnICcpKSB7XG4gICAgICAgIHRocm93IEVycm9yKGBJbXByb3Blcmx5IGZvcm1hdHRlZCBjbGFzcy4gJyR7a2xhc3N9JyBjYW5ub3QgY29udGFpbiBzcGFjZXMuYCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LCBrbGFzcyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGVDb21wb25lbnRWYWx1ZSh2YWx1ZTogQ29udHJvbFZhbHVlIHwgYW55W10pIHtcbiAgICBpZih0aGlzLmNvbXBvbmVudCAmJiBpc0NvbnRyb2xDb21wb25lbnQodGhpcy5jb21wb25lbnQpKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudC52YWx1ZSA9IHZhbHVlO1xuICAgICAgLy8gU3ViR3JvdXBzIHdvbid0IHBvcHVsYXRlIHdpdGhvdXQgdGhpc1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxufVxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIENyaXNwckZpZWxkRGlyZWN0aXZlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIENyaXNwckZpZWxkRGlyZWN0aXZlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQ3Jpc3ByRmllbGRNb2R1bGUge1xufVxuIl19
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jcmlzcHItZm9ybXMvc3JjL2xpYi9maWVsZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUF3QixnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JJLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFLL0MsTUFBTSxPQUFPLG9CQUFvQjtJQWtCL0IsWUFDVSxTQUEyQixFQUMzQixRQUFtQixFQUNuQixHQUFzQjtRQUZ0QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFFBQUcsR0FBSCxHQUFHLENBQW1CO0lBQzdCLENBQUM7SUFkSixJQUFhLEtBQUssQ0FBQyxLQUEyQjtRQUM1QyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixpR0FBaUc7UUFDakcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFBQSxDQUFDO0lBQ0YsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFTRCxLQUFLLENBQUMsUUFBUTtRQUNaOztXQUVHO1FBQ0gsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLElBQUksTUFBTSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNGLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUF1QixTQUFTLENBQUMsQ0FBQztRQUVyRixJQUFJLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUM7UUFDdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNwQyxJQUFJLDBCQUEwQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUM5QyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ25DO1FBQ0QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QyxpRUFBaUU7UUFDakUseUdBQXlHO1FBQ3pHLElBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU87WUFBRSxPQUFPO1FBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3BDLDBEQUEwRDtZQUMxRCxJQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3RCLE1BQU0sS0FBSyxDQUFDLGdDQUFnQyxLQUFLLDBCQUEwQixDQUFDLENBQUM7YUFDOUU7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDcEU7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxLQUEyQjtRQUM5QyxJQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNyQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDN0Isc0RBQXNEO1lBQ3RELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDOztpSEF4RFUsb0JBQW9CO3FHQUFwQixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFIaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtpQkFDMUI7K0pBR1UsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFLTyxLQUFLO3NCQUFqQixLQUFLOztBQTZEUixNQUFNLE9BQU8saUJBQWlCOzs4R0FBakIsaUJBQWlCOytHQUFqQixpQkFBaUIsaUJBckVqQixvQkFBb0IsYUE0RDdCLFlBQVksYUE1REgsb0JBQW9COytHQXFFcEIsaUJBQWlCLFlBVm5CO1lBQ1AsWUFBWTtTQUNiOzJGQVFVLGlCQUFpQjtrQkFYN0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTtxQkFDYjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asb0JBQW9CO3FCQUNyQjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osb0JBQW9CO3FCQUNyQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIFZpZXdDb250YWluZXJSZWYsIFJlbmRlcmVyMiwgTmdNb2R1bGUsIE9uSW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFueUZpZWxkQ29uZmlnLCBDb250cm9sVmFsdWUgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBDcmlzcHJGaWVsZENvbXBvbmVudCwgRklFTERfQ09NUE9ORU5UUywgaXNDb250cm9sQ29tcG9uZW50LCBpc0NvbnRyb2xPckJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vZmllbGQtY29tcG9uZW50LW1hcC5jb25zdCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbY3Jpc3ByRmllbGRdJ1xufSlcbmV4cG9ydCBjbGFzcyBDcmlzcHJGaWVsZERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgY29uZmlnOiBBbnlGaWVsZENvbmZpZztcbiAgQElucHV0KCkgZ3JvdXA6IEZvcm1Hcm91cDtcbiAgLyoqXG4gICAqIHZhbHVlIHNldHRlciB1cGRhdGVzIHRoZSBjb250cm9sJ3MgdmFsdWUgYXMgd2VsbFxuICAgKi9cbiAgX3ZhbHVlOiBDb250cm9sVmFsdWUgfCBhbnlbXVxuICBASW5wdXQoKSBzZXQgdmFsdWUodmFsdWU6IENvbnRyb2xWYWx1ZSB8IGFueVtdKSB7XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICAvLyBUaGlzIGlzIG5lZWRlZCB0byBrZWVwIHRoZSBncm91cCBsaXN0IGZyb20gcmVzZXR0aW5nIGNvbnRyb2wgdmFsdWVzIHRvIHRoZSBpbml0aWFsIGlucHV0IHZhbHVlXG4gICAgdGhpcy51cGRhdGVDb21wb25lbnRWYWx1ZSh2YWx1ZSk7XG4gIH07XG4gIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cbiAgY29tcG9uZW50OiBDcmlzcHJGaWVsZENvbXBvbmVudDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICAvKipcbiAgICAgKiBjcmVhdGUgY29tcG9uZW50IGFuZCBzZXQgdmFsdWVzIGZyb20gY29uZmlnIG9uIGl0cyBpbnN0YW5jZVxuICAgICAqL1xuICAgIGNvbnN0IGNvbXBvbmVudCA9IHRoaXMuY29uZmlnLmNvbXBvbmVudCB8fCBhd2FpdCBGSUVMRF9DT01QT05FTlRTW3RoaXMuY29uZmlnLmNvbnRyb2xUeXBlXTtcbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmNvbnRhaW5lci5jcmVhdGVDb21wb25lbnQ8Q3Jpc3ByRmllbGRDb21wb25lbnQ+KGNvbXBvbmVudCk7XG5cbiAgICB0aGlzLmNvbXBvbmVudCA9IGNvbXBvbmVudFJlZi5pbnN0YW5jZTtcbiAgICB0aGlzLmNvbXBvbmVudC5jb25maWcgPSB0aGlzLmNvbmZpZztcbiAgICBpZiAoaXNDb250cm9sT3JCdXR0b25Db21wb25lbnQodGhpcy5jb21wb25lbnQpKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudC5ncm91cCA9IHRoaXMuZ3JvdXA7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlQ29tcG9uZW50VmFsdWUodGhpcy52YWx1ZSk7XG4gICAgLy8gYWRkcyBhbnkgY29uZmlnIGNsYXNzZXMgdG8gdGhlIGR5bmFtaWNhbGx5IGdlbmVyYXRlZCBjb21wb25lbnRcbiAgICAvLyBkb2luZyB0aGlzIGhlcmUga2VlcHMgdXMgZnJvbSBoYXZpbmcgdG8gZXh0ZW5kIGEgYmFzZSBjb21wb25lbnQgaW50byBlYWNoIGZpZWxkIGNvbXBvbmVudCBpbmRpdmlkdWFsbHlcbiAgICBpZighdGhpcy5jb25maWcuY2xhc3NlcykgcmV0dXJuO1xuICAgIHRoaXMuY29uZmlnLmNsYXNzZXMuZm9yRWFjaCgoa2xhc3MpID0+IHtcbiAgICAgIC8vIGNoZWNrIGZvciBwYXNzaW5nIG11bHRpcGxlIGNsYXNzZXMgaW4gb25lIGFycmF5IGVsZW1lbnRcbiAgICAgIGlmKGtsYXNzLmluY2x1ZGVzKCcgJykpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoYEltcHJvcGVybHkgZm9ybWF0dGVkIGNsYXNzLiAnJHtrbGFzc30nIGNhbm5vdCBjb250YWluIHNwYWNlcy5gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQsIGtsYXNzKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZUNvbXBvbmVudFZhbHVlKHZhbHVlOiBDb250cm9sVmFsdWUgfCBhbnlbXSkge1xuICAgIGlmKGlzQ29udHJvbENvbXBvbmVudCh0aGlzLmNvbXBvbmVudCkpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50LnZhbHVlID0gdmFsdWU7XG4gICAgICAvLyBTdWJHcm91cHMgd29uJ3QgcG9wdWxhdGUgd2l0aG91dCB0aGlzIGRldGVjdENoYW5nZXNcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cbn1cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBDcmlzcHJGaWVsZERpcmVjdGl2ZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBDcmlzcHJGaWVsZERpcmVjdGl2ZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIENyaXNwckZpZWxkTW9kdWxlIHtcbn1cbiJdfQ==
@@ -20,6 +20,11 @@ export class FormGroupListComponent extends FormGroupListMixin {
20
20
  super();
21
21
  this.cdr = cdr;
22
22
  this.defaultConfig = defaultConfig;
23
+ /**
24
+ * By setting this to true when adding/removing items from array,
25
+ * we can block original values from overwriting form values
26
+ * */
27
+ this.blockValue = false;
23
28
  }
24
29
  ngOnInit() {
25
30
  super.ngOnInit();
@@ -44,6 +49,14 @@ export class FormGroupListComponent extends FormGroupListMixin {
44
49
  });
45
50
  }
46
51
  }
52
+ clickDelete(index) {
53
+ this.blockValue = true;
54
+ this.deleteGroup(index);
55
+ }
56
+ clickAdd() {
57
+ this.blockValue = true;
58
+ this.addGroup();
59
+ }
47
60
  addGroup(value = null) {
48
61
  this.control.push(createControlForType(this.config.itemConfig, value));
49
62
  // needed to ensure new array items render
@@ -56,9 +69,9 @@ export class FormGroupListComponent extends FormGroupListMixin {
56
69
  }
57
70
  }
58
71
  FormGroupListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: FormGroupListComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
59
- FormGroupListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: FormGroupListComponent, selector: "crispr-form-group-list", usesInheritance: true, ngImport: i0, template: "\n<crispr-field-container\n [config]=\"config\"\n [group]=\"group\"\n [formGroup]=\"group\">\n\n <div [formArrayName]=\"config.controlName\">\n <!-- Don't add trackBy function, it confuses the state of the array -->\n <div *ngFor=\"let control of control?.controls; let i = index\">\n <!-- TODO: use content projection to allow custom item label component -->\n <div class=\"item-header\">\n <span class=\"mat-h2\"> {{ config.itemLabelBuilder ? config.itemLabelBuilder(i) : 'Item ' + (i + 1) }} </span>\n <button\n mat-icon-button\n type=\"button\"\n *ngIf=\"i + 1 > config.minListLength\">\n <mat-icon (click)=\"deleteGroup(i)\">delete</mat-icon>\n </button>\n </div>\n <div\n [formGroupName]=\"i\">\n <ng-container\n *ngFor=\"let field of config.itemConfig.fields;\"\n crisprField\n [config]=\"field\"\n [value]=\"control.value | initialControlValue : field\"\n [group]=\"control\">\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"group-footer\">\n <button\n type=\"button\"\n class=\"add\"\n mat-raised-button\n [color]=\"config.addButtonColor\"\n (click)=\"addGroup()\">\n {{config.addItemLabel || config.addButtonLabel}}\n </button>\n </div>\n\n</crispr-field-container>\n", styles: [".item-header{display:flex;justify-content:space-between}.group-footer{display:flex;justify-content:flex-end}.group-footer button.add{margin-bottom:16px}\n"], components: [{ type: i1.FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }, { type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }, { type: i4.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i7.CrisprFieldDirective, selector: "[crisprField]", inputs: ["config", "group", "value"] }], pipes: { "initialControlValue": i8.InitialControlValuePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
72
+ FormGroupListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: FormGroupListComponent, selector: "crispr-form-group-list", usesInheritance: true, ngImport: i0, template: "\n<crispr-field-container\n [config]=\"config\"\n [group]=\"group\"\n [formGroup]=\"group\">\n\n <div [formArrayName]=\"config.controlName\">\n <!-- Don't add trackBy function, it confuses the state of the array -->\n <div *ngFor=\"let con of control?.controls; let i = index;\">\n <!-- TODO: use content projection to allow custom item label component -->\n <div class=\"item-header\">\n <span class=\"mat-h2\"> {{ config.itemLabelBuilder ? config.itemLabelBuilder(i) : 'Item ' + (i + 1) }} </span>\n <button\n mat-icon-button\n type=\"button\"\n *ngIf=\"i + 1 > config.minListLength\">\n <mat-icon (click)=\"clickDelete(i)\">delete</mat-icon>\n </button>\n </div>\n <div\n [formGroup]=\"con\">\n <!-- TODO: if chiplists didn't need to have labels mixed in with their values we could use [value]=\"control.value\" below -->\n <ng-container\n *ngFor=\"let field of config.itemConfig.fields;\"\n crisprField\n [value]=\"blockValue ? null : value && value[i] | initialControlValue : field\"\n [config]=\"field\"\n [group]=\"con\">\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"group-footer\">\n <button\n type=\"button\"\n class=\"add\"\n mat-raised-button\n [color]=\"config.addButtonColor\"\n (click)=\"clickAdd()\">\n {{config.addItemLabel || config.addButtonLabel}}\n </button>\n </div>\n\n</crispr-field-container>\n", styles: [".item-header{display:flex;justify-content:space-between}.group-footer{display:flex;justify-content:flex-end}.group-footer button.add{margin-bottom:16px}\n"], components: [{ type: i1.FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }, { type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }, { type: i4.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.CrisprFieldDirective, selector: "[crisprField]", inputs: ["config", "group", "value"] }], pipes: { "initialControlValue": i8.InitialControlValuePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
60
73
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: FormGroupListComponent, decorators: [{
61
74
  type: Component,
62
- args: [{ selector: 'crispr-form-group-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "\n<crispr-field-container\n [config]=\"config\"\n [group]=\"group\"\n [formGroup]=\"group\">\n\n <div [formArrayName]=\"config.controlName\">\n <!-- Don't add trackBy function, it confuses the state of the array -->\n <div *ngFor=\"let control of control?.controls; let i = index\">\n <!-- TODO: use content projection to allow custom item label component -->\n <div class=\"item-header\">\n <span class=\"mat-h2\"> {{ config.itemLabelBuilder ? config.itemLabelBuilder(i) : 'Item ' + (i + 1) }} </span>\n <button\n mat-icon-button\n type=\"button\"\n *ngIf=\"i + 1 > config.minListLength\">\n <mat-icon (click)=\"deleteGroup(i)\">delete</mat-icon>\n </button>\n </div>\n <div\n [formGroupName]=\"i\">\n <ng-container\n *ngFor=\"let field of config.itemConfig.fields;\"\n crisprField\n [config]=\"field\"\n [value]=\"control.value | initialControlValue : field\"\n [group]=\"control\">\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"group-footer\">\n <button\n type=\"button\"\n class=\"add\"\n mat-raised-button\n [color]=\"config.addButtonColor\"\n (click)=\"addGroup()\">\n {{config.addItemLabel || config.addButtonLabel}}\n </button>\n </div>\n\n</crispr-field-container>\n", styles: [".item-header{display:flex;justify-content:space-between}.group-footer{display:flex;justify-content:flex-end}.group-footer button.add{margin-bottom:16px}\n"] }]
75
+ args: [{ selector: 'crispr-form-group-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "\n<crispr-field-container\n [config]=\"config\"\n [group]=\"group\"\n [formGroup]=\"group\">\n\n <div [formArrayName]=\"config.controlName\">\n <!-- Don't add trackBy function, it confuses the state of the array -->\n <div *ngFor=\"let con of control?.controls; let i = index;\">\n <!-- TODO: use content projection to allow custom item label component -->\n <div class=\"item-header\">\n <span class=\"mat-h2\"> {{ config.itemLabelBuilder ? config.itemLabelBuilder(i) : 'Item ' + (i + 1) }} </span>\n <button\n mat-icon-button\n type=\"button\"\n *ngIf=\"i + 1 > config.minListLength\">\n <mat-icon (click)=\"clickDelete(i)\">delete</mat-icon>\n </button>\n </div>\n <div\n [formGroup]=\"con\">\n <!-- TODO: if chiplists didn't need to have labels mixed in with their values we could use [value]=\"control.value\" below -->\n <ng-container\n *ngFor=\"let field of config.itemConfig.fields;\"\n crisprField\n [value]=\"blockValue ? null : value && value[i] | initialControlValue : field\"\n [config]=\"field\"\n [group]=\"con\">\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"group-footer\">\n <button\n type=\"button\"\n class=\"add\"\n mat-raised-button\n [color]=\"config.addButtonColor\"\n (click)=\"clickAdd()\">\n {{config.addItemLabel || config.addButtonLabel}}\n </button>\n </div>\n\n</crispr-field-container>\n", styles: [".item-header{display:flex;justify-content:space-between}.group-footer{display:flex;justify-content:flex-end}.group-footer button.add{margin-bottom:16px}\n"] }]
63
76
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; } });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1ncm91cC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvZm9ybS1ncm91cC1saXN0L2Zvcm0tZ3JvdXAtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL2Zvcm0tZ3JvdXAtbGlzdC9mb3JtLWdyb3VwLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUk5RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7Ozs7QUFFeEUsTUFBTSxhQUFhLEdBQWlDO0lBQ2xELGNBQWMsRUFBRSxVQUFVO0lBQzFCLGFBQWEsRUFBRSxDQUFDO0NBQ2pCLENBQUM7QUFFRixNQUFNLGtCQUFrQixHQUFHLGtCQUFrQixDQUFzQixvQkFBb0IsQ0FBQyxDQUFDO0FBT3pGLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxrQkFBa0I7SUFLNUQsWUFBb0IsR0FBc0I7UUFDeEMsS0FBSyxFQUFFLENBQUM7UUFEVSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUoxQyxrQkFBYSxHQUFHLGFBQWEsQ0FBQTtJQU03QixDQUFDO0lBRUQsUUFBUTtRQUNOLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixnRkFBZ0Y7SUFDbEYsQ0FBQztJQUVELGVBQWUsQ0FBQyxNQUFhO1FBQzNCLElBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNmLElBQUcsTUFBTSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ3JCLDhFQUE4RTtnQkFDOUUsTUFBTSxhQUFhLEdBQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7Z0JBQzVDLElBQUcsYUFBYSxDQUFDLE1BQU0sRUFBRTtvQkFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztpQkFDdEI7Z0JBQ0QsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUUvQztpQkFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQTthQUNoQjtZQUNELDBDQUEwQztZQUMxQyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDM0IsQ0FBQyxDQUFDLENBQUE7U0FDSDtJQUNILENBQUM7SUFFRCxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUk7UUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN2RSwwQ0FBMEM7UUFDMUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWE7UUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQzs7bUhBNUNVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLHFGQ25CbkMsKzJDQTJDQTsyRkR4QmEsc0JBQXNCO2tCQU5sQyxTQUFTOytCQUNFLHdCQUF3QixtQkFHakIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgdHlwZSB7IEZvcm1Hcm91cExpc3RDb25maWcgfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgY3JlYXRlQ29udHJvbEZvclR5cGUgfSBmcm9tICcuLi9mb3JtLmhlbHBlcnMnO1xuaW1wb3J0IHsgQ3Jpc3ByRmllbGRDb21wb25lbnQsIGNyaXNwckNvbnRyb2xNaXhpbiB9IGZyb20gJy4uL2Fic3RyYWN0cyc7XG5cbmNvbnN0IGRlZmF1bHRDb25maWc6IFBhcnRpYWw8Rm9ybUdyb3VwTGlzdENvbmZpZz4gPSB7XG4gIGFkZEJ1dHRvbkxhYmVsOiAnQUREIElURU0nLFxuICBtaW5MaXN0TGVuZ3RoOiAxLFxufTtcblxuY29uc3QgRm9ybUdyb3VwTGlzdE1peGluID0gY3Jpc3ByQ29udHJvbE1peGluPEZvcm1Hcm91cExpc3RDb25maWc+KENyaXNwckZpZWxkQ29tcG9uZW50KTtcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NyaXNwci1mb3JtLWdyb3VwLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1ncm91cC1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1ncm91cC1saXN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1Hcm91cExpc3RDb21wb25lbnQgZXh0ZW5kcyBGb3JtR3JvdXBMaXN0TWl4aW4gaW1wbGVtZW50cyBPbkluaXQge1xuICBkZWZhdWx0Q29uZmlnID0gZGVmYXVsdENvbmZpZ1xuICBncm91cDogRm9ybUdyb3VwO1xuICBjb250cm9sOiBGb3JtQXJyYXk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgLy8gVE9ETzogdGhpcyBpcyByZXF1aXJlZCB0byBuZ0ZvciBvZiBjb250cm9scyBpbiB0ZW1wbGF0ZSwgbXVzdCBiZSBhIGJldHRlciB3YXlcbiAgfVxuXG4gIHNldENvbnRyb2xWYWx1ZSh2YWx1ZXM6IGFueVtdKSB7XG4gICAgaWYodGhpcy5jb250cm9sKSB7XG4gICAgICBpZih2YWx1ZXM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgLy8gY2xlYXIgYW55IGV4aXN0aW5nIHZhbHVlcyBzbyB0aGF0IG5ldyB2YWx1ZXMgZG9uJ3QgY29uY2F0ZW5hdGUgb250byB0aGUgb2xkXG4gICAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZXM6W10gPSB0aGlzLmNvbnRyb2wudmFsdWU7XG4gICAgICAgIGlmKGN1cnJlbnRWYWx1ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5jb250cm9sLmNsZWFyKCk7XG4gICAgICAgIH1cbiAgICAgICAgdmFsdWVzLmZvckVhY2godmFsdWUgPT4gdGhpcy5hZGRHcm91cCh2YWx1ZSkpO1xuXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuY29uZmlnLmRpc3BsYXlJbml0aWFsSXRlbSkge1xuICAgICAgICB0aGlzLmFkZEdyb3VwKClcbiAgICAgIH1cbiAgICAgIC8vIG5lZWRlZCB0byBlbnN1cmUgbmV3IGFycmF5IGl0ZW1zIHJlbmRlclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgYWRkR3JvdXAodmFsdWUgPSBudWxsKSB7XG4gICAgdGhpcy5jb250cm9sLnB1c2goY3JlYXRlQ29udHJvbEZvclR5cGUodGhpcy5jb25maWcuaXRlbUNvbmZpZywgdmFsdWUpKTtcbiAgICAvLyBuZWVkZWQgdG8gZW5zdXJlIG5ldyBhcnJheSBpdGVtcyByZW5kZXJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KVxuICB9XG5cbiAgZGVsZXRlR3JvdXAoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuY29udHJvbC5yZW1vdmVBdChpbmRleCk7XG4gIH1cbn1cbiIsIlxuPGNyaXNwci1maWVsZC1jb250YWluZXJcbiAgW2NvbmZpZ109XCJjb25maWdcIlxuICBbZ3JvdXBdPVwiZ3JvdXBcIlxuICBbZm9ybUdyb3VwXT1cImdyb3VwXCI+XG5cbiAgPGRpdiBbZm9ybUFycmF5TmFtZV09XCJjb25maWcuY29udHJvbE5hbWVcIj5cbiAgICA8IS0tIERvbid0IGFkZCB0cmFja0J5IGZ1bmN0aW9uLCBpdCBjb25mdXNlcyB0aGUgc3RhdGUgb2YgdGhlIGFycmF5IC0tPlxuICAgIDxkaXYgKm5nRm9yPVwibGV0IGNvbnRyb2wgb2YgY29udHJvbD8uY29udHJvbHM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgIDwhLS0gVE9ETzogdXNlIGNvbnRlbnQgcHJvamVjdGlvbiB0byBhbGxvdyBjdXN0b20gaXRlbSBsYWJlbCBjb21wb25lbnQgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1oZWFkZXJcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXQtaDJcIj4ge3sgY29uZmlnLml0ZW1MYWJlbEJ1aWxkZXIgPyBjb25maWcuaXRlbUxhYmVsQnVpbGRlcihpKSA6ICdJdGVtICcgKyAoaSArIDEpIH19IDwvc3Bhbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICpuZ0lmPVwiaSArIDEgPiBjb25maWcubWluTGlzdExlbmd0aFwiPlxuICAgICAgICAgIDxtYXQtaWNvbiAoY2xpY2spPVwiZGVsZXRlR3JvdXAoaSlcIj5kZWxldGU8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBbZm9ybUdyb3VwTmFtZV09XCJpXCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgZmllbGQgb2YgY29uZmlnLml0ZW1Db25maWcuZmllbGRzO1wiXG4gICAgICAgICAgY3Jpc3ByRmllbGRcbiAgICAgICAgICBbY29uZmlnXT1cImZpZWxkXCJcbiAgICAgICAgICBbdmFsdWVdPVwiY29udHJvbC52YWx1ZSB8IGluaXRpYWxDb250cm9sVmFsdWUgOiBmaWVsZFwiXG4gICAgICAgICAgW2dyb3VwXT1cImNvbnRyb2xcIj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJncm91cC1mb290ZXJcIj5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwiYWRkXCJcbiAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICBbY29sb3JdPVwiY29uZmlnLmFkZEJ1dHRvbkNvbG9yXCJcbiAgICAgIChjbGljayk9XCJhZGRHcm91cCgpXCI+XG4gICAgICB7e2NvbmZpZy5hZGRJdGVtTGFiZWwgfHwgY29uZmlnLmFkZEJ1dHRvbkxhYmVsfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG5cbjwvY3Jpc3ByLWZpZWxkLWNvbnRhaW5lcj5cbiJdfQ==
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1ncm91cC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvZm9ybS1ncm91cC1saXN0L2Zvcm0tZ3JvdXAtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL2Zvcm0tZ3JvdXAtbGlzdC9mb3JtLWdyb3VwLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUk5RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7Ozs7QUFFeEUsTUFBTSxhQUFhLEdBQWlDO0lBQ2xELGNBQWMsRUFBRSxVQUFVO0lBQzFCLGFBQWEsRUFBRSxDQUFDO0NBQ2pCLENBQUM7QUFFRixNQUFNLGtCQUFrQixHQUFHLGtCQUFrQixDQUFzQixvQkFBb0IsQ0FBQyxDQUFDO0FBT3pGLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxrQkFBa0I7SUFXNUQsWUFBb0IsR0FBc0I7UUFDeEMsS0FBSyxFQUFFLENBQUM7UUFEVSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQVQxQyxrQkFBYSxHQUFHLGFBQWEsQ0FBQTtRQUc3Qjs7O2FBR0s7UUFDTCxlQUFVLEdBQUcsS0FBSyxDQUFDO0lBSW5CLENBQUM7SUFFRCxRQUFRO1FBQ04sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLGdGQUFnRjtJQUNsRixDQUFDO0lBRUQsZUFBZSxDQUFDLE1BQWE7UUFDM0IsSUFBRyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2YsSUFBRyxNQUFNLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDckIsOEVBQThFO2dCQUM5RSxNQUFNLGFBQWEsR0FBTSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFDNUMsSUFBRyxhQUFhLENBQUMsTUFBTSxFQUFFO29CQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO2lCQUN0QjtnQkFDRCxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBRS9DO2lCQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRTtnQkFDekMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFBO2FBQ2hCO1lBQ0QsMENBQTBDO1lBQzFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMzQixDQUFDLENBQUMsQ0FBQTtTQUNIO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFhO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSTtRQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLDBDQUEwQztRQUMxQyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBYTtRQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDOzttSEE1RFUsc0JBQXNCO3VHQUF0QixzQkFBc0IscUZDbkJuQyxzZ0RBNENBOzJGRHpCYSxzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0Usd0JBQXdCLG1CQUdqQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQXJyYXkgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB0eXBlIHsgRm9ybUdyb3VwTGlzdENvbmZpZyB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBjcmVhdGVDb250cm9sRm9yVHlwZSB9IGZyb20gJy4uL2Zvcm0uaGVscGVycyc7XG5pbXBvcnQgeyBDcmlzcHJGaWVsZENvbXBvbmVudCwgY3Jpc3ByQ29udHJvbE1peGluIH0gZnJvbSAnLi4vYWJzdHJhY3RzJztcblxuY29uc3QgZGVmYXVsdENvbmZpZzogUGFydGlhbDxGb3JtR3JvdXBMaXN0Q29uZmlnPiA9IHtcbiAgYWRkQnV0dG9uTGFiZWw6ICdBREQgSVRFTScsXG4gIG1pbkxpc3RMZW5ndGg6IDEsXG59O1xuXG5jb25zdCBGb3JtR3JvdXBMaXN0TWl4aW4gPSBjcmlzcHJDb250cm9sTWl4aW48Rm9ybUdyb3VwTGlzdENvbmZpZz4oQ3Jpc3ByRmllbGRDb21wb25lbnQpO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3Jpc3ByLWZvcm0tZ3JvdXAtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWdyb3VwLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWdyb3VwLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUdyb3VwTGlzdENvbXBvbmVudCBleHRlbmRzIEZvcm1Hcm91cExpc3RNaXhpbiBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgZGVmYXVsdENvbmZpZyA9IGRlZmF1bHRDb25maWdcbiAgZ3JvdXA6IEZvcm1Hcm91cDtcbiAgY29udHJvbDogRm9ybUFycmF5O1xuICAvKipcbiAgICogQnkgc2V0dGluZyB0aGlzIHRvIHRydWUgd2hlbiBhZGRpbmcvcmVtb3ZpbmcgaXRlbXMgZnJvbSBhcnJheSxcbiAgICogd2UgY2FuIGJsb2NrIG9yaWdpbmFsIHZhbHVlcyBmcm9tIG92ZXJ3cml0aW5nIGZvcm0gdmFsdWVzXG4gICAqICovXG4gIGJsb2NrVmFsdWUgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAvLyBUT0RPOiB0aGlzIGlzIHJlcXVpcmVkIHRvIG5nRm9yIG9mIGNvbnRyb2xzIGluIHRlbXBsYXRlLCBtdXN0IGJlIGEgYmV0dGVyIHdheVxuICB9XG5cbiAgc2V0Q29udHJvbFZhbHVlKHZhbHVlczogYW55W10pIHtcbiAgICBpZih0aGlzLmNvbnRyb2wpIHtcbiAgICAgIGlmKHZhbHVlcz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAvLyBjbGVhciBhbnkgZXhpc3RpbmcgdmFsdWVzIHNvIHRoYXQgbmV3IHZhbHVlcyBkb24ndCBjb25jYXRlbmF0ZSBvbnRvIHRoZSBvbGRcbiAgICAgICAgY29uc3QgY3VycmVudFZhbHVlczpbXSA9IHRoaXMuY29udHJvbC52YWx1ZTtcbiAgICAgICAgaWYoY3VycmVudFZhbHVlcy5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLmNvbnRyb2wuY2xlYXIoKTtcbiAgICAgICAgfVxuICAgICAgICB2YWx1ZXMuZm9yRWFjaCh2YWx1ZSA9PiB0aGlzLmFkZEdyb3VwKHZhbHVlKSk7XG5cbiAgICAgIH0gZWxzZSBpZiAodGhpcy5jb25maWcuZGlzcGxheUluaXRpYWxJdGVtKSB7XG4gICAgICAgIHRoaXMuYWRkR3JvdXAoKVxuICAgICAgfVxuICAgICAgLy8gbmVlZGVkIHRvIGVuc3VyZSBuZXcgYXJyYXkgaXRlbXMgcmVuZGVyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICBjbGlja0RlbGV0ZShpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5ibG9ja1ZhbHVlID0gdHJ1ZTtcbiAgICB0aGlzLmRlbGV0ZUdyb3VwKGluZGV4KTtcbiAgfVxuXG4gIGNsaWNrQWRkKCkge1xuICAgIHRoaXMuYmxvY2tWYWx1ZSA9IHRydWU7XG4gICAgdGhpcy5hZGRHcm91cCgpO1xuICB9XG5cbiAgYWRkR3JvdXAodmFsdWUgPSBudWxsKSB7XG4gICAgdGhpcy5jb250cm9sLnB1c2goY3JlYXRlQ29udHJvbEZvclR5cGUodGhpcy5jb25maWcuaXRlbUNvbmZpZywgdmFsdWUpKTtcbiAgICAvLyBuZWVkZWQgdG8gZW5zdXJlIG5ldyBhcnJheSBpdGVtcyByZW5kZXJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KVxuICB9XG5cbiAgZGVsZXRlR3JvdXAoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuY29udHJvbC5yZW1vdmVBdChpbmRleCk7XG4gIH1cbn1cbiIsIlxuPGNyaXNwci1maWVsZC1jb250YWluZXJcbiAgW2NvbmZpZ109XCJjb25maWdcIlxuICBbZ3JvdXBdPVwiZ3JvdXBcIlxuICBbZm9ybUdyb3VwXT1cImdyb3VwXCI+XG5cbiAgPGRpdiBbZm9ybUFycmF5TmFtZV09XCJjb25maWcuY29udHJvbE5hbWVcIj5cbiAgICA8IS0tIERvbid0IGFkZCB0cmFja0J5IGZ1bmN0aW9uLCBpdCBjb25mdXNlcyB0aGUgc3RhdGUgb2YgdGhlIGFycmF5IC0tPlxuICAgIDxkaXYgKm5nRm9yPVwibGV0IGNvbiBvZiBjb250cm9sPy5jb250cm9sczsgbGV0IGkgPSBpbmRleDtcIj5cbiAgICAgIDwhLS0gVE9ETzogdXNlIGNvbnRlbnQgcHJvamVjdGlvbiB0byBhbGxvdyBjdXN0b20gaXRlbSBsYWJlbCBjb21wb25lbnQgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1oZWFkZXJcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXQtaDJcIj4ge3sgY29uZmlnLml0ZW1MYWJlbEJ1aWxkZXIgPyBjb25maWcuaXRlbUxhYmVsQnVpbGRlcihpKSA6ICdJdGVtICcgKyAoaSArIDEpIH19IDwvc3Bhbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICpuZ0lmPVwiaSArIDEgPiBjb25maWcubWluTGlzdExlbmd0aFwiPlxuICAgICAgICAgIDxtYXQtaWNvbiAoY2xpY2spPVwiY2xpY2tEZWxldGUoaSlcIj5kZWxldGU8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBbZm9ybUdyb3VwXT1cImNvblwiPlxuICAgICAgICA8IS0tIFRPRE86IGlmIGNoaXBsaXN0cyBkaWRuJ3QgbmVlZCB0byBoYXZlIGxhYmVscyBtaXhlZCBpbiB3aXRoIHRoZWlyIHZhbHVlcyB3ZSBjb3VsZCB1c2UgW3ZhbHVlXT1cImNvbnRyb2wudmFsdWVcIiBiZWxvdyAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBjb25maWcuaXRlbUNvbmZpZy5maWVsZHM7XCJcbiAgICAgICAgICBjcmlzcHJGaWVsZFxuICAgICAgICAgIFt2YWx1ZV09XCJibG9ja1ZhbHVlID8gbnVsbCA6IHZhbHVlICYmIHZhbHVlW2ldIHwgaW5pdGlhbENvbnRyb2xWYWx1ZSA6IGZpZWxkXCJcbiAgICAgICAgICBbY29uZmlnXT1cImZpZWxkXCJcbiAgICAgICAgICBbZ3JvdXBdPVwiY29uXCI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZ3JvdXAtZm9vdGVyXCI+XG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cImFkZFwiXG4gICAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgW2NvbG9yXT1cImNvbmZpZy5hZGRCdXR0b25Db2xvclwiXG4gICAgICAoY2xpY2spPVwiY2xpY2tBZGQoKVwiPlxuICAgICAge3tjb25maWcuYWRkSXRlbUxhYmVsIHx8IGNvbmZpZy5hZGRCdXR0b25MYWJlbH19XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuXG48L2NyaXNwci1maWVsZC1jb250YWluZXI+XG4iXX0=
@@ -1572,7 +1572,7 @@ 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) && 'value' in component; // || component.config.controlType === ControlType.BUTTON;
1575
+ return component && isControlConfig(component.config) && 'value' in component; // || component.config.controlType === ControlType.BUTTON;
1576
1576
  }
1577
1577
  function isControlOrButtonComponent(component) {
1578
1578
  return isControlComponent(component) || component.config.controlType === ControlType.BUTTON;
@@ -1586,6 +1586,7 @@ class CrisprFieldDirective {
1586
1586
  }
1587
1587
  set value(value) {
1588
1588
  this._value = value;
1589
+ // This is needed to keep the group list from resetting control values to the initial input value
1589
1590
  this.updateComponentValue(value);
1590
1591
  }
1591
1592
  ;
@@ -1621,9 +1622,9 @@ class CrisprFieldDirective {
1621
1622
  });
1622
1623
  }
1623
1624
  updateComponentValue(value) {
1624
- if (this.component && isControlComponent(this.component)) {
1625
+ if (isControlComponent(this.component)) {
1625
1626
  this.component.value = value;
1626
- // SubGroups won't populate without this
1627
+ // SubGroups won't populate without this detectChanges
1627
1628
  this.cdr.detectChanges();
1628
1629
  }
1629
1630
  }
@@ -1734,6 +1735,11 @@ class FormGroupListComponent extends FormGroupListMixin {
1734
1735
  super();
1735
1736
  this.cdr = cdr;
1736
1737
  this.defaultConfig = defaultConfig;
1738
+ /**
1739
+ * By setting this to true when adding/removing items from array,
1740
+ * we can block original values from overwriting form values
1741
+ * */
1742
+ this.blockValue = false;
1737
1743
  }
1738
1744
  ngOnInit() {
1739
1745
  super.ngOnInit();
@@ -1758,6 +1764,14 @@ class FormGroupListComponent extends FormGroupListMixin {
1758
1764
  });
1759
1765
  }
1760
1766
  }
1767
+ clickDelete(index) {
1768
+ this.blockValue = true;
1769
+ this.deleteGroup(index);
1770
+ }
1771
+ clickAdd() {
1772
+ this.blockValue = true;
1773
+ this.addGroup();
1774
+ }
1761
1775
  addGroup(value = null) {
1762
1776
  this.control.push(createControlForType(this.config.itemConfig, value));
1763
1777
  // needed to ensure new array items render
@@ -1770,10 +1784,10 @@ class FormGroupListComponent extends FormGroupListMixin {
1770
1784
  }
1771
1785
  }
1772
1786
  FormGroupListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: FormGroupListComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
1773
- FormGroupListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: FormGroupListComponent, selector: "crispr-form-group-list", usesInheritance: true, ngImport: i0, template: "\n<crispr-field-container\n [config]=\"config\"\n [group]=\"group\"\n [formGroup]=\"group\">\n\n <div [formArrayName]=\"config.controlName\">\n <!-- Don't add trackBy function, it confuses the state of the array -->\n <div *ngFor=\"let control of control?.controls; let i = index\">\n <!-- TODO: use content projection to allow custom item label component -->\n <div class=\"item-header\">\n <span class=\"mat-h2\"> {{ config.itemLabelBuilder ? config.itemLabelBuilder(i) : 'Item ' + (i + 1) }} </span>\n <button\n mat-icon-button\n type=\"button\"\n *ngIf=\"i + 1 > config.minListLength\">\n <mat-icon (click)=\"deleteGroup(i)\">delete</mat-icon>\n </button>\n </div>\n <div\n [formGroupName]=\"i\">\n <ng-container\n *ngFor=\"let field of config.itemConfig.fields;\"\n crisprField\n [config]=\"field\"\n [value]=\"control.value | initialControlValue : field\"\n [group]=\"control\">\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"group-footer\">\n <button\n type=\"button\"\n class=\"add\"\n mat-raised-button\n [color]=\"config.addButtonColor\"\n (click)=\"addGroup()\">\n {{config.addItemLabel || config.addButtonLabel}}\n </button>\n </div>\n\n</crispr-field-container>\n", styles: [".item-header{display:flex;justify-content:space-between}.group-footer{display:flex;justify-content:flex-end}.group-footer button.add{margin-bottom:16px}\n"], components: [{ type: FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }, { type: i1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i4$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }, { type: i4$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: CrisprFieldDirective, selector: "[crisprField]", inputs: ["config", "group", "value"] }], pipes: { "initialControlValue": InitialControlValuePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
1787
+ FormGroupListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: FormGroupListComponent, selector: "crispr-form-group-list", usesInheritance: true, ngImport: i0, template: "\n<crispr-field-container\n [config]=\"config\"\n [group]=\"group\"\n [formGroup]=\"group\">\n\n <div [formArrayName]=\"config.controlName\">\n <!-- Don't add trackBy function, it confuses the state of the array -->\n <div *ngFor=\"let con of control?.controls; let i = index;\">\n <!-- TODO: use content projection to allow custom item label component -->\n <div class=\"item-header\">\n <span class=\"mat-h2\"> {{ config.itemLabelBuilder ? config.itemLabelBuilder(i) : 'Item ' + (i + 1) }} </span>\n <button\n mat-icon-button\n type=\"button\"\n *ngIf=\"i + 1 > config.minListLength\">\n <mat-icon (click)=\"clickDelete(i)\">delete</mat-icon>\n </button>\n </div>\n <div\n [formGroup]=\"con\">\n <!-- TODO: if chiplists didn't need to have labels mixed in with their values we could use [value]=\"control.value\" below -->\n <ng-container\n *ngFor=\"let field of config.itemConfig.fields;\"\n crisprField\n [value]=\"blockValue ? null : value && value[i] | initialControlValue : field\"\n [config]=\"field\"\n [group]=\"con\">\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"group-footer\">\n <button\n type=\"button\"\n class=\"add\"\n mat-raised-button\n [color]=\"config.addButtonColor\"\n (click)=\"clickAdd()\">\n {{config.addItemLabel || config.addButtonLabel}}\n </button>\n </div>\n\n</crispr-field-container>\n", styles: [".item-header{display:flex;justify-content:space-between}.group-footer{display:flex;justify-content:flex-end}.group-footer button.add{margin-bottom:16px}\n"], components: [{ type: FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }, { type: i1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i4$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }, { type: i4$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: CrisprFieldDirective, selector: "[crisprField]", inputs: ["config", "group", "value"] }], pipes: { "initialControlValue": InitialControlValuePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
1774
1788
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: FormGroupListComponent, decorators: [{
1775
1789
  type: Component,
1776
- args: [{ selector: 'crispr-form-group-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "\n<crispr-field-container\n [config]=\"config\"\n [group]=\"group\"\n [formGroup]=\"group\">\n\n <div [formArrayName]=\"config.controlName\">\n <!-- Don't add trackBy function, it confuses the state of the array -->\n <div *ngFor=\"let control of control?.controls; let i = index\">\n <!-- TODO: use content projection to allow custom item label component -->\n <div class=\"item-header\">\n <span class=\"mat-h2\"> {{ config.itemLabelBuilder ? config.itemLabelBuilder(i) : 'Item ' + (i + 1) }} </span>\n <button\n mat-icon-button\n type=\"button\"\n *ngIf=\"i + 1 > config.minListLength\">\n <mat-icon (click)=\"deleteGroup(i)\">delete</mat-icon>\n </button>\n </div>\n <div\n [formGroupName]=\"i\">\n <ng-container\n *ngFor=\"let field of config.itemConfig.fields;\"\n crisprField\n [config]=\"field\"\n [value]=\"control.value | initialControlValue : field\"\n [group]=\"control\">\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"group-footer\">\n <button\n type=\"button\"\n class=\"add\"\n mat-raised-button\n [color]=\"config.addButtonColor\"\n (click)=\"addGroup()\">\n {{config.addItemLabel || config.addButtonLabel}}\n </button>\n </div>\n\n</crispr-field-container>\n", styles: [".item-header{display:flex;justify-content:space-between}.group-footer{display:flex;justify-content:flex-end}.group-footer button.add{margin-bottom:16px}\n"] }]
1790
+ args: [{ selector: 'crispr-form-group-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "\n<crispr-field-container\n [config]=\"config\"\n [group]=\"group\"\n [formGroup]=\"group\">\n\n <div [formArrayName]=\"config.controlName\">\n <!-- Don't add trackBy function, it confuses the state of the array -->\n <div *ngFor=\"let con of control?.controls; let i = index;\">\n <!-- TODO: use content projection to allow custom item label component -->\n <div class=\"item-header\">\n <span class=\"mat-h2\"> {{ config.itemLabelBuilder ? config.itemLabelBuilder(i) : 'Item ' + (i + 1) }} </span>\n <button\n mat-icon-button\n type=\"button\"\n *ngIf=\"i + 1 > config.minListLength\">\n <mat-icon (click)=\"clickDelete(i)\">delete</mat-icon>\n </button>\n </div>\n <div\n [formGroup]=\"con\">\n <!-- TODO: if chiplists didn't need to have labels mixed in with their values we could use [value]=\"control.value\" below -->\n <ng-container\n *ngFor=\"let field of config.itemConfig.fields;\"\n crisprField\n [value]=\"blockValue ? null : value && value[i] | initialControlValue : field\"\n [config]=\"field\"\n [group]=\"con\">\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"group-footer\">\n <button\n type=\"button\"\n class=\"add\"\n mat-raised-button\n [color]=\"config.addButtonColor\"\n (click)=\"clickAdd()\">\n {{config.addItemLabel || config.addButtonLabel}}\n </button>\n </div>\n\n</crispr-field-container>\n", styles: [".item-header{display:flex;justify-content:space-between}.group-footer{display:flex;justify-content:flex-end}.group-footer button.add{margin-bottom:16px}\n"] }]
1777
1791
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; } });
1778
1792
 
1779
1793
  class CrisprPipesModule {