1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

update web components

This commit is contained in:
Luke Pulverenti 2015-12-05 09:18:07 -05:00
parent 5093d99000
commit f6b71369e3
22 changed files with 199 additions and 161 deletions

View file

@ -29,14 +29,14 @@
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
}, },
"ignore": [], "ignore": [],
"homepage": "https://github.com/PolymerElements/iron-behaviors", "homepage": "https://github.com/polymerelements/iron-behaviors",
"_release": "1.0.11", "_release": "1.0.11",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "v1.0.11", "tag": "v1.0.11",
"commit": "084fbc7f60343d717bb2208f350774f4c9899777" "commit": "084fbc7f60343d717bb2208f350774f4c9899777"
}, },
"_source": "git://github.com/PolymerElements/iron-behaviors.git", "_source": "git://github.com/polymerelements/iron-behaviors.git",
"_target": "^1.0.0", "_target": "^1.0.0",
"_originalSource": "PolymerElements/iron-behaviors" "_originalSource": "polymerelements/iron-behaviors"
} }

View file

@ -36,7 +36,7 @@
"tag": "v1.0.8", "tag": "v1.0.8",
"commit": "e9a66727f3da0446f04956d4e4f1dcd51cdec2ff" "commit": "e9a66727f3da0446f04956d4e4f1dcd51cdec2ff"
}, },
"_source": "git://github.com/PolymerElements/iron-selector.git", "_source": "git://github.com/polymerelements/iron-selector.git",
"_target": "^1.0.0", "_target": "^1.0.0",
"_originalSource": "PolymerElements/iron-selector" "_originalSource": "polymerelements/iron-selector"
} }

View file

@ -1,6 +1,6 @@
{ {
"name": "paper-button", "name": "paper-button",
"version": "1.0.9", "version": "1.0.10",
"description": "Material design button", "description": "Material design button",
"authors": [ "authors": [
"The Polymer Authors" "The Polymer Authors"
@ -29,20 +29,21 @@
}, },
"devDependencies": { "devDependencies": {
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0",
"web-component-tester": "*", "web-component-tester": "polymer/web-component-tester#^3.4.0",
"test-fixture": "polymerelements/test-fixture#^1.0.0", "test-fixture": "polymerelements/test-fixture#^1.0.0",
"iron-component-page": "polymerelements/iron-component-page#^1.0.0", "iron-component-page": "polymerelements/iron-component-page#^1.0.0",
"iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0",
"iron-icon": "polymerelements/iron-icon#^1.0.0", "iron-icon": "polymerelements/iron-icon#^1.0.0",
"iron-icons": "polymerelements/iron-icons#^1.0.0", "iron-icons": "polymerelements/iron-icons#^1.0.0",
"iron-test-helpers": "polymerelements/iron-test-helpers#^1.0.0", "iron-test-helpers": "polymerelements/iron-test-helpers#^1.0.0",
"paper-styles": "polymerelements/paper-styles#^1.0.0" "paper-styles": "polymerelements/paper-styles#^1.0.0"
}, },
"ignore": [], "ignore": [],
"_release": "1.0.9", "_release": "1.0.10",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "v1.0.9", "tag": "v1.0.10",
"commit": "c30e913331feed4f7b911c0fbf6bb9535e56b4d1" "commit": "53d833818fa738a5160177f9f834a08c839ab2be"
}, },
"_source": "git://github.com/PolymerElements/paper-button.git", "_source": "git://github.com/PolymerElements/paper-button.git",
"_target": "~1.0.1", "_target": "~1.0.1",

View file

@ -1,6 +1,6 @@
{ {
"name": "paper-button", "name": "paper-button",
"version": "1.0.9", "version": "1.0.10",
"description": "Material design button", "description": "Material design button",
"authors": [ "authors": [
"The Polymer Authors" "The Polymer Authors"
@ -29,9 +29,10 @@
}, },
"devDependencies": { "devDependencies": {
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0",
"web-component-tester": "*", "web-component-tester": "polymer/web-component-tester#^3.4.0",
"test-fixture": "polymerelements/test-fixture#^1.0.0", "test-fixture": "polymerelements/test-fixture#^1.0.0",
"iron-component-page": "polymerelements/iron-component-page#^1.0.0", "iron-component-page": "polymerelements/iron-component-page#^1.0.0",
"iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0",
"iron-icon": "polymerelements/iron-icon#^1.0.0", "iron-icon": "polymerelements/iron-icon#^1.0.0",
"iron-icons": "polymerelements/iron-icons#^1.0.0", "iron-icons": "polymerelements/iron-icons#^1.0.0",
"iron-test-helpers": "polymerelements/iron-test-helpers#^1.0.0", "iron-test-helpers": "polymerelements/iron-test-helpers#^1.0.0",

View file

@ -19,136 +19,104 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
<title>paper-button demo</title> <title>paper-button demo</title>
<script src="../../webcomponentsjs/webcomponents-lite.js"></script> <script src="../../webcomponentsjs/webcomponents-lite.js"></script>
<link rel="import" href="../../paper-styles/color.html"> <link rel="import" href="../../iron-demo-helpers/demo-snippet.html">
<link rel="import" href="../../paper-styles/demo-pages.html"> <link rel="import" href="../../iron-demo-helpers/demo-pages-shared-styles.html">
<link rel="import" href="../../iron-icons/iron-icons.html"> <link rel="import" href="../../iron-icons/iron-icons.html">
<link rel="import" href="../../paper-styles/color.html">
<link rel="import" href="../paper-button.html"> <link rel="import" href="../paper-button.html">
<style is="custom-style"> <style is="custom-style" include="demo-pages-shared-styles">
.horizontal-section { .vertical-section-container {
min-width: 130px; max-width: 500px;
} }
paper-button { paper-button {
display: block; margin-left: 10px;
margin-bottom: 24px; margin-right: 10px;
} }
paper-button.colorful {
color: #4285f4;
}
paper-button[raised].colorful {
background: #4285f4;
color: #fff;
}
paper-button[toggles] {
transition: all 0.3s;
}
paper-button[toggles][active] {
background-color: rgba(0, 0, 0, 0.25);
}
paper-button[toggles][active].colorful {
background-color: rgba(66, 133, 244, 0.25);
}
paper-button[toggles][active][raised].colorful {
background-color: rgba(66, 133, 244, 0.75);
}
paper-button.blue {
color: var(--paper-light-blue-500);
--paper-button-flat-focus-color: var(--paper-light-blue-50);
}
paper-button.blue:hover {
background: var(--paper-light-blue-50);
}
paper-button.red {
color: var(--paper-red-500);
--paper-button-flat-focus-color: var(--paper-red-50);
}
paper-button.red:hover {
background: var(--paper-red-50);
}
paper-button.green {
color: var(--paper-green-500);
--paper-button-flat-focus-color: var(--paper-green-50);
}
paper-button.green:hover {
background: var(--paper-green-50);
}
paper-button.orange {
color: var(--paper-orange-500);
--paper-button-flat-focus-color: var(--paper-orange-50);
}
paper-button.orange:hover {
background: var(--paper-orange-50);
}
paper-button.hover:hover {
background: #eee;
}
paper-button.ripple {
--paper-button-ink-color: var(--paper-pink-a200);
}
</style> </style>
</head> </head>
<body unresolved> <body unresolved>
<div class="horizontal-section-container"> <div class="vertical-section-container centered">
<div> <h3>Buttons can be flat, raised, toggleable, or disabled</h3>
<h4>Flat</h4> <demo-snippet class="centered-demo">
<div class="horizontal-section"> <template>
<paper-button tabindex="0">button</paper-button> <paper-button>link</paper-button>
<paper-button tabindex="0" class="colorful">colorful</paper-button> <paper-button raised>raised</paper-button>
<paper-button tabindex="0" disabled>disabled</paper-button> <paper-button toggles raised>toggles</paper-button>
<paper-button tabindex="0" noink>noink</paper-button> <paper-button disabled>disabled</paper-button>
<paper-button tabindex="0" class="colorful custom"><iron-icon icon="check"></iron-icon>ok</paper-button> </template>
<paper-button tabindex="0" class="custom"><iron-icon icon="clear"></iron-icon>cancel</paper-button> </demo-snippet>
</div> <h3>Buttons can have icons</h3>
</div> <demo-snippet class="centered-demo">
<template>
<paper-button><iron-icon icon="check"></iron-icon>link</paper-button>
<paper-button raised><iron-icon icon="file-download"></iron-icon>raised</paper-button>
<paper-button toggles raised><iron-icon icon="favorite"></iron-icon>toggles</paper-button>
<paper-button disabled><iron-icon icon="block"></iron-icon>disabled</paper-button>
</template>
</demo-snippet>
<div> <h3>Buttons can hide the ripple effect using the <i>noink</i> attribute</h3>
<h4>Raised</h4> <demo-snippet class="centered-demo">
<div class="horizontal-section"> <template>
<paper-button tabindex="0" raised>button</paper-button> <paper-button noink>link</paper-button>
<paper-button tabindex="0" raised class="colorful">colorful</paper-button> <paper-button raised noink>raised</paper-button>
<paper-button tabindex="0" raised disabled>disabled</paper-button> <paper-button toggles raised noink>toggles</paper-button>
<paper-button tabindex="0" raised noink>noink</paper-button> <paper-button disabled noink>disabled</paper-button>
<paper-button tabindex="0" raised class="colorful custom"><iron-icon icon="check"></iron-icon>ok</paper-button> </template>
<paper-button tabindex="0" raised class="custom"><iron-icon icon="clear"></iron-icon>cancel</paper-button> </demo-snippet>
</div>
</div>
<div> <h3>Buttons can be styled using custom properties</h3>
<h4>Toggleable</h4> <demo-snippet class="centered-demo">
<div class="horizontal-section"> <template>
<paper-button tabindex="0" toggles>button</paper-button> <paper-button class="custom pink">link</paper-button>
<paper-button tabindex="0" toggles raised noink>noink</paper-button> <paper-button raised class="custom indigo">raised</paper-button>
<paper-button tabindex="0" toggles active class="colorful">colorful</paper-button> <paper-button toggles raised class="custom green">toggles</paper-button>
<paper-button tabindex="0" toggles raised active class="colorful">colorful</paper-button> <paper-button disabled class="custom disabled">disabled</paper-button>
<paper-button tabindex="0" toggles class="colorful custom"><iron-icon icon="check"></iron-icon>ok</paper-button>
<paper-button tabindex="0" toggles class="custom"><iron-icon icon="clear"></iron-icon>cancel</paper-button>
</div>
</div>
<div> <style is="custom-style">
<h4>Color</h4> paper-button.custom {
<div class="horizontal-section"> --paper-button-ink-color: var(--paper-pink-a200);
<paper-button tabindex="0" class="blue ripple">button</paper-button> /* These could also be individually defined for each of the
<paper-button tabindex="0" class="red ripple">noink</paper-button> specific css classes, but we'll just do it once as an example */
<paper-button tabindex="0" class="orange ripple">colorful</paper-button> --paper-button-flat-keyboard-focus: {
<paper-button tabindex="0" class="green ripple">colorful</paper-button> background-color: var(--paper-pink-a200);
<paper-button tabindex="0" class="red ripple"><iron-icon icon="check"></iron-icon>ok</paper-button> color: white !important;
<paper-button tabindex="0" class="blue ripple"><iron-icon icon="clear"></iron-icon>cancel</paper-button> };
</div> --paper-button-raised-keyboard-focus: {
</div> background-color: var(--paper-pink-a200) !important;
color: white !important;
};
}
paper-button.custom:hover {
background-color: var(--paper-indigo-100);
}
paper-button.pink {
color: var(--paper-pink-a200);
}
paper-button.indigo {
background-color: var(--paper-indigo-500);
color: white;
--paper-button-raised-keyboard-focus: {
background-color: var(--paper-pink-a200) !important;
color: white !important;
};
}
paper-button.green {
background-color: var(--paper-green-500);
color: white;
}
paper-button.green[active] {
background-color: var(--paper-red-500);
}
paper-button.disabled {
color: white;
}
</style>
</template>
</demo-snippet>
</div> </div>
</body> </body>
</html> </html>

View file

@ -16,12 +16,10 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
<script src="../../webcomponentsjs/webcomponents-lite.js"></script> <script src="../../webcomponentsjs/webcomponents-lite.js"></script>
<script src="../../web-component-tester/browser.js"></script> <script src="../../web-component-tester/browser.js"></script>
<script src="../../test-fixture/test-fixture-mocha.js"></script>
<script src="../../iron-test-helpers/mock-interactions.js"></script> <script src="../../iron-test-helpers/mock-interactions.js"></script>
<link rel="import" href="../paper-button.html"> <link rel="import" href="../paper-button.html">
<link rel="import" href="../../test-fixture/test-fixture.html">
</head> </head>
<body> <body>
@ -85,7 +83,7 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
test('has aria role "button"', function() { test('has aria role "button"', function() {
expect(button.getAttribute('role')).to.be.eql('button'); expect(button.getAttribute('role')).to.be.eql('button');
}); });
a11ySuite('TrivialButton'); a11ySuite('TrivialButton');
}); });

View file

@ -37,7 +37,7 @@
"tag": "v1.0.4", "tag": "v1.0.4",
"commit": "05f3800d37f8c5cad63ac2cf279f01bffb7d4fe8" "commit": "05f3800d37f8c5cad63ac2cf279f01bffb7d4fe8"
}, },
"_source": "git://github.com/polymerelements/paper-material.git", "_source": "git://github.com/PolymerElements/paper-material.git",
"_target": "^1.0.0", "_target": "^1.0.0",
"_originalSource": "polymerelements/paper-material" "_originalSource": "PolymerElements/paper-material"
} }

View file

@ -1,7 +1,7 @@
{ {
"name": "webcomponentsjs", "name": "webcomponentsjs",
"main": "webcomponents.js", "main": "webcomponents.js",
"version": "0.7.18", "version": "0.7.19",
"homepage": "http://webcomponents.org", "homepage": "http://webcomponents.org",
"authors": [ "authors": [
"The Polymer Authors" "The Polymer Authors"
@ -18,11 +18,11 @@
"devDependencies": { "devDependencies": {
"web-component-tester": "~3.3.10" "web-component-tester": "~3.3.10"
}, },
"_release": "0.7.18", "_release": "0.7.19",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "v0.7.18", "tag": "v0.7.19",
"commit": "acdd43ad41c15e1834458da01d228ab22a224051" "commit": "d2b2329a8453e93b0d0c4949bb83e7166088adaf"
}, },
"_source": "git://github.com/Polymer/webcomponentsjs.git", "_source": "git://github.com/Polymer/webcomponentsjs.git",
"_target": "^0.7.18", "_target": "^0.7.18",

View file

@ -7,7 +7,7 @@
* Code distributed by Google as part of the polymer project is also * Code distributed by Google as part of the polymer project is also
* subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
*/ */
// @version 0.7.18 // @version 0.7.19
if (typeof WeakMap === "undefined") { if (typeof WeakMap === "undefined") {
(function() { (function() {
var defineProperty = Object.defineProperty; var defineProperty = Object.defineProperty;

File diff suppressed because one or more lines are too long

View file

@ -7,7 +7,7 @@
* Code distributed by Google as part of the polymer project is also * Code distributed by Google as part of the polymer project is also
* subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
*/ */
// @version 0.7.18 // @version 0.7.19
if (typeof WeakMap === "undefined") { if (typeof WeakMap === "undefined") {
(function() { (function() {
var defineProperty = Object.defineProperty; var defineProperty = Object.defineProperty;

File diff suppressed because one or more lines are too long

View file

@ -7,7 +7,7 @@
* Code distributed by Google as part of the polymer project is also * Code distributed by Google as part of the polymer project is also
* subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
*/ */
// @version 0.7.18 // @version 0.7.19
if (typeof WeakMap === "undefined") { if (typeof WeakMap === "undefined") {
(function() { (function() {
var defineProperty = Object.defineProperty; var defineProperty = Object.defineProperty;

File diff suppressed because one or more lines are too long

View file

@ -7,7 +7,7 @@
* Code distributed by Google as part of the polymer project is also * Code distributed by Google as part of the polymer project is also
* subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
*/ */
// @version 0.7.18 // @version 0.7.19
if (typeof WeakMap === "undefined") { if (typeof WeakMap === "undefined") {
(function() { (function() {
var defineProperty = Object.defineProperty; var defineProperty = Object.defineProperty;
@ -2741,7 +2741,7 @@ window.ShadowDOMPolyfill = {};
enumerable: true enumerable: true
}); });
} }
[ "getBoundingClientRect", "getClientRects", "scrollIntoView" ].forEach(methodRequiresRendering); [ "focus", "getBoundingClientRect", "getClientRects", "scrollIntoView" ].forEach(methodRequiresRendering);
registerWrapper(OriginalHTMLElement, HTMLElement, document.createElement("b")); registerWrapper(OriginalHTMLElement, HTMLElement, document.createElement("b"));
scope.wrappers.HTMLElement = HTMLElement; scope.wrappers.HTMLElement = HTMLElement;
scope.getInnerHTML = getInnerHTML; scope.getInnerHTML = getInnerHTML;
@ -3364,6 +3364,7 @@ window.ShadowDOMPolyfill = {};
var setInnerHTML = scope.setInnerHTML; var setInnerHTML = scope.setInnerHTML;
var unsafeUnwrap = scope.unsafeUnwrap; var unsafeUnwrap = scope.unsafeUnwrap;
var unwrap = scope.unwrap; var unwrap = scope.unwrap;
var wrap = scope.wrap;
var shadowHostTable = new WeakMap(); var shadowHostTable = new WeakMap();
var nextOlderShadowTreeTable = new WeakMap(); var nextOlderShadowTreeTable = new WeakMap();
function ShadowRoot(hostWrapper) { function ShadowRoot(hostWrapper) {
@ -3399,6 +3400,22 @@ window.ShadowDOMPolyfill = {};
}, },
getSelection: function() { getSelection: function() {
return document.getSelection(); return document.getSelection();
},
get activeElement() {
var unwrappedActiveElement = unwrap(this).ownerDocument.activeElement;
if (!unwrappedActiveElement || !unwrappedActiveElement.nodeType) return null;
var activeElement = wrap(unwrappedActiveElement);
while (!this.contains(activeElement)) {
while (activeElement.parentNode) {
activeElement = activeElement.parentNode;
}
if (activeElement.host) {
activeElement = activeElement.host;
} else {
return null;
}
}
return activeElement;
} }
}); });
scope.wrappers.ShadowRoot = ShadowRoot; scope.wrappers.ShadowRoot = ShadowRoot;
@ -4063,6 +4080,7 @@ window.ShadowDOMPolyfill = {};
var ShadowRoot = scope.wrappers.ShadowRoot; var ShadowRoot = scope.wrappers.ShadowRoot;
var TreeScope = scope.TreeScope; var TreeScope = scope.TreeScope;
var cloneNode = scope.cloneNode; var cloneNode = scope.cloneNode;
var defineGetter = scope.defineGetter;
var defineWrapGetter = scope.defineWrapGetter; var defineWrapGetter = scope.defineWrapGetter;
var elementFromPoint = scope.elementFromPoint; var elementFromPoint = scope.elementFromPoint;
var forwardMethodsToWrapper = scope.forwardMethodsToWrapper; var forwardMethodsToWrapper = scope.forwardMethodsToWrapper;
@ -4086,6 +4104,23 @@ window.ShadowDOMPolyfill = {};
defineWrapGetter(Document, "documentElement"); defineWrapGetter(Document, "documentElement");
defineWrapGetter(Document, "body"); defineWrapGetter(Document, "body");
defineWrapGetter(Document, "head"); defineWrapGetter(Document, "head");
defineGetter(Document, "activeElement", function() {
var unwrappedActiveElement = unwrap(this).activeElement;
if (!unwrappedActiveElement || !unwrappedActiveElement.nodeType) return null;
var activeElement = wrap(unwrappedActiveElement);
while (!this.contains(activeElement)) {
var lastHost = activeElement;
while (activeElement.parentNode) {
activeElement = activeElement.parentNode;
}
if (activeElement.host) {
activeElement = activeElement.host;
} else {
return null;
}
}
return activeElement;
});
function wrapMethod(name) { function wrapMethod(name) {
var original = document[name]; var original = document[name];
Document.prototype[name] = function() { Document.prototype[name] = function() {

File diff suppressed because one or more lines are too long

View file

@ -1,7 +1,7 @@
{ {
"name": "webcomponentsjs", "name": "webcomponentsjs",
"main": "webcomponents.js", "main": "webcomponents.js",
"version": "0.7.18", "version": "0.7.19",
"homepage": "http://webcomponents.org", "homepage": "http://webcomponents.org",
"authors": [ "authors": [
"The Polymer Authors" "The Polymer Authors"

View file

@ -1,6 +1,6 @@
{ {
"name": "webcomponents.js", "name": "webcomponents.js",
"version": "0.7.18", "version": "0.7.19",
"description": "webcomponents.js", "description": "webcomponents.js",
"main": "webcomponents.js", "main": "webcomponents.js",
"directories": { "directories": {

View file

@ -7,7 +7,7 @@
* Code distributed by Google as part of the polymer project is also * Code distributed by Google as part of the polymer project is also
* subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
*/ */
// @version 0.7.18 // @version 0.7.19
(function() { (function() {
window.WebComponents = window.WebComponents || { window.WebComponents = window.WebComponents || {
flags: {} flags: {}

File diff suppressed because one or more lines are too long

View file

@ -7,7 +7,7 @@
* Code distributed by Google as part of the polymer project is also * Code distributed by Google as part of the polymer project is also
* subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
*/ */
// @version 0.7.18 // @version 0.7.19
(function() { (function() {
window.WebComponents = window.WebComponents || { window.WebComponents = window.WebComponents || {
flags: {} flags: {}
@ -2771,7 +2771,7 @@ if (WebComponents.flags.shadow) {
enumerable: true enumerable: true
}); });
} }
[ "getBoundingClientRect", "getClientRects", "scrollIntoView" ].forEach(methodRequiresRendering); [ "focus", "getBoundingClientRect", "getClientRects", "scrollIntoView" ].forEach(methodRequiresRendering);
registerWrapper(OriginalHTMLElement, HTMLElement, document.createElement("b")); registerWrapper(OriginalHTMLElement, HTMLElement, document.createElement("b"));
scope.wrappers.HTMLElement = HTMLElement; scope.wrappers.HTMLElement = HTMLElement;
scope.getInnerHTML = getInnerHTML; scope.getInnerHTML = getInnerHTML;
@ -3373,6 +3373,7 @@ if (WebComponents.flags.shadow) {
var setInnerHTML = scope.setInnerHTML; var setInnerHTML = scope.setInnerHTML;
var unsafeUnwrap = scope.unsafeUnwrap; var unsafeUnwrap = scope.unsafeUnwrap;
var unwrap = scope.unwrap; var unwrap = scope.unwrap;
var wrap = scope.wrap;
var shadowHostTable = new WeakMap(); var shadowHostTable = new WeakMap();
var nextOlderShadowTreeTable = new WeakMap(); var nextOlderShadowTreeTable = new WeakMap();
function ShadowRoot(hostWrapper) { function ShadowRoot(hostWrapper) {
@ -3408,6 +3409,22 @@ if (WebComponents.flags.shadow) {
}, },
getSelection: function() { getSelection: function() {
return document.getSelection(); return document.getSelection();
},
get activeElement() {
var unwrappedActiveElement = unwrap(this).ownerDocument.activeElement;
if (!unwrappedActiveElement || !unwrappedActiveElement.nodeType) return null;
var activeElement = wrap(unwrappedActiveElement);
while (!this.contains(activeElement)) {
while (activeElement.parentNode) {
activeElement = activeElement.parentNode;
}
if (activeElement.host) {
activeElement = activeElement.host;
} else {
return null;
}
}
return activeElement;
} }
}); });
scope.wrappers.ShadowRoot = ShadowRoot; scope.wrappers.ShadowRoot = ShadowRoot;
@ -4066,6 +4083,7 @@ if (WebComponents.flags.shadow) {
var ShadowRoot = scope.wrappers.ShadowRoot; var ShadowRoot = scope.wrappers.ShadowRoot;
var TreeScope = scope.TreeScope; var TreeScope = scope.TreeScope;
var cloneNode = scope.cloneNode; var cloneNode = scope.cloneNode;
var defineGetter = scope.defineGetter;
var defineWrapGetter = scope.defineWrapGetter; var defineWrapGetter = scope.defineWrapGetter;
var elementFromPoint = scope.elementFromPoint; var elementFromPoint = scope.elementFromPoint;
var forwardMethodsToWrapper = scope.forwardMethodsToWrapper; var forwardMethodsToWrapper = scope.forwardMethodsToWrapper;
@ -4089,6 +4107,23 @@ if (WebComponents.flags.shadow) {
defineWrapGetter(Document, "documentElement"); defineWrapGetter(Document, "documentElement");
defineWrapGetter(Document, "body"); defineWrapGetter(Document, "body");
defineWrapGetter(Document, "head"); defineWrapGetter(Document, "head");
defineGetter(Document, "activeElement", function() {
var unwrappedActiveElement = unwrap(this).activeElement;
if (!unwrappedActiveElement || !unwrappedActiveElement.nodeType) return null;
var activeElement = wrap(unwrappedActiveElement);
while (!this.contains(activeElement)) {
var lastHost = activeElement;
while (activeElement.parentNode) {
activeElement = activeElement.parentNode;
}
if (activeElement.host) {
activeElement = activeElement.host;
} else {
return null;
}
}
return activeElement;
});
function wrapMethod(name) { function wrapMethod(name) {
var original = document[name]; var original = document[name];
Document.prototype[name] = function() { Document.prototype[name] = function() {

File diff suppressed because one or more lines are too long