mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
comunication between components
This commit is contained in:
39
bower_components/iron-signals/.bower.json
vendored
Normal file
39
bower_components/iron-signals/.bower.json
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"name": "iron-signals",
|
||||
"version": "1.0.3",
|
||||
"description": "Basic publish-subscribe functionality",
|
||||
"keywords": [
|
||||
"web-component",
|
||||
"polymer",
|
||||
"signals"
|
||||
],
|
||||
"authors": [
|
||||
"The Polymer Authors"
|
||||
],
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/PolymerElements/iron-signals.git"
|
||||
},
|
||||
"main": "iron-signals.html",
|
||||
"license": "http://polymer.github.io/LICENSE.txt",
|
||||
"homepage": "https://github.com/PolymerElements/iron-signals/",
|
||||
"dependencies": {
|
||||
"polymer": "Polymer/polymer#^1.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"paper-styles": "PolymerElements/paper-styles#^1.0.2",
|
||||
"iron-component-page": "PolymerElements/iron-component-page#^1.0.0",
|
||||
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
|
||||
},
|
||||
"ignore": [],
|
||||
"_release": "1.0.3",
|
||||
"_resolution": {
|
||||
"type": "version",
|
||||
"tag": "v1.0.3",
|
||||
"commit": "95dbcefcc0fcb5c7c639d7bae35774269ac7081a"
|
||||
},
|
||||
"_source": "git://github.com/PolymerElements/iron-signals.git",
|
||||
"_target": "~1.0.3",
|
||||
"_originalSource": "PolymerElements/iron-signals",
|
||||
"_direct": true
|
||||
}
|
1
bower_components/iron-signals/.gitignore
vendored
Normal file
1
bower_components/iron-signals/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
bower_components
|
22
bower_components/iron-signals/.travis.yml
vendored
Normal file
22
bower_components/iron-signals/.travis.yml
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
language: node_js
|
||||
sudo: false
|
||||
before_script:
|
||||
- npm install web-component-tester
|
||||
- npm install bower
|
||||
- 'export PATH=$PWD/node_modules/.bin:$PATH'
|
||||
- bower install
|
||||
env:
|
||||
global:
|
||||
- secure: Ow7qCwI/k4tl7r491MyEcxOmnbBC2wQV9YifaBeiI6VPRmasy8I9NShIidVepv1EVznVcp+ZGGVeggpEFQWdnDGOKDORtjI0IoRkcHfzD9I+bAAJemnfhnrC/qJO6Ef620VdRofqyMQOBntpzU/ju5bZfl9D/Vp9Tqe2pOkDF6s=
|
||||
- secure: nBva4HhjWS/f43MrKNxVEImHW9csrV2aEAQhQjtLq8Tz8S7VwP1HqZfIgI2QQ7OEpYNVkz/3vQNutQWVCx6Pp/qmVfRt/K4oIsF7qIfSBz70hcv7AWxicOF3Lxf59peh7MZb8nFAZCMjGgZrmIgXUdJIve/8LaPXwYf+QuFBS68=
|
||||
node_js: 4
|
||||
addons:
|
||||
firefox: '42.0'
|
||||
apt:
|
||||
sources:
|
||||
- google-chrome
|
||||
packages:
|
||||
- google-chrome-stable
|
||||
script:
|
||||
- xvfb-run wct
|
||||
- "if [ \"${TRAVIS_PULL_REQUEST}\" = \"false\" ]; then wct -s 'default'; fi"
|
72
bower_components/iron-signals/CONTRIBUTING.md
vendored
Normal file
72
bower_components/iron-signals/CONTRIBUTING.md
vendored
Normal file
@@ -0,0 +1,72 @@
|
||||
|
||||
<!--
|
||||
This file is autogenerated based on
|
||||
https://github.com/PolymerElements/ContributionGuide/blob/master/CONTRIBUTING.md
|
||||
|
||||
If you edit that file, it will get updated everywhere else.
|
||||
If you edit this file, your changes will get overridden :)
|
||||
-->
|
||||
# Polymer Elements
|
||||
## Guide for Contributors
|
||||
|
||||
Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines:
|
||||
|
||||
### Filing Issues
|
||||
|
||||
**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions:
|
||||
|
||||
1. **Who will use the feature?** _“As someone filling out a form…”_
|
||||
2. **When will they use the feature?** _“When I enter an invalid value…”_
|
||||
3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_
|
||||
|
||||
**If you are filing an issue to report a bug**, please provide:
|
||||
|
||||
1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug:
|
||||
|
||||
```markdown
|
||||
The `paper-foo` element causes the page to turn pink when clicked.
|
||||
|
||||
## Expected outcome
|
||||
|
||||
The page stays the same color.
|
||||
|
||||
## Actual outcome
|
||||
|
||||
The page turns pink.
|
||||
|
||||
## Steps to reproduce
|
||||
|
||||
1. Put a `paper-foo` element in the page.
|
||||
2. Open the page in a web browser.
|
||||
3. Click the `paper-foo` element.
|
||||
```
|
||||
|
||||
2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [http://jsbin.com/cagaye](http://jsbin.com/cagaye/edit?html,output).
|
||||
|
||||
3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers.
|
||||
|
||||
### Submitting Pull Requests
|
||||
|
||||
**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request.
|
||||
|
||||
When submitting pull requests, please provide:
|
||||
|
||||
1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues using the following syntax:
|
||||
|
||||
```markdown
|
||||
(For a single issue)
|
||||
Fixes #20
|
||||
|
||||
(For multiple issues)
|
||||
Fixes #32, #40
|
||||
```
|
||||
|
||||
2. **A succinct description of the design** used to fix any related issues. For example:
|
||||
|
||||
```markdown
|
||||
This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked.
|
||||
```
|
||||
|
||||
3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered.
|
||||
|
||||
If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that!
|
38
bower_components/iron-signals/README.md
vendored
Normal file
38
bower_components/iron-signals/README.md
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
|
||||
<!---
|
||||
|
||||
This README is automatically generated from the comments in these files:
|
||||
iron-signals.html
|
||||
|
||||
Edit those files, and our readme bot will duplicate them over here!
|
||||
Edit this file, and the bot will squash your changes :)
|
||||
|
||||
-->
|
||||
|
||||
[](https://travis-ci.org/PolymerElements/iron-signals)
|
||||
|
||||
_[Demo and API Docs](https://elements.polymer-project.org/elements/iron-signals)_
|
||||
|
||||
|
||||
##<iron-signals>
|
||||
|
||||
|
||||
`iron-signals` provides basic publish-subscribe functionality.
|
||||
|
||||
Note: avoid using `iron-signals` whenever you can use
|
||||
a controller (parent element) to mediate communication
|
||||
instead.
|
||||
|
||||
To send a signal, fire a custom event of type `iron-signal`, with
|
||||
a detail object containing `name` and `data` fields.
|
||||
|
||||
this.fire('iron-signal', {name: 'hello', data: null});
|
||||
|
||||
To receive a signal, listen for `iron-signal-<name>` event on a
|
||||
`iron-signals` element.
|
||||
|
||||
<iron-signals on-iron-signal-hello="{{helloSignal}}">
|
||||
|
||||
You can fire a signal event from anywhere, and all
|
||||
`iron-signals` elements will receive the event, regardless
|
||||
of where they are in DOM.
|
29
bower_components/iron-signals/bower.json
vendored
Normal file
29
bower_components/iron-signals/bower.json
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"name": "iron-signals",
|
||||
"version": "1.0.3",
|
||||
"description": "Basic publish-subscribe functionality",
|
||||
"keywords": [
|
||||
"web-component",
|
||||
"polymer",
|
||||
"signals"
|
||||
],
|
||||
"authors": [
|
||||
"The Polymer Authors"
|
||||
],
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/PolymerElements/iron-signals.git"
|
||||
},
|
||||
"main": "iron-signals.html",
|
||||
"license": "http://polymer.github.io/LICENSE.txt",
|
||||
"homepage": "https://github.com/PolymerElements/iron-signals/",
|
||||
"dependencies": {
|
||||
"polymer": "Polymer/polymer#^1.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"paper-styles": "PolymerElements/paper-styles#^1.0.2",
|
||||
"iron-component-page": "PolymerElements/iron-component-page#^1.0.0",
|
||||
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
|
||||
},
|
||||
"ignore": []
|
||||
}
|
52
bower_components/iron-signals/demo/index.html
vendored
Normal file
52
bower_components/iron-signals/demo/index.html
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
<!doctype html>
|
||||
<!--
|
||||
@license
|
||||
Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
|
||||
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
|
||||
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
|
||||
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
|
||||
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
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<title>iron-signals demo</title>
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes">
|
||||
|
||||
<script src="../../webcomponentsjs/webcomponents-lite.js"></script>
|
||||
<link rel="import" href="../../paper-styles/demo-pages.html">
|
||||
<link rel="import" href="../iron-signals.html">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="vertical-section vertical-section-container centered">
|
||||
|
||||
<h1><iron-signal></h1>
|
||||
<template is="dom-bind" id="my-app">
|
||||
<iron-signals on-iron-signal-foo="fooSignal"></iron-signals>
|
||||
</template>
|
||||
|
||||
<template is="dom-bind" id="signal-message">
|
||||
<template is="dom-if" if="{{detail}}">
|
||||
<div><code>my-app</code> got a <code>{{detail}}</code> signal</div>
|
||||
</template>
|
||||
</template>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
document.addEventListener("WebComponentsReady", function() {
|
||||
document.querySelector('#my-app').fire('iron-signal', {name: "foo", data: "Foo!"});
|
||||
});
|
||||
|
||||
document.querySelector("#my-app").fooSignal = function(e, detail, sender) {
|
||||
document.querySelector("#signal-message").detail = detail;
|
||||
};
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
23
bower_components/iron-signals/index.html
vendored
Normal file
23
bower_components/iron-signals/index.html
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
<!doctype html>
|
||||
<!--
|
||||
@license
|
||||
Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
|
||||
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
|
||||
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
|
||||
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
|
||||
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
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
|
||||
<script src="../webcomponentsjs/webcomponents-lite.js"></script>
|
||||
<link rel="import" href="../iron-component-page/iron-component-page.html">
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<iron-component-page></iron-component-page>
|
||||
|
||||
</body>
|
||||
</html>
|
81
bower_components/iron-signals/iron-signals.html
vendored
Normal file
81
bower_components/iron-signals/iron-signals.html
vendored
Normal file
@@ -0,0 +1,81 @@
|
||||
<!--
|
||||
@license
|
||||
Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
|
||||
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
|
||||
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
|
||||
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
|
||||
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
|
||||
-->
|
||||
<link rel="import" href="../polymer/polymer.html">
|
||||
|
||||
<script>
|
||||
(function(){
|
||||
/**
|
||||
`iron-signals` provides basic publish-subscribe functionality.
|
||||
|
||||
Note: avoid using `iron-signals` whenever you can use
|
||||
a controller (parent element) to mediate communication
|
||||
instead.
|
||||
|
||||
To send a signal, fire a custom event of type `iron-signal`, with
|
||||
a detail object containing `name` and `data` fields.
|
||||
|
||||
this.fire('iron-signal', {name: 'hello', data: null});
|
||||
|
||||
To receive a signal, listen for `iron-signal-<name>` event on a
|
||||
`iron-signals` element.
|
||||
|
||||
<iron-signals on-iron-signal-hello="{{helloSignal}}">
|
||||
|
||||
You can fire a signal event from anywhere, and all
|
||||
`iron-signals` elements will receive the event, regardless
|
||||
of where they are in DOM.
|
||||
|
||||
@demo demo/index.html
|
||||
*/
|
||||
Polymer({
|
||||
is: 'iron-signals',
|
||||
|
||||
attached: function() {
|
||||
signals.push(this);
|
||||
},
|
||||
detached: function() {
|
||||
var i = signals.indexOf(this);
|
||||
if (i >= 0) {
|
||||
signals.splice(i, 1);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// private shared database
|
||||
var signals = [];
|
||||
|
||||
// signal dispatcher
|
||||
function notify(name, data) {
|
||||
// convert generic-signal event to named-signal event
|
||||
var signal = new CustomEvent('iron-signal-' + name, {
|
||||
// if signals bubble, it's easy to get confusing duplicates
|
||||
// (1) listen on a container on behalf of local child
|
||||
// (2) some deep child ignores the event and it bubbles
|
||||
// up to said container
|
||||
// (3) local child event bubbles up to container
|
||||
// also, for performance, we avoid signals flying up the
|
||||
// tree from all over the place
|
||||
bubbles: false,
|
||||
detail: data
|
||||
});
|
||||
// dispatch named-signal to all 'signals' instances,
|
||||
// only interested listeners will react
|
||||
signals.forEach(function(s) {
|
||||
s.dispatchEvent(signal);
|
||||
});
|
||||
}
|
||||
|
||||
// signal listener at document
|
||||
document.addEventListener('iron-signal', function(e) {
|
||||
notify(e.detail.name, e.detail.data);
|
||||
});
|
||||
|
||||
})();
|
||||
</script>
|
39
bower_components/polymer/.bower.json
vendored
Normal file
39
bower_components/polymer/.bower.json
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"name": "polymer",
|
||||
"version": "1.4.0",
|
||||
"main": [
|
||||
"polymer.html",
|
||||
"polymer-mini.html",
|
||||
"polymer-micro.html"
|
||||
],
|
||||
"license": "http://polymer.github.io/LICENSE.txt",
|
||||
"ignore": [
|
||||
"/.*",
|
||||
"/test/",
|
||||
"gen-changelog.sh"
|
||||
],
|
||||
"authors": [
|
||||
"The Polymer Authors (http://polymer.github.io/AUTHORS.txt)"
|
||||
],
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Polymer/polymer.git"
|
||||
},
|
||||
"dependencies": {
|
||||
"webcomponentsjs": "^0.7.20"
|
||||
},
|
||||
"devDependencies": {
|
||||
"web-component-tester": "*"
|
||||
},
|
||||
"private": true,
|
||||
"homepage": "https://github.com/Polymer/polymer",
|
||||
"_release": "1.4.0",
|
||||
"_resolution": {
|
||||
"type": "version",
|
||||
"tag": "v1.4.0",
|
||||
"commit": "11c987b2eb3c73b388a79fc8aaea8ca01624f514"
|
||||
},
|
||||
"_source": "git://github.com/Polymer/polymer.git",
|
||||
"_target": "^1.0.0",
|
||||
"_originalSource": "Polymer/polymer"
|
||||
}
|
27
bower_components/polymer/LICENSE.txt
vendored
Normal file
27
bower_components/polymer/LICENSE.txt
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
// Copyright (c) 2014 The Polymer Authors. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from
|
||||
// this software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
29
bower_components/polymer/bower.json
vendored
Normal file
29
bower_components/polymer/bower.json
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"name": "polymer",
|
||||
"version": "1.4.0",
|
||||
"main": [
|
||||
"polymer.html",
|
||||
"polymer-mini.html",
|
||||
"polymer-micro.html"
|
||||
],
|
||||
"license": "http://polymer.github.io/LICENSE.txt",
|
||||
"ignore": [
|
||||
"/.*",
|
||||
"/test/",
|
||||
"gen-changelog.sh"
|
||||
],
|
||||
"authors": [
|
||||
"The Polymer Authors (http://polymer.github.io/AUTHORS.txt)"
|
||||
],
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Polymer/polymer.git"
|
||||
},
|
||||
"dependencies": {
|
||||
"webcomponentsjs": "^0.7.20"
|
||||
},
|
||||
"devDependencies": {
|
||||
"web-component-tester": "*"
|
||||
},
|
||||
"private": true
|
||||
}
|
685
bower_components/polymer/polymer-micro.html
vendored
Normal file
685
bower_components/polymer/polymer-micro.html
vendored
Normal file
@@ -0,0 +1,685 @@
|
||||
<!--
|
||||
@license
|
||||
Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
|
||||
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
|
||||
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
|
||||
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
|
||||
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
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>(function () {
|
||||
function resolve() {
|
||||
document.body.removeAttribute('unresolved');
|
||||
}
|
||||
if (window.WebComponents) {
|
||||
addEventListener('WebComponentsReady', resolve);
|
||||
} else {
|
||||
if (document.readyState === 'interactive' || document.readyState === 'complete') {
|
||||
resolve();
|
||||
} else {
|
||||
addEventListener('DOMContentLoaded', resolve);
|
||||
}
|
||||
}
|
||||
}());
|
||||
window.Polymer = {
|
||||
Settings: function () {
|
||||
var settings = window.Polymer || {};
|
||||
var parts = location.search.slice(1).split('&');
|
||||
for (var i = 0, o; i < parts.length && (o = parts[i]); i++) {
|
||||
o = o.split('=');
|
||||
o[0] && (settings[o[0]] = o[1] || true);
|
||||
}
|
||||
settings.wantShadow = settings.dom === 'shadow';
|
||||
settings.hasShadow = Boolean(Element.prototype.createShadowRoot);
|
||||
settings.nativeShadow = settings.hasShadow && !window.ShadowDOMPolyfill;
|
||||
settings.useShadow = settings.wantShadow && settings.hasShadow;
|
||||
settings.hasNativeImports = Boolean('import' in document.createElement('link'));
|
||||
settings.useNativeImports = settings.hasNativeImports;
|
||||
settings.useNativeCustomElements = !window.CustomElements || window.CustomElements.useNative;
|
||||
settings.useNativeShadow = settings.useShadow && settings.nativeShadow;
|
||||
settings.usePolyfillProto = !settings.useNativeCustomElements && !Object.__proto__;
|
||||
return settings;
|
||||
}()
|
||||
};
|
||||
(function () {
|
||||
var userPolymer = window.Polymer;
|
||||
window.Polymer = function (prototype) {
|
||||
if (typeof prototype === 'function') {
|
||||
prototype = prototype.prototype;
|
||||
}
|
||||
if (!prototype) {
|
||||
prototype = {};
|
||||
}
|
||||
var factory = desugar(prototype);
|
||||
prototype = factory.prototype;
|
||||
var options = { prototype: prototype };
|
||||
if (prototype.extends) {
|
||||
options.extends = prototype.extends;
|
||||
}
|
||||
Polymer.telemetry._registrate(prototype);
|
||||
document.registerElement(prototype.is, options);
|
||||
return factory;
|
||||
};
|
||||
var desugar = function (prototype) {
|
||||
var base = Polymer.Base;
|
||||
if (prototype.extends) {
|
||||
base = Polymer.Base._getExtendedPrototype(prototype.extends);
|
||||
}
|
||||
prototype = Polymer.Base.chainObject(prototype, base);
|
||||
prototype.registerCallback();
|
||||
return prototype.constructor;
|
||||
};
|
||||
if (userPolymer) {
|
||||
for (var i in userPolymer) {
|
||||
Polymer[i] = userPolymer[i];
|
||||
}
|
||||
}
|
||||
Polymer.Class = desugar;
|
||||
}());
|
||||
Polymer.telemetry = {
|
||||
registrations: [],
|
||||
_regLog: function (prototype) {
|
||||
console.log('[' + prototype.is + ']: registered');
|
||||
},
|
||||
_registrate: function (prototype) {
|
||||
this.registrations.push(prototype);
|
||||
Polymer.log && this._regLog(prototype);
|
||||
},
|
||||
dumpRegistrations: function () {
|
||||
this.registrations.forEach(this._regLog);
|
||||
}
|
||||
};
|
||||
Object.defineProperty(window, 'currentImport', {
|
||||
enumerable: true,
|
||||
configurable: true,
|
||||
get: function () {
|
||||
return (document._currentScript || document.currentScript).ownerDocument;
|
||||
}
|
||||
});
|
||||
Polymer.RenderStatus = {
|
||||
_ready: false,
|
||||
_callbacks: [],
|
||||
whenReady: function (cb) {
|
||||
if (this._ready) {
|
||||
cb();
|
||||
} else {
|
||||
this._callbacks.push(cb);
|
||||
}
|
||||
},
|
||||
_makeReady: function () {
|
||||
this._ready = true;
|
||||
for (var i = 0; i < this._callbacks.length; i++) {
|
||||
this._callbacks[i]();
|
||||
}
|
||||
this._callbacks = [];
|
||||
},
|
||||
_catchFirstRender: function () {
|
||||
requestAnimationFrame(function () {
|
||||
Polymer.RenderStatus._makeReady();
|
||||
});
|
||||
},
|
||||
_afterNextRenderQueue: [],
|
||||
_waitingNextRender: false,
|
||||
afterNextRender: function (element, fn, args) {
|
||||
this._watchNextRender();
|
||||
this._afterNextRenderQueue.push([
|
||||
element,
|
||||
fn,
|
||||
args
|
||||
]);
|
||||
},
|
||||
_watchNextRender: function () {
|
||||
if (!this._waitingNextRender) {
|
||||
this._waitingNextRender = true;
|
||||
var fn = function () {
|
||||
Polymer.RenderStatus._flushNextRender();
|
||||
};
|
||||
if (!this._ready) {
|
||||
this.whenReady(fn);
|
||||
} else {
|
||||
requestAnimationFrame(fn);
|
||||
}
|
||||
}
|
||||
},
|
||||
_flushNextRender: function () {
|
||||
var self = this;
|
||||
setTimeout(function () {
|
||||
self._flushRenderCallbacks(self._afterNextRenderQueue);
|
||||
self._afterNextRenderQueue = [];
|
||||
self._waitingNextRender = false;
|
||||
});
|
||||
},
|
||||
_flushRenderCallbacks: function (callbacks) {
|
||||
for (var i = 0, h; i < callbacks.length; i++) {
|
||||
h = callbacks[i];
|
||||
h[1].apply(h[0], h[2] || Polymer.nar);
|
||||
}
|
||||
}
|
||||
};
|
||||
if (window.HTMLImports) {
|
||||
HTMLImports.whenReady(function () {
|
||||
Polymer.RenderStatus._catchFirstRender();
|
||||
});
|
||||
} else {
|
||||
Polymer.RenderStatus._catchFirstRender();
|
||||
}
|
||||
Polymer.ImportStatus = Polymer.RenderStatus;
|
||||
Polymer.ImportStatus.whenLoaded = Polymer.ImportStatus.whenReady;
|
||||
(function () {
|
||||
'use strict';
|
||||
var settings = Polymer.Settings;
|
||||
Polymer.Base = {
|
||||
__isPolymerInstance__: true,
|
||||
_addFeature: function (feature) {
|
||||
this.extend(this, feature);
|
||||
},
|
||||
registerCallback: function () {
|
||||
this._desugarBehaviors();
|
||||
this._doBehavior('beforeRegister');
|
||||
this._registerFeatures();
|
||||
if (!settings.lazyRegister) {
|
||||
this.ensureRegisterFinished();
|
||||
}
|
||||
},
|
||||
createdCallback: function () {
|
||||
if (!this.__hasRegisterFinished) {
|
||||
this._ensureRegisterFinished(this.__proto__);
|
||||
}
|
||||
Polymer.telemetry.instanceCount++;
|
||||
this.root = this;
|
||||
this._doBehavior('created');
|
||||
this._initFeatures();
|
||||
},
|
||||
ensureRegisterFinished: function () {
|
||||
this._ensureRegisterFinished(this);
|
||||
},
|
||||
_ensureRegisterFinished: function (proto) {
|
||||
if (proto.__hasRegisterFinished !== proto.is) {
|
||||
proto.__hasRegisterFinished = proto.is;
|
||||
if (proto._finishRegisterFeatures) {
|
||||
proto._finishRegisterFeatures();
|
||||
}
|
||||
proto._doBehavior('registered');
|
||||
}
|
||||
},
|
||||
attachedCallback: function () {
|
||||
var self = this;
|
||||
Polymer.RenderStatus.whenReady(function () {
|
||||
self.isAttached = true;
|
||||
self._doBehavior('attached');
|
||||
});
|
||||
},
|
||||
detachedCallback: function () {
|
||||
this.isAttached = false;
|
||||
this._doBehavior('detached');
|
||||
},
|
||||
attributeChangedCallback: function (name, oldValue, newValue) {
|
||||
this._attributeChangedImpl(name);
|
||||
this._doBehavior('attributeChanged', [
|
||||
name,
|
||||
oldValue,
|
||||
newValue
|
||||
]);
|
||||
},
|
||||
_attributeChangedImpl: function (name) {
|
||||
this._setAttributeToProperty(this, name);
|
||||
},
|
||||
extend: function (prototype, api) {
|
||||
if (prototype && api) {
|
||||
var n$ = Object.getOwnPropertyNames(api);
|
||||
for (var i = 0, n; i < n$.length && (n = n$[i]); i++) {
|
||||
this.copyOwnProperty(n, api, prototype);
|
||||
}
|
||||
}
|
||||
return prototype || api;
|
||||
},
|
||||
mixin: function (target, source) {
|
||||
for (var i in source) {
|
||||
target[i] = source[i];
|
||||
}
|
||||
return target;
|
||||
},
|
||||
copyOwnProperty: function (name, source, target) {
|
||||
var pd = Object.getOwnPropertyDescriptor(source, name);
|
||||
if (pd) {
|
||||
Object.defineProperty(target, name, pd);
|
||||
}
|
||||
},
|
||||
_log: console.log.apply.bind(console.log, console),
|
||||
_warn: console.warn.apply.bind(console.warn, console),
|
||||
_error: console.error.apply.bind(console.error, console),
|
||||
_logf: function () {
|
||||
return this._logPrefix.concat([this.is]).concat(Array.prototype.slice.call(arguments, 0));
|
||||
}
|
||||
};
|
||||
Polymer.Base._logPrefix = function () {
|
||||
var color = window.chrome || /firefox/i.test(navigator.userAgent);
|
||||
return color ? [
|
||||
'%c[%s::%s]:',
|
||||
'font-weight: bold; background-color:#EEEE00;'
|
||||
] : ['[%s::%s]:'];
|
||||
}();
|
||||
Polymer.Base.chainObject = function (object, inherited) {
|
||||
if (object && inherited && object !== inherited) {
|
||||
if (!Object.__proto__) {
|
||||
object = Polymer.Base.extend(Object.create(inherited), object);
|
||||
}
|
||||
object.__proto__ = inherited;
|
||||
}
|
||||
return object;
|
||||
};
|
||||
Polymer.Base = Polymer.Base.chainObject(Polymer.Base, HTMLElement.prototype);
|
||||
if (window.CustomElements) {
|
||||
Polymer.instanceof = CustomElements.instanceof;
|
||||
} else {
|
||||
Polymer.instanceof = function (obj, ctor) {
|
||||
return obj instanceof ctor;
|
||||
};
|
||||
}
|
||||
Polymer.isInstance = function (obj) {
|
||||
return Boolean(obj && obj.__isPolymerInstance__);
|
||||
};
|
||||
Polymer.telemetry.instanceCount = 0;
|
||||
}());
|
||||
(function () {
|
||||
var modules = {};
|
||||
var lcModules = {};
|
||||
var findModule = function (id) {
|
||||
return modules[id] || lcModules[id.toLowerCase()];
|
||||
};
|
||||
var DomModule = function () {
|
||||
return document.createElement('dom-module');
|
||||
};
|
||||
DomModule.prototype = Object.create(HTMLElement.prototype);
|
||||
Polymer.Base.extend(DomModule.prototype, {
|
||||
constructor: DomModule,
|
||||
createdCallback: function () {
|
||||
this.register();
|
||||
},
|
||||
register: function (id) {
|
||||
id = id || this.id || this.getAttribute('name') || this.getAttribute('is');
|
||||
if (id) {
|
||||
this.id = id;
|
||||
modules[id] = this;
|
||||
lcModules[id.toLowerCase()] = this;
|
||||
}
|
||||
},
|
||||
import: function (id, selector) {
|
||||
if (id) {
|
||||
var m = findModule(id);
|
||||
if (!m) {
|
||||
forceDomModulesUpgrade();
|
||||
m = findModule(id);
|
||||
}
|
||||
if (m && selector) {
|
||||
m = m.querySelector(selector);
|
||||
}
|
||||
return m;
|
||||
}
|
||||
}
|
||||
});
|
||||
var cePolyfill = window.CustomElements && !CustomElements.useNative;
|
||||
document.registerElement('dom-module', DomModule);
|
||||
function forceDomModulesUpgrade() {
|
||||
if (cePolyfill) {
|
||||
var script = document._currentScript || document.currentScript;
|
||||
var doc = script && script.ownerDocument || document;
|
||||
var modules = doc.querySelectorAll('dom-module');
|
||||
for (var i = modules.length - 1, m; i >= 0 && (m = modules[i]); i--) {
|
||||
if (m.__upgraded__) {
|
||||
return;
|
||||
} else {
|
||||
CustomElements.upgrade(m);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}());
|
||||
Polymer.Base._addFeature({
|
||||
_prepIs: function () {
|
||||
if (!this.is) {
|
||||
var module = (document._currentScript || document.currentScript).parentNode;
|
||||
if (module.localName === 'dom-module') {
|
||||
var id = module.id || module.getAttribute('name') || module.getAttribute('is');
|
||||
this.is = id;
|
||||
}
|
||||
}
|
||||
if (this.is) {
|
||||
this.is = this.is.toLowerCase();
|
||||
}
|
||||
}
|
||||
});
|
||||
Polymer.Base._addFeature({
|
||||
behaviors: [],
|
||||
_desugarBehaviors: function () {
|
||||
if (this.behaviors.length) {
|
||||
this.behaviors = this._desugarSomeBehaviors(this.behaviors);
|
||||
}
|
||||
},
|
||||
_desugarSomeBehaviors: function (behaviors) {
|
||||
var behaviorSet = [];
|
||||
behaviors = this._flattenBehaviorsList(behaviors);
|
||||
for (var i = behaviors.length - 1; i >= 0; i--) {
|
||||
var b = behaviors[i];
|
||||
if (behaviorSet.indexOf(b) === -1) {
|
||||
this._mixinBehavior(b);
|
||||
behaviorSet.unshift(b);
|
||||
}
|
||||
}
|
||||
return behaviorSet;
|
||||
},
|
||||
_flattenBehaviorsList: function (behaviors) {
|
||||
var flat = [];
|
||||
for (var i = 0; i < behaviors.length; i++) {
|
||||
var b = behaviors[i];
|
||||
if (b instanceof Array) {
|
||||
flat = flat.concat(this._flattenBehaviorsList(b));
|
||||
} else if (b) {
|
||||
flat.push(b);
|
||||
} else {
|
||||
this._warn(this._logf('_flattenBehaviorsList', 'behavior is null, check for missing or 404 import'));
|
||||
}
|
||||
}
|
||||
return flat;
|
||||
},
|
||||
_mixinBehavior: function (b) {
|
||||
var n$ = Object.getOwnPropertyNames(b);
|
||||
for (var i = 0, n; i < n$.length && (n = n$[i]); i++) {
|
||||
if (!Polymer.Base._behaviorProperties[n] && !this.hasOwnProperty(n)) {
|
||||
this.copyOwnProperty(n, b, this);
|
||||
}
|
||||
}
|
||||
},
|
||||
_prepBehaviors: function () {
|
||||
this._prepFlattenedBehaviors(this.behaviors);
|
||||
},
|
||||
_prepFlattenedBehaviors: function (behaviors) {
|
||||
for (var i = 0, l = behaviors.length; i < l; i++) {
|
||||
this._prepBehavior(behaviors[i]);
|
||||
}
|
||||
this._prepBehavior(this);
|
||||
},
|
||||
_doBehavior: function (name, args) {
|
||||
for (var i = 0; i < this.behaviors.length; i++) {
|
||||
this._invokeBehavior(this.behaviors[i], name, args);
|
||||
}
|
||||
this._invokeBehavior(this, name, args);
|
||||
},
|
||||
_invokeBehavior: function (b, name, args) {
|
||||
var fn = b[name];
|
||||
if (fn) {
|
||||
fn.apply(this, args || Polymer.nar);
|
||||
}
|
||||
},
|
||||
_marshalBehaviors: function () {
|
||||
for (var i = 0; i < this.behaviors.length; i++) {
|
||||
this._marshalBehavior(this.behaviors[i]);
|
||||
}
|
||||
this._marshalBehavior(this);
|
||||
}
|
||||
});
|
||||
Polymer.Base._behaviorProperties = {
|
||||
hostAttributes: true,
|
||||
beforeRegister: true,
|
||||
registered: true,
|
||||
properties: true,
|
||||
observers: true,
|
||||
listeners: true,
|
||||
created: true,
|
||||
attached: true,
|
||||
detached: true,
|
||||
attributeChanged: true,
|
||||
ready: true
|
||||
};
|
||||
Polymer.Base._addFeature({
|
||||
_getExtendedPrototype: function (tag) {
|
||||
return this._getExtendedNativePrototype(tag);
|
||||
},
|
||||
_nativePrototypes: {},
|
||||
_getExtendedNativePrototype: function (tag) {
|
||||
var p = this._nativePrototypes[tag];
|
||||
if (!p) {
|
||||
var np = this.getNativePrototype(tag);
|
||||
p = this.extend(Object.create(np), Polymer.Base);
|
||||
this._nativePrototypes[tag] = p;
|
||||
}
|
||||
return p;
|
||||
},
|
||||
getNativePrototype: function (tag) {
|
||||
return Object.getPrototypeOf(document.createElement(tag));
|
||||
}
|
||||
});
|
||||
Polymer.Base._addFeature({
|
||||
_prepConstructor: function () {
|
||||
this._factoryArgs = this.extends ? [
|
||||
this.extends,
|
||||
this.is
|
||||
] : [this.is];
|
||||
var ctor = function () {
|
||||
return this._factory(arguments);
|
||||
};
|
||||
if (this.hasOwnProperty('extends')) {
|
||||
ctor.extends = this.extends;
|
||||
}
|
||||
Object.defineProperty(this, 'constructor', {
|
||||
value: ctor,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
||||
ctor.prototype = this;
|
||||
},
|
||||
_factory: function (args) {
|
||||
var elt = document.createElement.apply(document, this._factoryArgs);
|
||||
if (this.factoryImpl) {
|
||||
this.factoryImpl.apply(elt, args);
|
||||
}
|
||||
return elt;
|
||||
}
|
||||
});
|
||||
Polymer.nob = Object.create(null);
|
||||
Polymer.Base._addFeature({
|
||||
properties: {},
|
||||
getPropertyInfo: function (property) {
|
||||
var info = this._getPropertyInfo(property, this.properties);
|
||||
if (!info) {
|
||||
for (var i = 0; i < this.behaviors.length; i++) {
|
||||
info = this._getPropertyInfo(property, this.behaviors[i].properties);
|
||||
if (info) {
|
||||
return info;
|
||||
}
|
||||
}
|
||||
}
|
||||
return info || Polymer.nob;
|
||||
},
|
||||
_getPropertyInfo: function (property, properties) {
|
||||
var p = properties && properties[property];
|
||||
if (typeof p === 'function') {
|
||||
p = properties[property] = { type: p };
|
||||
}
|
||||
if (p) {
|
||||
p.defined = true;
|
||||
}
|
||||
return p;
|
||||
},
|
||||
_prepPropertyInfo: function () {
|
||||
this._propertyInfo = {};
|
||||
for (var i = 0; i < this.behaviors.length; i++) {
|
||||
this._addPropertyInfo(this._propertyInfo, this.behaviors[i].properties);
|
||||
}
|
||||
this._addPropertyInfo(this._propertyInfo, this.properties);
|
||||
this._addPropertyInfo(this._propertyInfo, this._propertyEffects);
|
||||
},
|
||||
_addPropertyInfo: function (target, source) {
|
||||
if (source) {
|
||||
var t, s;
|
||||
for (var i in source) {
|
||||
t = target[i];
|
||||
s = source[i];
|
||||
if (i[0] === '_' && !s.readOnly) {
|
||||
continue;
|
||||
}
|
||||
if (!target[i]) {
|
||||
target[i] = {
|
||||
type: typeof s === 'function' ? s : s.type,
|
||||
readOnly: s.readOnly,
|
||||
attribute: Polymer.CaseMap.camelToDashCase(i)
|
||||
};
|
||||
} else {
|
||||
if (!t.type) {
|
||||
t.type = s.type;
|
||||
}
|
||||
if (!t.readOnly) {
|
||||
t.readOnly = s.readOnly;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
Polymer.CaseMap = {
|
||||
_caseMap: {},
|
||||
_rx: {
|
||||
dashToCamel: /-[a-z]/g,
|
||||
camelToDash: /([A-Z])/g
|
||||
},
|
||||
dashToCamelCase: function (dash) {
|
||||
return this._caseMap[dash] || (this._caseMap[dash] = dash.indexOf('-') < 0 ? dash : dash.replace(this._rx.dashToCamel, function (m) {
|
||||
return m[1].toUpperCase();
|
||||
}));
|
||||
},
|
||||
camelToDashCase: function (camel) {
|
||||
return this._caseMap[camel] || (this._caseMap[camel] = camel.replace(this._rx.camelToDash, '-$1').toLowerCase());
|
||||
}
|
||||
};
|
||||
Polymer.Base._addFeature({
|
||||
_addHostAttributes: function (attributes) {
|
||||
if (!this._aggregatedAttributes) {
|
||||
this._aggregatedAttributes = {};
|
||||
}
|
||||
if (attributes) {
|
||||
this.mixin(this._aggregatedAttributes, attributes);
|
||||
}
|
||||
},
|
||||
_marshalHostAttributes: function () {
|
||||
if (this._aggregatedAttributes) {
|
||||
this._applyAttributes(this, this._aggregatedAttributes);
|
||||
}
|
||||
},
|
||||
_applyAttributes: function (node, attr$) {
|
||||
for (var n in attr$) {
|
||||
if (!this.hasAttribute(n) && n !== 'class') {
|
||||
var v = attr$[n];
|
||||
this.serializeValueToAttribute(v, n, this);
|
||||
}
|
||||
}
|
||||
},
|
||||
_marshalAttributes: function () {
|
||||
this._takeAttributesToModel(this);
|
||||
},
|
||||
_takeAttributesToModel: function (model) {
|
||||
if (this.hasAttributes()) {
|
||||
for (var i in this._propertyInfo) {
|
||||
var info = this._propertyInfo[i];
|
||||
if (this.hasAttribute(info.attribute)) {
|
||||
this._setAttributeToProperty(model, info.attribute, i, info);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
_setAttributeToProperty: function (model, attribute, property, info) {
|
||||
if (!this._serializing) {
|
||||
property = property || Polymer.CaseMap.dashToCamelCase(attribute);
|
||||
info = info || this._propertyInfo && this._propertyInfo[property];
|
||||
if (info && !info.readOnly) {
|
||||
var v = this.getAttribute(attribute);
|
||||
model[property] = this.deserialize(v, info.type);
|
||||
}
|
||||
}
|
||||
},
|
||||
_serializing: false,
|
||||
reflectPropertyToAttribute: function (property, attribute, value) {
|
||||
this._serializing = true;
|
||||
value = value === undefined ? this[property] : value;
|
||||
this.serializeValueToAttribute(value, attribute || Polymer.CaseMap.camelToDashCase(property));
|
||||
this._serializing = false;
|
||||
},
|
||||
serializeValueToAttribute: function (value, attribute, node) {
|
||||
var str = this.serialize(value);
|
||||
node = node || this;
|
||||
if (str === undefined) {
|
||||
node.removeAttribute(attribute);
|
||||
} else {
|
||||
node.setAttribute(attribute, str);
|
||||
}
|
||||
},
|
||||
deserialize: function (value, type) {
|
||||
switch (type) {
|
||||
case Number:
|
||||
value = Number(value);
|
||||
break;
|
||||
case Boolean:
|
||||
value = value != null;
|
||||
break;
|
||||
case Object:
|
||||
try {
|
||||
value = JSON.parse(value);
|
||||
} catch (x) {
|
||||
}
|
||||
break;
|
||||
case Array:
|
||||
try {
|
||||
value = JSON.parse(value);
|
||||
} catch (x) {
|
||||
value = null;
|
||||
console.warn('Polymer::Attributes: couldn`t decode Array as JSON');
|
||||
}
|
||||
break;
|
||||
case Date:
|
||||
value = new Date(value);
|
||||
break;
|
||||
case String:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return value;
|
||||
},
|
||||
serialize: function (value) {
|
||||
switch (typeof value) {
|
||||
case 'boolean':
|
||||
return value ? '' : undefined;
|
||||
case 'object':
|
||||
if (value instanceof Date) {
|
||||
return value.toString();
|
||||
} else if (value) {
|
||||
try {
|
||||
return JSON.stringify(value);
|
||||
} catch (x) {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
default:
|
||||
return value != null ? value : undefined;
|
||||
}
|
||||
}
|
||||
});
|
||||
Polymer.version = '1.4.0';
|
||||
Polymer.Base._addFeature({
|
||||
_registerFeatures: function () {
|
||||
this._prepIs();
|
||||
this._prepBehaviors();
|
||||
this._prepConstructor();
|
||||
this._prepPropertyInfo();
|
||||
},
|
||||
_prepBehavior: function (b) {
|
||||
this._addHostAttributes(b.hostAttributes);
|
||||
},
|
||||
_marshalBehavior: function (b) {
|
||||
},
|
||||
_initFeatures: function () {
|
||||
this._marshalHostAttributes();
|
||||
this._marshalBehaviors();
|
||||
}
|
||||
});</script>
|
2166
bower_components/polymer/polymer-mini.html
vendored
Normal file
2166
bower_components/polymer/polymer-mini.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
4816
bower_components/polymer/polymer.html
vendored
Normal file
4816
bower_components/polymer/polymer.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
30
bower_components/webcomponentsjs/.bower.json
vendored
Normal file
30
bower_components/webcomponentsjs/.bower.json
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"name": "webcomponentsjs",
|
||||
"main": "webcomponents.js",
|
||||
"version": "0.7.21",
|
||||
"homepage": "http://webcomponents.org",
|
||||
"authors": [
|
||||
"The Polymer Authors"
|
||||
],
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/webcomponents/webcomponentsjs.git"
|
||||
},
|
||||
"keywords": [
|
||||
"webcomponents"
|
||||
],
|
||||
"license": "BSD",
|
||||
"ignore": [],
|
||||
"devDependencies": {
|
||||
"web-component-tester": "^4.0.1"
|
||||
},
|
||||
"_release": "0.7.21",
|
||||
"_resolution": {
|
||||
"type": "version",
|
||||
"tag": "v0.7.21",
|
||||
"commit": "19ffcd921e1aef84b55f515b00eb56e8e9116126"
|
||||
},
|
||||
"_source": "https://github.com/Polymer/webcomponentsjs.git",
|
||||
"_target": "^0.7.20",
|
||||
"_originalSource": "webcomponentsjs"
|
||||
}
|
1041
bower_components/webcomponentsjs/CustomElements.js
vendored
Normal file
1041
bower_components/webcomponentsjs/CustomElements.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
11
bower_components/webcomponentsjs/CustomElements.min.js
vendored
Normal file
11
bower_components/webcomponentsjs/CustomElements.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1157
bower_components/webcomponentsjs/HTMLImports.js
vendored
Normal file
1157
bower_components/webcomponentsjs/HTMLImports.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
11
bower_components/webcomponentsjs/HTMLImports.min.js
vendored
Normal file
11
bower_components/webcomponentsjs/HTMLImports.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
350
bower_components/webcomponentsjs/MutationObserver.js
vendored
Normal file
350
bower_components/webcomponentsjs/MutationObserver.js
vendored
Normal file
@@ -0,0 +1,350 @@
|
||||
/**
|
||||
* @license
|
||||
* Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
|
||||
* This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
|
||||
* The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
|
||||
* The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
|
||||
* 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
|
||||
*/
|
||||
// @version 0.7.21
|
||||
if (typeof WeakMap === "undefined") {
|
||||
(function() {
|
||||
var defineProperty = Object.defineProperty;
|
||||
var counter = Date.now() % 1e9;
|
||||
var WeakMap = function() {
|
||||
this.name = "__st" + (Math.random() * 1e9 >>> 0) + (counter++ + "__");
|
||||
};
|
||||
WeakMap.prototype = {
|
||||
set: function(key, value) {
|
||||
var entry = key[this.name];
|
||||
if (entry && entry[0] === key) entry[1] = value; else defineProperty(key, this.name, {
|
||||
value: [ key, value ],
|
||||
writable: true
|
||||
});
|
||||
return this;
|
||||
},
|
||||
get: function(key) {
|
||||
var entry;
|
||||
return (entry = key[this.name]) && entry[0] === key ? entry[1] : undefined;
|
||||
},
|
||||
"delete": function(key) {
|
||||
var entry = key[this.name];
|
||||
if (!entry || entry[0] !== key) return false;
|
||||
entry[0] = entry[1] = undefined;
|
||||
return true;
|
||||
},
|
||||
has: function(key) {
|
||||
var entry = key[this.name];
|
||||
if (!entry) return false;
|
||||
return entry[0] === key;
|
||||
}
|
||||
};
|
||||
window.WeakMap = WeakMap;
|
||||
})();
|
||||
}
|
||||
|
||||
(function(global) {
|
||||
if (global.JsMutationObserver) {
|
||||
return;
|
||||
}
|
||||
var registrationsTable = new WeakMap();
|
||||
var setImmediate;
|
||||
if (/Trident|Edge/.test(navigator.userAgent)) {
|
||||
setImmediate = setTimeout;
|
||||
} else if (window.setImmediate) {
|
||||
setImmediate = window.setImmediate;
|
||||
} else {
|
||||
var setImmediateQueue = [];
|
||||
var sentinel = String(Math.random());
|
||||
window.addEventListener("message", function(e) {
|
||||
if (e.data === sentinel) {
|
||||
var queue = setImmediateQueue;
|
||||
setImmediateQueue = [];
|
||||
queue.forEach(function(func) {
|
||||
func();
|
||||
});
|
||||
}
|
||||
});
|
||||
setImmediate = function(func) {
|
||||
setImmediateQueue.push(func);
|
||||
window.postMessage(sentinel, "*");
|
||||
};
|
||||
}
|
||||
var isScheduled = false;
|
||||
var scheduledObservers = [];
|
||||
function scheduleCallback(observer) {
|
||||
scheduledObservers.push(observer);
|
||||
if (!isScheduled) {
|
||||
isScheduled = true;
|
||||
setImmediate(dispatchCallbacks);
|
||||
}
|
||||
}
|
||||
function wrapIfNeeded(node) {
|
||||
return window.ShadowDOMPolyfill && window.ShadowDOMPolyfill.wrapIfNeeded(node) || node;
|
||||
}
|
||||
function dispatchCallbacks() {
|
||||
isScheduled = false;
|
||||
var observers = scheduledObservers;
|
||||
scheduledObservers = [];
|
||||
observers.sort(function(o1, o2) {
|
||||
return o1.uid_ - o2.uid_;
|
||||
});
|
||||
var anyNonEmpty = false;
|
||||
observers.forEach(function(observer) {
|
||||
var queue = observer.takeRecords();
|
||||
removeTransientObserversFor(observer);
|
||||
if (queue.length) {
|
||||
observer.callback_(queue, observer);
|
||||
anyNonEmpty = true;
|
||||
}
|
||||
});
|
||||
if (anyNonEmpty) dispatchCallbacks();
|
||||
}
|
||||
function removeTransientObserversFor(observer) {
|
||||
observer.nodes_.forEach(function(node) {
|
||||
var registrations = registrationsTable.get(node);
|
||||
if (!registrations) return;
|
||||
registrations.forEach(function(registration) {
|
||||
if (registration.observer === observer) registration.removeTransientObservers();
|
||||
});
|
||||
});
|
||||
}
|
||||
function forEachAncestorAndObserverEnqueueRecord(target, callback) {
|
||||
for (var node = target; node; node = node.parentNode) {
|
||||
var registrations = registrationsTable.get(node);
|
||||
if (registrations) {
|
||||
for (var j = 0; j < registrations.length; j++) {
|
||||
var registration = registrations[j];
|
||||
var options = registration.options;
|
||||
if (node !== target && !options.subtree) continue;
|
||||
var record = callback(options);
|
||||
if (record) registration.enqueue(record);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
var uidCounter = 0;
|
||||
function JsMutationObserver(callback) {
|
||||
this.callback_ = callback;
|
||||
this.nodes_ = [];
|
||||
this.records_ = [];
|
||||
this.uid_ = ++uidCounter;
|
||||
}
|
||||
JsMutationObserver.prototype = {
|
||||
observe: function(target, options) {
|
||||
target = wrapIfNeeded(target);
|
||||
if (!options.childList && !options.attributes && !options.characterData || options.attributeOldValue && !options.attributes || options.attributeFilter && options.attributeFilter.length && !options.attributes || options.characterDataOldValue && !options.characterData) {
|
||||
throw new SyntaxError();
|
||||
}
|
||||
var registrations = registrationsTable.get(target);
|
||||
if (!registrations) registrationsTable.set(target, registrations = []);
|
||||
var registration;
|
||||
for (var i = 0; i < registrations.length; i++) {
|
||||
if (registrations[i].observer === this) {
|
||||
registration = registrations[i];
|
||||
registration.removeListeners();
|
||||
registration.options = options;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!registration) {
|
||||
registration = new Registration(this, target, options);
|
||||
registrations.push(registration);
|
||||
this.nodes_.push(target);
|
||||
}
|
||||
registration.addListeners();
|
||||
},
|
||||
disconnect: function() {
|
||||
this.nodes_.forEach(function(node) {
|
||||
var registrations = registrationsTable.get(node);
|
||||
for (var i = 0; i < registrations.length; i++) {
|
||||
var registration = registrations[i];
|
||||
if (registration.observer === this) {
|
||||
registration.removeListeners();
|
||||
registrations.splice(i, 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}, this);
|
||||
this.records_ = [];
|
||||
},
|
||||
takeRecords: function() {
|
||||
var copyOfRecords = this.records_;
|
||||
this.records_ = [];
|
||||
return copyOfRecords;
|
||||
}
|
||||
};
|
||||
function MutationRecord(type, target) {
|
||||
this.type = type;
|
||||
this.target = target;
|
||||
this.addedNodes = [];
|
||||
this.removedNodes = [];
|
||||
this.previousSibling = null;
|
||||
this.nextSibling = null;
|
||||
this.attributeName = null;
|
||||
this.attributeNamespace = null;
|
||||
this.oldValue = null;
|
||||
}
|
||||
function copyMutationRecord(original) {
|
||||
var record = new MutationRecord(original.type, original.target);
|
||||
record.addedNodes = original.addedNodes.slice();
|
||||
record.removedNodes = original.removedNodes.slice();
|
||||
record.previousSibling = original.previousSibling;
|
||||
record.nextSibling = original.nextSibling;
|
||||
record.attributeName = original.attributeName;
|
||||
record.attributeNamespace = original.attributeNamespace;
|
||||
record.oldValue = original.oldValue;
|
||||
return record;
|
||||
}
|
||||
var currentRecord, recordWithOldValue;
|
||||
function getRecord(type, target) {
|
||||
return currentRecord = new MutationRecord(type, target);
|
||||
}
|
||||
function getRecordWithOldValue(oldValue) {
|
||||
if (recordWithOldValue) return recordWithOldValue;
|
||||
recordWithOldValue = copyMutationRecord(currentRecord);
|
||||
recordWithOldValue.oldValue = oldValue;
|
||||
return recordWithOldValue;
|
||||
}
|
||||
function clearRecords() {
|
||||
currentRecord = recordWithOldValue = undefined;
|
||||
}
|
||||
function recordRepresentsCurrentMutation(record) {
|
||||
return record === recordWithOldValue || record === currentRecord;
|
||||
}
|
||||
function selectRecord(lastRecord, newRecord) {
|
||||
if (lastRecord === newRecord) return lastRecord;
|
||||
if (recordWithOldValue && recordRepresentsCurrentMutation(lastRecord)) return recordWithOldValue;
|
||||
return null;
|
||||
}
|
||||
function Registration(observer, target, options) {
|
||||
this.observer = observer;
|
||||
this.target = target;
|
||||
this.options = options;
|
||||
this.transientObservedNodes = [];
|
||||
}
|
||||
Registration.prototype = {
|
||||
enqueue: function(record) {
|
||||
var records = this.observer.records_;
|
||||
var length = records.length;
|
||||
if (records.length > 0) {
|
||||
var lastRecord = records[length - 1];
|
||||
var recordToReplaceLast = selectRecord(lastRecord, record);
|
||||
if (recordToReplaceLast) {
|
||||
records[length - 1] = recordToReplaceLast;
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
scheduleCallback(this.observer);
|
||||
}
|
||||
records[length] = record;
|
||||
},
|
||||
addListeners: function() {
|
||||
this.addListeners_(this.target);
|
||||
},
|
||||
addListeners_: function(node) {
|
||||
var options = this.options;
|
||||
if (options.attributes) node.addEventListener("DOMAttrModified", this, true);
|
||||
if (options.characterData) node.addEventListener("DOMCharacterDataModified", this, true);
|
||||
if (options.childList) node.addEventListener("DOMNodeInserted", this, true);
|
||||
if (options.childList || options.subtree) node.addEventListener("DOMNodeRemoved", this, true);
|
||||
},
|
||||
removeListeners: function() {
|
||||
this.removeListeners_(this.target);
|
||||
},
|
||||
removeListeners_: function(node) {
|
||||
var options = this.options;
|
||||
if (options.attributes) node.removeEventListener("DOMAttrModified", this, true);
|
||||
if (options.characterData) node.removeEventListener("DOMCharacterDataModified", this, true);
|
||||
if (options.childList) node.removeEventListener("DOMNodeInserted", this, true);
|
||||
if (options.childList || options.subtree) node.removeEventListener("DOMNodeRemoved", this, true);
|
||||
},
|
||||
addTransientObserver: function(node) {
|
||||
if (node === this.target) return;
|
||||
this.addListeners_(node);
|
||||
this.transientObservedNodes.push(node);
|
||||
var registrations = registrationsTable.get(node);
|
||||
if (!registrations) registrationsTable.set(node, registrations = []);
|
||||
registrations.push(this);
|
||||
},
|
||||
removeTransientObservers: function() {
|
||||
var transientObservedNodes = this.transientObservedNodes;
|
||||
this.transientObservedNodes = [];
|
||||
transientObservedNodes.forEach(function(node) {
|
||||
this.removeListeners_(node);
|
||||
var registrations = registrationsTable.get(node);
|
||||
for (var i = 0; i < registrations.length; i++) {
|
||||
if (registrations[i] === this) {
|
||||
registrations.splice(i, 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}, this);
|
||||
},
|
||||
handleEvent: function(e) {
|
||||
e.stopImmediatePropagation();
|
||||
switch (e.type) {
|
||||
case "DOMAttrModified":
|
||||
var name = e.attrName;
|
||||
var namespace = e.relatedNode.namespaceURI;
|
||||
var target = e.target;
|
||||
var record = new getRecord("attributes", target);
|
||||
record.attributeName = name;
|
||||
record.attributeNamespace = namespace;
|
||||
var oldValue = e.attrChange === MutationEvent.ADDITION ? null : e.prevValue;
|
||||
forEachAncestorAndObserverEnqueueRecord(target, function(options) {
|
||||
if (!options.attributes) return;
|
||||
if (options.attributeFilter && options.attributeFilter.length && options.attributeFilter.indexOf(name) === -1 && options.attributeFilter.indexOf(namespace) === -1) {
|
||||
return;
|
||||
}
|
||||
if (options.attributeOldValue) return getRecordWithOldValue(oldValue);
|
||||
return record;
|
||||
});
|
||||
break;
|
||||
|
||||
case "DOMCharacterDataModified":
|
||||
var target = e.target;
|
||||
var record = getRecord("characterData", target);
|
||||
var oldValue = e.prevValue;
|
||||
forEachAncestorAndObserverEnqueueRecord(target, function(options) {
|
||||
if (!options.characterData) return;
|
||||
if (options.characterDataOldValue) return getRecordWithOldValue(oldValue);
|
||||
return record;
|
||||
});
|
||||
break;
|
||||
|
||||
case "DOMNodeRemoved":
|
||||
this.addTransientObserver(e.target);
|
||||
|
||||
case "DOMNodeInserted":
|
||||
var changedNode = e.target;
|
||||
var addedNodes, removedNodes;
|
||||
if (e.type === "DOMNodeInserted") {
|
||||
addedNodes = [ changedNode ];
|
||||
removedNodes = [];
|
||||
} else {
|
||||
addedNodes = [];
|
||||
removedNodes = [ changedNode ];
|
||||
}
|
||||
var previousSibling = changedNode.previousSibling;
|
||||
var nextSibling = changedNode.nextSibling;
|
||||
var record = getRecord("childList", e.target.parentNode);
|
||||
record.addedNodes = addedNodes;
|
||||
record.removedNodes = removedNodes;
|
||||
record.previousSibling = previousSibling;
|
||||
record.nextSibling = nextSibling;
|
||||
forEachAncestorAndObserverEnqueueRecord(e.relatedNode, function(options) {
|
||||
if (!options.childList) return;
|
||||
return record;
|
||||
});
|
||||
}
|
||||
clearRecords();
|
||||
}
|
||||
};
|
||||
global.JsMutationObserver = JsMutationObserver;
|
||||
if (!global.MutationObserver) {
|
||||
global.MutationObserver = JsMutationObserver;
|
||||
JsMutationObserver._isPolyfilled = true;
|
||||
}
|
||||
})(self);
|
11
bower_components/webcomponentsjs/MutationObserver.min.js
vendored
Normal file
11
bower_components/webcomponentsjs/MutationObserver.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
155
bower_components/webcomponentsjs/README.md
vendored
Normal file
155
bower_components/webcomponentsjs/README.md
vendored
Normal file
@@ -0,0 +1,155 @@
|
||||
webcomponents.js
|
||||
================
|
||||
|
||||
[](https://gitter.im/webcomponents/webcomponentsjs?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||
|
||||
A suite of polyfills supporting the [Web Components](http://webcomponents.org) specs:
|
||||
|
||||
**Custom Elements**: allows authors to define their own custom tags ([spec](https://w3c.github.io/webcomponents/spec/custom/)).
|
||||
|
||||
**HTML Imports**: a way to include and reuse HTML documents via other HTML documents ([spec](https://w3c.github.io/webcomponents/spec/imports/)).
|
||||
|
||||
**Shadow DOM**: provides encapsulation by hiding DOM subtrees under shadow roots ([spec](https://w3c.github.io/webcomponents/spec/shadow/)).
|
||||
|
||||
This also folds in polyfills for `MutationObserver` and `WeakMap`.
|
||||
|
||||
|
||||
## Releases
|
||||
|
||||
Pre-built (concatenated & minified) versions of the polyfills are maintained in the [tagged versions](https://github.com/webcomponents/webcomponentsjs/releases) of this repo. There are two variants:
|
||||
|
||||
`webcomponents.js` includes all of the polyfills.
|
||||
|
||||
`webcomponents-lite.js` includes all polyfills except for shadow DOM.
|
||||
|
||||
|
||||
## Browser Support
|
||||
|
||||
Our polyfills are intended to work in the latest versions of evergreen browsers. See below
|
||||
for our complete browser support matrix:
|
||||
|
||||
| Polyfill | IE10 | IE11+ | Chrome* | Firefox* | Safari 7+* | Chrome Android* | Mobile Safari* |
|
||||
| ---------- |:----:|:-----:|:-------:|:--------:|:----------:|:---------------:|:--------------:|
|
||||
| Custom Elements | ~ | ✓ | ✓ | ✓ | ✓ | ✓| ✓ |
|
||||
| HTML Imports | ~ | ✓ | ✓ | ✓ | ✓| ✓| ✓ |
|
||||
| Shadow DOM | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| Templates | ✓ | ✓ | ✓ | ✓| ✓ | ✓ | ✓ |
|
||||
|
||||
|
||||
*Indicates the current version of the browser
|
||||
|
||||
~Indicates support may be flaky. If using Custom Elements or HTML Imports with Shadow DOM,
|
||||
you will get the non-flaky Mutation Observer polyfill that Shadow DOM includes.
|
||||
|
||||
The polyfills may work in older browsers, however require additional polyfills (such as classList)
|
||||
to be used. We cannot guarantee support for browsers outside of our compatibility matrix.
|
||||
|
||||
|
||||
### Manually Building
|
||||
|
||||
If you wish to build the polyfills yourself, you'll need `node` and `gulp` on your system:
|
||||
|
||||
* install [node.js](http://nodejs.org/) using the instructions on their website
|
||||
* use `npm` to install [gulp.js](http://gulpjs.com/): `npm install -g gulp`
|
||||
|
||||
Now you are ready to build the polyfills with:
|
||||
|
||||
# install dependencies
|
||||
npm install
|
||||
# build
|
||||
gulp build
|
||||
|
||||
The builds will be placed into the `dist/` directory.
|
||||
|
||||
## Contribute
|
||||
|
||||
See the [contributing guide](CONTRIBUTING.md)
|
||||
|
||||
## License
|
||||
|
||||
Everything in this repository is BSD style license unless otherwise specified.
|
||||
|
||||
Copyright (c) 2015 The Polymer Authors. All rights reserved.
|
||||
|
||||
## Helper utilities
|
||||
|
||||
### `WebComponentsReady`
|
||||
|
||||
Under native HTML Imports, `<script>` tags in the main document block the loading of such imports. This is to ensure the imports have loaded and any registered elements in them have been upgraded.
|
||||
|
||||
The webcomponents.js and webcomponents-lite.js polyfills parse element definitions and handle their upgrade asynchronously. If prematurely fetching the element from the DOM before it has an opportunity to upgrade, you'll be working with an `HTMLUnknownElement`.
|
||||
|
||||
For these situations (or when you need an approximate replacement for the Polymer 0.5 `polymer-ready` behavior), you can use the `WebComponentsReady` event as a signal before interacting with the element. The criteria for this event to fire is all Custom Elements with definitions registered by the time HTML Imports available at load time have loaded have upgraded.
|
||||
|
||||
```js
|
||||
window.addEventListener('WebComponentsReady', function(e) {
|
||||
// imports are loaded and elements have been registered
|
||||
console.log('Components are ready');
|
||||
});
|
||||
```
|
||||
|
||||
## Known Issues
|
||||
|
||||
* [Limited CSS encapsulation](#encapsulation)
|
||||
* [Element wrapping / unwrapping limitations](#wrapping)
|
||||
* [Custom element's constructor property is unreliable](#constructor)
|
||||
* [Contenteditable elements do not trigger MutationObserver](#contentedit)
|
||||
* [ShadowCSS: :host-context(...):host(...) doesn't work](#hostcontext)
|
||||
* [ShadowCSS: :host(.zot:not(.bar:nth-child(2))) doesn't work](#nestedparens)
|
||||
* [HTML imports: document.currentScript doesn't work as expected](#currentscript)
|
||||
* [execCommand isn't supported under Shadow DOM](#execcommand)
|
||||
|
||||
### Limited CSS encapsulation <a id="encapsulation"></a>
|
||||
Under native Shadow DOM, CSS selectors cannot cross the shadow boundary. This means document level styles don't apply to shadow roots, and styles defined within a shadow root don't apply outside of that shadow root. [Several selectors](http://www.html5rocks.com/en/tutorials/webcomponents/shadowdom-201/) are provided to be able to deal with the shadow boundary.
|
||||
|
||||
The Shadow DOM polyfill can't prevent document styles from leaking into shadow roots. It can, however, encapsulate styles within shadow roots to some extent. This behavior isn't automatically emulated by the Shadow DOM polyfill, but it can be achieved by manually using the included ShadowCSS shim:
|
||||
|
||||
```
|
||||
WebComponents.ShadowCSS.shimStyling( shadowRoot, scope );
|
||||
```
|
||||
|
||||
... where `shadowRoot` is the shadow root of a DOM element, and `scope` is the name of the scope used to prefix the selectors. This removes all `<style>` elements from the shadow root, rewrites it rules using the given scope and reinserts the style as a document level stylesheet. Note that the `:host` and `:host-context` pseudo classes are also rewritten.
|
||||
|
||||
For a full explanation on the implementation and both the possibilities and the limitations of ShadowCSS please view the documentation in the [ShadowCSS source](src/ShadowCSS/ShadowCSS.js).
|
||||
|
||||
### Element wrapping / unwrapping limitations <a id="wrapping"></a>
|
||||
The Shadow DOM polyfill is implemented by [wrapping](http://webcomponents.org/polyfills/shadow-dom/#wrappers) DOM elements whenever possible. It does this by wrapping methods like `document.querySelector` to return wrapped DOM elements. This has a few caveats:
|
||||
* Not _everything_ can be wrapped. For example, elements like `document`, `window`, `document.body`, `document.fullscreenElement` and others are non-configurable and thus cannot be overridden.
|
||||
* Wrappers don't support [live NodeLists](https://developer.mozilla.org/en-US/docs/Web/API/NodeList#A_sometimes-live_collection) like `HTMLElement.childNodes` and `HTMLFormElement.elements`. All NodeLists are snapshotted upon read. See [#217](https://github.com/webcomponents/webcomponentsjs/issues/217) for an explanation.
|
||||
|
||||
In order to work around these limitations the polyfill provides the `ShadowDOMPolyfill.wrap` and `ShadowDOMPolyfill.unwrap` methods to respectively wrap and unwrap DOM elements manually.
|
||||
|
||||
### Custom element's constructor property is unreliable <a id="constructor"></a>
|
||||
See [#215](https://github.com/webcomponents/webcomponentsjs/issues/215) for background.
|
||||
|
||||
In Safari and IE, instances of Custom Elements have a `constructor` property of `HTMLUnknownElementConstructor` and `HTMLUnknownElement`, respectively. It's unsafe to rely on this property for checking element types.
|
||||
|
||||
It's worth noting that `customElement.__proto__.__proto__.constructor` is `HTMLElementPrototype` and that the prototype chain isn't modified by the polyfills(onto `ElementPrototype`, etc.)
|
||||
|
||||
### Contenteditable elements do not trigger MutationObserver <a id="contentedit"></a>
|
||||
Using the MutationObserver polyfill, it isn't possible to monitor mutations of an element marked `contenteditable`.
|
||||
See [the mailing list](https://groups.google.com/forum/#!msg/polymer-dev/LHdtRVXXVsA/v1sGoiTYWUkJ)
|
||||
|
||||
### ShadowCSS: :host-context(...):host(...) doesn't work <a id="hostcontext"></a>
|
||||
See [#16](https://github.com/webcomponents/webcomponentsjs/issues/16) for background.
|
||||
|
||||
Under the shadow DOM polyfill, rules like:
|
||||
```
|
||||
:host-context(.foo):host(.bar) {...}
|
||||
```
|
||||
don't work, despite working under native Shadow DOM. The solution is to use `polyfill-next-selector` like:
|
||||
|
||||
```
|
||||
polyfill-next-selector { content: '.foo :host.bar, :host.foo.bar'; }
|
||||
```
|
||||
|
||||
### ShadowCSS: :host(.zot:not(.bar:nth-child(2))) doesn't work <a id="nestedparens"></a>
|
||||
ShadowCSS `:host()` rules can only have (at most) 1-level of nested parentheses in its argument selector under ShadowCSS. For example, `:host(.zot)` and `:host(.zot:not(.bar))` both work, but `:host(.zot:not(.bar:nth-child(2)))` does not.
|
||||
|
||||
### HTML imports: document.currentScript doesn't work as expected <a id="currentscript"></a>
|
||||
In native HTML Imports, document.currentScript.ownerDocument references the import document itself. In the polyfill use document._currentScript.ownerDocument (note the underscore).
|
||||
|
||||
### execCommand and contenteditable isn't supported under Shadow DOM <a id="execcommand"></a>
|
||||
See [#212](https://github.com/webcomponents/webcomponentsjs/issues/212)
|
||||
|
||||
`execCommand`, and `contenteditable` aren't supported under the ShadowDOM polyfill, with commands that insert or remove nodes being especially prone to failure.
|
4493
bower_components/webcomponentsjs/ShadowDOM.js
vendored
Normal file
4493
bower_components/webcomponentsjs/ShadowDOM.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
13
bower_components/webcomponentsjs/ShadowDOM.min.js
vendored
Normal file
13
bower_components/webcomponentsjs/ShadowDOM.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
21
bower_components/webcomponentsjs/bower.json
vendored
Normal file
21
bower_components/webcomponentsjs/bower.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"name": "webcomponentsjs",
|
||||
"main": "webcomponents.js",
|
||||
"version": "0.7.21",
|
||||
"homepage": "http://webcomponents.org",
|
||||
"authors": [
|
||||
"The Polymer Authors"
|
||||
],
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/webcomponents/webcomponentsjs.git"
|
||||
},
|
||||
"keywords": [
|
||||
"webcomponents"
|
||||
],
|
||||
"license": "BSD",
|
||||
"ignore": [],
|
||||
"devDependencies": {
|
||||
"web-component-tester": "^4.0.1"
|
||||
}
|
||||
}
|
31
bower_components/webcomponentsjs/package.json
vendored
Normal file
31
bower_components/webcomponentsjs/package.json
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"name": "webcomponents.js",
|
||||
"version": "0.7.21",
|
||||
"description": "webcomponents.js",
|
||||
"main": "webcomponents.js",
|
||||
"directories": {
|
||||
"test": "tests"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/webcomponents/webcomponentsjs.git"
|
||||
},
|
||||
"author": "The Polymer Authors",
|
||||
"license": "BSD-3-Clause",
|
||||
"bugs": {
|
||||
"url": "https://github.com/webcomponents/webcomponentsjs/issues"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "wct"
|
||||
},
|
||||
"homepage": "http://webcomponents.org",
|
||||
"devDependencies": {
|
||||
"gulp": "^3.8.8",
|
||||
"gulp-audit": "^1.0.0",
|
||||
"gulp-concat": "^2.4.1",
|
||||
"gulp-header": "^1.1.1",
|
||||
"gulp-uglify": "^1.0.1",
|
||||
"run-sequence": "^1.0.1",
|
||||
"web-component-tester": "^4.0.1"
|
||||
}
|
||||
}
|
2501
bower_components/webcomponentsjs/webcomponents-lite.js
vendored
Normal file
2501
bower_components/webcomponentsjs/webcomponents-lite.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
12
bower_components/webcomponentsjs/webcomponents-lite.min.js
vendored
Normal file
12
bower_components/webcomponentsjs/webcomponents-lite.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
7218
bower_components/webcomponentsjs/webcomponents.js
vendored
Normal file
7218
bower_components/webcomponentsjs/webcomponents.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
14
bower_components/webcomponentsjs/webcomponents.min.js
vendored
Normal file
14
bower_components/webcomponentsjs/webcomponents.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@@ -36,5 +36,8 @@ To receive a signal, listen for `iron-signal-<name>` event on a
|
||||
You can fire a signal event from anywhere, and all
|
||||
`iron-signals` elements will receive the event, regardless
|
||||
of where they are in DOM.
|
||||
<<<<<<< HEAD
|
||||
|
||||
|
||||
=======
|
||||
>>>>>>> comunication between components
|
||||
|
@@ -1,3 +1,4 @@
|
||||
<<<<<<< HEAD
|
||||
<!doctype html>
|
||||
<!--
|
||||
@license
|
||||
@@ -21,3 +22,28 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
|
||||
|
||||
</body>
|
||||
</html>
|
||||
=======
|
||||
<!doctype html>
|
||||
<!--
|
||||
@license
|
||||
Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
|
||||
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
|
||||
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
|
||||
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
|
||||
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
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
|
||||
<script src="../webcomponentsjs/webcomponents-lite.js"></script>
|
||||
<link rel="import" href="../iron-component-page/iron-component-page.html">
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<iron-component-page></iron-component-page>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
>>>>>>> comunication between components
|
||||
|
@@ -36,6 +36,14 @@ Or [download as ZIP](https://github.com/eromano/alfresco-file-list/archive/maste
|
||||
<alfresco-file-list></alfresco-file-list>
|
||||
```
|
||||
|
||||
# publish-subscribe functionality
|
||||
Add the code below to the main index.html in order to refresh the file list when a file is uploaded.
|
||||
|
||||
<template is="dom-bind" id="alfresco-app">
|
||||
<iron-signals on-iron-signal-uploaded="uploadedSignal"></iron-signals>
|
||||
</template>
|
||||
```
|
||||
|
||||
## Options
|
||||
|
||||
Attribute | Options | Default | Description
|
||||
|
@@ -9,6 +9,7 @@
|
||||
<link rel="import" href="../../../bower_components/paper-badge/paper-badge.html">
|
||||
<link rel="import" href="../../../bower_components/paper-item/paper-item.html">
|
||||
<link rel="import" href="../../../bower_components/paper-dropdown-menu/paper-dropdown-menu.html">
|
||||
<link rel="import" href="../../../bower_components/iron-signals/iron-signals.html">
|
||||
|
||||
<style>
|
||||
.pad {
|
||||
@@ -140,7 +141,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div lass="dropdowm menu">
|
||||
<paper-dropdown-menu class="custom" label="Actions" no-label-float>
|
||||
<paper-dropdown-menu class="custom pull-right" label="Actions" no-label-float>
|
||||
<paper-listbox class="dropdown-content">
|
||||
<paper-item>Download as Zip</paper-item>
|
||||
<paper-item>View Details</paper-item>
|
||||
@@ -187,6 +188,12 @@
|
||||
ready: function() {
|
||||
var initialFolder = 'swsdp/documentLibrary';
|
||||
this.fetchFolderFolder(initialFolder);
|
||||
var self = this;
|
||||
if(document.querySelector("#alfresco-app")) {
|
||||
document.querySelector("#alfresco-app").uploadedSignal = function (e, detail, sender) {
|
||||
self.fetchFolderFolder(initialFolder);
|
||||
};
|
||||
}
|
||||
},
|
||||
|
||||
fetchFolderFolder: function(slug) {
|
||||
|
@@ -8,3 +8,11 @@ To install simply run:
|
||||
```
|
||||
bower install --save file-upload
|
||||
```
|
||||
|
||||
# publish-subscribe functionality
|
||||
Add the code below to the main index.html in order to publish an event when a file is uploaded. This event is used by the others components to refresh or make action.
|
||||
|
||||
<template is="dom-bind" id="alfresco-app">
|
||||
<iron-signals on-iron-signal-uploaded="uploadedSignal"></iron-signals>
|
||||
</template>
|
||||
```
|
@@ -17,7 +17,8 @@ Example:
|
||||
|
||||
<link rel="import" href="../../bower_components/paper-button/paper-button.html">
|
||||
<link rel="import" href="../../bower_components/paper-progress/paper-progress.html">
|
||||
<link rel="import" href="../../bower_components/iron-icons/iron-icons.html">
|
||||
<link rel="import" href="../../bower_components/iron-icons/iron-icons.html">
|
||||
<link rel="import" href="../../bower_components/iron-signals/iron-signals.html">
|
||||
|
||||
<dom-module id="file-upload">
|
||||
|
||||
@@ -37,6 +38,14 @@ Example:
|
||||
@apply(--file-upload-upload-border-hover);
|
||||
}
|
||||
|
||||
.file{
|
||||
width: 100%;
|
||||
}
|
||||
.name{
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
#UploadBorder{
|
||||
vertical-align: middle;
|
||||
color: #555;
|
||||
@@ -494,6 +503,9 @@ Example:
|
||||
if (xhr.status === 200) {
|
||||
self.fire("success", {xhr: xhr});
|
||||
self.set(prefix + ".complete", true);
|
||||
if(document.querySelector("#alfresco-app")) {
|
||||
document.querySelector('#alfresco-app').fire('iron-signal', {name: "uploaded", data: "uploaded!"});
|
||||
}
|
||||
} else {
|
||||
self.set(prefix + ".error", true);
|
||||
self.set(prefix + ".complete", false);
|
||||
|
Reference in New Issue
Block a user