diff --git a/addon/components/bs-carousel/slide.hbs b/addon/components/bs-carousel/slide.hbs
index ff7681870..762178d94 100644
--- a/addon/components/bs-carousel/slide.hbs
+++ b/addon/components/bs-carousel/slide.hbs
@@ -1,7 +1,7 @@
diff --git a/addon/components/bs-dropdown/menu.hbs b/addon/components/bs-dropdown/menu.hbs
index 90f40ecd9..16144c8da 100644
--- a/addon/components/bs-dropdown/menu.hbs
+++ b/addon/components/bs-dropdown/menu.hbs
@@ -8,7 +8,7 @@
{{popper-tooltip this.toggleElement this.popperOptions}}
{{did-insert @registerChildElement "menu"}}
{{will-destroy @unregisterChildElement "menu"}}
- {{create-ref "menuElement"}}
+ {{this.trackMenuElement}}
>
{{yield
(hash
@@ -28,7 +28,7 @@
{{popper-tooltip this.toggleElement this.popperOptions}}
{{did-insert @registerChildElement "menu"}}
{{will-destroy @unregisterChildElement "menu"}}
- {{create-ref "menuElement"}}
+ {{this.trackMenuElement}}
>
{{yield
(hash
@@ -52,7 +52,7 @@
{{popper-tooltip this.toggleElement this.popperOptions}}
{{did-insert @registerChildElement "menu"}}
{{will-destroy @unregisterChildElement "menu"}}
- {{create-ref "menuElement"}}
+ {{this.trackMenuElement}}
>
{{yield
(hash
@@ -72,7 +72,7 @@
{{popper-tooltip this.toggleElement this.popperOptions}}
{{did-insert @registerChildElement "menu"}}
{{will-destroy @unregisterChildElement "menu"}}
- {{create-ref "menuElement"}}
+ {{this.trackMenuElement}}
>
{{yield
(hash
diff --git a/addon/components/bs-dropdown/menu.js b/addon/components/bs-dropdown/menu.js
index a9269640c..f3426fa81 100644
--- a/addon/components/bs-dropdown/menu.js
+++ b/addon/components/bs-dropdown/menu.js
@@ -5,7 +5,7 @@ import { next } from '@ember/runloop';
import { getDestinationElement } from 'ember-bootstrap/utils/dom';
import defaultValue from 'ember-bootstrap/utils/default-decorator';
import deprecateSubclassing from 'ember-bootstrap/utils/deprecate-subclassing';
-import { ref } from 'ember-ref-bucket';
+import trackElement from 'ember-bootstrap/utils/track-element';
/**
Component for the dropdown menu.
@@ -25,7 +25,9 @@ export default class DropdownMenu extends Component {
* @type null | HTMLElement
* @private
*/
- @ref('menuElement') menuElement = null;
+ menuElement = null;
+
+ trackMenuElement = trackElement(this, 'menuElement');
/**
* @property ariaRole
diff --git a/addon/components/bs-form/element.hbs b/addon/components/bs-form/element.hbs
index 43b8286d2..724b9a511 100644
--- a/addon/components/bs-form/element.hbs
+++ b/addon/components/bs-form/element.hbs
@@ -2,7 +2,7 @@
` tag.
diff --git a/addon/components/bs-modal.hbs b/addon/components/bs-modal.hbs
index f1c731eac..8959a3365 100644
--- a/addon/components/bs-modal.hbs
+++ b/addon/components/bs-modal.hbs
@@ -2,14 +2,7 @@
{{did-update this.handleVisibilityChanges @open}}
{{#if this.inDom}}
- {{!
- ember-on-helper do not support FastBoot yet. This guard can be removed as
- soon as ember-on-helper guards for FastBoot itself. It is tracked in this
- GitHub issue: https://github.com/buschtoens/ember-on-helper/issues/3
- }}
- {{#unless this.isFastBoot}}
- {{on-window "resize" this.adjustDialog}}
- {{/unless}}
+ {{bs-on-window "resize" this.adjustDialog}}
{{#let (component (ensure-safe-component (bs-default @dialogComponent (component "bs-modal/dialog")))
onClose=this.close
@@ -27,7 +20,7 @@
{{#if this._renderInPlace}}
{{#if this.shouldShowBackdrop}}
-
+
{{/if}}
{{else}}
{{#in-element this.destinationElement insertBefore=null}}
{{#if this.shouldShowBackdrop}}
-
+
{{/if}}
{{/in-element}}
diff --git a/addon/components/bs-modal.js b/addon/components/bs-modal.js
index f73983c38..7d8b8fb2a 100644
--- a/addon/components/bs-modal.js
+++ b/addon/components/bs-modal.js
@@ -10,7 +10,7 @@ import isFastBoot from 'ember-bootstrap/utils/is-fastboot';
import deprecateSubclassing from 'ember-bootstrap/utils/deprecate-subclassing';
import arg from '../utils/decorators/arg';
import { tracked } from '@glimmer/tracking';
-import { ref } from 'ember-ref-bucket';
+import trackElement from 'ember-bootstrap/utils/track-element';
function nextRunloop() {
return new Promise((resolve) => next(resolve));
@@ -301,7 +301,9 @@ export default class Modal extends Component {
* @readonly
* @private
*/
- @ref('modalElement') modalElement;
+ @tracked modalElement;
+
+ trackModalElement = trackElement(this, 'modalElement');
/**
* The DOM element of the backdrop element.
@@ -311,14 +313,9 @@ export default class Modal extends Component {
* @readonly
* @private
*/
- @ref('backdropElement') backdropElement;
+ backdropElement;
- /**
- * @type boolean
- * @readonly
- * @private
- */
- isFastBoot = isFastBoot(this);
+ trackBackdropElement = trackElement(this, 'backdropElement');
/**
* The action to be sent when the modal footer's submit button (if present) is pressed.
diff --git a/addon/components/bs-modal/dialog.hbs b/addon/components/bs-modal/dialog.hbs
index 1aaf4aab8..45262831c 100644
--- a/addon/components/bs-modal/dialog.hbs
+++ b/addon/components/bs-modal/dialog.hbs
@@ -9,7 +9,7 @@
{{on "mouseup" this.handleMouseUp}}
{{on "click" this.handleClick}}
{{style paddingLeft=(concat @paddingLeft "px") paddingRight=(concat @paddingRight "px") display=(if @inDom "block" "")}}
- {{create-ref "mainNode"}}
+ {{this.trackMainNode}}
{{did-insert this.getOrSetTitleId}}
{{did-insert this.setInitialFocus}}
>
diff --git a/addon/components/bs-modal/dialog.js b/addon/components/bs-modal/dialog.js
index 750d6e82f..049e3615c 100644
--- a/addon/components/bs-modal/dialog.js
+++ b/addon/components/bs-modal/dialog.js
@@ -3,7 +3,7 @@ import { isBlank } from '@ember/utils';
import Component from '@glimmer/component';
import { next } from '@ember/runloop';
import deprecateSubclassing from 'ember-bootstrap/utils/deprecate-subclassing';
-import { ref } from 'ember-ref-bucket';
+import trackElement from 'ember-bootstrap/utils/track-element';
import { tracked } from '@glimmer/tracking';
/**
@@ -20,7 +20,9 @@ export default class ModalDialog extends Component {
* @property id
* @type null | HTMLElement
*/
- @ref('mainNode') _element = null;
+ _element = null;
+
+ trackMainNode = trackElement(this, '_element');
/**
* Name of the size class
diff --git a/addon/components/bs-popover.hbs b/addon/components/bs-popover.hbs
index c0089a325..668ac4523 100644
--- a/addon/components/bs-popover.hbs
+++ b/addon/components/bs-popover.hbs
@@ -15,7 +15,7 @@
@viewportPadding={{this.viewportPadding}}
@class={{@class}}
- {{create-ref "overlayElement"}}
+ {{this.trackOverlayElement}}
...attributes
>
{{yield
diff --git a/addon/components/bs-popover/element.hbs b/addon/components/bs-popover/element.hbs
index b182114da..173d4e288 100644
--- a/addon/components/bs-popover/element.hbs
+++ b/addon/components/bs-popover/element.hbs
@@ -9,7 +9,7 @@
role="tooltip"
...attributes
{{popper-tooltip @popperTarget this.popperOptions}}
- {{create-ref "popperElement"}}
+ {{this.trackPopperElement}}
>
{{#if @title}}
@@ -29,7 +29,7 @@
role="tooltip"
...attributes
{{popper-tooltip @popperTarget this.popperOptions}}
- {{create-ref "popperElement"}}
+ {{this.trackPopperElement}}
>
{{#if @title}}
diff --git a/addon/components/bs-tab/pane.hbs b/addon/components/bs-tab/pane.hbs
index cfb7346b7..1ae9d8b3b 100644
--- a/addon/components/bs-tab/pane.hbs
+++ b/addon/components/bs-tab/pane.hbs
@@ -2,7 +2,7 @@
class="tab-pane {{if (macroCondition (macroGetOwnConfig "isNotBS3")) (if this.showContent "show")}} {{if (macroCondition (macroGetOwnConfig "isBS3")) (if this.showContent "in")}} {{if this.active "active"}} {{if this.usesTransition "fade"}}"
role="tabpanel"
...attributes
- {{create-ref "mainNode"}}
+ {{this.trackMainNode}}
>
{{yield}}
\ No newline at end of file
diff --git a/addon/components/bs-tab/pane.js b/addon/components/bs-tab/pane.js
index bc3c02978..42cb4ea5b 100644
--- a/addon/components/bs-tab/pane.js
+++ b/addon/components/bs-tab/pane.js
@@ -9,7 +9,7 @@ import usesTransition from 'ember-bootstrap/utils/cp/uses-transition';
import defaultValue from 'ember-bootstrap/utils/default-decorator';
import { guidFor } from '@ember/object/internals';
import deprecateSubclassing from 'ember-bootstrap/utils/deprecate-subclassing';
-import { ref } from 'ember-ref-bucket';
+import trackElement from 'ember-bootstrap/utils/track-element';
/**
The tab pane of a tab component.
@@ -28,7 +28,9 @@ export default class TabPane extends Component.extend(ComponentChild) {
* @property id
* @type null | HTMLElement
*/
- @ref('mainNode') _element = null;
+ _element = null;
+
+ trackMainNode = trackElement(this, '_element');
/**
* @property id
* @type string
@@ -145,7 +147,7 @@ export default class TabPane extends Component.extend(ComponentChild) {
show() {
if (this.usesTransition) {
if (!this._element) {
- // _element is initially set by `{{create-ref}}` which happens in next run loop, so can be undefined here.
+ // _element is initially set by `{{this.trackMainNode}}`, which runs after render, so can be undefined here.
this.setProperties({
active: true,
showContent: true,
diff --git a/addon/components/bs-tooltip.hbs b/addon/components/bs-tooltip.hbs
index 98a619517..572546001 100644
--- a/addon/components/bs-tooltip.hbs
+++ b/addon/components/bs-tooltip.hbs
@@ -14,7 +14,7 @@
@viewportPadding={{this.viewportPadding}}
@class={{@class}}
- {{create-ref "overlayElement"}}
+ {{this.trackOverlayElement}}
...attributes
>
{{#if (has-block)}}
diff --git a/addon/components/bs-tooltip/element.hbs b/addon/components/bs-tooltip/element.hbs
index 7a7a664b7..3e222563a 100644
--- a/addon/components/bs-tooltip/element.hbs
+++ b/addon/components/bs-tooltip/element.hbs
@@ -9,7 +9,7 @@
role="tooltip"
...attributes
{{popper-tooltip @popperTarget this.popperOptions}}
- {{create-ref "popperElement"}}
+ {{this.trackPopperElement}}
>