mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-10-01 14:41:32 +00:00
AAE-38287 Cannot select dropdown options when selection type is multiple (#11220)
* AAE-38287 Fix multiselect dropdown * update tests * update * update * update * update * update
This commit is contained in:
@@ -36,9 +36,15 @@ import { FormFieldModel } from '../widgets/core/form-field.model';
|
||||
import { FieldStylePipe } from '../../pipes/field-style.pipe';
|
||||
import { FormFieldTypes } from '../widgets/core/form-field-types';
|
||||
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
||||
import { ReactiveFormWidget } from '../widgets/reactive-widget.interface';
|
||||
|
||||
declare const adf: any;
|
||||
|
||||
/**
|
||||
* Component is a wrapper for widget components.
|
||||
* It is responsible for instantiating the correct widget component
|
||||
* based on the field type.
|
||||
*/
|
||||
@Component({
|
||||
selector: 'adf-form-field',
|
||||
templateUrl: './form-field.component.html',
|
||||
@@ -98,7 +104,7 @@ export class FormFieldComponent implements OnInit, OnDestroy {
|
||||
}
|
||||
});
|
||||
|
||||
if (FormFieldTypes.isReactiveType(instance?.field?.type)) {
|
||||
if (FormFieldTypes.isReactiveWidget(instance)) {
|
||||
this.updateReactiveFormControlOnFormRulesEvent(instance);
|
||||
}
|
||||
}
|
||||
@@ -106,7 +112,7 @@ export class FormFieldComponent implements OnInit, OnDestroy {
|
||||
}
|
||||
}
|
||||
|
||||
private updateReactiveFormControlOnFormRulesEvent(instance: any): void {
|
||||
private updateReactiveFormControlOnFormRulesEvent(instance: ReactiveFormWidget): void {
|
||||
instance?.formService.formRulesEvent.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
|
||||
instance?.updateReactiveFormControl();
|
||||
instance?.field?.form.validateForm(instance?.field);
|
||||
|
@@ -15,6 +15,8 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { MaybeReactiveFormWidget, ReactiveFormWidget } from '../reactive-widget.interface';
|
||||
|
||||
/* eslint-disable @angular-eslint/component-selector */
|
||||
|
||||
export class FormFieldTypes {
|
||||
@@ -71,6 +73,10 @@ export class FormFieldTypes {
|
||||
return FormFieldTypes.REACTIVE_TYPES.includes(type);
|
||||
}
|
||||
|
||||
static isReactiveWidget(instance: MaybeReactiveFormWidget): instance is ReactiveFormWidget {
|
||||
return FormFieldTypes.REACTIVE_TYPES.includes(instance?.field?.type);
|
||||
}
|
||||
|
||||
static isConstantValueType(type: string): boolean {
|
||||
return FormFieldTypes.CONSTANT_VALUE_TYPES.includes(type);
|
||||
}
|
||||
|
@@ -16,8 +16,13 @@
|
||||
*/
|
||||
|
||||
import { FormService } from '../../services/form.service';
|
||||
import { FormFieldModel } from './core/form-field.model';
|
||||
import { WidgetComponent } from './widget.component';
|
||||
|
||||
export interface ReactiveFormWidget {
|
||||
updateReactiveFormControl(): void;
|
||||
formService: FormService;
|
||||
field: FormFieldModel;
|
||||
}
|
||||
|
||||
export type MaybeReactiveFormWidget = WidgetComponent | ReactiveFormWidget;
|
||||
|
Reference in New Issue
Block a user