@@ -80,6 +80,7 @@ extension DomDocumentExtension on DomDocument {
80
80
class DomHTMLDocument extends DomDocument {}
81
81
82
82
extension DomHTMLDocumentExtension on DomHTMLDocument {
83
+ external DomFontFaceSet ? get fonts;
83
84
external DomHTMLHeadElement ? get head;
84
85
external DomHTMLBodyElement ? get body;
85
86
}
@@ -168,12 +169,14 @@ extension DomElementExtension on DomElement {
168
169
js_util.getProperty <List <Object ?>>(this , 'children' ).cast <DomElement >();
169
170
external String get id;
170
171
external set id (String id);
172
+ external set innerHtml (String ? html);
171
173
external String ? get outerHTML;
172
174
external set spellcheck (bool ? value);
173
175
external String get tagName;
174
176
external DomCSSStyleDeclaration get style;
175
177
external void append (DomNode node);
176
178
external String ? getAttribute (String attributeName);
179
+ external DomRect getBoundingClientRect ();
177
180
external void prepend (DomNode node);
178
181
external DomElement ? querySelector (String selectors);
179
182
List <DomElement > querySelectorAll (String selectors) =>
@@ -243,11 +246,14 @@ extension DomCSSStyleDeclarationExtension on DomCSSStyleDeclaration {
243
246
setProperty ('background-image' , value, '' );
244
247
set border (String value) => setProperty ('border' , value, '' );
245
248
set mixBlendMode (String value) => setProperty ('mix-blend-mode' , value, '' );
246
- set backgroundSize (String value) =>
247
- setProperty ('background-size' , value, '' );
249
+ set backgroundSize (String value) => setProperty ('background-size' , value, '' );
248
250
set backgroundBlendMode (String value) =>
249
251
setProperty ('background-blend-mode' , value, '' );
250
252
set transformStyle (String value) => setProperty ('transform-style' , value, '' );
253
+ set display (String value) => setProperty ('display' , value, '' );
254
+ set flexDirection (String value) => setProperty ('flex-direction' , value, '' );
255
+ set alignItems (String value) => setProperty ('align-items' , value, '' );
256
+ set margin (String value) => setProperty ('margin' , value, '' );
251
257
String get width => getPropertyValue ('width' );
252
258
String get height => getPropertyValue ('height' );
253
259
String get position => getPropertyValue ('position' );
@@ -298,6 +304,10 @@ extension DomCSSStyleDeclarationExtension on DomCSSStyleDeclaration {
298
304
String get backgroundSize => getPropertyValue ('background-size' );
299
305
String get backgroundBlendMode => getPropertyValue ('background-blend-mode' );
300
306
String get transformStyle => getPropertyValue ('transform-style' );
307
+ String get display => getPropertyValue ('display' );
308
+ String get flexDirection => getPropertyValue ('flex-direction' );
309
+ String get alignItems => getPropertyValue ('align-items' );
310
+ String get margin => getPropertyValue ('margin' );
301
311
302
312
external String getPropertyValue (String property);
303
313
void setProperty (String propertyName, String value, [String ? priority]) {
@@ -313,6 +323,10 @@ extension DomCSSStyleDeclarationExtension on DomCSSStyleDeclaration {
313
323
@staticInterop
314
324
class DomHTMLElement extends DomElement {}
315
325
326
+ extension DomHTMLElementExtension on DomHTMLElement {
327
+ int get offsetWidth => js_util.getProperty <num >(this , 'offsetWidth' ) as int ;
328
+ }
329
+
316
330
@JS ()
317
331
@staticInterop
318
332
class DomHTMLMetaElement extends DomHTMLElement {}
@@ -369,6 +383,21 @@ class DomHTMLButtonElement extends DomHTMLElement {}
369
383
DomHTMLButtonElement createDomHTMLButtonElement () =>
370
384
domDocument.createElement ('button' ) as DomHTMLButtonElement ;
371
385
386
+ @JS ()
387
+ @staticInterop
388
+ class DomHTMLParagraphElement extends DomHTMLElement {}
389
+
390
+ DomHTMLParagraphElement createDomHTMLParagraphElement () =>
391
+ domDocument.createElement ('p' ) as DomHTMLParagraphElement ;
392
+
393
+ @JS ()
394
+ @staticInterop
395
+ class DomHTMLStyleElement extends DomHTMLElement {}
396
+
397
+ extension DomHTMLStyleElementExtension on DomHTMLStyleElement {
398
+ external set type (String ? value);
399
+ }
400
+
372
401
@JS ()
373
402
@staticInterop
374
403
class DomPerformance extends DomEventTarget {}
@@ -434,6 +463,7 @@ class DomCanvasRenderingContext2D {}
434
463
extension DomCanvasRenderingContext2DExtension on DomCanvasRenderingContext2D {
435
464
external Object ? get fillStyle;
436
465
external set fillStyle (Object ? style);
466
+ external String get font;
437
467
external set font (String value);
438
468
external set lineWidth (num ? value);
439
469
external set strokeStyle (Object ? value);
@@ -452,6 +482,7 @@ extension DomCanvasRenderingContext2DExtension on DomCanvasRenderingContext2D {
452
482
< Object > [text, x, y, if (maxWidth != null ) maxWidth]);
453
483
external DomImageData getImageData (int x, int y, int sw, int sh);
454
484
external void lineTo (num x, num y);
485
+ external DomTextMetrics measureText (String text);
455
486
external void moveTo (num x, num y);
456
487
external void save ();
457
488
external void stroke ();
@@ -516,6 +547,14 @@ class DomText extends DomCharacterData {}
516
547
517
548
DomText createDomText (String data) => domDocument.createTextNode (data);
518
549
550
+ @JS ()
551
+ @staticInterop
552
+ class DomTextMetrics {}
553
+
554
+ extension DomTextMetricsExtension on DomTextMetrics {
555
+ external num ? get width;
556
+ }
557
+
519
558
@JS ()
520
559
@staticInterop
521
560
class DomException {
@@ -526,6 +565,51 @@ extension DomExceptionExtension on DomException {
526
565
external String get name;
527
566
}
528
567
568
+ @JS ()
569
+ @staticInterop
570
+ class DomRectReadOnly {}
571
+
572
+ extension DomRectReadOnlyExtension on DomRectReadOnly {
573
+ external num get x;
574
+ external num get y;
575
+ external num get width;
576
+ external num get height;
577
+ external num get top;
578
+ external num get right;
579
+ external num get bottom;
580
+ external num get left;
581
+ }
582
+
583
+ @JS ()
584
+ @staticInterop
585
+ class DomRect extends DomRectReadOnly {}
586
+
587
+ @JS ()
588
+ @staticInterop
589
+ class DomFontFace {}
590
+
591
+ DomFontFace createDomFontFace (String family, Object source,
592
+ [Map <Object ?, Object ?>? descriptors]) =>
593
+ domCallConstructorString ('FontFace' , < Object > [
594
+ family,
595
+ source,
596
+ if (descriptors != null ) js_util.jsify (descriptors)
597
+ ])! as DomFontFace ;
598
+
599
+ extension DomFontFaceExtension on DomFontFace {
600
+ Future <DomFontFace > load () =>
601
+ js_util.promiseToFuture (js_util.callMethod (this , 'load' , < Object > []));
602
+ }
603
+
604
+ @JS ()
605
+ @staticInterop
606
+ class DomFontFaceSet extends DomEventTarget {}
607
+
608
+ extension DomFontFaceSetExtension on DomFontFaceSet {
609
+ external DomFontFaceSet ? add (DomFontFace font);
610
+ external void clear ();
611
+ }
612
+
529
613
extension DomResponseExtension on DomResponse {
530
614
Future <dynamic > arrayBuffer () => js_util
531
615
.promiseToFuture (js_util.callMethod (this , 'arrayBuffer' , < Object > []));
0 commit comments