e35f398779
Closes https://github.com/dart-lang/sdk/issues/41699 createFragment should accept a nullable html string in its implementation. As such, usages of createFragment within dart:html are modified as well so the html string does not have to be non-nullable. Change-Id: Ia04ad2da9e2a48cabda8774f0af75559fb03a7d2 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/145570 Reviewed-by: Sigmund Cherem <sigmund@google.com> Reviewed-by: Nicholas Shahan <nshahan@google.com> Commit-Queue: Srujan Gaddam <srujzs@google.com>
55 lines
1.8 KiB
Plaintext
55 lines
1.8 KiB
Plaintext
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
|
|
part of $LIBRARYNAME;
|
|
|
|
$(ANNOTATIONS)$(NATIVESPEC)$(CLASS_MODIFIERS)class $CLASSNAME$EXTENDS$IMPLEMENTS {
|
|
|
|
List<TableSectionElement> get tBodies =>
|
|
new _WrappedList<TableSectionElement>(_tBodies);
|
|
|
|
List<TableRowElement> get rows =>
|
|
new _WrappedList<TableRowElement>(_rows);
|
|
|
|
TableRowElement addRow() {
|
|
return insertRow(-1);
|
|
}
|
|
|
|
TableCaptionElement createCaption() => _createCaption();
|
|
TableSectionElement createTBody() => _createTBody();
|
|
TableSectionElement createTFoot() => _createTFoot();
|
|
TableSectionElement createTHead() => _createTHead();
|
|
TableRowElement insertRow(int index) => _insertRow(index);
|
|
|
|
TableSectionElement _createTBody() {
|
|
if (JS('bool', '!!#.createTBody', this)) {
|
|
return this._nativeCreateTBody();
|
|
}
|
|
var tbody = new Element.tag('tbody');
|
|
this.children.add(tbody);
|
|
return tbody $#NULLSAFECAST(as TableSectionElement);
|
|
}
|
|
|
|
@JSName('createTBody')
|
|
TableSectionElement _nativeCreateTBody() native;
|
|
|
|
DocumentFragment createFragment(String$NULLABLE html,
|
|
{NodeValidator$NULLABLE validator,
|
|
NodeTreeSanitizer$NULLABLE treeSanitizer}) {
|
|
if (Range.supportsCreateContextualFragment) {
|
|
return super.createFragment(
|
|
html, validator: validator, treeSanitizer: treeSanitizer);
|
|
}
|
|
// IE9 workaround which does not support innerHTML on Table elements.
|
|
var contextualHtml = '<table>$html</table>';
|
|
var table = new Element.html(contextualHtml, validator: validator,
|
|
treeSanitizer: treeSanitizer);
|
|
var fragment = new DocumentFragment();
|
|
fragment.nodes.addAll(table.nodes);
|
|
|
|
return fragment;
|
|
}
|
|
|
|
$!MEMBERS}
|