hedera-web/js/vn/mutators.js

55 lines
1022 B
JavaScript
Raw Normal View History

require ('mootools');
2016-09-26 09:28:47 +00:00
vnCustomTags = {};
var Mutators = Class.Mutators;
var _Extends = Mutators.Extends;
2018-01-16 16:26:37 +00:00
Mutators.Extends = function ()
{
_Extends.apply (this, arguments);
2018-01-16 16:26:37 +00:00
this.implement ({Properties: {}});
}
2016-09-26 09:28:47 +00:00
Mutators.Tag = function (tagName)
{
2016-09-26 09:28:47 +00:00
vnCustomTags[tagName] = this;
this.extend ({Tag: tagName});
var parent = this.parent;
if (parent && parent.Classes !== undefined)
{
var Classes = tagName
if (parent.Classes !== '')
Classes += ' '+ parent.Classes;
this.extend ({Classes: Classes});
}
};
2016-09-26 09:28:47 +00:00
Mutators.Properties = function (props)
{
for (var propName in props)
{
var prop = props[propName];
2016-09-26 09:28:47 +00:00
prop.configurable = true;
if (!prop.get && !prop.set && prop.writable === undefined)
prop.writable = true;
}
var parentProps;
if (this.parent && (parentProps = this.parent.Properties))
for (var propName in parentProps)
2016-09-26 09:28:47 +00:00
if (!props[propName])
props[propName] = parentProps[propName];
this.extend ({Properties: props});
Object.defineProperties (this.prototype, props);
};