polymer-rails 1.1.1 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4ccbca115d533cf6aa8769934efda7779e1c420b
4
- data.tar.gz: 927f6f95af53a59e42436cec30a1916911eb68ca
3
+ metadata.gz: f6af060c005a4b9f3d7a7631ed258a09f8b72796
4
+ data.tar.gz: 73bd6ea2e11eb0c34f118cbc4317b5cd8b4630db
5
5
  SHA512:
6
- metadata.gz: b870fe572b064787015fc7041b321facf6c356d46bae30b816310711be9498bf8c377e35a3a26d641822a76a2dc48ae54b051ece3b7551396c4eaf2e751a02c5
7
- data.tar.gz: d557945c318a077454f4e05698b4e962280e6fb422023249f9794e2d89cf344a6137b9973d4cf6d5cd542c860edfb99f443c19071c4c1c20b29c418586f41082
6
+ metadata.gz: 860b465925381619cdc150096e249420e7e65010ed554e0793f32d650c88596376c36176f2b73586533da2438c58c4d9becaa43e1f3ec27cdac618fca2658e7d
7
+ data.tar.gz: 7d324d014cc63df2308f928a0fdff92ed90fc85f0ea4a1f36019c1ff72f7d2d44cc689c024ea3a3f3680baf6d162c6ff009f8d100319d3decac16cd4d78d368a
@@ -20,7 +20,7 @@ addEventListener('DOMContentLoaded', resolve);
20
20
  }
21
21
  }
22
22
  }());
23
- Polymer = {
23
+ window.Polymer = {
24
24
  Settings: function () {
25
25
  var user = window.Polymer || {};
26
26
  location.search.slice(1).split('&').forEach(function (o) {
@@ -48,15 +48,21 @@ useNativeCustomElements: useNativeCustomElements
48
48
  (function () {
49
49
  var userPolymer = window.Polymer;
50
50
  window.Polymer = function (prototype) {
51
- var ctor = desugar(prototype);
52
- prototype = ctor.prototype;
53
- var options = { prototype: prototype };
54
- if (prototype.extends) {
55
- options.extends = prototype.extends;
51
+ if (typeof prototype === 'function') {
52
+ prototype = prototype.prototype;
53
+ }
54
+ if (!prototype) {
55
+ prototype = {};
56
56
  }
57
+ var factory = desugar(prototype);
58
+ prototype = factory.prototype;
59
+ var options = {
60
+ prototype: prototype,
61
+ extends: prototype.extends
62
+ };
57
63
  Polymer.telemetry._registrate(prototype);
58
64
  document.registerElement(prototype.is, options);
59
- return ctor;
65
+ return factory;
60
66
  };
61
67
  var desugar = function (prototype) {
62
68
  var base = Polymer.Base;
@@ -133,6 +139,8 @@ _addFeature: function (feature) {
133
139
  this.extend(this, feature);
134
140
  },
135
141
  registerCallback: function () {
142
+ this._desugarBehaviors();
143
+ this._doBehavior('beforeRegister');
136
144
  this._registerFeatures();
137
145
  this._doBehavior('registered');
138
146
  },
@@ -238,6 +246,7 @@ lcModules[id.toLowerCase()] = this;
238
246
  }
239
247
  },
240
248
  import: function (id, selector) {
249
+ if (id) {
241
250
  var m = findModule(id);
242
251
  if (!m) {
243
252
  forceDocumentUpgrade();
@@ -248,6 +257,7 @@ m = m.querySelector(selector);
248
257
  }
249
258
  return m;
250
259
  }
260
+ }
251
261
  });
252
262
  var cePolyfill = window.CustomElements && !CustomElements.useNative;
253
263
  document.registerElement('dom-module', DomModule);
@@ -255,8 +265,7 @@ function forceDocumentUpgrade() {
255
265
  if (cePolyfill) {
256
266
  var script = document._currentScript || document.currentScript;
257
267
  var doc = script && script.ownerDocument;
258
- if (doc && !doc.__customElementsForceUpgraded) {
259
- doc.__customElementsForceUpgraded = true;
268
+ if (doc) {
260
269
  CustomElements.upgradeAll(doc);
261
270
  }
262
271
  }
@@ -278,11 +287,17 @@ this.is = this.is.toLowerCase();
278
287
  });
279
288
  Polymer.Base._addFeature({
280
289
  behaviors: [],
281
- _prepBehaviors: function () {
290
+ _desugarBehaviors: function () {
282
291
  if (this.behaviors.length) {
283
- this.behaviors = this._flattenBehaviorsList(this.behaviors);
292
+ this.behaviors = this._desugarSomeBehaviors(this.behaviors);
284
293
  }
285
- this._prepAllBehaviors(this.behaviors);
294
+ },
295
+ _desugarSomeBehaviors: function (behaviors) {
296
+ behaviors = this._flattenBehaviorsList(behaviors);
297
+ for (var i = behaviors.length - 1; i >= 0; i--) {
298
+ this._mixinBehavior(behaviors[i]);
299
+ }
300
+ return behaviors;
286
301
  },
287
302
  _flattenBehaviorsList: function (behaviors) {
288
303
  var flat = [];
@@ -297,15 +312,6 @@ this._warn(this._logf('_flattenBehaviorsList', 'behavior is null, check for miss
297
312
  }, this);
298
313
  return flat;
299
314
  },
300
- _prepAllBehaviors: function (behaviors) {
301
- for (var i = behaviors.length - 1; i >= 0; i--) {
302
- this._mixinBehavior(behaviors[i]);
303
- }
304
- for (var i = 0, l = behaviors.length; i < l; i++) {
305
- this._prepBehavior(behaviors[i]);
306
- }
307
- this._prepBehavior(this);
308
- },
309
315
  _mixinBehavior: function (b) {
310
316
  Object.getOwnPropertyNames(b).forEach(function (n) {
311
317
  switch (n) {
@@ -329,6 +335,15 @@ break;
329
335
  }
330
336
  }, this);
331
337
  },
338
+ _prepBehaviors: function () {
339
+ this._prepFlattenedBehaviors(this.behaviors);
340
+ },
341
+ _prepFlattenedBehaviors: function (behaviors) {
342
+ for (var i = 0, l = behaviors.length; i < l; i++) {
343
+ this._prepBehavior(behaviors[i]);
344
+ }
345
+ this._prepBehavior(this);
346
+ },
332
347
  _doBehavior: function (name, args) {
333
348
  this.behaviors.forEach(function (b) {
334
349
  this._invokeBehavior(b, name, args);
@@ -561,7 +576,7 @@ debouncer.stop();
561
576
  }
562
577
  }
563
578
  });
564
- Polymer.version = '1.1.1';
579
+ Polymer.version = '1.1.2';
565
580
  Polymer.Base._addFeature({
566
581
  _registerFeatures: function () {
567
582
  this._prepIs();
@@ -580,8 +580,9 @@ return added;
580
580
  },
581
581
  _tryRemoveUndistributedNode: function (node) {
582
582
  if (this.node.shadyRoot) {
583
- if (node._composedParent) {
584
- nativeRemoveChild.call(node._composedParent, node);
583
+ var parent = getComposedParent(node);
584
+ if (parent) {
585
+ nativeRemoveChild.call(parent, node);
585
586
  }
586
587
  return true;
587
588
  }
@@ -618,7 +619,7 @@ if (root && hostNeedsDist) {
618
619
  this._updateInsertionPoints(root.host);
619
620
  this._lazyDistribute(root.host);
620
621
  } else if (ensureComposedRemoval) {
621
- removeFromComposedParent(node._composedParent, node);
622
+ removeFromComposedParent(getComposedParent(node), node);
622
623
  }
623
624
  },
624
625
  _removeDistributedChildren: function (root, container) {
@@ -842,7 +843,7 @@ configurable: true
842
843
  },
843
844
  parentNode: {
844
845
  get: function () {
845
- return this.node._lightParent || (this.node.__patched ? this.node._composedParent : this.node.parentNode);
846
+ return this.node._lightParent || getComposedParent(this.node);
846
847
  },
847
848
  configurable: true
848
849
  },
@@ -964,6 +965,18 @@ DomApi.prototype._getComposedInnerHTML = function () {
964
965
  return getInnerHTML(this.node, true);
965
966
  };
966
967
  } else {
968
+ var forwardMethods = [
969
+ 'cloneNode',
970
+ 'appendChild',
971
+ 'insertBefore',
972
+ 'removeChild',
973
+ 'replaceChild'
974
+ ];
975
+ forwardMethods.forEach(function (name) {
976
+ DomApi.prototype[name] = function () {
977
+ return this.node[name].apply(this.node, arguments);
978
+ };
979
+ });
967
980
  DomApi.prototype.querySelectorAll = function (selector) {
968
981
  return Array.prototype.slice.call(this.node.querySelectorAll(selector));
969
982
  };
@@ -976,9 +989,6 @@ return n;
976
989
  n = n.parentNode;
977
990
  }
978
991
  };
979
- DomApi.prototype.cloneNode = function (deep) {
980
- return this.node.cloneNode(deep);
981
- };
982
992
  DomApi.prototype.importNode = function (externalNode, deep) {
983
993
  var doc = this.node instanceof Document ? this.node : this.node.ownerDocument;
984
994
  return doc.importNode(externalNode, deep);
@@ -1025,7 +1035,7 @@ return this.node.innerHTML = value;
1025
1035
  configurable: true
1026
1036
  }
1027
1037
  });
1028
- var forwards = [
1038
+ var forwardProperties = [
1029
1039
  'parentNode',
1030
1040
  'firstChild',
1031
1041
  'lastChild',
@@ -1036,7 +1046,7 @@ var forwards = [
1036
1046
  'nextElementSibling',
1037
1047
  'previousElementSibling'
1038
1048
  ];
1039
- forwards.forEach(function (name) {
1049
+ forwardProperties.forEach(function (name) {
1040
1050
  Object.defineProperty(DomApi.prototype, name, {
1041
1051
  get: function () {
1042
1052
  return this.node[name];
@@ -1120,6 +1130,9 @@ node._composedChildren = null;
1120
1130
  addNodeToComposedChildren(node, parent, children, i);
1121
1131
  }
1122
1132
  }
1133
+ function getComposedParent(node) {
1134
+ return node.__patched ? node._composedParent : node.parentNode;
1135
+ }
1123
1136
  function addNodeToComposedChildren(node, parent, children, i) {
1124
1137
  node._composedParent = parent;
1125
1138
  children.splice(i >= 0 ? i : children.length, 0, node);
@@ -1150,6 +1163,7 @@ var p = Element.prototype;
1150
1163
  var matchesSelector = p.matches || p.matchesSelector || p.mozMatchesSelector || p.msMatchesSelector || p.oMatchesSelector || p.webkitMatchesSelector;
1151
1164
  return {
1152
1165
  getLightChildren: getLightChildren,
1166
+ getComposedParent: getComposedParent,
1153
1167
  getComposedChildren: getComposedChildren,
1154
1168
  removeFromComposedParent: removeFromComposedParent,
1155
1169
  saveLightChildrenIfNeeded: saveLightChildrenIfNeeded,
@@ -1338,7 +1352,9 @@ var composed = getComposedChildren(container);
1338
1352
  var splices = Polymer.ArraySplice.calculateSplices(children, composed);
1339
1353
  for (var i = 0, d = 0, s; i < splices.length && (s = splices[i]); i++) {
1340
1354
  for (var j = 0, n; j < s.removed.length && (n = s.removed[j]); j++) {
1355
+ if (getComposedParent(n) === container) {
1341
1356
  remove(n);
1357
+ }
1342
1358
  composed.splice(s.index + d, 1);
1343
1359
  }
1344
1360
  d -= s.addedCount;
@@ -1351,6 +1367,7 @@ insertBefore(container, n, next);
1351
1367
  composed.splice(j, 0, n);
1352
1368
  }
1353
1369
  }
1370
+ ensureComposedParent(container, children);
1354
1371
  },
1355
1372
  _matchesContentSelect: function (node, contentElement) {
1356
1373
  var select = contentElement.getAttribute('select');
@@ -1380,6 +1397,7 @@ var getLightChildren = Polymer.DomApi.getLightChildren;
1380
1397
  var matchesSelector = Polymer.DomApi.matchesSelector;
1381
1398
  var hasInsertionPoint = Polymer.DomApi.hasInsertionPoint;
1382
1399
  var getComposedChildren = Polymer.DomApi.getComposedChildren;
1400
+ var getComposedParent = Polymer.DomApi.getComposedParent;
1383
1401
  var removeFromComposedParent = Polymer.DomApi.removeFromComposedParent;
1384
1402
  function distributeNodeInto(child, insertionPoint) {
1385
1403
  insertionPoint._distributedNodes.push(child);
@@ -1433,8 +1451,10 @@ node._composedParent = null;
1433
1451
  nativeRemoveChild.call(parentNode, node);
1434
1452
  }
1435
1453
  }
1436
- function getComposedParent(node) {
1437
- return node.__patched ? node._composedParent : node.parentNode;
1454
+ function ensureComposedParent(parent, children) {
1455
+ for (var i = 0, n; i < children.length; i++) {
1456
+ children[i]._composedParent = parent;
1457
+ }
1438
1458
  }
1439
1459
  function getTopDistributingHost(host) {
1440
1460
  while (host && hostNeedsRedistribution(host)) {
@@ -236,7 +236,11 @@ if (!this._template) {
236
236
  this._notes = [];
237
237
  } else {
238
238
  Polymer.Annotations.prepElement = this._prepElement.bind(this);
239
+ if (this._template._content && this._template._content._notes) {
240
+ this._notes = this._template._content._notes;
241
+ } else {
239
242
  this._notes = Polymer.Annotations.parseAnnotations(this._template);
243
+ }
240
244
  this._processAnnotations(this._notes);
241
245
  Polymer.Annotations.prepElement = null;
242
246
  }
@@ -2233,6 +2237,9 @@ clearStyleRules: function (style) {
2233
2237
  style.__cssRules = null;
2234
2238
  },
2235
2239
  forEachStyleRule: function (node, callback) {
2240
+ if (!node) {
2241
+ return;
2242
+ }
2236
2243
  var s = node.parsedSelector;
2237
2244
  var skipRules = false;
2238
2245
  if (node.type === this.ruleTypes.STYLE_RULE) {
@@ -2261,19 +2268,22 @@ afterNode = n$[n$.length - 1];
2261
2268
  target.insertBefore(style, afterNode && afterNode.nextSibling || target.firstChild);
2262
2269
  return style;
2263
2270
  },
2264
- cssFromModules: function (moduleIds) {
2271
+ cssFromModules: function (moduleIds, warnIfNotFound) {
2265
2272
  var modules = moduleIds.trim().split(' ');
2266
2273
  var cssText = '';
2267
2274
  for (var i = 0; i < modules.length; i++) {
2268
- cssText += this.cssFromModule(modules[i]);
2275
+ cssText += this.cssFromModule(modules[i], warnIfNotFound);
2269
2276
  }
2270
2277
  return cssText;
2271
2278
  },
2272
- cssFromModule: function (moduleId) {
2279
+ cssFromModule: function (moduleId, warnIfNotFound) {
2273
2280
  var m = Polymer.DomModule.import(moduleId);
2274
2281
  if (m && !m._cssText) {
2275
2282
  m._cssText = this._cssFromElement(m);
2276
2283
  }
2284
+ if (!m && warnIfNotFound) {
2285
+ console.warn('Could not find style data in module named', moduleId);
2286
+ }
2277
2287
  return m && m._cssText || '';
2278
2288
  },
2279
2289
  _cssFromElement: function (element) {
@@ -2287,12 +2297,12 @@ cssText += this._cssFromElement(e);
2287
2297
  } else {
2288
2298
  if (e.localName === 'style') {
2289
2299
  var include = e.getAttribute(this.INCLUDE_ATTR);
2300
+ if (include) {
2301
+ cssText += this.cssFromModules(include, true);
2302
+ }
2290
2303
  e = e.__appliedElement || e;
2291
2304
  e.parentNode.removeChild(e);
2292
2305
  cssText += this.resolveCss(e.textContent, element.ownerDocument);
2293
- if (include) {
2294
- cssText += this.cssFromModules(include);
2295
- }
2296
2306
  } else if (e.import && e.import.body) {
2297
2307
  cssText += this.resolveCss(e.import.body.textContent, e.import);
2298
2308
  }
@@ -3229,15 +3239,20 @@ observer.observe(e, { childList: true });
3229
3239
  _apply: function () {
3230
3240
  var e = this.__appliedElement || this;
3231
3241
  if (this.include) {
3232
- e.textContent += styleUtil.cssFromModules(this.include);
3242
+ e.textContent = styleUtil.cssFromModules(this.include, true) + e.textContent;
3233
3243
  }
3234
- var rules = styleUtil.rulesForStyle(e);
3235
- styleUtil.forEachStyleRule(rules, function (rule) {
3244
+ if (e.textContent) {
3245
+ styleUtil.forEachStyleRule(styleUtil.rulesForStyle(e), function (rule) {
3236
3246
  styleTransformer.documentRule(rule);
3237
3247
  });
3248
+ this._applyCustomProperties(e);
3249
+ }
3250
+ },
3251
+ _applyCustomProperties: function (element) {
3238
3252
  this._computeStyleProperties();
3239
3253
  var props = this._styleProperties;
3240
- e.textContent = styleUtil.toCssText(rules, function (rule) {
3254
+ var rules = styleUtil.rulesForStyle(element);
3255
+ element.textContent = styleUtil.toCssText(rules, function (rule) {
3241
3256
  var css = rule.cssText = rule.parsedCssText;
3242
3257
  if (rule.propertyInfo && rule.propertyInfo.cssText) {
3243
3258
  css = cssParse.removeCustomPropAssignment(css);
@@ -1,5 +1,5 @@
1
1
  module Polymer
2
2
  module Rails
3
- VERSION = "1.1.1"
3
+ VERSION = "1.1.2"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: polymer-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Chaplinsky