|
18 | 18 | */ |
19 | 19 | import $ from "jquery"; |
20 | 20 | import dom from "./dom"; |
| 21 | +import events from "./events"; |
21 | 22 | import logging from "./logging"; |
22 | 23 | import utils from "./utils"; |
23 | 24 |
|
@@ -150,7 +151,7 @@ const registry = { |
150 | 151 | return patterns; |
151 | 152 | }, |
152 | 153 |
|
153 | | - scan(content, patterns, trigger) { |
| 154 | + async scan(content, patterns, trigger) { |
154 | 155 | if (!content) { |
155 | 156 | return; |
156 | 157 | } |
@@ -205,12 +206,25 @@ const registry = { |
205 | 206 | }); |
206 | 207 |
|
207 | 208 | // walk list backwards and initialize patterns inside-out. |
| 209 | + const pattern_instances = []; |
208 | 210 | for (const el of matches.reverse()) { |
209 | 211 | for (const name of patterns) { |
210 | | - this.initPattern(name, el, trigger); |
| 212 | + pattern_instances.push(this.initPattern(name, el, trigger)); |
211 | 213 | } |
212 | 214 | } |
| 215 | + |
| 216 | + // Notify for all patterns loaded. |
| 217 | + document.dispatchEvent( |
| 218 | + new Event("patterns-loaded") |
| 219 | + ); |
213 | 220 | document.body.classList.add("patterns-loaded"); |
| 221 | + |
| 222 | + // Notify for all Patterns initialized. |
| 223 | + await Promise.all(pattern_instances); |
| 224 | + document.dispatchEvent( |
| 225 | + new Event("patterns-initialized") |
| 226 | + ); |
| 227 | + document.body.classList.add("patterns-initialized"); |
214 | 228 | }, |
215 | 229 |
|
216 | 230 | register(pattern, name) { |
|
0 commit comments