| Index: site/try/src/shadow_root.dart
|
| diff --git a/site/try/src/shadow_root.dart b/site/try/src/shadow_root.dart
|
| deleted file mode 100644
|
| index 20ee0b258ed1b7cad1d1b09ba456561ad7629198..0000000000000000000000000000000000000000
|
| --- a/site/try/src/shadow_root.dart
|
| +++ /dev/null
|
| @@ -1,105 +0,0 @@
|
| -// Copyright (c) 2014, 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.
|
| -
|
| -library trydart.shadow_root;
|
| -
|
| -import 'dart:html';
|
| -
|
| -import 'selection.dart' show
|
| - TrySelection;
|
| -
|
| -import 'html_to_text.dart' show
|
| - htmlToText;
|
| -
|
| -const int WALKER_NEXT = 0;
|
| -const int WALKER_RETURN = 1;
|
| -const int WALKER_SKIP_NODE = 2;
|
| -
|
| -void setShadowRoot(Element node, text) {
|
| - if (text is String) {
|
| - text = new Text(text);
|
| - }
|
| - getShadowRoot(node)
|
| - ..nodes.clear()
|
| - ..append(text);
|
| -}
|
| -
|
| -
|
| -/* ShadowRoot or Element */ getShadowRoot(Element node) {
|
| - if (ShadowRoot.supported) {
|
| - ShadowRoot root = node.shadowRoot;
|
| - return root != null ? root : node.createShadowRoot();
|
| - } else {
|
| - Element root = node.querySelector('[try-dart-shadow-root]');
|
| - if (root == null) {
|
| - root = new SpanElement()
|
| - ..setAttribute('try-dart-shadow-root', '');
|
| - node.append(root);
|
| - }
|
| - return root;
|
| - }
|
| -}
|
| -
|
| -String getText(Element node) {
|
| - if (ShadowRoot.supported) return node.text;
|
| - StringBuffer buffer = new StringBuffer();
|
| - htmlToText(
|
| - node, buffer, new TrySelection.empty(node), treatRootAsInline: true);
|
| - return '$buffer';
|
| -}
|
| -
|
| -/// Element.contains(n) doesn't work when n is node(Text) in IE,
|
| -/// so this is a brute-force implementation of contains.
|
| -bool containsNode(parent, child) {
|
| - var p = child;
|
| - while (p != null && p != parent) {
|
| - p = p.parentNode;
|
| - }
|
| - return p != null;
|
| -}
|
| -
|
| -/// Position [walker] at the last predecessor (that is, child of child of
|
| -/// child...) of [node]. The next call to walker.nextNode will return the first
|
| -/// node after [node].
|
| -void skip(Node node, TreeWalker walker) {
|
| - if (walker.nextSibling() != null) {
|
| - walker.previousNode();
|
| - return;
|
| - }
|
| - for (Node current = walker.nextNode();
|
| - current != null;
|
| - current = walker.nextNode()) {
|
| - if (!containsNode(node, current)) {
|
| - walker.previousNode();
|
| - return;
|
| - }
|
| - }
|
| -}
|
| -
|
| -/// Call [f] on each node in [root] in same order as [TreeWalker]. Skip any
|
| -/// nodes used to implement shadow root polyfill.
|
| -void walkNodes(Node root, int f(Node node)) {
|
| - TreeWalker walker = new TreeWalker(root, NodeFilter.SHOW_ALL);
|
| -
|
| - for (Node node = root; node != null; node = walker.nextNode()) {
|
| - if (!ShadowRoot.supported &&
|
| - node is Element &&
|
| - node.getAttribute('try-dart-shadow-root') != null) {
|
| - skip(node, walker);
|
| - } else {
|
| - int action = f(node);
|
| - switch (action) {
|
| - case WALKER_RETURN:
|
| - return;
|
| - case WALKER_SKIP_NODE:
|
| - skip(node, walker);
|
| - break;
|
| - case WALKER_NEXT:
|
| - break;
|
| - default:
|
| - throw 'Unexpected action returned from [f]: $action';
|
| - }
|
| - }
|
| - }
|
| -}
|
|
|