Skip to content

Commit 33d2dbe

Browse files
authored
Merge pull request #81 from fsw/html-compatibility
Fixes types nullability for compatibility with dart:html APIs:
2 parents 3c12b51 + 26721b3 commit 33d2dbe

7 files changed

Lines changed: 27 additions & 16 deletions

File tree

lib/src/html/api/event_subclasses.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -772,6 +772,8 @@ class Touch {
772772
final int radiusX;
773773
final int radiusY;
774774

775+
Point get page => Point(radiusX, radiusY);
776+
775777
Touch({
776778
this.radiusX = 0,
777779
this.radiusY = 0,

lib/src/html/api/history.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -242,9 +242,9 @@ mixin _UrlBase {
242242
return '$scheme:';
243243
}
244244

245-
String get search => _uri?.query ?? '';
245+
String? get search => _uri?.query;
246246

247-
set search(String value) {
247+
set search(String? value) {
248248
throw UnimplementedError();
249249
}
250250

lib/src/html/api/http_request.dart

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,7 @@ class HttpRequest extends HttpRequestEventTarget {
275275
Map<String, String>? get responseHeaders => _responseHeaders;
276276

277277
/// The response in String form or empty String on failure.
278-
String get responseText {
278+
String? get responseText {
279279
final responseData = _responseData;
280280
if (responseData == null) {
281281
return '';
@@ -291,7 +291,7 @@ class HttpRequest extends HttpRequestEventTarget {
291291
/// `text/xml` stream, unless responseType = 'document' and the request is
292292
/// synchronous.
293293
Document get responseXml =>
294-
DomParser().parseFromString(responseText, 'text/xml');
294+
DomParser().parseFromString(responseText ?? '', 'text/xml');
295295

296296
/// The HTTP result code from the request (200, 404, etc).
297297
/// See also: [HTTP Status Codes](http://en.wikipedia.org/wiki/List_of_HTTP_status_codes)
@@ -560,7 +560,7 @@ class HttpRequest extends HttpRequestEventTarget {
560560
url,
561561
withCredentials: withCredentials,
562562
onProgress: onProgress,
563-
).then((HttpRequest xhr) => xhr.responseText);
563+
).then((HttpRequest xhr) => xhr.responseText ?? '');
564564
}
565565

566566
/// Makes a server POST request with the specified data encoded as form data.
@@ -749,7 +749,7 @@ class HttpRequest extends HttpRequestEventTarget {
749749
}
750750
}
751751

752-
class HttpRequestEventTarget extends EventTarget {
752+
class HttpRequestEventTarget extends EventTarget implements HttpRequestUpload {
753753
/// Static factory designed to expose `abort` events to event
754754
/// handlers that are not necessarily instances of [HttpRequestEventTarget].
755755
///
@@ -821,8 +821,17 @@ class HttpRequestEventTarget extends EventTarget {
821821

822822
/// Stream of `timeout` events handled by this [HttpRequestEventTarget].
823823
Stream<ProgressEvent> get onTimeout => timeoutEvent.forTarget(this);
824+
824825
}
825826

826827
abstract class HttpRequestUpload {
827828
HttpRequestUpload._();
829+
830+
Stream<ProgressEvent> get onAbort;
831+
Stream<ProgressEvent> get onError;
832+
Stream<ProgressEvent> get onLoad;
833+
Stream<ProgressEvent> get onLoadEnd;
834+
Stream<ProgressEvent> get onLoadStart;
835+
Stream<ProgressEvent> get onProgress;
836+
Stream<ProgressEvent> get onTimeout;
828837
}

lib/src/html/api/workers.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ class FormData {
201201

202202
void delete(String name) => throw UnimplementedError();
203203

204-
Object get(String name) => throw UnimplementedError();
204+
Object? get(String name) => throw UnimplementedError();
205205

206206
List<Object> getAll(String name) => throw UnimplementedError();
207207

lib/src/html/dom/element.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -993,7 +993,7 @@ abstract class Element extends Node
993993
classSet.addAll(value);
994994
}
995995

996-
String? get className => _getAttribute('class');
996+
String get className => _getAttribute('class') ?? '';
997997

998998
set className(String? newValue) {
999999
_setAttribute('class', newValue);

lib/src/html/dom/element_subclasses.dart

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2607,7 +2607,7 @@ class SelectElement extends HtmlElement
26072607

26082608
ValidityState get validity => ValidityState.constructor();
26092609

2610-
String get value {
2610+
String? get value {
26112611
final options = this.options;
26122612
for (var option in options) {
26132613
if (option.selected ?? false) {
@@ -2620,7 +2620,7 @@ class SelectElement extends HtmlElement
26202620
return options.first.value;
26212621
}
26222622

2623-
set value(String value) {
2623+
set value(String? value) {
26242624
for (var option in options) {
26252625
option.selected = option.value == value;
26262626
}
@@ -3168,18 +3168,18 @@ class TextAreaElement extends HtmlElement
31683168
_setAttributeInt('rows', value);
31693169
}
31703170

3171-
int get textLength => value.length;
3171+
int? get textLength => value?.length;
31723172

31733173
String? get type => null;
31743174

31753175
String? get validationMessage => null;
31763176

31773177
ValidityState get validity => ValidityState.constructor();
31783178

3179-
String get value => text ?? '';
3179+
String? get value => text;
31803180

3181-
set value(String value) {
3182-
text = value.replaceAll('\n', '');
3181+
set value(String? value) {
3182+
text = value?.replaceAll('\n', '');
31833183
}
31843184

31853185
bool get willValidate {
@@ -3204,7 +3204,7 @@ class TextAreaElement extends HtmlElement
32043204
}
32053205

32063206
void select() {
3207-
setSelectionRange(0, textLength);
3207+
setSelectionRange(0, textLength ?? 0);
32083208
}
32093209

32103210
void setCustomValidity(String error) {}

lib/src/html/dom/shared_with_dart2js/css_class_set.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -416,7 +416,7 @@ class _ElementCssClassSet extends _CssClassSetImpl {
416416
@override
417417
Set<String> readClasses() {
418418
var s = <String>{};
419-
var classname = _element.className!;
419+
var classname = _element.className;
420420

421421
for (final name in classname.split(' ')) {
422422
final trimmed = name.trim();

0 commit comments

Comments
 (0)