polymer-rails 1.0.4 → 1.0.5
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e40e30b7007b492a4b32e84754661b1441b7af1a
|
4
|
+
data.tar.gz: 1999c495dddebfa76d167862a416e06119be8278
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 08f7e97bcac7c8b53ffae4a644f1c6be4784a0b05b175a5dd0686cbe5ec2ed838369e451893ae3e56e221c4a7fa5fb1cd421b210f0c89683916bd595ce7cc679
|
7
|
+
data.tar.gz: e93d4fe5e29818b0f6473319fa5e83b62db7f5f7671c64afd41b0907bf5eb89e9f7591b5a39ce4c119fed07850b723f8be904e2c27a3ec48045138a04fb0167b
|
@@ -125,6 +125,12 @@ this.copyOwnProperty(n, api, prototype);
|
|
125
125
|
}
|
126
126
|
return prototype || api;
|
127
127
|
},
|
128
|
+
mixin: function (target, source) {
|
129
|
+
for (var i in source) {
|
130
|
+
target[i] = source[i];
|
131
|
+
}
|
132
|
+
return target;
|
133
|
+
},
|
128
134
|
copyOwnProperty: function (name, source, target) {
|
129
135
|
var pd = Object.getOwnPropertyDescriptor(source, name);
|
130
136
|
if (pd) {
|
@@ -500,7 +506,7 @@ debouncer.stop();
|
|
500
506
|
}
|
501
507
|
}
|
502
508
|
});
|
503
|
-
Polymer.version = '1.0.
|
509
|
+
Polymer.version = '1.0.5';
|
504
510
|
Polymer.Base._addFeature({
|
505
511
|
_registerFeatures: function () {
|
506
512
|
this._prepIs();
|
@@ -535,8 +535,8 @@ node._ownerShadyRoot = root;
|
|
535
535
|
return node._ownerShadyRoot;
|
536
536
|
},
|
537
537
|
_maybeDistribute: function (node, parent) {
|
538
|
-
var fragContent = node.nodeType === Node.DOCUMENT_FRAGMENT_NODE && node.querySelector(CONTENT);
|
539
|
-
var wrappedContent = fragContent && fragContent.parentNode.nodeType !== Node.DOCUMENT_FRAGMENT_NODE;
|
538
|
+
var fragContent = node.nodeType === Node.DOCUMENT_FRAGMENT_NODE && !node.__noContent && Polymer.dom(node).querySelector(CONTENT);
|
539
|
+
var wrappedContent = fragContent && Polymer.dom(fragContent).parentNode.nodeType !== Node.DOCUMENT_FRAGMENT_NODE;
|
540
540
|
var hasContent = fragContent || node.localName === CONTENT;
|
541
541
|
if (hasContent) {
|
542
542
|
var root = this._ownerShadyRootForNode(parent);
|
@@ -598,7 +598,7 @@ if (this._contains(container, content)) {
|
|
598
598
|
var dc$ = factory(content).getDistributedNodes();
|
599
599
|
for (var j = 0; j < dc$.length; j++) {
|
600
600
|
hostNeedsDist = true;
|
601
|
-
var node = dc$[
|
601
|
+
var node = dc$[j];
|
602
602
|
var parent = node.parentNode;
|
603
603
|
if (parent) {
|
604
604
|
removeFromComposedParent(parent, node);
|
@@ -764,6 +764,9 @@ this.domApi._distributeParent();
|
|
764
764
|
toggle: function () {
|
765
765
|
this.node.classList.toggle.apply(this.node.classList, arguments);
|
766
766
|
this.domApi._distributeParent();
|
767
|
+
},
|
768
|
+
contains: function () {
|
769
|
+
return this.node.classList.contains.apply(this.node.classList, arguments);
|
767
770
|
}
|
768
771
|
};
|
769
772
|
if (!Settings.useShadow) {
|
@@ -1050,9 +1053,6 @@ factory: factory
|
|
1050
1053
|
Polymer.Base._addFeature({
|
1051
1054
|
_prepShady: function () {
|
1052
1055
|
this._useContent = this._useContent || Boolean(this._template);
|
1053
|
-
if (this._useContent) {
|
1054
|
-
this._template._hasInsertionPoint = this._template.content.querySelector('content');
|
1055
|
-
}
|
1056
1056
|
},
|
1057
1057
|
_poolContent: function () {
|
1058
1058
|
if (this._useContent) {
|
@@ -1072,7 +1072,7 @@ this.shadyRoot = this.root;
|
|
1072
1072
|
this.shadyRoot._distributionClean = false;
|
1073
1073
|
this.shadyRoot._isShadyRoot = true;
|
1074
1074
|
this.shadyRoot._dirtyRoots = [];
|
1075
|
-
this.shadyRoot._insertionPoints = this.
|
1075
|
+
this.shadyRoot._insertionPoints = !this._notes || this._notes._hasContent ? this.shadyRoot.querySelectorAll('content') : [];
|
1076
1076
|
saveLightChildrenIfNeeded(this.shadyRoot);
|
1077
1077
|
this.shadyRoot.host = this;
|
1078
1078
|
},
|
@@ -54,6 +54,9 @@ var annote = {
|
|
54
54
|
bindings: [],
|
55
55
|
events: []
|
56
56
|
};
|
57
|
+
if (element.localName === 'content') {
|
58
|
+
list._hasContent = true;
|
59
|
+
}
|
57
60
|
this._parseChildNodesAnnotations(element, annote, list);
|
58
61
|
if (element.attributes) {
|
59
62
|
this._parseNodeAttributeAnnotations(element, annote, list);
|
@@ -889,50 +892,55 @@ Gestures.setTouchAction(node, DIRECTION_MAP[direction] || 'auto');
|
|
889
892
|
});
|
890
893
|
Polymer.Gestures = Gestures;
|
891
894
|
}());
|
892
|
-
Polymer.Async =
|
893
|
-
|
894
|
-
|
895
|
-
|
896
|
-
|
897
|
-
|
895
|
+
Polymer.Async = {
|
896
|
+
_currVal: 0,
|
897
|
+
_lastVal: 0,
|
898
|
+
_callbacks: [],
|
899
|
+
_twiddleContent: 0,
|
900
|
+
_twiddle: document.createTextNode(''),
|
901
|
+
run: function (callback, waitTime) {
|
898
902
|
if (waitTime > 0) {
|
899
903
|
return ~setTimeout(callback, waitTime);
|
900
904
|
} else {
|
901
|
-
|
902
|
-
|
903
|
-
return
|
904
|
-
}
|
905
|
+
this._twiddle.textContent = this._twiddleContent++;
|
906
|
+
this._callbacks.push(callback);
|
907
|
+
return this._currVal++;
|
905
908
|
}
|
906
|
-
|
909
|
+
},
|
910
|
+
cancel: function (handle) {
|
907
911
|
if (handle < 0) {
|
908
912
|
clearTimeout(~handle);
|
909
913
|
} else {
|
910
|
-
var idx = handle -
|
914
|
+
var idx = handle - this._lastVal;
|
911
915
|
if (idx >= 0) {
|
912
|
-
if (!
|
916
|
+
if (!this._callbacks[idx]) {
|
913
917
|
throw 'invalid async handle: ' + handle;
|
914
918
|
}
|
915
|
-
|
916
|
-
}
|
919
|
+
this._callbacks[idx] = null;
|
917
920
|
}
|
918
921
|
}
|
919
|
-
|
920
|
-
|
922
|
+
},
|
923
|
+
_atEndOfMicrotask: function () {
|
924
|
+
var len = this._callbacks.length;
|
921
925
|
for (var i = 0; i < len; i++) {
|
922
|
-
var cb =
|
926
|
+
var cb = this._callbacks[i];
|
923
927
|
if (cb) {
|
928
|
+
try {
|
924
929
|
cb();
|
930
|
+
} catch (e) {
|
931
|
+
i++;
|
932
|
+
this._callbacks.splice(0, i);
|
933
|
+
this._lastVal += i;
|
934
|
+
this._twiddle.textContent = this._twiddleContent++;
|
935
|
+
throw e;
|
925
936
|
}
|
926
937
|
}
|
927
|
-
callbacks.splice(0, len);
|
928
|
-
lastVal += len;
|
929
938
|
}
|
930
|
-
|
931
|
-
|
932
|
-
|
933
|
-
cancel: cancelAsync
|
939
|
+
this._callbacks.splice(0, len);
|
940
|
+
this._lastVal += len;
|
941
|
+
}
|
934
942
|
};
|
935
|
-
|
943
|
+
new (window.MutationObserver || JsMutationObserver)(Polymer.Async._atEndOfMicrotask.bind(Polymer.Async)).observe(Polymer.Async._twiddle, { characterData: true });
|
936
944
|
Polymer.Debounce = function () {
|
937
945
|
var Async = Polymer.Async;
|
938
946
|
var Debouncer = function (context) {
|
@@ -1087,11 +1095,6 @@ elt[n] = props[n];
|
|
1087
1095
|
}
|
1088
1096
|
}
|
1089
1097
|
return elt;
|
1090
|
-
},
|
1091
|
-
mixin: function (target, source) {
|
1092
|
-
for (var i in source) {
|
1093
|
-
target[i] = source[i];
|
1094
|
-
}
|
1095
1098
|
}
|
1096
1099
|
});
|
1097
1100
|
Polymer.Bind = {
|
@@ -1108,7 +1111,7 @@ _notifyChange: function (property) {
|
|
1108
1111
|
var eventName = Polymer.CaseMap.camelToDashCase(property) + '-changed';
|
1109
1112
|
this.fire(eventName, { value: this[property] }, { bubbles: false });
|
1110
1113
|
},
|
1111
|
-
|
1114
|
+
_propertySetter: function (property, value, effects, fromAbove) {
|
1112
1115
|
var old = this.__data__[property];
|
1113
1116
|
if (old !== value && (old === old || value === value)) {
|
1114
1117
|
this.__data__[property] = value;
|
@@ -1119,16 +1122,25 @@ if (this._propertyChanged) {
|
|
1119
1122
|
this._propertyChanged(property, value, old);
|
1120
1123
|
}
|
1121
1124
|
if (effects) {
|
1122
|
-
this._effectEffects(property, value, effects, old);
|
1125
|
+
this._effectEffects(property, value, effects, old, fromAbove);
|
1123
1126
|
}
|
1124
1127
|
}
|
1125
1128
|
return old;
|
1126
1129
|
},
|
1127
|
-
|
1130
|
+
__setProperty: function (property, value, quiet, node) {
|
1131
|
+
node = node || this;
|
1132
|
+
var effects = node._propertyEffects && node._propertyEffects[property];
|
1133
|
+
if (effects) {
|
1134
|
+
node._propertySetter(property, value, effects, quiet);
|
1135
|
+
} else {
|
1136
|
+
node[property] = value;
|
1137
|
+
}
|
1138
|
+
},
|
1139
|
+
_effectEffects: function (property, value, effects, old, fromAbove) {
|
1128
1140
|
effects.forEach(function (fx) {
|
1129
1141
|
var fn = Polymer.Bind['_' + fx.kind + 'Effect'];
|
1130
1142
|
if (fn) {
|
1131
|
-
fn.call(this, property, value, fx.effect, old);
|
1143
|
+
fn.call(this, property, value, fx.effect, old, fromAbove);
|
1132
1144
|
}
|
1133
1145
|
}, this);
|
1134
1146
|
},
|
@@ -1186,7 +1198,7 @@ return this.__data__[property];
|
|
1186
1198
|
}
|
1187
1199
|
};
|
1188
1200
|
var setter = function (value) {
|
1189
|
-
this.
|
1201
|
+
this._propertySetter(property, value, effects);
|
1190
1202
|
};
|
1191
1203
|
if (model.getPropertyInfo && model.getPropertyInfo(property).readOnly) {
|
1192
1204
|
model['_set' + this.upper(property)] = setter;
|
@@ -1260,11 +1272,13 @@ return this._applyEffectValue(calc, effect);
|
|
1260
1272
|
_reflectEffect: function (source) {
|
1261
1273
|
this.reflectPropertyToAttribute(source);
|
1262
1274
|
},
|
1263
|
-
_notifyEffect: function (source) {
|
1275
|
+
_notifyEffect: function (source, value, effect, old, fromAbove) {
|
1276
|
+
if (!fromAbove) {
|
1264
1277
|
this._notifyChange(source);
|
1278
|
+
}
|
1265
1279
|
},
|
1266
|
-
_functionEffect: function (source, value, fn, old) {
|
1267
|
-
fn.call(this, source, value, old);
|
1280
|
+
_functionEffect: function (source, value, fn, old, fromAbove) {
|
1281
|
+
fn.call(this, source, value, old, fromAbove);
|
1268
1282
|
},
|
1269
1283
|
_observerEffect: function (source, value, effect, old) {
|
1270
1284
|
var fn = this[effect.method];
|
@@ -1290,7 +1304,7 @@ var args = Polymer.Bind._marshalArgs(this.__data__, effect, source, value);
|
|
1290
1304
|
if (args) {
|
1291
1305
|
var fn = this[effect.method];
|
1292
1306
|
if (fn) {
|
1293
|
-
this
|
1307
|
+
this.__setProperty(effect.property, fn.apply(this, args));
|
1294
1308
|
} else {
|
1295
1309
|
this._warn(this._logf('_computeEffect', 'compute method `' + effect.method + '` not defined'));
|
1296
1310
|
}
|
@@ -1363,6 +1377,7 @@ if (prop.observer) {
|
|
1363
1377
|
this._addObserverEffect(p, prop.observer);
|
1364
1378
|
}
|
1365
1379
|
if (prop.computed) {
|
1380
|
+
prop.readOnly = true;
|
1366
1381
|
this._addComputedEffect(p, prop.computed);
|
1367
1382
|
}
|
1368
1383
|
if (prop.notify) {
|
@@ -1553,12 +1568,13 @@ this._configure();
|
|
1553
1568
|
},
|
1554
1569
|
_configure: function () {
|
1555
1570
|
this._configureAnnotationReferences();
|
1571
|
+
this._aboveConfig = this.mixin({}, this._config);
|
1556
1572
|
var config = {};
|
1557
1573
|
this.behaviors.forEach(function (b) {
|
1558
1574
|
this._configureProperties(b.properties, config);
|
1559
1575
|
}, this);
|
1560
1576
|
this._configureProperties(this.properties, config);
|
1561
|
-
this._mixinConfigure(config, this.
|
1577
|
+
this._mixinConfigure(config, this._aboveConfig);
|
1562
1578
|
this._config = config;
|
1563
1579
|
this._distributeConfig(this._config);
|
1564
1580
|
},
|
@@ -1602,18 +1618,13 @@ node._configValue(x.effect.name, value);
|
|
1602
1618
|
},
|
1603
1619
|
_afterClientsReady: function () {
|
1604
1620
|
this._executeStaticEffects();
|
1605
|
-
this._applyConfig(this._config);
|
1621
|
+
this._applyConfig(this._config, this._aboveConfig);
|
1606
1622
|
this._flushHandlers();
|
1607
1623
|
},
|
1608
|
-
_applyConfig: function (config) {
|
1624
|
+
_applyConfig: function (config, aboveConfig) {
|
1609
1625
|
for (var n in config) {
|
1610
1626
|
if (this[n] === undefined) {
|
1611
|
-
|
1612
|
-
if (effects) {
|
1613
|
-
this._propertySet(n, config[n], effects);
|
1614
|
-
} else {
|
1615
|
-
this[n] = config[n];
|
1616
|
-
}
|
1627
|
+
this.__setProperty(n, config[n], n in aboveConfig);
|
1617
1628
|
}
|
1618
1629
|
}
|
1619
1630
|
},
|
@@ -1642,7 +1653,7 @@ h[0].call(this, h[1], h[2]);
|
|
1642
1653
|
'use strict';
|
1643
1654
|
Polymer.Base._addFeature({
|
1644
1655
|
notifyPath: function (path, value, fromAbove) {
|
1645
|
-
var old = this.
|
1656
|
+
var old = this._propertySetter(path, value);
|
1646
1657
|
if (old !== value && (old === old || value === value)) {
|
1647
1658
|
this._pathEffector(path, value);
|
1648
1659
|
if (!fromAbove) {
|
@@ -1680,6 +1691,15 @@ return;
|
|
1680
1691
|
}
|
1681
1692
|
array = Array.isArray(prop) ? prop : null;
|
1682
1693
|
}
|
1694
|
+
if (array) {
|
1695
|
+
var coll = Polymer.Collection.get(array);
|
1696
|
+
var old = prop[last];
|
1697
|
+
var key = coll.getKey(old);
|
1698
|
+
if (key) {
|
1699
|
+
parts[i] = key;
|
1700
|
+
coll.setItem(key, value);
|
1701
|
+
}
|
1702
|
+
}
|
1683
1703
|
prop[last] = value;
|
1684
1704
|
if (!root) {
|
1685
1705
|
this.notifyPath(parts.join('.'), value);
|
@@ -1833,9 +1853,8 @@ return ret;
|
|
1833
1853
|
splice: function (path, start, deleteCount) {
|
1834
1854
|
var array = this.get(path);
|
1835
1855
|
var args = Array.prototype.slice.call(arguments, 1);
|
1836
|
-
var rem = array.slice(start, start + deleteCount);
|
1837
1856
|
var ret = array.splice.apply(array, args);
|
1838
|
-
this._notifySplice(array, path, start, args.length - 2,
|
1857
|
+
this._notifySplice(array, path, start, args.length - 2, ret);
|
1839
1858
|
return ret;
|
1840
1859
|
},
|
1841
1860
|
shift: function (path) {
|
@@ -1983,10 +2002,10 @@ var AT_START = '@';
|
|
1983
2002
|
var rx = {
|
1984
2003
|
comments: /\/\*[^*]*\*+([^/*][^*]*\*+)*\//gim,
|
1985
2004
|
port: /@import[^;]*;/gim,
|
1986
|
-
customProp: /(?:^|[\s;])--[^;{]*?:[^{};]
|
1987
|
-
mixinProp: /(?:^|[\s;])--[^;{]*?:[^{;]*?{[^}]*?}
|
1988
|
-
mixinApply: /@apply[\s]*\([^)]*?\)[\s]
|
1989
|
-
varApply: /[^;:]*?:[^;]*var[^;]
|
2005
|
+
customProp: /(?:^|[\s;])--[^;{]*?:[^{};]*?(?:[;\n]|$)/gim,
|
2006
|
+
mixinProp: /(?:^|[\s;])--[^;{]*?:[^{;]*?{[^}]*?}(?:[;\n]|$)?/gim,
|
2007
|
+
mixinApply: /@apply[\s]*\([^)]*?\)[\s]*(?:[;\n]|$)?/gim,
|
2008
|
+
varApply: /[^;:]*?:[^;]*var[^;]*(?:[;\n]|$)?/gim,
|
1990
2009
|
keyframesRule: /^@[^\s]*keyframes/
|
1991
2010
|
};
|
1992
2011
|
return api;
|
@@ -2162,25 +2181,33 @@ rule.selector = p$.join(COMPLEX_SELECTOR_SEP);
|
|
2162
2181
|
},
|
2163
2182
|
_transformComplexSelector: function (selector, scope, hostScope) {
|
2164
2183
|
var stop = false;
|
2184
|
+
var hostContext = false;
|
2165
2185
|
var self = this;
|
2166
2186
|
selector = selector.replace(SIMPLE_SELECTOR_SEP, function (m, c, s) {
|
2167
2187
|
if (!stop) {
|
2168
|
-
var
|
2169
|
-
|
2170
|
-
|
2171
|
-
|
2172
|
-
|
2173
|
-
s = o.value;
|
2188
|
+
var info = self._transformCompoundSelector(s, c, scope, hostScope);
|
2189
|
+
stop = stop || info.stop;
|
2190
|
+
hostContext = hostContext || info.hostContext;
|
2191
|
+
c = info.combinator;
|
2192
|
+
s = info.value;
|
2174
2193
|
} else {
|
2175
2194
|
s = s.replace(SCOPE_JUMP, ' ');
|
2176
2195
|
}
|
2177
2196
|
return c + s;
|
2178
2197
|
});
|
2198
|
+
if (hostContext) {
|
2199
|
+
selector = selector.replace(HOST_CONTEXT_PAREN, function (m, pre, paren, post) {
|
2200
|
+
return pre + paren + ' ' + hostScope + post + COMPLEX_SELECTOR_SEP + ' ' + pre + hostScope + paren + post;
|
2201
|
+
});
|
2202
|
+
}
|
2179
2203
|
return selector;
|
2180
2204
|
},
|
2181
2205
|
_transformCompoundSelector: function (selector, combinator, scope, hostScope) {
|
2182
2206
|
var jumpIndex = selector.search(SCOPE_JUMP);
|
2183
|
-
|
2207
|
+
var hostContext = false;
|
2208
|
+
if (selector.indexOf(HOST_CONTEXT) >= 0) {
|
2209
|
+
hostContext = true;
|
2210
|
+
} else if (selector.indexOf(HOST) >= 0) {
|
2184
2211
|
selector = selector.replace(HOST_PAREN, function (m, host, paren) {
|
2185
2212
|
return hostScope + paren;
|
2186
2213
|
});
|
@@ -2199,7 +2226,8 @@ stop = true;
|
|
2199
2226
|
return {
|
2200
2227
|
value: selector,
|
2201
2228
|
combinator: combinator,
|
2202
|
-
stop: stop
|
2229
|
+
stop: stop,
|
2230
|
+
hostContext: hostContext
|
2203
2231
|
};
|
2204
2232
|
},
|
2205
2233
|
_transformSimpleSelector: function (selector, scope) {
|
@@ -2231,6 +2259,8 @@ var SIMPLE_SELECTOR_SEP = /(^|[\s>+~]+)([^\s>+~]+)/g;
|
|
2231
2259
|
var HOST = ':host';
|
2232
2260
|
var ROOT = ':root';
|
2233
2261
|
var HOST_PAREN = /(\:host)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))/g;
|
2262
|
+
var HOST_CONTEXT = ':host-context';
|
2263
|
+
var HOST_CONTEXT_PAREN = /(.*)(?:\:host-context)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))(.*)/;
|
2234
2264
|
var CONTENT = '::content';
|
2235
2265
|
var SCOPE_JUMP = /\:\:content|\:\:shadow|\/deep\//;
|
2236
2266
|
var CSS_CLASS_PREFIX = '.';
|
@@ -2611,7 +2641,7 @@ var cssText = style ? style.textContent || '' : this.transformStyles(element, pr
|
|
2611
2641
|
var s = element._customStyle;
|
2612
2642
|
if (s && !nativeShadow && s !== style) {
|
2613
2643
|
s._useCount--;
|
2614
|
-
if (s._useCount <= 0) {
|
2644
|
+
if (s._useCount <= 0 && s.parentNode) {
|
2615
2645
|
s.parentNode.removeChild(s);
|
2616
2646
|
}
|
2617
2647
|
}
|
@@ -2632,14 +2662,23 @@ element._customStyle = style;
|
|
2632
2662
|
}
|
2633
2663
|
return style;
|
2634
2664
|
},
|
2665
|
+
mixinCustomStyle: function (props, customStyle) {
|
2666
|
+
var v;
|
2667
|
+
for (var i in customStyle) {
|
2668
|
+
v = customStyle[i];
|
2669
|
+
if (v || v === 0) {
|
2670
|
+
props[i] = v;
|
2671
|
+
}
|
2672
|
+
}
|
2673
|
+
},
|
2635
2674
|
rx: {
|
2636
|
-
VAR_ASSIGN: /(
|
2637
|
-
MIXIN_MATCH: /(?:^|\W+)@apply[\s]*\(([^)]*)\)
|
2675
|
+
VAR_ASSIGN: /(?:^|[;\n]\s*)(--[\w-]*?):\s*?(?:([^;{]*?)|{([^}]*)})(?:(?=[;\n])|$)/gim,
|
2676
|
+
MIXIN_MATCH: /(?:^|\W+)@apply[\s]*\(([^)]*)\)/im,
|
2638
2677
|
VAR_MATCH: /(^|\W+)var\([\s]*([^,)]*)[\s]*,?[\s]*((?:[^,)]*)|(?:[^;]*\([^;)]*\)))[\s]*?\)/gim,
|
2639
2678
|
VAR_CAPTURE: /\([\s]*(--[^,\s)]*)(?:,[\s]*(--[^,\s)]*))?(?:\)|,)/gim,
|
2640
2679
|
IS_VAR: /^--/,
|
2641
2680
|
BRACKETED: /\{[^}]*\}/g,
|
2642
|
-
HOST_PREFIX: '(?:^|[
|
2681
|
+
HOST_PREFIX: '(?:^|[^.#[:])',
|
2643
2682
|
HOST_SUFFIX: '($|[.:[\\s>+~])'
|
2644
2683
|
},
|
2645
2684
|
HOST_SELECTORS: [':host'],
|
@@ -2652,41 +2691,6 @@ var v = 1 << n % 32;
|
|
2652
2691
|
bits[o] = (bits[o] || 0) | v;
|
2653
2692
|
}
|
2654
2693
|
}();
|
2655
|
-
Polymer.StyleDefaults = function () {
|
2656
|
-
var styleProperties = Polymer.StyleProperties;
|
2657
|
-
var styleUtil = Polymer.StyleUtil;
|
2658
|
-
var api = {
|
2659
|
-
_styles: [],
|
2660
|
-
_properties: null,
|
2661
|
-
addStyle: function (style) {
|
2662
|
-
this._styles.push(style);
|
2663
|
-
this._properties = null;
|
2664
|
-
},
|
2665
|
-
get _styleProperties() {
|
2666
|
-
if (!this._properties) {
|
2667
|
-
styleProperties.decorateStyles(this._styles);
|
2668
|
-
this._styles._scopeStyleProperties = null;
|
2669
|
-
this._properties = styleProperties.scopePropertiesFromStyles(this._styles);
|
2670
|
-
styleProperties.reify(this._properties);
|
2671
|
-
}
|
2672
|
-
return this._properties;
|
2673
|
-
},
|
2674
|
-
_needsStyleProperties: function () {
|
2675
|
-
},
|
2676
|
-
_computeStyleProperties: function () {
|
2677
|
-
return this._styleProperties;
|
2678
|
-
},
|
2679
|
-
updateStyles: function () {
|
2680
|
-
this._styleCache.clear();
|
2681
|
-
for (var i = 0, s; i < this._styles.length; i++) {
|
2682
|
-
s = this._styles[i];
|
2683
|
-
s = s.__importElement || s;
|
2684
|
-
s._apply();
|
2685
|
-
}
|
2686
|
-
}
|
2687
|
-
};
|
2688
|
-
return api;
|
2689
|
-
}();
|
2690
2694
|
(function () {
|
2691
2695
|
Polymer.StyleCache = function () {
|
2692
2696
|
this.cache = {};
|
@@ -2717,8 +2721,10 @@ clear: function () {
|
|
2717
2721
|
this.cache = {};
|
2718
2722
|
},
|
2719
2723
|
_objectsEqual: function (target, source) {
|
2724
|
+
var t, s;
|
2720
2725
|
for (var i in target) {
|
2721
|
-
|
2726
|
+
t = target[i], s = source[i];
|
2727
|
+
if (!(typeof t === 'object' && t ? this._objectsStrictlyEqual(t, s) : t === s)) {
|
2722
2728
|
return false;
|
2723
2729
|
}
|
2724
2730
|
}
|
@@ -2726,9 +2732,55 @@ if (Array.isArray(target)) {
|
|
2726
2732
|
return target.length === source.length;
|
2727
2733
|
}
|
2728
2734
|
return true;
|
2735
|
+
},
|
2736
|
+
_objectsStrictlyEqual: function (target, source) {
|
2737
|
+
return this._objectsEqual(target, source) && this._objectsEqual(source, target);
|
2729
2738
|
}
|
2730
2739
|
};
|
2731
2740
|
}());
|
2741
|
+
Polymer.StyleDefaults = function () {
|
2742
|
+
var styleProperties = Polymer.StyleProperties;
|
2743
|
+
var styleUtil = Polymer.StyleUtil;
|
2744
|
+
var StyleCache = Polymer.StyleCache;
|
2745
|
+
var api = {
|
2746
|
+
_styles: [],
|
2747
|
+
_properties: null,
|
2748
|
+
customStyle: {},
|
2749
|
+
_styleCache: new StyleCache(),
|
2750
|
+
addStyle: function (style) {
|
2751
|
+
this._styles.push(style);
|
2752
|
+
this._properties = null;
|
2753
|
+
},
|
2754
|
+
get _styleProperties() {
|
2755
|
+
if (!this._properties) {
|
2756
|
+
styleProperties.decorateStyles(this._styles);
|
2757
|
+
this._styles._scopeStyleProperties = null;
|
2758
|
+
this._properties = styleProperties.scopePropertiesFromStyles(this._styles);
|
2759
|
+
styleProperties.mixinCustomStyle(this._properties, this.customStyle);
|
2760
|
+
styleProperties.reify(this._properties);
|
2761
|
+
}
|
2762
|
+
return this._properties;
|
2763
|
+
},
|
2764
|
+
_needsStyleProperties: function () {
|
2765
|
+
},
|
2766
|
+
_computeStyleProperties: function () {
|
2767
|
+
return this._styleProperties;
|
2768
|
+
},
|
2769
|
+
updateStyles: function (properties) {
|
2770
|
+
this._properties = null;
|
2771
|
+
if (properties) {
|
2772
|
+
Polymer.Base.mixin(this.customStyle, properties);
|
2773
|
+
}
|
2774
|
+
this._styleCache.clear();
|
2775
|
+
for (var i = 0, s; i < this._styles.length; i++) {
|
2776
|
+
s = this._styles[i];
|
2777
|
+
s = s.__importElement || s;
|
2778
|
+
s._apply();
|
2779
|
+
}
|
2780
|
+
}
|
2781
|
+
};
|
2782
|
+
return api;
|
2783
|
+
}();
|
2732
2784
|
(function () {
|
2733
2785
|
'use strict';
|
2734
2786
|
var serializeValueToAttribute = Polymer.Base.serializeValueToAttribute;
|
@@ -2758,6 +2810,7 @@ if (!scope._styleCache) {
|
|
2758
2810
|
scope._styleCache = new Polymer.StyleCache();
|
2759
2811
|
}
|
2760
2812
|
var scopeData = propertyUtils.propertyDataFromStyles(scope._styles, this);
|
2813
|
+
scopeData.key.customStyle = this.customStyle;
|
2761
2814
|
info = scope._styleCache.retrieve(this.is, scopeData.key, this._styles);
|
2762
2815
|
var scopeCached = Boolean(info);
|
2763
2816
|
if (scopeCached) {
|
@@ -2772,15 +2825,14 @@ info = styleCache.retrieve(this.is, this._ownStyleProperties, this._styles);
|
|
2772
2825
|
var globalCached = Boolean(info) && !scopeCached;
|
2773
2826
|
var style = this._applyStyleProperties(info);
|
2774
2827
|
if (!scopeCached) {
|
2775
|
-
|
2776
|
-
if (nativeShadow) {
|
2777
|
-
cacheableStyle = style.cloneNode ? style.cloneNode(true) : Object.create(style || null);
|
2778
|
-
}
|
2828
|
+
style = style && nativeShadow ? style.cloneNode(true) : style;
|
2779
2829
|
info = {
|
2780
|
-
style:
|
2830
|
+
style: style,
|
2781
2831
|
_scopeSelector: this._scopeSelector,
|
2782
2832
|
_styleProperties: this._styleProperties
|
2783
2833
|
};
|
2834
|
+
scopeData.key.customStyle = {};
|
2835
|
+
this.mixin(scopeData.key.customStyle, this.customStyle);
|
2784
2836
|
scope._styleCache.store(this.is, info, scopeData.key, this._styles);
|
2785
2837
|
if (!globalCached) {
|
2786
2838
|
styleCache.store(this.is, Object.create(info), this._ownStyleProperties, this._styles);
|
@@ -2797,7 +2849,7 @@ this.mixin(props, propertyUtils.hostPropertiesFromStyles(this._styles));
|
|
2797
2849
|
scopeProps = scopeProps || propertyUtils.propertyDataFromStyles(scope._styles, this).properties;
|
2798
2850
|
this.mixin(props, scopeProps);
|
2799
2851
|
this.mixin(props, propertyUtils.scopePropertiesFromStyles(this._styles));
|
2800
|
-
|
2852
|
+
propertyUtils.mixinCustomStyle(props, this.customStyle);
|
2801
2853
|
propertyUtils.reify(props);
|
2802
2854
|
this._styleProperties = props;
|
2803
2855
|
},
|
@@ -2814,10 +2866,10 @@ _applyStyleProperties: function (info) {
|
|
2814
2866
|
var oldScopeSelector = this._scopeSelector;
|
2815
2867
|
this._scopeSelector = info ? info._scopeSelector : this.is + '-' + this.__proto__._scopeCount++;
|
2816
2868
|
var style = propertyUtils.applyElementStyle(this, this._styleProperties, this._scopeSelector, info && info.style);
|
2817
|
-
if (
|
2869
|
+
if (!nativeShadow) {
|
2818
2870
|
propertyUtils.applyElementScopeSelector(this, this._scopeSelector, oldScopeSelector, this._scopeCssViaAttr);
|
2819
2871
|
}
|
2820
|
-
return style
|
2872
|
+
return style;
|
2821
2873
|
},
|
2822
2874
|
serializeValueToAttribute: function (value, attribute, node) {
|
2823
2875
|
node = node || this;
|
@@ -2836,8 +2888,11 @@ selector += (selector ? ' ' : '') + SCOPE_NAME + ' ' + this.is + (element._scope
|
|
2836
2888
|
}
|
2837
2889
|
return selector;
|
2838
2890
|
},
|
2839
|
-
updateStyles: function () {
|
2891
|
+
updateStyles: function (properties) {
|
2840
2892
|
if (this.isAttached) {
|
2893
|
+
if (properties) {
|
2894
|
+
this.mixin(this.customStyle, properties);
|
2895
|
+
}
|
2841
2896
|
if (this._needsStyleProperties()) {
|
2842
2897
|
this._updateStyleProperties();
|
2843
2898
|
} else {
|
@@ -2861,8 +2916,8 @@ c.updateStyles();
|
|
2861
2916
|
}
|
2862
2917
|
}
|
2863
2918
|
});
|
2864
|
-
Polymer.updateStyles = function () {
|
2865
|
-
styleDefaults.updateStyles();
|
2919
|
+
Polymer.updateStyles = function (properties) {
|
2920
|
+
styleDefaults.updateStyles(properties);
|
2866
2921
|
Polymer.Base._updateRootStyles(document);
|
2867
2922
|
};
|
2868
2923
|
var styleCache = new Polymer.StyleCache();
|
@@ -3023,6 +3078,9 @@ var parentProps = archetype._parentProps;
|
|
3023
3078
|
for (var prop in parentProps) {
|
3024
3079
|
archetype._addPropertyEffect(prop, 'function', this._createHostPropEffector(prop));
|
3025
3080
|
}
|
3081
|
+
for (var prop in this._instanceProps) {
|
3082
|
+
archetype._addPropertyEffect(prop, 'function', this._createInstancePropEffector(prop));
|
3083
|
+
}
|
3026
3084
|
},
|
3027
3085
|
_customPrepAnnotations: function (archetype, template) {
|
3028
3086
|
archetype._template = template;
|
@@ -3081,18 +3139,27 @@ return function (source, value) {
|
|
3081
3139
|
this.dataHost['_parent_' + prop] = value;
|
3082
3140
|
};
|
3083
3141
|
},
|
3142
|
+
_createInstancePropEffector: function (prop) {
|
3143
|
+
return function (source, value, old, fromAbove) {
|
3144
|
+
if (!fromAbove) {
|
3145
|
+
this.dataHost._forwardInstanceProp(this, prop, value);
|
3146
|
+
}
|
3147
|
+
};
|
3148
|
+
},
|
3084
3149
|
_extendTemplate: function (template, proto) {
|
3085
3150
|
Object.getOwnPropertyNames(proto).forEach(function (n) {
|
3086
3151
|
var val = template[n];
|
3087
3152
|
var pd = Object.getOwnPropertyDescriptor(proto, n);
|
3088
3153
|
Object.defineProperty(template, n, pd);
|
3089
3154
|
if (val !== undefined) {
|
3090
|
-
template.
|
3155
|
+
template._propertySetter(n, val);
|
3091
3156
|
}
|
3092
3157
|
});
|
3093
3158
|
},
|
3094
3159
|
_forwardInstancePath: function (inst, path, value) {
|
3095
3160
|
},
|
3161
|
+
_forwardInstanceProp: function (inst, prop, value) {
|
3162
|
+
},
|
3096
3163
|
_notifyPathImpl: function (path, value) {
|
3097
3164
|
var dataHost = this.dataHost;
|
3098
3165
|
var dot = path.indexOf('.');
|
@@ -3115,6 +3182,7 @@ this._rootDataHost = host._getRootDataHost();
|
|
3115
3182
|
this._setupConfigure(model);
|
3116
3183
|
this._pushHost(host);
|
3117
3184
|
this.root = this.instanceTemplate(this._template);
|
3185
|
+
this.root.__noContent = !this._notes._hasContent;
|
3118
3186
|
this.root.__styleScoped = true;
|
3119
3187
|
this._popHost();
|
3120
3188
|
this._marshalAnnotatedNodes();
|
@@ -3219,8 +3287,17 @@ return this.pmap[item];
|
|
3219
3287
|
getKeys: function () {
|
3220
3288
|
return Object.keys(this.store);
|
3221
3289
|
},
|
3222
|
-
setItem: function (key,
|
3223
|
-
this.store[key]
|
3290
|
+
setItem: function (key, item) {
|
3291
|
+
var old = this.store[key];
|
3292
|
+
if (old) {
|
3293
|
+
this._removeFromMap(old);
|
3294
|
+
}
|
3295
|
+
if (item && typeof item == 'object') {
|
3296
|
+
this.omap.set(item, key);
|
3297
|
+
} else {
|
3298
|
+
this.pmap[item] = key;
|
3299
|
+
}
|
3300
|
+
this.store[key] = item;
|
3224
3301
|
},
|
3225
3302
|
getItem: function (key) {
|
3226
3303
|
return this.store[key];
|
@@ -3382,7 +3459,7 @@ return;
|
|
3382
3459
|
},
|
3383
3460
|
render: function () {
|
3384
3461
|
this._fullRefresh = true;
|
3385
|
-
this.
|
3462
|
+
this._debounceTemplate(this._render);
|
3386
3463
|
this._flushTemplates();
|
3387
3464
|
},
|
3388
3465
|
_render: function () {
|
@@ -3414,9 +3491,9 @@ rowForKey[key] = i;
|
|
3414
3491
|
if (!row) {
|
3415
3492
|
this.rows.push(row = this._insertRow(i, null, item));
|
3416
3493
|
}
|
3417
|
-
row
|
3418
|
-
row.__key__
|
3419
|
-
row
|
3494
|
+
row.__setProperty(this.as, item, true);
|
3495
|
+
row.__setProperty('__key__', key, true);
|
3496
|
+
row.__setProperty(this.indexAs, i, true);
|
3420
3497
|
}
|
3421
3498
|
for (; i < this.rows.length; i++) {
|
3422
3499
|
this._detachRow(i);
|
@@ -3581,16 +3658,26 @@ c._hideTemplateChildren = hidden;
|
|
3581
3658
|
}
|
3582
3659
|
}
|
3583
3660
|
},
|
3661
|
+
_forwardInstanceProp: function (row, prop, value) {
|
3662
|
+
if (prop == this.as) {
|
3663
|
+
var idx;
|
3664
|
+
if (this._sortFn || this._filterFn) {
|
3665
|
+
idx = this.items.indexOf(this.collection.getItem(row.__key__));
|
3666
|
+
} else {
|
3667
|
+
idx = row[this.indexAs];
|
3668
|
+
}
|
3669
|
+
this.set('items.' + idx, value);
|
3670
|
+
}
|
3671
|
+
},
|
3584
3672
|
_forwardInstancePath: function (row, path, value) {
|
3585
3673
|
if (path.indexOf(this.as + '.') === 0) {
|
3586
3674
|
this.notifyPath('items.' + row.__key__ + '.' + path.slice(this.as.length + 1), value);
|
3587
|
-
return true;
|
3588
3675
|
}
|
3589
3676
|
},
|
3590
3677
|
_forwardParentProp: function (prop, value) {
|
3591
3678
|
if (this.rows) {
|
3592
3679
|
this.rows.forEach(function (row) {
|
3593
|
-
row
|
3680
|
+
row.__setProperty(prop, value, true);
|
3594
3681
|
}, this);
|
3595
3682
|
}
|
3596
3683
|
},
|
@@ -3612,7 +3699,7 @@ if (dot >= 0) {
|
|
3612
3699
|
path = this.as + '.' + path.substring(dot + 1);
|
3613
3700
|
row.notifyPath(path, value, true);
|
3614
3701
|
} else {
|
3615
|
-
row
|
3702
|
+
row.__setProperty(this.as, value, true);
|
3616
3703
|
}
|
3617
3704
|
}
|
3618
3705
|
}
|
@@ -3720,15 +3807,16 @@ extends: 'template',
|
|
3720
3807
|
properties: {
|
3721
3808
|
'if': {
|
3722
3809
|
type: Boolean,
|
3723
|
-
value: false
|
3810
|
+
value: false,
|
3811
|
+
observer: '_queueRender'
|
3724
3812
|
},
|
3725
3813
|
restamp: {
|
3726
3814
|
type: Boolean,
|
3727
|
-
value: false
|
3815
|
+
value: false,
|
3816
|
+
observer: '_queueRender'
|
3728
3817
|
}
|
3729
3818
|
},
|
3730
3819
|
behaviors: [Polymer.Templatizer],
|
3731
|
-
observers: ['_queueRender(if, restamp)'],
|
3732
3820
|
_queueRender: function () {
|
3733
3821
|
this._debounceTemplate(this._render);
|
3734
3822
|
},
|