|
1 | 1 | import { registerDestructor } from '@ember/destroyable'; |
| 2 | +import { action } from '@ember/object'; |
2 | 3 | import type Owner from '@ember/owner'; |
3 | 4 | import { debounce as _debounce } from '@ember/runloop'; |
4 | 5 | import type { ArgsFor, NamedArgs, PositionalArgs } from 'ember-modifier'; |
@@ -52,31 +53,7 @@ export default class ContainerQuery< |
52 | 53 | private _named!: NamedArgs<ContainerQuerySignature<T>>; |
53 | 54 |
|
54 | 55 | #resizeObserver = resizeObserver(this); |
55 | | - |
56 | 56 | dimensions!: Dimensions; |
57 | | - |
58 | | - private onResize = (resizeObserverEntry: ResizeObserverEntry): void => { |
59 | | - const element = resizeObserverEntry.target; |
60 | | - |
61 | | - if (this.debounce > 0) { |
62 | | - // eslint-disable-next-line ember/no-runloop |
63 | | - _debounce(this, this.queryContainer, element, this.debounce); |
64 | | - return; |
65 | | - } |
66 | | - |
67 | | - this.queryContainer(element); |
68 | | - }; |
69 | | - private queryContainer = (element: Element): void => { |
70 | | - this.measureDimensions(element); |
71 | | - this.evaluateQueries(); |
72 | | - this.resetDataAttributes(element); |
73 | | - this.setDataAttributes(element); |
74 | | - |
75 | | - this._named.onQuery?.({ |
76 | | - dimensions: this.dimensions, |
77 | | - queryResults: this.queryResults, |
78 | | - }); |
79 | | - }; |
80 | 57 | queryResults!: QueryResults<T>; |
81 | 58 |
|
82 | 59 | get dataAttributePrefix(): string { |
@@ -138,6 +115,18 @@ export default class ContainerQuery< |
138 | 115 | this.queryContainer(element); |
139 | 116 | } |
140 | 117 |
|
| 118 | + private queryContainer(element: Element): void { |
| 119 | + this.measureDimensions(element); |
| 120 | + this.evaluateQueries(); |
| 121 | + this.resetDataAttributes(element); |
| 122 | + this.setDataAttributes(element); |
| 123 | + |
| 124 | + this._named.onQuery?.({ |
| 125 | + dimensions: this.dimensions, |
| 126 | + queryResults: this.queryResults, |
| 127 | + }); |
| 128 | + } |
| 129 | + |
141 | 130 | private registerResizeObserver(element: Element): void { |
142 | 131 | if (this._element) { |
143 | 132 | this.#resizeObserver.unobserve(this._element, this.onResize); |
@@ -174,6 +163,18 @@ export default class ContainerQuery< |
174 | 163 | this._dataAttributes.push(dataAttribute); |
175 | 164 | } |
176 | 165 | } |
| 166 | + |
| 167 | + @action private onResize(resizeObserverEntry: ResizeObserverEntry): void { |
| 168 | + const element = resizeObserverEntry.target; |
| 169 | + |
| 170 | + if (this.debounce > 0) { |
| 171 | + // eslint-disable-next-line ember/no-runloop |
| 172 | + _debounce(this, this.queryContainer, element, this.debounce); |
| 173 | + return; |
| 174 | + } |
| 175 | + |
| 176 | + this.queryContainer(element); |
| 177 | + } |
177 | 178 | } |
178 | 179 |
|
179 | 180 | export type { |
|
0 commit comments