/// <reference path="./IParsedSourceDefinition.ts" /> /// <reference path="../../util/StringUtils.ts" /> var econda; (function (econda) { var tagmanager; (function (tagmanager) { var macro; (function (macro) { var StringUtils = econda.util.StringUtils; /** * Class to parse source definitions found in macros and constraints. * @class econda.tagmanager.macro.SourceHelper */ var SourceHelper = (function () { function SourceHelper() { } /** * Do parse source definition * @static */ SourceHelper.parse = function (sourceDefinition) { if (sourceDefinition === null) { return { element: null, property: null }; } var source = StringUtils.trim(sourceDefinition); if (source.indexOf('(') === 0) { // (element query).property var matches = source.match(/\(\s*([^)\s]{1,})\s*\)(\s*\.?\s*(.*))\s*$/); return { element: matches[1], property: matches[3] || null }; } else { // element query return { element: source, property: null }; } }; return SourceHelper; }()); macro.SourceHelper = SourceHelper; })(macro = tagmanager.macro || (tagmanager.macro = {})); })(tagmanager = econda.tagmanager || (econda.tagmanager = {})); })(econda || (econda = {}));