diff --git a/packages/form-core/package.json b/packages/form-core/package.json index 11ff1d772..9e13a810a 100644 --- a/packages/form-core/package.json +++ b/packages/form-core/package.json @@ -20,6 +20,7 @@ "src", "test", "test-helpers", + "test-suites", "translations", "types" ], diff --git a/packages/form-core/src/registration/FormRegisteringMixin.js b/packages/form-core/src/registration/FormRegisteringMixin.js index 73f592116..bdea2910b 100644 --- a/packages/form-core/src/registration/FormRegisteringMixin.js +++ b/packages/form-core/src/registration/FormRegisteringMixin.js @@ -42,6 +42,14 @@ const FormRegisteringMixinImplementation = superclass => disconnectedCallback() { super.disconnectedCallback(); + this.__unregisterFormElement(); + } + + /** + * Putting this in a separate method makes testing easier + * @private + */ + __unregisterFormElement() { if (this._parentFormGroup) { this._parentFormGroup.removeFormElement(/** @type {* & FormRegisteringHost} */ (this)); } diff --git a/packages/form-core/types/registration/FormRegisteringMixinTypes.d.ts b/packages/form-core/types/registration/FormRegisteringMixinTypes.d.ts index 5f36fd7ef..f369c1a4f 100644 --- a/packages/form-core/types/registration/FormRegisteringMixinTypes.d.ts +++ b/packages/form-core/types/registration/FormRegisteringMixinTypes.d.ts @@ -14,6 +14,8 @@ export declare class FormRegisteringHost { * ChoiceGroup */ protected _parentFormGroup: FormRegistrarHost | undefined; + + private __unregisterFormElement: void; } export declare function FormRegisteringImplementation>(