@tft/crispr-forms 13.0.17 → 13.0.20

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=
@@ -49,10 +49,6 @@ export class ImageUploadFieldComponent extends ImageUploadFieldMixin {
49
49
  minCompressionThresholdMb: .6,
50
50
  useWebWorker: true,
51
51
  };
52
- /**
53
- * The url mapped from initial input value, consumers can us mapInputValueToUrl in config to transform their input value into a src url for the image element
54
- */
55
- // inputValueUrl: string | undefined;
56
52
  this.inputImageFileSubject = new Subject();
57
53
  this.inputImageFile$ = this.inputImageFileSubject.asObservable().pipe(shareReplay(1));
58
54
  this.compressedFile$ = this.inputImageFile$.pipe(switchMap(async (file) => {
@@ -114,7 +110,6 @@ export class ImageUploadFieldComponent extends ImageUploadFieldMixin {
114
110
  }
115
111
  ngOnInit() {
116
112
  super.ngOnInit();
117
- // this.inputValueUrl = this.value && this.config.mapInputValueToUrl?.(this.value) || this.value;
118
113
  this.imageSrcUrl$ = combineLatest([
119
114
  this.compressedImageUrlString$.pipe(startWith(null)),
120
115
  this.control.valueChanges.pipe(startWith(this.value), map((controlValue) => {
@@ -247,4 +242,24 @@ export function allowedFileExtValidator(allowedFileExtensions, onlyAllowFiles =
247
242
  return { allowedExtension: { allowedFileExtensions, actualExtension } };
248
243
  };
249
244
  }
250
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtdXBsb2FkLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvbWF0ZXJpYWwvaW1hZ2UtdXBsb2FkLWZpZWxkL2ltYWdlLXVwbG9hZC1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL21hdGVyaWFsL2ltYWdlLXVwbG9hZC1maWVsZC9pbWFnZS11cGxvYWQtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFNBQVMsRUFFVCx1QkFBdUIsRUFDdkIsUUFBUSxFQUNSLElBQUksRUFDSixpQkFBaUIsRUFDakIsUUFBUSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBcUMsU0FBUyxFQUFFLG1CQUFtQixFQUFpQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2xJLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLGdCQUFnQixNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRXZGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7Ozs7Ozs7O0FBRTNFLE1BQU0scUJBQXFCLEdBQUcsa0JBQWtCLENBQXlCLG9CQUFvQixDQUFDLENBQUM7QUFRL0YsTUFBTSxPQUFPLHlCQUEwQixTQUFRLHFCQUFxQjtJQW9HbEUsWUFDNkIsU0FBb0IsRUFDdkMsWUFBMEIsRUFDMUIsR0FBc0I7UUFFOUIsS0FBSyxFQUFFLENBQUM7UUFKbUIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUN2QyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQW5HaEMsa0JBQWEsR0FBb0M7WUFDL0MsNkJBQTZCO1lBQzdCLGFBQWEsRUFBRSxTQUFTO1lBQ3hCLFlBQVksRUFBRSxnQkFBZ0I7WUFDOUIscUJBQXFCLEVBQUUsUUFBUTtZQUMvQixnQkFBZ0IsRUFBRSxRQUFRO1lBQzFCLG9CQUFvQixFQUFFLElBQUk7WUFDMUIsb0JBQW9CLEVBQUUsT0FBTztZQUM3QixvQkFBb0IsRUFBRSxPQUFPO1lBQzdCLGtCQUFrQixFQUFFLE9BQU87WUFDM0IsYUFBYSxFQUFFLEtBQUs7WUFDcEIsK0JBQStCLEVBQUUsRUFBRTtZQUNuQyx5QkFBeUIsRUFBRSxFQUFFO1lBQzdCLFlBQVksRUFBRSxJQUFJO1NBQ25CLENBQUE7UUFFRDs7V0FFRztRQUNILHFDQUFxQztRQUU3QiwwQkFBcUIsR0FBRyxJQUFJLE9BQU8sRUFBZSxDQUFDO1FBQzNELG9CQUFlLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FDOUQsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7UUFNRixvQkFBZSxHQUFxQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FDM0QsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUN2QixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLFlBQVksSUFBSSxDQUFDO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBQ2xELE1BQU0sRUFBRSxhQUFhLEVBQUUsK0JBQStCLEVBQUUseUJBQXlCLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUNsSSxNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0MsTUFBTSxjQUFjLEdBQUcsYUFBYTttQkFDL0IsK0JBQStCLEdBQUcsVUFBVTttQkFDNUMseUJBQXlCLEdBQUcsVUFBVSxDQUFBO1lBQzNDLElBQUksY0FBYyxFQUFFO2dCQUNsQixNQUFNLE9BQU8sR0FBRztvQkFDZCwyRUFBMkU7b0JBQzNFLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBQyxnQkFBZ0IsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSwrQkFBK0IsRUFBQyxDQUFDO29CQUMxRixZQUFZO29CQUNaLGFBQWEsRUFBRSxFQUFFO29CQUNqQixVQUFVLEVBQUUsQ0FBQyxRQUFnQixFQUFFLEVBQUU7d0JBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO3dCQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO29CQUMzQixDQUFDO2lCQUNGLENBQUE7Z0JBQ0QsT0FBTyxNQUFNLGdCQUFnQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQzthQUM5Qzs7Z0JBQU0sT0FBUSxJQUFJLENBQUM7UUFDdEIsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLENBQUMsY0FBb0IsRUFBRSxFQUFFO1lBQzNCLElBQUcsQ0FBQyxjQUFjO2dCQUFFLE9BQU8sY0FBYyxDQUFDO1lBQzFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxHQUFHLGNBQWMsQ0FBQTtZQUNuRCxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsY0FBYyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFFO2dCQUM5RCxJQUFJO2dCQUNKLFlBQVk7YUFDYixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDVCwyRkFBMkY7WUFDM0YsK0ZBQStGO1lBQy9GLElBQUksSUFBSSxFQUFFO2dCQUNSLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzdCO1lBQ0QsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDN0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDZCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUMzQixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUE7YUFDUjtRQUNILENBQUMsQ0FBQyxFQUNGLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFBO1FBRUQsOEJBQXlCLEdBQThCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUM5RSxTQUFTLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO1lBQ3ZCLElBQUcsQ0FBQyxJQUFJO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBQ3RCLE1BQU0scUJBQXFCLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM5RSxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsOEJBQThCLENBQUMscUJBQXFCLENBQVcsQ0FBQTtRQUMxRixDQUFDLENBQUMsRUFDRixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQTtRQVNELGVBQVUsR0FBRyxLQUFLLENBQUM7UUFVakIsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksRUFBRTtZQUMxQix3REFBd0Q7WUFDeEQsMERBQTBEO1lBQzFELFNBQVMsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsaUdBQWlHO1FBQ2pHLElBQUksQ0FBQyxZQUFZLEdBQUcsYUFBYSxDQUFDO1lBQ2hDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BELElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDNUIsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFDckIsR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFVLEVBQUU7Z0JBQzNCLElBQUcsQ0FBQyxZQUFZO29CQUFFLE9BQU8sSUFBSSxDQUFDO2dCQUM5QixJQUFHLFlBQVksWUFBWSxJQUFJO29CQUFFLE9BQU8sSUFBSSxDQUFDO2dCQUM3QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxZQUFzQixDQUFBO1lBQ2pGLENBQUMsQ0FBQyxDQUNIO1NBQ0YsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixFQUFFLFVBQVUsQ0FBQyxFQUFFLEVBQUU7WUFDN0MsT0FBTyx3QkFBd0IsSUFBSSxVQUFVLElBQUksSUFBSSxDQUFDO1FBQ3hELENBQUMsQ0FBQyxDQUNILENBQUE7UUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCO1lBQzdDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUN2RCxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFlO1FBQzFCLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFHO1lBQzlCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQixvRUFBb0U7WUFDcEUsb0RBQW9EO1lBQ3BELElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlCLGdHQUFnRztZQUNoRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDNUM7SUFDSCxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQTtRQUMxQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxZQUFvQjtRQUN0QyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQ3JDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFFRCxVQUFVLENBQUUsS0FBVyxJQUFLLENBQUM7SUFFN0IsZ0JBQWdCLENBQUUsRUFBYztRQUM5QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUUsRUFBYyxJQUFLLENBQUM7O3NIQXhLNUIseUJBQXlCOzBHQUF6Qix5QkFBeUIsbU1DckN0QyxpMkZBdUZBOzJGRGxEYSx5QkFBeUI7a0JBTnJDLFNBQVM7K0JBQ0UsMkJBQTJCLG1CQUdwQix1QkFBdUIsQ0FBQyxNQUFNOzswQkF1RzVDLFFBQVE7OzBCQUFJLElBQUk7dUdBVEssWUFBWTtzQkFBbkMsU0FBUzt1QkFBQyxXQUFXOztBQWtHeEIsTUFBTSxPQUFPLHNCQUFzQjs7bUhBQXRCLHNCQUFzQjtvSEFBdEIsc0JBQXNCLGlCQTlMdEIseUJBQXlCLGFBNEtsQyxZQUFZO1FBQ1osb0JBQW9CO1FBQ3BCLG1CQUFtQjtRQUNuQixhQUFhO1FBQ2IsZUFBZTtRQUNmLGtCQUFrQjtRQUNsQixjQUFjO1FBQ2Qsa0JBQWtCO1FBQ2xCLHFCQUFxQjtRQUNyQiwyQkFBMkIsYUFyTGxCLHlCQUF5QjtvSEE4THpCLHNCQUFzQixZQW5CeEI7WUFDUCxZQUFZO1lBQ1osb0JBQW9CO1lBQ3BCLG1CQUFtQjtZQUNuQixhQUFhO1lBQ2IsZUFBZTtZQUNmLGtCQUFrQjtZQUNsQixjQUFjO1lBQ2Qsa0JBQWtCO1lBQ2xCLHFCQUFxQjtZQUNyQiwyQkFBMkI7U0FDNUI7MkZBUVUsc0JBQXNCO2tCQXBCbEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxrQkFBa0I7d0JBQ2xCLHFCQUFxQjt3QkFDckIsMkJBQTJCO3FCQUM1QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wseUJBQXlCO3FCQUM1QjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1YseUJBQXlCO3FCQUM1QjtpQkFDRjs7QUFHRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsV0FBbUI7SUFDdEQsT0FBTyxDQUFDLE9BQW9CLEVBQTJCLEVBQUU7UUFDdkQsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUNuQyxJQUFJLENBQUMsQ0FBQyxZQUFZLFlBQVksSUFBSSxDQUFDLEVBQUU7WUFDbkMsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE1BQU0sY0FBYyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRSxJQUFJLFdBQVcsR0FBRyxjQUFjO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDOUMsT0FBTyxFQUFDLFdBQVcsRUFBRSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsRUFBQyxDQUFDO0lBQ3hELENBQUMsQ0FBQTtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsdUJBQXVCLENBQUMscUJBQStCLEVBQUUsY0FBYyxHQUFHLElBQUk7SUFDNUYsT0FBTyxDQUFDLE9BQW9CLEVBQTJCLEVBQUU7UUFDdkQsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUNuQyxNQUFNLE1BQU0sR0FBRyxZQUFZLFlBQVksSUFBSSxDQUFDO1FBQzVDLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDNUMsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7UUFDdkcsTUFBTSxrQkFBa0IsR0FBRyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDM0UsSUFBRyxrQkFBa0IsRUFBRTtZQUNyQixPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsT0FBTyxFQUFDLGdCQUFnQixFQUFFLEVBQUUscUJBQXFCLEVBQUUsZUFBZSxFQUFFLEVBQUMsQ0FBQztJQUN4RSxDQUFDLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgVmlld0NoaWxkLFxuICBPbkluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBPcHRpb25hbCxcbiAgU2VsZixcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIE5nTW9kdWxlXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBOZ0NvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCBpbWFnZUNvbXByZXNzaW9uIGZyb20gJ2Jyb3dzZXItaW1hZ2UtY29tcHJlc3Npb24nO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGaWxlVXBsb2FkRmllbGRNb2R1bGUgfSBmcm9tICcuLi9maWxlLXVwbG9hZCc7XG5pbXBvcnQgeyBjcmlzcHJDb250cm9sTWl4aW4sIENyaXNwckZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYWJzdHJhY3RzJztcbmltcG9ydCB7IEZpZWxkQ29udGFpbmVyTW9kdWxlIH0gZnJvbSAnLi4vLi4vZmllbGQtY29udGFpbmVyL2ZpZWxkLWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHR5cGUgeyBJbWFnZVVwbG9hZEZpZWxkQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ltYWdlLXVwbG9hZC1maWVsZC5jb25maWcnO1xuaW1wb3J0IHsgY29udmVydEJ5dGVzVG9NYiB9IGZyb20gJy4vaW1hZ2UtY29tcHJlc3Npb24uaGVscGVycyc7XG5pbXBvcnQgeyBTZWxlY3RlZEZpbGVNb2R1bGUgfSBmcm9tICcuLi9zZWxlY3RlZC1maWxlL3NlbGVjdGVkLWZpbGUuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1WYWxpZGF0aW9uSGFuZGxlck1vZHVsZSB9IGZyb20gJ0B0ZnQvZm9ybS12YWxpZGF0aW9uLWhhbmRsZXInO1xuXG5jb25zdCBJbWFnZVVwbG9hZEZpZWxkTWl4aW4gPSBjcmlzcHJDb250cm9sTWl4aW48SW1hZ2VVcGxvYWRGaWVsZENvbmZpZz4oQ3Jpc3ByRmllbGRDb21wb25lbnQpO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcmlzcHItaW1hZ2UtdXBsb2FkLWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLXVwbG9hZC1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ltYWdlLXVwbG9hZC1maWVsZC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgSW1hZ2VVcGxvYWRGaWVsZENvbXBvbmVudCBleHRlbmRzIEltYWdlVXBsb2FkRmllbGRNaXhpbiBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gIG9uQ2hhbmdlOiAoKSA9PiB2b2lkO1xuXG4gIGRlZmF1bHRDb25maWc6IFBhcnRpYWw8SW1hZ2VVcGxvYWRGaWVsZENvbmZpZz4gPSB7XG4gICAgLy8gYWxsb3dNdWx0aXBsZUZpbGVzOiBmYWxzZSxcbiAgICBhY2NlcHRlZFR5cGVzOiAnaW1hZ2UvKicsXG4gICAgZHJvcFpvbmVUZXh0OiAnRFJPUCBGSUxFIEhFUkUnLFxuICAgIHNlbGVjdEZpbGVzQnV0dG9uVHlwZTogJ2J1dHRvbicsXG4gICAgc2VsZWN0QnV0dG9uVGV4dDogJ1NFTEVDVCcsXG4gICAgc2hvd0NsZWFyRmlsZXNCdXR0b246IHRydWUsXG4gICAgY2xlYXJGaWxlc0J1dHRvblRleHQ6ICdDTEVBUicsXG4gICAgcmVzZXRGaWxlc0J1dHRvblRleHQ6ICdSRVNFVCcsXG4gICAgaW1hZ2VQcmV2aWV3SGVpZ2h0OiAnMjUwcHgnLFxuICAgIGNvbXByZXNzSW1hZ2U6IGZhbHNlLFxuICAgIHRhcmdldENvbXByZXNzZWRJbWFnZUZpbGVTaXplTWI6IC40LFxuICAgIG1pbkNvbXByZXNzaW9uVGhyZXNob2xkTWI6IC42LFxuICAgIHVzZVdlYldvcmtlcjogdHJ1ZSxcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdXJsIG1hcHBlZCBmcm9tIGluaXRpYWwgaW5wdXQgdmFsdWUsIGNvbnN1bWVycyBjYW4gdXMgbWFwSW5wdXRWYWx1ZVRvVXJsIGluIGNvbmZpZyB0byB0cmFuc2Zvcm0gdGhlaXIgaW5wdXQgdmFsdWUgaW50byBhIHNyYyB1cmwgZm9yIHRoZSBpbWFnZSBlbGVtZW50XG4gICAqL1xuICAvLyBpbnB1dFZhbHVlVXJsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBpbnB1dEltYWdlRmlsZVN1YmplY3QgPSBuZXcgU3ViamVjdDxGaWxlIHwgbnVsbD4oKTtcbiAgaW5wdXRJbWFnZUZpbGUkID0gdGhpcy5pbnB1dEltYWdlRmlsZVN1YmplY3QuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICBzaGFyZVJlcGxheSgxKSxcbiAgKTtcbiAgLyoqXG4gICAqIHRoZSBjb21wcmVzc2lvbiBwcm9ncmVzc1xuICAgKi9cbiAgcHJvZ3Jlc3M6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICBjb21wcmVzc2VkRmlsZSQ6IE9ic2VydmFibGU8RmlsZT4gPSB0aGlzLmlucHV0SW1hZ2VGaWxlJC5waXBlKFxuICAgIHN3aXRjaE1hcChhc3luYyAoZmlsZSkgPT4ge1xuICAgICAgaWYgKCFmaWxlIHx8ICEoZmlsZSBpbnN0YW5jZW9mIEZpbGUpKSByZXR1cm4gbnVsbDtcbiAgICAgIGNvbnN0IHsgY29tcHJlc3NJbWFnZSwgdGFyZ2V0Q29tcHJlc3NlZEltYWdlRmlsZVNpemVNYiwgbWluQ29tcHJlc3Npb25UaHJlc2hvbGRNYiwgbWF4V2lkdGhPckhlaWdodCwgdXNlV2ViV29ya2VyIH0gPSB0aGlzLmNvbmZpZztcbiAgICAgIGNvbnN0IGZpbGVTaXplTWIgPSBjb252ZXJ0Qnl0ZXNUb01iKGZpbGUuc2l6ZSk7XG4gICAgICBjb25zdCBzaG91bGRDb21wcmVzcyA9IGNvbXByZXNzSW1hZ2VcbiAgICAgICAgJiYgdGFyZ2V0Q29tcHJlc3NlZEltYWdlRmlsZVNpemVNYiA8IGZpbGVTaXplTWJcbiAgICAgICAgJiYgbWluQ29tcHJlc3Npb25UaHJlc2hvbGRNYiA8IGZpbGVTaXplTWJcbiAgICAgIGlmIChzaG91bGRDb21wcmVzcykge1xuICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgIC8vIFVzZSBtYXhXaWR0aE9ySGVpZ2h0IGlmIGl0IHdhcyBwcm92aWRlZCwgZWxzZSB1c2UgdGFyZ2V0IGNvbXByZXNzZWQgc2l6ZVxuICAgICAgICAgIC4uLihtYXhXaWR0aE9ySGVpZ2h0ID8ge21heFdpZHRoT3JIZWlnaHR9IDogeyBtYXhTaXplTUI6IHRhcmdldENvbXByZXNzZWRJbWFnZUZpbGVTaXplTWJ9KSxcbiAgICAgICAgICB1c2VXZWJXb3JrZXIsXG4gICAgICAgICAgbWF4SXRlcmF0aW9uczogMzAsXG4gICAgICAgICAgb25Qcm9ncmVzczogKHByb2dyZXNzOiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIHRoaXMucHJvZ3Jlc3MgPSBwcm9ncmVzcztcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGF3YWl0IGltYWdlQ29tcHJlc3Npb24oZmlsZSwgb3B0aW9ucyk7XG4gICAgICB9IGVsc2UgcmV0dXJuICBmaWxlO1xuICAgIH0pLFxuICAgIG1hcCgoY29tcHJlc3NlZEZpbGU6IEZpbGUpID0+IHtcbiAgICAgIGlmKCFjb21wcmVzc2VkRmlsZSkgcmV0dXJuIGNvbXByZXNzZWRGaWxlO1xuICAgICAgY29uc3QgeyB0eXBlLCBuYW1lLCBsYXN0TW9kaWZpZWQgfSA9IGNvbXByZXNzZWRGaWxlXG4gICAgICByZXR1cm4gbmV3IEZpbGUoW2NvbXByZXNzZWRGaWxlXSwgdGhpcy5jb25maWcuZmlsZU5hbWUgfHwgbmFtZSwge1xuICAgICAgICB0eXBlLFxuICAgICAgICBsYXN0TW9kaWZpZWRcbiAgICAgIH0pO1xuICAgIH0pLFxuICAgIHRhcChmaWxlID0+IHtcbiAgICAgIC8vIG9ubHkgc2V0IHRoZSB2YWx1ZSBpZiB0aGVyZSBpcyBhIGZpbGUgYmVjYXVzZSByZXNldFRvSW5pdGlhbFZhbHVlIHNldHMgdGhlIGNvbnRyb2wgdmFsdWVcbiAgICAgIC8vIHRvIGluaXRpYWwgdmFsdWUgYW5kIGNsZWFycyB0aGUgY29tcHJlc3NlZCBpbWFnZSwgc28gc2V0dGluZyBpdCB0byBudWxsIGhlcmUgd291bGQgdW5kbyB0aGF0XG4gICAgICBpZiAoZmlsZSkge1xuICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoZmlsZSk7XG4gICAgICB9XG4gICAgICBpZiAoZmlsZSB8fCB0aGlzLnZhbHVlKSB7XG4gICAgICAgIHRoaXMuY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSwgMTAwKVxuICAgICAgfVxuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gIClcblxuICBjb21wcmVzc2VkSW1hZ2VVcmxTdHJpbmckOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bGw+ID0gdGhpcy5jb21wcmVzc2VkRmlsZSQucGlwZShcbiAgICBzd2l0Y2hNYXAoYXN5bmMgKGZpbGUpID0+IHtcbiAgICAgIGlmKCFmaWxlKSByZXR1cm4gbnVsbDtcbiAgICAgIGNvbnN0IGNvbXByZXNzZWRTdHJpbmdJbWFnZSA9IGF3YWl0IGltYWdlQ29tcHJlc3Npb24uZ2V0RGF0YVVybEZyb21GaWxlKGZpbGUpO1xuICAgICAgcmV0dXJuIHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybChjb21wcmVzc2VkU3RyaW5nSW1hZ2UpIGFzIHN0cmluZ1xuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpLFxuICApXG5cbiAgLy8gVGhpcyBpcyB3aGF0IGlzIGRpc3BsYXllZCBieSB0aGUgaW1hZ2UgcHJldmlld1xuICBpbWFnZVNyY1VybCQ6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVsbD47XG5cbiAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JykgZmlsZUlucHV0UmVmOiBFbGVtZW50UmVmXG5cbiAgc2VsZWN0ZWRGaWxlczogRmlsZUxpc3Q7XG5cbiAgaXNVcGxvYWRlZCA9IGZhbHNlO1xuXG4gIGRpc2FibGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICBwcml2YXRlIGRvbVNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wgIT0gbnVsbCkge1xuICAgICAgLy8gU2V0dGluZyB0aGUgdmFsdWUgYWNjZXNzb3IgZGlyZWN0bHkgKGluc3RlYWQgb2YgdXNpbmdcbiAgICAgIC8vIHRoZSBwcm92aWRlcnMpIHRvIGF2b2lkIHJ1bm5pbmcgaW50byBhIGNpcmN1bGFyIGltcG9ydC5cbiAgICAgIG5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIC8vIHRoaXMuaW5wdXRWYWx1ZVVybCA9IHRoaXMudmFsdWUgJiYgdGhpcy5jb25maWcubWFwSW5wdXRWYWx1ZVRvVXJsPy4odGhpcy52YWx1ZSkgfHwgdGhpcy52YWx1ZTtcbiAgICB0aGlzLmltYWdlU3JjVXJsJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5jb21wcmVzc2VkSW1hZ2VVcmxTdHJpbmckLnBpcGUoc3RhcnRXaXRoKG51bGwpKSxcbiAgICAgIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKHRoaXMudmFsdWUpLFxuICAgICAgICBtYXAoKGNvbnRyb2xWYWx1ZSk6IHN0cmluZyA9PiB7XG4gICAgICAgICAgaWYoIWNvbnRyb2xWYWx1ZSkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgaWYoY29udHJvbFZhbHVlIGluc3RhbmNlb2YgRmlsZSkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLm1hcElucHV0VmFsdWVUb1VybD8uKGNvbnRyb2xWYWx1ZSkgfHwgY29udHJvbFZhbHVlIGFzIHN0cmluZ1xuICAgICAgICB9KVxuICAgICAgKVxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtjb21wcmVzc2VkSW1hZ2VVcmxTdHJpbmcsIGNvbnRyb2xVcmxdKSA9PiB7XG4gICAgICAgIHJldHVybiBjb21wcmVzc2VkSW1hZ2VVcmxTdHJpbmcgfHwgY29udHJvbFVybCB8fCBudWxsO1xuICAgICAgfSlcbiAgICApXG4gICAgdGhpcy5kaXNhYmxlZCQgPSB0aGlzLmNvbmZpZy5kaXNhYmxlZENhbGxiYWNrXG4gICAgPyB0aGlzLmNvbmZpZy5kaXNhYmxlZENhbGxiYWNrKHRoaXMuZ3JvdXAsIHRoaXMuY29uZmlnKVxuICAgIDogb2YoZmFsc2UpO1xuICB9XG5cbiAgZmlsZXNDaGFuZ2VkKGZpbGVzOiBGaWxlTGlzdCk6IHZvaWQge1xuICAgIGlmIChmaWxlcyAmJiBmaWxlcy5sZW5ndGggPiAwICkge1xuICAgICAgY29uc3QgaW1hZ2VGaWxlID0gZmlsZXNbMF07XG4gICAgICAvLyBXZSBjbGVhciB0aGUgY29udHJvbCBoZXJlIHNvIHRoYXQgaXQgaXMgaW52YWxpZCB3aGlsZSBjb21wcmVzc2luZ1xuICAgICAgLy8gdGhlIGlucHV0IHBpcGVsaW5lIHdpbGwgdGFrZSBjYXJlIG9mIHJlc2V0dGluZyBpdFxuICAgICAgdGhpcy5jb250cm9sLnBhdGNoVmFsdWUobnVsbCk7XG4gICAgICAvLyB0aGlzLmNvbnRyb2wuc2V0RXJyb3JzKHtjb21wcmVzc2luZzoge2xvYWRpbmdNZXNzYWdlOiAnUGxlYXNlIHdhaXQgd2hpbGUgZmlsZSBjb21wcmVzc2VzJ319KTtcbiAgICAgIHRoaXMuY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICB0aGlzLmlucHV0SW1hZ2VGaWxlU3ViamVjdC5uZXh0KGltYWdlRmlsZSk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXJGaWxlSW5wdXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dEltYWdlRmlsZVN1YmplY3QubmV4dChudWxsKTtcbiAgICB0aGlzLmZpbGVJbnB1dFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gJydcbiAgICB0aGlzLmNvbnRyb2wucGF0Y2hWYWx1ZShudWxsKTtcbiAgICB0aGlzLmNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgIHRoaXMuaXNVcGxvYWRlZCA9IGZhbHNlO1xuICB9XG5cbiAgcmVzZXRUb0luaXRpYWxWYWx1ZShpbml0aWFsVmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRJbWFnZUZpbGVTdWJqZWN0Lm5leHQobnVsbCk7XG4gICAgdGhpcy5jb250cm9sLnBhdGNoVmFsdWUoaW5pdGlhbFZhbHVlKVxuICAgIHRoaXMuaXNVcGxvYWRlZCA9IGZhbHNlO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSggdmFsdWU6IG51bGwgKSB7IH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKCBmbjogKCkgPT4gdm9pZCApIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZCggZm46ICgpID0+IHZvaWQgKSB7IH1cbn1cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRmllbGRDb250YWluZXJNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgU2VsZWN0ZWRGaWxlTW9kdWxlLFxuICAgIEZpbGVVcGxvYWRGaWVsZE1vZHVsZSxcbiAgICBGb3JtVmFsaWRhdGlvbkhhbmRsZXJNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgICAgSW1hZ2VVcGxvYWRGaWVsZENvbXBvbmVudFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgIEltYWdlVXBsb2FkRmllbGRDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBJbWFnZVVwbG9hZEZpZWxkTW9kdWxlIHsgfVxuXG5leHBvcnQgZnVuY3Rpb24gbWF4RmlsZVNpemVWYWxpZGF0b3IobWF4RmlsZVNpemU6IG51bWJlcik6IFZhbGlkYXRvckZuIHtcbiAgcmV0dXJuIChjb250cm9sOiBGb3JtQ29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICBjb25zdCBjb250cm9sVmFsdWUgPSBjb250cm9sLnZhbHVlO1xuICAgIGlmICghKGNvbnRyb2xWYWx1ZSBpbnN0YW5jZW9mIEZpbGUpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgYWN0dWFsRmlsZVNpemUgPSArY29udmVydEJ5dGVzVG9NYihjb250cm9sVmFsdWUuc2l6ZSkudG9QcmVjaXNpb24oMyk7XG4gICAgaWYgKG1heEZpbGVTaXplID4gYWN0dWFsRmlsZVNpemUpIHJldHVybiBudWxsO1xuICAgIHJldHVybiB7bWF4RmlsZVNpemU6IHsgbWF4RmlsZVNpemUsIGFjdHVhbEZpbGVTaXplIH19O1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhbGxvd2VkRmlsZUV4dFZhbGlkYXRvcihhbGxvd2VkRmlsZUV4dGVuc2lvbnM6IHN0cmluZ1tdLCBvbmx5QWxsb3dGaWxlcyA9IHRydWUpOiBWYWxpZGF0b3JGbiB7XG4gIHJldHVybiAoY29udHJvbDogRm9ybUNvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgY29uc3QgY29udHJvbFZhbHVlID0gY29udHJvbC52YWx1ZTtcbiAgICBjb25zdCBpc0ZpbGUgPSBjb250cm9sVmFsdWUgaW5zdGFuY2VvZiBGaWxlO1xuICAgIGlmICghb25seUFsbG93RmlsZXMgJiYgIWlzRmlsZSkgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgYWN0dWFsRXh0ZW5zaW9uID0gaXNGaWxlID8gY29udHJvbFZhbHVlLm5hbWUuc3BsaXQoJy4nKS5wb3AoKS50b0xvY2FsZUxvd2VyQ2FzZSgpIDogJ05vdCBhIGZpbGUnO1xuICAgIGNvbnN0IGlzQWxsb3dlZEV4dGVuc2lvbiA9IGFsbG93ZWRGaWxlRXh0ZW5zaW9ucy5pbmNsdWRlcyhhY3R1YWxFeHRlbnNpb24pO1xuICAgIGlmKGlzQWxsb3dlZEV4dGVuc2lvbikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiB7YWxsb3dlZEV4dGVuc2lvbjogeyBhbGxvd2VkRmlsZUV4dGVuc2lvbnMsIGFjdHVhbEV4dGVuc2lvbiB9fTtcbiAgfVxufVxuIiwiPGNyaXNwci1maWVsZC1jb250YWluZXJcbiAgW2NvbmZpZ109XCJjb25maWdcIlxuICBbZ3JvdXBdPVwiZ3JvdXBcIj5cblxuICA8bWF0LWZvcm0tZmllbGQgZmxvYXRMYWJlbD1cImFsd2F5c1wiXG4gICAgW2NvbG9yXT1cImNvbmZpZy5jb2xvclwiXG4gICAgW2FwcGVhcmFuY2VdPVwiY29uZmlnLmFwcGVhcmFuY2VcIlxuICAgIFtmb3JtR3JvdXBdPVwiZ3JvdXBcIj5cbiAgICA8bWF0LWxhYmVsPnt7Y29uZmlnLmxhYmVsfX08L21hdC1sYWJlbD5cbiAgICA8aW5wdXQgW2Zvcm1Db250cm9sTmFtZV09XCJjb25maWcuY29udHJvbE5hbWVcIiBtYXRJbnB1dCB0eXBlPVwidGV4dFwiLz5cbiAgICA8aW5wdXRcbiAgICAgICNmaWxlSW5wdXRcbiAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgIFthY2NlcHRdPVwiY29uZmlnLmFjY2VwdGVkVHlwZXNcIlxuICAgICAgKGNoYW5nZSk9XCJmaWxlc0NoYW5nZWQoJGV2ZW50LnRhcmdldC5maWxlcylcIi8+XG4gICAgPGRpdiBjbGFzcz1cInVpLWNvbnRhaW5lclwiPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2UtcHJldmlld1wiIFtzdHlsZS5oZWlnaHRdPVwiY29uZmlnLmltYWdlUHJldmlld0hlaWdodFwiPlxuICAgICAgICA8Y3Jpc3ByLXNlbGVjdGVkLWZpbGVcbiAgICAgICAgICAqbmdJZj1cIihwcm9ncmVzcyA8IDEwMCkgJiYgaW5wdXRJbWFnZUZpbGUkIHwgYXN5bmMgYXMgZmlsZTsgZWxzZSBkcm9wem9uZU9yUHJldmlld1wiXG4gICAgICAgICAgW2NvbG9yXT1cImNvbmZpZy5jb2xvciA9PT0gJ3ByaW1hcnknID8gJ2FjY2VudCcgOiAncHJpbWFyeSdcIlxuICAgICAgICAgIFtmaWxlTmFtZV09XCInQ29tcHJlc3Npbmc6ICcgKyBmaWxlLm5hbWVcIlxuICAgICAgICAgIFtzaG93UHJvZ3Jlc3NdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Byb2dyZXNzXT1cInByb2dyZXNzXCI+XG4gICAgICAgIDwvY3Jpc3ByLXNlbGVjdGVkLWZpbGU+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNkcm9wem9uZU9yUHJldmlldz5cbiAgICAgICAgICA8IS0tIDxpbWcgKm5nSWY9XCIoaW5pdGlhbFVybFN0cmluZyQgfCBhc3luYykgYXMgaW5pdGlhbFVybFN0cmluZztcIiBbc3JjXT1cImluaXRpYWxVcmxTdHJpbmdcIiBhbHQ9XCJcIj4gLS0+XG4gICAgICAgICAgPGltZyAqbmdJZj1cImltYWdlU3JjVXJsJCB8IGFzeW5jIGFzIHNyY1VybDsgZWxzZSBub0ltYWdlXCIgW3NyY109XCJzcmNVcmxcIiBhbHQ9XCJcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI25vSW1hZ2U+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcC1jb250YWluZXJcIlxuICAgICAgICAgICAgICBbY3Jpc3ByRmlsZURyb3B6b25lXT1cIiEoZGlzYWJsZWQkIHwgYXN5bmMpXCJcbiAgICAgICAgICAgICAgKGZpbGVEcm9wKT1cImZpbGVzQ2hhbmdlZCgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImRyb3AtaWNvblwiIGlubGluZT1cInRydWVcIj5jbG91ZF91cGxvYWQ8L21hdC1pY29uPlxuICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJtYXQtaDJcIj57e2NvbmZpZy5kcm9wWm9uZVRleHR9fTwvaDI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cblxuXG5cbiAgICAgIDwhLS0gPC9uZy10ZW1wbGF0ZT4gLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWNvbnRhaW5lclwiICpuZ0lmPVwidHJ1ZVwiPlxuXG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICAgKGNsaWNrKT1cImNsZWFyRmlsZUlucHV0KClcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIoZGlzYWJsZWQkIHwgYXN5bmMpXCJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiUmVtb3ZlIFNlbGVjdGVkIEZpbGUocylcIj5cbiAgICAgICAgICA8bWF0LWljb24+ZGVsZXRlPC9tYXQtaWNvbj5cbiAgICAgICAgICB7e2NvbmZpZy5jbGVhckZpbGVzQnV0dG9uVGV4dH19XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAqbmdJZj1cInZhbHVlXCJcbiAgICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICAgKGNsaWNrKT1cInJlc2V0VG9Jbml0aWFsVmFsdWUodmFsdWUpXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiKGRpc2FibGVkJCB8IGFzeW5jKVwiXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIlJlbW92ZSBTZWxlY3RlZCBGaWxlKHMpXCI+XG4gICAgICAgICAgPG1hdC1pY29uPnJlcGxheTwvbWF0LWljb24+XG4gICAgICAgICAge3tjb25maWcucmVzZXRGaWxlc0J1dHRvblRleHR9fVxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIihkaXNhYmxlZCQgfCBhc3luYylcIlxuICAgICAgICAgIChjbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJjb25maWcuY29udHJvbE5hbWVcIj5cbiAgICAgICAgICA8bWF0LWljb24+XG4gICAgICAgICAgICBjYW1lcmFcbiAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgIFNFTEVDVFxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPG1hdC1oaW50ICpuZ0lmPVwiY29uZmlnLmhpbnQgJiYgKGNvbnRyb2wudmFsaWQgfHwgIWNvbnRyb2wudG91Y2hlZClcIj57e2NvbmZpZy5oaW50fX08L21hdC1oaW50PlxuXG4gIDwvbWF0LWZvcm0tZmllbGQ+XG5cbjwvY3Jpc3ByLWZpZWxkLWNvbnRhaW5lcj5cbiJdfQ==
245
+ export function allowedFileType(matchExp) {
246
+ return (formControl) => {
247
+ const value = formControl.value;
248
+ if (!(value instanceof File))
249
+ return null;
250
+ const type = value.type;
251
+ const matches = type.match(matchExp);
252
+ if (!type || !matches?.length) {
253
+ return {
254
+ allowedFileType: {
255
+ actualType: type,
256
+ allowedTypeExp: matchExp
257
+ }
258
+ };
259
+ }
260
+ else {
261
+ return null;
262
+ }
263
+ };
264
+ }
265
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtdXBsb2FkLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvbWF0ZXJpYWwvaW1hZ2UtdXBsb2FkLWZpZWxkL2ltYWdlLXVwbG9hZC1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL21hdGVyaWFsL2ltYWdlLXVwbG9hZC1maWVsZC9pbWFnZS11cGxvYWQtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFNBQVMsRUFFVCx1QkFBdUIsRUFDdkIsUUFBUSxFQUNSLElBQUksRUFDSixpQkFBaUIsRUFDakIsUUFBUSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBcUMsU0FBUyxFQUFFLG1CQUFtQixFQUFpQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2xJLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLGdCQUFnQixNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRXZGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7Ozs7Ozs7O0FBRTNFLE1BQU0scUJBQXFCLEdBQUcsa0JBQWtCLENBQXlCLG9CQUFvQixDQUFDLENBQUM7QUFRL0YsTUFBTSxPQUFPLHlCQUEwQixTQUFRLHFCQUFxQjtJQStGbEUsWUFDNkIsU0FBb0IsRUFDdkMsWUFBMEIsRUFDMUIsR0FBc0I7UUFFOUIsS0FBSyxFQUFFLENBQUM7UUFKbUIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUN2QyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQTlGaEMsa0JBQWEsR0FBb0M7WUFDL0MsNkJBQTZCO1lBQzdCLGFBQWEsRUFBRSxTQUFTO1lBQ3hCLFlBQVksRUFBRSxnQkFBZ0I7WUFDOUIscUJBQXFCLEVBQUUsUUFBUTtZQUMvQixnQkFBZ0IsRUFBRSxRQUFRO1lBQzFCLG9CQUFvQixFQUFFLElBQUk7WUFDMUIsb0JBQW9CLEVBQUUsT0FBTztZQUM3QixvQkFBb0IsRUFBRSxPQUFPO1lBQzdCLGtCQUFrQixFQUFFLE9BQU87WUFDM0IsYUFBYSxFQUFFLEtBQUs7WUFDcEIsK0JBQStCLEVBQUUsRUFBRTtZQUNuQyx5QkFBeUIsRUFBRSxFQUFFO1lBQzdCLFlBQVksRUFBRSxJQUFJO1NBQ25CLENBQUE7UUFFTywwQkFBcUIsR0FBRyxJQUFJLE9BQU8sRUFBZSxDQUFDO1FBQzNELG9CQUFlLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FDOUQsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7UUFNRixvQkFBZSxHQUFxQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FDM0QsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUN2QixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLFlBQVksSUFBSSxDQUFDO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBQ2xELE1BQU0sRUFBRSxhQUFhLEVBQUUsK0JBQStCLEVBQUUseUJBQXlCLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUNsSSxNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0MsTUFBTSxjQUFjLEdBQUcsYUFBYTttQkFDL0IsK0JBQStCLEdBQUcsVUFBVTttQkFDNUMseUJBQXlCLEdBQUcsVUFBVSxDQUFBO1lBQzNDLElBQUksY0FBYyxFQUFFO2dCQUNsQixNQUFNLE9BQU8sR0FBRztvQkFDZCwyRUFBMkU7b0JBQzNFLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBQyxnQkFBZ0IsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSwrQkFBK0IsRUFBQyxDQUFDO29CQUMxRixZQUFZO29CQUNaLGFBQWEsRUFBRSxFQUFFO29CQUNqQixVQUFVLEVBQUUsQ0FBQyxRQUFnQixFQUFFLEVBQUU7d0JBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO3dCQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO29CQUMzQixDQUFDO2lCQUNGLENBQUE7Z0JBQ0QsT0FBTyxNQUFNLGdCQUFnQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQzthQUM5Qzs7Z0JBQU0sT0FBUSxJQUFJLENBQUM7UUFDdEIsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLENBQUMsY0FBb0IsRUFBRSxFQUFFO1lBQzNCLElBQUcsQ0FBQyxjQUFjO2dCQUFFLE9BQU8sY0FBYyxDQUFDO1lBQzFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxHQUFHLGNBQWMsQ0FBQTtZQUNuRCxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsY0FBYyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFFO2dCQUM5RCxJQUFJO2dCQUNKLFlBQVk7YUFDYixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDVCwyRkFBMkY7WUFDM0YsK0ZBQStGO1lBQy9GLElBQUksSUFBSSxFQUFFO2dCQUNSLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzdCO1lBQ0QsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDN0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDZCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUMzQixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUE7YUFDUjtRQUNILENBQUMsQ0FBQyxFQUNGLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFBO1FBRUQsOEJBQXlCLEdBQThCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUM5RSxTQUFTLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO1lBQ3ZCLElBQUcsQ0FBQyxJQUFJO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBQ3RCLE1BQU0scUJBQXFCLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM5RSxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsOEJBQThCLENBQUMscUJBQXFCLENBQVcsQ0FBQTtRQUMxRixDQUFDLENBQUMsRUFDRixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQTtRQVNELGVBQVUsR0FBRyxLQUFLLENBQUM7UUFVakIsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksRUFBRTtZQUMxQix3REFBd0Q7WUFDeEQsMERBQTBEO1lBQzFELFNBQVMsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFlBQVksR0FBRyxhQUFhLENBQUM7WUFDaEMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUM1QixTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUNyQixHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQVUsRUFBRTtnQkFDM0IsSUFBRyxDQUFDLFlBQVk7b0JBQUUsT0FBTyxJQUFJLENBQUM7Z0JBQzlCLElBQUcsWUFBWSxZQUFZLElBQUk7b0JBQUUsT0FBTyxJQUFJLENBQUM7Z0JBQzdDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLFlBQXNCLENBQUE7WUFDakYsQ0FBQyxDQUFDLENBQ0g7U0FDRixDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsd0JBQXdCLEVBQUUsVUFBVSxDQUFDLEVBQUUsRUFBRTtZQUM3QyxPQUFPLHdCQUF3QixJQUFJLFVBQVUsSUFBSSxJQUFJLENBQUM7UUFDeEQsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0I7WUFDN0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ3ZELENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDZCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWU7UUFDMUIsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUc7WUFDOUIsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNCLG9FQUFvRTtZQUNwRSxvREFBb0Q7WUFDcEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUIsZ0dBQWdHO1lBQ2hHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUM1QztJQUNILENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFBO1FBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVELG1CQUFtQixDQUFDLFlBQW9CO1FBQ3RDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDckMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVELFVBQVUsQ0FBRSxLQUFXLElBQUssQ0FBQztJQUU3QixnQkFBZ0IsQ0FBRSxFQUFjO1FBQzlCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUIsQ0FBRSxFQUFjLElBQUssQ0FBQzs7c0hBbEs1Qix5QkFBeUI7MEdBQXpCLHlCQUF5QixtTUNyQ3RDLGkyRkF1RkE7MkZEbERhLHlCQUF5QjtrQkFOckMsU0FBUzsrQkFDRSwyQkFBMkIsbUJBR3BCLHVCQUF1QixDQUFDLE1BQU07OzBCQWtHNUMsUUFBUTs7MEJBQUksSUFBSTt1R0FUSyxZQUFZO3NCQUFuQyxTQUFTO3VCQUFDLFdBQVc7O0FBaUd4QixNQUFNLE9BQU8sc0JBQXNCOzttSEFBdEIsc0JBQXNCO29IQUF0QixzQkFBc0IsaUJBeEx0Qix5QkFBeUIsYUFzS2xDLFlBQVk7UUFDWixvQkFBb0I7UUFDcEIsbUJBQW1CO1FBQ25CLGFBQWE7UUFDYixlQUFlO1FBQ2Ysa0JBQWtCO1FBQ2xCLGNBQWM7UUFDZCxrQkFBa0I7UUFDbEIscUJBQXFCO1FBQ3JCLDJCQUEyQixhQS9LbEIseUJBQXlCO29IQXdMekIsc0JBQXNCLFlBbkJ4QjtZQUNQLFlBQVk7WUFDWixvQkFBb0I7WUFDcEIsbUJBQW1CO1lBQ25CLGFBQWE7WUFDYixlQUFlO1lBQ2Ysa0JBQWtCO1lBQ2xCLGNBQWM7WUFDZCxrQkFBa0I7WUFDbEIscUJBQXFCO1lBQ3JCLDJCQUEyQjtTQUM1QjsyRkFRVSxzQkFBc0I7a0JBcEJsQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLG9CQUFvQjt3QkFDcEIsbUJBQW1CO3dCQUNuQixhQUFhO3dCQUNiLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIscUJBQXFCO3dCQUNyQiwyQkFBMkI7cUJBQzVCO29CQUNELE9BQU8sRUFBRTt3QkFDTCx5QkFBeUI7cUJBQzVCO29CQUNELFlBQVksRUFBRTt3QkFDVix5QkFBeUI7cUJBQzVCO2lCQUNGOztBQUdELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxXQUFtQjtJQUN0RCxPQUFPLENBQUMsT0FBb0IsRUFBMkIsRUFBRTtRQUN2RCxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ25DLElBQUksQ0FBQyxDQUFDLFlBQVksWUFBWSxJQUFJLENBQUMsRUFBRTtZQUNuQyxPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsTUFBTSxjQUFjLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNFLElBQUksV0FBVyxHQUFHLGNBQWM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUM5QyxPQUFPLEVBQUMsV0FBVyxFQUFFLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxFQUFDLENBQUM7SUFDeEQsQ0FBQyxDQUFBO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxxQkFBK0IsRUFBRSxjQUFjLEdBQUcsSUFBSTtJQUM1RixPQUFPLENBQUMsT0FBb0IsRUFBMkIsRUFBRTtRQUN2RCxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ25DLE1BQU0sTUFBTSxHQUFHLFlBQVksWUFBWSxJQUFJLENBQUM7UUFDNUMsSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPLElBQUksQ0FBQztRQUM1QyxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztRQUN2RyxNQUFNLGtCQUFrQixHQUFHLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMzRSxJQUFHLGtCQUFrQixFQUFFO1lBQ3JCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsRUFBRSxxQkFBcUIsRUFBRSxlQUFlLEVBQUUsRUFBQyxDQUFDO0lBQ3hFLENBQUMsQ0FBQTtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLFFBQXlCO0lBQ3ZELE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRTtRQUNyQixNQUFNLEtBQUssR0FBSSxXQUEyQixDQUFDLEtBQUssQ0FBQztRQUNqRCxJQUFJLENBQUMsQ0FBQyxLQUFLLFlBQVksSUFBSSxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUE7UUFDekMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztRQUN4QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ3BDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFO1lBQzdCLE9BQU87Z0JBQ0wsZUFBZSxFQUFFO29CQUNmLFVBQVUsRUFBRSxJQUFJO29CQUNoQixjQUFjLEVBQUUsUUFBUTtpQkFDekI7YUFDRixDQUFBO1NBQ0Y7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFBO1NBQ1o7SUFDSCxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgVmlld0NoaWxkLFxuICBPbkluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBPcHRpb25hbCxcbiAgU2VsZixcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIE5nTW9kdWxlXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBOZ0NvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCBpbWFnZUNvbXByZXNzaW9uIGZyb20gJ2Jyb3dzZXItaW1hZ2UtY29tcHJlc3Npb24nO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGaWxlVXBsb2FkRmllbGRNb2R1bGUgfSBmcm9tICcuLi9maWxlLXVwbG9hZCc7XG5pbXBvcnQgeyBjcmlzcHJDb250cm9sTWl4aW4sIENyaXNwckZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYWJzdHJhY3RzJztcbmltcG9ydCB7IEZpZWxkQ29udGFpbmVyTW9kdWxlIH0gZnJvbSAnLi4vLi4vZmllbGQtY29udGFpbmVyL2ZpZWxkLWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHR5cGUgeyBJbWFnZVVwbG9hZEZpZWxkQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ltYWdlLXVwbG9hZC1maWVsZC5jb25maWcnO1xuaW1wb3J0IHsgY29udmVydEJ5dGVzVG9NYiB9IGZyb20gJy4vaW1hZ2UtY29tcHJlc3Npb24uaGVscGVycyc7XG5pbXBvcnQgeyBTZWxlY3RlZEZpbGVNb2R1bGUgfSBmcm9tICcuLi9zZWxlY3RlZC1maWxlL3NlbGVjdGVkLWZpbGUuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1WYWxpZGF0aW9uSGFuZGxlck1vZHVsZSB9IGZyb20gJ0B0ZnQvZm9ybS12YWxpZGF0aW9uLWhhbmRsZXInO1xuXG5jb25zdCBJbWFnZVVwbG9hZEZpZWxkTWl4aW4gPSBjcmlzcHJDb250cm9sTWl4aW48SW1hZ2VVcGxvYWRGaWVsZENvbmZpZz4oQ3Jpc3ByRmllbGRDb21wb25lbnQpO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcmlzcHItaW1hZ2UtdXBsb2FkLWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLXVwbG9hZC1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ltYWdlLXVwbG9hZC1maWVsZC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgSW1hZ2VVcGxvYWRGaWVsZENvbXBvbmVudCBleHRlbmRzIEltYWdlVXBsb2FkRmllbGRNaXhpbiBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gIG9uQ2hhbmdlOiAoKSA9PiB2b2lkO1xuXG4gIGRlZmF1bHRDb25maWc6IFBhcnRpYWw8SW1hZ2VVcGxvYWRGaWVsZENvbmZpZz4gPSB7XG4gICAgLy8gYWxsb3dNdWx0aXBsZUZpbGVzOiBmYWxzZSxcbiAgICBhY2NlcHRlZFR5cGVzOiAnaW1hZ2UvKicsXG4gICAgZHJvcFpvbmVUZXh0OiAnRFJPUCBGSUxFIEhFUkUnLFxuICAgIHNlbGVjdEZpbGVzQnV0dG9uVHlwZTogJ2J1dHRvbicsXG4gICAgc2VsZWN0QnV0dG9uVGV4dDogJ1NFTEVDVCcsXG4gICAgc2hvd0NsZWFyRmlsZXNCdXR0b246IHRydWUsXG4gICAgY2xlYXJGaWxlc0J1dHRvblRleHQ6ICdDTEVBUicsXG4gICAgcmVzZXRGaWxlc0J1dHRvblRleHQ6ICdSRVNFVCcsXG4gICAgaW1hZ2VQcmV2aWV3SGVpZ2h0OiAnMjUwcHgnLFxuICAgIGNvbXByZXNzSW1hZ2U6IGZhbHNlLFxuICAgIHRhcmdldENvbXByZXNzZWRJbWFnZUZpbGVTaXplTWI6IC40LFxuICAgIG1pbkNvbXByZXNzaW9uVGhyZXNob2xkTWI6IC42LFxuICAgIHVzZVdlYldvcmtlcjogdHJ1ZSxcbiAgfVxuXG4gIHByaXZhdGUgaW5wdXRJbWFnZUZpbGVTdWJqZWN0ID0gbmV3IFN1YmplY3Q8RmlsZSB8IG51bGw+KCk7XG4gIGlucHV0SW1hZ2VGaWxlJCA9IHRoaXMuaW5wdXRJbWFnZUZpbGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLnBpcGUoXG4gICAgc2hhcmVSZXBsYXkoMSksXG4gICk7XG4gIC8qKlxuICAgKiB0aGUgY29tcHJlc3Npb24gcHJvZ3Jlc3NcbiAgICovXG4gIHByb2dyZXNzOiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgY29tcHJlc3NlZEZpbGUkOiBPYnNlcnZhYmxlPEZpbGU+ID0gdGhpcy5pbnB1dEltYWdlRmlsZSQucGlwZShcbiAgICBzd2l0Y2hNYXAoYXN5bmMgKGZpbGUpID0+IHtcbiAgICAgIGlmICghZmlsZSB8fCAhKGZpbGUgaW5zdGFuY2VvZiBGaWxlKSkgcmV0dXJuIG51bGw7XG4gICAgICBjb25zdCB7IGNvbXByZXNzSW1hZ2UsIHRhcmdldENvbXByZXNzZWRJbWFnZUZpbGVTaXplTWIsIG1pbkNvbXByZXNzaW9uVGhyZXNob2xkTWIsIG1heFdpZHRoT3JIZWlnaHQsIHVzZVdlYldvcmtlciB9ID0gdGhpcy5jb25maWc7XG4gICAgICBjb25zdCBmaWxlU2l6ZU1iID0gY29udmVydEJ5dGVzVG9NYihmaWxlLnNpemUpO1xuICAgICAgY29uc3Qgc2hvdWxkQ29tcHJlc3MgPSBjb21wcmVzc0ltYWdlXG4gICAgICAgICYmIHRhcmdldENvbXByZXNzZWRJbWFnZUZpbGVTaXplTWIgPCBmaWxlU2l6ZU1iXG4gICAgICAgICYmIG1pbkNvbXByZXNzaW9uVGhyZXNob2xkTWIgPCBmaWxlU2l6ZU1iXG4gICAgICBpZiAoc2hvdWxkQ29tcHJlc3MpIHtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAvLyBVc2UgbWF4V2lkdGhPckhlaWdodCBpZiBpdCB3YXMgcHJvdmlkZWQsIGVsc2UgdXNlIHRhcmdldCBjb21wcmVzc2VkIHNpemVcbiAgICAgICAgICAuLi4obWF4V2lkdGhPckhlaWdodCA/IHttYXhXaWR0aE9ySGVpZ2h0fSA6IHsgbWF4U2l6ZU1COiB0YXJnZXRDb21wcmVzc2VkSW1hZ2VGaWxlU2l6ZU1ifSksXG4gICAgICAgICAgdXNlV2ViV29ya2VyLFxuICAgICAgICAgIG1heEl0ZXJhdGlvbnM6IDMwLFxuICAgICAgICAgIG9uUHJvZ3Jlc3M6IChwcm9ncmVzczogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnByb2dyZXNzID0gcHJvZ3Jlc3M7XG4gICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhd2FpdCBpbWFnZUNvbXByZXNzaW9uKGZpbGUsIG9wdGlvbnMpO1xuICAgICAgfSBlbHNlIHJldHVybiAgZmlsZTtcbiAgICB9KSxcbiAgICBtYXAoKGNvbXByZXNzZWRGaWxlOiBGaWxlKSA9PiB7XG4gICAgICBpZighY29tcHJlc3NlZEZpbGUpIHJldHVybiBjb21wcmVzc2VkRmlsZTtcbiAgICAgIGNvbnN0IHsgdHlwZSwgbmFtZSwgbGFzdE1vZGlmaWVkIH0gPSBjb21wcmVzc2VkRmlsZVxuICAgICAgcmV0dXJuIG5ldyBGaWxlKFtjb21wcmVzc2VkRmlsZV0sIHRoaXMuY29uZmlnLmZpbGVOYW1lIHx8IG5hbWUsIHtcbiAgICAgICAgdHlwZSxcbiAgICAgICAgbGFzdE1vZGlmaWVkXG4gICAgICB9KTtcbiAgICB9KSxcbiAgICB0YXAoZmlsZSA9PiB7XG4gICAgICAvLyBvbmx5IHNldCB0aGUgdmFsdWUgaWYgdGhlcmUgaXMgYSBmaWxlIGJlY2F1c2UgcmVzZXRUb0luaXRpYWxWYWx1ZSBzZXRzIHRoZSBjb250cm9sIHZhbHVlXG4gICAgICAvLyB0byBpbml0aWFsIHZhbHVlIGFuZCBjbGVhcnMgdGhlIGNvbXByZXNzZWQgaW1hZ2UsIHNvIHNldHRpbmcgaXQgdG8gbnVsbCBoZXJlIHdvdWxkIHVuZG8gdGhhdFxuICAgICAgaWYgKGZpbGUpIHtcbiAgICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKGZpbGUpO1xuICAgICAgfVxuICAgICAgaWYgKGZpbGUgfHwgdGhpcy52YWx1ZSkge1xuICAgICAgICB0aGlzLmNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0sIDEwMClcbiAgICAgIH1cbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApXG5cbiAgY29tcHJlc3NlZEltYWdlVXJsU3RyaW5nJDogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPiA9IHRoaXMuY29tcHJlc3NlZEZpbGUkLnBpcGUoXG4gICAgc3dpdGNoTWFwKGFzeW5jIChmaWxlKSA9PiB7XG4gICAgICBpZighZmlsZSkgcmV0dXJuIG51bGw7XG4gICAgICBjb25zdCBjb21wcmVzc2VkU3RyaW5nSW1hZ2UgPSBhd2FpdCBpbWFnZUNvbXByZXNzaW9uLmdldERhdGFVcmxGcm9tRmlsZShmaWxlKTtcbiAgICAgIHJldHVybiB0aGlzLmRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwoY29tcHJlc3NlZFN0cmluZ0ltYWdlKSBhcyBzdHJpbmdcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKSxcbiAgKVxuXG4gIC8vIFRoaXMgaXMgd2hhdCBpcyBkaXNwbGF5ZWQgYnkgdGhlIGltYWdlIHByZXZpZXdcbiAgaW1hZ2VTcmNVcmwkOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bGw+O1xuXG4gIEBWaWV3Q2hpbGQoJ2ZpbGVJbnB1dCcpIGZpbGVJbnB1dFJlZjogRWxlbWVudFJlZlxuXG4gIHNlbGVjdGVkRmlsZXM6IEZpbGVMaXN0O1xuXG4gIGlzVXBsb2FkZWQgPSBmYWxzZTtcblxuICBkaXNhYmxlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgcHJpdmF0ZSBkb21TYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgaWYgKHRoaXMubmdDb250cm9sICE9IG51bGwpIHtcbiAgICAgIC8vIFNldHRpbmcgdGhlIHZhbHVlIGFjY2Vzc29yIGRpcmVjdGx5IChpbnN0ZWFkIG9mIHVzaW5nXG4gICAgICAvLyB0aGUgcHJvdmlkZXJzKSB0byBhdm9pZCBydW5uaW5nIGludG8gYSBjaXJjdWxhciBpbXBvcnQuXG4gICAgICBuZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB0aGlzLmltYWdlU3JjVXJsJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5jb21wcmVzc2VkSW1hZ2VVcmxTdHJpbmckLnBpcGUoc3RhcnRXaXRoKG51bGwpKSxcbiAgICAgIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKHRoaXMudmFsdWUpLFxuICAgICAgICBtYXAoKGNvbnRyb2xWYWx1ZSk6IHN0cmluZyA9PiB7XG4gICAgICAgICAgaWYoIWNvbnRyb2xWYWx1ZSkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgaWYoY29udHJvbFZhbHVlIGluc3RhbmNlb2YgRmlsZSkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLm1hcElucHV0VmFsdWVUb1VybD8uKGNvbnRyb2xWYWx1ZSkgfHwgY29udHJvbFZhbHVlIGFzIHN0cmluZ1xuICAgICAgICB9KVxuICAgICAgKVxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtjb21wcmVzc2VkSW1hZ2VVcmxTdHJpbmcsIGNvbnRyb2xVcmxdKSA9PiB7XG4gICAgICAgIHJldHVybiBjb21wcmVzc2VkSW1hZ2VVcmxTdHJpbmcgfHwgY29udHJvbFVybCB8fCBudWxsO1xuICAgICAgfSlcbiAgICApXG4gICAgdGhpcy5kaXNhYmxlZCQgPSB0aGlzLmNvbmZpZy5kaXNhYmxlZENhbGxiYWNrXG4gICAgPyB0aGlzLmNvbmZpZy5kaXNhYmxlZENhbGxiYWNrKHRoaXMuZ3JvdXAsIHRoaXMuY29uZmlnKVxuICAgIDogb2YoZmFsc2UpO1xuICB9XG5cbiAgZmlsZXNDaGFuZ2VkKGZpbGVzOiBGaWxlTGlzdCk6IHZvaWQge1xuICAgIGlmIChmaWxlcyAmJiBmaWxlcy5sZW5ndGggPiAwICkge1xuICAgICAgY29uc3QgaW1hZ2VGaWxlID0gZmlsZXNbMF07XG4gICAgICAvLyBXZSBjbGVhciB0aGUgY29udHJvbCBoZXJlIHNvIHRoYXQgaXQgaXMgaW52YWxpZCB3aGlsZSBjb21wcmVzc2luZ1xuICAgICAgLy8gdGhlIGlucHV0IHBpcGVsaW5lIHdpbGwgdGFrZSBjYXJlIG9mIHJlc2V0dGluZyBpdFxuICAgICAgdGhpcy5jb250cm9sLnBhdGNoVmFsdWUobnVsbCk7XG4gICAgICAvLyB0aGlzLmNvbnRyb2wuc2V0RXJyb3JzKHtjb21wcmVzc2luZzoge2xvYWRpbmdNZXNzYWdlOiAnUGxlYXNlIHdhaXQgd2hpbGUgZmlsZSBjb21wcmVzc2VzJ319KTtcbiAgICAgIHRoaXMuY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICB0aGlzLmlucHV0SW1hZ2VGaWxlU3ViamVjdC5uZXh0KGltYWdlRmlsZSk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXJGaWxlSW5wdXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dEltYWdlRmlsZVN1YmplY3QubmV4dChudWxsKTtcbiAgICB0aGlzLmZpbGVJbnB1dFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gJydcbiAgICB0aGlzLmNvbnRyb2wucGF0Y2hWYWx1ZShudWxsKTtcbiAgICB0aGlzLmNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgIHRoaXMuaXNVcGxvYWRlZCA9IGZhbHNlO1xuICB9XG5cbiAgcmVzZXRUb0luaXRpYWxWYWx1ZShpbml0aWFsVmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRJbWFnZUZpbGVTdWJqZWN0Lm5leHQobnVsbCk7XG4gICAgdGhpcy5jb250cm9sLnBhdGNoVmFsdWUoaW5pdGlhbFZhbHVlKVxuICAgIHRoaXMuaXNVcGxvYWRlZCA9IGZhbHNlO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSggdmFsdWU6IG51bGwgKSB7IH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKCBmbjogKCkgPT4gdm9pZCApIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZCggZm46ICgpID0+IHZvaWQgKSB7IH1cbn1cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRmllbGRDb250YWluZXJNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgU2VsZWN0ZWRGaWxlTW9kdWxlLFxuICAgIEZpbGVVcGxvYWRGaWVsZE1vZHVsZSxcbiAgICBGb3JtVmFsaWRhdGlvbkhhbmRsZXJNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgICAgSW1hZ2VVcGxvYWRGaWVsZENvbXBvbmVudFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgIEltYWdlVXBsb2FkRmllbGRDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBJbWFnZVVwbG9hZEZpZWxkTW9kdWxlIHsgfVxuXG5leHBvcnQgZnVuY3Rpb24gbWF4RmlsZVNpemVWYWxpZGF0b3IobWF4RmlsZVNpemU6IG51bWJlcik6IFZhbGlkYXRvckZuIHtcbiAgcmV0dXJuIChjb250cm9sOiBGb3JtQ29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICBjb25zdCBjb250cm9sVmFsdWUgPSBjb250cm9sLnZhbHVlO1xuICAgIGlmICghKGNvbnRyb2xWYWx1ZSBpbnN0YW5jZW9mIEZpbGUpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgYWN0dWFsRmlsZVNpemUgPSArY29udmVydEJ5dGVzVG9NYihjb250cm9sVmFsdWUuc2l6ZSkudG9QcmVjaXNpb24oMyk7XG4gICAgaWYgKG1heEZpbGVTaXplID4gYWN0dWFsRmlsZVNpemUpIHJldHVybiBudWxsO1xuICAgIHJldHVybiB7bWF4RmlsZVNpemU6IHsgbWF4RmlsZVNpemUsIGFjdHVhbEZpbGVTaXplIH19O1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhbGxvd2VkRmlsZUV4dFZhbGlkYXRvcihhbGxvd2VkRmlsZUV4dGVuc2lvbnM6IHN0cmluZ1tdLCBvbmx5QWxsb3dGaWxlcyA9IHRydWUpOiBWYWxpZGF0b3JGbiB7XG4gIHJldHVybiAoY29udHJvbDogRm9ybUNvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgY29uc3QgY29udHJvbFZhbHVlID0gY29udHJvbC52YWx1ZTtcbiAgICBjb25zdCBpc0ZpbGUgPSBjb250cm9sVmFsdWUgaW5zdGFuY2VvZiBGaWxlO1xuICAgIGlmICghb25seUFsbG93RmlsZXMgJiYgIWlzRmlsZSkgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgYWN0dWFsRXh0ZW5zaW9uID0gaXNGaWxlID8gY29udHJvbFZhbHVlLm5hbWUuc3BsaXQoJy4nKS5wb3AoKS50b0xvY2FsZUxvd2VyQ2FzZSgpIDogJ05vdCBhIGZpbGUnO1xuICAgIGNvbnN0IGlzQWxsb3dlZEV4dGVuc2lvbiA9IGFsbG93ZWRGaWxlRXh0ZW5zaW9ucy5pbmNsdWRlcyhhY3R1YWxFeHRlbnNpb24pO1xuICAgIGlmKGlzQWxsb3dlZEV4dGVuc2lvbikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiB7YWxsb3dlZEV4dGVuc2lvbjogeyBhbGxvd2VkRmlsZUV4dGVuc2lvbnMsIGFjdHVhbEV4dGVuc2lvbiB9fTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYWxsb3dlZEZpbGVUeXBlKG1hdGNoRXhwOiBzdHJpbmcgfCBSZWdFeHApOiBWYWxpZGF0b3JGbiB7XG4gIHJldHVybiAoZm9ybUNvbnRyb2wpID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IChmb3JtQ29udHJvbCBhcyBGb3JtQ29udHJvbCkudmFsdWU7XG4gICAgaWYgKCEodmFsdWUgaW5zdGFuY2VvZiBGaWxlKSkgcmV0dXJuIG51bGxcbiAgICBjb25zdCB0eXBlID0gdmFsdWUudHlwZTtcbiAgICBjb25zdCBtYXRjaGVzID0gdHlwZS5tYXRjaChtYXRjaEV4cClcbiAgICBpZiAoIXR5cGUgfHwgIW1hdGNoZXM/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYWxsb3dlZEZpbGVUeXBlOiB7XG4gICAgICAgICAgYWN0dWFsVHlwZTogdHlwZSxcbiAgICAgICAgICBhbGxvd2VkVHlwZUV4cDogbWF0Y2hFeHBcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgfTtcbn1cbiIsIjxjcmlzcHItZmllbGQtY29udGFpbmVyXG4gIFtjb25maWddPVwiY29uZmlnXCJcbiAgW2dyb3VwXT1cImdyb3VwXCI+XG5cbiAgPG1hdC1mb3JtLWZpZWxkIGZsb2F0TGFiZWw9XCJhbHdheXNcIlxuICAgIFtjb2xvcl09XCJjb25maWcuY29sb3JcIlxuICAgIFthcHBlYXJhbmNlXT1cImNvbmZpZy5hcHBlYXJhbmNlXCJcbiAgICBbZm9ybUdyb3VwXT1cImdyb3VwXCI+XG4gICAgPG1hdC1sYWJlbD57e2NvbmZpZy5sYWJlbH19PC9tYXQtbGFiZWw+XG4gICAgPGlucHV0IFtmb3JtQ29udHJvbE5hbWVdPVwiY29uZmlnLmNvbnRyb2xOYW1lXCIgbWF0SW5wdXQgdHlwZT1cInRleHRcIi8+XG4gICAgPGlucHV0XG4gICAgICAjZmlsZUlucHV0XG4gICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICBbYWNjZXB0XT1cImNvbmZpZy5hY2NlcHRlZFR5cGVzXCJcbiAgICAgIChjaGFuZ2UpPVwiZmlsZXNDaGFuZ2VkKCRldmVudC50YXJnZXQuZmlsZXMpXCIvPlxuICAgIDxkaXYgY2xhc3M9XCJ1aS1jb250YWluZXJcIj5cblxuICAgICAgPGRpdiBjbGFzcz1cImltYWdlLXByZXZpZXdcIiBbc3R5bGUuaGVpZ2h0XT1cImNvbmZpZy5pbWFnZVByZXZpZXdIZWlnaHRcIj5cbiAgICAgICAgPGNyaXNwci1zZWxlY3RlZC1maWxlXG4gICAgICAgICAgKm5nSWY9XCIocHJvZ3Jlc3MgPCAxMDApICYmIGlucHV0SW1hZ2VGaWxlJCB8IGFzeW5jIGFzIGZpbGU7IGVsc2UgZHJvcHpvbmVPclByZXZpZXdcIlxuICAgICAgICAgIFtjb2xvcl09XCJjb25maWcuY29sb3IgPT09ICdwcmltYXJ5JyA/ICdhY2NlbnQnIDogJ3ByaW1hcnknXCJcbiAgICAgICAgICBbZmlsZU5hbWVdPVwiJ0NvbXByZXNzaW5nOiAnICsgZmlsZS5uYW1lXCJcbiAgICAgICAgICBbc2hvd1Byb2dyZXNzXT1cInRydWVcIlxuICAgICAgICAgIFtwcm9ncmVzc109XCJwcm9ncmVzc1wiPlxuICAgICAgICA8L2NyaXNwci1zZWxlY3RlZC1maWxlPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZHJvcHpvbmVPclByZXZpZXc+XG4gICAgICAgICAgPCEtLSA8aW1nICpuZ0lmPVwiKGluaXRpYWxVcmxTdHJpbmckIHwgYXN5bmMpIGFzIGluaXRpYWxVcmxTdHJpbmc7XCIgW3NyY109XCJpbml0aWFsVXJsU3RyaW5nXCIgYWx0PVwiXCI+IC0tPlxuICAgICAgICAgIDxpbWcgKm5nSWY9XCJpbWFnZVNyY1VybCQgfCBhc3luYyBhcyBzcmNVcmw7IGVsc2Ugbm9JbWFnZVwiIFtzcmNdPVwic3JjVXJsXCIgYWx0PVwiXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNub0ltYWdlPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3AtY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgW2NyaXNwckZpbGVEcm9wem9uZV09XCIhKGRpc2FibGVkJCB8IGFzeW5jKVwiXG4gICAgICAgICAgICAgIChmaWxlRHJvcCk9XCJmaWxlc0NoYW5nZWQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJkcm9wLWljb25cIiBpbmxpbmU9XCJ0cnVlXCI+Y2xvdWRfdXBsb2FkPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgPGgyIGNsYXNzPVwibWF0LWgyXCI+e3tjb25maWcuZHJvcFpvbmVUZXh0fX08L2gyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG5cblxuXG4gICAgICA8IS0tIDwvbmctdGVtcGxhdGU+IC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1jb250YWluZXJcIiAqbmdJZj1cInRydWVcIj5cblxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgIChjbGljayk9XCJjbGVhckZpbGVJbnB1dCgpXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiKGRpc2FibGVkJCB8IGFzeW5jKVwiXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIlJlbW92ZSBTZWxlY3RlZCBGaWxlKHMpXCI+XG4gICAgICAgICAgPG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+XG4gICAgICAgICAge3tjb25maWcuY2xlYXJGaWxlc0J1dHRvblRleHR9fVxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCJ2YWx1ZVwiXG4gICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgIChjbGljayk9XCJyZXNldFRvSW5pdGlhbFZhbHVlKHZhbHVlKVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIihkaXNhYmxlZCQgfCBhc3luYylcIlxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJSZW1vdmUgU2VsZWN0ZWQgRmlsZShzKVwiPlxuICAgICAgICAgIDxtYXQtaWNvbj5yZXBsYXk8L21hdC1pY29uPlxuICAgICAgICAgIHt7Y29uZmlnLnJlc2V0RmlsZXNCdXR0b25UZXh0fX1cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIoZGlzYWJsZWQkIHwgYXN5bmMpXCJcbiAgICAgICAgICAoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKClcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29uZmlnLmNvbnRyb2xOYW1lXCI+XG4gICAgICAgICAgPG1hdC1pY29uPlxuICAgICAgICAgICAgY2FtZXJhXG4gICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICBTRUxFQ1RcbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxtYXQtaGludCAqbmdJZj1cImNvbmZpZy5oaW50ICYmIChjb250cm9sLnZhbGlkIHx8ICFjb250cm9sLnRvdWNoZWQpXCI+e3tjb25maWcuaGludH19PC9tYXQtaGludD5cblxuICA8L21hdC1mb3JtLWZpZWxkPlxuXG48L2NyaXNwci1maWVsZC1jb250YWluZXI+XG4iXX0=
@@ -1,4 +1,4 @@
1
- import { Component, ChangeDetectionStrategy } from '@angular/core';
1
+ import { Component } from '@angular/core';
2
2
  import { crisprControlMixin, CrisprFieldComponent } from '../abstracts';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "../field-container/field-container.component";
@@ -12,9 +12,9 @@ export class SubGroupComponent extends FormGroupMixin {
12
12
  }
13
13
  }
14
14
  SubGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: SubGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
15
- SubGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: SubGroupComponent, selector: "crispr-sub-group", usesInheritance: true, ngImport: i0, template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <ng-container\n *ngFor=\"let fieldConfig of config.fields;\"\n crisprField\n [value]=\"value | initialControlValue : fieldConfig\"\n [config]=\"fieldConfig\"\n [group]=\"control\">\n </ng-container>\n</crispr-field-container>\n\n", styles: [""], components: [{ type: i1.FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.CrisprFieldDirective, selector: "[crisprField]", inputs: ["config", "group", "value"] }], pipes: { "initialControlValue": i4.InitialControlValuePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
15
+ SubGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: SubGroupComponent, selector: "crispr-sub-group", usesInheritance: true, ngImport: i0, template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <ng-container\n *ngFor=\"let fieldConfig of config.fields;\"\n crisprField\n [value]=\"value | initialControlValue : fieldConfig\"\n [config]=\"fieldConfig\"\n [group]=\"control\">\n </ng-container>\n</crispr-field-container>\n\n", styles: [""], components: [{ type: i1.FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.CrisprFieldDirective, selector: "[crisprField]", inputs: ["config", "group", "value"] }], pipes: { "initialControlValue": i4.InitialControlValuePipe }, preserveWhitespaces: true });
16
16
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: SubGroupComponent, decorators: [{
17
17
  type: Component,
18
- args: [{ selector: 'crispr-sub-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <ng-container\n *ngFor=\"let fieldConfig of config.fields;\"\n crisprField\n [value]=\"value | initialControlValue : fieldConfig\"\n [config]=\"fieldConfig\"\n [group]=\"control\">\n </ng-container>\n</crispr-field-container>\n\n", styles: [""] }]
18
+ args: [{ selector: 'crispr-sub-group', template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <ng-container\n *ngFor=\"let fieldConfig of config.fields;\"\n crisprField\n [value]=\"value | initialControlValue : fieldConfig\"\n [config]=\"fieldConfig\"\n [group]=\"control\">\n </ng-container>\n</crispr-field-container>\n\n", styles: [""] }]
19
19
  }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvc3ViLWdyb3VwL3N1Yi1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3N1Yi1ncm91cC9zdWItZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7OztBQUV4RSxNQUFNLGNBQWMsR0FBRyxrQkFBa0IsQ0FBaUIsb0JBQW9CLENBQUMsQ0FBQztBQVFoRixNQUFNLE9BQU8saUJBQWtCLFNBQVEsY0FBYztJQUduRCxRQUFRO1FBQ04sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25CLENBQUM7OzhHQUxVLGlCQUFpQjtrR0FBakIsaUJBQWlCLCtFQ2I5QiwrVEFZQTsyRkRDYSxpQkFBaUI7a0JBTjdCLFNBQVM7K0JBQ0Usa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1Ykdyb3VwQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IGNyaXNwckNvbnRyb2xNaXhpbiwgQ3Jpc3ByRmllbGRDb21wb25lbnQgfSBmcm9tICcuLi9hYnN0cmFjdHMnO1xuXG5jb25zdCBGb3JtR3JvdXBNaXhpbiA9IGNyaXNwckNvbnRyb2xNaXhpbjxTdWJHcm91cENvbmZpZz4oQ3Jpc3ByRmllbGRDb21wb25lbnQpO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcmlzcHItc3ViLWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N1Yi1ncm91cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N1Yi1ncm91cC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBTdWJHcm91cENvbXBvbmVudCBleHRlbmRzIEZvcm1Hcm91cE1peGluIGltcGxlbWVudHMgT25Jbml0IHtcbiAgZ3JvdXA6IEZvcm1Hcm91cDtcblxuICBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICB9XG59XG4iLCI8Y3Jpc3ByLWZpZWxkLWNvbnRhaW5lclxuICBbY29uZmlnXT1cImNvbmZpZ1wiXG4gIFtncm91cF09XCJncm91cFwiPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nRm9yPVwibGV0IGZpZWxkQ29uZmlnIG9mIGNvbmZpZy5maWVsZHM7XCJcbiAgICBjcmlzcHJGaWVsZFxuICAgIFt2YWx1ZV09XCJ2YWx1ZSB8IGluaXRpYWxDb250cm9sVmFsdWUgOiBmaWVsZENvbmZpZ1wiXG4gICAgW2NvbmZpZ109XCJmaWVsZENvbmZpZ1wiXG4gICAgW2dyb3VwXT1cImNvbnRyb2xcIj5cbiAgPC9uZy1jb250YWluZXI+XG48L2NyaXNwci1maWVsZC1jb250YWluZXI+XG5cbiJdfQ==
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvc3ViLWdyb3VwL3N1Yi1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL3N1Yi1ncm91cC9zdWItZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBbUMsTUFBTSxlQUFlLENBQUM7QUFHM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7QUFFeEUsTUFBTSxjQUFjLEdBQUcsa0JBQWtCLENBQWlCLG9CQUFvQixDQUFDLENBQUM7QUFVaEYsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGNBQWM7SUFHbkQsUUFBUTtRQUNOLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQixDQUFDOzs4R0FMVSxpQkFBaUI7a0dBQWpCLGlCQUFpQiwrRUNmOUIsK1RBWUE7MkZER2EsaUJBQWlCO2tCQVI3QixTQUFTOytCQUNFLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3ViR3JvdXBDb25maWcgfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgY3Jpc3ByQ29udHJvbE1peGluLCBDcmlzcHJGaWVsZENvbXBvbmVudCB9IGZyb20gJy4uL2Fic3RyYWN0cyc7XG5cbmNvbnN0IEZvcm1Hcm91cE1peGluID0gY3Jpc3ByQ29udHJvbE1peGluPFN1Ykdyb3VwQ29uZmlnPihDcmlzcHJGaWVsZENvbXBvbmVudCk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NyaXNwci1zdWItZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3ViLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3ViLWdyb3VwLmNvbXBvbmVudC5zY3NzJ10sXG4gIC8vIFRPRE86IGNoaWxkIGltYWdlIHVwbG9hZCBjb250cm9scyBhcmVuJ3QgZ2V0dGluZyB1cGRhdGVkIGFwcHJvcHJpYXRlbHkgd2hlbiBpbiBPblB1c2ggc3RyYXRlZ3kuXG4gIC8vIFdlIGNhbiBhZGQgY2RyIHRvIHRoaXMgY2xhc3MsIGJ1dCBldmVyeXRoaW5nIHRoYXQgZXh0ZW5kcyBpdCB3aWxsIG5lZWQgdGhlIGNkciBhdHRhY2hlZFxuICAvLyBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBTdWJHcm91cENvbXBvbmVudCBleHRlbmRzIEZvcm1Hcm91cE1peGluIGltcGxlbWVudHMgT25Jbml0IHtcbiAgZ3JvdXA6IEZvcm1Hcm91cDtcblxuICBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICB9XG59XG4iLCI8Y3Jpc3ByLWZpZWxkLWNvbnRhaW5lclxuICBbY29uZmlnXT1cImNvbmZpZ1wiXG4gIFtncm91cF09XCJncm91cFwiPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nRm9yPVwibGV0IGZpZWxkQ29uZmlnIG9mIGNvbmZpZy5maWVsZHM7XCJcbiAgICBjcmlzcHJGaWVsZFxuICAgIFt2YWx1ZV09XCJ2YWx1ZSB8IGluaXRpYWxDb250cm9sVmFsdWUgOiBmaWVsZENvbmZpZ1wiXG4gICAgW2NvbmZpZ109XCJmaWVsZENvbmZpZ1wiXG4gICAgW2dyb3VwXT1cImNvbnRyb2xcIj5cbiAgPC9uZy1jb250YWluZXI+XG48L2NyaXNwci1maWVsZC1jb250YWluZXI+XG5cbiJdfQ==
@@ -1170,10 +1170,6 @@ class ImageUploadFieldComponent extends ImageUploadFieldMixin {
1170
1170
  minCompressionThresholdMb: .6,
1171
1171
  useWebWorker: true,
1172
1172
  };
1173
- /**
1174
- * The url mapped from initial input value, consumers can us mapInputValueToUrl in config to transform their input value into a src url for the image element
1175
- */
1176
- // inputValueUrl: string | undefined;
1177
1173
  this.inputImageFileSubject = new Subject();
1178
1174
  this.inputImageFile$ = this.inputImageFileSubject.asObservable().pipe(shareReplay(1));
1179
1175
  this.compressedFile$ = this.inputImageFile$.pipe(switchMap((file) => __awaiter(this, void 0, void 0, function* () {
@@ -1229,7 +1225,6 @@ class ImageUploadFieldComponent extends ImageUploadFieldMixin {
1229
1225
  }
1230
1226
  ngOnInit() {
1231
1227
  super.ngOnInit();
1232
- // this.inputValueUrl = this.value && this.config.mapInputValueToUrl?.(this.value) || this.value;
1233
1228
  this.imageSrcUrl$ = combineLatest([
1234
1229
  this.compressedImageUrlString$.pipe(startWith(null)),
1235
1230
  this.control.valueChanges.pipe(startWith(this.value), map((controlValue) => {
@@ -1364,6 +1359,26 @@ function allowedFileExtValidator(allowedFileExtensions, onlyAllowFiles = true) {
1364
1359
  }
1365
1360
  return { allowedExtension: { allowedFileExtensions, actualExtension } };
1366
1361
  };
1362
+ }
1363
+ function allowedFileType(matchExp) {
1364
+ return (formControl) => {
1365
+ const value = formControl.value;
1366
+ if (!(value instanceof File))
1367
+ return null;
1368
+ const type = value.type;
1369
+ const matches = type.match(matchExp);
1370
+ if (!type || !(matches === null || matches === void 0 ? void 0 : matches.length)) {
1371
+ return {
1372
+ allowedFileType: {
1373
+ actualType: type,
1374
+ allowedTypeExp: matchExp
1375
+ }
1376
+ };
1377
+ }
1378
+ else {
1379
+ return null;
1380
+ }
1381
+ };
1367
1382
  }
1368
1383
 
1369
1384
  // TODO: Should we import UI library?
@@ -1545,6 +1560,7 @@ var index$2 = /*#__PURE__*/Object.freeze({
1545
1560
  ImageUploadFieldModule: ImageUploadFieldModule,
1546
1561
  maxFileSizeValidator: maxFileSizeValidator,
1547
1562
  allowedFileExtValidator: allowedFileExtValidator,
1563
+ allowedFileType: allowedFileType,
1548
1564
  FileDropzoneDirective: FileDropzoneDirective,
1549
1565
  FileUploadFieldComponent: FileUploadFieldComponent,
1550
1566
  FileUploadFieldModule: FileUploadFieldModule,
@@ -1572,7 +1588,7 @@ const FIELD_COMPONENTS = {
1572
1588
  unitConversion: Promise.resolve().then(function () { return index$2; }).then(({ UnitConversionFieldComponent }) => UnitConversionFieldComponent)
1573
1589
  };
1574
1590
  function isControlComponent(component) {
1575
- return isControlConfig(component.config) && 'value' in component; // || component.config.controlType === ControlType.BUTTON;
1591
+ return component && isControlConfig(component.config) && 'value' in component; // || component.config.controlType === ControlType.BUTTON;
1576
1592
  }
1577
1593
  function isControlOrButtonComponent(component) {
1578
1594
  return isControlComponent(component) || component.config.controlType === ControlType.BUTTON;
@@ -1586,6 +1602,7 @@ class CrisprFieldDirective {
1586
1602
  }
1587
1603
  set value(value) {
1588
1604
  this._value = value;
1605
+ // This is needed to keep the group list from resetting control values to the initial input value
1589
1606
  this.updateComponentValue(value);
1590
1607
  }
1591
1608
  ;
@@ -1621,9 +1638,9 @@ class CrisprFieldDirective {
1621
1638
  });
1622
1639
  }
1623
1640
  updateComponentValue(value) {
1624
- if (this.component && isControlComponent(this.component)) {
1641
+ if (isControlComponent(this.component)) {
1625
1642
  this.component.value = value;
1626
- // SubGroups won't populate without this
1643
+ // SubGroups won't populate without this detectChanges
1627
1644
  this.cdr.detectChanges();
1628
1645
  }
1629
1646
  }
@@ -1734,6 +1751,11 @@ class FormGroupListComponent extends FormGroupListMixin {
1734
1751
  super();
1735
1752
  this.cdr = cdr;
1736
1753
  this.defaultConfig = defaultConfig;
1754
+ /**
1755
+ * By setting this to true when adding/removing items from array,
1756
+ * we can block original values from overwriting form values
1757
+ * */
1758
+ this.blockValue = false;
1737
1759
  }
1738
1760
  ngOnInit() {
1739
1761
  super.ngOnInit();
@@ -1758,6 +1780,14 @@ class FormGroupListComponent extends FormGroupListMixin {
1758
1780
  });
1759
1781
  }
1760
1782
  }
1783
+ clickDelete(index) {
1784
+ this.blockValue = true;
1785
+ this.deleteGroup(index);
1786
+ }
1787
+ clickAdd() {
1788
+ this.blockValue = true;
1789
+ this.addGroup();
1790
+ }
1761
1791
  addGroup(value = null) {
1762
1792
  this.control.push(createControlForType(this.config.itemConfig, value));
1763
1793
  // needed to ensure new array items render
@@ -1770,10 +1800,10 @@ class FormGroupListComponent extends FormGroupListMixin {
1770
1800
  }
1771
1801
  }
1772
1802
  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 });
1803
+ 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
1804
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: FormGroupListComponent, decorators: [{
1775
1805
  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"] }]
1806
+ 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
1807
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; } });
1778
1808
 
1779
1809
  class CrisprPipesModule {
@@ -1854,10 +1884,10 @@ class SubGroupComponent extends FormGroupMixin {
1854
1884
  }
1855
1885
  }
1856
1886
  SubGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: SubGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1857
- SubGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: SubGroupComponent, selector: "crispr-sub-group", usesInheritance: true, ngImport: i0, template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <ng-container\n *ngFor=\"let fieldConfig of config.fields;\"\n crisprField\n [value]=\"value | initialControlValue : fieldConfig\"\n [config]=\"fieldConfig\"\n [group]=\"control\">\n </ng-container>\n</crispr-field-container>\n\n", styles: [""], components: [{ type: FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }], directives: [{ 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 });
1887
+ SubGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: SubGroupComponent, selector: "crispr-sub-group", usesInheritance: true, ngImport: i0, template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <ng-container\n *ngFor=\"let fieldConfig of config.fields;\"\n crisprField\n [value]=\"value | initialControlValue : fieldConfig\"\n [config]=\"fieldConfig\"\n [group]=\"control\">\n </ng-container>\n</crispr-field-container>\n\n", styles: [""], components: [{ type: FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: CrisprFieldDirective, selector: "[crisprField]", inputs: ["config", "group", "value"] }], pipes: { "initialControlValue": InitialControlValuePipe }, preserveWhitespaces: true });
1858
1888
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: SubGroupComponent, decorators: [{
1859
1889
  type: Component,
1860
- args: [{ selector: 'crispr-sub-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <ng-container\n *ngFor=\"let fieldConfig of config.fields;\"\n crisprField\n [value]=\"value | initialControlValue : fieldConfig\"\n [config]=\"fieldConfig\"\n [group]=\"control\">\n </ng-container>\n</crispr-field-container>\n\n", styles: [""] }]
1890
+ args: [{ selector: 'crispr-sub-group', template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <ng-container\n *ngFor=\"let fieldConfig of config.fields;\"\n crisprField\n [value]=\"value | initialControlValue : fieldConfig\"\n [config]=\"fieldConfig\"\n [group]=\"control\">\n </ng-container>\n</crispr-field-container>\n\n", styles: [""] }]
1861
1891
  }] });
1862
1892
 
1863
1893
  class SubGroupModule {
@@ -1958,5 +1988,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImpor
1958
1988
  * Generated bundle index. Do not edit.
1959
1989
  */
1960
1990
 
1961
- export { AbstractAutocompleteComponent, AutocompleteChiplistFieldComponent, AutocompleteFieldComponent, ButtonComponent, CheckboxFieldComponent, ControlType, CrisprFieldComponent, CrisprFormComponent, CrisprFormsModule, DEFAULT_EMPTY_OPTIONS_MESSAGE, DatepickerFieldComponent, DividerComponent, FieldContainerComponent, FieldContainerModule, FileDropzoneDirective, FileUploadFieldComponent, FileUploadFieldModule, HeadingComponent, HeadingModule, ImageUploadFieldComponent, ImageUploadFieldModule, InputFieldComponent, MaterialModule, OptionComponent, RadioFieldComponent, SelectFieldComponent, SliderFieldComponent, TextareaFieldComponent, UnitConversionFieldComponent, allowedFileExtValidator, buildFormGroupFromConfig, callOptionsIfFunction, checkControlForValues, checkControlsForValues, computeValueFromFields, createControlForType, crisprControlMixin, filterOptionsByLabel, isControlConfig, maxFileSizeValidator, observablifyOptions };
1991
+ export { AbstractAutocompleteComponent, AutocompleteChiplistFieldComponent, AutocompleteFieldComponent, ButtonComponent, CheckboxFieldComponent, ControlType, CrisprFieldComponent, CrisprFormComponent, CrisprFormsModule, DEFAULT_EMPTY_OPTIONS_MESSAGE, DatepickerFieldComponent, DividerComponent, FieldContainerComponent, FieldContainerModule, FileDropzoneDirective, FileUploadFieldComponent, FileUploadFieldModule, HeadingComponent, HeadingModule, ImageUploadFieldComponent, ImageUploadFieldModule, InputFieldComponent, MaterialModule, OptionComponent, RadioFieldComponent, SelectFieldComponent, SliderFieldComponent, TextareaFieldComponent, UnitConversionFieldComponent, allowedFileExtValidator, allowedFileType, buildFormGroupFromConfig, callOptionsIfFunction, checkControlForValues, checkControlsForValues, computeValueFromFields, createControlForType, crisprControlMixin, filterOptionsByLabel, isControlConfig, maxFileSizeValidator, observablifyOptions };
1962
1992
  //# sourceMappingURL=tft-crispr-forms.mjs.map