(elements: HTMLElement[])
| 102 | } |
| 103 | |
| 104 | #notify(elements: HTMLElement[]) { |
| 105 | if (disabled) { |
| 106 | return; |
| 107 | } |
| 108 | |
| 109 | const entries = elements.map((element) => { |
| 110 | const computedStyle = window.getComputedStyle(element); |
| 111 | const writingMode = computedStyle.writingMode; |
| 112 | |
| 113 | let contentRect: DOMRectReadOnly = |
| 114 | elementToDOMRect.get(element) ?? defaultDomRect; |
| 115 | |
| 116 | if (getDOMRect) { |
| 117 | const contentRectOverride = getDOMRect(element); |
| 118 | if (contentRectOverride) { |
| 119 | contentRect = contentRectOverride; |
| 120 | } |
| 121 | } |
| 122 | |
| 123 | let blockSize = 0; |
| 124 | let inlineSize = 0; |
| 125 | if (writingMode.includes("vertical")) { |
| 126 | blockSize = contentRect.width; |
| 127 | inlineSize = contentRect.height; |
| 128 | } else { |
| 129 | blockSize = contentRect.height; |
| 130 | inlineSize = contentRect.width; |
| 131 | } |
| 132 | |
| 133 | return { |
| 134 | borderBoxSize: [ |
| 135 | { |
| 136 | blockSize, |
| 137 | inlineSize |
| 138 | } |
| 139 | ], |
| 140 | contentBoxSize: [], |
| 141 | contentRect, |
| 142 | devicePixelContentBoxSize: [], |
| 143 | target: element |
| 144 | }; |
| 145 | }); |
| 146 | |
| 147 | this.#callback(entries, this); |
| 148 | } |
| 149 | |
| 150 | #onChange = (target?: HTMLElement) => { |
| 151 | if (target) { |
no outgoing calls
no test coverage detected