awips2/components/core-focusable/polymer-mixin.js
2016-04-03 22:04:09 -05:00

35 lines
No EOL
899 B
JavaScript

Polymer.mixin2 = function(prototype, mixin) {
// adds a single mixin to prototype
if (mixin.mixinPublish) {
prototype.publish = prototype.publish || {};
Polymer.mixin(prototype.publish, mixin.mixinPublish);
}
if (mixin.mixinDelegates) {
prototype.eventDelegates = prototype.eventDelegates || {};
for (var e in mixin.mixinDelegates) {
if (!prototype.eventDelegates[e]) {
prototype.eventDelegates[e] = mixin.mixinDelegates[e];
}
}
}
if (mixin.mixinObserve) {
prototype.observe = prototype.observe || {};
for (var o in mixin.mixinObserve) {
if (!prototype.observe[o] && !prototype[o + 'Changed']) {
prototype.observe[o] = mixin.mixinObserve[o];
}
}
}
Polymer.mixin(prototype, mixin);
delete prototype.mixinPublish;
delete prototype.mixinDelegates;
delete prototype.mixinObserve;
return prototype;
};