sbis3-node-ws
Version:
Модуль позволяет использовать ядро интерфейсного фреймворка sbis3-ws(`core.js`) и модуль работы с данными (`Source.js`) в приложении на nodejs.
34 lines • 1.51 kB
JavaScript
define('js!Core/tmpl/js/astModules/data/object', ['js!Core/tmpl/js/helpers/utils', 'js!Core/tmpl/js/helpers/entityHelpers'], function objectLoader(utils, entityHelpers) {
'use strict';
return function objectTag(injected, types, scopeData) {
var tObject = {}, typeFunction, nameExists, i, objectForMerge = {}, htmlArray = [];
function isEntityUsefulOrHTML(nameExists) {
return nameExists && !this._modules.hasOwnProperty(nameExists) && !entityHelpers.isTagRequirableBool(nameExists);
}
objectForMerge = entityHelpers.parseAttributesForData.call(this, injected.attribs, scopeData, this.calculators);
if (injected.children) {
injected = injected.children;
}
for (i = 0; i < injected.length; i++) {
nameExists = utils.splitWs(injected[i].name);
if (isEntityUsefulOrHTML.call(this, nameExists)) {
if (injected[i].children) {
typeFunction = types[nameExists];
if (typeFunction) {
return typeFunction.call(this, injected[i], types, scopeData);
}
tObject[nameExists] = types.object.call(this, injected[i].children, types, scopeData);
}
} else {
htmlArray.push(injected[i]);
}
}
if (objectForMerge !== undefined) {
tObject = utils.plainMergeAttrs(tObject, objectForMerge);
}
if (htmlArray.length > 0) {
return htmlArray;
}
return tObject;
};
});