From 9d5923f973f0471e1e8f69ad4309cfc63d980d93 Mon Sep 17 00:00:00 2001 From: arimieandreea Date: Thu, 18 Jun 2026 16:03:56 +0300 Subject: [PATCH] fix: handle webcomponent lifecycle on every element that misses it PIE-703 --- packages/boilerplate-item-type/configure/src/index.js | 1 + packages/boilerplate-item-type/src/index.js | 1 + packages/calculator/configure/src/index.js | 1 + packages/calculator/src/index.js | 1 + packages/charting/configure/src/index.js | 5 +++++ packages/charting/src/index.js | 1 + packages/drag-in-the-blank/configure/src/index.js | 5 +++++ packages/drag-in-the-blank/src/index.js | 1 + packages/drawing-response/configure/src/index.js | 5 +++++ packages/drawing-response/src/index.js | 1 + .../explicit-constructed-response/configure/src/index.js | 5 +++++ packages/explicit-constructed-response/src/index.js | 1 + packages/fraction-model/configure/src/index.js | 1 + packages/fraction-model/src/index.js | 1 + packages/graphing-solution-set/configure/src/index.js | 5 +++++ packages/graphing-solution-set/src/index.js | 1 + packages/graphing/configure/src/index.js | 5 +++++ packages/graphing/src/index.js | 1 + packages/hotspot/configure/src/index.js | 5 +++++ packages/hotspot/src/index.js | 1 + packages/image-cloze-association/configure/src/index.js | 5 +++++ packages/image-cloze-association/src/index.js | 1 + packages/inline-dropdown/configure/src/index.js | 5 +++++ packages/inline-dropdown/src/index.js | 1 + packages/likert/configure/src/index.js | 5 +++++ packages/likert/src/index.js | 1 + packages/match-list/src/index.js | 1 + packages/match/configure/src/index.js | 5 +++++ packages/match/src/index.js | 1 + packages/math-inline/configure/src/index.js | 5 +++++ packages/math-inline/src/index.js | 1 + packages/math-templated/configure/src/index.js | 5 +++++ packages/math-templated/src/index.js | 1 + packages/matrix/configure/src/index.js | 5 +++++ packages/matrix/src/index.js | 1 + packages/multi-trait-rubric/configure/src/index.js | 5 +++++ packages/multi-trait-rubric/src/index.js | 1 + packages/multiple-choice/configure/src/index.js | 1 + packages/multiple-choice/src/index.js | 1 + packages/number-line/configure/src/index.js | 5 +++++ packages/number-line/src/index.js | 1 + packages/passage/configure/src/index.js | 1 + packages/passage/src/index.js | 1 + packages/placement-ordering/configure/src/index.js | 5 +++++ packages/placement-ordering/src/index.js | 2 ++ packages/protractor/src/index.js | 1 + packages/ruler/configure/src/index.js | 1 + packages/ruler/src/index.js | 1 + packages/select-text/configure/src/index.js | 1 + packages/select-text/src/index.js | 1 + 50 files changed, 119 insertions(+) diff --git a/packages/boilerplate-item-type/configure/src/index.js b/packages/boilerplate-item-type/configure/src/index.js index c1536d7e41..d7b74b76f6 100644 --- a/packages/boilerplate-item-type/configure/src/index.js +++ b/packages/boilerplate-item-type/configure/src/index.js @@ -101,6 +101,7 @@ export default class BoilerplateItemTypeConfigure extends HTMLElement { disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/boilerplate-item-type/src/index.js b/packages/boilerplate-item-type/src/index.js index 909fe4cfae..6f7df426cc 100644 --- a/packages/boilerplate-item-type/src/index.js +++ b/packages/boilerplate-item-type/src/index.js @@ -70,6 +70,7 @@ export default class BoilerplateItemType extends HTMLElement { disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/calculator/configure/src/index.js b/packages/calculator/configure/src/index.js index 1924009660..e651ff4106 100644 --- a/packages/calculator/configure/src/index.js +++ b/packages/calculator/configure/src/index.js @@ -48,6 +48,7 @@ export default class Calculator extends HTMLElement { disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/calculator/src/index.js b/packages/calculator/src/index.js index 3227b40b4c..8ee664fcea 100644 --- a/packages/calculator/src/index.js +++ b/packages/calculator/src/index.js @@ -37,6 +37,7 @@ export default class Calculator extends HTMLElement { disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/charting/configure/src/index.js b/packages/charting/configure/src/index.js index 16e6140d8c..cf86449524 100644 --- a/packages/charting/configure/src/index.js +++ b/packages/charting/configure/src/index.js @@ -124,9 +124,14 @@ export default class GraphLinesConfigure extends HTMLElement { } } + connectedCallback() { + this._render(); + } + disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } \ No newline at end of file diff --git a/packages/charting/src/index.js b/packages/charting/src/index.js index a1d78996ff..235d1d28cd 100644 --- a/packages/charting/src/index.js +++ b/packages/charting/src/index.js @@ -113,6 +113,7 @@ export default class Graphing extends HTMLElement { this._disconnectMathObserver(); if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/drag-in-the-blank/configure/src/index.js b/packages/drag-in-the-blank/configure/src/index.js index aa6d009bce..fa94018b9c 100644 --- a/packages/drag-in-the-blank/configure/src/index.js +++ b/packages/drag-in-the-blank/configure/src/index.js @@ -158,9 +158,14 @@ export default class DragInTheBlank extends HTMLElement { }, 0); } + connectedCallback() { + this._render(); + } + disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/drag-in-the-blank/src/index.js b/packages/drag-in-the-blank/src/index.js index a8a1d28b02..09fcce60dc 100644 --- a/packages/drag-in-the-blank/src/index.js +++ b/packages/drag-in-the-blank/src/index.js @@ -223,6 +223,7 @@ export default class DragInTheBlank extends HTMLElement { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/drawing-response/configure/src/index.js b/packages/drawing-response/configure/src/index.js index 0ba3ce1f6b..06ecacb8fe 100644 --- a/packages/drawing-response/configure/src/index.js +++ b/packages/drawing-response/configure/src/index.js @@ -159,9 +159,14 @@ export default class DrawableResponseConfigure extends HTMLElement { this._root.render(element); } + connectedCallback() { + this._render(); + } + disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/drawing-response/src/index.js b/packages/drawing-response/src/index.js index 866fade5fd..50e0613f7c 100644 --- a/packages/drawing-response/src/index.js +++ b/packages/drawing-response/src/index.js @@ -67,6 +67,7 @@ export default class DrawingResponse extends HTMLElement { disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/explicit-constructed-response/configure/src/index.js b/packages/explicit-constructed-response/configure/src/index.js index a8d15c4317..f1c6788749 100644 --- a/packages/explicit-constructed-response/configure/src/index.js +++ b/packages/explicit-constructed-response/configure/src/index.js @@ -174,9 +174,14 @@ export default class ExplicitConstructedResponse extends HTMLElement { this._root.render(element); } + connectedCallback() { + this._render(); + } + disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/explicit-constructed-response/src/index.js b/packages/explicit-constructed-response/src/index.js index 601591143d..11520913df 100644 --- a/packages/explicit-constructed-response/src/index.js +++ b/packages/explicit-constructed-response/src/index.js @@ -92,6 +92,7 @@ export default class InlineDropdown extends HTMLElement { disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/fraction-model/configure/src/index.js b/packages/fraction-model/configure/src/index.js index fd441cda15..483d90db20 100644 --- a/packages/fraction-model/configure/src/index.js +++ b/packages/fraction-model/configure/src/index.js @@ -172,6 +172,7 @@ export default class FractionModelConfigure extends HTMLElement { disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/fraction-model/src/index.js b/packages/fraction-model/src/index.js index 8ac4b40c78..b54c79a4dc 100644 --- a/packages/fraction-model/src/index.js +++ b/packages/fraction-model/src/index.js @@ -81,6 +81,7 @@ export default class FractionModel extends HTMLElement { disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/graphing-solution-set/configure/src/index.js b/packages/graphing-solution-set/configure/src/index.js index 7f19e443e8..c79012bac0 100644 --- a/packages/graphing-solution-set/configure/src/index.js +++ b/packages/graphing-solution-set/configure/src/index.js @@ -158,9 +158,14 @@ export default class GraphLinesConfigure extends HTMLElement { } } + connectedCallback() { + this._render(); + } + disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/graphing-solution-set/src/index.js b/packages/graphing-solution-set/src/index.js index 61911438d2..13ee54cbbd 100644 --- a/packages/graphing-solution-set/src/index.js +++ b/packages/graphing-solution-set/src/index.js @@ -144,6 +144,7 @@ export default class Graphing extends HTMLElement { disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/graphing/configure/src/index.js b/packages/graphing/configure/src/index.js index 4580eefef7..6fa028cc34 100644 --- a/packages/graphing/configure/src/index.js +++ b/packages/graphing/configure/src/index.js @@ -186,9 +186,14 @@ export default class GraphLinesConfigure extends HTMLElement { } } + connectedCallback() { + this._render(); + } + disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/graphing/src/index.js b/packages/graphing/src/index.js index c6a2224c2a..1641326ae1 100644 --- a/packages/graphing/src/index.js +++ b/packages/graphing/src/index.js @@ -102,6 +102,7 @@ export default class Graphing extends HTMLElement { this._disconnectMathObserver(); if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/hotspot/configure/src/index.js b/packages/hotspot/configure/src/index.js index a43e391ce2..5e330ca48e 100644 --- a/packages/hotspot/configure/src/index.js +++ b/packages/hotspot/configure/src/index.js @@ -200,9 +200,14 @@ export default class HotspotConfigure extends HTMLElement { this._root.render(element); } + connectedCallback() { + this._render(); + } + disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/hotspot/src/index.js b/packages/hotspot/src/index.js index f59aa34cb7..de4d22a4fe 100644 --- a/packages/hotspot/src/index.js +++ b/packages/hotspot/src/index.js @@ -221,6 +221,7 @@ export default class Hotspot extends HTMLElement { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/image-cloze-association/configure/src/index.js b/packages/image-cloze-association/configure/src/index.js index fbfd611851..9f70342efc 100644 --- a/packages/image-cloze-association/configure/src/index.js +++ b/packages/image-cloze-association/configure/src/index.js @@ -106,9 +106,14 @@ export default class ImageClozeAssociationConfigure extends HTMLElement { this._root.render(element); } + connectedCallback() { + this._render(); + } + disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/image-cloze-association/src/index.js b/packages/image-cloze-association/src/index.js index 05f8559b0c..3a5eb88677 100644 --- a/packages/image-cloze-association/src/index.js +++ b/packages/image-cloze-association/src/index.js @@ -222,6 +222,7 @@ export default class ImageClozeAssociation extends HTMLElement { if (this._root) { this._root.unmount(); + this._root = null; } } diff --git a/packages/inline-dropdown/configure/src/index.js b/packages/inline-dropdown/configure/src/index.js index 61c812bd96..63625b5020 100644 --- a/packages/inline-dropdown/configure/src/index.js +++ b/packages/inline-dropdown/configure/src/index.js @@ -143,9 +143,14 @@ export default class InlineDropdown extends HTMLElement { this._root.render(element); } + connectedCallback() { + this._render(); + } + disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/inline-dropdown/src/index.js b/packages/inline-dropdown/src/index.js index 70e5a5c490..1ee8e1be57 100644 --- a/packages/inline-dropdown/src/index.js +++ b/packages/inline-dropdown/src/index.js @@ -85,6 +85,7 @@ export default class RootInlineDropdown extends HTMLElement { disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/likert/configure/src/index.js b/packages/likert/configure/src/index.js index 3ef7c36053..55143f82ee 100644 --- a/packages/likert/configure/src/index.js +++ b/packages/likert/configure/src/index.js @@ -106,9 +106,14 @@ export default class Likert extends HTMLElement { this._root.render(element); } + connectedCallback() { + this._render(); + } + disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/likert/src/index.js b/packages/likert/src/index.js index 2f5a670071..648810382e 100644 --- a/packages/likert/src/index.js +++ b/packages/likert/src/index.js @@ -60,6 +60,7 @@ export default class Likert extends HTMLElement { disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/match-list/src/index.js b/packages/match-list/src/index.js index 258210b387..f021021ad1 100644 --- a/packages/match-list/src/index.js +++ b/packages/match-list/src/index.js @@ -85,6 +85,7 @@ export default class MatchList extends HTMLElement { disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/match/configure/src/index.js b/packages/match/configure/src/index.js index 0925e5772b..8475b5ab8a 100644 --- a/packages/match/configure/src/index.js +++ b/packages/match/configure/src/index.js @@ -160,9 +160,14 @@ export default class MatchConfigure extends HTMLElement { } } + connectedCallback() { + this._render(); + } + disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/match/src/index.js b/packages/match/src/index.js index 676b8e0834..cb356fbdd9 100644 --- a/packages/match/src/index.js +++ b/packages/match/src/index.js @@ -79,6 +79,7 @@ export default class Match extends HTMLElement { disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/math-inline/configure/src/index.js b/packages/math-inline/configure/src/index.js index 81298c9d7e..050b56893d 100644 --- a/packages/math-inline/configure/src/index.js +++ b/packages/math-inline/configure/src/index.js @@ -142,9 +142,14 @@ export default class MathInlineConfigure extends HTMLElement { } } + connectedCallback() { + this._render(); + } + disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/math-inline/src/index.js b/packages/math-inline/src/index.js index 9edcea12ac..bdafaa8658 100644 --- a/packages/math-inline/src/index.js +++ b/packages/math-inline/src/index.js @@ -91,6 +91,7 @@ export default class MathInline extends HTMLElement { disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/math-templated/configure/src/index.js b/packages/math-templated/configure/src/index.js index fa8db79441..46267eb158 100644 --- a/packages/math-templated/configure/src/index.js +++ b/packages/math-templated/configure/src/index.js @@ -177,9 +177,14 @@ export default class MathTemplateConfigure extends HTMLElement { this._root.render(element); } + connectedCallback() { + this._render(); + } + disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/math-templated/src/index.js b/packages/math-templated/src/index.js index 33275396ac..9f5be66b82 100644 --- a/packages/math-templated/src/index.js +++ b/packages/math-templated/src/index.js @@ -79,6 +79,7 @@ export default class MathTemplated extends HTMLElement { disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/matrix/configure/src/index.js b/packages/matrix/configure/src/index.js index f37ca62fad..492d0c4ca8 100644 --- a/packages/matrix/configure/src/index.js +++ b/packages/matrix/configure/src/index.js @@ -101,9 +101,14 @@ export default class Matrix extends HTMLElement { this._root.render(element); } + connectedCallback() { + this._render(); + } + disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/matrix/src/index.js b/packages/matrix/src/index.js index ab4a9df371..23aa0bf632 100644 --- a/packages/matrix/src/index.js +++ b/packages/matrix/src/index.js @@ -74,6 +74,7 @@ export default class Matrix extends HTMLElement { disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/multi-trait-rubric/configure/src/index.js b/packages/multi-trait-rubric/configure/src/index.js index 01b995d508..8100b34fc3 100644 --- a/packages/multi-trait-rubric/configure/src/index.js +++ b/packages/multi-trait-rubric/configure/src/index.js @@ -156,9 +156,14 @@ export default class MultiTraitRubricElement extends HTMLElement { } } + connectedCallback() { + this._render(); + } + disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/multi-trait-rubric/src/index.js b/packages/multi-trait-rubric/src/index.js index 36d65933eb..d452c74572 100644 --- a/packages/multi-trait-rubric/src/index.js +++ b/packages/multi-trait-rubric/src/index.js @@ -85,6 +85,7 @@ export default class MultiTraitRubric extends HTMLElement { this._disconnectMathObserver(); if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/multiple-choice/configure/src/index.js b/packages/multiple-choice/configure/src/index.js index 358e83ab79..d233b75669 100644 --- a/packages/multiple-choice/configure/src/index.js +++ b/packages/multiple-choice/configure/src/index.js @@ -223,6 +223,7 @@ export default class MultipleChoice extends HTMLElement { log('connectedCallback - Component connected to DOM'); log('connectedCallback - Model:', this._model ? 'present' : 'missing'); log('connectedCallback - Configuration:', this._configuration ? 'present' : 'missing'); + this._render(); } disconnectedCallback() { diff --git a/packages/multiple-choice/src/index.js b/packages/multiple-choice/src/index.js index 0935bf7d4c..309432dd7a 100644 --- a/packages/multiple-choice/src/index.js +++ b/packages/multiple-choice/src/index.js @@ -405,6 +405,7 @@ export default class MultipleChoice extends HTMLElement { if (this._root) { this._root.unmount(); + this._root = null; } } diff --git a/packages/number-line/configure/src/index.js b/packages/number-line/configure/src/index.js index 5c73467183..193d33f865 100644 --- a/packages/number-line/configure/src/index.js +++ b/packages/number-line/configure/src/index.js @@ -181,9 +181,14 @@ export default class NumberLine extends HTMLElement { this._root.render(element); } + connectedCallback() { + this._rerender(); + } + disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/number-line/src/index.js b/packages/number-line/src/index.js index 91aa608c40..318469b9a7 100644 --- a/packages/number-line/src/index.js +++ b/packages/number-line/src/index.js @@ -210,6 +210,7 @@ export default class NumberLine extends HTMLElement { this._disconnectMathObserver(); if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/passage/configure/src/index.js b/packages/passage/configure/src/index.js index abef2a2a40..68f5b91475 100644 --- a/packages/passage/configure/src/index.js +++ b/packages/passage/configure/src/index.js @@ -93,6 +93,7 @@ export default class PassageConfigure extends HTMLElement { disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/passage/src/index.js b/packages/passage/src/index.js index 6ede3598c9..c85020ddfe 100644 --- a/packages/passage/src/index.js +++ b/packages/passage/src/index.js @@ -146,6 +146,7 @@ export default class PiePassage extends HTMLElement { this._disconnectPlayerObserver(); if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/placement-ordering/configure/src/index.js b/packages/placement-ordering/configure/src/index.js index b6b145c5a1..2fbf04a5f9 100644 --- a/packages/placement-ordering/configure/src/index.js +++ b/packages/placement-ordering/configure/src/index.js @@ -161,9 +161,14 @@ export default class PlacementOrdering extends HTMLElement { this._root.render(element); } + connectedCallback() { + this._rerender(); + } + disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/placement-ordering/src/index.js b/packages/placement-ordering/src/index.js index 2496fef3d5..e9d986e442 100644 --- a/packages/placement-ordering/src/index.js +++ b/packages/placement-ordering/src/index.js @@ -113,12 +113,14 @@ export default class Ordering extends HTMLElement { connectedCallback() { this._initMathObserver(); + this.render(); } disconnectedCallback() { this._disconnectMathObserver(); if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/protractor/src/index.js b/packages/protractor/src/index.js index c8d258ca85..1ddff3cdbb 100644 --- a/packages/protractor/src/index.js +++ b/packages/protractor/src/index.js @@ -28,6 +28,7 @@ export default class Protractor extends HTMLElement { disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/ruler/configure/src/index.js b/packages/ruler/configure/src/index.js index effac4ac1f..9000f6a11e 100644 --- a/packages/ruler/configure/src/index.js +++ b/packages/ruler/configure/src/index.js @@ -65,6 +65,7 @@ export default class RulerConfigure extends HTMLElement { disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/ruler/src/index.js b/packages/ruler/src/index.js index 6db9700ce3..4cce237d62 100644 --- a/packages/ruler/src/index.js +++ b/packages/ruler/src/index.js @@ -39,6 +39,7 @@ export default class Ruler extends HTMLElement { disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/select-text/configure/src/index.js b/packages/select-text/configure/src/index.js index 752dbea6e9..82141e8689 100644 --- a/packages/select-text/configure/src/index.js +++ b/packages/select-text/configure/src/index.js @@ -138,6 +138,7 @@ export default class SelectTextConfigure extends HTMLElement { disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } } diff --git a/packages/select-text/src/index.js b/packages/select-text/src/index.js index 3801ee2d5a..0925bb20cb 100644 --- a/packages/select-text/src/index.js +++ b/packages/select-text/src/index.js @@ -98,6 +98,7 @@ export default class SelectText extends HTMLElement { disconnectedCallback() { if (this._root) { this._root.unmount(); + this._root = null; } } }