"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var syntaxKind_1 = require("../../util/syntaxKind"); var utils_1 = require("../../util/utils"); var kinds = syntaxKind_1.current(); var AbstractResolver = (function () { function AbstractResolver() { } AbstractResolver.prototype.getTemplateUrl = function (decorator) { var arg = this.getDecoratorArgument(decorator); if (!arg) { return null; } var prop = arg.properties.filter(function (p) { if (p.name.text === 'templateUrl' && utils_1.isSimpleTemplateString(p.initializer)) { return true; } return false; }).pop(); if (prop) { return prop.initializer.text; } else { return null; } }; AbstractResolver.prototype.getStyleUrls = function (decorator) { var arg = this.getDecoratorArgument(decorator); if (!arg) { return []; } var prop = arg.properties.filter(function (p) { if (p.name.text === 'styleUrls' && p.initializer.kind === kinds.ArrayLiteralExpression) { return true; } return false; }).pop(); if (prop) { return prop.initializer.elements.filter(function (e) { return utils_1.isSimpleTemplateString(e); }).map(function (e) { return e.text; }); } else { return []; } }; AbstractResolver.prototype.getDecoratorArgument = function (decorator) { var expr = decorator.expression; if (expr && expr.arguments && expr.arguments.length) { var arg = expr.arguments[0]; if (arg.kind === kinds.ObjectLiteralExpression && arg.properties) { return arg; } } return null; }; return AbstractResolver; }()); exports.AbstractResolver = AbstractResolver;