39686 lines
1.6 MiB
39686 lines
1.6 MiB
"format register";
|
|
System.register("angular2/src/facade/lang", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var globalScope;
|
|
if (typeof window === 'undefined') {
|
|
if (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) {
|
|
globalScope = self;
|
|
} else {
|
|
globalScope = global;
|
|
}
|
|
} else {
|
|
globalScope = window;
|
|
}
|
|
function scheduleMicroTask(fn) {
|
|
Zone.current.scheduleMicroTask('scheduleMicrotask', fn);
|
|
}
|
|
exports.scheduleMicroTask = scheduleMicroTask;
|
|
exports.IS_DART = false;
|
|
var _global = globalScope;
|
|
exports.global = _global;
|
|
exports.Type = Function;
|
|
function getTypeNameForDebugging(type) {
|
|
if (type['name']) {
|
|
return type['name'];
|
|
}
|
|
return typeof type;
|
|
}
|
|
exports.getTypeNameForDebugging = getTypeNameForDebugging;
|
|
exports.Math = _global.Math;
|
|
exports.Date = _global.Date;
|
|
var _devMode = true;
|
|
var _modeLocked = false;
|
|
function lockMode() {
|
|
_modeLocked = true;
|
|
}
|
|
exports.lockMode = lockMode;
|
|
function enableProdMode() {
|
|
if (_modeLocked) {
|
|
throw 'Cannot enable prod mode after platform setup.';
|
|
}
|
|
_devMode = false;
|
|
}
|
|
exports.enableProdMode = enableProdMode;
|
|
function assertionsEnabled() {
|
|
return _devMode;
|
|
}
|
|
exports.assertionsEnabled = assertionsEnabled;
|
|
_global.assert = function assert(condition) {};
|
|
function CONST_EXPR(expr) {
|
|
return expr;
|
|
}
|
|
exports.CONST_EXPR = CONST_EXPR;
|
|
function CONST() {
|
|
return function(target) {
|
|
return target;
|
|
};
|
|
}
|
|
exports.CONST = CONST;
|
|
function isPresent(obj) {
|
|
return obj !== undefined && obj !== null;
|
|
}
|
|
exports.isPresent = isPresent;
|
|
function isBlank(obj) {
|
|
return obj === undefined || obj === null;
|
|
}
|
|
exports.isBlank = isBlank;
|
|
function isString(obj) {
|
|
return typeof obj === "string";
|
|
}
|
|
exports.isString = isString;
|
|
function isFunction(obj) {
|
|
return typeof obj === "function";
|
|
}
|
|
exports.isFunction = isFunction;
|
|
function isType(obj) {
|
|
return isFunction(obj);
|
|
}
|
|
exports.isType = isType;
|
|
function isStringMap(obj) {
|
|
return typeof obj === 'object' && obj !== null;
|
|
}
|
|
exports.isStringMap = isStringMap;
|
|
function isPromise(obj) {
|
|
return obj instanceof _global.Promise;
|
|
}
|
|
exports.isPromise = isPromise;
|
|
function isArray(obj) {
|
|
return Array.isArray(obj);
|
|
}
|
|
exports.isArray = isArray;
|
|
function isNumber(obj) {
|
|
return typeof obj === 'number';
|
|
}
|
|
exports.isNumber = isNumber;
|
|
function isDate(obj) {
|
|
return obj instanceof exports.Date && !isNaN(obj.valueOf());
|
|
}
|
|
exports.isDate = isDate;
|
|
function noop() {}
|
|
exports.noop = noop;
|
|
function stringify(token) {
|
|
if (typeof token === 'string') {
|
|
return token;
|
|
}
|
|
if (token === undefined || token === null) {
|
|
return '' + token;
|
|
}
|
|
if (token.name) {
|
|
return token.name;
|
|
}
|
|
if (token.overriddenName) {
|
|
return token.overriddenName;
|
|
}
|
|
var res = token.toString();
|
|
var newLineIndex = res.indexOf("\n");
|
|
return (newLineIndex === -1) ? res : res.substring(0, newLineIndex);
|
|
}
|
|
exports.stringify = stringify;
|
|
function serializeEnum(val) {
|
|
return val;
|
|
}
|
|
exports.serializeEnum = serializeEnum;
|
|
function deserializeEnum(val, values) {
|
|
return val;
|
|
}
|
|
exports.deserializeEnum = deserializeEnum;
|
|
function resolveEnumToken(enumValue, val) {
|
|
return enumValue[val];
|
|
}
|
|
exports.resolveEnumToken = resolveEnumToken;
|
|
var StringWrapper = (function() {
|
|
function StringWrapper() {}
|
|
StringWrapper.fromCharCode = function(code) {
|
|
return String.fromCharCode(code);
|
|
};
|
|
StringWrapper.charCodeAt = function(s, index) {
|
|
return s.charCodeAt(index);
|
|
};
|
|
StringWrapper.split = function(s, regExp) {
|
|
return s.split(regExp);
|
|
};
|
|
StringWrapper.equals = function(s, s2) {
|
|
return s === s2;
|
|
};
|
|
StringWrapper.stripLeft = function(s, charVal) {
|
|
if (s && s.length) {
|
|
var pos = 0;
|
|
for (var i = 0; i < s.length; i++) {
|
|
if (s[i] != charVal)
|
|
break;
|
|
pos++;
|
|
}
|
|
s = s.substring(pos);
|
|
}
|
|
return s;
|
|
};
|
|
StringWrapper.stripRight = function(s, charVal) {
|
|
if (s && s.length) {
|
|
var pos = s.length;
|
|
for (var i = s.length - 1; i >= 0; i--) {
|
|
if (s[i] != charVal)
|
|
break;
|
|
pos--;
|
|
}
|
|
s = s.substring(0, pos);
|
|
}
|
|
return s;
|
|
};
|
|
StringWrapper.replace = function(s, from, replace) {
|
|
return s.replace(from, replace);
|
|
};
|
|
StringWrapper.replaceAll = function(s, from, replace) {
|
|
return s.replace(from, replace);
|
|
};
|
|
StringWrapper.slice = function(s, from, to) {
|
|
if (from === void 0) {
|
|
from = 0;
|
|
}
|
|
if (to === void 0) {
|
|
to = null;
|
|
}
|
|
return s.slice(from, to === null ? undefined : to);
|
|
};
|
|
StringWrapper.replaceAllMapped = function(s, from, cb) {
|
|
return s.replace(from, function() {
|
|
var matches = [];
|
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
matches[_i - 0] = arguments[_i];
|
|
}
|
|
matches.splice(-2, 2);
|
|
return cb(matches);
|
|
});
|
|
};
|
|
StringWrapper.contains = function(s, substr) {
|
|
return s.indexOf(substr) != -1;
|
|
};
|
|
StringWrapper.compare = function(a, b) {
|
|
if (a < b) {
|
|
return -1;
|
|
} else if (a > b) {
|
|
return 1;
|
|
} else {
|
|
return 0;
|
|
}
|
|
};
|
|
return StringWrapper;
|
|
})();
|
|
exports.StringWrapper = StringWrapper;
|
|
var StringJoiner = (function() {
|
|
function StringJoiner(parts) {
|
|
if (parts === void 0) {
|
|
parts = [];
|
|
}
|
|
this.parts = parts;
|
|
}
|
|
StringJoiner.prototype.add = function(part) {
|
|
this.parts.push(part);
|
|
};
|
|
StringJoiner.prototype.toString = function() {
|
|
return this.parts.join("");
|
|
};
|
|
return StringJoiner;
|
|
})();
|
|
exports.StringJoiner = StringJoiner;
|
|
var NumberParseError = (function(_super) {
|
|
__extends(NumberParseError, _super);
|
|
function NumberParseError(message) {
|
|
_super.call(this);
|
|
this.message = message;
|
|
}
|
|
NumberParseError.prototype.toString = function() {
|
|
return this.message;
|
|
};
|
|
return NumberParseError;
|
|
})(Error);
|
|
exports.NumberParseError = NumberParseError;
|
|
var NumberWrapper = (function() {
|
|
function NumberWrapper() {}
|
|
NumberWrapper.toFixed = function(n, fractionDigits) {
|
|
return n.toFixed(fractionDigits);
|
|
};
|
|
NumberWrapper.equal = function(a, b) {
|
|
return a === b;
|
|
};
|
|
NumberWrapper.parseIntAutoRadix = function(text) {
|
|
var result = parseInt(text);
|
|
if (isNaN(result)) {
|
|
throw new NumberParseError("Invalid integer literal when parsing " + text);
|
|
}
|
|
return result;
|
|
};
|
|
NumberWrapper.parseInt = function(text, radix) {
|
|
if (radix == 10) {
|
|
if (/^(\-|\+)?[0-9]+$/.test(text)) {
|
|
return parseInt(text, radix);
|
|
}
|
|
} else if (radix == 16) {
|
|
if (/^(\-|\+)?[0-9ABCDEFabcdef]+$/.test(text)) {
|
|
return parseInt(text, radix);
|
|
}
|
|
} else {
|
|
var result = parseInt(text, radix);
|
|
if (!isNaN(result)) {
|
|
return result;
|
|
}
|
|
}
|
|
throw new NumberParseError("Invalid integer literal when parsing " + text + " in base " + radix);
|
|
};
|
|
NumberWrapper.parseFloat = function(text) {
|
|
return parseFloat(text);
|
|
};
|
|
Object.defineProperty(NumberWrapper, "NaN", {
|
|
get: function() {
|
|
return NaN;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
NumberWrapper.isNaN = function(value) {
|
|
return isNaN(value);
|
|
};
|
|
NumberWrapper.isInteger = function(value) {
|
|
return Number.isInteger(value);
|
|
};
|
|
return NumberWrapper;
|
|
})();
|
|
exports.NumberWrapper = NumberWrapper;
|
|
exports.RegExp = _global.RegExp;
|
|
var RegExpWrapper = (function() {
|
|
function RegExpWrapper() {}
|
|
RegExpWrapper.create = function(regExpStr, flags) {
|
|
if (flags === void 0) {
|
|
flags = '';
|
|
}
|
|
flags = flags.replace(/g/g, '');
|
|
return new _global.RegExp(regExpStr, flags + 'g');
|
|
};
|
|
RegExpWrapper.firstMatch = function(regExp, input) {
|
|
regExp.lastIndex = 0;
|
|
return regExp.exec(input);
|
|
};
|
|
RegExpWrapper.test = function(regExp, input) {
|
|
regExp.lastIndex = 0;
|
|
return regExp.test(input);
|
|
};
|
|
RegExpWrapper.matcher = function(regExp, input) {
|
|
regExp.lastIndex = 0;
|
|
return {
|
|
re: regExp,
|
|
input: input
|
|
};
|
|
};
|
|
RegExpWrapper.replaceAll = function(regExp, input, replace) {
|
|
var c = regExp.exec(input);
|
|
var res = '';
|
|
regExp.lastIndex = 0;
|
|
var prev = 0;
|
|
while (c) {
|
|
res += input.substring(prev, c.index);
|
|
res += replace(c);
|
|
prev = c.index + c[0].length;
|
|
regExp.lastIndex = prev;
|
|
c = regExp.exec(input);
|
|
}
|
|
res += input.substring(prev);
|
|
return res;
|
|
};
|
|
return RegExpWrapper;
|
|
})();
|
|
exports.RegExpWrapper = RegExpWrapper;
|
|
var RegExpMatcherWrapper = (function() {
|
|
function RegExpMatcherWrapper() {}
|
|
RegExpMatcherWrapper.next = function(matcher) {
|
|
return matcher.re.exec(matcher.input);
|
|
};
|
|
return RegExpMatcherWrapper;
|
|
})();
|
|
exports.RegExpMatcherWrapper = RegExpMatcherWrapper;
|
|
var FunctionWrapper = (function() {
|
|
function FunctionWrapper() {}
|
|
FunctionWrapper.apply = function(fn, posArgs) {
|
|
return fn.apply(null, posArgs);
|
|
};
|
|
return FunctionWrapper;
|
|
})();
|
|
exports.FunctionWrapper = FunctionWrapper;
|
|
function looseIdentical(a, b) {
|
|
return a === b || typeof a === "number" && typeof b === "number" && isNaN(a) && isNaN(b);
|
|
}
|
|
exports.looseIdentical = looseIdentical;
|
|
function getMapKey(value) {
|
|
return value;
|
|
}
|
|
exports.getMapKey = getMapKey;
|
|
function normalizeBlank(obj) {
|
|
return isBlank(obj) ? null : obj;
|
|
}
|
|
exports.normalizeBlank = normalizeBlank;
|
|
function normalizeBool(obj) {
|
|
return isBlank(obj) ? false : obj;
|
|
}
|
|
exports.normalizeBool = normalizeBool;
|
|
function isJsObject(o) {
|
|
return o !== null && (typeof o === "function" || typeof o === "object");
|
|
}
|
|
exports.isJsObject = isJsObject;
|
|
function print(obj) {
|
|
console.log(obj);
|
|
}
|
|
exports.print = print;
|
|
var Json = (function() {
|
|
function Json() {}
|
|
Json.parse = function(s) {
|
|
return _global.JSON.parse(s);
|
|
};
|
|
Json.stringify = function(data) {
|
|
return _global.JSON.stringify(data, null, 2);
|
|
};
|
|
return Json;
|
|
})();
|
|
exports.Json = Json;
|
|
var DateWrapper = (function() {
|
|
function DateWrapper() {}
|
|
DateWrapper.create = function(year, month, day, hour, minutes, seconds, milliseconds) {
|
|
if (month === void 0) {
|
|
month = 1;
|
|
}
|
|
if (day === void 0) {
|
|
day = 1;
|
|
}
|
|
if (hour === void 0) {
|
|
hour = 0;
|
|
}
|
|
if (minutes === void 0) {
|
|
minutes = 0;
|
|
}
|
|
if (seconds === void 0) {
|
|
seconds = 0;
|
|
}
|
|
if (milliseconds === void 0) {
|
|
milliseconds = 0;
|
|
}
|
|
return new exports.Date(year, month - 1, day, hour, minutes, seconds, milliseconds);
|
|
};
|
|
DateWrapper.fromISOString = function(str) {
|
|
return new exports.Date(str);
|
|
};
|
|
DateWrapper.fromMillis = function(ms) {
|
|
return new exports.Date(ms);
|
|
};
|
|
DateWrapper.toMillis = function(date) {
|
|
return date.getTime();
|
|
};
|
|
DateWrapper.now = function() {
|
|
return new exports.Date();
|
|
};
|
|
DateWrapper.toJson = function(date) {
|
|
return date.toJSON();
|
|
};
|
|
return DateWrapper;
|
|
})();
|
|
exports.DateWrapper = DateWrapper;
|
|
function setValueOnPath(global, path, value) {
|
|
var parts = path.split('.');
|
|
var obj = global;
|
|
while (parts.length > 1) {
|
|
var name = parts.shift();
|
|
if (obj.hasOwnProperty(name) && isPresent(obj[name])) {
|
|
obj = obj[name];
|
|
} else {
|
|
obj = obj[name] = {};
|
|
}
|
|
}
|
|
if (obj === undefined || obj === null) {
|
|
obj = {};
|
|
}
|
|
obj[parts.shift()] = value;
|
|
}
|
|
exports.setValueOnPath = setValueOnPath;
|
|
var _symbolIterator = null;
|
|
function getSymbolIterator() {
|
|
if (isBlank(_symbolIterator)) {
|
|
if (isPresent(Symbol) && isPresent(Symbol.iterator)) {
|
|
_symbolIterator = Symbol.iterator;
|
|
} else {
|
|
var keys = Object.getOwnPropertyNames(Map.prototype);
|
|
for (var i = 0; i < keys.length; ++i) {
|
|
var key = keys[i];
|
|
if (key !== 'entries' && key !== 'size' && Map.prototype[key] === Map.prototype['entries']) {
|
|
_symbolIterator = key;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return _symbolIterator;
|
|
}
|
|
exports.getSymbolIterator = getSymbolIterator;
|
|
function evalExpression(sourceUrl, expr, declarations, vars) {
|
|
var fnBody = declarations + "\nreturn " + expr + "\n//# sourceURL=" + sourceUrl;
|
|
var fnArgNames = [];
|
|
var fnArgValues = [];
|
|
for (var argName in vars) {
|
|
fnArgNames.push(argName);
|
|
fnArgValues.push(vars[argName]);
|
|
}
|
|
return new (Function.bind.apply(Function, [void 0].concat(fnArgNames.concat(fnBody))))().apply(void 0, fnArgValues);
|
|
}
|
|
exports.evalExpression = evalExpression;
|
|
function isPrimitive(obj) {
|
|
return !isJsObject(obj);
|
|
}
|
|
exports.isPrimitive = isPrimitive;
|
|
function hasConstructor(value, type) {
|
|
return value.constructor === type;
|
|
}
|
|
exports.hasConstructor = hasConstructor;
|
|
function bitWiseOr(values) {
|
|
return values.reduce(function(a, b) {
|
|
return a | b;
|
|
});
|
|
}
|
|
exports.bitWiseOr = bitWiseOr;
|
|
function bitWiseAnd(values) {
|
|
return values.reduce(function(a, b) {
|
|
return a & b;
|
|
});
|
|
}
|
|
exports.bitWiseAnd = bitWiseAnd;
|
|
function escape(s) {
|
|
return _global.encodeURI(s);
|
|
}
|
|
exports.escape = escape;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/facade/promise", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var PromiseCompleter = (function() {
|
|
function PromiseCompleter() {
|
|
var _this = this;
|
|
this.promise = new Promise(function(res, rej) {
|
|
_this.resolve = res;
|
|
_this.reject = rej;
|
|
});
|
|
}
|
|
return PromiseCompleter;
|
|
})();
|
|
exports.PromiseCompleter = PromiseCompleter;
|
|
var PromiseWrapper = (function() {
|
|
function PromiseWrapper() {}
|
|
PromiseWrapper.resolve = function(obj) {
|
|
return Promise.resolve(obj);
|
|
};
|
|
PromiseWrapper.reject = function(obj, _) {
|
|
return Promise.reject(obj);
|
|
};
|
|
PromiseWrapper.catchError = function(promise, onError) {
|
|
return promise.catch(onError);
|
|
};
|
|
PromiseWrapper.all = function(promises) {
|
|
if (promises.length == 0)
|
|
return Promise.resolve([]);
|
|
return Promise.all(promises);
|
|
};
|
|
PromiseWrapper.then = function(promise, success, rejection) {
|
|
return promise.then(success, rejection);
|
|
};
|
|
PromiseWrapper.wrap = function(computation) {
|
|
return new Promise(function(res, rej) {
|
|
try {
|
|
res(computation());
|
|
} catch (e) {
|
|
rej(e);
|
|
}
|
|
});
|
|
};
|
|
PromiseWrapper.scheduleMicrotask = function(computation) {
|
|
PromiseWrapper.then(PromiseWrapper.resolve(null), computation, function(_) {});
|
|
};
|
|
PromiseWrapper.isPromise = function(obj) {
|
|
return obj instanceof Promise;
|
|
};
|
|
PromiseWrapper.completer = function() {
|
|
return new PromiseCompleter();
|
|
};
|
|
return PromiseWrapper;
|
|
})();
|
|
exports.PromiseWrapper = PromiseWrapper;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("rxjs/util/root", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
"use strict";
|
|
var objectTypes = {
|
|
'boolean': false,
|
|
'function': true,
|
|
'object': true,
|
|
'number': false,
|
|
'string': false,
|
|
'undefined': false
|
|
};
|
|
exports.root = (objectTypes[typeof self] && self) || (objectTypes[typeof window] && window);
|
|
var freeExports = objectTypes[typeof exports] && exports && !exports.nodeType && exports;
|
|
var freeModule = objectTypes[typeof module] && module && !module.nodeType && module;
|
|
var freeGlobal = objectTypes[typeof global] && global;
|
|
if (freeGlobal && (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal)) {
|
|
exports.root = freeGlobal;
|
|
}
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("rxjs/util/SymbolShim", ["rxjs/util/root"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
"use strict";
|
|
var root_1 = require("rxjs/util/root");
|
|
function polyfillSymbol(root) {
|
|
var Symbol = ensureSymbol(root);
|
|
ensureIterator(Symbol, root);
|
|
ensureObservable(Symbol);
|
|
ensureFor(Symbol);
|
|
return Symbol;
|
|
}
|
|
exports.polyfillSymbol = polyfillSymbol;
|
|
function ensureFor(Symbol) {
|
|
if (!Symbol.for) {
|
|
Symbol.for = symbolForPolyfill;
|
|
}
|
|
}
|
|
exports.ensureFor = ensureFor;
|
|
var id = 0;
|
|
function ensureSymbol(root) {
|
|
if (!root.Symbol) {
|
|
root.Symbol = function symbolFuncPolyfill(description) {
|
|
return "@@Symbol(" + description + "):" + id++;
|
|
};
|
|
}
|
|
return root.Symbol;
|
|
}
|
|
exports.ensureSymbol = ensureSymbol;
|
|
function symbolForPolyfill(key) {
|
|
return '@@' + key;
|
|
}
|
|
exports.symbolForPolyfill = symbolForPolyfill;
|
|
function ensureIterator(Symbol, root) {
|
|
if (!Symbol.iterator) {
|
|
if (typeof Symbol.for === 'function') {
|
|
Symbol.iterator = Symbol.for('iterator');
|
|
} else if (root.Set && typeof new root.Set()['@@iterator'] === 'function') {
|
|
Symbol.iterator = '@@iterator';
|
|
} else if (root.Map) {
|
|
var keys = Object.getOwnPropertyNames(root.Map.prototype);
|
|
for (var i = 0; i < keys.length; ++i) {
|
|
var key = keys[i];
|
|
if (key !== 'entries' && key !== 'size' && root.Map.prototype[key] === root.Map.prototype['entries']) {
|
|
Symbol.iterator = key;
|
|
break;
|
|
}
|
|
}
|
|
} else {
|
|
Symbol.iterator = '@@iterator';
|
|
}
|
|
}
|
|
}
|
|
exports.ensureIterator = ensureIterator;
|
|
function ensureObservable(Symbol) {
|
|
if (!Symbol.observable) {
|
|
if (typeof Symbol.for === 'function') {
|
|
Symbol.observable = Symbol.for('observable');
|
|
} else {
|
|
Symbol.observable = '@@observable';
|
|
}
|
|
}
|
|
}
|
|
exports.ensureObservable = ensureObservable;
|
|
exports.SymbolShim = polyfillSymbol(root_1.root);
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("rxjs/util/isFunction", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
"use strict";
|
|
function isFunction(x) {
|
|
return typeof x === 'function';
|
|
}
|
|
exports.isFunction = isFunction;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("rxjs/util/isArray", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
"use strict";
|
|
exports.isArray = Array.isArray || (function(x) {
|
|
return x && typeof x.length === 'number';
|
|
});
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("rxjs/util/isObject", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
"use strict";
|
|
function isObject(x) {
|
|
return x != null && typeof x === 'object';
|
|
}
|
|
exports.isObject = isObject;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("rxjs/util/errorObject", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
"use strict";
|
|
exports.errorObject = {e: {}};
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("rxjs/symbol/rxSubscriber", ["rxjs/util/SymbolShim"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
"use strict";
|
|
var SymbolShim_1 = require("rxjs/util/SymbolShim");
|
|
exports.rxSubscriber = SymbolShim_1.SymbolShim.for('rxSubscriber');
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("rxjs/Observer", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
"use strict";
|
|
exports.empty = {
|
|
isUnsubscribed: true,
|
|
next: function(value) {},
|
|
error: function(err) {
|
|
throw err;
|
|
},
|
|
complete: function() {}
|
|
};
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("rxjs/subject/SubjectSubscription", ["rxjs/Subscription"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
"use strict";
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var Subscription_1 = require("rxjs/Subscription");
|
|
var SubjectSubscription = (function(_super) {
|
|
__extends(SubjectSubscription, _super);
|
|
function SubjectSubscription(subject, observer) {
|
|
_super.call(this);
|
|
this.subject = subject;
|
|
this.observer = observer;
|
|
this.isUnsubscribed = false;
|
|
}
|
|
SubjectSubscription.prototype.unsubscribe = function() {
|
|
if (this.isUnsubscribed) {
|
|
return ;
|
|
}
|
|
this.isUnsubscribed = true;
|
|
var subject = this.subject;
|
|
var observers = subject.observers;
|
|
this.subject = null;
|
|
if (!observers || observers.length === 0 || subject.isUnsubscribed) {
|
|
return ;
|
|
}
|
|
var subscriberIndex = observers.indexOf(this.observer);
|
|
if (subscriberIndex !== -1) {
|
|
observers.splice(subscriberIndex, 1);
|
|
}
|
|
};
|
|
return SubjectSubscription;
|
|
}(Subscription_1.Subscription));
|
|
exports.SubjectSubscription = SubjectSubscription;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("rxjs/util/throwError", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
"use strict";
|
|
function throwError(e) {
|
|
throw e;
|
|
}
|
|
exports.throwError = throwError;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("rxjs/util/ObjectUnsubscribedError", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
"use strict";
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var ObjectUnsubscribedError = (function(_super) {
|
|
__extends(ObjectUnsubscribedError, _super);
|
|
function ObjectUnsubscribedError() {
|
|
_super.call(this, 'object unsubscribed');
|
|
this.name = 'ObjectUnsubscribedError';
|
|
}
|
|
return ObjectUnsubscribedError;
|
|
}(Error));
|
|
exports.ObjectUnsubscribedError = ObjectUnsubscribedError;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("rxjs/observable/PromiseObservable", ["rxjs/util/root", "rxjs/Observable"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
"use strict";
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var root_1 = require("rxjs/util/root");
|
|
var Observable_1 = require("rxjs/Observable");
|
|
var PromiseObservable = (function(_super) {
|
|
__extends(PromiseObservable, _super);
|
|
function PromiseObservable(promise, scheduler) {
|
|
if (scheduler === void 0) {
|
|
scheduler = null;
|
|
}
|
|
_super.call(this);
|
|
this.promise = promise;
|
|
this.scheduler = scheduler;
|
|
}
|
|
PromiseObservable.create = function(promise, scheduler) {
|
|
if (scheduler === void 0) {
|
|
scheduler = null;
|
|
}
|
|
return new PromiseObservable(promise, scheduler);
|
|
};
|
|
PromiseObservable.prototype._subscribe = function(subscriber) {
|
|
var _this = this;
|
|
var promise = this.promise;
|
|
var scheduler = this.scheduler;
|
|
if (scheduler == null) {
|
|
if (this._isScalar) {
|
|
if (!subscriber.isUnsubscribed) {
|
|
subscriber.next(this.value);
|
|
subscriber.complete();
|
|
}
|
|
} else {
|
|
promise.then(function(value) {
|
|
_this.value = value;
|
|
_this._isScalar = true;
|
|
if (!subscriber.isUnsubscribed) {
|
|
subscriber.next(value);
|
|
subscriber.complete();
|
|
}
|
|
}, function(err) {
|
|
if (!subscriber.isUnsubscribed) {
|
|
subscriber.error(err);
|
|
}
|
|
}).then(null, function(err) {
|
|
root_1.root.setTimeout(function() {
|
|
throw err;
|
|
});
|
|
});
|
|
}
|
|
} else {
|
|
if (this._isScalar) {
|
|
if (!subscriber.isUnsubscribed) {
|
|
return scheduler.schedule(dispatchNext, 0, {
|
|
value: this.value,
|
|
subscriber: subscriber
|
|
});
|
|
}
|
|
} else {
|
|
promise.then(function(value) {
|
|
_this.value = value;
|
|
_this._isScalar = true;
|
|
if (!subscriber.isUnsubscribed) {
|
|
subscriber.add(scheduler.schedule(dispatchNext, 0, {
|
|
value: value,
|
|
subscriber: subscriber
|
|
}));
|
|
}
|
|
}, function(err) {
|
|
if (!subscriber.isUnsubscribed) {
|
|
subscriber.add(scheduler.schedule(dispatchError, 0, {
|
|
err: err,
|
|
subscriber: subscriber
|
|
}));
|
|
}
|
|
}).then(null, function(err) {
|
|
root_1.root.setTimeout(function() {
|
|
throw err;
|
|
});
|
|
});
|
|
}
|
|
}
|
|
};
|
|
return PromiseObservable;
|
|
}(Observable_1.Observable));
|
|
exports.PromiseObservable = PromiseObservable;
|
|
function dispatchNext(_a) {
|
|
var value = _a.value,
|
|
subscriber = _a.subscriber;
|
|
if (!subscriber.isUnsubscribed) {
|
|
subscriber.next(value);
|
|
subscriber.complete();
|
|
}
|
|
}
|
|
function dispatchError(_a) {
|
|
var err = _a.err,
|
|
subscriber = _a.subscriber;
|
|
if (!subscriber.isUnsubscribed) {
|
|
subscriber.error(err);
|
|
}
|
|
}
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("rxjs/operator/toPromise", ["rxjs/util/root"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
"use strict";
|
|
var root_1 = require("rxjs/util/root");
|
|
function toPromise(PromiseCtor) {
|
|
var _this = this;
|
|
if (!PromiseCtor) {
|
|
if (root_1.root.Rx && root_1.root.Rx.config && root_1.root.Rx.config.Promise) {
|
|
PromiseCtor = root_1.root.Rx.config.Promise;
|
|
} else if (root_1.root.Promise) {
|
|
PromiseCtor = root_1.root.Promise;
|
|
}
|
|
}
|
|
if (!PromiseCtor) {
|
|
throw new Error('no Promise impl found');
|
|
}
|
|
return new PromiseCtor(function(resolve, reject) {
|
|
var value;
|
|
_this.subscribe(function(x) {
|
|
return value = x;
|
|
}, function(err) {
|
|
return reject(err);
|
|
}, function() {
|
|
return resolve(value);
|
|
});
|
|
});
|
|
}
|
|
exports.toPromise = toPromise;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/di/metadata", ["angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var InjectMetadata = (function() {
|
|
function InjectMetadata(token) {
|
|
this.token = token;
|
|
}
|
|
InjectMetadata.prototype.toString = function() {
|
|
return "@Inject(" + lang_1.stringify(this.token) + ")";
|
|
};
|
|
InjectMetadata = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [Object])], InjectMetadata);
|
|
return InjectMetadata;
|
|
})();
|
|
exports.InjectMetadata = InjectMetadata;
|
|
var OptionalMetadata = (function() {
|
|
function OptionalMetadata() {}
|
|
OptionalMetadata.prototype.toString = function() {
|
|
return "@Optional()";
|
|
};
|
|
OptionalMetadata = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [])], OptionalMetadata);
|
|
return OptionalMetadata;
|
|
})();
|
|
exports.OptionalMetadata = OptionalMetadata;
|
|
var DependencyMetadata = (function() {
|
|
function DependencyMetadata() {}
|
|
Object.defineProperty(DependencyMetadata.prototype, "token", {
|
|
get: function() {
|
|
return null;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
DependencyMetadata = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [])], DependencyMetadata);
|
|
return DependencyMetadata;
|
|
})();
|
|
exports.DependencyMetadata = DependencyMetadata;
|
|
var InjectableMetadata = (function() {
|
|
function InjectableMetadata() {}
|
|
InjectableMetadata = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [])], InjectableMetadata);
|
|
return InjectableMetadata;
|
|
})();
|
|
exports.InjectableMetadata = InjectableMetadata;
|
|
var SelfMetadata = (function() {
|
|
function SelfMetadata() {}
|
|
SelfMetadata.prototype.toString = function() {
|
|
return "@Self()";
|
|
};
|
|
SelfMetadata = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [])], SelfMetadata);
|
|
return SelfMetadata;
|
|
})();
|
|
exports.SelfMetadata = SelfMetadata;
|
|
var SkipSelfMetadata = (function() {
|
|
function SkipSelfMetadata() {}
|
|
SkipSelfMetadata.prototype.toString = function() {
|
|
return "@SkipSelf()";
|
|
};
|
|
SkipSelfMetadata = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [])], SkipSelfMetadata);
|
|
return SkipSelfMetadata;
|
|
})();
|
|
exports.SkipSelfMetadata = SkipSelfMetadata;
|
|
var HostMetadata = (function() {
|
|
function HostMetadata() {}
|
|
HostMetadata.prototype.toString = function() {
|
|
return "@Host()";
|
|
};
|
|
HostMetadata = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [])], HostMetadata);
|
|
return HostMetadata;
|
|
})();
|
|
exports.HostMetadata = HostMetadata;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/util/decorators", ["angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var _nextClassId = 0;
|
|
function extractAnnotation(annotation) {
|
|
if (lang_1.isFunction(annotation) && annotation.hasOwnProperty('annotation')) {
|
|
annotation = annotation.annotation;
|
|
}
|
|
return annotation;
|
|
}
|
|
function applyParams(fnOrArray, key) {
|
|
if (fnOrArray === Object || fnOrArray === String || fnOrArray === Function || fnOrArray === Number || fnOrArray === Array) {
|
|
throw new Error("Can not use native " + lang_1.stringify(fnOrArray) + " as constructor");
|
|
}
|
|
if (lang_1.isFunction(fnOrArray)) {
|
|
return fnOrArray;
|
|
} else if (fnOrArray instanceof Array) {
|
|
var annotations = fnOrArray;
|
|
var fn = fnOrArray[fnOrArray.length - 1];
|
|
if (!lang_1.isFunction(fn)) {
|
|
throw new Error("Last position of Class method array must be Function in key " + key + " was '" + lang_1.stringify(fn) + "'");
|
|
}
|
|
var annoLength = annotations.length - 1;
|
|
if (annoLength != fn.length) {
|
|
throw new Error("Number of annotations (" + annoLength + ") does not match number of arguments (" + fn.length + ") in the function: " + lang_1.stringify(fn));
|
|
}
|
|
var paramsAnnotations = [];
|
|
for (var i = 0,
|
|
ii = annotations.length - 1; i < ii; i++) {
|
|
var paramAnnotations = [];
|
|
paramsAnnotations.push(paramAnnotations);
|
|
var annotation = annotations[i];
|
|
if (annotation instanceof Array) {
|
|
for (var j = 0; j < annotation.length; j++) {
|
|
paramAnnotations.push(extractAnnotation(annotation[j]));
|
|
}
|
|
} else if (lang_1.isFunction(annotation)) {
|
|
paramAnnotations.push(extractAnnotation(annotation));
|
|
} else {
|
|
paramAnnotations.push(annotation);
|
|
}
|
|
}
|
|
Reflect.defineMetadata('parameters', paramsAnnotations, fn);
|
|
return fn;
|
|
} else {
|
|
throw new Error("Only Function or Array is supported in Class definition for key '" + key + "' is '" + lang_1.stringify(fnOrArray) + "'");
|
|
}
|
|
}
|
|
function Class(clsDef) {
|
|
var constructor = applyParams(clsDef.hasOwnProperty('constructor') ? clsDef.constructor : undefined, 'constructor');
|
|
var proto = constructor.prototype;
|
|
if (clsDef.hasOwnProperty('extends')) {
|
|
if (lang_1.isFunction(clsDef.extends)) {
|
|
constructor.prototype = proto = Object.create(clsDef.extends.prototype);
|
|
} else {
|
|
throw new Error("Class definition 'extends' property must be a constructor function was: " + lang_1.stringify(clsDef.extends));
|
|
}
|
|
}
|
|
for (var key in clsDef) {
|
|
if (key != 'extends' && key != 'prototype' && clsDef.hasOwnProperty(key)) {
|
|
proto[key] = applyParams(clsDef[key], key);
|
|
}
|
|
}
|
|
if (this && this.annotations instanceof Array) {
|
|
Reflect.defineMetadata('annotations', this.annotations, constructor);
|
|
}
|
|
if (!constructor['name']) {
|
|
constructor['overriddenName'] = "class" + _nextClassId++;
|
|
}
|
|
return constructor;
|
|
}
|
|
exports.Class = Class;
|
|
var Reflect = lang_1.global.Reflect;
|
|
(function checkReflect() {
|
|
if (!(Reflect && Reflect.getMetadata)) {
|
|
throw 'reflect-metadata shim is required when using class decorators';
|
|
}
|
|
})();
|
|
function makeDecorator(annotationCls, chainFn) {
|
|
if (chainFn === void 0) {
|
|
chainFn = null;
|
|
}
|
|
function DecoratorFactory(objOrType) {
|
|
var annotationInstance = new annotationCls(objOrType);
|
|
if (this instanceof annotationCls) {
|
|
return annotationInstance;
|
|
} else {
|
|
var chainAnnotation = lang_1.isFunction(this) && this.annotations instanceof Array ? this.annotations : [];
|
|
chainAnnotation.push(annotationInstance);
|
|
var TypeDecorator = function TypeDecorator(cls) {
|
|
var annotations = Reflect.getOwnMetadata('annotations', cls);
|
|
annotations = annotations || [];
|
|
annotations.push(annotationInstance);
|
|
Reflect.defineMetadata('annotations', annotations, cls);
|
|
return cls;
|
|
};
|
|
TypeDecorator.annotations = chainAnnotation;
|
|
TypeDecorator.Class = Class;
|
|
if (chainFn)
|
|
chainFn(TypeDecorator);
|
|
return TypeDecorator;
|
|
}
|
|
}
|
|
DecoratorFactory.prototype = Object.create(annotationCls.prototype);
|
|
return DecoratorFactory;
|
|
}
|
|
exports.makeDecorator = makeDecorator;
|
|
function makeParamDecorator(annotationCls) {
|
|
function ParamDecoratorFactory() {
|
|
var args = [];
|
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
args[_i - 0] = arguments[_i];
|
|
}
|
|
var annotationInstance = Object.create(annotationCls.prototype);
|
|
annotationCls.apply(annotationInstance, args);
|
|
if (this instanceof annotationCls) {
|
|
return annotationInstance;
|
|
} else {
|
|
ParamDecorator.annotation = annotationInstance;
|
|
return ParamDecorator;
|
|
}
|
|
function ParamDecorator(cls, unusedKey, index) {
|
|
var parameters = Reflect.getMetadata('parameters', cls);
|
|
parameters = parameters || [];
|
|
while (parameters.length <= index) {
|
|
parameters.push(null);
|
|
}
|
|
parameters[index] = parameters[index] || [];
|
|
var annotationsForParam = parameters[index];
|
|
annotationsForParam.push(annotationInstance);
|
|
Reflect.defineMetadata('parameters', parameters, cls);
|
|
return cls;
|
|
}
|
|
}
|
|
ParamDecoratorFactory.prototype = Object.create(annotationCls.prototype);
|
|
return ParamDecoratorFactory;
|
|
}
|
|
exports.makeParamDecorator = makeParamDecorator;
|
|
function makePropDecorator(decoratorCls) {
|
|
function PropDecoratorFactory() {
|
|
var args = [];
|
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
args[_i - 0] = arguments[_i];
|
|
}
|
|
var decoratorInstance = Object.create(decoratorCls.prototype);
|
|
decoratorCls.apply(decoratorInstance, args);
|
|
if (this instanceof decoratorCls) {
|
|
return decoratorInstance;
|
|
} else {
|
|
return function PropDecorator(target, name) {
|
|
var meta = Reflect.getOwnMetadata('propMetadata', target.constructor);
|
|
meta = meta || {};
|
|
meta[name] = meta[name] || [];
|
|
meta[name].unshift(decoratorInstance);
|
|
Reflect.defineMetadata('propMetadata', meta, target.constructor);
|
|
};
|
|
}
|
|
}
|
|
PropDecoratorFactory.prototype = Object.create(decoratorCls.prototype);
|
|
return PropDecoratorFactory;
|
|
}
|
|
exports.makePropDecorator = makePropDecorator;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/di/forward_ref", ["angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
function forwardRef(forwardRefFn) {
|
|
forwardRefFn.__forward_ref__ = forwardRef;
|
|
forwardRefFn.toString = function() {
|
|
return lang_1.stringify(this());
|
|
};
|
|
return forwardRefFn;
|
|
}
|
|
exports.forwardRef = forwardRef;
|
|
function resolveForwardRef(type) {
|
|
if (lang_1.isFunction(type) && type.hasOwnProperty('__forward_ref__') && type.__forward_ref__ === forwardRef) {
|
|
return type();
|
|
} else {
|
|
return type;
|
|
}
|
|
}
|
|
exports.resolveForwardRef = resolveForwardRef;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/facade/collection", ["angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
exports.Map = lang_1.global.Map;
|
|
exports.Set = lang_1.global.Set;
|
|
var createMapFromPairs = (function() {
|
|
try {
|
|
if (new exports.Map([[1, 2]]).size === 1) {
|
|
return function createMapFromPairs(pairs) {
|
|
return new exports.Map(pairs);
|
|
};
|
|
}
|
|
} catch (e) {}
|
|
return function createMapAndPopulateFromPairs(pairs) {
|
|
var map = new exports.Map();
|
|
for (var i = 0; i < pairs.length; i++) {
|
|
var pair = pairs[i];
|
|
map.set(pair[0], pair[1]);
|
|
}
|
|
return map;
|
|
};
|
|
})();
|
|
var createMapFromMap = (function() {
|
|
try {
|
|
if (new exports.Map(new exports.Map())) {
|
|
return function createMapFromMap(m) {
|
|
return new exports.Map(m);
|
|
};
|
|
}
|
|
} catch (e) {}
|
|
return function createMapAndPopulateFromMap(m) {
|
|
var map = new exports.Map();
|
|
m.forEach(function(v, k) {
|
|
map.set(k, v);
|
|
});
|
|
return map;
|
|
};
|
|
})();
|
|
var _clearValues = (function() {
|
|
if ((new exports.Map()).keys().next) {
|
|
return function _clearValues(m) {
|
|
var keyIterator = m.keys();
|
|
var k;
|
|
while (!((k = keyIterator.next()).done)) {
|
|
m.set(k.value, null);
|
|
}
|
|
};
|
|
} else {
|
|
return function _clearValuesWithForeEach(m) {
|
|
m.forEach(function(v, k) {
|
|
m.set(k, null);
|
|
});
|
|
};
|
|
}
|
|
})();
|
|
var _arrayFromMap = (function() {
|
|
try {
|
|
if ((new exports.Map()).values().next) {
|
|
return function createArrayFromMap(m, getValues) {
|
|
return getValues ? Array.from(m.values()) : Array.from(m.keys());
|
|
};
|
|
}
|
|
} catch (e) {}
|
|
return function createArrayFromMapWithForeach(m, getValues) {
|
|
var res = ListWrapper.createFixedSize(m.size),
|
|
i = 0;
|
|
m.forEach(function(v, k) {
|
|
res[i] = getValues ? v : k;
|
|
i++;
|
|
});
|
|
return res;
|
|
};
|
|
})();
|
|
var MapWrapper = (function() {
|
|
function MapWrapper() {}
|
|
MapWrapper.clone = function(m) {
|
|
return createMapFromMap(m);
|
|
};
|
|
MapWrapper.createFromStringMap = function(stringMap) {
|
|
var result = new exports.Map();
|
|
for (var prop in stringMap) {
|
|
result.set(prop, stringMap[prop]);
|
|
}
|
|
return result;
|
|
};
|
|
MapWrapper.toStringMap = function(m) {
|
|
var r = {};
|
|
m.forEach(function(v, k) {
|
|
return r[k] = v;
|
|
});
|
|
return r;
|
|
};
|
|
MapWrapper.createFromPairs = function(pairs) {
|
|
return createMapFromPairs(pairs);
|
|
};
|
|
MapWrapper.clearValues = function(m) {
|
|
_clearValues(m);
|
|
};
|
|
MapWrapper.iterable = function(m) {
|
|
return m;
|
|
};
|
|
MapWrapper.keys = function(m) {
|
|
return _arrayFromMap(m, false);
|
|
};
|
|
MapWrapper.values = function(m) {
|
|
return _arrayFromMap(m, true);
|
|
};
|
|
return MapWrapper;
|
|
})();
|
|
exports.MapWrapper = MapWrapper;
|
|
var StringMapWrapper = (function() {
|
|
function StringMapWrapper() {}
|
|
StringMapWrapper.create = function() {
|
|
return {};
|
|
};
|
|
StringMapWrapper.contains = function(map, key) {
|
|
return map.hasOwnProperty(key);
|
|
};
|
|
StringMapWrapper.get = function(map, key) {
|
|
return map.hasOwnProperty(key) ? map[key] : undefined;
|
|
};
|
|
StringMapWrapper.set = function(map, key, value) {
|
|
map[key] = value;
|
|
};
|
|
StringMapWrapper.keys = function(map) {
|
|
return Object.keys(map);
|
|
};
|
|
StringMapWrapper.values = function(map) {
|
|
return Object.keys(map).reduce(function(r, a) {
|
|
r.push(map[a]);
|
|
return r;
|
|
}, []);
|
|
};
|
|
StringMapWrapper.isEmpty = function(map) {
|
|
for (var prop in map) {
|
|
return false;
|
|
}
|
|
return true;
|
|
};
|
|
StringMapWrapper.delete = function(map, key) {
|
|
delete map[key];
|
|
};
|
|
StringMapWrapper.forEach = function(map, callback) {
|
|
for (var prop in map) {
|
|
if (map.hasOwnProperty(prop)) {
|
|
callback(map[prop], prop);
|
|
}
|
|
}
|
|
};
|
|
StringMapWrapper.merge = function(m1, m2) {
|
|
var m = {};
|
|
for (var attr in m1) {
|
|
if (m1.hasOwnProperty(attr)) {
|
|
m[attr] = m1[attr];
|
|
}
|
|
}
|
|
for (var attr in m2) {
|
|
if (m2.hasOwnProperty(attr)) {
|
|
m[attr] = m2[attr];
|
|
}
|
|
}
|
|
return m;
|
|
};
|
|
StringMapWrapper.equals = function(m1, m2) {
|
|
var k1 = Object.keys(m1);
|
|
var k2 = Object.keys(m2);
|
|
if (k1.length != k2.length) {
|
|
return false;
|
|
}
|
|
var key;
|
|
for (var i = 0; i < k1.length; i++) {
|
|
key = k1[i];
|
|
if (m1[key] !== m2[key]) {
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
};
|
|
return StringMapWrapper;
|
|
})();
|
|
exports.StringMapWrapper = StringMapWrapper;
|
|
var ListWrapper = (function() {
|
|
function ListWrapper() {}
|
|
ListWrapper.createFixedSize = function(size) {
|
|
return new Array(size);
|
|
};
|
|
ListWrapper.createGrowableSize = function(size) {
|
|
return new Array(size);
|
|
};
|
|
ListWrapper.clone = function(array) {
|
|
return array.slice(0);
|
|
};
|
|
ListWrapper.createImmutable = function(array) {
|
|
var result = ListWrapper.clone(array);
|
|
Object.seal(result);
|
|
return result;
|
|
};
|
|
ListWrapper.forEachWithIndex = function(array, fn) {
|
|
for (var i = 0; i < array.length; i++) {
|
|
fn(array[i], i);
|
|
}
|
|
};
|
|
ListWrapper.first = function(array) {
|
|
if (!array)
|
|
return null;
|
|
return array[0];
|
|
};
|
|
ListWrapper.last = function(array) {
|
|
if (!array || array.length == 0)
|
|
return null;
|
|
return array[array.length - 1];
|
|
};
|
|
ListWrapper.indexOf = function(array, value, startIndex) {
|
|
if (startIndex === void 0) {
|
|
startIndex = 0;
|
|
}
|
|
return array.indexOf(value, startIndex);
|
|
};
|
|
ListWrapper.contains = function(list, el) {
|
|
return list.indexOf(el) !== -1;
|
|
};
|
|
ListWrapper.reversed = function(array) {
|
|
var a = ListWrapper.clone(array);
|
|
return a.reverse();
|
|
};
|
|
ListWrapper.concat = function(a, b) {
|
|
return a.concat(b);
|
|
};
|
|
ListWrapper.insert = function(list, index, value) {
|
|
list.splice(index, 0, value);
|
|
};
|
|
ListWrapper.removeAt = function(list, index) {
|
|
var res = list[index];
|
|
list.splice(index, 1);
|
|
return res;
|
|
};
|
|
ListWrapper.removeAll = function(list, items) {
|
|
for (var i = 0; i < items.length; ++i) {
|
|
var index = list.indexOf(items[i]);
|
|
list.splice(index, 1);
|
|
}
|
|
};
|
|
ListWrapper.remove = function(list, el) {
|
|
var index = list.indexOf(el);
|
|
if (index > -1) {
|
|
list.splice(index, 1);
|
|
return true;
|
|
}
|
|
return false;
|
|
};
|
|
ListWrapper.clear = function(list) {
|
|
list.length = 0;
|
|
};
|
|
ListWrapper.isEmpty = function(list) {
|
|
return list.length == 0;
|
|
};
|
|
ListWrapper.fill = function(list, value, start, end) {
|
|
if (start === void 0) {
|
|
start = 0;
|
|
}
|
|
if (end === void 0) {
|
|
end = null;
|
|
}
|
|
list.fill(value, start, end === null ? list.length : end);
|
|
};
|
|
ListWrapper.equals = function(a, b) {
|
|
if (a.length != b.length)
|
|
return false;
|
|
for (var i = 0; i < a.length; ++i) {
|
|
if (a[i] !== b[i])
|
|
return false;
|
|
}
|
|
return true;
|
|
};
|
|
ListWrapper.slice = function(l, from, to) {
|
|
if (from === void 0) {
|
|
from = 0;
|
|
}
|
|
if (to === void 0) {
|
|
to = null;
|
|
}
|
|
return l.slice(from, to === null ? undefined : to);
|
|
};
|
|
ListWrapper.splice = function(l, from, length) {
|
|
return l.splice(from, length);
|
|
};
|
|
ListWrapper.sort = function(l, compareFn) {
|
|
if (lang_1.isPresent(compareFn)) {
|
|
l.sort(compareFn);
|
|
} else {
|
|
l.sort();
|
|
}
|
|
};
|
|
ListWrapper.toString = function(l) {
|
|
return l.toString();
|
|
};
|
|
ListWrapper.toJSON = function(l) {
|
|
return JSON.stringify(l);
|
|
};
|
|
ListWrapper.maximum = function(list, predicate) {
|
|
if (list.length == 0) {
|
|
return null;
|
|
}
|
|
var solution = null;
|
|
var maxValue = -Infinity;
|
|
for (var index = 0; index < list.length; index++) {
|
|
var candidate = list[index];
|
|
if (lang_1.isBlank(candidate)) {
|
|
continue;
|
|
}
|
|
var candidateValue = predicate(candidate);
|
|
if (candidateValue > maxValue) {
|
|
solution = candidate;
|
|
maxValue = candidateValue;
|
|
}
|
|
}
|
|
return solution;
|
|
};
|
|
ListWrapper.isImmutable = function(list) {
|
|
return Object.isSealed(list);
|
|
};
|
|
ListWrapper.flatten = function(array) {
|
|
var res = [];
|
|
array.forEach(function(a) {
|
|
return res = res.concat(a);
|
|
});
|
|
return res;
|
|
};
|
|
return ListWrapper;
|
|
})();
|
|
exports.ListWrapper = ListWrapper;
|
|
function isListLikeIterable(obj) {
|
|
if (!lang_1.isJsObject(obj))
|
|
return false;
|
|
return lang_1.isArray(obj) || (!(obj instanceof exports.Map) && lang_1.getSymbolIterator() in obj);
|
|
}
|
|
exports.isListLikeIterable = isListLikeIterable;
|
|
function areIterablesEqual(a, b, comparator) {
|
|
var iterator1 = a[lang_1.getSymbolIterator()]();
|
|
var iterator2 = b[lang_1.getSymbolIterator()]();
|
|
while (true) {
|
|
var item1 = iterator1.next();
|
|
var item2 = iterator2.next();
|
|
if (item1.done && item2.done)
|
|
return true;
|
|
if (item1.done || item2.done)
|
|
return false;
|
|
if (!comparator(item1.value, item2.value))
|
|
return false;
|
|
}
|
|
}
|
|
exports.areIterablesEqual = areIterablesEqual;
|
|
function iterateListLike(obj, fn) {
|
|
if (lang_1.isArray(obj)) {
|
|
for (var i = 0; i < obj.length; i++) {
|
|
fn(obj[i]);
|
|
}
|
|
} else {
|
|
var iterator = obj[lang_1.getSymbolIterator()]();
|
|
var item;
|
|
while (!((item = iterator.next()).done)) {
|
|
fn(item.value);
|
|
}
|
|
}
|
|
}
|
|
exports.iterateListLike = iterateListLike;
|
|
var createSetFromList = (function() {
|
|
var test = new exports.Set([1, 2, 3]);
|
|
if (test.size === 3) {
|
|
return function createSetFromList(lst) {
|
|
return new exports.Set(lst);
|
|
};
|
|
} else {
|
|
return function createSetAndPopulateFromList(lst) {
|
|
var res = new exports.Set(lst);
|
|
if (res.size !== lst.length) {
|
|
for (var i = 0; i < lst.length; i++) {
|
|
res.add(lst[i]);
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
}
|
|
})();
|
|
var SetWrapper = (function() {
|
|
function SetWrapper() {}
|
|
SetWrapper.createFromList = function(lst) {
|
|
return createSetFromList(lst);
|
|
};
|
|
SetWrapper.has = function(s, key) {
|
|
return s.has(key);
|
|
};
|
|
SetWrapper.delete = function(m, k) {
|
|
m.delete(k);
|
|
};
|
|
return SetWrapper;
|
|
})();
|
|
exports.SetWrapper = SetWrapper;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/facade/base_wrapped_exception", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var BaseWrappedException = (function(_super) {
|
|
__extends(BaseWrappedException, _super);
|
|
function BaseWrappedException(message) {
|
|
_super.call(this, message);
|
|
}
|
|
Object.defineProperty(BaseWrappedException.prototype, "wrapperMessage", {
|
|
get: function() {
|
|
return '';
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(BaseWrappedException.prototype, "wrapperStack", {
|
|
get: function() {
|
|
return null;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(BaseWrappedException.prototype, "originalException", {
|
|
get: function() {
|
|
return null;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(BaseWrappedException.prototype, "originalStack", {
|
|
get: function() {
|
|
return null;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(BaseWrappedException.prototype, "context", {
|
|
get: function() {
|
|
return null;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(BaseWrappedException.prototype, "message", {
|
|
get: function() {
|
|
return '';
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
return BaseWrappedException;
|
|
})(Error);
|
|
exports.BaseWrappedException = BaseWrappedException;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/facade/exception_handler", ["angular2/src/facade/lang", "angular2/src/facade/base_wrapped_exception", "angular2/src/facade/collection"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var base_wrapped_exception_1 = require("angular2/src/facade/base_wrapped_exception");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var _ArrayLogger = (function() {
|
|
function _ArrayLogger() {
|
|
this.res = [];
|
|
}
|
|
_ArrayLogger.prototype.log = function(s) {
|
|
this.res.push(s);
|
|
};
|
|
_ArrayLogger.prototype.logError = function(s) {
|
|
this.res.push(s);
|
|
};
|
|
_ArrayLogger.prototype.logGroup = function(s) {
|
|
this.res.push(s);
|
|
};
|
|
_ArrayLogger.prototype.logGroupEnd = function() {};
|
|
;
|
|
return _ArrayLogger;
|
|
})();
|
|
var ExceptionHandler = (function() {
|
|
function ExceptionHandler(_logger, _rethrowException) {
|
|
if (_rethrowException === void 0) {
|
|
_rethrowException = true;
|
|
}
|
|
this._logger = _logger;
|
|
this._rethrowException = _rethrowException;
|
|
}
|
|
ExceptionHandler.exceptionToString = function(exception, stackTrace, reason) {
|
|
if (stackTrace === void 0) {
|
|
stackTrace = null;
|
|
}
|
|
if (reason === void 0) {
|
|
reason = null;
|
|
}
|
|
var l = new _ArrayLogger();
|
|
var e = new ExceptionHandler(l, false);
|
|
e.call(exception, stackTrace, reason);
|
|
return l.res.join("\n");
|
|
};
|
|
ExceptionHandler.prototype.call = function(exception, stackTrace, reason) {
|
|
if (stackTrace === void 0) {
|
|
stackTrace = null;
|
|
}
|
|
if (reason === void 0) {
|
|
reason = null;
|
|
}
|
|
var originalException = this._findOriginalException(exception);
|
|
var originalStack = this._findOriginalStack(exception);
|
|
var context = this._findContext(exception);
|
|
this._logger.logGroup("EXCEPTION: " + this._extractMessage(exception));
|
|
if (lang_1.isPresent(stackTrace) && lang_1.isBlank(originalStack)) {
|
|
this._logger.logError("STACKTRACE:");
|
|
this._logger.logError(this._longStackTrace(stackTrace));
|
|
}
|
|
if (lang_1.isPresent(reason)) {
|
|
this._logger.logError("REASON: " + reason);
|
|
}
|
|
if (lang_1.isPresent(originalException)) {
|
|
this._logger.logError("ORIGINAL EXCEPTION: " + this._extractMessage(originalException));
|
|
}
|
|
if (lang_1.isPresent(originalStack)) {
|
|
this._logger.logError("ORIGINAL STACKTRACE:");
|
|
this._logger.logError(this._longStackTrace(originalStack));
|
|
}
|
|
if (lang_1.isPresent(context)) {
|
|
this._logger.logError("ERROR CONTEXT:");
|
|
this._logger.logError(context);
|
|
}
|
|
this._logger.logGroupEnd();
|
|
if (this._rethrowException)
|
|
throw exception;
|
|
};
|
|
ExceptionHandler.prototype._extractMessage = function(exception) {
|
|
return exception instanceof base_wrapped_exception_1.BaseWrappedException ? exception.wrapperMessage : exception.toString();
|
|
};
|
|
ExceptionHandler.prototype._longStackTrace = function(stackTrace) {
|
|
return collection_1.isListLikeIterable(stackTrace) ? stackTrace.join("\n\n-----async gap-----\n") : stackTrace.toString();
|
|
};
|
|
ExceptionHandler.prototype._findContext = function(exception) {
|
|
try {
|
|
if (!(exception instanceof base_wrapped_exception_1.BaseWrappedException))
|
|
return null;
|
|
return lang_1.isPresent(exception.context) ? exception.context : this._findContext(exception.originalException);
|
|
} catch (e) {
|
|
return null;
|
|
}
|
|
};
|
|
ExceptionHandler.prototype._findOriginalException = function(exception) {
|
|
if (!(exception instanceof base_wrapped_exception_1.BaseWrappedException))
|
|
return null;
|
|
var e = exception.originalException;
|
|
while (e instanceof base_wrapped_exception_1.BaseWrappedException && lang_1.isPresent(e.originalException)) {
|
|
e = e.originalException;
|
|
}
|
|
return e;
|
|
};
|
|
ExceptionHandler.prototype._findOriginalStack = function(exception) {
|
|
if (!(exception instanceof base_wrapped_exception_1.BaseWrappedException))
|
|
return null;
|
|
var e = exception;
|
|
var stack = exception.originalStack;
|
|
while (e instanceof base_wrapped_exception_1.BaseWrappedException && lang_1.isPresent(e.originalException)) {
|
|
e = e.originalException;
|
|
if (e instanceof base_wrapped_exception_1.BaseWrappedException && lang_1.isPresent(e.originalException)) {
|
|
stack = e.originalStack;
|
|
}
|
|
}
|
|
return stack;
|
|
};
|
|
return ExceptionHandler;
|
|
})();
|
|
exports.ExceptionHandler = ExceptionHandler;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/reflection/reflector_reader", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var ReflectorReader = (function() {
|
|
function ReflectorReader() {}
|
|
return ReflectorReader;
|
|
})();
|
|
exports.ReflectorReader = ReflectorReader;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/reflection/reflection_capabilities", ["angular2/src/facade/lang", "angular2/src/facade/exceptions"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var ReflectionCapabilities = (function() {
|
|
function ReflectionCapabilities(reflect) {
|
|
this._reflect = lang_1.isPresent(reflect) ? reflect : lang_1.global.Reflect;
|
|
}
|
|
ReflectionCapabilities.prototype.isReflectionEnabled = function() {
|
|
return true;
|
|
};
|
|
ReflectionCapabilities.prototype.factory = function(t) {
|
|
switch (t.length) {
|
|
case 0:
|
|
return function() {
|
|
return new t();
|
|
};
|
|
case 1:
|
|
return function(a1) {
|
|
return new t(a1);
|
|
};
|
|
case 2:
|
|
return function(a1, a2) {
|
|
return new t(a1, a2);
|
|
};
|
|
case 3:
|
|
return function(a1, a2, a3) {
|
|
return new t(a1, a2, a3);
|
|
};
|
|
case 4:
|
|
return function(a1, a2, a3, a4) {
|
|
return new t(a1, a2, a3, a4);
|
|
};
|
|
case 5:
|
|
return function(a1, a2, a3, a4, a5) {
|
|
return new t(a1, a2, a3, a4, a5);
|
|
};
|
|
case 6:
|
|
return function(a1, a2, a3, a4, a5, a6) {
|
|
return new t(a1, a2, a3, a4, a5, a6);
|
|
};
|
|
case 7:
|
|
return function(a1, a2, a3, a4, a5, a6, a7) {
|
|
return new t(a1, a2, a3, a4, a5, a6, a7);
|
|
};
|
|
case 8:
|
|
return function(a1, a2, a3, a4, a5, a6, a7, a8) {
|
|
return new t(a1, a2, a3, a4, a5, a6, a7, a8);
|
|
};
|
|
case 9:
|
|
return function(a1, a2, a3, a4, a5, a6, a7, a8, a9) {
|
|
return new t(a1, a2, a3, a4, a5, a6, a7, a8, a9);
|
|
};
|
|
case 10:
|
|
return function(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) {
|
|
return new t(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
|
|
};
|
|
case 11:
|
|
return function(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) {
|
|
return new t(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
|
|
};
|
|
case 12:
|
|
return function(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) {
|
|
return new t(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
|
|
};
|
|
case 13:
|
|
return function(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) {
|
|
return new t(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
|
|
};
|
|
case 14:
|
|
return function(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) {
|
|
return new t(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14);
|
|
};
|
|
case 15:
|
|
return function(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) {
|
|
return new t(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
|
|
};
|
|
case 16:
|
|
return function(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) {
|
|
return new t(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16);
|
|
};
|
|
case 17:
|
|
return function(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17) {
|
|
return new t(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17);
|
|
};
|
|
case 18:
|
|
return function(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18) {
|
|
return new t(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18);
|
|
};
|
|
case 19:
|
|
return function(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19) {
|
|
return new t(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19);
|
|
};
|
|
case 20:
|
|
return function(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) {
|
|
return new t(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
|
|
};
|
|
}
|
|
;
|
|
throw new Error("Cannot create a factory for '" + lang_1.stringify(t) + "' because its constructor has more than 20 arguments");
|
|
};
|
|
ReflectionCapabilities.prototype._zipTypesAndAnnotations = function(paramTypes, paramAnnotations) {
|
|
var result;
|
|
if (typeof paramTypes === 'undefined') {
|
|
result = new Array(paramAnnotations.length);
|
|
} else {
|
|
result = new Array(paramTypes.length);
|
|
}
|
|
for (var i = 0; i < result.length; i++) {
|
|
if (typeof paramTypes === 'undefined') {
|
|
result[i] = [];
|
|
} else if (paramTypes[i] != Object) {
|
|
result[i] = [paramTypes[i]];
|
|
} else {
|
|
result[i] = [];
|
|
}
|
|
if (lang_1.isPresent(paramAnnotations) && lang_1.isPresent(paramAnnotations[i])) {
|
|
result[i] = result[i].concat(paramAnnotations[i]);
|
|
}
|
|
}
|
|
return result;
|
|
};
|
|
ReflectionCapabilities.prototype.parameters = function(typeOrFunc) {
|
|
if (lang_1.isPresent(typeOrFunc.parameters)) {
|
|
return typeOrFunc.parameters;
|
|
}
|
|
if (lang_1.isPresent(this._reflect) && lang_1.isPresent(this._reflect.getMetadata)) {
|
|
var paramAnnotations = this._reflect.getMetadata('parameters', typeOrFunc);
|
|
var paramTypes = this._reflect.getMetadata('design:paramtypes', typeOrFunc);
|
|
if (lang_1.isPresent(paramTypes) || lang_1.isPresent(paramAnnotations)) {
|
|
return this._zipTypesAndAnnotations(paramTypes, paramAnnotations);
|
|
}
|
|
}
|
|
var parameters = new Array(typeOrFunc.length);
|
|
parameters.fill(undefined);
|
|
return parameters;
|
|
};
|
|
ReflectionCapabilities.prototype.annotations = function(typeOrFunc) {
|
|
if (lang_1.isPresent(typeOrFunc.annotations)) {
|
|
var annotations = typeOrFunc.annotations;
|
|
if (lang_1.isFunction(annotations) && annotations.annotations) {
|
|
annotations = annotations.annotations;
|
|
}
|
|
return annotations;
|
|
}
|
|
if (lang_1.isPresent(this._reflect) && lang_1.isPresent(this._reflect.getMetadata)) {
|
|
var annotations = this._reflect.getMetadata('annotations', typeOrFunc);
|
|
if (lang_1.isPresent(annotations))
|
|
return annotations;
|
|
}
|
|
return [];
|
|
};
|
|
ReflectionCapabilities.prototype.propMetadata = function(typeOrFunc) {
|
|
if (lang_1.isPresent(typeOrFunc.propMetadata)) {
|
|
var propMetadata = typeOrFunc.propMetadata;
|
|
if (lang_1.isFunction(propMetadata) && propMetadata.propMetadata) {
|
|
propMetadata = propMetadata.propMetadata;
|
|
}
|
|
return propMetadata;
|
|
}
|
|
if (lang_1.isPresent(this._reflect) && lang_1.isPresent(this._reflect.getMetadata)) {
|
|
var propMetadata = this._reflect.getMetadata('propMetadata', typeOrFunc);
|
|
if (lang_1.isPresent(propMetadata))
|
|
return propMetadata;
|
|
}
|
|
return {};
|
|
};
|
|
ReflectionCapabilities.prototype.interfaces = function(type) {
|
|
throw new exceptions_1.BaseException("JavaScript does not support interfaces");
|
|
};
|
|
ReflectionCapabilities.prototype.getter = function(name) {
|
|
return new Function('o', 'return o.' + name + ';');
|
|
};
|
|
ReflectionCapabilities.prototype.setter = function(name) {
|
|
return new Function('o', 'v', 'return o.' + name + ' = v;');
|
|
};
|
|
ReflectionCapabilities.prototype.method = function(name) {
|
|
var functionBody = "if (!o." + name + ") throw new Error('\"" + name + "\" is undefined');\n return o." + name + ".apply(o, args);";
|
|
return new Function('o', 'args', functionBody);
|
|
};
|
|
ReflectionCapabilities.prototype.importUri = function(type) {
|
|
return './';
|
|
};
|
|
return ReflectionCapabilities;
|
|
})();
|
|
exports.ReflectionCapabilities = ReflectionCapabilities;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/di/key", ["angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/core/di/forward_ref"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var forward_ref_1 = require("angular2/src/core/di/forward_ref");
|
|
var Key = (function() {
|
|
function Key(token, id) {
|
|
this.token = token;
|
|
this.id = id;
|
|
if (lang_1.isBlank(token)) {
|
|
throw new exceptions_1.BaseException('Token must be defined!');
|
|
}
|
|
}
|
|
Object.defineProperty(Key.prototype, "displayName", {
|
|
get: function() {
|
|
return lang_1.stringify(this.token);
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Key.get = function(token) {
|
|
return _globalKeyRegistry.get(forward_ref_1.resolveForwardRef(token));
|
|
};
|
|
Object.defineProperty(Key, "numberOfKeys", {
|
|
get: function() {
|
|
return _globalKeyRegistry.numberOfKeys;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
return Key;
|
|
})();
|
|
exports.Key = Key;
|
|
var KeyRegistry = (function() {
|
|
function KeyRegistry() {
|
|
this._allKeys = new Map();
|
|
}
|
|
KeyRegistry.prototype.get = function(token) {
|
|
if (token instanceof Key)
|
|
return token;
|
|
if (this._allKeys.has(token)) {
|
|
return this._allKeys.get(token);
|
|
}
|
|
var newKey = new Key(token, Key.numberOfKeys);
|
|
this._allKeys.set(token, newKey);
|
|
return newKey;
|
|
};
|
|
Object.defineProperty(KeyRegistry.prototype, "numberOfKeys", {
|
|
get: function() {
|
|
return this._allKeys.size;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
return KeyRegistry;
|
|
})();
|
|
exports.KeyRegistry = KeyRegistry;
|
|
var _globalKeyRegistry = new KeyRegistry();
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/di/exceptions", ["angular2/src/facade/collection", "angular2/src/facade/lang", "angular2/src/facade/exceptions"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
function findFirstClosedCycle(keys) {
|
|
var res = [];
|
|
for (var i = 0; i < keys.length; ++i) {
|
|
if (collection_1.ListWrapper.contains(res, keys[i])) {
|
|
res.push(keys[i]);
|
|
return res;
|
|
} else {
|
|
res.push(keys[i]);
|
|
}
|
|
}
|
|
return res;
|
|
}
|
|
function constructResolvingPath(keys) {
|
|
if (keys.length > 1) {
|
|
var reversed = findFirstClosedCycle(collection_1.ListWrapper.reversed(keys));
|
|
var tokenStrs = reversed.map(function(k) {
|
|
return lang_1.stringify(k.token);
|
|
});
|
|
return " (" + tokenStrs.join(' -> ') + ")";
|
|
} else {
|
|
return "";
|
|
}
|
|
}
|
|
var AbstractProviderError = (function(_super) {
|
|
__extends(AbstractProviderError, _super);
|
|
function AbstractProviderError(injector, key, constructResolvingMessage) {
|
|
_super.call(this, "DI Exception");
|
|
this.keys = [key];
|
|
this.injectors = [injector];
|
|
this.constructResolvingMessage = constructResolvingMessage;
|
|
this.message = this.constructResolvingMessage(this.keys);
|
|
}
|
|
AbstractProviderError.prototype.addKey = function(injector, key) {
|
|
this.injectors.push(injector);
|
|
this.keys.push(key);
|
|
this.message = this.constructResolvingMessage(this.keys);
|
|
};
|
|
Object.defineProperty(AbstractProviderError.prototype, "context", {
|
|
get: function() {
|
|
return this.injectors[this.injectors.length - 1].debugContext();
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
return AbstractProviderError;
|
|
})(exceptions_1.BaseException);
|
|
exports.AbstractProviderError = AbstractProviderError;
|
|
var NoProviderError = (function(_super) {
|
|
__extends(NoProviderError, _super);
|
|
function NoProviderError(injector, key) {
|
|
_super.call(this, injector, key, function(keys) {
|
|
var first = lang_1.stringify(collection_1.ListWrapper.first(keys).token);
|
|
return "No provider for " + first + "!" + constructResolvingPath(keys);
|
|
});
|
|
}
|
|
return NoProviderError;
|
|
})(AbstractProviderError);
|
|
exports.NoProviderError = NoProviderError;
|
|
var CyclicDependencyError = (function(_super) {
|
|
__extends(CyclicDependencyError, _super);
|
|
function CyclicDependencyError(injector, key) {
|
|
_super.call(this, injector, key, function(keys) {
|
|
return "Cannot instantiate cyclic dependency!" + constructResolvingPath(keys);
|
|
});
|
|
}
|
|
return CyclicDependencyError;
|
|
})(AbstractProviderError);
|
|
exports.CyclicDependencyError = CyclicDependencyError;
|
|
var InstantiationError = (function(_super) {
|
|
__extends(InstantiationError, _super);
|
|
function InstantiationError(injector, originalException, originalStack, key) {
|
|
_super.call(this, "DI Exception", originalException, originalStack, null);
|
|
this.keys = [key];
|
|
this.injectors = [injector];
|
|
}
|
|
InstantiationError.prototype.addKey = function(injector, key) {
|
|
this.injectors.push(injector);
|
|
this.keys.push(key);
|
|
};
|
|
Object.defineProperty(InstantiationError.prototype, "wrapperMessage", {
|
|
get: function() {
|
|
var first = lang_1.stringify(collection_1.ListWrapper.first(this.keys).token);
|
|
return "Error during instantiation of " + first + "!" + constructResolvingPath(this.keys) + ".";
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(InstantiationError.prototype, "causeKey", {
|
|
get: function() {
|
|
return this.keys[0];
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(InstantiationError.prototype, "context", {
|
|
get: function() {
|
|
return this.injectors[this.injectors.length - 1].debugContext();
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
return InstantiationError;
|
|
})(exceptions_1.WrappedException);
|
|
exports.InstantiationError = InstantiationError;
|
|
var InvalidProviderError = (function(_super) {
|
|
__extends(InvalidProviderError, _super);
|
|
function InvalidProviderError(provider) {
|
|
_super.call(this, "Invalid provider - only instances of Provider and Type are allowed, got: " + provider.toString());
|
|
}
|
|
return InvalidProviderError;
|
|
})(exceptions_1.BaseException);
|
|
exports.InvalidProviderError = InvalidProviderError;
|
|
var NoAnnotationError = (function(_super) {
|
|
__extends(NoAnnotationError, _super);
|
|
function NoAnnotationError(typeOrFunc, params) {
|
|
_super.call(this, NoAnnotationError._genMessage(typeOrFunc, params));
|
|
}
|
|
NoAnnotationError._genMessage = function(typeOrFunc, params) {
|
|
var signature = [];
|
|
for (var i = 0,
|
|
ii = params.length; i < ii; i++) {
|
|
var parameter = params[i];
|
|
if (lang_1.isBlank(parameter) || parameter.length == 0) {
|
|
signature.push('?');
|
|
} else {
|
|
signature.push(parameter.map(lang_1.stringify).join(' '));
|
|
}
|
|
}
|
|
return "Cannot resolve all parameters for '" + lang_1.stringify(typeOrFunc) + "'(" + signature.join(', ') + "). " + "Make sure that all the parameters are decorated with Inject or have valid type annotations and that '" + lang_1.stringify(typeOrFunc) + "' is decorated with Injectable.";
|
|
};
|
|
return NoAnnotationError;
|
|
})(exceptions_1.BaseException);
|
|
exports.NoAnnotationError = NoAnnotationError;
|
|
var OutOfBoundsError = (function(_super) {
|
|
__extends(OutOfBoundsError, _super);
|
|
function OutOfBoundsError(index) {
|
|
_super.call(this, "Index " + index + " is out-of-bounds.");
|
|
}
|
|
return OutOfBoundsError;
|
|
})(exceptions_1.BaseException);
|
|
exports.OutOfBoundsError = OutOfBoundsError;
|
|
var MixingMultiProvidersWithRegularProvidersError = (function(_super) {
|
|
__extends(MixingMultiProvidersWithRegularProvidersError, _super);
|
|
function MixingMultiProvidersWithRegularProvidersError(provider1, provider2) {
|
|
_super.call(this, "Cannot mix multi providers and regular providers, got: " + provider1.toString() + " " + provider2.toString());
|
|
}
|
|
return MixingMultiProvidersWithRegularProvidersError;
|
|
})(exceptions_1.BaseException);
|
|
exports.MixingMultiProvidersWithRegularProvidersError = MixingMultiProvidersWithRegularProvidersError;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/di/opaque_token", ["angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var OpaqueToken = (function() {
|
|
function OpaqueToken(_desc) {
|
|
this._desc = _desc;
|
|
}
|
|
OpaqueToken.prototype.toString = function() {
|
|
return "Token " + this._desc;
|
|
};
|
|
OpaqueToken = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [String])], OpaqueToken);
|
|
return OpaqueToken;
|
|
})();
|
|
exports.OpaqueToken = OpaqueToken;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/change_detection/differs/iterable_differs", ["angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/facade/collection", "angular2/src/core/di"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var di_1 = require("angular2/src/core/di");
|
|
var IterableDiffers = (function() {
|
|
function IterableDiffers(factories) {
|
|
this.factories = factories;
|
|
}
|
|
IterableDiffers.create = function(factories, parent) {
|
|
if (lang_1.isPresent(parent)) {
|
|
var copied = collection_1.ListWrapper.clone(parent.factories);
|
|
factories = factories.concat(copied);
|
|
return new IterableDiffers(factories);
|
|
} else {
|
|
return new IterableDiffers(factories);
|
|
}
|
|
};
|
|
IterableDiffers.extend = function(factories) {
|
|
return new di_1.Provider(IterableDiffers, {
|
|
useFactory: function(parent) {
|
|
if (lang_1.isBlank(parent)) {
|
|
throw new exceptions_1.BaseException('Cannot extend IterableDiffers without a parent injector');
|
|
}
|
|
return IterableDiffers.create(factories, parent);
|
|
},
|
|
deps: [[IterableDiffers, new di_1.SkipSelfMetadata(), new di_1.OptionalMetadata()]]
|
|
});
|
|
};
|
|
IterableDiffers.prototype.find = function(iterable) {
|
|
var factory = this.factories.find(function(f) {
|
|
return f.supports(iterable);
|
|
});
|
|
if (lang_1.isPresent(factory)) {
|
|
return factory;
|
|
} else {
|
|
throw new exceptions_1.BaseException("Cannot find a differ supporting object '" + iterable + "' of type '" + lang_1.getTypeNameForDebugging(iterable) + "'");
|
|
}
|
|
};
|
|
IterableDiffers = __decorate([di_1.Injectable(), lang_1.CONST(), __metadata('design:paramtypes', [Array])], IterableDiffers);
|
|
return IterableDiffers;
|
|
})();
|
|
exports.IterableDiffers = IterableDiffers;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/change_detection/differs/default_iterable_differ", ["angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/facade/collection", "angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var lang_2 = require("angular2/src/facade/lang");
|
|
var DefaultIterableDifferFactory = (function() {
|
|
function DefaultIterableDifferFactory() {}
|
|
DefaultIterableDifferFactory.prototype.supports = function(obj) {
|
|
return collection_1.isListLikeIterable(obj);
|
|
};
|
|
DefaultIterableDifferFactory.prototype.create = function(cdRef, trackByFn) {
|
|
return new DefaultIterableDiffer(trackByFn);
|
|
};
|
|
DefaultIterableDifferFactory = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [])], DefaultIterableDifferFactory);
|
|
return DefaultIterableDifferFactory;
|
|
})();
|
|
exports.DefaultIterableDifferFactory = DefaultIterableDifferFactory;
|
|
var trackByIdentity = function(index, item) {
|
|
return item;
|
|
};
|
|
var DefaultIterableDiffer = (function() {
|
|
function DefaultIterableDiffer(_trackByFn) {
|
|
this._trackByFn = _trackByFn;
|
|
this._length = null;
|
|
this._collection = null;
|
|
this._linkedRecords = null;
|
|
this._unlinkedRecords = null;
|
|
this._previousItHead = null;
|
|
this._itHead = null;
|
|
this._itTail = null;
|
|
this._additionsHead = null;
|
|
this._additionsTail = null;
|
|
this._movesHead = null;
|
|
this._movesTail = null;
|
|
this._removalsHead = null;
|
|
this._removalsTail = null;
|
|
this._identityChangesHead = null;
|
|
this._identityChangesTail = null;
|
|
this._trackByFn = lang_2.isPresent(this._trackByFn) ? this._trackByFn : trackByIdentity;
|
|
}
|
|
Object.defineProperty(DefaultIterableDiffer.prototype, "collection", {
|
|
get: function() {
|
|
return this._collection;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(DefaultIterableDiffer.prototype, "length", {
|
|
get: function() {
|
|
return this._length;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
DefaultIterableDiffer.prototype.forEachItem = function(fn) {
|
|
var record;
|
|
for (record = this._itHead; record !== null; record = record._next) {
|
|
fn(record);
|
|
}
|
|
};
|
|
DefaultIterableDiffer.prototype.forEachPreviousItem = function(fn) {
|
|
var record;
|
|
for (record = this._previousItHead; record !== null; record = record._nextPrevious) {
|
|
fn(record);
|
|
}
|
|
};
|
|
DefaultIterableDiffer.prototype.forEachAddedItem = function(fn) {
|
|
var record;
|
|
for (record = this._additionsHead; record !== null; record = record._nextAdded) {
|
|
fn(record);
|
|
}
|
|
};
|
|
DefaultIterableDiffer.prototype.forEachMovedItem = function(fn) {
|
|
var record;
|
|
for (record = this._movesHead; record !== null; record = record._nextMoved) {
|
|
fn(record);
|
|
}
|
|
};
|
|
DefaultIterableDiffer.prototype.forEachRemovedItem = function(fn) {
|
|
var record;
|
|
for (record = this._removalsHead; record !== null; record = record._nextRemoved) {
|
|
fn(record);
|
|
}
|
|
};
|
|
DefaultIterableDiffer.prototype.forEachIdentityChange = function(fn) {
|
|
var record;
|
|
for (record = this._identityChangesHead; record !== null; record = record._nextIdentityChange) {
|
|
fn(record);
|
|
}
|
|
};
|
|
DefaultIterableDiffer.prototype.diff = function(collection) {
|
|
if (lang_2.isBlank(collection))
|
|
collection = [];
|
|
if (!collection_1.isListLikeIterable(collection)) {
|
|
throw new exceptions_1.BaseException("Error trying to diff '" + collection + "'");
|
|
}
|
|
if (this.check(collection)) {
|
|
return this;
|
|
} else {
|
|
return null;
|
|
}
|
|
};
|
|
DefaultIterableDiffer.prototype.onDestroy = function() {};
|
|
DefaultIterableDiffer.prototype.check = function(collection) {
|
|
var _this = this;
|
|
this._reset();
|
|
var record = this._itHead;
|
|
var mayBeDirty = false;
|
|
var index;
|
|
var item;
|
|
var itemTrackBy;
|
|
if (lang_2.isArray(collection)) {
|
|
if (collection !== this._collection || !collection_1.ListWrapper.isImmutable(collection)) {
|
|
var list = collection;
|
|
this._length = collection.length;
|
|
for (index = 0; index < this._length; index++) {
|
|
item = list[index];
|
|
itemTrackBy = this._trackByFn(index, item);
|
|
if (record === null || !lang_2.looseIdentical(record.trackById, itemTrackBy)) {
|
|
record = this._mismatch(record, item, itemTrackBy, index);
|
|
mayBeDirty = true;
|
|
} else {
|
|
if (mayBeDirty) {
|
|
record = this._verifyReinsertion(record, item, itemTrackBy, index);
|
|
}
|
|
if (!lang_2.looseIdentical(record.item, item))
|
|
this._addIdentityChange(record, item);
|
|
}
|
|
record = record._next;
|
|
}
|
|
this._truncate(record);
|
|
}
|
|
} else {
|
|
index = 0;
|
|
collection_1.iterateListLike(collection, function(item) {
|
|
itemTrackBy = _this._trackByFn(index, item);
|
|
if (record === null || !lang_2.looseIdentical(record.trackById, itemTrackBy)) {
|
|
record = _this._mismatch(record, item, itemTrackBy, index);
|
|
mayBeDirty = true;
|
|
} else {
|
|
if (mayBeDirty) {
|
|
record = _this._verifyReinsertion(record, item, itemTrackBy, index);
|
|
}
|
|
if (!lang_2.looseIdentical(record.item, item))
|
|
_this._addIdentityChange(record, item);
|
|
}
|
|
record = record._next;
|
|
index++;
|
|
});
|
|
this._length = index;
|
|
this._truncate(record);
|
|
}
|
|
this._collection = collection;
|
|
return this.isDirty;
|
|
};
|
|
Object.defineProperty(DefaultIterableDiffer.prototype, "isDirty", {
|
|
get: function() {
|
|
return this._additionsHead !== null || this._movesHead !== null || this._removalsHead !== null || this._identityChangesHead !== null;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
DefaultIterableDiffer.prototype._reset = function() {
|
|
if (this.isDirty) {
|
|
var record;
|
|
var nextRecord;
|
|
for (record = this._previousItHead = this._itHead; record !== null; record = record._next) {
|
|
record._nextPrevious = record._next;
|
|
}
|
|
for (record = this._additionsHead; record !== null; record = record._nextAdded) {
|
|
record.previousIndex = record.currentIndex;
|
|
}
|
|
this._additionsHead = this._additionsTail = null;
|
|
for (record = this._movesHead; record !== null; record = nextRecord) {
|
|
record.previousIndex = record.currentIndex;
|
|
nextRecord = record._nextMoved;
|
|
}
|
|
this._movesHead = this._movesTail = null;
|
|
this._removalsHead = this._removalsTail = null;
|
|
this._identityChangesHead = this._identityChangesTail = null;
|
|
}
|
|
};
|
|
DefaultIterableDiffer.prototype._mismatch = function(record, item, itemTrackBy, index) {
|
|
var previousRecord;
|
|
if (record === null) {
|
|
previousRecord = this._itTail;
|
|
} else {
|
|
previousRecord = record._prev;
|
|
this._remove(record);
|
|
}
|
|
record = this._linkedRecords === null ? null : this._linkedRecords.get(itemTrackBy, index);
|
|
if (record !== null) {
|
|
if (!lang_2.looseIdentical(record.item, item))
|
|
this._addIdentityChange(record, item);
|
|
this._moveAfter(record, previousRecord, index);
|
|
} else {
|
|
record = this._unlinkedRecords === null ? null : this._unlinkedRecords.get(itemTrackBy);
|
|
if (record !== null) {
|
|
if (!lang_2.looseIdentical(record.item, item))
|
|
this._addIdentityChange(record, item);
|
|
this._reinsertAfter(record, previousRecord, index);
|
|
} else {
|
|
record = this._addAfter(new CollectionChangeRecord(item, itemTrackBy), previousRecord, index);
|
|
}
|
|
}
|
|
return record;
|
|
};
|
|
DefaultIterableDiffer.prototype._verifyReinsertion = function(record, item, itemTrackBy, index) {
|
|
var reinsertRecord = this._unlinkedRecords === null ? null : this._unlinkedRecords.get(itemTrackBy);
|
|
if (reinsertRecord !== null) {
|
|
record = this._reinsertAfter(reinsertRecord, record._prev, index);
|
|
} else if (record.currentIndex != index) {
|
|
record.currentIndex = index;
|
|
this._addToMoves(record, index);
|
|
}
|
|
return record;
|
|
};
|
|
DefaultIterableDiffer.prototype._truncate = function(record) {
|
|
while (record !== null) {
|
|
var nextRecord = record._next;
|
|
this._addToRemovals(this._unlink(record));
|
|
record = nextRecord;
|
|
}
|
|
if (this._unlinkedRecords !== null) {
|
|
this._unlinkedRecords.clear();
|
|
}
|
|
if (this._additionsTail !== null) {
|
|
this._additionsTail._nextAdded = null;
|
|
}
|
|
if (this._movesTail !== null) {
|
|
this._movesTail._nextMoved = null;
|
|
}
|
|
if (this._itTail !== null) {
|
|
this._itTail._next = null;
|
|
}
|
|
if (this._removalsTail !== null) {
|
|
this._removalsTail._nextRemoved = null;
|
|
}
|
|
if (this._identityChangesTail !== null) {
|
|
this._identityChangesTail._nextIdentityChange = null;
|
|
}
|
|
};
|
|
DefaultIterableDiffer.prototype._reinsertAfter = function(record, prevRecord, index) {
|
|
if (this._unlinkedRecords !== null) {
|
|
this._unlinkedRecords.remove(record);
|
|
}
|
|
var prev = record._prevRemoved;
|
|
var next = record._nextRemoved;
|
|
if (prev === null) {
|
|
this._removalsHead = next;
|
|
} else {
|
|
prev._nextRemoved = next;
|
|
}
|
|
if (next === null) {
|
|
this._removalsTail = prev;
|
|
} else {
|
|
next._prevRemoved = prev;
|
|
}
|
|
this._insertAfter(record, prevRecord, index);
|
|
this._addToMoves(record, index);
|
|
return record;
|
|
};
|
|
DefaultIterableDiffer.prototype._moveAfter = function(record, prevRecord, index) {
|
|
this._unlink(record);
|
|
this._insertAfter(record, prevRecord, index);
|
|
this._addToMoves(record, index);
|
|
return record;
|
|
};
|
|
DefaultIterableDiffer.prototype._addAfter = function(record, prevRecord, index) {
|
|
this._insertAfter(record, prevRecord, index);
|
|
if (this._additionsTail === null) {
|
|
this._additionsTail = this._additionsHead = record;
|
|
} else {
|
|
this._additionsTail = this._additionsTail._nextAdded = record;
|
|
}
|
|
return record;
|
|
};
|
|
DefaultIterableDiffer.prototype._insertAfter = function(record, prevRecord, index) {
|
|
var next = prevRecord === null ? this._itHead : prevRecord._next;
|
|
record._next = next;
|
|
record._prev = prevRecord;
|
|
if (next === null) {
|
|
this._itTail = record;
|
|
} else {
|
|
next._prev = record;
|
|
}
|
|
if (prevRecord === null) {
|
|
this._itHead = record;
|
|
} else {
|
|
prevRecord._next = record;
|
|
}
|
|
if (this._linkedRecords === null) {
|
|
this._linkedRecords = new _DuplicateMap();
|
|
}
|
|
this._linkedRecords.put(record);
|
|
record.currentIndex = index;
|
|
return record;
|
|
};
|
|
DefaultIterableDiffer.prototype._remove = function(record) {
|
|
return this._addToRemovals(this._unlink(record));
|
|
};
|
|
DefaultIterableDiffer.prototype._unlink = function(record) {
|
|
if (this._linkedRecords !== null) {
|
|
this._linkedRecords.remove(record);
|
|
}
|
|
var prev = record._prev;
|
|
var next = record._next;
|
|
if (prev === null) {
|
|
this._itHead = next;
|
|
} else {
|
|
prev._next = next;
|
|
}
|
|
if (next === null) {
|
|
this._itTail = prev;
|
|
} else {
|
|
next._prev = prev;
|
|
}
|
|
return record;
|
|
};
|
|
DefaultIterableDiffer.prototype._addToMoves = function(record, toIndex) {
|
|
if (record.previousIndex === toIndex) {
|
|
return record;
|
|
}
|
|
if (this._movesTail === null) {
|
|
this._movesTail = this._movesHead = record;
|
|
} else {
|
|
this._movesTail = this._movesTail._nextMoved = record;
|
|
}
|
|
return record;
|
|
};
|
|
DefaultIterableDiffer.prototype._addToRemovals = function(record) {
|
|
if (this._unlinkedRecords === null) {
|
|
this._unlinkedRecords = new _DuplicateMap();
|
|
}
|
|
this._unlinkedRecords.put(record);
|
|
record.currentIndex = null;
|
|
record._nextRemoved = null;
|
|
if (this._removalsTail === null) {
|
|
this._removalsTail = this._removalsHead = record;
|
|
record._prevRemoved = null;
|
|
} else {
|
|
record._prevRemoved = this._removalsTail;
|
|
this._removalsTail = this._removalsTail._nextRemoved = record;
|
|
}
|
|
return record;
|
|
};
|
|
DefaultIterableDiffer.prototype._addIdentityChange = function(record, item) {
|
|
record.item = item;
|
|
if (this._identityChangesTail === null) {
|
|
this._identityChangesTail = this._identityChangesHead = record;
|
|
} else {
|
|
this._identityChangesTail = this._identityChangesTail._nextIdentityChange = record;
|
|
}
|
|
return record;
|
|
};
|
|
DefaultIterableDiffer.prototype.toString = function() {
|
|
var list = [];
|
|
this.forEachItem(function(record) {
|
|
return list.push(record);
|
|
});
|
|
var previous = [];
|
|
this.forEachPreviousItem(function(record) {
|
|
return previous.push(record);
|
|
});
|
|
var additions = [];
|
|
this.forEachAddedItem(function(record) {
|
|
return additions.push(record);
|
|
});
|
|
var moves = [];
|
|
this.forEachMovedItem(function(record) {
|
|
return moves.push(record);
|
|
});
|
|
var removals = [];
|
|
this.forEachRemovedItem(function(record) {
|
|
return removals.push(record);
|
|
});
|
|
var identityChanges = [];
|
|
this.forEachIdentityChange(function(record) {
|
|
return identityChanges.push(record);
|
|
});
|
|
return "collection: " + list.join(', ') + "\n" + "previous: " + previous.join(', ') + "\n" + "additions: " + additions.join(', ') + "\n" + "moves: " + moves.join(', ') + "\n" + "removals: " + removals.join(', ') + "\n" + "identityChanges: " + identityChanges.join(', ') + "\n";
|
|
};
|
|
return DefaultIterableDiffer;
|
|
})();
|
|
exports.DefaultIterableDiffer = DefaultIterableDiffer;
|
|
var CollectionChangeRecord = (function() {
|
|
function CollectionChangeRecord(item, trackById) {
|
|
this.item = item;
|
|
this.trackById = trackById;
|
|
this.currentIndex = null;
|
|
this.previousIndex = null;
|
|
this._nextPrevious = null;
|
|
this._prev = null;
|
|
this._next = null;
|
|
this._prevDup = null;
|
|
this._nextDup = null;
|
|
this._prevRemoved = null;
|
|
this._nextRemoved = null;
|
|
this._nextAdded = null;
|
|
this._nextMoved = null;
|
|
this._nextIdentityChange = null;
|
|
}
|
|
CollectionChangeRecord.prototype.toString = function() {
|
|
return this.previousIndex === this.currentIndex ? lang_2.stringify(this.item) : lang_2.stringify(this.item) + '[' + lang_2.stringify(this.previousIndex) + '->' + lang_2.stringify(this.currentIndex) + ']';
|
|
};
|
|
return CollectionChangeRecord;
|
|
})();
|
|
exports.CollectionChangeRecord = CollectionChangeRecord;
|
|
var _DuplicateItemRecordList = (function() {
|
|
function _DuplicateItemRecordList() {
|
|
this._head = null;
|
|
this._tail = null;
|
|
}
|
|
_DuplicateItemRecordList.prototype.add = function(record) {
|
|
if (this._head === null) {
|
|
this._head = this._tail = record;
|
|
record._nextDup = null;
|
|
record._prevDup = null;
|
|
} else {
|
|
this._tail._nextDup = record;
|
|
record._prevDup = this._tail;
|
|
record._nextDup = null;
|
|
this._tail = record;
|
|
}
|
|
};
|
|
_DuplicateItemRecordList.prototype.get = function(trackById, afterIndex) {
|
|
var record;
|
|
for (record = this._head; record !== null; record = record._nextDup) {
|
|
if ((afterIndex === null || afterIndex < record.currentIndex) && lang_2.looseIdentical(record.trackById, trackById)) {
|
|
return record;
|
|
}
|
|
}
|
|
return null;
|
|
};
|
|
_DuplicateItemRecordList.prototype.remove = function(record) {
|
|
var prev = record._prevDup;
|
|
var next = record._nextDup;
|
|
if (prev === null) {
|
|
this._head = next;
|
|
} else {
|
|
prev._nextDup = next;
|
|
}
|
|
if (next === null) {
|
|
this._tail = prev;
|
|
} else {
|
|
next._prevDup = prev;
|
|
}
|
|
return this._head === null;
|
|
};
|
|
return _DuplicateItemRecordList;
|
|
})();
|
|
var _DuplicateMap = (function() {
|
|
function _DuplicateMap() {
|
|
this.map = new Map();
|
|
}
|
|
_DuplicateMap.prototype.put = function(record) {
|
|
var key = lang_2.getMapKey(record.trackById);
|
|
var duplicates = this.map.get(key);
|
|
if (!lang_2.isPresent(duplicates)) {
|
|
duplicates = new _DuplicateItemRecordList();
|
|
this.map.set(key, duplicates);
|
|
}
|
|
duplicates.add(record);
|
|
};
|
|
_DuplicateMap.prototype.get = function(trackById, afterIndex) {
|
|
if (afterIndex === void 0) {
|
|
afterIndex = null;
|
|
}
|
|
var key = lang_2.getMapKey(trackById);
|
|
var recordList = this.map.get(key);
|
|
return lang_2.isBlank(recordList) ? null : recordList.get(trackById, afterIndex);
|
|
};
|
|
_DuplicateMap.prototype.remove = function(record) {
|
|
var key = lang_2.getMapKey(record.trackById);
|
|
var recordList = this.map.get(key);
|
|
if (recordList.remove(record)) {
|
|
this.map.delete(key);
|
|
}
|
|
return record;
|
|
};
|
|
Object.defineProperty(_DuplicateMap.prototype, "isEmpty", {
|
|
get: function() {
|
|
return this.map.size === 0;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
_DuplicateMap.prototype.clear = function() {
|
|
this.map.clear();
|
|
};
|
|
_DuplicateMap.prototype.toString = function() {
|
|
return '_DuplicateMap(' + lang_2.stringify(this.map) + ')';
|
|
};
|
|
return _DuplicateMap;
|
|
})();
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/change_detection/differs/keyvalue_differs", ["angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/facade/collection", "angular2/src/core/di"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var di_1 = require("angular2/src/core/di");
|
|
var KeyValueDiffers = (function() {
|
|
function KeyValueDiffers(factories) {
|
|
this.factories = factories;
|
|
}
|
|
KeyValueDiffers.create = function(factories, parent) {
|
|
if (lang_1.isPresent(parent)) {
|
|
var copied = collection_1.ListWrapper.clone(parent.factories);
|
|
factories = factories.concat(copied);
|
|
return new KeyValueDiffers(factories);
|
|
} else {
|
|
return new KeyValueDiffers(factories);
|
|
}
|
|
};
|
|
KeyValueDiffers.extend = function(factories) {
|
|
return new di_1.Provider(KeyValueDiffers, {
|
|
useFactory: function(parent) {
|
|
if (lang_1.isBlank(parent)) {
|
|
throw new exceptions_1.BaseException('Cannot extend KeyValueDiffers without a parent injector');
|
|
}
|
|
return KeyValueDiffers.create(factories, parent);
|
|
},
|
|
deps: [[KeyValueDiffers, new di_1.SkipSelfMetadata(), new di_1.OptionalMetadata()]]
|
|
});
|
|
};
|
|
KeyValueDiffers.prototype.find = function(kv) {
|
|
var factory = this.factories.find(function(f) {
|
|
return f.supports(kv);
|
|
});
|
|
if (lang_1.isPresent(factory)) {
|
|
return factory;
|
|
} else {
|
|
throw new exceptions_1.BaseException("Cannot find a differ supporting object '" + kv + "'");
|
|
}
|
|
};
|
|
KeyValueDiffers = __decorate([di_1.Injectable(), lang_1.CONST(), __metadata('design:paramtypes', [Array])], KeyValueDiffers);
|
|
return KeyValueDiffers;
|
|
})();
|
|
exports.KeyValueDiffers = KeyValueDiffers;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/change_detection/differs/default_keyvalue_differ", ["angular2/src/facade/collection", "angular2/src/facade/lang", "angular2/src/facade/exceptions"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var DefaultKeyValueDifferFactory = (function() {
|
|
function DefaultKeyValueDifferFactory() {}
|
|
DefaultKeyValueDifferFactory.prototype.supports = function(obj) {
|
|
return obj instanceof Map || lang_1.isJsObject(obj);
|
|
};
|
|
DefaultKeyValueDifferFactory.prototype.create = function(cdRef) {
|
|
return new DefaultKeyValueDiffer();
|
|
};
|
|
DefaultKeyValueDifferFactory = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [])], DefaultKeyValueDifferFactory);
|
|
return DefaultKeyValueDifferFactory;
|
|
})();
|
|
exports.DefaultKeyValueDifferFactory = DefaultKeyValueDifferFactory;
|
|
var DefaultKeyValueDiffer = (function() {
|
|
function DefaultKeyValueDiffer() {
|
|
this._records = new Map();
|
|
this._mapHead = null;
|
|
this._previousMapHead = null;
|
|
this._changesHead = null;
|
|
this._changesTail = null;
|
|
this._additionsHead = null;
|
|
this._additionsTail = null;
|
|
this._removalsHead = null;
|
|
this._removalsTail = null;
|
|
}
|
|
Object.defineProperty(DefaultKeyValueDiffer.prototype, "isDirty", {
|
|
get: function() {
|
|
return this._additionsHead !== null || this._changesHead !== null || this._removalsHead !== null;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
DefaultKeyValueDiffer.prototype.forEachItem = function(fn) {
|
|
var record;
|
|
for (record = this._mapHead; record !== null; record = record._next) {
|
|
fn(record);
|
|
}
|
|
};
|
|
DefaultKeyValueDiffer.prototype.forEachPreviousItem = function(fn) {
|
|
var record;
|
|
for (record = this._previousMapHead; record !== null; record = record._nextPrevious) {
|
|
fn(record);
|
|
}
|
|
};
|
|
DefaultKeyValueDiffer.prototype.forEachChangedItem = function(fn) {
|
|
var record;
|
|
for (record = this._changesHead; record !== null; record = record._nextChanged) {
|
|
fn(record);
|
|
}
|
|
};
|
|
DefaultKeyValueDiffer.prototype.forEachAddedItem = function(fn) {
|
|
var record;
|
|
for (record = this._additionsHead; record !== null; record = record._nextAdded) {
|
|
fn(record);
|
|
}
|
|
};
|
|
DefaultKeyValueDiffer.prototype.forEachRemovedItem = function(fn) {
|
|
var record;
|
|
for (record = this._removalsHead; record !== null; record = record._nextRemoved) {
|
|
fn(record);
|
|
}
|
|
};
|
|
DefaultKeyValueDiffer.prototype.diff = function(map) {
|
|
if (lang_1.isBlank(map))
|
|
map = collection_1.MapWrapper.createFromPairs([]);
|
|
if (!(map instanceof Map || lang_1.isJsObject(map))) {
|
|
throw new exceptions_1.BaseException("Error trying to diff '" + map + "'");
|
|
}
|
|
if (this.check(map)) {
|
|
return this;
|
|
} else {
|
|
return null;
|
|
}
|
|
};
|
|
DefaultKeyValueDiffer.prototype.onDestroy = function() {};
|
|
DefaultKeyValueDiffer.prototype.check = function(map) {
|
|
var _this = this;
|
|
this._reset();
|
|
var records = this._records;
|
|
var oldSeqRecord = this._mapHead;
|
|
var lastOldSeqRecord = null;
|
|
var lastNewSeqRecord = null;
|
|
var seqChanged = false;
|
|
this._forEach(map, function(value, key) {
|
|
var newSeqRecord;
|
|
if (oldSeqRecord !== null && key === oldSeqRecord.key) {
|
|
newSeqRecord = oldSeqRecord;
|
|
if (!lang_1.looseIdentical(value, oldSeqRecord.currentValue)) {
|
|
oldSeqRecord.previousValue = oldSeqRecord.currentValue;
|
|
oldSeqRecord.currentValue = value;
|
|
_this._addToChanges(oldSeqRecord);
|
|
}
|
|
} else {
|
|
seqChanged = true;
|
|
if (oldSeqRecord !== null) {
|
|
oldSeqRecord._next = null;
|
|
_this._removeFromSeq(lastOldSeqRecord, oldSeqRecord);
|
|
_this._addToRemovals(oldSeqRecord);
|
|
}
|
|
if (records.has(key)) {
|
|
newSeqRecord = records.get(key);
|
|
} else {
|
|
newSeqRecord = new KeyValueChangeRecord(key);
|
|
records.set(key, newSeqRecord);
|
|
newSeqRecord.currentValue = value;
|
|
_this._addToAdditions(newSeqRecord);
|
|
}
|
|
}
|
|
if (seqChanged) {
|
|
if (_this._isInRemovals(newSeqRecord)) {
|
|
_this._removeFromRemovals(newSeqRecord);
|
|
}
|
|
if (lastNewSeqRecord == null) {
|
|
_this._mapHead = newSeqRecord;
|
|
} else {
|
|
lastNewSeqRecord._next = newSeqRecord;
|
|
}
|
|
}
|
|
lastOldSeqRecord = oldSeqRecord;
|
|
lastNewSeqRecord = newSeqRecord;
|
|
oldSeqRecord = oldSeqRecord === null ? null : oldSeqRecord._next;
|
|
});
|
|
this._truncate(lastOldSeqRecord, oldSeqRecord);
|
|
return this.isDirty;
|
|
};
|
|
DefaultKeyValueDiffer.prototype._reset = function() {
|
|
if (this.isDirty) {
|
|
var record;
|
|
for (record = this._previousMapHead = this._mapHead; record !== null; record = record._next) {
|
|
record._nextPrevious = record._next;
|
|
}
|
|
for (record = this._changesHead; record !== null; record = record._nextChanged) {
|
|
record.previousValue = record.currentValue;
|
|
}
|
|
for (record = this._additionsHead; record != null; record = record._nextAdded) {
|
|
record.previousValue = record.currentValue;
|
|
}
|
|
this._changesHead = this._changesTail = null;
|
|
this._additionsHead = this._additionsTail = null;
|
|
this._removalsHead = this._removalsTail = null;
|
|
}
|
|
};
|
|
DefaultKeyValueDiffer.prototype._truncate = function(lastRecord, record) {
|
|
while (record !== null) {
|
|
if (lastRecord === null) {
|
|
this._mapHead = null;
|
|
} else {
|
|
lastRecord._next = null;
|
|
}
|
|
var nextRecord = record._next;
|
|
this._addToRemovals(record);
|
|
lastRecord = record;
|
|
record = nextRecord;
|
|
}
|
|
for (var rec = this._removalsHead; rec !== null; rec = rec._nextRemoved) {
|
|
rec.previousValue = rec.currentValue;
|
|
rec.currentValue = null;
|
|
this._records.delete(rec.key);
|
|
}
|
|
};
|
|
DefaultKeyValueDiffer.prototype._isInRemovals = function(record) {
|
|
return record === this._removalsHead || record._nextRemoved !== null || record._prevRemoved !== null;
|
|
};
|
|
DefaultKeyValueDiffer.prototype._addToRemovals = function(record) {
|
|
if (this._removalsHead === null) {
|
|
this._removalsHead = this._removalsTail = record;
|
|
} else {
|
|
this._removalsTail._nextRemoved = record;
|
|
record._prevRemoved = this._removalsTail;
|
|
this._removalsTail = record;
|
|
}
|
|
};
|
|
DefaultKeyValueDiffer.prototype._removeFromSeq = function(prev, record) {
|
|
var next = record._next;
|
|
if (prev === null) {
|
|
this._mapHead = next;
|
|
} else {
|
|
prev._next = next;
|
|
}
|
|
};
|
|
DefaultKeyValueDiffer.prototype._removeFromRemovals = function(record) {
|
|
var prev = record._prevRemoved;
|
|
var next = record._nextRemoved;
|
|
if (prev === null) {
|
|
this._removalsHead = next;
|
|
} else {
|
|
prev._nextRemoved = next;
|
|
}
|
|
if (next === null) {
|
|
this._removalsTail = prev;
|
|
} else {
|
|
next._prevRemoved = prev;
|
|
}
|
|
record._prevRemoved = record._nextRemoved = null;
|
|
};
|
|
DefaultKeyValueDiffer.prototype._addToAdditions = function(record) {
|
|
if (this._additionsHead === null) {
|
|
this._additionsHead = this._additionsTail = record;
|
|
} else {
|
|
this._additionsTail._nextAdded = record;
|
|
this._additionsTail = record;
|
|
}
|
|
};
|
|
DefaultKeyValueDiffer.prototype._addToChanges = function(record) {
|
|
if (this._changesHead === null) {
|
|
this._changesHead = this._changesTail = record;
|
|
} else {
|
|
this._changesTail._nextChanged = record;
|
|
this._changesTail = record;
|
|
}
|
|
};
|
|
DefaultKeyValueDiffer.prototype.toString = function() {
|
|
var items = [];
|
|
var previous = [];
|
|
var changes = [];
|
|
var additions = [];
|
|
var removals = [];
|
|
var record;
|
|
for (record = this._mapHead; record !== null; record = record._next) {
|
|
items.push(lang_1.stringify(record));
|
|
}
|
|
for (record = this._previousMapHead; record !== null; record = record._nextPrevious) {
|
|
previous.push(lang_1.stringify(record));
|
|
}
|
|
for (record = this._changesHead; record !== null; record = record._nextChanged) {
|
|
changes.push(lang_1.stringify(record));
|
|
}
|
|
for (record = this._additionsHead; record !== null; record = record._nextAdded) {
|
|
additions.push(lang_1.stringify(record));
|
|
}
|
|
for (record = this._removalsHead; record !== null; record = record._nextRemoved) {
|
|
removals.push(lang_1.stringify(record));
|
|
}
|
|
return "map: " + items.join(', ') + "\n" + "previous: " + previous.join(', ') + "\n" + "additions: " + additions.join(', ') + "\n" + "changes: " + changes.join(', ') + "\n" + "removals: " + removals.join(', ') + "\n";
|
|
};
|
|
DefaultKeyValueDiffer.prototype._forEach = function(obj, fn) {
|
|
if (obj instanceof Map) {
|
|
obj.forEach(fn);
|
|
} else {
|
|
collection_1.StringMapWrapper.forEach(obj, fn);
|
|
}
|
|
};
|
|
return DefaultKeyValueDiffer;
|
|
})();
|
|
exports.DefaultKeyValueDiffer = DefaultKeyValueDiffer;
|
|
var KeyValueChangeRecord = (function() {
|
|
function KeyValueChangeRecord(key) {
|
|
this.key = key;
|
|
this.previousValue = null;
|
|
this.currentValue = null;
|
|
this._nextPrevious = null;
|
|
this._next = null;
|
|
this._nextAdded = null;
|
|
this._nextRemoved = null;
|
|
this._prevRemoved = null;
|
|
this._nextChanged = null;
|
|
}
|
|
KeyValueChangeRecord.prototype.toString = function() {
|
|
return lang_1.looseIdentical(this.previousValue, this.currentValue) ? lang_1.stringify(this.key) : (lang_1.stringify(this.key) + '[' + lang_1.stringify(this.previousValue) + '->' + lang_1.stringify(this.currentValue) + ']');
|
|
};
|
|
return KeyValueChangeRecord;
|
|
})();
|
|
exports.KeyValueChangeRecord = KeyValueChangeRecord;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/change_detection/parser/ast", ["angular2/src/facade/collection"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var AST = (function() {
|
|
function AST() {}
|
|
AST.prototype.visit = function(visitor) {
|
|
return null;
|
|
};
|
|
AST.prototype.toString = function() {
|
|
return "AST";
|
|
};
|
|
return AST;
|
|
})();
|
|
exports.AST = AST;
|
|
var Quote = (function(_super) {
|
|
__extends(Quote, _super);
|
|
function Quote(prefix, uninterpretedExpression, location) {
|
|
_super.call(this);
|
|
this.prefix = prefix;
|
|
this.uninterpretedExpression = uninterpretedExpression;
|
|
this.location = location;
|
|
}
|
|
Quote.prototype.visit = function(visitor) {
|
|
return visitor.visitQuote(this);
|
|
};
|
|
Quote.prototype.toString = function() {
|
|
return "Quote";
|
|
};
|
|
return Quote;
|
|
})(AST);
|
|
exports.Quote = Quote;
|
|
var EmptyExpr = (function(_super) {
|
|
__extends(EmptyExpr, _super);
|
|
function EmptyExpr() {
|
|
_super.apply(this, arguments);
|
|
}
|
|
EmptyExpr.prototype.visit = function(visitor) {};
|
|
return EmptyExpr;
|
|
})(AST);
|
|
exports.EmptyExpr = EmptyExpr;
|
|
var ImplicitReceiver = (function(_super) {
|
|
__extends(ImplicitReceiver, _super);
|
|
function ImplicitReceiver() {
|
|
_super.apply(this, arguments);
|
|
}
|
|
ImplicitReceiver.prototype.visit = function(visitor) {
|
|
return visitor.visitImplicitReceiver(this);
|
|
};
|
|
return ImplicitReceiver;
|
|
})(AST);
|
|
exports.ImplicitReceiver = ImplicitReceiver;
|
|
var Chain = (function(_super) {
|
|
__extends(Chain, _super);
|
|
function Chain(expressions) {
|
|
_super.call(this);
|
|
this.expressions = expressions;
|
|
}
|
|
Chain.prototype.visit = function(visitor) {
|
|
return visitor.visitChain(this);
|
|
};
|
|
return Chain;
|
|
})(AST);
|
|
exports.Chain = Chain;
|
|
var Conditional = (function(_super) {
|
|
__extends(Conditional, _super);
|
|
function Conditional(condition, trueExp, falseExp) {
|
|
_super.call(this);
|
|
this.condition = condition;
|
|
this.trueExp = trueExp;
|
|
this.falseExp = falseExp;
|
|
}
|
|
Conditional.prototype.visit = function(visitor) {
|
|
return visitor.visitConditional(this);
|
|
};
|
|
return Conditional;
|
|
})(AST);
|
|
exports.Conditional = Conditional;
|
|
var PropertyRead = (function(_super) {
|
|
__extends(PropertyRead, _super);
|
|
function PropertyRead(receiver, name, getter) {
|
|
_super.call(this);
|
|
this.receiver = receiver;
|
|
this.name = name;
|
|
this.getter = getter;
|
|
}
|
|
PropertyRead.prototype.visit = function(visitor) {
|
|
return visitor.visitPropertyRead(this);
|
|
};
|
|
return PropertyRead;
|
|
})(AST);
|
|
exports.PropertyRead = PropertyRead;
|
|
var PropertyWrite = (function(_super) {
|
|
__extends(PropertyWrite, _super);
|
|
function PropertyWrite(receiver, name, setter, value) {
|
|
_super.call(this);
|
|
this.receiver = receiver;
|
|
this.name = name;
|
|
this.setter = setter;
|
|
this.value = value;
|
|
}
|
|
PropertyWrite.prototype.visit = function(visitor) {
|
|
return visitor.visitPropertyWrite(this);
|
|
};
|
|
return PropertyWrite;
|
|
})(AST);
|
|
exports.PropertyWrite = PropertyWrite;
|
|
var SafePropertyRead = (function(_super) {
|
|
__extends(SafePropertyRead, _super);
|
|
function SafePropertyRead(receiver, name, getter) {
|
|
_super.call(this);
|
|
this.receiver = receiver;
|
|
this.name = name;
|
|
this.getter = getter;
|
|
}
|
|
SafePropertyRead.prototype.visit = function(visitor) {
|
|
return visitor.visitSafePropertyRead(this);
|
|
};
|
|
return SafePropertyRead;
|
|
})(AST);
|
|
exports.SafePropertyRead = SafePropertyRead;
|
|
var KeyedRead = (function(_super) {
|
|
__extends(KeyedRead, _super);
|
|
function KeyedRead(obj, key) {
|
|
_super.call(this);
|
|
this.obj = obj;
|
|
this.key = key;
|
|
}
|
|
KeyedRead.prototype.visit = function(visitor) {
|
|
return visitor.visitKeyedRead(this);
|
|
};
|
|
return KeyedRead;
|
|
})(AST);
|
|
exports.KeyedRead = KeyedRead;
|
|
var KeyedWrite = (function(_super) {
|
|
__extends(KeyedWrite, _super);
|
|
function KeyedWrite(obj, key, value) {
|
|
_super.call(this);
|
|
this.obj = obj;
|
|
this.key = key;
|
|
this.value = value;
|
|
}
|
|
KeyedWrite.prototype.visit = function(visitor) {
|
|
return visitor.visitKeyedWrite(this);
|
|
};
|
|
return KeyedWrite;
|
|
})(AST);
|
|
exports.KeyedWrite = KeyedWrite;
|
|
var BindingPipe = (function(_super) {
|
|
__extends(BindingPipe, _super);
|
|
function BindingPipe(exp, name, args) {
|
|
_super.call(this);
|
|
this.exp = exp;
|
|
this.name = name;
|
|
this.args = args;
|
|
}
|
|
BindingPipe.prototype.visit = function(visitor) {
|
|
return visitor.visitPipe(this);
|
|
};
|
|
return BindingPipe;
|
|
})(AST);
|
|
exports.BindingPipe = BindingPipe;
|
|
var LiteralPrimitive = (function(_super) {
|
|
__extends(LiteralPrimitive, _super);
|
|
function LiteralPrimitive(value) {
|
|
_super.call(this);
|
|
this.value = value;
|
|
}
|
|
LiteralPrimitive.prototype.visit = function(visitor) {
|
|
return visitor.visitLiteralPrimitive(this);
|
|
};
|
|
return LiteralPrimitive;
|
|
})(AST);
|
|
exports.LiteralPrimitive = LiteralPrimitive;
|
|
var LiteralArray = (function(_super) {
|
|
__extends(LiteralArray, _super);
|
|
function LiteralArray(expressions) {
|
|
_super.call(this);
|
|
this.expressions = expressions;
|
|
}
|
|
LiteralArray.prototype.visit = function(visitor) {
|
|
return visitor.visitLiteralArray(this);
|
|
};
|
|
return LiteralArray;
|
|
})(AST);
|
|
exports.LiteralArray = LiteralArray;
|
|
var LiteralMap = (function(_super) {
|
|
__extends(LiteralMap, _super);
|
|
function LiteralMap(keys, values) {
|
|
_super.call(this);
|
|
this.keys = keys;
|
|
this.values = values;
|
|
}
|
|
LiteralMap.prototype.visit = function(visitor) {
|
|
return visitor.visitLiteralMap(this);
|
|
};
|
|
return LiteralMap;
|
|
})(AST);
|
|
exports.LiteralMap = LiteralMap;
|
|
var Interpolation = (function(_super) {
|
|
__extends(Interpolation, _super);
|
|
function Interpolation(strings, expressions) {
|
|
_super.call(this);
|
|
this.strings = strings;
|
|
this.expressions = expressions;
|
|
}
|
|
Interpolation.prototype.visit = function(visitor) {
|
|
return visitor.visitInterpolation(this);
|
|
};
|
|
return Interpolation;
|
|
})(AST);
|
|
exports.Interpolation = Interpolation;
|
|
var Binary = (function(_super) {
|
|
__extends(Binary, _super);
|
|
function Binary(operation, left, right) {
|
|
_super.call(this);
|
|
this.operation = operation;
|
|
this.left = left;
|
|
this.right = right;
|
|
}
|
|
Binary.prototype.visit = function(visitor) {
|
|
return visitor.visitBinary(this);
|
|
};
|
|
return Binary;
|
|
})(AST);
|
|
exports.Binary = Binary;
|
|
var PrefixNot = (function(_super) {
|
|
__extends(PrefixNot, _super);
|
|
function PrefixNot(expression) {
|
|
_super.call(this);
|
|
this.expression = expression;
|
|
}
|
|
PrefixNot.prototype.visit = function(visitor) {
|
|
return visitor.visitPrefixNot(this);
|
|
};
|
|
return PrefixNot;
|
|
})(AST);
|
|
exports.PrefixNot = PrefixNot;
|
|
var MethodCall = (function(_super) {
|
|
__extends(MethodCall, _super);
|
|
function MethodCall(receiver, name, fn, args) {
|
|
_super.call(this);
|
|
this.receiver = receiver;
|
|
this.name = name;
|
|
this.fn = fn;
|
|
this.args = args;
|
|
}
|
|
MethodCall.prototype.visit = function(visitor) {
|
|
return visitor.visitMethodCall(this);
|
|
};
|
|
return MethodCall;
|
|
})(AST);
|
|
exports.MethodCall = MethodCall;
|
|
var SafeMethodCall = (function(_super) {
|
|
__extends(SafeMethodCall, _super);
|
|
function SafeMethodCall(receiver, name, fn, args) {
|
|
_super.call(this);
|
|
this.receiver = receiver;
|
|
this.name = name;
|
|
this.fn = fn;
|
|
this.args = args;
|
|
}
|
|
SafeMethodCall.prototype.visit = function(visitor) {
|
|
return visitor.visitSafeMethodCall(this);
|
|
};
|
|
return SafeMethodCall;
|
|
})(AST);
|
|
exports.SafeMethodCall = SafeMethodCall;
|
|
var FunctionCall = (function(_super) {
|
|
__extends(FunctionCall, _super);
|
|
function FunctionCall(target, args) {
|
|
_super.call(this);
|
|
this.target = target;
|
|
this.args = args;
|
|
}
|
|
FunctionCall.prototype.visit = function(visitor) {
|
|
return visitor.visitFunctionCall(this);
|
|
};
|
|
return FunctionCall;
|
|
})(AST);
|
|
exports.FunctionCall = FunctionCall;
|
|
var ASTWithSource = (function(_super) {
|
|
__extends(ASTWithSource, _super);
|
|
function ASTWithSource(ast, source, location) {
|
|
_super.call(this);
|
|
this.ast = ast;
|
|
this.source = source;
|
|
this.location = location;
|
|
}
|
|
ASTWithSource.prototype.visit = function(visitor) {
|
|
return this.ast.visit(visitor);
|
|
};
|
|
ASTWithSource.prototype.toString = function() {
|
|
return this.source + " in " + this.location;
|
|
};
|
|
return ASTWithSource;
|
|
})(AST);
|
|
exports.ASTWithSource = ASTWithSource;
|
|
var TemplateBinding = (function() {
|
|
function TemplateBinding(key, keyIsVar, name, expression) {
|
|
this.key = key;
|
|
this.keyIsVar = keyIsVar;
|
|
this.name = name;
|
|
this.expression = expression;
|
|
}
|
|
return TemplateBinding;
|
|
})();
|
|
exports.TemplateBinding = TemplateBinding;
|
|
var RecursiveAstVisitor = (function() {
|
|
function RecursiveAstVisitor() {}
|
|
RecursiveAstVisitor.prototype.visitBinary = function(ast) {
|
|
ast.left.visit(this);
|
|
ast.right.visit(this);
|
|
return null;
|
|
};
|
|
RecursiveAstVisitor.prototype.visitChain = function(ast) {
|
|
return this.visitAll(ast.expressions);
|
|
};
|
|
RecursiveAstVisitor.prototype.visitConditional = function(ast) {
|
|
ast.condition.visit(this);
|
|
ast.trueExp.visit(this);
|
|
ast.falseExp.visit(this);
|
|
return null;
|
|
};
|
|
RecursiveAstVisitor.prototype.visitPipe = function(ast) {
|
|
ast.exp.visit(this);
|
|
this.visitAll(ast.args);
|
|
return null;
|
|
};
|
|
RecursiveAstVisitor.prototype.visitFunctionCall = function(ast) {
|
|
ast.target.visit(this);
|
|
this.visitAll(ast.args);
|
|
return null;
|
|
};
|
|
RecursiveAstVisitor.prototype.visitImplicitReceiver = function(ast) {
|
|
return null;
|
|
};
|
|
RecursiveAstVisitor.prototype.visitInterpolation = function(ast) {
|
|
return this.visitAll(ast.expressions);
|
|
};
|
|
RecursiveAstVisitor.prototype.visitKeyedRead = function(ast) {
|
|
ast.obj.visit(this);
|
|
ast.key.visit(this);
|
|
return null;
|
|
};
|
|
RecursiveAstVisitor.prototype.visitKeyedWrite = function(ast) {
|
|
ast.obj.visit(this);
|
|
ast.key.visit(this);
|
|
ast.value.visit(this);
|
|
return null;
|
|
};
|
|
RecursiveAstVisitor.prototype.visitLiteralArray = function(ast) {
|
|
return this.visitAll(ast.expressions);
|
|
};
|
|
RecursiveAstVisitor.prototype.visitLiteralMap = function(ast) {
|
|
return this.visitAll(ast.values);
|
|
};
|
|
RecursiveAstVisitor.prototype.visitLiteralPrimitive = function(ast) {
|
|
return null;
|
|
};
|
|
RecursiveAstVisitor.prototype.visitMethodCall = function(ast) {
|
|
ast.receiver.visit(this);
|
|
return this.visitAll(ast.args);
|
|
};
|
|
RecursiveAstVisitor.prototype.visitPrefixNot = function(ast) {
|
|
ast.expression.visit(this);
|
|
return null;
|
|
};
|
|
RecursiveAstVisitor.prototype.visitPropertyRead = function(ast) {
|
|
ast.receiver.visit(this);
|
|
return null;
|
|
};
|
|
RecursiveAstVisitor.prototype.visitPropertyWrite = function(ast) {
|
|
ast.receiver.visit(this);
|
|
ast.value.visit(this);
|
|
return null;
|
|
};
|
|
RecursiveAstVisitor.prototype.visitSafePropertyRead = function(ast) {
|
|
ast.receiver.visit(this);
|
|
return null;
|
|
};
|
|
RecursiveAstVisitor.prototype.visitSafeMethodCall = function(ast) {
|
|
ast.receiver.visit(this);
|
|
return this.visitAll(ast.args);
|
|
};
|
|
RecursiveAstVisitor.prototype.visitAll = function(asts) {
|
|
var _this = this;
|
|
asts.forEach(function(ast) {
|
|
return ast.visit(_this);
|
|
});
|
|
return null;
|
|
};
|
|
RecursiveAstVisitor.prototype.visitQuote = function(ast) {
|
|
return null;
|
|
};
|
|
return RecursiveAstVisitor;
|
|
})();
|
|
exports.RecursiveAstVisitor = RecursiveAstVisitor;
|
|
var AstTransformer = (function() {
|
|
function AstTransformer() {}
|
|
AstTransformer.prototype.visitImplicitReceiver = function(ast) {
|
|
return ast;
|
|
};
|
|
AstTransformer.prototype.visitInterpolation = function(ast) {
|
|
return new Interpolation(ast.strings, this.visitAll(ast.expressions));
|
|
};
|
|
AstTransformer.prototype.visitLiteralPrimitive = function(ast) {
|
|
return new LiteralPrimitive(ast.value);
|
|
};
|
|
AstTransformer.prototype.visitPropertyRead = function(ast) {
|
|
return new PropertyRead(ast.receiver.visit(this), ast.name, ast.getter);
|
|
};
|
|
AstTransformer.prototype.visitPropertyWrite = function(ast) {
|
|
return new PropertyWrite(ast.receiver.visit(this), ast.name, ast.setter, ast.value);
|
|
};
|
|
AstTransformer.prototype.visitSafePropertyRead = function(ast) {
|
|
return new SafePropertyRead(ast.receiver.visit(this), ast.name, ast.getter);
|
|
};
|
|
AstTransformer.prototype.visitMethodCall = function(ast) {
|
|
return new MethodCall(ast.receiver.visit(this), ast.name, ast.fn, this.visitAll(ast.args));
|
|
};
|
|
AstTransformer.prototype.visitSafeMethodCall = function(ast) {
|
|
return new SafeMethodCall(ast.receiver.visit(this), ast.name, ast.fn, this.visitAll(ast.args));
|
|
};
|
|
AstTransformer.prototype.visitFunctionCall = function(ast) {
|
|
return new FunctionCall(ast.target.visit(this), this.visitAll(ast.args));
|
|
};
|
|
AstTransformer.prototype.visitLiteralArray = function(ast) {
|
|
return new LiteralArray(this.visitAll(ast.expressions));
|
|
};
|
|
AstTransformer.prototype.visitLiteralMap = function(ast) {
|
|
return new LiteralMap(ast.keys, this.visitAll(ast.values));
|
|
};
|
|
AstTransformer.prototype.visitBinary = function(ast) {
|
|
return new Binary(ast.operation, ast.left.visit(this), ast.right.visit(this));
|
|
};
|
|
AstTransformer.prototype.visitPrefixNot = function(ast) {
|
|
return new PrefixNot(ast.expression.visit(this));
|
|
};
|
|
AstTransformer.prototype.visitConditional = function(ast) {
|
|
return new Conditional(ast.condition.visit(this), ast.trueExp.visit(this), ast.falseExp.visit(this));
|
|
};
|
|
AstTransformer.prototype.visitPipe = function(ast) {
|
|
return new BindingPipe(ast.exp.visit(this), ast.name, this.visitAll(ast.args));
|
|
};
|
|
AstTransformer.prototype.visitKeyedRead = function(ast) {
|
|
return new KeyedRead(ast.obj.visit(this), ast.key.visit(this));
|
|
};
|
|
AstTransformer.prototype.visitKeyedWrite = function(ast) {
|
|
return new KeyedWrite(ast.obj.visit(this), ast.key.visit(this), ast.value.visit(this));
|
|
};
|
|
AstTransformer.prototype.visitAll = function(asts) {
|
|
var res = collection_1.ListWrapper.createFixedSize(asts.length);
|
|
for (var i = 0; i < asts.length; ++i) {
|
|
res[i] = asts[i].visit(this);
|
|
}
|
|
return res;
|
|
};
|
|
AstTransformer.prototype.visitChain = function(ast) {
|
|
return new Chain(this.visitAll(ast.expressions));
|
|
};
|
|
AstTransformer.prototype.visitQuote = function(ast) {
|
|
return new Quote(ast.prefix, ast.uninterpretedExpression, ast.location);
|
|
};
|
|
return AstTransformer;
|
|
})();
|
|
exports.AstTransformer = AstTransformer;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/change_detection/parser/lexer", ["angular2/src/core/di/decorators", "angular2/src/facade/collection", "angular2/src/facade/lang", "angular2/src/facade/exceptions"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var decorators_1 = require("angular2/src/core/di/decorators");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
(function(TokenType) {
|
|
TokenType[TokenType["Character"] = 0] = "Character";
|
|
TokenType[TokenType["Identifier"] = 1] = "Identifier";
|
|
TokenType[TokenType["Keyword"] = 2] = "Keyword";
|
|
TokenType[TokenType["String"] = 3] = "String";
|
|
TokenType[TokenType["Operator"] = 4] = "Operator";
|
|
TokenType[TokenType["Number"] = 5] = "Number";
|
|
})(exports.TokenType || (exports.TokenType = {}));
|
|
var TokenType = exports.TokenType;
|
|
var Lexer = (function() {
|
|
function Lexer() {}
|
|
Lexer.prototype.tokenize = function(text) {
|
|
var scanner = new _Scanner(text);
|
|
var tokens = [];
|
|
var token = scanner.scanToken();
|
|
while (token != null) {
|
|
tokens.push(token);
|
|
token = scanner.scanToken();
|
|
}
|
|
return tokens;
|
|
};
|
|
Lexer = __decorate([decorators_1.Injectable(), __metadata('design:paramtypes', [])], Lexer);
|
|
return Lexer;
|
|
})();
|
|
exports.Lexer = Lexer;
|
|
var Token = (function() {
|
|
function Token(index, type, numValue, strValue) {
|
|
this.index = index;
|
|
this.type = type;
|
|
this.numValue = numValue;
|
|
this.strValue = strValue;
|
|
}
|
|
Token.prototype.isCharacter = function(code) {
|
|
return (this.type == TokenType.Character && this.numValue == code);
|
|
};
|
|
Token.prototype.isNumber = function() {
|
|
return (this.type == TokenType.Number);
|
|
};
|
|
Token.prototype.isString = function() {
|
|
return (this.type == TokenType.String);
|
|
};
|
|
Token.prototype.isOperator = function(operater) {
|
|
return (this.type == TokenType.Operator && this.strValue == operater);
|
|
};
|
|
Token.prototype.isIdentifier = function() {
|
|
return (this.type == TokenType.Identifier);
|
|
};
|
|
Token.prototype.isKeyword = function() {
|
|
return (this.type == TokenType.Keyword);
|
|
};
|
|
Token.prototype.isKeywordVar = function() {
|
|
return (this.type == TokenType.Keyword && this.strValue == "var");
|
|
};
|
|
Token.prototype.isKeywordNull = function() {
|
|
return (this.type == TokenType.Keyword && this.strValue == "null");
|
|
};
|
|
Token.prototype.isKeywordUndefined = function() {
|
|
return (this.type == TokenType.Keyword && this.strValue == "undefined");
|
|
};
|
|
Token.prototype.isKeywordTrue = function() {
|
|
return (this.type == TokenType.Keyword && this.strValue == "true");
|
|
};
|
|
Token.prototype.isKeywordFalse = function() {
|
|
return (this.type == TokenType.Keyword && this.strValue == "false");
|
|
};
|
|
Token.prototype.toNumber = function() {
|
|
return (this.type == TokenType.Number) ? this.numValue : -1;
|
|
};
|
|
Token.prototype.toString = function() {
|
|
switch (this.type) {
|
|
case TokenType.Character:
|
|
case TokenType.Identifier:
|
|
case TokenType.Keyword:
|
|
case TokenType.Operator:
|
|
case TokenType.String:
|
|
return this.strValue;
|
|
case TokenType.Number:
|
|
return this.numValue.toString();
|
|
default:
|
|
return null;
|
|
}
|
|
};
|
|
return Token;
|
|
})();
|
|
exports.Token = Token;
|
|
function newCharacterToken(index, code) {
|
|
return new Token(index, TokenType.Character, code, lang_1.StringWrapper.fromCharCode(code));
|
|
}
|
|
function newIdentifierToken(index, text) {
|
|
return new Token(index, TokenType.Identifier, 0, text);
|
|
}
|
|
function newKeywordToken(index, text) {
|
|
return new Token(index, TokenType.Keyword, 0, text);
|
|
}
|
|
function newOperatorToken(index, text) {
|
|
return new Token(index, TokenType.Operator, 0, text);
|
|
}
|
|
function newStringToken(index, text) {
|
|
return new Token(index, TokenType.String, 0, text);
|
|
}
|
|
function newNumberToken(index, n) {
|
|
return new Token(index, TokenType.Number, n, "");
|
|
}
|
|
exports.EOF = new Token(-1, TokenType.Character, 0, "");
|
|
exports.$EOF = 0;
|
|
exports.$TAB = 9;
|
|
exports.$LF = 10;
|
|
exports.$VTAB = 11;
|
|
exports.$FF = 12;
|
|
exports.$CR = 13;
|
|
exports.$SPACE = 32;
|
|
exports.$BANG = 33;
|
|
exports.$DQ = 34;
|
|
exports.$HASH = 35;
|
|
exports.$$ = 36;
|
|
exports.$PERCENT = 37;
|
|
exports.$AMPERSAND = 38;
|
|
exports.$SQ = 39;
|
|
exports.$LPAREN = 40;
|
|
exports.$RPAREN = 41;
|
|
exports.$STAR = 42;
|
|
exports.$PLUS = 43;
|
|
exports.$COMMA = 44;
|
|
exports.$MINUS = 45;
|
|
exports.$PERIOD = 46;
|
|
exports.$SLASH = 47;
|
|
exports.$COLON = 58;
|
|
exports.$SEMICOLON = 59;
|
|
exports.$LT = 60;
|
|
exports.$EQ = 61;
|
|
exports.$GT = 62;
|
|
exports.$QUESTION = 63;
|
|
var $0 = 48;
|
|
var $9 = 57;
|
|
var $A = 65,
|
|
$E = 69,
|
|
$Z = 90;
|
|
exports.$LBRACKET = 91;
|
|
exports.$BACKSLASH = 92;
|
|
exports.$RBRACKET = 93;
|
|
var $CARET = 94;
|
|
var $_ = 95;
|
|
var $a = 97,
|
|
$e = 101,
|
|
$f = 102,
|
|
$n = 110,
|
|
$r = 114,
|
|
$t = 116,
|
|
$u = 117,
|
|
$v = 118,
|
|
$z = 122;
|
|
exports.$LBRACE = 123;
|
|
exports.$BAR = 124;
|
|
exports.$RBRACE = 125;
|
|
var $NBSP = 160;
|
|
var ScannerError = (function(_super) {
|
|
__extends(ScannerError, _super);
|
|
function ScannerError(message) {
|
|
_super.call(this);
|
|
this.message = message;
|
|
}
|
|
ScannerError.prototype.toString = function() {
|
|
return this.message;
|
|
};
|
|
return ScannerError;
|
|
})(exceptions_1.BaseException);
|
|
exports.ScannerError = ScannerError;
|
|
var _Scanner = (function() {
|
|
function _Scanner(input) {
|
|
this.input = input;
|
|
this.peek = 0;
|
|
this.index = -1;
|
|
this.length = input.length;
|
|
this.advance();
|
|
}
|
|
_Scanner.prototype.advance = function() {
|
|
this.peek = ++this.index >= this.length ? exports.$EOF : lang_1.StringWrapper.charCodeAt(this.input, this.index);
|
|
};
|
|
_Scanner.prototype.scanToken = function() {
|
|
var input = this.input,
|
|
length = this.length,
|
|
peek = this.peek,
|
|
index = this.index;
|
|
while (peek <= exports.$SPACE) {
|
|
if (++index >= length) {
|
|
peek = exports.$EOF;
|
|
break;
|
|
} else {
|
|
peek = lang_1.StringWrapper.charCodeAt(input, index);
|
|
}
|
|
}
|
|
this.peek = peek;
|
|
this.index = index;
|
|
if (index >= length) {
|
|
return null;
|
|
}
|
|
if (isIdentifierStart(peek))
|
|
return this.scanIdentifier();
|
|
if (isDigit(peek))
|
|
return this.scanNumber(index);
|
|
var start = index;
|
|
switch (peek) {
|
|
case exports.$PERIOD:
|
|
this.advance();
|
|
return isDigit(this.peek) ? this.scanNumber(start) : newCharacterToken(start, exports.$PERIOD);
|
|
case exports.$LPAREN:
|
|
case exports.$RPAREN:
|
|
case exports.$LBRACE:
|
|
case exports.$RBRACE:
|
|
case exports.$LBRACKET:
|
|
case exports.$RBRACKET:
|
|
case exports.$COMMA:
|
|
case exports.$COLON:
|
|
case exports.$SEMICOLON:
|
|
return this.scanCharacter(start, peek);
|
|
case exports.$SQ:
|
|
case exports.$DQ:
|
|
return this.scanString();
|
|
case exports.$HASH:
|
|
case exports.$PLUS:
|
|
case exports.$MINUS:
|
|
case exports.$STAR:
|
|
case exports.$SLASH:
|
|
case exports.$PERCENT:
|
|
case $CARET:
|
|
return this.scanOperator(start, lang_1.StringWrapper.fromCharCode(peek));
|
|
case exports.$QUESTION:
|
|
return this.scanComplexOperator(start, '?', exports.$PERIOD, '.');
|
|
case exports.$LT:
|
|
case exports.$GT:
|
|
return this.scanComplexOperator(start, lang_1.StringWrapper.fromCharCode(peek), exports.$EQ, '=');
|
|
case exports.$BANG:
|
|
case exports.$EQ:
|
|
return this.scanComplexOperator(start, lang_1.StringWrapper.fromCharCode(peek), exports.$EQ, '=', exports.$EQ, '=');
|
|
case exports.$AMPERSAND:
|
|
return this.scanComplexOperator(start, '&', exports.$AMPERSAND, '&');
|
|
case exports.$BAR:
|
|
return this.scanComplexOperator(start, '|', exports.$BAR, '|');
|
|
case $NBSP:
|
|
while (isWhitespace(this.peek))
|
|
this.advance();
|
|
return this.scanToken();
|
|
}
|
|
this.error("Unexpected character [" + lang_1.StringWrapper.fromCharCode(peek) + "]", 0);
|
|
return null;
|
|
};
|
|
_Scanner.prototype.scanCharacter = function(start, code) {
|
|
this.advance();
|
|
return newCharacterToken(start, code);
|
|
};
|
|
_Scanner.prototype.scanOperator = function(start, str) {
|
|
this.advance();
|
|
return newOperatorToken(start, str);
|
|
};
|
|
_Scanner.prototype.scanComplexOperator = function(start, one, twoCode, two, threeCode, three) {
|
|
this.advance();
|
|
var str = one;
|
|
if (this.peek == twoCode) {
|
|
this.advance();
|
|
str += two;
|
|
}
|
|
if (lang_1.isPresent(threeCode) && this.peek == threeCode) {
|
|
this.advance();
|
|
str += three;
|
|
}
|
|
return newOperatorToken(start, str);
|
|
};
|
|
_Scanner.prototype.scanIdentifier = function() {
|
|
var start = this.index;
|
|
this.advance();
|
|
while (isIdentifierPart(this.peek))
|
|
this.advance();
|
|
var str = this.input.substring(start, this.index);
|
|
if (collection_1.SetWrapper.has(KEYWORDS, str)) {
|
|
return newKeywordToken(start, str);
|
|
} else {
|
|
return newIdentifierToken(start, str);
|
|
}
|
|
};
|
|
_Scanner.prototype.scanNumber = function(start) {
|
|
var simple = (this.index === start);
|
|
this.advance();
|
|
while (true) {
|
|
if (isDigit(this.peek)) {} else if (this.peek == exports.$PERIOD) {
|
|
simple = false;
|
|
} else if (isExponentStart(this.peek)) {
|
|
this.advance();
|
|
if (isExponentSign(this.peek))
|
|
this.advance();
|
|
if (!isDigit(this.peek))
|
|
this.error('Invalid exponent', -1);
|
|
simple = false;
|
|
} else {
|
|
break;
|
|
}
|
|
this.advance();
|
|
}
|
|
var str = this.input.substring(start, this.index);
|
|
var value = simple ? lang_1.NumberWrapper.parseIntAutoRadix(str) : lang_1.NumberWrapper.parseFloat(str);
|
|
return newNumberToken(start, value);
|
|
};
|
|
_Scanner.prototype.scanString = function() {
|
|
var start = this.index;
|
|
var quote = this.peek;
|
|
this.advance();
|
|
var buffer;
|
|
var marker = this.index;
|
|
var input = this.input;
|
|
while (this.peek != quote) {
|
|
if (this.peek == exports.$BACKSLASH) {
|
|
if (buffer == null)
|
|
buffer = new lang_1.StringJoiner();
|
|
buffer.add(input.substring(marker, this.index));
|
|
this.advance();
|
|
var unescapedCode;
|
|
if (this.peek == $u) {
|
|
var hex = input.substring(this.index + 1, this.index + 5);
|
|
try {
|
|
unescapedCode = lang_1.NumberWrapper.parseInt(hex, 16);
|
|
} catch (e) {
|
|
this.error("Invalid unicode escape [\\u" + hex + "]", 0);
|
|
}
|
|
for (var i = 0; i < 5; i++) {
|
|
this.advance();
|
|
}
|
|
} else {
|
|
unescapedCode = unescape(this.peek);
|
|
this.advance();
|
|
}
|
|
buffer.add(lang_1.StringWrapper.fromCharCode(unescapedCode));
|
|
marker = this.index;
|
|
} else if (this.peek == exports.$EOF) {
|
|
this.error('Unterminated quote', 0);
|
|
} else {
|
|
this.advance();
|
|
}
|
|
}
|
|
var last = input.substring(marker, this.index);
|
|
this.advance();
|
|
var unescaped = last;
|
|
if (buffer != null) {
|
|
buffer.add(last);
|
|
unescaped = buffer.toString();
|
|
}
|
|
return newStringToken(start, unescaped);
|
|
};
|
|
_Scanner.prototype.error = function(message, offset) {
|
|
var position = this.index + offset;
|
|
throw new ScannerError("Lexer Error: " + message + " at column " + position + " in expression [" + this.input + "]");
|
|
};
|
|
return _Scanner;
|
|
})();
|
|
function isWhitespace(code) {
|
|
return (code >= exports.$TAB && code <= exports.$SPACE) || (code == $NBSP);
|
|
}
|
|
function isIdentifierStart(code) {
|
|
return ($a <= code && code <= $z) || ($A <= code && code <= $Z) || (code == $_) || (code == exports.$$);
|
|
}
|
|
function isIdentifier(input) {
|
|
if (input.length == 0)
|
|
return false;
|
|
var scanner = new _Scanner(input);
|
|
if (!isIdentifierStart(scanner.peek))
|
|
return false;
|
|
scanner.advance();
|
|
while (scanner.peek !== exports.$EOF) {
|
|
if (!isIdentifierPart(scanner.peek))
|
|
return false;
|
|
scanner.advance();
|
|
}
|
|
return true;
|
|
}
|
|
exports.isIdentifier = isIdentifier;
|
|
function isIdentifierPart(code) {
|
|
return ($a <= code && code <= $z) || ($A <= code && code <= $Z) || ($0 <= code && code <= $9) || (code == $_) || (code == exports.$$);
|
|
}
|
|
function isDigit(code) {
|
|
return $0 <= code && code <= $9;
|
|
}
|
|
function isExponentStart(code) {
|
|
return code == $e || code == $E;
|
|
}
|
|
function isExponentSign(code) {
|
|
return code == exports.$MINUS || code == exports.$PLUS;
|
|
}
|
|
function unescape(code) {
|
|
switch (code) {
|
|
case $n:
|
|
return exports.$LF;
|
|
case $f:
|
|
return exports.$FF;
|
|
case $r:
|
|
return exports.$CR;
|
|
case $t:
|
|
return exports.$TAB;
|
|
case $v:
|
|
return exports.$VTAB;
|
|
default:
|
|
return code;
|
|
}
|
|
}
|
|
var OPERATORS = collection_1.SetWrapper.createFromList(['+', '-', '*', '/', '%', '^', '=', '==', '!=', '===', '!==', '<', '>', '<=', '>=', '&&', '||', '&', '|', '!', '?', '#', '?.']);
|
|
var KEYWORDS = collection_1.SetWrapper.createFromList(['var', 'null', 'undefined', 'true', 'false', 'if', 'else']);
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/change_detection/parser/parser", ["angular2/src/core/di/decorators", "angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/facade/collection", "angular2/src/core/change_detection/parser/lexer", "angular2/src/core/reflection/reflection", "angular2/src/core/change_detection/parser/ast"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var decorators_1 = require("angular2/src/core/di/decorators");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var lexer_1 = require("angular2/src/core/change_detection/parser/lexer");
|
|
var reflection_1 = require("angular2/src/core/reflection/reflection");
|
|
var ast_1 = require("angular2/src/core/change_detection/parser/ast");
|
|
var _implicitReceiver = new ast_1.ImplicitReceiver();
|
|
var INTERPOLATION_REGEXP = /\{\{([\s\S]*?)\}\}/g;
|
|
var ParseException = (function(_super) {
|
|
__extends(ParseException, _super);
|
|
function ParseException(message, input, errLocation, ctxLocation) {
|
|
_super.call(this, "Parser Error: " + message + " " + errLocation + " [" + input + "] in " + ctxLocation);
|
|
}
|
|
return ParseException;
|
|
})(exceptions_1.BaseException);
|
|
var SplitInterpolation = (function() {
|
|
function SplitInterpolation(strings, expressions) {
|
|
this.strings = strings;
|
|
this.expressions = expressions;
|
|
}
|
|
return SplitInterpolation;
|
|
})();
|
|
exports.SplitInterpolation = SplitInterpolation;
|
|
var Parser = (function() {
|
|
function Parser(_lexer, providedReflector) {
|
|
if (providedReflector === void 0) {
|
|
providedReflector = null;
|
|
}
|
|
this._lexer = _lexer;
|
|
this._reflector = lang_1.isPresent(providedReflector) ? providedReflector : reflection_1.reflector;
|
|
}
|
|
Parser.prototype.parseAction = function(input, location) {
|
|
this._checkNoInterpolation(input, location);
|
|
var tokens = this._lexer.tokenize(input);
|
|
var ast = new _ParseAST(input, location, tokens, this._reflector, true).parseChain();
|
|
return new ast_1.ASTWithSource(ast, input, location);
|
|
};
|
|
Parser.prototype.parseBinding = function(input, location) {
|
|
var ast = this._parseBindingAst(input, location);
|
|
return new ast_1.ASTWithSource(ast, input, location);
|
|
};
|
|
Parser.prototype.parseSimpleBinding = function(input, location) {
|
|
var ast = this._parseBindingAst(input, location);
|
|
if (!SimpleExpressionChecker.check(ast)) {
|
|
throw new ParseException('Host binding expression can only contain field access and constants', input, location);
|
|
}
|
|
return new ast_1.ASTWithSource(ast, input, location);
|
|
};
|
|
Parser.prototype._parseBindingAst = function(input, location) {
|
|
var quote = this._parseQuote(input, location);
|
|
if (lang_1.isPresent(quote)) {
|
|
return quote;
|
|
}
|
|
this._checkNoInterpolation(input, location);
|
|
var tokens = this._lexer.tokenize(input);
|
|
return new _ParseAST(input, location, tokens, this._reflector, false).parseChain();
|
|
};
|
|
Parser.prototype._parseQuote = function(input, location) {
|
|
if (lang_1.isBlank(input))
|
|
return null;
|
|
var prefixSeparatorIndex = input.indexOf(':');
|
|
if (prefixSeparatorIndex == -1)
|
|
return null;
|
|
var prefix = input.substring(0, prefixSeparatorIndex).trim();
|
|
if (!lexer_1.isIdentifier(prefix))
|
|
return null;
|
|
var uninterpretedExpression = input.substring(prefixSeparatorIndex + 1);
|
|
return new ast_1.Quote(prefix, uninterpretedExpression, location);
|
|
};
|
|
Parser.prototype.parseTemplateBindings = function(input, location) {
|
|
var tokens = this._lexer.tokenize(input);
|
|
return new _ParseAST(input, location, tokens, this._reflector, false).parseTemplateBindings();
|
|
};
|
|
Parser.prototype.parseInterpolation = function(input, location) {
|
|
var split = this.splitInterpolation(input, location);
|
|
if (split == null)
|
|
return null;
|
|
var expressions = [];
|
|
for (var i = 0; i < split.expressions.length; ++i) {
|
|
var tokens = this._lexer.tokenize(split.expressions[i]);
|
|
var ast = new _ParseAST(input, location, tokens, this._reflector, false).parseChain();
|
|
expressions.push(ast);
|
|
}
|
|
return new ast_1.ASTWithSource(new ast_1.Interpolation(split.strings, expressions), input, location);
|
|
};
|
|
Parser.prototype.splitInterpolation = function(input, location) {
|
|
var parts = lang_1.StringWrapper.split(input, INTERPOLATION_REGEXP);
|
|
if (parts.length <= 1) {
|
|
return null;
|
|
}
|
|
var strings = [];
|
|
var expressions = [];
|
|
for (var i = 0; i < parts.length; i++) {
|
|
var part = parts[i];
|
|
if (i % 2 === 0) {
|
|
strings.push(part);
|
|
} else if (part.trim().length > 0) {
|
|
expressions.push(part);
|
|
} else {
|
|
throw new ParseException('Blank expressions are not allowed in interpolated strings', input, "at column " + this._findInterpolationErrorColumn(parts, i) + " in", location);
|
|
}
|
|
}
|
|
return new SplitInterpolation(strings, expressions);
|
|
};
|
|
Parser.prototype.wrapLiteralPrimitive = function(input, location) {
|
|
return new ast_1.ASTWithSource(new ast_1.LiteralPrimitive(input), input, location);
|
|
};
|
|
Parser.prototype._checkNoInterpolation = function(input, location) {
|
|
var parts = lang_1.StringWrapper.split(input, INTERPOLATION_REGEXP);
|
|
if (parts.length > 1) {
|
|
throw new ParseException('Got interpolation ({{}}) where expression was expected', input, "at column " + this._findInterpolationErrorColumn(parts, 1) + " in", location);
|
|
}
|
|
};
|
|
Parser.prototype._findInterpolationErrorColumn = function(parts, partInErrIdx) {
|
|
var errLocation = '';
|
|
for (var j = 0; j < partInErrIdx; j++) {
|
|
errLocation += j % 2 === 0 ? parts[j] : "{{" + parts[j] + "}}";
|
|
}
|
|
return errLocation.length;
|
|
};
|
|
Parser = __decorate([decorators_1.Injectable(), __metadata('design:paramtypes', [lexer_1.Lexer, reflection_1.Reflector])], Parser);
|
|
return Parser;
|
|
})();
|
|
exports.Parser = Parser;
|
|
var _ParseAST = (function() {
|
|
function _ParseAST(input, location, tokens, reflector, parseAction) {
|
|
this.input = input;
|
|
this.location = location;
|
|
this.tokens = tokens;
|
|
this.reflector = reflector;
|
|
this.parseAction = parseAction;
|
|
this.index = 0;
|
|
}
|
|
_ParseAST.prototype.peek = function(offset) {
|
|
var i = this.index + offset;
|
|
return i < this.tokens.length ? this.tokens[i] : lexer_1.EOF;
|
|
};
|
|
Object.defineProperty(_ParseAST.prototype, "next", {
|
|
get: function() {
|
|
return this.peek(0);
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(_ParseAST.prototype, "inputIndex", {
|
|
get: function() {
|
|
return (this.index < this.tokens.length) ? this.next.index : this.input.length;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
_ParseAST.prototype.advance = function() {
|
|
this.index++;
|
|
};
|
|
_ParseAST.prototype.optionalCharacter = function(code) {
|
|
if (this.next.isCharacter(code)) {
|
|
this.advance();
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
};
|
|
_ParseAST.prototype.optionalKeywordVar = function() {
|
|
if (this.peekKeywordVar()) {
|
|
this.advance();
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
};
|
|
_ParseAST.prototype.peekKeywordVar = function() {
|
|
return this.next.isKeywordVar() || this.next.isOperator('#');
|
|
};
|
|
_ParseAST.prototype.expectCharacter = function(code) {
|
|
if (this.optionalCharacter(code))
|
|
return ;
|
|
this.error("Missing expected " + lang_1.StringWrapper.fromCharCode(code));
|
|
};
|
|
_ParseAST.prototype.optionalOperator = function(op) {
|
|
if (this.next.isOperator(op)) {
|
|
this.advance();
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
};
|
|
_ParseAST.prototype.expectOperator = function(operator) {
|
|
if (this.optionalOperator(operator))
|
|
return ;
|
|
this.error("Missing expected operator " + operator);
|
|
};
|
|
_ParseAST.prototype.expectIdentifierOrKeyword = function() {
|
|
var n = this.next;
|
|
if (!n.isIdentifier() && !n.isKeyword()) {
|
|
this.error("Unexpected token " + n + ", expected identifier or keyword");
|
|
}
|
|
this.advance();
|
|
return n.toString();
|
|
};
|
|
_ParseAST.prototype.expectIdentifierOrKeywordOrString = function() {
|
|
var n = this.next;
|
|
if (!n.isIdentifier() && !n.isKeyword() && !n.isString()) {
|
|
this.error("Unexpected token " + n + ", expected identifier, keyword, or string");
|
|
}
|
|
this.advance();
|
|
return n.toString();
|
|
};
|
|
_ParseAST.prototype.parseChain = function() {
|
|
var exprs = [];
|
|
while (this.index < this.tokens.length) {
|
|
var expr = this.parsePipe();
|
|
exprs.push(expr);
|
|
if (this.optionalCharacter(lexer_1.$SEMICOLON)) {
|
|
if (!this.parseAction) {
|
|
this.error("Binding expression cannot contain chained expression");
|
|
}
|
|
while (this.optionalCharacter(lexer_1.$SEMICOLON)) {}
|
|
} else if (this.index < this.tokens.length) {
|
|
this.error("Unexpected token '" + this.next + "'");
|
|
}
|
|
}
|
|
if (exprs.length == 0)
|
|
return new ast_1.EmptyExpr();
|
|
if (exprs.length == 1)
|
|
return exprs[0];
|
|
return new ast_1.Chain(exprs);
|
|
};
|
|
_ParseAST.prototype.parsePipe = function() {
|
|
var result = this.parseExpression();
|
|
if (this.optionalOperator("|")) {
|
|
if (this.parseAction) {
|
|
this.error("Cannot have a pipe in an action expression");
|
|
}
|
|
do {
|
|
var name = this.expectIdentifierOrKeyword();
|
|
var args = [];
|
|
while (this.optionalCharacter(lexer_1.$COLON)) {
|
|
args.push(this.parseExpression());
|
|
}
|
|
result = new ast_1.BindingPipe(result, name, args);
|
|
} while (this.optionalOperator("|"));
|
|
}
|
|
return result;
|
|
};
|
|
_ParseAST.prototype.parseExpression = function() {
|
|
return this.parseConditional();
|
|
};
|
|
_ParseAST.prototype.parseConditional = function() {
|
|
var start = this.inputIndex;
|
|
var result = this.parseLogicalOr();
|
|
if (this.optionalOperator('?')) {
|
|
var yes = this.parsePipe();
|
|
if (!this.optionalCharacter(lexer_1.$COLON)) {
|
|
var end = this.inputIndex;
|
|
var expression = this.input.substring(start, end);
|
|
this.error("Conditional expression " + expression + " requires all 3 expressions");
|
|
}
|
|
var no = this.parsePipe();
|
|
return new ast_1.Conditional(result, yes, no);
|
|
} else {
|
|
return result;
|
|
}
|
|
};
|
|
_ParseAST.prototype.parseLogicalOr = function() {
|
|
var result = this.parseLogicalAnd();
|
|
while (this.optionalOperator('||')) {
|
|
result = new ast_1.Binary('||', result, this.parseLogicalAnd());
|
|
}
|
|
return result;
|
|
};
|
|
_ParseAST.prototype.parseLogicalAnd = function() {
|
|
var result = this.parseEquality();
|
|
while (this.optionalOperator('&&')) {
|
|
result = new ast_1.Binary('&&', result, this.parseEquality());
|
|
}
|
|
return result;
|
|
};
|
|
_ParseAST.prototype.parseEquality = function() {
|
|
var result = this.parseRelational();
|
|
while (true) {
|
|
if (this.optionalOperator('==')) {
|
|
result = new ast_1.Binary('==', result, this.parseRelational());
|
|
} else if (this.optionalOperator('===')) {
|
|
result = new ast_1.Binary('===', result, this.parseRelational());
|
|
} else if (this.optionalOperator('!=')) {
|
|
result = new ast_1.Binary('!=', result, this.parseRelational());
|
|
} else if (this.optionalOperator('!==')) {
|
|
result = new ast_1.Binary('!==', result, this.parseRelational());
|
|
} else {
|
|
return result;
|
|
}
|
|
}
|
|
};
|
|
_ParseAST.prototype.parseRelational = function() {
|
|
var result = this.parseAdditive();
|
|
while (true) {
|
|
if (this.optionalOperator('<')) {
|
|
result = new ast_1.Binary('<', result, this.parseAdditive());
|
|
} else if (this.optionalOperator('>')) {
|
|
result = new ast_1.Binary('>', result, this.parseAdditive());
|
|
} else if (this.optionalOperator('<=')) {
|
|
result = new ast_1.Binary('<=', result, this.parseAdditive());
|
|
} else if (this.optionalOperator('>=')) {
|
|
result = new ast_1.Binary('>=', result, this.parseAdditive());
|
|
} else {
|
|
return result;
|
|
}
|
|
}
|
|
};
|
|
_ParseAST.prototype.parseAdditive = function() {
|
|
var result = this.parseMultiplicative();
|
|
while (true) {
|
|
if (this.optionalOperator('+')) {
|
|
result = new ast_1.Binary('+', result, this.parseMultiplicative());
|
|
} else if (this.optionalOperator('-')) {
|
|
result = new ast_1.Binary('-', result, this.parseMultiplicative());
|
|
} else {
|
|
return result;
|
|
}
|
|
}
|
|
};
|
|
_ParseAST.prototype.parseMultiplicative = function() {
|
|
var result = this.parsePrefix();
|
|
while (true) {
|
|
if (this.optionalOperator('*')) {
|
|
result = new ast_1.Binary('*', result, this.parsePrefix());
|
|
} else if (this.optionalOperator('%')) {
|
|
result = new ast_1.Binary('%', result, this.parsePrefix());
|
|
} else if (this.optionalOperator('/')) {
|
|
result = new ast_1.Binary('/', result, this.parsePrefix());
|
|
} else {
|
|
return result;
|
|
}
|
|
}
|
|
};
|
|
_ParseAST.prototype.parsePrefix = function() {
|
|
if (this.optionalOperator('+')) {
|
|
return this.parsePrefix();
|
|
} else if (this.optionalOperator('-')) {
|
|
return new ast_1.Binary('-', new ast_1.LiteralPrimitive(0), this.parsePrefix());
|
|
} else if (this.optionalOperator('!')) {
|
|
return new ast_1.PrefixNot(this.parsePrefix());
|
|
} else {
|
|
return this.parseCallChain();
|
|
}
|
|
};
|
|
_ParseAST.prototype.parseCallChain = function() {
|
|
var result = this.parsePrimary();
|
|
while (true) {
|
|
if (this.optionalCharacter(lexer_1.$PERIOD)) {
|
|
result = this.parseAccessMemberOrMethodCall(result, false);
|
|
} else if (this.optionalOperator('?.')) {
|
|
result = this.parseAccessMemberOrMethodCall(result, true);
|
|
} else if (this.optionalCharacter(lexer_1.$LBRACKET)) {
|
|
var key = this.parsePipe();
|
|
this.expectCharacter(lexer_1.$RBRACKET);
|
|
if (this.optionalOperator("=")) {
|
|
var value = this.parseConditional();
|
|
result = new ast_1.KeyedWrite(result, key, value);
|
|
} else {
|
|
result = new ast_1.KeyedRead(result, key);
|
|
}
|
|
} else if (this.optionalCharacter(lexer_1.$LPAREN)) {
|
|
var args = this.parseCallArguments();
|
|
this.expectCharacter(lexer_1.$RPAREN);
|
|
result = new ast_1.FunctionCall(result, args);
|
|
} else {
|
|
return result;
|
|
}
|
|
}
|
|
};
|
|
_ParseAST.prototype.parsePrimary = function() {
|
|
if (this.optionalCharacter(lexer_1.$LPAREN)) {
|
|
var result = this.parsePipe();
|
|
this.expectCharacter(lexer_1.$RPAREN);
|
|
return result;
|
|
} else if (this.next.isKeywordNull() || this.next.isKeywordUndefined()) {
|
|
this.advance();
|
|
return new ast_1.LiteralPrimitive(null);
|
|
} else if (this.next.isKeywordTrue()) {
|
|
this.advance();
|
|
return new ast_1.LiteralPrimitive(true);
|
|
} else if (this.next.isKeywordFalse()) {
|
|
this.advance();
|
|
return new ast_1.LiteralPrimitive(false);
|
|
} else if (this.optionalCharacter(lexer_1.$LBRACKET)) {
|
|
var elements = this.parseExpressionList(lexer_1.$RBRACKET);
|
|
this.expectCharacter(lexer_1.$RBRACKET);
|
|
return new ast_1.LiteralArray(elements);
|
|
} else if (this.next.isCharacter(lexer_1.$LBRACE)) {
|
|
return this.parseLiteralMap();
|
|
} else if (this.next.isIdentifier()) {
|
|
return this.parseAccessMemberOrMethodCall(_implicitReceiver, false);
|
|
} else if (this.next.isNumber()) {
|
|
var value = this.next.toNumber();
|
|
this.advance();
|
|
return new ast_1.LiteralPrimitive(value);
|
|
} else if (this.next.isString()) {
|
|
var literalValue = this.next.toString();
|
|
this.advance();
|
|
return new ast_1.LiteralPrimitive(literalValue);
|
|
} else if (this.index >= this.tokens.length) {
|
|
this.error("Unexpected end of expression: " + this.input);
|
|
} else {
|
|
this.error("Unexpected token " + this.next);
|
|
}
|
|
throw new exceptions_1.BaseException("Fell through all cases in parsePrimary");
|
|
};
|
|
_ParseAST.prototype.parseExpressionList = function(terminator) {
|
|
var result = [];
|
|
if (!this.next.isCharacter(terminator)) {
|
|
do {
|
|
result.push(this.parsePipe());
|
|
} while (this.optionalCharacter(lexer_1.$COMMA));
|
|
}
|
|
return result;
|
|
};
|
|
_ParseAST.prototype.parseLiteralMap = function() {
|
|
var keys = [];
|
|
var values = [];
|
|
this.expectCharacter(lexer_1.$LBRACE);
|
|
if (!this.optionalCharacter(lexer_1.$RBRACE)) {
|
|
do {
|
|
var key = this.expectIdentifierOrKeywordOrString();
|
|
keys.push(key);
|
|
this.expectCharacter(lexer_1.$COLON);
|
|
values.push(this.parsePipe());
|
|
} while (this.optionalCharacter(lexer_1.$COMMA));
|
|
this.expectCharacter(lexer_1.$RBRACE);
|
|
}
|
|
return new ast_1.LiteralMap(keys, values);
|
|
};
|
|
_ParseAST.prototype.parseAccessMemberOrMethodCall = function(receiver, isSafe) {
|
|
if (isSafe === void 0) {
|
|
isSafe = false;
|
|
}
|
|
var id = this.expectIdentifierOrKeyword();
|
|
if (this.optionalCharacter(lexer_1.$LPAREN)) {
|
|
var args = this.parseCallArguments();
|
|
this.expectCharacter(lexer_1.$RPAREN);
|
|
var fn = this.reflector.method(id);
|
|
return isSafe ? new ast_1.SafeMethodCall(receiver, id, fn, args) : new ast_1.MethodCall(receiver, id, fn, args);
|
|
} else {
|
|
if (isSafe) {
|
|
if (this.optionalOperator("=")) {
|
|
this.error("The '?.' operator cannot be used in the assignment");
|
|
} else {
|
|
return new ast_1.SafePropertyRead(receiver, id, this.reflector.getter(id));
|
|
}
|
|
} else {
|
|
if (this.optionalOperator("=")) {
|
|
if (!this.parseAction) {
|
|
this.error("Bindings cannot contain assignments");
|
|
}
|
|
var value = this.parseConditional();
|
|
return new ast_1.PropertyWrite(receiver, id, this.reflector.setter(id), value);
|
|
} else {
|
|
return new ast_1.PropertyRead(receiver, id, this.reflector.getter(id));
|
|
}
|
|
}
|
|
}
|
|
return null;
|
|
};
|
|
_ParseAST.prototype.parseCallArguments = function() {
|
|
if (this.next.isCharacter(lexer_1.$RPAREN))
|
|
return [];
|
|
var positionals = [];
|
|
do {
|
|
positionals.push(this.parsePipe());
|
|
} while (this.optionalCharacter(lexer_1.$COMMA));
|
|
return positionals;
|
|
};
|
|
_ParseAST.prototype.parseBlockContent = function() {
|
|
if (!this.parseAction) {
|
|
this.error("Binding expression cannot contain chained expression");
|
|
}
|
|
var exprs = [];
|
|
while (this.index < this.tokens.length && !this.next.isCharacter(lexer_1.$RBRACE)) {
|
|
var expr = this.parseExpression();
|
|
exprs.push(expr);
|
|
if (this.optionalCharacter(lexer_1.$SEMICOLON)) {
|
|
while (this.optionalCharacter(lexer_1.$SEMICOLON)) {}
|
|
}
|
|
}
|
|
if (exprs.length == 0)
|
|
return new ast_1.EmptyExpr();
|
|
if (exprs.length == 1)
|
|
return exprs[0];
|
|
return new ast_1.Chain(exprs);
|
|
};
|
|
_ParseAST.prototype.expectTemplateBindingKey = function() {
|
|
var result = '';
|
|
var operatorFound = false;
|
|
do {
|
|
result += this.expectIdentifierOrKeywordOrString();
|
|
operatorFound = this.optionalOperator('-');
|
|
if (operatorFound) {
|
|
result += '-';
|
|
}
|
|
} while (operatorFound);
|
|
return result.toString();
|
|
};
|
|
_ParseAST.prototype.parseTemplateBindings = function() {
|
|
var bindings = [];
|
|
var prefix = null;
|
|
while (this.index < this.tokens.length) {
|
|
var keyIsVar = this.optionalKeywordVar();
|
|
var key = this.expectTemplateBindingKey();
|
|
if (!keyIsVar) {
|
|
if (prefix == null) {
|
|
prefix = key;
|
|
} else {
|
|
key = prefix + key[0].toUpperCase() + key.substring(1);
|
|
}
|
|
}
|
|
this.optionalCharacter(lexer_1.$COLON);
|
|
var name = null;
|
|
var expression = null;
|
|
if (keyIsVar) {
|
|
if (this.optionalOperator("=")) {
|
|
name = this.expectTemplateBindingKey();
|
|
} else {
|
|
name = '\$implicit';
|
|
}
|
|
} else if (this.next !== lexer_1.EOF && !this.peekKeywordVar()) {
|
|
var start = this.inputIndex;
|
|
var ast = this.parsePipe();
|
|
var source = this.input.substring(start, this.inputIndex);
|
|
expression = new ast_1.ASTWithSource(ast, source, this.location);
|
|
}
|
|
bindings.push(new ast_1.TemplateBinding(key, keyIsVar, name, expression));
|
|
if (!this.optionalCharacter(lexer_1.$SEMICOLON)) {
|
|
this.optionalCharacter(lexer_1.$COMMA);
|
|
}
|
|
}
|
|
return bindings;
|
|
};
|
|
_ParseAST.prototype.error = function(message, index) {
|
|
if (index === void 0) {
|
|
index = null;
|
|
}
|
|
if (lang_1.isBlank(index))
|
|
index = this.index;
|
|
var location = (index < this.tokens.length) ? "at column " + (this.tokens[index].index + 1) + " in" : "at the end of the expression";
|
|
throw new ParseException(message, this.input, location, this.location);
|
|
};
|
|
return _ParseAST;
|
|
})();
|
|
exports._ParseAST = _ParseAST;
|
|
var SimpleExpressionChecker = (function() {
|
|
function SimpleExpressionChecker() {
|
|
this.simple = true;
|
|
}
|
|
SimpleExpressionChecker.check = function(ast) {
|
|
var s = new SimpleExpressionChecker();
|
|
ast.visit(s);
|
|
return s.simple;
|
|
};
|
|
SimpleExpressionChecker.prototype.visitImplicitReceiver = function(ast) {};
|
|
SimpleExpressionChecker.prototype.visitInterpolation = function(ast) {
|
|
this.simple = false;
|
|
};
|
|
SimpleExpressionChecker.prototype.visitLiteralPrimitive = function(ast) {};
|
|
SimpleExpressionChecker.prototype.visitPropertyRead = function(ast) {};
|
|
SimpleExpressionChecker.prototype.visitPropertyWrite = function(ast) {
|
|
this.simple = false;
|
|
};
|
|
SimpleExpressionChecker.prototype.visitSafePropertyRead = function(ast) {
|
|
this.simple = false;
|
|
};
|
|
SimpleExpressionChecker.prototype.visitMethodCall = function(ast) {
|
|
this.simple = false;
|
|
};
|
|
SimpleExpressionChecker.prototype.visitSafeMethodCall = function(ast) {
|
|
this.simple = false;
|
|
};
|
|
SimpleExpressionChecker.prototype.visitFunctionCall = function(ast) {
|
|
this.simple = false;
|
|
};
|
|
SimpleExpressionChecker.prototype.visitLiteralArray = function(ast) {
|
|
this.visitAll(ast.expressions);
|
|
};
|
|
SimpleExpressionChecker.prototype.visitLiteralMap = function(ast) {
|
|
this.visitAll(ast.values);
|
|
};
|
|
SimpleExpressionChecker.prototype.visitBinary = function(ast) {
|
|
this.simple = false;
|
|
};
|
|
SimpleExpressionChecker.prototype.visitPrefixNot = function(ast) {
|
|
this.simple = false;
|
|
};
|
|
SimpleExpressionChecker.prototype.visitConditional = function(ast) {
|
|
this.simple = false;
|
|
};
|
|
SimpleExpressionChecker.prototype.visitPipe = function(ast) {
|
|
this.simple = false;
|
|
};
|
|
SimpleExpressionChecker.prototype.visitKeyedRead = function(ast) {
|
|
this.simple = false;
|
|
};
|
|
SimpleExpressionChecker.prototype.visitKeyedWrite = function(ast) {
|
|
this.simple = false;
|
|
};
|
|
SimpleExpressionChecker.prototype.visitAll = function(asts) {
|
|
var res = collection_1.ListWrapper.createFixedSize(asts.length);
|
|
for (var i = 0; i < asts.length; ++i) {
|
|
res[i] = asts[i].visit(this);
|
|
}
|
|
return res;
|
|
};
|
|
SimpleExpressionChecker.prototype.visitChain = function(ast) {
|
|
this.simple = false;
|
|
};
|
|
SimpleExpressionChecker.prototype.visitQuote = function(ast) {
|
|
this.simple = false;
|
|
};
|
|
return SimpleExpressionChecker;
|
|
})();
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/change_detection/parser/locals", ["angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/facade/collection"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var Locals = (function() {
|
|
function Locals(parent, current) {
|
|
this.parent = parent;
|
|
this.current = current;
|
|
}
|
|
Locals.prototype.contains = function(name) {
|
|
if (this.current.has(name)) {
|
|
return true;
|
|
}
|
|
if (lang_1.isPresent(this.parent)) {
|
|
return this.parent.contains(name);
|
|
}
|
|
return false;
|
|
};
|
|
Locals.prototype.get = function(name) {
|
|
if (this.current.has(name)) {
|
|
return this.current.get(name);
|
|
}
|
|
if (lang_1.isPresent(this.parent)) {
|
|
return this.parent.get(name);
|
|
}
|
|
throw new exceptions_1.BaseException("Cannot find '" + name + "'");
|
|
};
|
|
Locals.prototype.set = function(name, value) {
|
|
if (this.current.has(name)) {
|
|
this.current.set(name, value);
|
|
} else {
|
|
throw new exceptions_1.BaseException("Setting of new keys post-construction is not supported. Key: " + name + ".");
|
|
}
|
|
};
|
|
Locals.prototype.clearLocalValues = function() {
|
|
collection_1.MapWrapper.clearValues(this.current);
|
|
};
|
|
return Locals;
|
|
})();
|
|
exports.Locals = Locals;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/change_detection/exceptions", ["angular2/src/facade/exceptions"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var ExpressionChangedAfterItHasBeenCheckedException = (function(_super) {
|
|
__extends(ExpressionChangedAfterItHasBeenCheckedException, _super);
|
|
function ExpressionChangedAfterItHasBeenCheckedException(exp, oldValue, currValue, context) {
|
|
_super.call(this, ("Expression '" + exp + "' has changed after it was checked. ") + ("Previous value: '" + oldValue + "'. Current value: '" + currValue + "'"));
|
|
}
|
|
return ExpressionChangedAfterItHasBeenCheckedException;
|
|
})(exceptions_1.BaseException);
|
|
exports.ExpressionChangedAfterItHasBeenCheckedException = ExpressionChangedAfterItHasBeenCheckedException;
|
|
var ChangeDetectionError = (function(_super) {
|
|
__extends(ChangeDetectionError, _super);
|
|
function ChangeDetectionError(exp, originalException, originalStack, context) {
|
|
_super.call(this, originalException + " in [" + exp + "]", originalException, originalStack, context);
|
|
this.location = exp;
|
|
}
|
|
return ChangeDetectionError;
|
|
})(exceptions_1.WrappedException);
|
|
exports.ChangeDetectionError = ChangeDetectionError;
|
|
var DehydratedException = (function(_super) {
|
|
__extends(DehydratedException, _super);
|
|
function DehydratedException(details) {
|
|
_super.call(this, "Attempt to use a dehydrated detector: " + details);
|
|
}
|
|
return DehydratedException;
|
|
})(exceptions_1.BaseException);
|
|
exports.DehydratedException = DehydratedException;
|
|
var EventEvaluationError = (function(_super) {
|
|
__extends(EventEvaluationError, _super);
|
|
function EventEvaluationError(eventName, originalException, originalStack, context) {
|
|
_super.call(this, "Error during evaluation of \"" + eventName + "\"", originalException, originalStack, context);
|
|
}
|
|
return EventEvaluationError;
|
|
})(exceptions_1.WrappedException);
|
|
exports.EventEvaluationError = EventEvaluationError;
|
|
var EventEvaluationErrorContext = (function() {
|
|
function EventEvaluationErrorContext(element, componentElement, context, locals, injector) {
|
|
this.element = element;
|
|
this.componentElement = componentElement;
|
|
this.context = context;
|
|
this.locals = locals;
|
|
this.injector = injector;
|
|
}
|
|
return EventEvaluationErrorContext;
|
|
})();
|
|
exports.EventEvaluationErrorContext = EventEvaluationErrorContext;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/change_detection/interfaces", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var DebugContext = (function() {
|
|
function DebugContext(element, componentElement, directive, context, locals, injector) {
|
|
this.element = element;
|
|
this.componentElement = componentElement;
|
|
this.directive = directive;
|
|
this.context = context;
|
|
this.locals = locals;
|
|
this.injector = injector;
|
|
}
|
|
return DebugContext;
|
|
})();
|
|
exports.DebugContext = DebugContext;
|
|
var ChangeDetectorGenConfig = (function() {
|
|
function ChangeDetectorGenConfig(genDebugInfo, logBindingUpdate, useJit) {
|
|
this.genDebugInfo = genDebugInfo;
|
|
this.logBindingUpdate = logBindingUpdate;
|
|
this.useJit = useJit;
|
|
}
|
|
return ChangeDetectorGenConfig;
|
|
})();
|
|
exports.ChangeDetectorGenConfig = ChangeDetectorGenConfig;
|
|
var ChangeDetectorDefinition = (function() {
|
|
function ChangeDetectorDefinition(id, strategy, variableNames, bindingRecords, eventRecords, directiveRecords, genConfig) {
|
|
this.id = id;
|
|
this.strategy = strategy;
|
|
this.variableNames = variableNames;
|
|
this.bindingRecords = bindingRecords;
|
|
this.eventRecords = eventRecords;
|
|
this.directiveRecords = directiveRecords;
|
|
this.genConfig = genConfig;
|
|
}
|
|
return ChangeDetectorDefinition;
|
|
})();
|
|
exports.ChangeDetectorDefinition = ChangeDetectorDefinition;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/change_detection/constants", ["angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
(function(ChangeDetectorState) {
|
|
ChangeDetectorState[ChangeDetectorState["NeverChecked"] = 0] = "NeverChecked";
|
|
ChangeDetectorState[ChangeDetectorState["CheckedBefore"] = 1] = "CheckedBefore";
|
|
ChangeDetectorState[ChangeDetectorState["Errored"] = 2] = "Errored";
|
|
})(exports.ChangeDetectorState || (exports.ChangeDetectorState = {}));
|
|
var ChangeDetectorState = exports.ChangeDetectorState;
|
|
(function(ChangeDetectionStrategy) {
|
|
ChangeDetectionStrategy[ChangeDetectionStrategy["CheckOnce"] = 0] = "CheckOnce";
|
|
ChangeDetectionStrategy[ChangeDetectionStrategy["Checked"] = 1] = "Checked";
|
|
ChangeDetectionStrategy[ChangeDetectionStrategy["CheckAlways"] = 2] = "CheckAlways";
|
|
ChangeDetectionStrategy[ChangeDetectionStrategy["Detached"] = 3] = "Detached";
|
|
ChangeDetectionStrategy[ChangeDetectionStrategy["OnPush"] = 4] = "OnPush";
|
|
ChangeDetectionStrategy[ChangeDetectionStrategy["Default"] = 5] = "Default";
|
|
})(exports.ChangeDetectionStrategy || (exports.ChangeDetectionStrategy = {}));
|
|
var ChangeDetectionStrategy = exports.ChangeDetectionStrategy;
|
|
exports.CHANGE_DETECTION_STRATEGY_VALUES = [ChangeDetectionStrategy.CheckOnce, ChangeDetectionStrategy.Checked, ChangeDetectionStrategy.CheckAlways, ChangeDetectionStrategy.Detached, ChangeDetectionStrategy.OnPush, ChangeDetectionStrategy.Default];
|
|
exports.CHANGE_DETECTOR_STATE_VALUES = [ChangeDetectorState.NeverChecked, ChangeDetectorState.CheckedBefore, ChangeDetectorState.Errored];
|
|
function isDefaultChangeDetectionStrategy(changeDetectionStrategy) {
|
|
return lang_1.isBlank(changeDetectionStrategy) || changeDetectionStrategy === ChangeDetectionStrategy.Default;
|
|
}
|
|
exports.isDefaultChangeDetectionStrategy = isDefaultChangeDetectionStrategy;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/change_detection/pipe_lifecycle_reflector", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
function implementsOnDestroy(pipe) {
|
|
return pipe.constructor.prototype.ngOnDestroy;
|
|
}
|
|
exports.implementsOnDestroy = implementsOnDestroy;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/change_detection/binding_record", ["angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var DIRECTIVE_LIFECYCLE = "directiveLifecycle";
|
|
var BINDING = "native";
|
|
var DIRECTIVE = "directive";
|
|
var ELEMENT_PROPERTY = "elementProperty";
|
|
var ELEMENT_ATTRIBUTE = "elementAttribute";
|
|
var ELEMENT_CLASS = "elementClass";
|
|
var ELEMENT_STYLE = "elementStyle";
|
|
var TEXT_NODE = "textNode";
|
|
var EVENT = "event";
|
|
var HOST_EVENT = "hostEvent";
|
|
var BindingTarget = (function() {
|
|
function BindingTarget(mode, elementIndex, name, unit, debug) {
|
|
this.mode = mode;
|
|
this.elementIndex = elementIndex;
|
|
this.name = name;
|
|
this.unit = unit;
|
|
this.debug = debug;
|
|
}
|
|
BindingTarget.prototype.isDirective = function() {
|
|
return this.mode === DIRECTIVE;
|
|
};
|
|
BindingTarget.prototype.isElementProperty = function() {
|
|
return this.mode === ELEMENT_PROPERTY;
|
|
};
|
|
BindingTarget.prototype.isElementAttribute = function() {
|
|
return this.mode === ELEMENT_ATTRIBUTE;
|
|
};
|
|
BindingTarget.prototype.isElementClass = function() {
|
|
return this.mode === ELEMENT_CLASS;
|
|
};
|
|
BindingTarget.prototype.isElementStyle = function() {
|
|
return this.mode === ELEMENT_STYLE;
|
|
};
|
|
BindingTarget.prototype.isTextNode = function() {
|
|
return this.mode === TEXT_NODE;
|
|
};
|
|
return BindingTarget;
|
|
})();
|
|
exports.BindingTarget = BindingTarget;
|
|
var BindingRecord = (function() {
|
|
function BindingRecord(mode, target, implicitReceiver, ast, setter, lifecycleEvent, directiveRecord) {
|
|
this.mode = mode;
|
|
this.target = target;
|
|
this.implicitReceiver = implicitReceiver;
|
|
this.ast = ast;
|
|
this.setter = setter;
|
|
this.lifecycleEvent = lifecycleEvent;
|
|
this.directiveRecord = directiveRecord;
|
|
}
|
|
BindingRecord.prototype.isDirectiveLifecycle = function() {
|
|
return this.mode === DIRECTIVE_LIFECYCLE;
|
|
};
|
|
BindingRecord.prototype.callOnChanges = function() {
|
|
return lang_1.isPresent(this.directiveRecord) && this.directiveRecord.callOnChanges;
|
|
};
|
|
BindingRecord.prototype.isDefaultChangeDetection = function() {
|
|
return lang_1.isBlank(this.directiveRecord) || this.directiveRecord.isDefaultChangeDetection();
|
|
};
|
|
BindingRecord.createDirectiveDoCheck = function(directiveRecord) {
|
|
return new BindingRecord(DIRECTIVE_LIFECYCLE, null, 0, null, null, "DoCheck", directiveRecord);
|
|
};
|
|
BindingRecord.createDirectiveOnInit = function(directiveRecord) {
|
|
return new BindingRecord(DIRECTIVE_LIFECYCLE, null, 0, null, null, "OnInit", directiveRecord);
|
|
};
|
|
BindingRecord.createDirectiveOnChanges = function(directiveRecord) {
|
|
return new BindingRecord(DIRECTIVE_LIFECYCLE, null, 0, null, null, "OnChanges", directiveRecord);
|
|
};
|
|
BindingRecord.createForDirective = function(ast, propertyName, setter, directiveRecord) {
|
|
var elementIndex = directiveRecord.directiveIndex.elementIndex;
|
|
var t = new BindingTarget(DIRECTIVE, elementIndex, propertyName, null, ast.toString());
|
|
return new BindingRecord(DIRECTIVE, t, 0, ast, setter, null, directiveRecord);
|
|
};
|
|
BindingRecord.createForElementProperty = function(ast, elementIndex, propertyName) {
|
|
var t = new BindingTarget(ELEMENT_PROPERTY, elementIndex, propertyName, null, ast.toString());
|
|
return new BindingRecord(BINDING, t, 0, ast, null, null, null);
|
|
};
|
|
BindingRecord.createForElementAttribute = function(ast, elementIndex, attributeName) {
|
|
var t = new BindingTarget(ELEMENT_ATTRIBUTE, elementIndex, attributeName, null, ast.toString());
|
|
return new BindingRecord(BINDING, t, 0, ast, null, null, null);
|
|
};
|
|
BindingRecord.createForElementClass = function(ast, elementIndex, className) {
|
|
var t = new BindingTarget(ELEMENT_CLASS, elementIndex, className, null, ast.toString());
|
|
return new BindingRecord(BINDING, t, 0, ast, null, null, null);
|
|
};
|
|
BindingRecord.createForElementStyle = function(ast, elementIndex, styleName, unit) {
|
|
var t = new BindingTarget(ELEMENT_STYLE, elementIndex, styleName, unit, ast.toString());
|
|
return new BindingRecord(BINDING, t, 0, ast, null, null, null);
|
|
};
|
|
BindingRecord.createForHostProperty = function(directiveIndex, ast, propertyName) {
|
|
var t = new BindingTarget(ELEMENT_PROPERTY, directiveIndex.elementIndex, propertyName, null, ast.toString());
|
|
return new BindingRecord(BINDING, t, directiveIndex, ast, null, null, null);
|
|
};
|
|
BindingRecord.createForHostAttribute = function(directiveIndex, ast, attributeName) {
|
|
var t = new BindingTarget(ELEMENT_ATTRIBUTE, directiveIndex.elementIndex, attributeName, null, ast.toString());
|
|
return new BindingRecord(BINDING, t, directiveIndex, ast, null, null, null);
|
|
};
|
|
BindingRecord.createForHostClass = function(directiveIndex, ast, className) {
|
|
var t = new BindingTarget(ELEMENT_CLASS, directiveIndex.elementIndex, className, null, ast.toString());
|
|
return new BindingRecord(BINDING, t, directiveIndex, ast, null, null, null);
|
|
};
|
|
BindingRecord.createForHostStyle = function(directiveIndex, ast, styleName, unit) {
|
|
var t = new BindingTarget(ELEMENT_STYLE, directiveIndex.elementIndex, styleName, unit, ast.toString());
|
|
return new BindingRecord(BINDING, t, directiveIndex, ast, null, null, null);
|
|
};
|
|
BindingRecord.createForTextNode = function(ast, elementIndex) {
|
|
var t = new BindingTarget(TEXT_NODE, elementIndex, null, null, ast.toString());
|
|
return new BindingRecord(BINDING, t, 0, ast, null, null, null);
|
|
};
|
|
BindingRecord.createForEvent = function(ast, eventName, elementIndex) {
|
|
var t = new BindingTarget(EVENT, elementIndex, eventName, null, ast.toString());
|
|
return new BindingRecord(EVENT, t, 0, ast, null, null, null);
|
|
};
|
|
BindingRecord.createForHostEvent = function(ast, eventName, directiveRecord) {
|
|
var directiveIndex = directiveRecord.directiveIndex;
|
|
var t = new BindingTarget(HOST_EVENT, directiveIndex.elementIndex, eventName, null, ast.toString());
|
|
return new BindingRecord(HOST_EVENT, t, directiveIndex, ast, null, null, directiveRecord);
|
|
};
|
|
return BindingRecord;
|
|
})();
|
|
exports.BindingRecord = BindingRecord;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/change_detection/directive_record", ["angular2/src/facade/lang", "angular2/src/core/change_detection/constants"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var constants_1 = require("angular2/src/core/change_detection/constants");
|
|
var DirectiveIndex = (function() {
|
|
function DirectiveIndex(elementIndex, directiveIndex) {
|
|
this.elementIndex = elementIndex;
|
|
this.directiveIndex = directiveIndex;
|
|
}
|
|
Object.defineProperty(DirectiveIndex.prototype, "name", {
|
|
get: function() {
|
|
return this.elementIndex + "_" + this.directiveIndex;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
return DirectiveIndex;
|
|
})();
|
|
exports.DirectiveIndex = DirectiveIndex;
|
|
var DirectiveRecord = (function() {
|
|
function DirectiveRecord(_a) {
|
|
var _b = _a === void 0 ? {} : _a,
|
|
directiveIndex = _b.directiveIndex,
|
|
callAfterContentInit = _b.callAfterContentInit,
|
|
callAfterContentChecked = _b.callAfterContentChecked,
|
|
callAfterViewInit = _b.callAfterViewInit,
|
|
callAfterViewChecked = _b.callAfterViewChecked,
|
|
callOnChanges = _b.callOnChanges,
|
|
callDoCheck = _b.callDoCheck,
|
|
callOnInit = _b.callOnInit,
|
|
callOnDestroy = _b.callOnDestroy,
|
|
changeDetection = _b.changeDetection,
|
|
outputs = _b.outputs;
|
|
this.directiveIndex = directiveIndex;
|
|
this.callAfterContentInit = lang_1.normalizeBool(callAfterContentInit);
|
|
this.callAfterContentChecked = lang_1.normalizeBool(callAfterContentChecked);
|
|
this.callOnChanges = lang_1.normalizeBool(callOnChanges);
|
|
this.callAfterViewInit = lang_1.normalizeBool(callAfterViewInit);
|
|
this.callAfterViewChecked = lang_1.normalizeBool(callAfterViewChecked);
|
|
this.callDoCheck = lang_1.normalizeBool(callDoCheck);
|
|
this.callOnInit = lang_1.normalizeBool(callOnInit);
|
|
this.callOnDestroy = lang_1.normalizeBool(callOnDestroy);
|
|
this.changeDetection = changeDetection;
|
|
this.outputs = outputs;
|
|
}
|
|
DirectiveRecord.prototype.isDefaultChangeDetection = function() {
|
|
return constants_1.isDefaultChangeDetectionStrategy(this.changeDetection);
|
|
};
|
|
return DirectiveRecord;
|
|
})();
|
|
exports.DirectiveRecord = DirectiveRecord;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/change_detection/change_detector_ref", ["angular2/src/core/change_detection/constants"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var constants_1 = require("angular2/src/core/change_detection/constants");
|
|
var ChangeDetectorRef = (function() {
|
|
function ChangeDetectorRef() {}
|
|
return ChangeDetectorRef;
|
|
})();
|
|
exports.ChangeDetectorRef = ChangeDetectorRef;
|
|
var ChangeDetectorRef_ = (function(_super) {
|
|
__extends(ChangeDetectorRef_, _super);
|
|
function ChangeDetectorRef_(_cd) {
|
|
_super.call(this);
|
|
this._cd = _cd;
|
|
}
|
|
ChangeDetectorRef_.prototype.markForCheck = function() {
|
|
this._cd.markPathToRootAsCheckOnce();
|
|
};
|
|
ChangeDetectorRef_.prototype.detach = function() {
|
|
this._cd.mode = constants_1.ChangeDetectionStrategy.Detached;
|
|
};
|
|
ChangeDetectorRef_.prototype.detectChanges = function() {
|
|
this._cd.detectChanges();
|
|
};
|
|
ChangeDetectorRef_.prototype.checkNoChanges = function() {
|
|
this._cd.checkNoChanges();
|
|
};
|
|
ChangeDetectorRef_.prototype.reattach = function() {
|
|
this._cd.mode = constants_1.ChangeDetectionStrategy.CheckAlways;
|
|
this.markForCheck();
|
|
};
|
|
return ChangeDetectorRef_;
|
|
})(ChangeDetectorRef);
|
|
exports.ChangeDetectorRef_ = ChangeDetectorRef_;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/profile/wtf_impl", ["angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var trace;
|
|
var events;
|
|
function detectWTF() {
|
|
var wtf = lang_1.global['wtf'];
|
|
if (wtf) {
|
|
trace = wtf['trace'];
|
|
if (trace) {
|
|
events = trace['events'];
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
exports.detectWTF = detectWTF;
|
|
function createScope(signature, flags) {
|
|
if (flags === void 0) {
|
|
flags = null;
|
|
}
|
|
return events.createScope(signature, flags);
|
|
}
|
|
exports.createScope = createScope;
|
|
function leave(scope, returnValue) {
|
|
trace.leaveScope(scope, returnValue);
|
|
return returnValue;
|
|
}
|
|
exports.leave = leave;
|
|
function startTimeRange(rangeType, action) {
|
|
return trace.beginTimeRange(rangeType, action);
|
|
}
|
|
exports.startTimeRange = startTimeRange;
|
|
function endTimeRange(range) {
|
|
trace.endTimeRange(range);
|
|
}
|
|
exports.endTimeRange = endTimeRange;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/change_detection/proto_record", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
(function(RecordType) {
|
|
RecordType[RecordType["Self"] = 0] = "Self";
|
|
RecordType[RecordType["Const"] = 1] = "Const";
|
|
RecordType[RecordType["PrimitiveOp"] = 2] = "PrimitiveOp";
|
|
RecordType[RecordType["PropertyRead"] = 3] = "PropertyRead";
|
|
RecordType[RecordType["PropertyWrite"] = 4] = "PropertyWrite";
|
|
RecordType[RecordType["Local"] = 5] = "Local";
|
|
RecordType[RecordType["InvokeMethod"] = 6] = "InvokeMethod";
|
|
RecordType[RecordType["InvokeClosure"] = 7] = "InvokeClosure";
|
|
RecordType[RecordType["KeyedRead"] = 8] = "KeyedRead";
|
|
RecordType[RecordType["KeyedWrite"] = 9] = "KeyedWrite";
|
|
RecordType[RecordType["Pipe"] = 10] = "Pipe";
|
|
RecordType[RecordType["Interpolate"] = 11] = "Interpolate";
|
|
RecordType[RecordType["SafeProperty"] = 12] = "SafeProperty";
|
|
RecordType[RecordType["CollectionLiteral"] = 13] = "CollectionLiteral";
|
|
RecordType[RecordType["SafeMethodInvoke"] = 14] = "SafeMethodInvoke";
|
|
RecordType[RecordType["DirectiveLifecycle"] = 15] = "DirectiveLifecycle";
|
|
RecordType[RecordType["Chain"] = 16] = "Chain";
|
|
RecordType[RecordType["SkipRecordsIf"] = 17] = "SkipRecordsIf";
|
|
RecordType[RecordType["SkipRecordsIfNot"] = 18] = "SkipRecordsIfNot";
|
|
RecordType[RecordType["SkipRecords"] = 19] = "SkipRecords";
|
|
})(exports.RecordType || (exports.RecordType = {}));
|
|
var RecordType = exports.RecordType;
|
|
var ProtoRecord = (function() {
|
|
function ProtoRecord(mode, name, funcOrValue, args, fixedArgs, contextIndex, directiveIndex, selfIndex, bindingRecord, lastInBinding, lastInDirective, argumentToPureFunction, referencedBySelf, propertyBindingIndex) {
|
|
this.mode = mode;
|
|
this.name = name;
|
|
this.funcOrValue = funcOrValue;
|
|
this.args = args;
|
|
this.fixedArgs = fixedArgs;
|
|
this.contextIndex = contextIndex;
|
|
this.directiveIndex = directiveIndex;
|
|
this.selfIndex = selfIndex;
|
|
this.bindingRecord = bindingRecord;
|
|
this.lastInBinding = lastInBinding;
|
|
this.lastInDirective = lastInDirective;
|
|
this.argumentToPureFunction = argumentToPureFunction;
|
|
this.referencedBySelf = referencedBySelf;
|
|
this.propertyBindingIndex = propertyBindingIndex;
|
|
}
|
|
ProtoRecord.prototype.isPureFunction = function() {
|
|
return this.mode === RecordType.Interpolate || this.mode === RecordType.CollectionLiteral;
|
|
};
|
|
ProtoRecord.prototype.isUsedByOtherRecord = function() {
|
|
return !this.lastInBinding || this.referencedBySelf;
|
|
};
|
|
ProtoRecord.prototype.shouldBeChecked = function() {
|
|
return this.argumentToPureFunction || this.lastInBinding || this.isPureFunction() || this.isPipeRecord();
|
|
};
|
|
ProtoRecord.prototype.isPipeRecord = function() {
|
|
return this.mode === RecordType.Pipe;
|
|
};
|
|
ProtoRecord.prototype.isConditionalSkipRecord = function() {
|
|
return this.mode === RecordType.SkipRecordsIfNot || this.mode === RecordType.SkipRecordsIf;
|
|
};
|
|
ProtoRecord.prototype.isUnconditionalSkipRecord = function() {
|
|
return this.mode === RecordType.SkipRecords;
|
|
};
|
|
ProtoRecord.prototype.isSkipRecord = function() {
|
|
return this.isConditionalSkipRecord() || this.isUnconditionalSkipRecord();
|
|
};
|
|
ProtoRecord.prototype.isLifeCycleRecord = function() {
|
|
return this.mode === RecordType.DirectiveLifecycle;
|
|
};
|
|
return ProtoRecord;
|
|
})();
|
|
exports.ProtoRecord = ProtoRecord;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/change_detection/event_binding", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var EventBinding = (function() {
|
|
function EventBinding(eventName, elIndex, dirIndex, records) {
|
|
this.eventName = eventName;
|
|
this.elIndex = elIndex;
|
|
this.dirIndex = dirIndex;
|
|
this.records = records;
|
|
}
|
|
return EventBinding;
|
|
})();
|
|
exports.EventBinding = EventBinding;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/change_detection/coalesce", ["angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/core/change_detection/proto_record"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var proto_record_1 = require("angular2/src/core/change_detection/proto_record");
|
|
function coalesce(srcRecords) {
|
|
var dstRecords = [];
|
|
var excludedIdxs = [];
|
|
var indexMap = new collection_1.Map();
|
|
var skipDepth = 0;
|
|
var skipSources = collection_1.ListWrapper.createFixedSize(srcRecords.length);
|
|
for (var protoIndex = 0; protoIndex < srcRecords.length; protoIndex++) {
|
|
var skipRecord = skipSources[protoIndex];
|
|
if (lang_1.isPresent(skipRecord)) {
|
|
skipDepth--;
|
|
skipRecord.fixedArgs[0] = dstRecords.length;
|
|
}
|
|
var src = srcRecords[protoIndex];
|
|
var dst = _cloneAndUpdateIndexes(src, dstRecords, indexMap);
|
|
if (dst.isSkipRecord()) {
|
|
dstRecords.push(dst);
|
|
skipDepth++;
|
|
skipSources[dst.fixedArgs[0]] = dst;
|
|
} else {
|
|
var record = _mayBeAddRecord(dst, dstRecords, excludedIdxs, skipDepth > 0);
|
|
indexMap.set(src.selfIndex, record.selfIndex);
|
|
}
|
|
}
|
|
return _optimizeSkips(dstRecords);
|
|
}
|
|
exports.coalesce = coalesce;
|
|
function _optimizeSkips(srcRecords) {
|
|
var dstRecords = [];
|
|
var skipSources = collection_1.ListWrapper.createFixedSize(srcRecords.length);
|
|
var indexMap = new collection_1.Map();
|
|
for (var protoIndex = 0; protoIndex < srcRecords.length; protoIndex++) {
|
|
var skipRecord = skipSources[protoIndex];
|
|
if (lang_1.isPresent(skipRecord)) {
|
|
skipRecord.fixedArgs[0] = dstRecords.length;
|
|
}
|
|
var src = srcRecords[protoIndex];
|
|
if (src.isSkipRecord()) {
|
|
if (src.isConditionalSkipRecord() && src.fixedArgs[0] === protoIndex + 2 && protoIndex < srcRecords.length - 1 && srcRecords[protoIndex + 1].mode === proto_record_1.RecordType.SkipRecords) {
|
|
src.mode = src.mode === proto_record_1.RecordType.SkipRecordsIf ? proto_record_1.RecordType.SkipRecordsIfNot : proto_record_1.RecordType.SkipRecordsIf;
|
|
src.fixedArgs[0] = srcRecords[protoIndex + 1].fixedArgs[0];
|
|
protoIndex++;
|
|
}
|
|
if (src.fixedArgs[0] > protoIndex + 1) {
|
|
var dst = _cloneAndUpdateIndexes(src, dstRecords, indexMap);
|
|
dstRecords.push(dst);
|
|
skipSources[dst.fixedArgs[0]] = dst;
|
|
}
|
|
} else {
|
|
var dst = _cloneAndUpdateIndexes(src, dstRecords, indexMap);
|
|
dstRecords.push(dst);
|
|
indexMap.set(src.selfIndex, dst.selfIndex);
|
|
}
|
|
}
|
|
return dstRecords;
|
|
}
|
|
function _mayBeAddRecord(record, dstRecords, excludedIdxs, excluded) {
|
|
var match = _findFirstMatch(record, dstRecords, excludedIdxs);
|
|
if (lang_1.isPresent(match)) {
|
|
if (record.lastInBinding) {
|
|
dstRecords.push(_createSelfRecord(record, match.selfIndex, dstRecords.length + 1));
|
|
match.referencedBySelf = true;
|
|
} else {
|
|
if (record.argumentToPureFunction) {
|
|
match.argumentToPureFunction = true;
|
|
}
|
|
}
|
|
return match;
|
|
}
|
|
if (excluded) {
|
|
excludedIdxs.push(record.selfIndex);
|
|
}
|
|
dstRecords.push(record);
|
|
return record;
|
|
}
|
|
function _findFirstMatch(record, dstRecords, excludedIdxs) {
|
|
return dstRecords.find(function(rr) {
|
|
return excludedIdxs.indexOf(rr.selfIndex) == -1 && rr.mode !== proto_record_1.RecordType.DirectiveLifecycle && _haveSameDirIndex(rr, record) && rr.mode === record.mode && lang_1.looseIdentical(rr.funcOrValue, record.funcOrValue) && rr.contextIndex === record.contextIndex && lang_1.looseIdentical(rr.name, record.name) && collection_1.ListWrapper.equals(rr.args, record.args);
|
|
});
|
|
}
|
|
function _cloneAndUpdateIndexes(record, dstRecords, indexMap) {
|
|
var args = record.args.map(function(src) {
|
|
return _srcToDstSelfIndex(indexMap, src);
|
|
});
|
|
var contextIndex = _srcToDstSelfIndex(indexMap, record.contextIndex);
|
|
var selfIndex = dstRecords.length + 1;
|
|
return new proto_record_1.ProtoRecord(record.mode, record.name, record.funcOrValue, args, record.fixedArgs, contextIndex, record.directiveIndex, selfIndex, record.bindingRecord, record.lastInBinding, record.lastInDirective, record.argumentToPureFunction, record.referencedBySelf, record.propertyBindingIndex);
|
|
}
|
|
function _srcToDstSelfIndex(indexMap, srcIdx) {
|
|
var dstIdx = indexMap.get(srcIdx);
|
|
return lang_1.isPresent(dstIdx) ? dstIdx : srcIdx;
|
|
}
|
|
function _createSelfRecord(r, contextIndex, selfIndex) {
|
|
return new proto_record_1.ProtoRecord(proto_record_1.RecordType.Self, "self", null, [], r.fixedArgs, contextIndex, r.directiveIndex, selfIndex, r.bindingRecord, r.lastInBinding, r.lastInDirective, false, false, r.propertyBindingIndex);
|
|
}
|
|
function _haveSameDirIndex(a, b) {
|
|
var di1 = lang_1.isBlank(a.directiveIndex) ? null : a.directiveIndex.directiveIndex;
|
|
var ei1 = lang_1.isBlank(a.directiveIndex) ? null : a.directiveIndex.elementIndex;
|
|
var di2 = lang_1.isBlank(b.directiveIndex) ? null : b.directiveIndex.directiveIndex;
|
|
var ei2 = lang_1.isBlank(b.directiveIndex) ? null : b.directiveIndex.elementIndex;
|
|
return di1 === di2 && ei1 === ei2;
|
|
}
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/change_detection/codegen_name_util", ["angular2/src/facade/lang", "angular2/src/facade/collection"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var _STATE_ACCESSOR = "state";
|
|
var _CONTEXT_ACCESSOR = "context";
|
|
var _PROP_BINDING_INDEX = "propertyBindingIndex";
|
|
var _DIRECTIVES_ACCESSOR = "directiveIndices";
|
|
var _DISPATCHER_ACCESSOR = "dispatcher";
|
|
var _LOCALS_ACCESSOR = "locals";
|
|
var _MODE_ACCESSOR = "mode";
|
|
var _PIPES_ACCESSOR = "pipes";
|
|
var _PROTOS_ACCESSOR = "protos";
|
|
exports.CONTEXT_ACCESSOR = "context";
|
|
exports.CONTEXT_INDEX = 0;
|
|
var _FIELD_PREFIX = 'this.';
|
|
var _whiteSpaceRegExp = /\W/g;
|
|
function sanitizeName(s) {
|
|
return lang_1.StringWrapper.replaceAll(s, _whiteSpaceRegExp, '');
|
|
}
|
|
exports.sanitizeName = sanitizeName;
|
|
var CodegenNameUtil = (function() {
|
|
function CodegenNameUtil(_records, _eventBindings, _directiveRecords, _utilName) {
|
|
this._records = _records;
|
|
this._eventBindings = _eventBindings;
|
|
this._directiveRecords = _directiveRecords;
|
|
this._utilName = _utilName;
|
|
this._sanitizedEventNames = new collection_1.Map();
|
|
this._sanitizedNames = collection_1.ListWrapper.createFixedSize(this._records.length + 1);
|
|
this._sanitizedNames[exports.CONTEXT_INDEX] = exports.CONTEXT_ACCESSOR;
|
|
for (var i = 0,
|
|
iLen = this._records.length; i < iLen; ++i) {
|
|
this._sanitizedNames[i + 1] = sanitizeName("" + this._records[i].name + i);
|
|
}
|
|
for (var ebIndex = 0; ebIndex < _eventBindings.length; ++ebIndex) {
|
|
var eb = _eventBindings[ebIndex];
|
|
var names = [exports.CONTEXT_ACCESSOR];
|
|
for (var i = 0,
|
|
iLen = eb.records.length; i < iLen; ++i) {
|
|
names.push(sanitizeName("" + eb.records[i].name + i + "_" + ebIndex));
|
|
}
|
|
this._sanitizedEventNames.set(eb, names);
|
|
}
|
|
}
|
|
CodegenNameUtil.prototype._addFieldPrefix = function(name) {
|
|
return "" + _FIELD_PREFIX + name;
|
|
};
|
|
CodegenNameUtil.prototype.getDispatcherName = function() {
|
|
return this._addFieldPrefix(_DISPATCHER_ACCESSOR);
|
|
};
|
|
CodegenNameUtil.prototype.getPipesAccessorName = function() {
|
|
return this._addFieldPrefix(_PIPES_ACCESSOR);
|
|
};
|
|
CodegenNameUtil.prototype.getProtosName = function() {
|
|
return this._addFieldPrefix(_PROTOS_ACCESSOR);
|
|
};
|
|
CodegenNameUtil.prototype.getDirectivesAccessorName = function() {
|
|
return this._addFieldPrefix(_DIRECTIVES_ACCESSOR);
|
|
};
|
|
CodegenNameUtil.prototype.getLocalsAccessorName = function() {
|
|
return this._addFieldPrefix(_LOCALS_ACCESSOR);
|
|
};
|
|
CodegenNameUtil.prototype.getStateName = function() {
|
|
return this._addFieldPrefix(_STATE_ACCESSOR);
|
|
};
|
|
CodegenNameUtil.prototype.getModeName = function() {
|
|
return this._addFieldPrefix(_MODE_ACCESSOR);
|
|
};
|
|
CodegenNameUtil.prototype.getPropertyBindingIndex = function() {
|
|
return this._addFieldPrefix(_PROP_BINDING_INDEX);
|
|
};
|
|
CodegenNameUtil.prototype.getLocalName = function(idx) {
|
|
return "l_" + this._sanitizedNames[idx];
|
|
};
|
|
CodegenNameUtil.prototype.getEventLocalName = function(eb, idx) {
|
|
return "l_" + this._sanitizedEventNames.get(eb)[idx];
|
|
};
|
|
CodegenNameUtil.prototype.getChangeName = function(idx) {
|
|
return "c_" + this._sanitizedNames[idx];
|
|
};
|
|
CodegenNameUtil.prototype.genInitLocals = function() {
|
|
var declarations = [];
|
|
var assignments = [];
|
|
for (var i = 0,
|
|
iLen = this.getFieldCount(); i < iLen; ++i) {
|
|
if (i == exports.CONTEXT_INDEX) {
|
|
declarations.push(this.getLocalName(i) + " = " + this.getFieldName(i));
|
|
} else {
|
|
var rec = this._records[i - 1];
|
|
if (rec.argumentToPureFunction) {
|
|
var changeName = this.getChangeName(i);
|
|
declarations.push(this.getLocalName(i) + "," + changeName);
|
|
assignments.push(changeName);
|
|
} else {
|
|
declarations.push("" + this.getLocalName(i));
|
|
}
|
|
}
|
|
}
|
|
var assignmentsCode = collection_1.ListWrapper.isEmpty(assignments) ? '' : assignments.join('=') + " = false;";
|
|
return "var " + declarations.join(',') + ";" + assignmentsCode;
|
|
};
|
|
CodegenNameUtil.prototype.genInitEventLocals = function() {
|
|
var _this = this;
|
|
var res = [(this.getLocalName(exports.CONTEXT_INDEX) + " = " + this.getFieldName(exports.CONTEXT_INDEX))];
|
|
this._sanitizedEventNames.forEach(function(names, eb) {
|
|
for (var i = 0; i < names.length; ++i) {
|
|
if (i !== exports.CONTEXT_INDEX) {
|
|
res.push("" + _this.getEventLocalName(eb, i));
|
|
}
|
|
}
|
|
});
|
|
return res.length > 1 ? "var " + res.join(',') + ";" : '';
|
|
};
|
|
CodegenNameUtil.prototype.getPreventDefaultAccesor = function() {
|
|
return "preventDefault";
|
|
};
|
|
CodegenNameUtil.prototype.getFieldCount = function() {
|
|
return this._sanitizedNames.length;
|
|
};
|
|
CodegenNameUtil.prototype.getFieldName = function(idx) {
|
|
return this._addFieldPrefix(this._sanitizedNames[idx]);
|
|
};
|
|
CodegenNameUtil.prototype.getAllFieldNames = function() {
|
|
var fieldList = [];
|
|
for (var k = 0,
|
|
kLen = this.getFieldCount(); k < kLen; ++k) {
|
|
if (k === 0 || this._records[k - 1].shouldBeChecked()) {
|
|
fieldList.push(this.getFieldName(k));
|
|
}
|
|
}
|
|
for (var i = 0,
|
|
iLen = this._records.length; i < iLen; ++i) {
|
|
var rec = this._records[i];
|
|
if (rec.isPipeRecord()) {
|
|
fieldList.push(this.getPipeName(rec.selfIndex));
|
|
}
|
|
}
|
|
for (var j = 0,
|
|
jLen = this._directiveRecords.length; j < jLen; ++j) {
|
|
var dRec = this._directiveRecords[j];
|
|
fieldList.push(this.getDirectiveName(dRec.directiveIndex));
|
|
if (!dRec.isDefaultChangeDetection()) {
|
|
fieldList.push(this.getDetectorName(dRec.directiveIndex));
|
|
}
|
|
}
|
|
return fieldList;
|
|
};
|
|
CodegenNameUtil.prototype.genDehydrateFields = function() {
|
|
var fields = this.getAllFieldNames();
|
|
collection_1.ListWrapper.removeAt(fields, exports.CONTEXT_INDEX);
|
|
if (collection_1.ListWrapper.isEmpty(fields))
|
|
return '';
|
|
fields.push(this._utilName + ".uninitialized;");
|
|
return fields.join(' = ');
|
|
};
|
|
CodegenNameUtil.prototype.genPipeOnDestroy = function() {
|
|
var _this = this;
|
|
return this._records.filter(function(r) {
|
|
return r.isPipeRecord();
|
|
}).map(function(r) {
|
|
return (_this._utilName + ".callPipeOnDestroy(" + _this.getPipeName(r.selfIndex) + ");");
|
|
}).join('\n');
|
|
};
|
|
CodegenNameUtil.prototype.getPipeName = function(idx) {
|
|
return this._addFieldPrefix(this._sanitizedNames[idx] + "_pipe");
|
|
};
|
|
CodegenNameUtil.prototype.getDirectiveName = function(d) {
|
|
return this._addFieldPrefix("directive_" + d.name);
|
|
};
|
|
CodegenNameUtil.prototype.getDetectorName = function(d) {
|
|
return this._addFieldPrefix("detector_" + d.name);
|
|
};
|
|
return CodegenNameUtil;
|
|
})();
|
|
exports.CodegenNameUtil = CodegenNameUtil;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/change_detection/codegen_facade", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
function codify(obj) {
|
|
return JSON.stringify(obj);
|
|
}
|
|
exports.codify = codify;
|
|
function rawString(str) {
|
|
return "'" + str + "'";
|
|
}
|
|
exports.rawString = rawString;
|
|
function combineGeneratedStrings(vals) {
|
|
return vals.join(' + ');
|
|
}
|
|
exports.combineGeneratedStrings = combineGeneratedStrings;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/metadata/view", ["angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
(function(ViewEncapsulation) {
|
|
ViewEncapsulation[ViewEncapsulation["Emulated"] = 0] = "Emulated";
|
|
ViewEncapsulation[ViewEncapsulation["Native"] = 1] = "Native";
|
|
ViewEncapsulation[ViewEncapsulation["None"] = 2] = "None";
|
|
})(exports.ViewEncapsulation || (exports.ViewEncapsulation = {}));
|
|
var ViewEncapsulation = exports.ViewEncapsulation;
|
|
exports.VIEW_ENCAPSULATION_VALUES = [ViewEncapsulation.Emulated, ViewEncapsulation.Native, ViewEncapsulation.None];
|
|
var ViewMetadata = (function() {
|
|
function ViewMetadata(_a) {
|
|
var _b = _a === void 0 ? {} : _a,
|
|
templateUrl = _b.templateUrl,
|
|
template = _b.template,
|
|
directives = _b.directives,
|
|
pipes = _b.pipes,
|
|
encapsulation = _b.encapsulation,
|
|
styles = _b.styles,
|
|
styleUrls = _b.styleUrls;
|
|
this.templateUrl = templateUrl;
|
|
this.template = template;
|
|
this.styleUrls = styleUrls;
|
|
this.styles = styles;
|
|
this.directives = directives;
|
|
this.pipes = pipes;
|
|
this.encapsulation = encapsulation;
|
|
}
|
|
ViewMetadata = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [Object])], ViewMetadata);
|
|
return ViewMetadata;
|
|
})();
|
|
exports.ViewMetadata = ViewMetadata;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/util", ["angular2/src/core/util/decorators"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var decorators_1 = require("angular2/src/core/util/decorators");
|
|
exports.Class = decorators_1.Class;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/prod_mode", ["angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
exports.enableProdMode = lang_1.enableProdMode;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/facade/facade", ["angular2/src/facade/lang", "angular2/src/facade/async", "angular2/src/facade/exceptions", "angular2/src/facade/exception_handler"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
exports.Type = lang_1.Type;
|
|
var async_1 = require("angular2/src/facade/async");
|
|
exports.EventEmitter = async_1.EventEmitter;
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
exports.WrappedException = exceptions_1.WrappedException;
|
|
var exception_handler_1 = require("angular2/src/facade/exception_handler");
|
|
exports.ExceptionHandler = exception_handler_1.ExceptionHandler;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/zone/ng_zone_impl", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var NgZoneError = (function() {
|
|
function NgZoneError(error, stackTrace) {
|
|
this.error = error;
|
|
this.stackTrace = stackTrace;
|
|
}
|
|
return NgZoneError;
|
|
})();
|
|
exports.NgZoneError = NgZoneError;
|
|
var NgZoneImpl = (function() {
|
|
function NgZoneImpl(_a) {
|
|
var _this = this;
|
|
var trace = _a.trace,
|
|
onEnter = _a.onEnter,
|
|
onLeave = _a.onLeave,
|
|
setMicrotask = _a.setMicrotask,
|
|
setMacrotask = _a.setMacrotask,
|
|
onError = _a.onError;
|
|
this.onEnter = onEnter;
|
|
this.onLeave = onLeave;
|
|
this.setMicrotask = setMicrotask;
|
|
this.setMacrotask = setMacrotask;
|
|
this.onError = onError;
|
|
if (Zone) {
|
|
this.outer = this.inner = Zone.current;
|
|
if (Zone['wtfZoneSpec']) {
|
|
this.inner = this.inner.fork(Zone['wtfZoneSpec']);
|
|
}
|
|
if (trace && Zone['longStackTraceZoneSpec']) {
|
|
this.inner = this.inner.fork(Zone['longStackTraceZoneSpec']);
|
|
}
|
|
this.inner = this.inner.fork({
|
|
name: 'angular',
|
|
properties: {'isAngularZone': true},
|
|
onInvokeTask: function(delegate, current, target, task, applyThis, applyArgs) {
|
|
try {
|
|
_this.onEnter();
|
|
return delegate.invokeTask(target, task, applyThis, applyArgs);
|
|
} finally {
|
|
_this.onLeave();
|
|
}
|
|
},
|
|
onInvoke: function(delegate, current, target, callback, applyThis, applyArgs, source) {
|
|
try {
|
|
_this.onEnter();
|
|
return delegate.invoke(target, callback, applyThis, applyArgs, source);
|
|
} finally {
|
|
_this.onLeave();
|
|
}
|
|
},
|
|
onHasTask: function(delegate, current, target, hasTaskState) {
|
|
delegate.hasTask(target, hasTaskState);
|
|
if (current == target) {
|
|
if (hasTaskState.change == 'microTask') {
|
|
_this.setMicrotask(hasTaskState.microTask);
|
|
} else if (hasTaskState.change == 'macroTask') {
|
|
_this.setMacrotask(hasTaskState.macroTask);
|
|
}
|
|
}
|
|
},
|
|
onHandleError: function(delegate, current, target, error) {
|
|
delegate.handleError(target, error);
|
|
_this.onError(new NgZoneError(error, error.stack));
|
|
return false;
|
|
}
|
|
});
|
|
} else {
|
|
throw new Error('Angular2 needs to be run with Zone.js polyfill.');
|
|
}
|
|
}
|
|
NgZoneImpl.isInAngularZone = function() {
|
|
return Zone.current.get('isAngularZone') === true;
|
|
};
|
|
NgZoneImpl.prototype.runInner = function(fn) {
|
|
return this.inner.runGuarded(fn);
|
|
};
|
|
;
|
|
NgZoneImpl.prototype.runOuter = function(fn) {
|
|
return this.outer.run(fn);
|
|
};
|
|
;
|
|
return NgZoneImpl;
|
|
})();
|
|
exports.NgZoneImpl = NgZoneImpl;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/application_tokens", ["angular2/src/core/di", "angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var di_1 = require("angular2/src/core/di");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
exports.APP_COMPONENT_REF_PROMISE = lang_1.CONST_EXPR(new di_1.OpaqueToken('Promise<ComponentRef>'));
|
|
exports.APP_COMPONENT = lang_1.CONST_EXPR(new di_1.OpaqueToken('AppComponent'));
|
|
exports.APP_ID = lang_1.CONST_EXPR(new di_1.OpaqueToken('AppId'));
|
|
function _appIdRandomProviderFactory() {
|
|
return "" + _randomChar() + _randomChar() + _randomChar();
|
|
}
|
|
exports.APP_ID_RANDOM_PROVIDER = lang_1.CONST_EXPR(new di_1.Provider(exports.APP_ID, {
|
|
useFactory: _appIdRandomProviderFactory,
|
|
deps: []
|
|
}));
|
|
function _randomChar() {
|
|
return lang_1.StringWrapper.fromCharCode(97 + lang_1.Math.floor(lang_1.Math.random() * 25));
|
|
}
|
|
exports.PLATFORM_INITIALIZER = lang_1.CONST_EXPR(new di_1.OpaqueToken("Platform Initializer"));
|
|
exports.APP_INITIALIZER = lang_1.CONST_EXPR(new di_1.OpaqueToken("Application Initializer"));
|
|
exports.PACKAGE_ROOT_URL = lang_1.CONST_EXPR(new di_1.OpaqueToken("Application Packages Root URL"));
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/testability/testability", ["angular2/src/core/di", "angular2/src/facade/collection", "angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/core/zone/ng_zone", "angular2/src/facade/async"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var di_1 = require("angular2/src/core/di");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var ng_zone_1 = require("angular2/src/core/zone/ng_zone");
|
|
var async_1 = require("angular2/src/facade/async");
|
|
var Testability = (function() {
|
|
function Testability(_ngZone) {
|
|
this._ngZone = _ngZone;
|
|
this._pendingCount = 0;
|
|
this._isZoneStable = true;
|
|
this._didWork = false;
|
|
this._callbacks = [];
|
|
this._watchAngularEvents();
|
|
}
|
|
Testability.prototype._watchAngularEvents = function() {
|
|
var _this = this;
|
|
async_1.ObservableWrapper.subscribe(this._ngZone.onUnstable, function(_) {
|
|
_this._didWork = true;
|
|
_this._isZoneStable = false;
|
|
});
|
|
this._ngZone.runOutsideAngular(function() {
|
|
async_1.ObservableWrapper.subscribe(_this._ngZone.onStable, function(_) {
|
|
ng_zone_1.NgZone.assertNotInAngularZone();
|
|
lang_1.scheduleMicroTask(function() {
|
|
_this._isZoneStable = true;
|
|
_this._runCallbacksIfReady();
|
|
});
|
|
});
|
|
});
|
|
};
|
|
Testability.prototype.increasePendingRequestCount = function() {
|
|
this._pendingCount += 1;
|
|
this._didWork = true;
|
|
return this._pendingCount;
|
|
};
|
|
Testability.prototype.decreasePendingRequestCount = function() {
|
|
this._pendingCount -= 1;
|
|
if (this._pendingCount < 0) {
|
|
throw new exceptions_1.BaseException('pending async requests below zero');
|
|
}
|
|
this._runCallbacksIfReady();
|
|
return this._pendingCount;
|
|
};
|
|
Testability.prototype.isStable = function() {
|
|
return this._isZoneStable && this._pendingCount == 0 && !this._ngZone.hasPendingMacrotasks;
|
|
};
|
|
Testability.prototype._runCallbacksIfReady = function() {
|
|
var _this = this;
|
|
if (this.isStable()) {
|
|
lang_1.scheduleMicroTask(function() {
|
|
while (_this._callbacks.length !== 0) {
|
|
(_this._callbacks.pop())(_this._didWork);
|
|
}
|
|
_this._didWork = false;
|
|
});
|
|
} else {
|
|
this._didWork = true;
|
|
}
|
|
};
|
|
Testability.prototype.whenStable = function(callback) {
|
|
this._callbacks.push(callback);
|
|
this._runCallbacksIfReady();
|
|
};
|
|
Testability.prototype.getPendingRequestCount = function() {
|
|
return this._pendingCount;
|
|
};
|
|
Testability.prototype.findBindings = function(using, provider, exactMatch) {
|
|
return [];
|
|
};
|
|
Testability.prototype.findProviders = function(using, provider, exactMatch) {
|
|
return [];
|
|
};
|
|
Testability = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [ng_zone_1.NgZone])], Testability);
|
|
return Testability;
|
|
})();
|
|
exports.Testability = Testability;
|
|
var TestabilityRegistry = (function() {
|
|
function TestabilityRegistry() {
|
|
this._applications = new collection_1.Map();
|
|
_testabilityGetter.addToWindow(this);
|
|
}
|
|
TestabilityRegistry.prototype.registerApplication = function(token, testability) {
|
|
this._applications.set(token, testability);
|
|
};
|
|
TestabilityRegistry.prototype.getTestability = function(elem) {
|
|
return this._applications.get(elem);
|
|
};
|
|
TestabilityRegistry.prototype.getAllTestabilities = function() {
|
|
return collection_1.MapWrapper.values(this._applications);
|
|
};
|
|
TestabilityRegistry.prototype.getAllRootElements = function() {
|
|
return collection_1.MapWrapper.keys(this._applications);
|
|
};
|
|
TestabilityRegistry.prototype.findTestabilityInTree = function(elem, findInAncestors) {
|
|
if (findInAncestors === void 0) {
|
|
findInAncestors = true;
|
|
}
|
|
return _testabilityGetter.findTestabilityInTree(this, elem, findInAncestors);
|
|
};
|
|
TestabilityRegistry = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [])], TestabilityRegistry);
|
|
return TestabilityRegistry;
|
|
})();
|
|
exports.TestabilityRegistry = TestabilityRegistry;
|
|
var _NoopGetTestability = (function() {
|
|
function _NoopGetTestability() {}
|
|
_NoopGetTestability.prototype.addToWindow = function(registry) {};
|
|
_NoopGetTestability.prototype.findTestabilityInTree = function(registry, elem, findInAncestors) {
|
|
return null;
|
|
};
|
|
_NoopGetTestability = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [])], _NoopGetTestability);
|
|
return _NoopGetTestability;
|
|
})();
|
|
function setTestabilityGetter(getter) {
|
|
_testabilityGetter = getter;
|
|
}
|
|
exports.setTestabilityGetter = setTestabilityGetter;
|
|
var _testabilityGetter = lang_1.CONST_EXPR(new _NoopGetTestability());
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/linker/view_type", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
(function(ViewType) {
|
|
ViewType[ViewType["HOST"] = 0] = "HOST";
|
|
ViewType[ViewType["COMPONENT"] = 1] = "COMPONENT";
|
|
ViewType[ViewType["EMBEDDED"] = 2] = "EMBEDDED";
|
|
})(exports.ViewType || (exports.ViewType = {}));
|
|
var ViewType = exports.ViewType;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/linker/element_ref", ["angular2/src/facade/exceptions"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var ElementRef = (function() {
|
|
function ElementRef() {}
|
|
Object.defineProperty(ElementRef.prototype, "nativeElement", {
|
|
get: function() {
|
|
return exceptions_1.unimplemented();
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
return ElementRef;
|
|
})();
|
|
exports.ElementRef = ElementRef;
|
|
var ElementRef_ = (function() {
|
|
function ElementRef_(_appElement) {
|
|
this._appElement = _appElement;
|
|
}
|
|
Object.defineProperty(ElementRef_.prototype, "internalElement", {
|
|
get: function() {
|
|
return this._appElement;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(ElementRef_.prototype, "nativeElement", {
|
|
get: function() {
|
|
return this._appElement.nativeElement;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
return ElementRef_;
|
|
})();
|
|
exports.ElementRef_ = ElementRef_;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/linker/view_container_ref", ["angular2/src/facade/collection", "angular2/src/facade/exceptions", "angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var ViewContainerRef = (function() {
|
|
function ViewContainerRef() {}
|
|
Object.defineProperty(ViewContainerRef.prototype, "element", {
|
|
get: function() {
|
|
return exceptions_1.unimplemented();
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
ViewContainerRef.prototype.clear = function() {
|
|
for (var i = this.length - 1; i >= 0; i--) {
|
|
this.remove(i);
|
|
}
|
|
};
|
|
Object.defineProperty(ViewContainerRef.prototype, "length", {
|
|
get: function() {
|
|
return exceptions_1.unimplemented();
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
;
|
|
return ViewContainerRef;
|
|
})();
|
|
exports.ViewContainerRef = ViewContainerRef;
|
|
var ViewContainerRef_ = (function(_super) {
|
|
__extends(ViewContainerRef_, _super);
|
|
function ViewContainerRef_(_element) {
|
|
_super.call(this);
|
|
this._element = _element;
|
|
}
|
|
ViewContainerRef_.prototype.get = function(index) {
|
|
return this._element.nestedViews[index].ref;
|
|
};
|
|
Object.defineProperty(ViewContainerRef_.prototype, "length", {
|
|
get: function() {
|
|
var views = this._element.nestedViews;
|
|
return lang_1.isPresent(views) ? views.length : 0;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(ViewContainerRef_.prototype, "element", {
|
|
get: function() {
|
|
return this._element.ref;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
ViewContainerRef_.prototype.createEmbeddedView = function(templateRef, index) {
|
|
if (index === void 0) {
|
|
index = -1;
|
|
}
|
|
if (index == -1)
|
|
index = this.length;
|
|
var vm = this._element.parentView.viewManager;
|
|
return vm.createEmbeddedViewInContainer(this._element.ref, index, templateRef);
|
|
};
|
|
ViewContainerRef_.prototype.createHostView = function(hostViewFactoryRef, index, dynamicallyCreatedProviders, projectableNodes) {
|
|
if (index === void 0) {
|
|
index = -1;
|
|
}
|
|
if (dynamicallyCreatedProviders === void 0) {
|
|
dynamicallyCreatedProviders = null;
|
|
}
|
|
if (projectableNodes === void 0) {
|
|
projectableNodes = null;
|
|
}
|
|
if (index == -1)
|
|
index = this.length;
|
|
var vm = this._element.parentView.viewManager;
|
|
return vm.createHostViewInContainer(this._element.ref, index, hostViewFactoryRef, dynamicallyCreatedProviders, projectableNodes);
|
|
};
|
|
ViewContainerRef_.prototype.insert = function(viewRef, index) {
|
|
if (index === void 0) {
|
|
index = -1;
|
|
}
|
|
if (index == -1)
|
|
index = this.length;
|
|
var vm = this._element.parentView.viewManager;
|
|
return vm.attachViewInContainer(this._element.ref, index, viewRef);
|
|
};
|
|
ViewContainerRef_.prototype.indexOf = function(viewRef) {
|
|
return collection_1.ListWrapper.indexOf(this._element.nestedViews, viewRef.internalView);
|
|
};
|
|
ViewContainerRef_.prototype.remove = function(index) {
|
|
if (index === void 0) {
|
|
index = -1;
|
|
}
|
|
if (index == -1)
|
|
index = this.length - 1;
|
|
var vm = this._element.parentView.viewManager;
|
|
return vm.destroyViewInContainer(this._element.ref, index);
|
|
};
|
|
ViewContainerRef_.prototype.detach = function(index) {
|
|
if (index === void 0) {
|
|
index = -1;
|
|
}
|
|
if (index == -1)
|
|
index = this.length - 1;
|
|
var vm = this._element.parentView.viewManager;
|
|
return vm.detachViewInContainer(this._element.ref, index);
|
|
};
|
|
return ViewContainerRef_;
|
|
})(ViewContainerRef);
|
|
exports.ViewContainerRef_ = ViewContainerRef_;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/render/api", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var RenderComponentType = (function() {
|
|
function RenderComponentType(id, encapsulation, styles) {
|
|
this.id = id;
|
|
this.encapsulation = encapsulation;
|
|
this.styles = styles;
|
|
}
|
|
return RenderComponentType;
|
|
})();
|
|
exports.RenderComponentType = RenderComponentType;
|
|
var RenderDebugInfo = (function() {
|
|
function RenderDebugInfo(injector, component, providerTokens, locals) {
|
|
this.injector = injector;
|
|
this.component = component;
|
|
this.providerTokens = providerTokens;
|
|
this.locals = locals;
|
|
}
|
|
return RenderDebugInfo;
|
|
})();
|
|
exports.RenderDebugInfo = RenderDebugInfo;
|
|
var Renderer = (function() {
|
|
function Renderer() {}
|
|
return Renderer;
|
|
})();
|
|
exports.Renderer = Renderer;
|
|
var RootRenderer = (function() {
|
|
function RootRenderer() {}
|
|
return RootRenderer;
|
|
})();
|
|
exports.RootRenderer = RootRenderer;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/linker/template_ref", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var TemplateRef = (function() {
|
|
function TemplateRef() {}
|
|
Object.defineProperty(TemplateRef.prototype, "elementRef", {
|
|
get: function() {
|
|
return null;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
return TemplateRef;
|
|
})();
|
|
exports.TemplateRef = TemplateRef;
|
|
var TemplateRef_ = (function(_super) {
|
|
__extends(TemplateRef_, _super);
|
|
function TemplateRef_(_elementRef) {
|
|
_super.call(this);
|
|
this._elementRef = _elementRef;
|
|
}
|
|
Object.defineProperty(TemplateRef_.prototype, "elementRef", {
|
|
get: function() {
|
|
return this._elementRef;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
return TemplateRef_;
|
|
})(TemplateRef);
|
|
exports.TemplateRef_ = TemplateRef_;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/linker/query_list", ["angular2/src/facade/collection", "angular2/src/facade/lang", "angular2/src/facade/async"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var async_1 = require("angular2/src/facade/async");
|
|
var QueryList = (function() {
|
|
function QueryList() {
|
|
this._results = [];
|
|
this._emitter = new async_1.EventEmitter();
|
|
}
|
|
Object.defineProperty(QueryList.prototype, "changes", {
|
|
get: function() {
|
|
return this._emitter;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(QueryList.prototype, "length", {
|
|
get: function() {
|
|
return this._results.length;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(QueryList.prototype, "first", {
|
|
get: function() {
|
|
return collection_1.ListWrapper.first(this._results);
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(QueryList.prototype, "last", {
|
|
get: function() {
|
|
return collection_1.ListWrapper.last(this._results);
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
QueryList.prototype.map = function(fn) {
|
|
return this._results.map(fn);
|
|
};
|
|
QueryList.prototype.filter = function(fn) {
|
|
return this._results.filter(fn);
|
|
};
|
|
QueryList.prototype.reduce = function(fn, init) {
|
|
return this._results.reduce(fn, init);
|
|
};
|
|
QueryList.prototype.forEach = function(fn) {
|
|
this._results.forEach(fn);
|
|
};
|
|
QueryList.prototype.toArray = function() {
|
|
return collection_1.ListWrapper.clone(this._results);
|
|
};
|
|
QueryList.prototype[lang_1.getSymbolIterator()] = function() {
|
|
return this._results[lang_1.getSymbolIterator()]();
|
|
};
|
|
QueryList.prototype.toString = function() {
|
|
return this._results.toString();
|
|
};
|
|
QueryList.prototype.reset = function(res) {
|
|
this._results = res;
|
|
};
|
|
QueryList.prototype.notifyOnChanges = function() {
|
|
this._emitter.emit(this);
|
|
};
|
|
return QueryList;
|
|
})();
|
|
exports.QueryList = QueryList;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/pipes/pipe_provider", ["angular2/src/core/di/provider", "angular2/src/core/di"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var provider_1 = require("angular2/src/core/di/provider");
|
|
var di_1 = require("angular2/src/core/di");
|
|
var PipeProvider = (function(_super) {
|
|
__extends(PipeProvider, _super);
|
|
function PipeProvider(name, pure, key, resolvedFactories, multiBinding) {
|
|
_super.call(this, key, resolvedFactories, multiBinding);
|
|
this.name = name;
|
|
this.pure = pure;
|
|
}
|
|
PipeProvider.createFromType = function(type, metadata) {
|
|
var provider = new di_1.Provider(type, {useClass: type});
|
|
var rb = provider_1.resolveProvider(provider);
|
|
return new PipeProvider(metadata.name, metadata.pure, rb.key, rb.resolvedFactories, rb.multiProvider);
|
|
};
|
|
return PipeProvider;
|
|
})(provider_1.ResolvedProvider_);
|
|
exports.PipeProvider = PipeProvider;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/linker/view_ref", ["angular2/src/facade/exceptions"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var ViewRef = (function() {
|
|
function ViewRef() {}
|
|
Object.defineProperty(ViewRef.prototype, "changeDetectorRef", {
|
|
get: function() {
|
|
return exceptions_1.unimplemented();
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
;
|
|
Object.defineProperty(ViewRef.prototype, "destroyed", {
|
|
get: function() {
|
|
return exceptions_1.unimplemented();
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
return ViewRef;
|
|
})();
|
|
exports.ViewRef = ViewRef;
|
|
var HostViewRef = (function(_super) {
|
|
__extends(HostViewRef, _super);
|
|
function HostViewRef() {
|
|
_super.apply(this, arguments);
|
|
}
|
|
Object.defineProperty(HostViewRef.prototype, "rootNodes", {
|
|
get: function() {
|
|
return exceptions_1.unimplemented();
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
;
|
|
return HostViewRef;
|
|
})(ViewRef);
|
|
exports.HostViewRef = HostViewRef;
|
|
var EmbeddedViewRef = (function(_super) {
|
|
__extends(EmbeddedViewRef, _super);
|
|
function EmbeddedViewRef() {
|
|
_super.apply(this, arguments);
|
|
}
|
|
Object.defineProperty(EmbeddedViewRef.prototype, "rootNodes", {
|
|
get: function() {
|
|
return exceptions_1.unimplemented();
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
;
|
|
return EmbeddedViewRef;
|
|
})(ViewRef);
|
|
exports.EmbeddedViewRef = EmbeddedViewRef;
|
|
var ViewRef_ = (function() {
|
|
function ViewRef_(_view) {
|
|
this._view = _view;
|
|
this._view = _view;
|
|
}
|
|
Object.defineProperty(ViewRef_.prototype, "internalView", {
|
|
get: function() {
|
|
return this._view;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(ViewRef_.prototype, "changeDetectorRef", {
|
|
get: function() {
|
|
return this._view.changeDetector.ref;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(ViewRef_.prototype, "rootNodes", {
|
|
get: function() {
|
|
return this._view.flatRootNodes;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
ViewRef_.prototype.setLocal = function(variableName, value) {
|
|
this._view.setLocal(variableName, value);
|
|
};
|
|
ViewRef_.prototype.hasLocal = function(variableName) {
|
|
return this._view.hasLocal(variableName);
|
|
};
|
|
Object.defineProperty(ViewRef_.prototype, "destroyed", {
|
|
get: function() {
|
|
return this._view.destroyed;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
return ViewRef_;
|
|
})();
|
|
exports.ViewRef_ = ViewRef_;
|
|
var HostViewFactoryRef = (function() {
|
|
function HostViewFactoryRef() {}
|
|
return HostViewFactoryRef;
|
|
})();
|
|
exports.HostViewFactoryRef = HostViewFactoryRef;
|
|
var HostViewFactoryRef_ = (function() {
|
|
function HostViewFactoryRef_(_hostViewFactory) {
|
|
this._hostViewFactory = _hostViewFactory;
|
|
}
|
|
Object.defineProperty(HostViewFactoryRef_.prototype, "internalHostViewFactory", {
|
|
get: function() {
|
|
return this._hostViewFactory;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
return HostViewFactoryRef_;
|
|
})();
|
|
exports.HostViewFactoryRef_ = HostViewFactoryRef_;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/change_detection/pipes", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var SelectedPipe = (function() {
|
|
function SelectedPipe(pipe, pure) {
|
|
this.pipe = pipe;
|
|
this.pure = pure;
|
|
}
|
|
return SelectedPipe;
|
|
})();
|
|
exports.SelectedPipe = SelectedPipe;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/render/util", ["angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var CAMEL_CASE_REGEXP = /([A-Z])/g;
|
|
var DASH_CASE_REGEXP = /-([a-z])/g;
|
|
function camelCaseToDashCase(input) {
|
|
return lang_1.StringWrapper.replaceAllMapped(input, CAMEL_CASE_REGEXP, function(m) {
|
|
return '-' + m[1].toLowerCase();
|
|
});
|
|
}
|
|
exports.camelCaseToDashCase = camelCaseToDashCase;
|
|
function dashCaseToCamelCase(input) {
|
|
return lang_1.StringWrapper.replaceAllMapped(input, DASH_CASE_REGEXP, function(m) {
|
|
return m[1].toUpperCase();
|
|
});
|
|
}
|
|
exports.dashCaseToCamelCase = dashCaseToCamelCase;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/linker/view_manager", ["angular2/src/core/di", "angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/facade/exceptions", "angular2/src/core/linker/view", "angular2/src/core/render/api", "angular2/src/core/profile/profile", "angular2/src/core/application_tokens", "angular2/src/core/linker/view_type"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var __param = (this && this.__param) || function(paramIndex, decorator) {
|
|
return function(target, key) {
|
|
decorator(target, key, paramIndex);
|
|
};
|
|
};
|
|
var di_1 = require("angular2/src/core/di");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var view_1 = require("angular2/src/core/linker/view");
|
|
var api_1 = require("angular2/src/core/render/api");
|
|
var profile_1 = require("angular2/src/core/profile/profile");
|
|
var application_tokens_1 = require("angular2/src/core/application_tokens");
|
|
var view_type_1 = require("angular2/src/core/linker/view_type");
|
|
var AppViewManager = (function() {
|
|
function AppViewManager() {}
|
|
return AppViewManager;
|
|
})();
|
|
exports.AppViewManager = AppViewManager;
|
|
var AppViewManager_ = (function(_super) {
|
|
__extends(AppViewManager_, _super);
|
|
function AppViewManager_(_renderer, _appId) {
|
|
_super.call(this);
|
|
this._renderer = _renderer;
|
|
this._appId = _appId;
|
|
this._nextCompTypeId = 0;
|
|
this._createRootHostViewScope = profile_1.wtfCreateScope('AppViewManager#createRootHostView()');
|
|
this._destroyRootHostViewScope = profile_1.wtfCreateScope('AppViewManager#destroyRootHostView()');
|
|
this._createEmbeddedViewInContainerScope = profile_1.wtfCreateScope('AppViewManager#createEmbeddedViewInContainer()');
|
|
this._createHostViewInContainerScope = profile_1.wtfCreateScope('AppViewManager#createHostViewInContainer()');
|
|
this._destroyViewInContainerScope = profile_1.wtfCreateScope('AppViewMananger#destroyViewInContainer()');
|
|
this._attachViewInContainerScope = profile_1.wtfCreateScope('AppViewMananger#attachViewInContainer()');
|
|
this._detachViewInContainerScope = profile_1.wtfCreateScope('AppViewMananger#detachViewInContainer()');
|
|
}
|
|
AppViewManager_.prototype.getViewContainer = function(location) {
|
|
return location.internalElement.getViewContainerRef();
|
|
};
|
|
AppViewManager_.prototype.getHostElement = function(hostViewRef) {
|
|
var hostView = hostViewRef.internalView;
|
|
if (hostView.proto.type !== view_type_1.ViewType.HOST) {
|
|
throw new exceptions_1.BaseException('This operation is only allowed on host views');
|
|
}
|
|
return hostView.appElements[0].ref;
|
|
};
|
|
AppViewManager_.prototype.getNamedElementInComponentView = function(hostLocation, variableName) {
|
|
var appEl = hostLocation.internalElement;
|
|
var componentView = appEl.componentView;
|
|
if (lang_1.isBlank(componentView)) {
|
|
throw new exceptions_1.BaseException("There is no component directive at element " + hostLocation);
|
|
}
|
|
for (var i = 0; i < componentView.appElements.length; i++) {
|
|
var compAppEl = componentView.appElements[i];
|
|
if (collection_1.StringMapWrapper.contains(compAppEl.proto.directiveVariableBindings, variableName)) {
|
|
return compAppEl.ref;
|
|
}
|
|
}
|
|
throw new exceptions_1.BaseException("Could not find variable " + variableName);
|
|
};
|
|
AppViewManager_.prototype.getComponent = function(hostLocation) {
|
|
return hostLocation.internalElement.getComponent();
|
|
};
|
|
AppViewManager_.prototype.createRootHostView = function(hostViewFactoryRef, overrideSelector, injector, projectableNodes) {
|
|
if (projectableNodes === void 0) {
|
|
projectableNodes = null;
|
|
}
|
|
var s = this._createRootHostViewScope();
|
|
var hostViewFactory = hostViewFactoryRef.internalHostViewFactory;
|
|
var selector = lang_1.isPresent(overrideSelector) ? overrideSelector : hostViewFactory.selector;
|
|
var view = hostViewFactory.viewFactory(this._renderer, this, null, projectableNodes, selector, null, injector);
|
|
return profile_1.wtfLeave(s, view.ref);
|
|
};
|
|
AppViewManager_.prototype.destroyRootHostView = function(hostViewRef) {
|
|
var s = this._destroyRootHostViewScope();
|
|
var hostView = hostViewRef.internalView;
|
|
hostView.renderer.detachView(view_1.flattenNestedViewRenderNodes(hostView.rootNodesOrAppElements));
|
|
hostView.destroy();
|
|
profile_1.wtfLeave(s);
|
|
};
|
|
AppViewManager_.prototype.createEmbeddedViewInContainer = function(viewContainerLocation, index, templateRef) {
|
|
var s = this._createEmbeddedViewInContainerScope();
|
|
var contextEl = templateRef.elementRef.internalElement;
|
|
var view = contextEl.embeddedViewFactory(contextEl.parentView.renderer, this, contextEl, contextEl.parentView.projectableNodes, null, null, null);
|
|
this._attachViewToContainer(view, viewContainerLocation.internalElement, index);
|
|
return profile_1.wtfLeave(s, view.ref);
|
|
};
|
|
AppViewManager_.prototype.createHostViewInContainer = function(viewContainerLocation, index, hostViewFactoryRef, dynamicallyCreatedProviders, projectableNodes) {
|
|
var s = this._createHostViewInContainerScope();
|
|
var viewContainerLocation_ = viewContainerLocation;
|
|
var contextEl = viewContainerLocation_.internalElement;
|
|
var hostViewFactory = hostViewFactoryRef.internalHostViewFactory;
|
|
var view = hostViewFactory.viewFactory(contextEl.parentView.renderer, contextEl.parentView.viewManager, contextEl, projectableNodes, null, dynamicallyCreatedProviders, null);
|
|
this._attachViewToContainer(view, viewContainerLocation_.internalElement, index);
|
|
return profile_1.wtfLeave(s, view.ref);
|
|
};
|
|
AppViewManager_.prototype.destroyViewInContainer = function(viewContainerLocation, index) {
|
|
var s = this._destroyViewInContainerScope();
|
|
var view = this._detachViewInContainer(viewContainerLocation.internalElement, index);
|
|
view.destroy();
|
|
profile_1.wtfLeave(s);
|
|
};
|
|
AppViewManager_.prototype.attachViewInContainer = function(viewContainerLocation, index, viewRef) {
|
|
var viewRef_ = viewRef;
|
|
var s = this._attachViewInContainerScope();
|
|
this._attachViewToContainer(viewRef_.internalView, viewContainerLocation.internalElement, index);
|
|
return profile_1.wtfLeave(s, viewRef_);
|
|
};
|
|
AppViewManager_.prototype.detachViewInContainer = function(viewContainerLocation, index) {
|
|
var s = this._detachViewInContainerScope();
|
|
var view = this._detachViewInContainer(viewContainerLocation.internalElement, index);
|
|
return profile_1.wtfLeave(s, view.ref);
|
|
};
|
|
AppViewManager_.prototype.onViewCreated = function(view) {};
|
|
AppViewManager_.prototype.onViewDestroyed = function(view) {};
|
|
AppViewManager_.prototype.createRenderComponentType = function(encapsulation, styles) {
|
|
return new api_1.RenderComponentType(this._appId + "-" + this._nextCompTypeId++, encapsulation, styles);
|
|
};
|
|
AppViewManager_.prototype._attachViewToContainer = function(view, vcAppElement, viewIndex) {
|
|
if (view.proto.type === view_type_1.ViewType.COMPONENT) {
|
|
throw new exceptions_1.BaseException("Component views can't be moved!");
|
|
}
|
|
var nestedViews = vcAppElement.nestedViews;
|
|
if (nestedViews == null) {
|
|
nestedViews = [];
|
|
vcAppElement.nestedViews = nestedViews;
|
|
}
|
|
collection_1.ListWrapper.insert(nestedViews, viewIndex, view);
|
|
var refNode;
|
|
if (viewIndex > 0) {
|
|
var prevView = nestedViews[viewIndex - 1];
|
|
refNode = prevView.rootNodesOrAppElements.length > 0 ? prevView.rootNodesOrAppElements[prevView.rootNodesOrAppElements.length - 1] : null;
|
|
} else {
|
|
refNode = vcAppElement.nativeElement;
|
|
}
|
|
if (lang_1.isPresent(refNode)) {
|
|
var refRenderNode = view_1.findLastRenderNode(refNode);
|
|
view.renderer.attachViewAfter(refRenderNode, view_1.flattenNestedViewRenderNodes(view.rootNodesOrAppElements));
|
|
}
|
|
vcAppElement.parentView.changeDetector.addContentChild(view.changeDetector);
|
|
vcAppElement.traverseAndSetQueriesAsDirty();
|
|
};
|
|
AppViewManager_.prototype._detachViewInContainer = function(vcAppElement, viewIndex) {
|
|
var view = collection_1.ListWrapper.removeAt(vcAppElement.nestedViews, viewIndex);
|
|
if (view.proto.type === view_type_1.ViewType.COMPONENT) {
|
|
throw new exceptions_1.BaseException("Component views can't be moved!");
|
|
}
|
|
vcAppElement.traverseAndSetQueriesAsDirty();
|
|
view.renderer.detachView(view_1.flattenNestedViewRenderNodes(view.rootNodesOrAppElements));
|
|
view.changeDetector.remove();
|
|
return view;
|
|
};
|
|
AppViewManager_ = __decorate([di_1.Injectable(), __param(1, di_1.Inject(application_tokens_1.APP_ID)), __metadata('design:paramtypes', [api_1.RootRenderer, String])], AppViewManager_);
|
|
return AppViewManager_;
|
|
})(AppViewManager);
|
|
exports.AppViewManager_ = AppViewManager_;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/console", ["angular2/src/core/di", "angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var di_1 = require("angular2/src/core/di");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var Console = (function() {
|
|
function Console() {}
|
|
Console.prototype.log = function(message) {
|
|
lang_1.print(message);
|
|
};
|
|
Console = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [])], Console);
|
|
return Console;
|
|
})();
|
|
exports.Console = Console;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/zone", ["angular2/src/core/zone/ng_zone"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var ng_zone_1 = require("angular2/src/core/zone/ng_zone");
|
|
exports.NgZone = ng_zone_1.NgZone;
|
|
exports.NgZoneError = ng_zone_1.NgZoneError;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/render", ["angular2/src/core/render/api"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var api_1 = require("angular2/src/core/render/api");
|
|
exports.RootRenderer = api_1.RootRenderer;
|
|
exports.Renderer = api_1.Renderer;
|
|
exports.RenderComponentType = api_1.RenderComponentType;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/linker/directive_resolver", ["angular2/src/core/di", "angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/facade/collection", "angular2/src/core/metadata", "angular2/src/core/reflection/reflection", "angular2/src/core/reflection/reflector_reader"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var di_1 = require("angular2/src/core/di");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var metadata_1 = require("angular2/src/core/metadata");
|
|
var reflection_1 = require("angular2/src/core/reflection/reflection");
|
|
var reflector_reader_1 = require("angular2/src/core/reflection/reflector_reader");
|
|
function _isDirectiveMetadata(type) {
|
|
return type instanceof metadata_1.DirectiveMetadata;
|
|
}
|
|
var DirectiveResolver = (function() {
|
|
function DirectiveResolver(_reflector) {
|
|
if (lang_1.isPresent(_reflector)) {
|
|
this._reflector = _reflector;
|
|
} else {
|
|
this._reflector = reflection_1.reflector;
|
|
}
|
|
}
|
|
DirectiveResolver.prototype.resolve = function(type) {
|
|
var typeMetadata = this._reflector.annotations(di_1.resolveForwardRef(type));
|
|
if (lang_1.isPresent(typeMetadata)) {
|
|
var metadata = typeMetadata.find(_isDirectiveMetadata);
|
|
if (lang_1.isPresent(metadata)) {
|
|
var propertyMetadata = this._reflector.propMetadata(type);
|
|
return this._mergeWithPropertyMetadata(metadata, propertyMetadata, type);
|
|
}
|
|
}
|
|
throw new exceptions_1.BaseException("No Directive annotation found on " + lang_1.stringify(type));
|
|
};
|
|
DirectiveResolver.prototype._mergeWithPropertyMetadata = function(dm, propertyMetadata, directiveType) {
|
|
var inputs = [];
|
|
var outputs = [];
|
|
var host = {};
|
|
var queries = {};
|
|
collection_1.StringMapWrapper.forEach(propertyMetadata, function(metadata, propName) {
|
|
metadata.forEach(function(a) {
|
|
if (a instanceof metadata_1.InputMetadata) {
|
|
if (lang_1.isPresent(a.bindingPropertyName)) {
|
|
inputs.push(propName + ": " + a.bindingPropertyName);
|
|
} else {
|
|
inputs.push(propName);
|
|
}
|
|
}
|
|
if (a instanceof metadata_1.OutputMetadata) {
|
|
if (lang_1.isPresent(a.bindingPropertyName)) {
|
|
outputs.push(propName + ": " + a.bindingPropertyName);
|
|
} else {
|
|
outputs.push(propName);
|
|
}
|
|
}
|
|
if (a instanceof metadata_1.HostBindingMetadata) {
|
|
if (lang_1.isPresent(a.hostPropertyName)) {
|
|
host[("[" + a.hostPropertyName + "]")] = propName;
|
|
} else {
|
|
host[("[" + propName + "]")] = propName;
|
|
}
|
|
}
|
|
if (a instanceof metadata_1.HostListenerMetadata) {
|
|
var args = lang_1.isPresent(a.args) ? a.args.join(', ') : '';
|
|
host[("(" + a.eventName + ")")] = propName + "(" + args + ")";
|
|
}
|
|
if (a instanceof metadata_1.ContentChildrenMetadata) {
|
|
queries[propName] = a;
|
|
}
|
|
if (a instanceof metadata_1.ViewChildrenMetadata) {
|
|
queries[propName] = a;
|
|
}
|
|
if (a instanceof metadata_1.ContentChildMetadata) {
|
|
queries[propName] = a;
|
|
}
|
|
if (a instanceof metadata_1.ViewChildMetadata) {
|
|
queries[propName] = a;
|
|
}
|
|
});
|
|
});
|
|
return this._merge(dm, inputs, outputs, host, queries, directiveType);
|
|
};
|
|
DirectiveResolver.prototype._merge = function(dm, inputs, outputs, host, queries, directiveType) {
|
|
var mergedInputs = lang_1.isPresent(dm.inputs) ? collection_1.ListWrapper.concat(dm.inputs, inputs) : inputs;
|
|
var mergedOutputs;
|
|
if (lang_1.isPresent(dm.outputs)) {
|
|
dm.outputs.forEach(function(propName) {
|
|
if (collection_1.ListWrapper.contains(outputs, propName)) {
|
|
throw new exceptions_1.BaseException("Output event '" + propName + "' defined multiple times in '" + lang_1.stringify(directiveType) + "'");
|
|
}
|
|
});
|
|
mergedOutputs = collection_1.ListWrapper.concat(dm.outputs, outputs);
|
|
} else {
|
|
mergedOutputs = outputs;
|
|
}
|
|
var mergedHost = lang_1.isPresent(dm.host) ? collection_1.StringMapWrapper.merge(dm.host, host) : host;
|
|
var mergedQueries = lang_1.isPresent(dm.queries) ? collection_1.StringMapWrapper.merge(dm.queries, queries) : queries;
|
|
if (dm instanceof metadata_1.ComponentMetadata) {
|
|
return new metadata_1.ComponentMetadata({
|
|
selector: dm.selector,
|
|
inputs: mergedInputs,
|
|
outputs: mergedOutputs,
|
|
host: mergedHost,
|
|
exportAs: dm.exportAs,
|
|
moduleId: dm.moduleId,
|
|
queries: mergedQueries,
|
|
changeDetection: dm.changeDetection,
|
|
providers: dm.providers,
|
|
viewProviders: dm.viewProviders
|
|
});
|
|
} else {
|
|
return new metadata_1.DirectiveMetadata({
|
|
selector: dm.selector,
|
|
inputs: mergedInputs,
|
|
outputs: mergedOutputs,
|
|
host: mergedHost,
|
|
exportAs: dm.exportAs,
|
|
queries: mergedQueries,
|
|
providers: dm.providers
|
|
});
|
|
}
|
|
};
|
|
DirectiveResolver = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [reflector_reader_1.ReflectorReader])], DirectiveResolver);
|
|
return DirectiveResolver;
|
|
})();
|
|
exports.DirectiveResolver = DirectiveResolver;
|
|
exports.CODEGEN_DIRECTIVE_RESOLVER = new DirectiveResolver(reflection_1.reflector);
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/linker/view_resolver", ["angular2/src/core/di", "angular2/src/core/metadata/view", "angular2/src/core/metadata/directives", "angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/facade/collection", "angular2/src/core/reflection/reflector_reader", "angular2/src/core/reflection/reflection"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var di_1 = require("angular2/src/core/di");
|
|
var view_1 = require("angular2/src/core/metadata/view");
|
|
var directives_1 = require("angular2/src/core/metadata/directives");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var reflector_reader_1 = require("angular2/src/core/reflection/reflector_reader");
|
|
var reflection_1 = require("angular2/src/core/reflection/reflection");
|
|
var ViewResolver = (function() {
|
|
function ViewResolver(_reflector) {
|
|
this._cache = new collection_1.Map();
|
|
if (lang_1.isPresent(_reflector)) {
|
|
this._reflector = _reflector;
|
|
} else {
|
|
this._reflector = reflection_1.reflector;
|
|
}
|
|
}
|
|
ViewResolver.prototype.resolve = function(component) {
|
|
var view = this._cache.get(component);
|
|
if (lang_1.isBlank(view)) {
|
|
view = this._resolve(component);
|
|
this._cache.set(component, view);
|
|
}
|
|
return view;
|
|
};
|
|
ViewResolver.prototype._resolve = function(component) {
|
|
var compMeta;
|
|
var viewMeta;
|
|
this._reflector.annotations(component).forEach(function(m) {
|
|
if (m instanceof view_1.ViewMetadata) {
|
|
viewMeta = m;
|
|
}
|
|
if (m instanceof directives_1.ComponentMetadata) {
|
|
compMeta = m;
|
|
}
|
|
});
|
|
if (lang_1.isPresent(compMeta)) {
|
|
if (lang_1.isBlank(compMeta.template) && lang_1.isBlank(compMeta.templateUrl) && lang_1.isBlank(viewMeta)) {
|
|
throw new exceptions_1.BaseException("Component '" + lang_1.stringify(component) + "' must have either 'template' or 'templateUrl' set.");
|
|
} else if (lang_1.isPresent(compMeta.template) && lang_1.isPresent(viewMeta)) {
|
|
this._throwMixingViewAndComponent("template", component);
|
|
} else if (lang_1.isPresent(compMeta.templateUrl) && lang_1.isPresent(viewMeta)) {
|
|
this._throwMixingViewAndComponent("templateUrl", component);
|
|
} else if (lang_1.isPresent(compMeta.directives) && lang_1.isPresent(viewMeta)) {
|
|
this._throwMixingViewAndComponent("directives", component);
|
|
} else if (lang_1.isPresent(compMeta.pipes) && lang_1.isPresent(viewMeta)) {
|
|
this._throwMixingViewAndComponent("pipes", component);
|
|
} else if (lang_1.isPresent(compMeta.encapsulation) && lang_1.isPresent(viewMeta)) {
|
|
this._throwMixingViewAndComponent("encapsulation", component);
|
|
} else if (lang_1.isPresent(compMeta.styles) && lang_1.isPresent(viewMeta)) {
|
|
this._throwMixingViewAndComponent("styles", component);
|
|
} else if (lang_1.isPresent(compMeta.styleUrls) && lang_1.isPresent(viewMeta)) {
|
|
this._throwMixingViewAndComponent("styleUrls", component);
|
|
} else if (lang_1.isPresent(viewMeta)) {
|
|
return viewMeta;
|
|
} else {
|
|
return new view_1.ViewMetadata({
|
|
templateUrl: compMeta.templateUrl,
|
|
template: compMeta.template,
|
|
directives: compMeta.directives,
|
|
pipes: compMeta.pipes,
|
|
encapsulation: compMeta.encapsulation,
|
|
styles: compMeta.styles,
|
|
styleUrls: compMeta.styleUrls
|
|
});
|
|
}
|
|
} else {
|
|
if (lang_1.isBlank(viewMeta)) {
|
|
throw new exceptions_1.BaseException("Could not compile '" + lang_1.stringify(component) + "' because it is not a component.");
|
|
} else {
|
|
return viewMeta;
|
|
}
|
|
}
|
|
return null;
|
|
};
|
|
ViewResolver.prototype._throwMixingViewAndComponent = function(propertyName, component) {
|
|
throw new exceptions_1.BaseException("Component '" + lang_1.stringify(component) + "' cannot have both '" + propertyName + "' and '@View' set at the same time\"");
|
|
};
|
|
ViewResolver = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [reflector_reader_1.ReflectorReader])], ViewResolver);
|
|
return ViewResolver;
|
|
})();
|
|
exports.ViewResolver = ViewResolver;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/debug/debug_node", ["angular2/src/facade/lang", "angular2/src/facade/collection"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var EventListener = (function() {
|
|
function EventListener(name, callback) {
|
|
this.name = name;
|
|
this.callback = callback;
|
|
}
|
|
;
|
|
return EventListener;
|
|
})();
|
|
exports.EventListener = EventListener;
|
|
var DebugNode = (function() {
|
|
function DebugNode(nativeNode, parent) {
|
|
this.nativeNode = nativeNode;
|
|
if (lang_1.isPresent(parent) && parent instanceof DebugElement) {
|
|
parent.addChild(this);
|
|
} else {
|
|
this.parent = null;
|
|
}
|
|
this.listeners = [];
|
|
this.providerTokens = [];
|
|
}
|
|
DebugNode.prototype.setDebugInfo = function(info) {
|
|
this.injector = info.injector;
|
|
this.providerTokens = info.providerTokens;
|
|
this.locals = info.locals;
|
|
this.componentInstance = info.component;
|
|
};
|
|
DebugNode.prototype.inject = function(token) {
|
|
return this.injector.get(token);
|
|
};
|
|
DebugNode.prototype.getLocal = function(name) {
|
|
return this.locals.get(name);
|
|
};
|
|
return DebugNode;
|
|
})();
|
|
exports.DebugNode = DebugNode;
|
|
var DebugElement = (function(_super) {
|
|
__extends(DebugElement, _super);
|
|
function DebugElement(nativeNode, parent) {
|
|
_super.call(this, nativeNode, parent);
|
|
this.properties = new Map();
|
|
this.attributes = new Map();
|
|
this.childNodes = [];
|
|
this.nativeElement = nativeNode;
|
|
}
|
|
DebugElement.prototype.addChild = function(child) {
|
|
if (lang_1.isPresent(child)) {
|
|
this.childNodes.push(child);
|
|
child.parent = this;
|
|
}
|
|
};
|
|
DebugElement.prototype.removeChild = function(child) {
|
|
var childIndex = this.childNodes.indexOf(child);
|
|
if (childIndex !== -1) {
|
|
child.parent = null;
|
|
this.childNodes.splice(childIndex, 1);
|
|
}
|
|
};
|
|
DebugElement.prototype.insertChildrenAfter = function(child, newChildren) {
|
|
var siblingIndex = this.childNodes.indexOf(child);
|
|
if (siblingIndex !== -1) {
|
|
var previousChildren = this.childNodes.slice(0, siblingIndex + 1);
|
|
var nextChildren = this.childNodes.slice(siblingIndex + 1);
|
|
this.childNodes = collection_1.ListWrapper.concat(collection_1.ListWrapper.concat(previousChildren, newChildren), nextChildren);
|
|
for (var i = 0; i < newChildren.length; ++i) {
|
|
var newChild = newChildren[i];
|
|
if (lang_1.isPresent(newChild.parent)) {
|
|
newChild.parent.removeChild(newChild);
|
|
}
|
|
newChild.parent = this;
|
|
}
|
|
}
|
|
};
|
|
DebugElement.prototype.query = function(predicate) {
|
|
var results = this.queryAll(predicate);
|
|
return results.length > 0 ? results[0] : null;
|
|
};
|
|
DebugElement.prototype.queryAll = function(predicate) {
|
|
var matches = [];
|
|
_queryElementChildren(this, predicate, matches);
|
|
return matches;
|
|
};
|
|
DebugElement.prototype.queryAllNodes = function(predicate) {
|
|
var matches = [];
|
|
_queryNodeChildren(this, predicate, matches);
|
|
return matches;
|
|
};
|
|
Object.defineProperty(DebugElement.prototype, "children", {
|
|
get: function() {
|
|
var children = [];
|
|
this.childNodes.forEach(function(node) {
|
|
if (node instanceof DebugElement) {
|
|
children.push(node);
|
|
}
|
|
});
|
|
return children;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
DebugElement.prototype.triggerEventHandler = function(eventName, eventObj) {
|
|
this.listeners.forEach(function(listener) {
|
|
if (listener.name == eventName) {
|
|
listener.callback(eventObj);
|
|
}
|
|
});
|
|
};
|
|
return DebugElement;
|
|
})(DebugNode);
|
|
exports.DebugElement = DebugElement;
|
|
function asNativeElements(debugEls) {
|
|
return debugEls.map(function(el) {
|
|
return el.nativeElement;
|
|
});
|
|
}
|
|
exports.asNativeElements = asNativeElements;
|
|
function _queryElementChildren(element, predicate, matches) {
|
|
element.childNodes.forEach(function(node) {
|
|
if (node instanceof DebugElement) {
|
|
if (predicate(node)) {
|
|
matches.push(node);
|
|
}
|
|
_queryElementChildren(node, predicate, matches);
|
|
}
|
|
});
|
|
}
|
|
function _queryNodeChildren(parentNode, predicate, matches) {
|
|
if (parentNode instanceof DebugElement) {
|
|
parentNode.childNodes.forEach(function(node) {
|
|
if (predicate(node)) {
|
|
matches.push(node);
|
|
}
|
|
if (node instanceof DebugElement) {
|
|
_queryNodeChildren(node, predicate, matches);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
var _nativeNodeToDebugNode = new Map();
|
|
function getDebugNode(nativeNode) {
|
|
return _nativeNodeToDebugNode.get(nativeNode);
|
|
}
|
|
exports.getDebugNode = getDebugNode;
|
|
function getAllDebugNodes() {
|
|
return collection_1.MapWrapper.values(_nativeNodeToDebugNode);
|
|
}
|
|
exports.getAllDebugNodes = getAllDebugNodes;
|
|
function indexDebugNode(node) {
|
|
_nativeNodeToDebugNode.set(node.nativeNode, node);
|
|
}
|
|
exports.indexDebugNode = indexDebugNode;
|
|
function removeDebugNodeFromIndex(node) {
|
|
_nativeNodeToDebugNode.delete(node.nativeNode);
|
|
}
|
|
exports.removeDebugNodeFromIndex = removeDebugNodeFromIndex;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/platform_directives_and_pipes", ["angular2/src/core/di", "angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var di_1 = require("angular2/src/core/di");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
exports.PLATFORM_DIRECTIVES = lang_1.CONST_EXPR(new di_1.OpaqueToken("Platform Directives"));
|
|
exports.PLATFORM_PIPES = lang_1.CONST_EXPR(new di_1.OpaqueToken("Platform Pipes"));
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/platform_common_providers", ["angular2/src/facade/lang", "angular2/src/core/di", "angular2/src/core/console", "angular2/src/core/reflection/reflection", "angular2/src/core/reflection/reflector_reader", "angular2/src/core/testability/testability"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var di_1 = require("angular2/src/core/di");
|
|
var console_1 = require("angular2/src/core/console");
|
|
var reflection_1 = require("angular2/src/core/reflection/reflection");
|
|
var reflector_reader_1 = require("angular2/src/core/reflection/reflector_reader");
|
|
var testability_1 = require("angular2/src/core/testability/testability");
|
|
function _reflector() {
|
|
return reflection_1.reflector;
|
|
}
|
|
exports.PLATFORM_COMMON_PROVIDERS = lang_1.CONST_EXPR([new di_1.Provider(reflection_1.Reflector, {
|
|
useFactory: _reflector,
|
|
deps: []
|
|
}), new di_1.Provider(reflector_reader_1.ReflectorReader, {useExisting: reflection_1.Reflector}), testability_1.TestabilityRegistry, console_1.Console]);
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/linker/pipe_resolver", ["angular2/src/core/di", "angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/core/metadata", "angular2/src/core/reflection/reflector_reader", "angular2/src/core/reflection/reflection"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var di_1 = require("angular2/src/core/di");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var metadata_1 = require("angular2/src/core/metadata");
|
|
var reflector_reader_1 = require("angular2/src/core/reflection/reflector_reader");
|
|
var reflection_1 = require("angular2/src/core/reflection/reflection");
|
|
function _isPipeMetadata(type) {
|
|
return type instanceof metadata_1.PipeMetadata;
|
|
}
|
|
var PipeResolver = (function() {
|
|
function PipeResolver(_reflector) {
|
|
if (lang_1.isPresent(_reflector)) {
|
|
this._reflector = _reflector;
|
|
} else {
|
|
this._reflector = reflection_1.reflector;
|
|
}
|
|
}
|
|
PipeResolver.prototype.resolve = function(type) {
|
|
var metas = this._reflector.annotations(di_1.resolveForwardRef(type));
|
|
if (lang_1.isPresent(metas)) {
|
|
var annotation = metas.find(_isPipeMetadata);
|
|
if (lang_1.isPresent(annotation)) {
|
|
return annotation;
|
|
}
|
|
}
|
|
throw new exceptions_1.BaseException("No Pipe decorator found on " + lang_1.stringify(type));
|
|
};
|
|
PipeResolver = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [reflector_reader_1.ReflectorReader])], PipeResolver);
|
|
return PipeResolver;
|
|
})();
|
|
exports.PipeResolver = PipeResolver;
|
|
exports.CODEGEN_PIPE_RESOLVER = new PipeResolver(reflection_1.reflector);
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/pipes/invalid_pipe_argument_exception", ["angular2/src/facade/lang", "angular2/src/facade/exceptions"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var InvalidPipeArgumentException = (function(_super) {
|
|
__extends(InvalidPipeArgumentException, _super);
|
|
function InvalidPipeArgumentException(type, value) {
|
|
_super.call(this, "Invalid argument '" + value + "' for pipe '" + lang_1.stringify(type) + "'");
|
|
}
|
|
return InvalidPipeArgumentException;
|
|
})(exceptions_1.BaseException);
|
|
exports.InvalidPipeArgumentException = InvalidPipeArgumentException;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/facade/intl", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
(function(NumberFormatStyle) {
|
|
NumberFormatStyle[NumberFormatStyle["Decimal"] = 0] = "Decimal";
|
|
NumberFormatStyle[NumberFormatStyle["Percent"] = 1] = "Percent";
|
|
NumberFormatStyle[NumberFormatStyle["Currency"] = 2] = "Currency";
|
|
})(exports.NumberFormatStyle || (exports.NumberFormatStyle = {}));
|
|
var NumberFormatStyle = exports.NumberFormatStyle;
|
|
var NumberFormatter = (function() {
|
|
function NumberFormatter() {}
|
|
NumberFormatter.format = function(num, locale, style, _a) {
|
|
var _b = _a === void 0 ? {} : _a,
|
|
_c = _b.minimumIntegerDigits,
|
|
minimumIntegerDigits = _c === void 0 ? 1 : _c,
|
|
_d = _b.minimumFractionDigits,
|
|
minimumFractionDigits = _d === void 0 ? 0 : _d,
|
|
_e = _b.maximumFractionDigits,
|
|
maximumFractionDigits = _e === void 0 ? 3 : _e,
|
|
currency = _b.currency,
|
|
_f = _b.currencyAsSymbol,
|
|
currencyAsSymbol = _f === void 0 ? false : _f;
|
|
var intlOptions = {
|
|
minimumIntegerDigits: minimumIntegerDigits,
|
|
minimumFractionDigits: minimumFractionDigits,
|
|
maximumFractionDigits: maximumFractionDigits
|
|
};
|
|
intlOptions.style = NumberFormatStyle[style].toLowerCase();
|
|
if (style == NumberFormatStyle.Currency) {
|
|
intlOptions.currency = currency;
|
|
intlOptions.currencyDisplay = currencyAsSymbol ? 'symbol' : 'code';
|
|
}
|
|
return new Intl.NumberFormat(locale, intlOptions).format(num);
|
|
};
|
|
return NumberFormatter;
|
|
})();
|
|
exports.NumberFormatter = NumberFormatter;
|
|
function digitCondition(len) {
|
|
return len == 2 ? '2-digit' : 'numeric';
|
|
}
|
|
function nameCondition(len) {
|
|
return len < 4 ? 'short' : 'long';
|
|
}
|
|
function extractComponents(pattern) {
|
|
var ret = {};
|
|
var i = 0,
|
|
j;
|
|
while (i < pattern.length) {
|
|
j = i;
|
|
while (j < pattern.length && pattern[j] == pattern[i])
|
|
j++;
|
|
var len = j - i;
|
|
switch (pattern[i]) {
|
|
case 'G':
|
|
ret.era = nameCondition(len);
|
|
break;
|
|
case 'y':
|
|
ret.year = digitCondition(len);
|
|
break;
|
|
case 'M':
|
|
if (len >= 3)
|
|
ret.month = nameCondition(len);
|
|
else
|
|
ret.month = digitCondition(len);
|
|
break;
|
|
case 'd':
|
|
ret.day = digitCondition(len);
|
|
break;
|
|
case 'E':
|
|
ret.weekday = nameCondition(len);
|
|
break;
|
|
case 'j':
|
|
ret.hour = digitCondition(len);
|
|
break;
|
|
case 'h':
|
|
ret.hour = digitCondition(len);
|
|
ret.hour12 = true;
|
|
break;
|
|
case 'H':
|
|
ret.hour = digitCondition(len);
|
|
ret.hour12 = false;
|
|
break;
|
|
case 'm':
|
|
ret.minute = digitCondition(len);
|
|
break;
|
|
case 's':
|
|
ret.second = digitCondition(len);
|
|
break;
|
|
case 'z':
|
|
ret.timeZoneName = 'long';
|
|
break;
|
|
case 'Z':
|
|
ret.timeZoneName = 'short';
|
|
break;
|
|
}
|
|
i = j;
|
|
}
|
|
return ret;
|
|
}
|
|
var dateFormatterCache = new Map();
|
|
var DateFormatter = (function() {
|
|
function DateFormatter() {}
|
|
DateFormatter.format = function(date, locale, pattern) {
|
|
var key = locale + pattern;
|
|
if (dateFormatterCache.has(key)) {
|
|
return dateFormatterCache.get(key).format(date);
|
|
}
|
|
var formatter = new Intl.DateTimeFormat(locale, extractComponents(pattern));
|
|
dateFormatterCache.set(key, formatter);
|
|
return formatter.format(date);
|
|
};
|
|
return DateFormatter;
|
|
})();
|
|
exports.DateFormatter = DateFormatter;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/pipes/json_pipe", ["angular2/src/facade/lang", "angular2/core"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var core_1 = require("angular2/core");
|
|
var JsonPipe = (function() {
|
|
function JsonPipe() {}
|
|
JsonPipe.prototype.transform = function(value, args) {
|
|
if (args === void 0) {
|
|
args = null;
|
|
}
|
|
return lang_1.Json.stringify(value);
|
|
};
|
|
JsonPipe = __decorate([lang_1.CONST(), core_1.Pipe({
|
|
name: 'json',
|
|
pure: false
|
|
}), core_1.Injectable(), __metadata('design:paramtypes', [])], JsonPipe);
|
|
return JsonPipe;
|
|
})();
|
|
exports.JsonPipe = JsonPipe;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/pipes/slice_pipe", ["angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/facade/collection", "angular2/core", "angular2/src/common/pipes/invalid_pipe_argument_exception"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var core_1 = require("angular2/core");
|
|
var invalid_pipe_argument_exception_1 = require("angular2/src/common/pipes/invalid_pipe_argument_exception");
|
|
var SlicePipe = (function() {
|
|
function SlicePipe() {}
|
|
SlicePipe.prototype.transform = function(value, args) {
|
|
if (args === void 0) {
|
|
args = null;
|
|
}
|
|
if (lang_1.isBlank(args) || args.length == 0) {
|
|
throw new exceptions_1.BaseException('Slice pipe requires one argument');
|
|
}
|
|
if (!this.supports(value)) {
|
|
throw new invalid_pipe_argument_exception_1.InvalidPipeArgumentException(SlicePipe, value);
|
|
}
|
|
if (lang_1.isBlank(value))
|
|
return value;
|
|
var start = args[0];
|
|
var end = args.length > 1 ? args[1] : null;
|
|
if (lang_1.isString(value)) {
|
|
return lang_1.StringWrapper.slice(value, start, end);
|
|
}
|
|
return collection_1.ListWrapper.slice(value, start, end);
|
|
};
|
|
SlicePipe.prototype.supports = function(obj) {
|
|
return lang_1.isString(obj) || lang_1.isArray(obj);
|
|
};
|
|
SlicePipe = __decorate([core_1.Pipe({
|
|
name: 'slice',
|
|
pure: false
|
|
}), core_1.Injectable(), __metadata('design:paramtypes', [])], SlicePipe);
|
|
return SlicePipe;
|
|
})();
|
|
exports.SlicePipe = SlicePipe;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/pipes/lowercase_pipe", ["angular2/src/facade/lang", "angular2/core", "angular2/src/common/pipes/invalid_pipe_argument_exception"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var core_1 = require("angular2/core");
|
|
var invalid_pipe_argument_exception_1 = require("angular2/src/common/pipes/invalid_pipe_argument_exception");
|
|
var LowerCasePipe = (function() {
|
|
function LowerCasePipe() {}
|
|
LowerCasePipe.prototype.transform = function(value, args) {
|
|
if (args === void 0) {
|
|
args = null;
|
|
}
|
|
if (lang_1.isBlank(value))
|
|
return value;
|
|
if (!lang_1.isString(value)) {
|
|
throw new invalid_pipe_argument_exception_1.InvalidPipeArgumentException(LowerCasePipe, value);
|
|
}
|
|
return value.toLowerCase();
|
|
};
|
|
LowerCasePipe = __decorate([lang_1.CONST(), core_1.Pipe({name: 'lowercase'}), core_1.Injectable(), __metadata('design:paramtypes', [])], LowerCasePipe);
|
|
return LowerCasePipe;
|
|
})();
|
|
exports.LowerCasePipe = LowerCasePipe;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/pipes/number_pipe", ["angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/facade/intl", "angular2/core", "angular2/src/facade/collection", "angular2/src/common/pipes/invalid_pipe_argument_exception"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var intl_1 = require("angular2/src/facade/intl");
|
|
var core_1 = require("angular2/core");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var invalid_pipe_argument_exception_1 = require("angular2/src/common/pipes/invalid_pipe_argument_exception");
|
|
var defaultLocale = 'en-US';
|
|
var _re = lang_1.RegExpWrapper.create('^(\\d+)?\\.((\\d+)(\\-(\\d+))?)?$');
|
|
var NumberPipe = (function() {
|
|
function NumberPipe() {}
|
|
NumberPipe._format = function(value, style, digits, currency, currencyAsSymbol) {
|
|
if (currency === void 0) {
|
|
currency = null;
|
|
}
|
|
if (currencyAsSymbol === void 0) {
|
|
currencyAsSymbol = false;
|
|
}
|
|
if (lang_1.isBlank(value))
|
|
return null;
|
|
if (!lang_1.isNumber(value)) {
|
|
throw new invalid_pipe_argument_exception_1.InvalidPipeArgumentException(NumberPipe, value);
|
|
}
|
|
var minInt = 1,
|
|
minFraction = 0,
|
|
maxFraction = 3;
|
|
if (lang_1.isPresent(digits)) {
|
|
var parts = lang_1.RegExpWrapper.firstMatch(_re, digits);
|
|
if (lang_1.isBlank(parts)) {
|
|
throw new exceptions_1.BaseException(digits + " is not a valid digit info for number pipes");
|
|
}
|
|
if (lang_1.isPresent(parts[1])) {
|
|
minInt = lang_1.NumberWrapper.parseIntAutoRadix(parts[1]);
|
|
}
|
|
if (lang_1.isPresent(parts[3])) {
|
|
minFraction = lang_1.NumberWrapper.parseIntAutoRadix(parts[3]);
|
|
}
|
|
if (lang_1.isPresent(parts[5])) {
|
|
maxFraction = lang_1.NumberWrapper.parseIntAutoRadix(parts[5]);
|
|
}
|
|
}
|
|
return intl_1.NumberFormatter.format(value, defaultLocale, style, {
|
|
minimumIntegerDigits: minInt,
|
|
minimumFractionDigits: minFraction,
|
|
maximumFractionDigits: maxFraction,
|
|
currency: currency,
|
|
currencyAsSymbol: currencyAsSymbol
|
|
});
|
|
};
|
|
NumberPipe = __decorate([lang_1.CONST(), core_1.Injectable(), __metadata('design:paramtypes', [])], NumberPipe);
|
|
return NumberPipe;
|
|
})();
|
|
exports.NumberPipe = NumberPipe;
|
|
var DecimalPipe = (function(_super) {
|
|
__extends(DecimalPipe, _super);
|
|
function DecimalPipe() {
|
|
_super.apply(this, arguments);
|
|
}
|
|
DecimalPipe.prototype.transform = function(value, args) {
|
|
var digits = collection_1.ListWrapper.first(args);
|
|
return NumberPipe._format(value, intl_1.NumberFormatStyle.Decimal, digits);
|
|
};
|
|
DecimalPipe = __decorate([lang_1.CONST(), core_1.Pipe({name: 'number'}), core_1.Injectable(), __metadata('design:paramtypes', [])], DecimalPipe);
|
|
return DecimalPipe;
|
|
})(NumberPipe);
|
|
exports.DecimalPipe = DecimalPipe;
|
|
var PercentPipe = (function(_super) {
|
|
__extends(PercentPipe, _super);
|
|
function PercentPipe() {
|
|
_super.apply(this, arguments);
|
|
}
|
|
PercentPipe.prototype.transform = function(value, args) {
|
|
var digits = collection_1.ListWrapper.first(args);
|
|
return NumberPipe._format(value, intl_1.NumberFormatStyle.Percent, digits);
|
|
};
|
|
PercentPipe = __decorate([lang_1.CONST(), core_1.Pipe({name: 'percent'}), core_1.Injectable(), __metadata('design:paramtypes', [])], PercentPipe);
|
|
return PercentPipe;
|
|
})(NumberPipe);
|
|
exports.PercentPipe = PercentPipe;
|
|
var CurrencyPipe = (function(_super) {
|
|
__extends(CurrencyPipe, _super);
|
|
function CurrencyPipe() {
|
|
_super.apply(this, arguments);
|
|
}
|
|
CurrencyPipe.prototype.transform = function(value, args) {
|
|
var currencyCode = lang_1.isPresent(args) && args.length > 0 ? args[0] : 'USD';
|
|
var symbolDisplay = lang_1.isPresent(args) && args.length > 1 ? args[1] : false;
|
|
var digits = lang_1.isPresent(args) && args.length > 2 ? args[2] : null;
|
|
return NumberPipe._format(value, intl_1.NumberFormatStyle.Currency, digits, currencyCode, symbolDisplay);
|
|
};
|
|
CurrencyPipe = __decorate([lang_1.CONST(), core_1.Pipe({name: 'currency'}), core_1.Injectable(), __metadata('design:paramtypes', [])], CurrencyPipe);
|
|
return CurrencyPipe;
|
|
})(NumberPipe);
|
|
exports.CurrencyPipe = CurrencyPipe;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/pipes/uppercase_pipe", ["angular2/src/facade/lang", "angular2/core", "angular2/src/common/pipes/invalid_pipe_argument_exception"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var core_1 = require("angular2/core");
|
|
var invalid_pipe_argument_exception_1 = require("angular2/src/common/pipes/invalid_pipe_argument_exception");
|
|
var UpperCasePipe = (function() {
|
|
function UpperCasePipe() {}
|
|
UpperCasePipe.prototype.transform = function(value, args) {
|
|
if (args === void 0) {
|
|
args = null;
|
|
}
|
|
if (lang_1.isBlank(value))
|
|
return value;
|
|
if (!lang_1.isString(value)) {
|
|
throw new invalid_pipe_argument_exception_1.InvalidPipeArgumentException(UpperCasePipe, value);
|
|
}
|
|
return value.toUpperCase();
|
|
};
|
|
UpperCasePipe = __decorate([lang_1.CONST(), core_1.Pipe({name: 'uppercase'}), core_1.Injectable(), __metadata('design:paramtypes', [])], UpperCasePipe);
|
|
return UpperCasePipe;
|
|
})();
|
|
exports.UpperCasePipe = UpperCasePipe;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/pipes/replace_pipe", ["angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/core", "angular2/src/common/pipes/invalid_pipe_argument_exception"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var core_1 = require("angular2/core");
|
|
var invalid_pipe_argument_exception_1 = require("angular2/src/common/pipes/invalid_pipe_argument_exception");
|
|
var ReplacePipe = (function() {
|
|
function ReplacePipe() {}
|
|
ReplacePipe.prototype.transform = function(value, args) {
|
|
if (lang_1.isBlank(args) || args.length !== 2) {
|
|
throw new exceptions_1.BaseException('ReplacePipe requires two arguments');
|
|
}
|
|
if (lang_1.isBlank(value)) {
|
|
return value;
|
|
}
|
|
if (!this._supportedInput(value)) {
|
|
throw new invalid_pipe_argument_exception_1.InvalidPipeArgumentException(ReplacePipe, value);
|
|
}
|
|
var input = value.toString();
|
|
var pattern = args[0];
|
|
var replacement = args[1];
|
|
if (!this._supportedPattern(pattern)) {
|
|
throw new invalid_pipe_argument_exception_1.InvalidPipeArgumentException(ReplacePipe, pattern);
|
|
}
|
|
if (!this._supportedReplacement(replacement)) {
|
|
throw new invalid_pipe_argument_exception_1.InvalidPipeArgumentException(ReplacePipe, replacement);
|
|
}
|
|
if (lang_1.isFunction(replacement)) {
|
|
var rgxPattern = lang_1.isString(pattern) ? lang_1.RegExpWrapper.create(pattern) : pattern;
|
|
return lang_1.StringWrapper.replaceAllMapped(input, rgxPattern, replacement);
|
|
}
|
|
if (pattern instanceof RegExp) {
|
|
return lang_1.StringWrapper.replaceAll(input, pattern, replacement);
|
|
}
|
|
return lang_1.StringWrapper.replace(input, pattern, replacement);
|
|
};
|
|
ReplacePipe.prototype._supportedInput = function(input) {
|
|
return lang_1.isString(input) || lang_1.isNumber(input);
|
|
};
|
|
ReplacePipe.prototype._supportedPattern = function(pattern) {
|
|
return lang_1.isString(pattern) || pattern instanceof RegExp;
|
|
};
|
|
ReplacePipe.prototype._supportedReplacement = function(replacement) {
|
|
return lang_1.isString(replacement) || lang_1.isFunction(replacement);
|
|
};
|
|
ReplacePipe = __decorate([core_1.Pipe({name: 'replace'}), core_1.Injectable(), __metadata('design:paramtypes', [])], ReplacePipe);
|
|
return ReplacePipe;
|
|
})();
|
|
exports.ReplacePipe = ReplacePipe;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/pipes/i18n_plural_pipe", ["angular2/src/facade/lang", "angular2/core", "angular2/src/common/pipes/invalid_pipe_argument_exception"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var core_1 = require("angular2/core");
|
|
var invalid_pipe_argument_exception_1 = require("angular2/src/common/pipes/invalid_pipe_argument_exception");
|
|
var interpolationExp = lang_1.RegExpWrapper.create('#');
|
|
var I18nPluralPipe = (function() {
|
|
function I18nPluralPipe() {}
|
|
I18nPluralPipe.prototype.transform = function(value, args) {
|
|
if (args === void 0) {
|
|
args = null;
|
|
}
|
|
var key;
|
|
var valueStr;
|
|
var pluralMap = (args[0]);
|
|
if (!lang_1.isStringMap(pluralMap)) {
|
|
throw new invalid_pipe_argument_exception_1.InvalidPipeArgumentException(I18nPluralPipe, pluralMap);
|
|
}
|
|
key = value === 0 || value === 1 ? "=" + value : 'other';
|
|
valueStr = lang_1.isPresent(value) ? value.toString() : '';
|
|
return lang_1.StringWrapper.replaceAll(pluralMap[key], interpolationExp, valueStr);
|
|
};
|
|
I18nPluralPipe = __decorate([lang_1.CONST(), core_1.Pipe({
|
|
name: 'i18nPlural',
|
|
pure: true
|
|
}), core_1.Injectable(), __metadata('design:paramtypes', [])], I18nPluralPipe);
|
|
return I18nPluralPipe;
|
|
})();
|
|
exports.I18nPluralPipe = I18nPluralPipe;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/pipes/i18n_select_pipe", ["angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/core", "angular2/src/common/pipes/invalid_pipe_argument_exception"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var core_1 = require("angular2/core");
|
|
var invalid_pipe_argument_exception_1 = require("angular2/src/common/pipes/invalid_pipe_argument_exception");
|
|
var I18nSelectPipe = (function() {
|
|
function I18nSelectPipe() {}
|
|
I18nSelectPipe.prototype.transform = function(value, args) {
|
|
if (args === void 0) {
|
|
args = null;
|
|
}
|
|
var mapping = (args[0]);
|
|
if (!lang_1.isStringMap(mapping)) {
|
|
throw new invalid_pipe_argument_exception_1.InvalidPipeArgumentException(I18nSelectPipe, mapping);
|
|
}
|
|
return collection_1.StringMapWrapper.contains(mapping, value) ? mapping[value] : mapping['other'];
|
|
};
|
|
I18nSelectPipe = __decorate([lang_1.CONST(), core_1.Pipe({
|
|
name: 'i18nSelect',
|
|
pure: true
|
|
}), core_1.Injectable(), __metadata('design:paramtypes', [])], I18nSelectPipe);
|
|
return I18nSelectPipe;
|
|
})();
|
|
exports.I18nSelectPipe = I18nSelectPipe;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/pipes/common_pipes", ["angular2/src/common/pipes/async_pipe", "angular2/src/common/pipes/uppercase_pipe", "angular2/src/common/pipes/lowercase_pipe", "angular2/src/common/pipes/json_pipe", "angular2/src/common/pipes/slice_pipe", "angular2/src/common/pipes/date_pipe", "angular2/src/common/pipes/number_pipe", "angular2/src/common/pipes/replace_pipe", "angular2/src/common/pipes/i18n_plural_pipe", "angular2/src/common/pipes/i18n_select_pipe", "angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var async_pipe_1 = require("angular2/src/common/pipes/async_pipe");
|
|
var uppercase_pipe_1 = require("angular2/src/common/pipes/uppercase_pipe");
|
|
var lowercase_pipe_1 = require("angular2/src/common/pipes/lowercase_pipe");
|
|
var json_pipe_1 = require("angular2/src/common/pipes/json_pipe");
|
|
var slice_pipe_1 = require("angular2/src/common/pipes/slice_pipe");
|
|
var date_pipe_1 = require("angular2/src/common/pipes/date_pipe");
|
|
var number_pipe_1 = require("angular2/src/common/pipes/number_pipe");
|
|
var replace_pipe_1 = require("angular2/src/common/pipes/replace_pipe");
|
|
var i18n_plural_pipe_1 = require("angular2/src/common/pipes/i18n_plural_pipe");
|
|
var i18n_select_pipe_1 = require("angular2/src/common/pipes/i18n_select_pipe");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
exports.COMMON_PIPES = lang_1.CONST_EXPR([async_pipe_1.AsyncPipe, uppercase_pipe_1.UpperCasePipe, lowercase_pipe_1.LowerCasePipe, json_pipe_1.JsonPipe, slice_pipe_1.SlicePipe, number_pipe_1.DecimalPipe, number_pipe_1.PercentPipe, number_pipe_1.CurrencyPipe, date_pipe_1.DatePipe, replace_pipe_1.ReplacePipe, i18n_plural_pipe_1.I18nPluralPipe, i18n_select_pipe_1.I18nSelectPipe]);
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/directives/ng_class", ["angular2/src/facade/lang", "angular2/core", "angular2/src/facade/collection"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var core_1 = require("angular2/core");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var NgClass = (function() {
|
|
function NgClass(_iterableDiffers, _keyValueDiffers, _ngEl, _renderer) {
|
|
this._iterableDiffers = _iterableDiffers;
|
|
this._keyValueDiffers = _keyValueDiffers;
|
|
this._ngEl = _ngEl;
|
|
this._renderer = _renderer;
|
|
this._initialClasses = [];
|
|
}
|
|
Object.defineProperty(NgClass.prototype, "initialClasses", {
|
|
set: function(v) {
|
|
this._applyInitialClasses(true);
|
|
this._initialClasses = lang_1.isPresent(v) && lang_1.isString(v) ? v.split(' ') : [];
|
|
this._applyInitialClasses(false);
|
|
this._applyClasses(this._rawClass, false);
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(NgClass.prototype, "rawClass", {
|
|
set: function(v) {
|
|
this._cleanupClasses(this._rawClass);
|
|
if (lang_1.isString(v)) {
|
|
v = v.split(' ');
|
|
}
|
|
this._rawClass = v;
|
|
this._iterableDiffer = null;
|
|
this._keyValueDiffer = null;
|
|
if (lang_1.isPresent(v)) {
|
|
if (collection_1.isListLikeIterable(v)) {
|
|
this._iterableDiffer = this._iterableDiffers.find(v).create(null);
|
|
} else {
|
|
this._keyValueDiffer = this._keyValueDiffers.find(v).create(null);
|
|
}
|
|
}
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
NgClass.prototype.ngDoCheck = function() {
|
|
if (lang_1.isPresent(this._iterableDiffer)) {
|
|
var changes = this._iterableDiffer.diff(this._rawClass);
|
|
if (lang_1.isPresent(changes)) {
|
|
this._applyIterableChanges(changes);
|
|
}
|
|
}
|
|
if (lang_1.isPresent(this._keyValueDiffer)) {
|
|
var changes = this._keyValueDiffer.diff(this._rawClass);
|
|
if (lang_1.isPresent(changes)) {
|
|
this._applyKeyValueChanges(changes);
|
|
}
|
|
}
|
|
};
|
|
NgClass.prototype.ngOnDestroy = function() {
|
|
this._cleanupClasses(this._rawClass);
|
|
};
|
|
NgClass.prototype._cleanupClasses = function(rawClassVal) {
|
|
this._applyClasses(rawClassVal, true);
|
|
this._applyInitialClasses(false);
|
|
};
|
|
NgClass.prototype._applyKeyValueChanges = function(changes) {
|
|
var _this = this;
|
|
changes.forEachAddedItem(function(record) {
|
|
_this._toggleClass(record.key, record.currentValue);
|
|
});
|
|
changes.forEachChangedItem(function(record) {
|
|
_this._toggleClass(record.key, record.currentValue);
|
|
});
|
|
changes.forEachRemovedItem(function(record) {
|
|
if (record.previousValue) {
|
|
_this._toggleClass(record.key, false);
|
|
}
|
|
});
|
|
};
|
|
NgClass.prototype._applyIterableChanges = function(changes) {
|
|
var _this = this;
|
|
changes.forEachAddedItem(function(record) {
|
|
_this._toggleClass(record.item, true);
|
|
});
|
|
changes.forEachRemovedItem(function(record) {
|
|
_this._toggleClass(record.item, false);
|
|
});
|
|
};
|
|
NgClass.prototype._applyInitialClasses = function(isCleanup) {
|
|
var _this = this;
|
|
this._initialClasses.forEach(function(className) {
|
|
return _this._toggleClass(className, !isCleanup);
|
|
});
|
|
};
|
|
NgClass.prototype._applyClasses = function(rawClassVal, isCleanup) {
|
|
var _this = this;
|
|
if (lang_1.isPresent(rawClassVal)) {
|
|
if (lang_1.isArray(rawClassVal)) {
|
|
rawClassVal.forEach(function(className) {
|
|
return _this._toggleClass(className, !isCleanup);
|
|
});
|
|
} else if (rawClassVal instanceof Set) {
|
|
rawClassVal.forEach(function(className) {
|
|
return _this._toggleClass(className, !isCleanup);
|
|
});
|
|
} else {
|
|
collection_1.StringMapWrapper.forEach(rawClassVal, function(expVal, className) {
|
|
if (lang_1.isPresent(expVal))
|
|
_this._toggleClass(className, !isCleanup);
|
|
});
|
|
}
|
|
}
|
|
};
|
|
NgClass.prototype._toggleClass = function(className, enabled) {
|
|
className = className.trim();
|
|
if (className.length > 0) {
|
|
if (className.indexOf(' ') > -1) {
|
|
var classes = className.split(/\s+/g);
|
|
for (var i = 0,
|
|
len = classes.length; i < len; i++) {
|
|
this._renderer.setElementClass(this._ngEl.nativeElement, classes[i], enabled);
|
|
}
|
|
} else {
|
|
this._renderer.setElementClass(this._ngEl.nativeElement, className, enabled);
|
|
}
|
|
}
|
|
};
|
|
NgClass = __decorate([core_1.Directive({
|
|
selector: '[ngClass]',
|
|
inputs: ['rawClass: ngClass', 'initialClasses: class']
|
|
}), __metadata('design:paramtypes', [core_1.IterableDiffers, core_1.KeyValueDiffers, core_1.ElementRef, core_1.Renderer])], NgClass);
|
|
return NgClass;
|
|
})();
|
|
exports.NgClass = NgClass;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/directives/ng_for", ["angular2/core", "angular2/src/facade/lang", "angular2/src/facade/exceptions"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var core_1 = require("angular2/core");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var NgFor = (function() {
|
|
function NgFor(_viewContainer, _templateRef, _iterableDiffers, _cdr) {
|
|
this._viewContainer = _viewContainer;
|
|
this._templateRef = _templateRef;
|
|
this._iterableDiffers = _iterableDiffers;
|
|
this._cdr = _cdr;
|
|
}
|
|
Object.defineProperty(NgFor.prototype, "ngForOf", {
|
|
set: function(value) {
|
|
this._ngForOf = value;
|
|
if (lang_1.isBlank(this._differ) && lang_1.isPresent(value)) {
|
|
try {
|
|
this._differ = this._iterableDiffers.find(value).create(this._cdr, this._ngForTrackBy);
|
|
} catch (e) {
|
|
throw new exceptions_1.BaseException("Cannot find a differ supporting object '" + value + "' of type '" + lang_1.getTypeNameForDebugging(value) + "'. NgFor only supports binding to Iterables such as Arrays.");
|
|
}
|
|
}
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(NgFor.prototype, "ngForTemplate", {
|
|
set: function(value) {
|
|
if (lang_1.isPresent(value)) {
|
|
this._templateRef = value;
|
|
}
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(NgFor.prototype, "ngForTrackBy", {
|
|
set: function(value) {
|
|
this._ngForTrackBy = value;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
NgFor.prototype.ngDoCheck = function() {
|
|
if (lang_1.isPresent(this._differ)) {
|
|
var changes = this._differ.diff(this._ngForOf);
|
|
if (lang_1.isPresent(changes))
|
|
this._applyChanges(changes);
|
|
}
|
|
};
|
|
NgFor.prototype._applyChanges = function(changes) {
|
|
var _this = this;
|
|
var recordViewTuples = [];
|
|
changes.forEachRemovedItem(function(removedRecord) {
|
|
return recordViewTuples.push(new RecordViewTuple(removedRecord, null));
|
|
});
|
|
changes.forEachMovedItem(function(movedRecord) {
|
|
return recordViewTuples.push(new RecordViewTuple(movedRecord, null));
|
|
});
|
|
var insertTuples = this._bulkRemove(recordViewTuples);
|
|
changes.forEachAddedItem(function(addedRecord) {
|
|
return insertTuples.push(new RecordViewTuple(addedRecord, null));
|
|
});
|
|
this._bulkInsert(insertTuples);
|
|
for (var i = 0; i < insertTuples.length; i++) {
|
|
this._perViewChange(insertTuples[i].view, insertTuples[i].record);
|
|
}
|
|
for (var i = 0,
|
|
ilen = this._viewContainer.length; i < ilen; i++) {
|
|
var viewRef = this._viewContainer.get(i);
|
|
viewRef.setLocal('last', i === ilen - 1);
|
|
}
|
|
changes.forEachIdentityChange(function(record) {
|
|
var viewRef = _this._viewContainer.get(record.currentIndex);
|
|
viewRef.setLocal('\$implicit', record.item);
|
|
});
|
|
};
|
|
NgFor.prototype._perViewChange = function(view, record) {
|
|
view.setLocal('\$implicit', record.item);
|
|
view.setLocal('index', record.currentIndex);
|
|
view.setLocal('even', (record.currentIndex % 2 == 0));
|
|
view.setLocal('odd', (record.currentIndex % 2 == 1));
|
|
};
|
|
NgFor.prototype._bulkRemove = function(tuples) {
|
|
tuples.sort(function(a, b) {
|
|
return a.record.previousIndex - b.record.previousIndex;
|
|
});
|
|
var movedTuples = [];
|
|
for (var i = tuples.length - 1; i >= 0; i--) {
|
|
var tuple = tuples[i];
|
|
if (lang_1.isPresent(tuple.record.currentIndex)) {
|
|
tuple.view = this._viewContainer.detach(tuple.record.previousIndex);
|
|
movedTuples.push(tuple);
|
|
} else {
|
|
this._viewContainer.remove(tuple.record.previousIndex);
|
|
}
|
|
}
|
|
return movedTuples;
|
|
};
|
|
NgFor.prototype._bulkInsert = function(tuples) {
|
|
tuples.sort(function(a, b) {
|
|
return a.record.currentIndex - b.record.currentIndex;
|
|
});
|
|
for (var i = 0; i < tuples.length; i++) {
|
|
var tuple = tuples[i];
|
|
if (lang_1.isPresent(tuple.view)) {
|
|
this._viewContainer.insert(tuple.view, tuple.record.currentIndex);
|
|
} else {
|
|
tuple.view = this._viewContainer.createEmbeddedView(this._templateRef, tuple.record.currentIndex);
|
|
}
|
|
}
|
|
return tuples;
|
|
};
|
|
NgFor = __decorate([core_1.Directive({
|
|
selector: '[ngFor][ngForOf]',
|
|
inputs: ['ngForTrackBy', 'ngForOf', 'ngForTemplate']
|
|
}), __metadata('design:paramtypes', [core_1.ViewContainerRef, core_1.TemplateRef, core_1.IterableDiffers, core_1.ChangeDetectorRef])], NgFor);
|
|
return NgFor;
|
|
})();
|
|
exports.NgFor = NgFor;
|
|
var RecordViewTuple = (function() {
|
|
function RecordViewTuple(record, view) {
|
|
this.record = record;
|
|
this.view = view;
|
|
}
|
|
return RecordViewTuple;
|
|
})();
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/directives/ng_if", ["angular2/core", "angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var core_1 = require("angular2/core");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var NgIf = (function() {
|
|
function NgIf(_viewContainer, _templateRef) {
|
|
this._viewContainer = _viewContainer;
|
|
this._templateRef = _templateRef;
|
|
this._prevCondition = null;
|
|
}
|
|
Object.defineProperty(NgIf.prototype, "ngIf", {
|
|
set: function(newCondition) {
|
|
if (newCondition && (lang_1.isBlank(this._prevCondition) || !this._prevCondition)) {
|
|
this._prevCondition = true;
|
|
this._viewContainer.createEmbeddedView(this._templateRef);
|
|
} else if (!newCondition && (lang_1.isBlank(this._prevCondition) || this._prevCondition)) {
|
|
this._prevCondition = false;
|
|
this._viewContainer.clear();
|
|
}
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
NgIf = __decorate([core_1.Directive({
|
|
selector: '[ngIf]',
|
|
inputs: ['ngIf']
|
|
}), __metadata('design:paramtypes', [core_1.ViewContainerRef, core_1.TemplateRef])], NgIf);
|
|
return NgIf;
|
|
})();
|
|
exports.NgIf = NgIf;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/directives/ng_style", ["angular2/core", "angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var core_1 = require("angular2/core");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var NgStyle = (function() {
|
|
function NgStyle(_differs, _ngEl, _renderer) {
|
|
this._differs = _differs;
|
|
this._ngEl = _ngEl;
|
|
this._renderer = _renderer;
|
|
}
|
|
Object.defineProperty(NgStyle.prototype, "rawStyle", {
|
|
set: function(v) {
|
|
this._rawStyle = v;
|
|
if (lang_1.isBlank(this._differ) && lang_1.isPresent(v)) {
|
|
this._differ = this._differs.find(this._rawStyle).create(null);
|
|
}
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
NgStyle.prototype.ngDoCheck = function() {
|
|
if (lang_1.isPresent(this._differ)) {
|
|
var changes = this._differ.diff(this._rawStyle);
|
|
if (lang_1.isPresent(changes)) {
|
|
this._applyChanges(changes);
|
|
}
|
|
}
|
|
};
|
|
NgStyle.prototype._applyChanges = function(changes) {
|
|
var _this = this;
|
|
changes.forEachAddedItem(function(record) {
|
|
_this._setStyle(record.key, record.currentValue);
|
|
});
|
|
changes.forEachChangedItem(function(record) {
|
|
_this._setStyle(record.key, record.currentValue);
|
|
});
|
|
changes.forEachRemovedItem(function(record) {
|
|
_this._setStyle(record.key, null);
|
|
});
|
|
};
|
|
NgStyle.prototype._setStyle = function(name, val) {
|
|
this._renderer.setElementStyle(this._ngEl.nativeElement, name, val);
|
|
};
|
|
NgStyle = __decorate([core_1.Directive({
|
|
selector: '[ngStyle]',
|
|
inputs: ['rawStyle: ngStyle']
|
|
}), __metadata('design:paramtypes', [core_1.KeyValueDiffers, core_1.ElementRef, core_1.Renderer])], NgStyle);
|
|
return NgStyle;
|
|
})();
|
|
exports.NgStyle = NgStyle;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/directives/ng_switch", ["angular2/core", "angular2/src/facade/lang", "angular2/src/facade/collection"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var __param = (this && this.__param) || function(paramIndex, decorator) {
|
|
return function(target, key) {
|
|
decorator(target, key, paramIndex);
|
|
};
|
|
};
|
|
var core_1 = require("angular2/core");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var _WHEN_DEFAULT = lang_1.CONST_EXPR(new Object());
|
|
var SwitchView = (function() {
|
|
function SwitchView(_viewContainerRef, _templateRef) {
|
|
this._viewContainerRef = _viewContainerRef;
|
|
this._templateRef = _templateRef;
|
|
}
|
|
SwitchView.prototype.create = function() {
|
|
this._viewContainerRef.createEmbeddedView(this._templateRef);
|
|
};
|
|
SwitchView.prototype.destroy = function() {
|
|
this._viewContainerRef.clear();
|
|
};
|
|
return SwitchView;
|
|
})();
|
|
exports.SwitchView = SwitchView;
|
|
var NgSwitch = (function() {
|
|
function NgSwitch() {
|
|
this._useDefault = false;
|
|
this._valueViews = new collection_1.Map();
|
|
this._activeViews = [];
|
|
}
|
|
Object.defineProperty(NgSwitch.prototype, "ngSwitch", {
|
|
set: function(value) {
|
|
this._emptyAllActiveViews();
|
|
this._useDefault = false;
|
|
var views = this._valueViews.get(value);
|
|
if (lang_1.isBlank(views)) {
|
|
this._useDefault = true;
|
|
views = lang_1.normalizeBlank(this._valueViews.get(_WHEN_DEFAULT));
|
|
}
|
|
this._activateViews(views);
|
|
this._switchValue = value;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
NgSwitch.prototype._onWhenValueChanged = function(oldWhen, newWhen, view) {
|
|
this._deregisterView(oldWhen, view);
|
|
this._registerView(newWhen, view);
|
|
if (oldWhen === this._switchValue) {
|
|
view.destroy();
|
|
collection_1.ListWrapper.remove(this._activeViews, view);
|
|
} else if (newWhen === this._switchValue) {
|
|
if (this._useDefault) {
|
|
this._useDefault = false;
|
|
this._emptyAllActiveViews();
|
|
}
|
|
view.create();
|
|
this._activeViews.push(view);
|
|
}
|
|
if (this._activeViews.length === 0 && !this._useDefault) {
|
|
this._useDefault = true;
|
|
this._activateViews(this._valueViews.get(_WHEN_DEFAULT));
|
|
}
|
|
};
|
|
NgSwitch.prototype._emptyAllActiveViews = function() {
|
|
var activeContainers = this._activeViews;
|
|
for (var i = 0; i < activeContainers.length; i++) {
|
|
activeContainers[i].destroy();
|
|
}
|
|
this._activeViews = [];
|
|
};
|
|
NgSwitch.prototype._activateViews = function(views) {
|
|
if (lang_1.isPresent(views)) {
|
|
for (var i = 0; i < views.length; i++) {
|
|
views[i].create();
|
|
}
|
|
this._activeViews = views;
|
|
}
|
|
};
|
|
NgSwitch.prototype._registerView = function(value, view) {
|
|
var views = this._valueViews.get(value);
|
|
if (lang_1.isBlank(views)) {
|
|
views = [];
|
|
this._valueViews.set(value, views);
|
|
}
|
|
views.push(view);
|
|
};
|
|
NgSwitch.prototype._deregisterView = function(value, view) {
|
|
if (value === _WHEN_DEFAULT)
|
|
return ;
|
|
var views = this._valueViews.get(value);
|
|
if (views.length == 1) {
|
|
this._valueViews.delete(value);
|
|
} else {
|
|
collection_1.ListWrapper.remove(views, view);
|
|
}
|
|
};
|
|
NgSwitch = __decorate([core_1.Directive({
|
|
selector: '[ngSwitch]',
|
|
inputs: ['ngSwitch']
|
|
}), __metadata('design:paramtypes', [])], NgSwitch);
|
|
return NgSwitch;
|
|
})();
|
|
exports.NgSwitch = NgSwitch;
|
|
var NgSwitchWhen = (function() {
|
|
function NgSwitchWhen(viewContainer, templateRef, ngSwitch) {
|
|
this._value = _WHEN_DEFAULT;
|
|
this._switch = ngSwitch;
|
|
this._view = new SwitchView(viewContainer, templateRef);
|
|
}
|
|
Object.defineProperty(NgSwitchWhen.prototype, "ngSwitchWhen", {
|
|
set: function(value) {
|
|
this._switch._onWhenValueChanged(this._value, value, this._view);
|
|
this._value = value;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
NgSwitchWhen = __decorate([core_1.Directive({
|
|
selector: '[ngSwitchWhen]',
|
|
inputs: ['ngSwitchWhen']
|
|
}), __param(2, core_1.Host()), __metadata('design:paramtypes', [core_1.ViewContainerRef, core_1.TemplateRef, NgSwitch])], NgSwitchWhen);
|
|
return NgSwitchWhen;
|
|
})();
|
|
exports.NgSwitchWhen = NgSwitchWhen;
|
|
var NgSwitchDefault = (function() {
|
|
function NgSwitchDefault(viewContainer, templateRef, sswitch) {
|
|
sswitch._registerView(_WHEN_DEFAULT, new SwitchView(viewContainer, templateRef));
|
|
}
|
|
NgSwitchDefault = __decorate([core_1.Directive({selector: '[ngSwitchDefault]'}), __param(2, core_1.Host()), __metadata('design:paramtypes', [core_1.ViewContainerRef, core_1.TemplateRef, NgSwitch])], NgSwitchDefault);
|
|
return NgSwitchDefault;
|
|
})();
|
|
exports.NgSwitchDefault = NgSwitchDefault;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/directives/ng_plural", ["angular2/core", "angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/common/directives/ng_switch"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var __param = (this && this.__param) || function(paramIndex, decorator) {
|
|
return function(target, key) {
|
|
decorator(target, key, paramIndex);
|
|
};
|
|
};
|
|
var core_1 = require("angular2/core");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var ng_switch_1 = require("angular2/src/common/directives/ng_switch");
|
|
var _CATEGORY_DEFAULT = 'other';
|
|
var NgLocalization = (function() {
|
|
function NgLocalization() {}
|
|
return NgLocalization;
|
|
})();
|
|
exports.NgLocalization = NgLocalization;
|
|
var NgPluralCase = (function() {
|
|
function NgPluralCase(value, template, viewContainer) {
|
|
this.value = value;
|
|
this._view = new ng_switch_1.SwitchView(viewContainer, template);
|
|
}
|
|
NgPluralCase = __decorate([core_1.Directive({selector: '[ngPluralCase]'}), __param(0, core_1.Attribute('ngPluralCase')), __metadata('design:paramtypes', [String, core_1.TemplateRef, core_1.ViewContainerRef])], NgPluralCase);
|
|
return NgPluralCase;
|
|
})();
|
|
exports.NgPluralCase = NgPluralCase;
|
|
var NgPlural = (function() {
|
|
function NgPlural(_localization) {
|
|
this._localization = _localization;
|
|
this._caseViews = new collection_1.Map();
|
|
this.cases = null;
|
|
}
|
|
Object.defineProperty(NgPlural.prototype, "ngPlural", {
|
|
set: function(value) {
|
|
this._switchValue = value;
|
|
this._updateView();
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
NgPlural.prototype.ngAfterContentInit = function() {
|
|
var _this = this;
|
|
this.cases.forEach(function(pluralCase) {
|
|
_this._caseViews.set(_this._formatValue(pluralCase), pluralCase._view);
|
|
});
|
|
this._updateView();
|
|
};
|
|
NgPlural.prototype._updateView = function() {
|
|
this._clearViews();
|
|
var view = this._caseViews.get(this._switchValue);
|
|
if (!lang_1.isPresent(view))
|
|
view = this._getCategoryView(this._switchValue);
|
|
this._activateView(view);
|
|
};
|
|
NgPlural.prototype._clearViews = function() {
|
|
if (lang_1.isPresent(this._activeView))
|
|
this._activeView.destroy();
|
|
};
|
|
NgPlural.prototype._activateView = function(view) {
|
|
if (!lang_1.isPresent(view))
|
|
return ;
|
|
this._activeView = view;
|
|
this._activeView.create();
|
|
};
|
|
NgPlural.prototype._getCategoryView = function(value) {
|
|
var category = this._localization.getPluralCategory(value);
|
|
var categoryView = this._caseViews.get(category);
|
|
return lang_1.isPresent(categoryView) ? categoryView : this._caseViews.get(_CATEGORY_DEFAULT);
|
|
};
|
|
NgPlural.prototype._isValueView = function(pluralCase) {
|
|
return pluralCase.value[0] === "=";
|
|
};
|
|
NgPlural.prototype._formatValue = function(pluralCase) {
|
|
return this._isValueView(pluralCase) ? this._stripValue(pluralCase.value) : pluralCase.value;
|
|
};
|
|
NgPlural.prototype._stripValue = function(value) {
|
|
return lang_1.NumberWrapper.parseInt(value.substring(1), 10);
|
|
};
|
|
__decorate([core_1.ContentChildren(NgPluralCase), __metadata('design:type', core_1.QueryList)], NgPlural.prototype, "cases", void 0);
|
|
__decorate([core_1.Input(), __metadata('design:type', Number), __metadata('design:paramtypes', [Number])], NgPlural.prototype, "ngPlural", null);
|
|
NgPlural = __decorate([core_1.Directive({selector: '[ngPlural]'}), __metadata('design:paramtypes', [NgLocalization])], NgPlural);
|
|
return NgPlural;
|
|
})();
|
|
exports.NgPlural = NgPlural;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/directives/observable_list_diff", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/directives/core_directives", ["angular2/src/facade/lang", "angular2/src/common/directives/ng_class", "angular2/src/common/directives/ng_for", "angular2/src/common/directives/ng_if", "angular2/src/common/directives/ng_style", "angular2/src/common/directives/ng_switch", "angular2/src/common/directives/ng_plural"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var ng_class_1 = require("angular2/src/common/directives/ng_class");
|
|
var ng_for_1 = require("angular2/src/common/directives/ng_for");
|
|
var ng_if_1 = require("angular2/src/common/directives/ng_if");
|
|
var ng_style_1 = require("angular2/src/common/directives/ng_style");
|
|
var ng_switch_1 = require("angular2/src/common/directives/ng_switch");
|
|
var ng_plural_1 = require("angular2/src/common/directives/ng_plural");
|
|
exports.CORE_DIRECTIVES = lang_1.CONST_EXPR([ng_class_1.NgClass, ng_for_1.NgFor, ng_if_1.NgIf, ng_style_1.NgStyle, ng_switch_1.NgSwitch, ng_switch_1.NgSwitchWhen, ng_switch_1.NgSwitchDefault, ng_plural_1.NgPlural, ng_plural_1.NgPluralCase]);
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/forms/model", ["angular2/src/facade/lang", "angular2/src/facade/async", "angular2/src/facade/promise", "angular2/src/facade/collection"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var async_1 = require("angular2/src/facade/async");
|
|
var promise_1 = require("angular2/src/facade/promise");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
exports.VALID = "VALID";
|
|
exports.INVALID = "INVALID";
|
|
exports.PENDING = "PENDING";
|
|
function isControl(control) {
|
|
return control instanceof AbstractControl;
|
|
}
|
|
exports.isControl = isControl;
|
|
function _find(control, path) {
|
|
if (lang_1.isBlank(path))
|
|
return null;
|
|
if (!(path instanceof Array)) {
|
|
path = path.split("/");
|
|
}
|
|
if (path instanceof Array && collection_1.ListWrapper.isEmpty(path))
|
|
return null;
|
|
return path.reduce(function(v, name) {
|
|
if (v instanceof ControlGroup) {
|
|
return lang_1.isPresent(v.controls[name]) ? v.controls[name] : null;
|
|
} else if (v instanceof ControlArray) {
|
|
var index = name;
|
|
return lang_1.isPresent(v.at(index)) ? v.at(index) : null;
|
|
} else {
|
|
return null;
|
|
}
|
|
}, control);
|
|
}
|
|
function toObservable(r) {
|
|
return promise_1.PromiseWrapper.isPromise(r) ? async_1.ObservableWrapper.fromPromise(r) : r;
|
|
}
|
|
var AbstractControl = (function() {
|
|
function AbstractControl(validator, asyncValidator) {
|
|
this.validator = validator;
|
|
this.asyncValidator = asyncValidator;
|
|
this._pristine = true;
|
|
this._touched = false;
|
|
}
|
|
Object.defineProperty(AbstractControl.prototype, "value", {
|
|
get: function() {
|
|
return this._value;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(AbstractControl.prototype, "status", {
|
|
get: function() {
|
|
return this._status;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(AbstractControl.prototype, "valid", {
|
|
get: function() {
|
|
return this._status === exports.VALID;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(AbstractControl.prototype, "errors", {
|
|
get: function() {
|
|
return this._errors;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(AbstractControl.prototype, "pristine", {
|
|
get: function() {
|
|
return this._pristine;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(AbstractControl.prototype, "dirty", {
|
|
get: function() {
|
|
return !this.pristine;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(AbstractControl.prototype, "touched", {
|
|
get: function() {
|
|
return this._touched;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(AbstractControl.prototype, "untouched", {
|
|
get: function() {
|
|
return !this._touched;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(AbstractControl.prototype, "valueChanges", {
|
|
get: function() {
|
|
return this._valueChanges;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(AbstractControl.prototype, "statusChanges", {
|
|
get: function() {
|
|
return this._statusChanges;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(AbstractControl.prototype, "pending", {
|
|
get: function() {
|
|
return this._status == exports.PENDING;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
AbstractControl.prototype.markAsTouched = function() {
|
|
this._touched = true;
|
|
};
|
|
AbstractControl.prototype.markAsDirty = function(_a) {
|
|
var onlySelf = (_a === void 0 ? {} : _a).onlySelf;
|
|
onlySelf = lang_1.normalizeBool(onlySelf);
|
|
this._pristine = false;
|
|
if (lang_1.isPresent(this._parent) && !onlySelf) {
|
|
this._parent.markAsDirty({onlySelf: onlySelf});
|
|
}
|
|
};
|
|
AbstractControl.prototype.markAsPending = function(_a) {
|
|
var onlySelf = (_a === void 0 ? {} : _a).onlySelf;
|
|
onlySelf = lang_1.normalizeBool(onlySelf);
|
|
this._status = exports.PENDING;
|
|
if (lang_1.isPresent(this._parent) && !onlySelf) {
|
|
this._parent.markAsPending({onlySelf: onlySelf});
|
|
}
|
|
};
|
|
AbstractControl.prototype.setParent = function(parent) {
|
|
this._parent = parent;
|
|
};
|
|
AbstractControl.prototype.updateValueAndValidity = function(_a) {
|
|
var _b = _a === void 0 ? {} : _a,
|
|
onlySelf = _b.onlySelf,
|
|
emitEvent = _b.emitEvent;
|
|
onlySelf = lang_1.normalizeBool(onlySelf);
|
|
emitEvent = lang_1.isPresent(emitEvent) ? emitEvent : true;
|
|
this._updateValue();
|
|
this._errors = this._runValidator();
|
|
this._status = this._calculateStatus();
|
|
if (this._status == exports.VALID || this._status == exports.PENDING) {
|
|
this._runAsyncValidator(emitEvent);
|
|
}
|
|
if (emitEvent) {
|
|
async_1.ObservableWrapper.callEmit(this._valueChanges, this._value);
|
|
async_1.ObservableWrapper.callEmit(this._statusChanges, this._status);
|
|
}
|
|
if (lang_1.isPresent(this._parent) && !onlySelf) {
|
|
this._parent.updateValueAndValidity({
|
|
onlySelf: onlySelf,
|
|
emitEvent: emitEvent
|
|
});
|
|
}
|
|
};
|
|
AbstractControl.prototype._runValidator = function() {
|
|
return lang_1.isPresent(this.validator) ? this.validator(this) : null;
|
|
};
|
|
AbstractControl.prototype._runAsyncValidator = function(emitEvent) {
|
|
var _this = this;
|
|
if (lang_1.isPresent(this.asyncValidator)) {
|
|
this._status = exports.PENDING;
|
|
this._cancelExistingSubscription();
|
|
var obs = toObservable(this.asyncValidator(this));
|
|
this._asyncValidationSubscription = async_1.ObservableWrapper.subscribe(obs, function(res) {
|
|
return _this.setErrors(res, {emitEvent: emitEvent});
|
|
});
|
|
}
|
|
};
|
|
AbstractControl.prototype._cancelExistingSubscription = function() {
|
|
if (lang_1.isPresent(this._asyncValidationSubscription)) {
|
|
async_1.ObservableWrapper.dispose(this._asyncValidationSubscription);
|
|
}
|
|
};
|
|
AbstractControl.prototype.setErrors = function(errors, _a) {
|
|
var emitEvent = (_a === void 0 ? {} : _a).emitEvent;
|
|
emitEvent = lang_1.isPresent(emitEvent) ? emitEvent : true;
|
|
this._errors = errors;
|
|
this._status = this._calculateStatus();
|
|
if (emitEvent) {
|
|
async_1.ObservableWrapper.callEmit(this._statusChanges, this._status);
|
|
}
|
|
if (lang_1.isPresent(this._parent)) {
|
|
this._parent._updateControlsErrors();
|
|
}
|
|
};
|
|
AbstractControl.prototype.find = function(path) {
|
|
return _find(this, path);
|
|
};
|
|
AbstractControl.prototype.getError = function(errorCode, path) {
|
|
if (path === void 0) {
|
|
path = null;
|
|
}
|
|
var control = lang_1.isPresent(path) && !collection_1.ListWrapper.isEmpty(path) ? this.find(path) : this;
|
|
if (lang_1.isPresent(control) && lang_1.isPresent(control._errors)) {
|
|
return collection_1.StringMapWrapper.get(control._errors, errorCode);
|
|
} else {
|
|
return null;
|
|
}
|
|
};
|
|
AbstractControl.prototype.hasError = function(errorCode, path) {
|
|
if (path === void 0) {
|
|
path = null;
|
|
}
|
|
return lang_1.isPresent(this.getError(errorCode, path));
|
|
};
|
|
Object.defineProperty(AbstractControl.prototype, "root", {
|
|
get: function() {
|
|
var x = this;
|
|
while (lang_1.isPresent(x._parent)) {
|
|
x = x._parent;
|
|
}
|
|
return x;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
AbstractControl.prototype._updateControlsErrors = function() {
|
|
this._status = this._calculateStatus();
|
|
if (lang_1.isPresent(this._parent)) {
|
|
this._parent._updateControlsErrors();
|
|
}
|
|
};
|
|
AbstractControl.prototype._initObservables = function() {
|
|
this._valueChanges = new async_1.EventEmitter();
|
|
this._statusChanges = new async_1.EventEmitter();
|
|
};
|
|
AbstractControl.prototype._calculateStatus = function() {
|
|
if (lang_1.isPresent(this._errors))
|
|
return exports.INVALID;
|
|
if (this._anyControlsHaveStatus(exports.PENDING))
|
|
return exports.PENDING;
|
|
if (this._anyControlsHaveStatus(exports.INVALID))
|
|
return exports.INVALID;
|
|
return exports.VALID;
|
|
};
|
|
return AbstractControl;
|
|
})();
|
|
exports.AbstractControl = AbstractControl;
|
|
var Control = (function(_super) {
|
|
__extends(Control, _super);
|
|
function Control(value, validator, asyncValidator) {
|
|
if (value === void 0) {
|
|
value = null;
|
|
}
|
|
if (validator === void 0) {
|
|
validator = null;
|
|
}
|
|
if (asyncValidator === void 0) {
|
|
asyncValidator = null;
|
|
}
|
|
_super.call(this, validator, asyncValidator);
|
|
this._value = value;
|
|
this.updateValueAndValidity({
|
|
onlySelf: true,
|
|
emitEvent: false
|
|
});
|
|
this._initObservables();
|
|
}
|
|
Control.prototype.updateValue = function(value, _a) {
|
|
var _b = _a === void 0 ? {} : _a,
|
|
onlySelf = _b.onlySelf,
|
|
emitEvent = _b.emitEvent,
|
|
emitModelToViewChange = _b.emitModelToViewChange;
|
|
emitModelToViewChange = lang_1.isPresent(emitModelToViewChange) ? emitModelToViewChange : true;
|
|
this._value = value;
|
|
if (lang_1.isPresent(this._onChange) && emitModelToViewChange)
|
|
this._onChange(this._value);
|
|
this.updateValueAndValidity({
|
|
onlySelf: onlySelf,
|
|
emitEvent: emitEvent
|
|
});
|
|
};
|
|
Control.prototype._updateValue = function() {};
|
|
Control.prototype._anyControlsHaveStatus = function(status) {
|
|
return false;
|
|
};
|
|
Control.prototype.registerOnChange = function(fn) {
|
|
this._onChange = fn;
|
|
};
|
|
return Control;
|
|
})(AbstractControl);
|
|
exports.Control = Control;
|
|
var ControlGroup = (function(_super) {
|
|
__extends(ControlGroup, _super);
|
|
function ControlGroup(controls, optionals, validator, asyncValidator) {
|
|
if (optionals === void 0) {
|
|
optionals = null;
|
|
}
|
|
if (validator === void 0) {
|
|
validator = null;
|
|
}
|
|
if (asyncValidator === void 0) {
|
|
asyncValidator = null;
|
|
}
|
|
_super.call(this, validator, asyncValidator);
|
|
this.controls = controls;
|
|
this._optionals = lang_1.isPresent(optionals) ? optionals : {};
|
|
this._initObservables();
|
|
this._setParentForControls();
|
|
this.updateValueAndValidity({
|
|
onlySelf: true,
|
|
emitEvent: false
|
|
});
|
|
}
|
|
ControlGroup.prototype.addControl = function(name, control) {
|
|
this.controls[name] = control;
|
|
control.setParent(this);
|
|
};
|
|
ControlGroup.prototype.removeControl = function(name) {
|
|
collection_1.StringMapWrapper.delete(this.controls, name);
|
|
};
|
|
ControlGroup.prototype.include = function(controlName) {
|
|
collection_1.StringMapWrapper.set(this._optionals, controlName, true);
|
|
this.updateValueAndValidity();
|
|
};
|
|
ControlGroup.prototype.exclude = function(controlName) {
|
|
collection_1.StringMapWrapper.set(this._optionals, controlName, false);
|
|
this.updateValueAndValidity();
|
|
};
|
|
ControlGroup.prototype.contains = function(controlName) {
|
|
var c = collection_1.StringMapWrapper.contains(this.controls, controlName);
|
|
return c && this._included(controlName);
|
|
};
|
|
ControlGroup.prototype._setParentForControls = function() {
|
|
var _this = this;
|
|
collection_1.StringMapWrapper.forEach(this.controls, function(control, name) {
|
|
control.setParent(_this);
|
|
});
|
|
};
|
|
ControlGroup.prototype._updateValue = function() {
|
|
this._value = this._reduceValue();
|
|
};
|
|
ControlGroup.prototype._anyControlsHaveStatus = function(status) {
|
|
var _this = this;
|
|
var res = false;
|
|
collection_1.StringMapWrapper.forEach(this.controls, function(control, name) {
|
|
res = res || (_this.contains(name) && control.status == status);
|
|
});
|
|
return res;
|
|
};
|
|
ControlGroup.prototype._reduceValue = function() {
|
|
return this._reduceChildren({}, function(acc, control, name) {
|
|
acc[name] = control.value;
|
|
return acc;
|
|
});
|
|
};
|
|
ControlGroup.prototype._reduceChildren = function(initValue, fn) {
|
|
var _this = this;
|
|
var res = initValue;
|
|
collection_1.StringMapWrapper.forEach(this.controls, function(control, name) {
|
|
if (_this._included(name)) {
|
|
res = fn(res, control, name);
|
|
}
|
|
});
|
|
return res;
|
|
};
|
|
ControlGroup.prototype._included = function(controlName) {
|
|
var isOptional = collection_1.StringMapWrapper.contains(this._optionals, controlName);
|
|
return !isOptional || collection_1.StringMapWrapper.get(this._optionals, controlName);
|
|
};
|
|
return ControlGroup;
|
|
})(AbstractControl);
|
|
exports.ControlGroup = ControlGroup;
|
|
var ControlArray = (function(_super) {
|
|
__extends(ControlArray, _super);
|
|
function ControlArray(controls, validator, asyncValidator) {
|
|
if (validator === void 0) {
|
|
validator = null;
|
|
}
|
|
if (asyncValidator === void 0) {
|
|
asyncValidator = null;
|
|
}
|
|
_super.call(this, validator, asyncValidator);
|
|
this.controls = controls;
|
|
this._initObservables();
|
|
this._setParentForControls();
|
|
this.updateValueAndValidity({
|
|
onlySelf: true,
|
|
emitEvent: false
|
|
});
|
|
}
|
|
ControlArray.prototype.at = function(index) {
|
|
return this.controls[index];
|
|
};
|
|
ControlArray.prototype.push = function(control) {
|
|
this.controls.push(control);
|
|
control.setParent(this);
|
|
this.updateValueAndValidity();
|
|
};
|
|
ControlArray.prototype.insert = function(index, control) {
|
|
collection_1.ListWrapper.insert(this.controls, index, control);
|
|
control.setParent(this);
|
|
this.updateValueAndValidity();
|
|
};
|
|
ControlArray.prototype.removeAt = function(index) {
|
|
collection_1.ListWrapper.removeAt(this.controls, index);
|
|
this.updateValueAndValidity();
|
|
};
|
|
Object.defineProperty(ControlArray.prototype, "length", {
|
|
get: function() {
|
|
return this.controls.length;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
ControlArray.prototype._updateValue = function() {
|
|
this._value = this.controls.map(function(control) {
|
|
return control.value;
|
|
});
|
|
};
|
|
ControlArray.prototype._anyControlsHaveStatus = function(status) {
|
|
return this.controls.some(function(c) {
|
|
return c.status == status;
|
|
});
|
|
};
|
|
ControlArray.prototype._setParentForControls = function() {
|
|
var _this = this;
|
|
this.controls.forEach(function(control) {
|
|
control.setParent(_this);
|
|
});
|
|
};
|
|
return ControlArray;
|
|
})(AbstractControl);
|
|
exports.ControlArray = ControlArray;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/forms/directives/abstract_control_directive", ["angular2/src/facade/lang", "angular2/src/facade/exceptions"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var AbstractControlDirective = (function() {
|
|
function AbstractControlDirective() {}
|
|
Object.defineProperty(AbstractControlDirective.prototype, "control", {
|
|
get: function() {
|
|
return exceptions_1.unimplemented();
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(AbstractControlDirective.prototype, "value", {
|
|
get: function() {
|
|
return lang_1.isPresent(this.control) ? this.control.value : null;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(AbstractControlDirective.prototype, "valid", {
|
|
get: function() {
|
|
return lang_1.isPresent(this.control) ? this.control.valid : null;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(AbstractControlDirective.prototype, "errors", {
|
|
get: function() {
|
|
return lang_1.isPresent(this.control) ? this.control.errors : null;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(AbstractControlDirective.prototype, "pristine", {
|
|
get: function() {
|
|
return lang_1.isPresent(this.control) ? this.control.pristine : null;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(AbstractControlDirective.prototype, "dirty", {
|
|
get: function() {
|
|
return lang_1.isPresent(this.control) ? this.control.dirty : null;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(AbstractControlDirective.prototype, "touched", {
|
|
get: function() {
|
|
return lang_1.isPresent(this.control) ? this.control.touched : null;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(AbstractControlDirective.prototype, "untouched", {
|
|
get: function() {
|
|
return lang_1.isPresent(this.control) ? this.control.untouched : null;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(AbstractControlDirective.prototype, "path", {
|
|
get: function() {
|
|
return null;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
return AbstractControlDirective;
|
|
})();
|
|
exports.AbstractControlDirective = AbstractControlDirective;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/forms/directives/control_container", ["angular2/src/common/forms/directives/abstract_control_directive"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var abstract_control_directive_1 = require("angular2/src/common/forms/directives/abstract_control_directive");
|
|
var ControlContainer = (function(_super) {
|
|
__extends(ControlContainer, _super);
|
|
function ControlContainer() {
|
|
_super.apply(this, arguments);
|
|
}
|
|
Object.defineProperty(ControlContainer.prototype, "formDirective", {
|
|
get: function() {
|
|
return null;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(ControlContainer.prototype, "path", {
|
|
get: function() {
|
|
return null;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
return ControlContainer;
|
|
})(abstract_control_directive_1.AbstractControlDirective);
|
|
exports.ControlContainer = ControlContainer;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/forms/directives/ng_control", ["angular2/src/common/forms/directives/abstract_control_directive", "angular2/src/facade/exceptions"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var abstract_control_directive_1 = require("angular2/src/common/forms/directives/abstract_control_directive");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var NgControl = (function(_super) {
|
|
__extends(NgControl, _super);
|
|
function NgControl() {
|
|
_super.apply(this, arguments);
|
|
this.name = null;
|
|
this.valueAccessor = null;
|
|
}
|
|
Object.defineProperty(NgControl.prototype, "validator", {
|
|
get: function() {
|
|
return exceptions_1.unimplemented();
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(NgControl.prototype, "asyncValidator", {
|
|
get: function() {
|
|
return exceptions_1.unimplemented();
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
return NgControl;
|
|
})(abstract_control_directive_1.AbstractControlDirective);
|
|
exports.NgControl = NgControl;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/forms/directives/control_value_accessor", ["angular2/core", "angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var core_1 = require("angular2/core");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
exports.NG_VALUE_ACCESSOR = lang_1.CONST_EXPR(new core_1.OpaqueToken("NgValueAccessor"));
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/forms/validators", ["angular2/src/facade/lang", "angular2/src/facade/promise", "angular2/src/facade/async", "angular2/src/facade/collection", "angular2/core"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var promise_1 = require("angular2/src/facade/promise");
|
|
var async_1 = require("angular2/src/facade/async");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var core_1 = require("angular2/core");
|
|
exports.NG_VALIDATORS = lang_1.CONST_EXPR(new core_1.OpaqueToken("NgValidators"));
|
|
exports.NG_ASYNC_VALIDATORS = lang_1.CONST_EXPR(new core_1.OpaqueToken("NgAsyncValidators"));
|
|
var Validators = (function() {
|
|
function Validators() {}
|
|
Validators.required = function(control) {
|
|
return lang_1.isBlank(control.value) || (lang_1.isString(control.value) && control.value == "") ? {"required": true} : null;
|
|
};
|
|
Validators.minLength = function(minLength) {
|
|
return function(control) {
|
|
if (lang_1.isPresent(Validators.required(control)))
|
|
return null;
|
|
var v = control.value;
|
|
return v.length < minLength ? {"minlength": {
|
|
"requiredLength": minLength,
|
|
"actualLength": v.length
|
|
}} : null;
|
|
};
|
|
};
|
|
Validators.maxLength = function(maxLength) {
|
|
return function(control) {
|
|
if (lang_1.isPresent(Validators.required(control)))
|
|
return null;
|
|
var v = control.value;
|
|
return v.length > maxLength ? {"maxlength": {
|
|
"requiredLength": maxLength,
|
|
"actualLength": v.length
|
|
}} : null;
|
|
};
|
|
};
|
|
Validators.pattern = function(pattern) {
|
|
return function(control) {
|
|
if (lang_1.isPresent(Validators.required(control)))
|
|
return null;
|
|
var regex = new RegExp("^" + pattern + "$");
|
|
var v = control.value;
|
|
return regex.test(v) ? null : {"pattern": {
|
|
"requiredPattern": "^" + pattern + "$",
|
|
"actualValue": v
|
|
}};
|
|
};
|
|
};
|
|
Validators.nullValidator = function(c) {
|
|
return null;
|
|
};
|
|
Validators.compose = function(validators) {
|
|
if (lang_1.isBlank(validators))
|
|
return null;
|
|
var presentValidators = validators.filter(lang_1.isPresent);
|
|
if (presentValidators.length == 0)
|
|
return null;
|
|
return function(control) {
|
|
return _mergeErrors(_executeValidators(control, presentValidators));
|
|
};
|
|
};
|
|
Validators.composeAsync = function(validators) {
|
|
if (lang_1.isBlank(validators))
|
|
return null;
|
|
var presentValidators = validators.filter(lang_1.isPresent);
|
|
if (presentValidators.length == 0)
|
|
return null;
|
|
return function(control) {
|
|
var promises = _executeAsyncValidators(control, presentValidators).map(_convertToPromise);
|
|
return promise_1.PromiseWrapper.all(promises).then(_mergeErrors);
|
|
};
|
|
};
|
|
return Validators;
|
|
})();
|
|
exports.Validators = Validators;
|
|
function _convertToPromise(obj) {
|
|
return promise_1.PromiseWrapper.isPromise(obj) ? obj : async_1.ObservableWrapper.toPromise(obj);
|
|
}
|
|
function _executeValidators(control, validators) {
|
|
return validators.map(function(v) {
|
|
return v(control);
|
|
});
|
|
}
|
|
function _executeAsyncValidators(control, validators) {
|
|
return validators.map(function(v) {
|
|
return v(control);
|
|
});
|
|
}
|
|
function _mergeErrors(arrayOfErrors) {
|
|
var res = arrayOfErrors.reduce(function(res, errors) {
|
|
return lang_1.isPresent(errors) ? collection_1.StringMapWrapper.merge(res, errors) : res;
|
|
}, {});
|
|
return collection_1.StringMapWrapper.isEmpty(res) ? null : res;
|
|
}
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/forms/directives/default_value_accessor", ["angular2/core", "angular2/src/common/forms/directives/control_value_accessor", "angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var core_1 = require("angular2/core");
|
|
var control_value_accessor_1 = require("angular2/src/common/forms/directives/control_value_accessor");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var DEFAULT_VALUE_ACCESSOR = lang_1.CONST_EXPR(new core_1.Provider(control_value_accessor_1.NG_VALUE_ACCESSOR, {
|
|
useExisting: core_1.forwardRef(function() {
|
|
return DefaultValueAccessor;
|
|
}),
|
|
multi: true
|
|
}));
|
|
var DefaultValueAccessor = (function() {
|
|
function DefaultValueAccessor(_renderer, _elementRef) {
|
|
this._renderer = _renderer;
|
|
this._elementRef = _elementRef;
|
|
this.onChange = function(_) {};
|
|
this.onTouched = function() {};
|
|
}
|
|
DefaultValueAccessor.prototype.writeValue = function(value) {
|
|
var normalizedValue = lang_1.isBlank(value) ? '' : value;
|
|
this._renderer.setElementProperty(this._elementRef.nativeElement, 'value', normalizedValue);
|
|
};
|
|
DefaultValueAccessor.prototype.registerOnChange = function(fn) {
|
|
this.onChange = fn;
|
|
};
|
|
DefaultValueAccessor.prototype.registerOnTouched = function(fn) {
|
|
this.onTouched = fn;
|
|
};
|
|
DefaultValueAccessor = __decorate([core_1.Directive({
|
|
selector: 'input:not([type=checkbox])[ngControl],textarea[ngControl],input:not([type=checkbox])[ngFormControl],textarea[ngFormControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]',
|
|
host: {
|
|
'(input)': 'onChange($event.target.value)',
|
|
'(blur)': 'onTouched()'
|
|
},
|
|
bindings: [DEFAULT_VALUE_ACCESSOR]
|
|
}), __metadata('design:paramtypes', [core_1.Renderer, core_1.ElementRef])], DefaultValueAccessor);
|
|
return DefaultValueAccessor;
|
|
})();
|
|
exports.DefaultValueAccessor = DefaultValueAccessor;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/forms/directives/number_value_accessor", ["angular2/core", "angular2/src/common/forms/directives/control_value_accessor", "angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var core_1 = require("angular2/core");
|
|
var control_value_accessor_1 = require("angular2/src/common/forms/directives/control_value_accessor");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var NUMBER_VALUE_ACCESSOR = lang_1.CONST_EXPR(new core_1.Provider(control_value_accessor_1.NG_VALUE_ACCESSOR, {
|
|
useExisting: core_1.forwardRef(function() {
|
|
return NumberValueAccessor;
|
|
}),
|
|
multi: true
|
|
}));
|
|
var NumberValueAccessor = (function() {
|
|
function NumberValueAccessor(_renderer, _elementRef) {
|
|
this._renderer = _renderer;
|
|
this._elementRef = _elementRef;
|
|
this.onChange = function(_) {};
|
|
this.onTouched = function() {};
|
|
}
|
|
NumberValueAccessor.prototype.writeValue = function(value) {
|
|
this._renderer.setElementProperty(this._elementRef.nativeElement, 'value', value);
|
|
};
|
|
NumberValueAccessor.prototype.registerOnChange = function(fn) {
|
|
this.onChange = function(value) {
|
|
fn(lang_1.NumberWrapper.parseFloat(value));
|
|
};
|
|
};
|
|
NumberValueAccessor.prototype.registerOnTouched = function(fn) {
|
|
this.onTouched = fn;
|
|
};
|
|
NumberValueAccessor = __decorate([core_1.Directive({
|
|
selector: 'input[type=number][ngControl],input[type=number][ngFormControl],input[type=number][ngModel]',
|
|
host: {
|
|
'(change)': 'onChange($event.target.value)',
|
|
'(input)': 'onChange($event.target.value)',
|
|
'(blur)': 'onTouched()'
|
|
},
|
|
bindings: [NUMBER_VALUE_ACCESSOR]
|
|
}), __metadata('design:paramtypes', [core_1.Renderer, core_1.ElementRef])], NumberValueAccessor);
|
|
return NumberValueAccessor;
|
|
})();
|
|
exports.NumberValueAccessor = NumberValueAccessor;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/forms/directives/checkbox_value_accessor", ["angular2/core", "angular2/src/common/forms/directives/control_value_accessor", "angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var core_1 = require("angular2/core");
|
|
var control_value_accessor_1 = require("angular2/src/common/forms/directives/control_value_accessor");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var CHECKBOX_VALUE_ACCESSOR = lang_1.CONST_EXPR(new core_1.Provider(control_value_accessor_1.NG_VALUE_ACCESSOR, {
|
|
useExisting: core_1.forwardRef(function() {
|
|
return CheckboxControlValueAccessor;
|
|
}),
|
|
multi: true
|
|
}));
|
|
var CheckboxControlValueAccessor = (function() {
|
|
function CheckboxControlValueAccessor(_renderer, _elementRef) {
|
|
this._renderer = _renderer;
|
|
this._elementRef = _elementRef;
|
|
this.onChange = function(_) {};
|
|
this.onTouched = function() {};
|
|
}
|
|
CheckboxControlValueAccessor.prototype.writeValue = function(value) {
|
|
this._renderer.setElementProperty(this._elementRef.nativeElement, 'checked', value);
|
|
};
|
|
CheckboxControlValueAccessor.prototype.registerOnChange = function(fn) {
|
|
this.onChange = fn;
|
|
};
|
|
CheckboxControlValueAccessor.prototype.registerOnTouched = function(fn) {
|
|
this.onTouched = fn;
|
|
};
|
|
CheckboxControlValueAccessor = __decorate([core_1.Directive({
|
|
selector: 'input[type=checkbox][ngControl],input[type=checkbox][ngFormControl],input[type=checkbox][ngModel]',
|
|
host: {
|
|
'(change)': 'onChange($event.target.checked)',
|
|
'(blur)': 'onTouched()'
|
|
},
|
|
providers: [CHECKBOX_VALUE_ACCESSOR]
|
|
}), __metadata('design:paramtypes', [core_1.Renderer, core_1.ElementRef])], CheckboxControlValueAccessor);
|
|
return CheckboxControlValueAccessor;
|
|
})();
|
|
exports.CheckboxControlValueAccessor = CheckboxControlValueAccessor;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/forms/directives/select_control_value_accessor", ["angular2/core", "angular2/src/facade/async", "angular2/src/common/forms/directives/control_value_accessor", "angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var __param = (this && this.__param) || function(paramIndex, decorator) {
|
|
return function(target, key) {
|
|
decorator(target, key, paramIndex);
|
|
};
|
|
};
|
|
var core_1 = require("angular2/core");
|
|
var async_1 = require("angular2/src/facade/async");
|
|
var control_value_accessor_1 = require("angular2/src/common/forms/directives/control_value_accessor");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var SELECT_VALUE_ACCESSOR = lang_1.CONST_EXPR(new core_1.Provider(control_value_accessor_1.NG_VALUE_ACCESSOR, {
|
|
useExisting: core_1.forwardRef(function() {
|
|
return SelectControlValueAccessor;
|
|
}),
|
|
multi: true
|
|
}));
|
|
var NgSelectOption = (function() {
|
|
function NgSelectOption() {}
|
|
NgSelectOption = __decorate([core_1.Directive({selector: 'option'}), __metadata('design:paramtypes', [])], NgSelectOption);
|
|
return NgSelectOption;
|
|
})();
|
|
exports.NgSelectOption = NgSelectOption;
|
|
var SelectControlValueAccessor = (function() {
|
|
function SelectControlValueAccessor(_renderer, _elementRef, query) {
|
|
this._renderer = _renderer;
|
|
this._elementRef = _elementRef;
|
|
this.onChange = function(_) {};
|
|
this.onTouched = function() {};
|
|
this._updateValueWhenListOfOptionsChanges(query);
|
|
}
|
|
SelectControlValueAccessor.prototype.writeValue = function(value) {
|
|
this.value = value;
|
|
this._renderer.setElementProperty(this._elementRef.nativeElement, 'value', value);
|
|
};
|
|
SelectControlValueAccessor.prototype.registerOnChange = function(fn) {
|
|
this.onChange = fn;
|
|
};
|
|
SelectControlValueAccessor.prototype.registerOnTouched = function(fn) {
|
|
this.onTouched = fn;
|
|
};
|
|
SelectControlValueAccessor.prototype._updateValueWhenListOfOptionsChanges = function(query) {
|
|
var _this = this;
|
|
async_1.ObservableWrapper.subscribe(query.changes, function(_) {
|
|
return _this.writeValue(_this.value);
|
|
});
|
|
};
|
|
SelectControlValueAccessor = __decorate([core_1.Directive({
|
|
selector: 'select[ngControl],select[ngFormControl],select[ngModel]',
|
|
host: {
|
|
'(input)': 'onChange($event.target.value)',
|
|
'(blur)': 'onTouched()'
|
|
},
|
|
bindings: [SELECT_VALUE_ACCESSOR]
|
|
}), __param(2, core_1.Query(NgSelectOption, {descendants: true})), __metadata('design:paramtypes', [core_1.Renderer, core_1.ElementRef, core_1.QueryList])], SelectControlValueAccessor);
|
|
return SelectControlValueAccessor;
|
|
})();
|
|
exports.SelectControlValueAccessor = SelectControlValueAccessor;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/forms/directives/radio_control_value_accessor", ["angular2/core", "angular2/src/common/forms/directives/control_value_accessor", "angular2/src/common/forms/directives/ng_control", "angular2/src/facade/lang", "angular2/src/facade/collection"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var core_1 = require("angular2/core");
|
|
var control_value_accessor_1 = require("angular2/src/common/forms/directives/control_value_accessor");
|
|
var ng_control_1 = require("angular2/src/common/forms/directives/ng_control");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var RADIO_VALUE_ACCESSOR = lang_1.CONST_EXPR(new core_1.Provider(control_value_accessor_1.NG_VALUE_ACCESSOR, {
|
|
useExisting: core_1.forwardRef(function() {
|
|
return RadioControlValueAccessor;
|
|
}),
|
|
multi: true
|
|
}));
|
|
var RadioControlRegistry = (function() {
|
|
function RadioControlRegistry() {
|
|
this._accessors = [];
|
|
}
|
|
RadioControlRegistry.prototype.add = function(control, accessor) {
|
|
this._accessors.push([control, accessor]);
|
|
};
|
|
RadioControlRegistry.prototype.remove = function(accessor) {
|
|
var indexToRemove = -1;
|
|
for (var i = 0; i < this._accessors.length; ++i) {
|
|
if (this._accessors[i][1] === accessor) {
|
|
indexToRemove = i;
|
|
}
|
|
}
|
|
collection_1.ListWrapper.removeAt(this._accessors, indexToRemove);
|
|
};
|
|
RadioControlRegistry.prototype.select = function(accessor) {
|
|
this._accessors.forEach(function(c) {
|
|
if (c[0].control.root === accessor._control.control.root && c[1] !== accessor) {
|
|
c[1].fireUncheck();
|
|
}
|
|
});
|
|
};
|
|
RadioControlRegistry = __decorate([core_1.Injectable(), __metadata('design:paramtypes', [])], RadioControlRegistry);
|
|
return RadioControlRegistry;
|
|
})();
|
|
exports.RadioControlRegistry = RadioControlRegistry;
|
|
var RadioButtonState = (function() {
|
|
function RadioButtonState(checked, value) {
|
|
this.checked = checked;
|
|
this.value = value;
|
|
}
|
|
return RadioButtonState;
|
|
})();
|
|
exports.RadioButtonState = RadioButtonState;
|
|
var RadioControlValueAccessor = (function() {
|
|
function RadioControlValueAccessor(_renderer, _elementRef, _registry, _injector) {
|
|
this._renderer = _renderer;
|
|
this._elementRef = _elementRef;
|
|
this._registry = _registry;
|
|
this._injector = _injector;
|
|
this.onChange = function() {};
|
|
this.onTouched = function() {};
|
|
}
|
|
RadioControlValueAccessor.prototype.ngOnInit = function() {
|
|
this._control = this._injector.get(ng_control_1.NgControl);
|
|
this._registry.add(this._control, this);
|
|
};
|
|
RadioControlValueAccessor.prototype.ngOnDestroy = function() {
|
|
this._registry.remove(this);
|
|
};
|
|
RadioControlValueAccessor.prototype.writeValue = function(value) {
|
|
this._state = value;
|
|
if (lang_1.isPresent(value) && value.checked) {
|
|
this._renderer.setElementProperty(this._elementRef.nativeElement, 'checked', true);
|
|
}
|
|
};
|
|
RadioControlValueAccessor.prototype.registerOnChange = function(fn) {
|
|
var _this = this;
|
|
this._fn = fn;
|
|
this.onChange = function() {
|
|
fn(new RadioButtonState(true, _this._state.value));
|
|
_this._registry.select(_this);
|
|
};
|
|
};
|
|
RadioControlValueAccessor.prototype.fireUncheck = function() {
|
|
this._fn(new RadioButtonState(false, this._state.value));
|
|
};
|
|
RadioControlValueAccessor.prototype.registerOnTouched = function(fn) {
|
|
this.onTouched = fn;
|
|
};
|
|
__decorate([core_1.Input(), __metadata('design:type', String)], RadioControlValueAccessor.prototype, "name", void 0);
|
|
RadioControlValueAccessor = __decorate([core_1.Directive({
|
|
selector: 'input[type=radio][ngControl],input[type=radio][ngFormControl],input[type=radio][ngModel]',
|
|
host: {
|
|
'(change)': 'onChange()',
|
|
'(blur)': 'onTouched()'
|
|
},
|
|
providers: [RADIO_VALUE_ACCESSOR]
|
|
}), __metadata('design:paramtypes', [core_1.Renderer, core_1.ElementRef, RadioControlRegistry, core_1.Injector])], RadioControlValueAccessor);
|
|
return RadioControlValueAccessor;
|
|
})();
|
|
exports.RadioControlValueAccessor = RadioControlValueAccessor;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/forms/directives/normalize_validator", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
function normalizeValidator(validator) {
|
|
if (validator.validate !== undefined) {
|
|
return function(c) {
|
|
return validator.validate(c);
|
|
};
|
|
} else {
|
|
return validator;
|
|
}
|
|
}
|
|
exports.normalizeValidator = normalizeValidator;
|
|
function normalizeAsyncValidator(validator) {
|
|
if (validator.validate !== undefined) {
|
|
return function(c) {
|
|
return Promise.resolve(validator.validate(c));
|
|
};
|
|
} else {
|
|
return validator;
|
|
}
|
|
}
|
|
exports.normalizeAsyncValidator = normalizeAsyncValidator;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/forms/directives/ng_form_control", ["angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/facade/async", "angular2/core", "angular2/src/common/forms/directives/ng_control", "angular2/src/common/forms/validators", "angular2/src/common/forms/directives/control_value_accessor", "angular2/src/common/forms/directives/shared"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var __param = (this && this.__param) || function(paramIndex, decorator) {
|
|
return function(target, key) {
|
|
decorator(target, key, paramIndex);
|
|
};
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var async_1 = require("angular2/src/facade/async");
|
|
var core_1 = require("angular2/core");
|
|
var ng_control_1 = require("angular2/src/common/forms/directives/ng_control");
|
|
var validators_1 = require("angular2/src/common/forms/validators");
|
|
var control_value_accessor_1 = require("angular2/src/common/forms/directives/control_value_accessor");
|
|
var shared_1 = require("angular2/src/common/forms/directives/shared");
|
|
var formControlBinding = lang_1.CONST_EXPR(new core_1.Provider(ng_control_1.NgControl, {useExisting: core_1.forwardRef(function() {
|
|
return NgFormControl;
|
|
})}));
|
|
var NgFormControl = (function(_super) {
|
|
__extends(NgFormControl, _super);
|
|
function NgFormControl(_validators, _asyncValidators, valueAccessors) {
|
|
_super.call(this);
|
|
this._validators = _validators;
|
|
this._asyncValidators = _asyncValidators;
|
|
this.update = new async_1.EventEmitter();
|
|
this.valueAccessor = shared_1.selectValueAccessor(this, valueAccessors);
|
|
}
|
|
NgFormControl.prototype.ngOnChanges = function(changes) {
|
|
if (this._isControlChanged(changes)) {
|
|
shared_1.setUpControl(this.form, this);
|
|
this.form.updateValueAndValidity({emitEvent: false});
|
|
}
|
|
if (shared_1.isPropertyUpdated(changes, this.viewModel)) {
|
|
this.form.updateValue(this.model);
|
|
this.viewModel = this.model;
|
|
}
|
|
};
|
|
Object.defineProperty(NgFormControl.prototype, "path", {
|
|
get: function() {
|
|
return [];
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(NgFormControl.prototype, "validator", {
|
|
get: function() {
|
|
return shared_1.composeValidators(this._validators);
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(NgFormControl.prototype, "asyncValidator", {
|
|
get: function() {
|
|
return shared_1.composeAsyncValidators(this._asyncValidators);
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(NgFormControl.prototype, "control", {
|
|
get: function() {
|
|
return this.form;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
NgFormControl.prototype.viewToModelUpdate = function(newValue) {
|
|
this.viewModel = newValue;
|
|
async_1.ObservableWrapper.callEmit(this.update, newValue);
|
|
};
|
|
NgFormControl.prototype._isControlChanged = function(changes) {
|
|
return collection_1.StringMapWrapper.contains(changes, "form");
|
|
};
|
|
NgFormControl = __decorate([core_1.Directive({
|
|
selector: '[ngFormControl]',
|
|
bindings: [formControlBinding],
|
|
inputs: ['form: ngFormControl', 'model: ngModel'],
|
|
outputs: ['update: ngModelChange'],
|
|
exportAs: 'ngForm'
|
|
}), __param(0, core_1.Optional()), __param(0, core_1.Self()), __param(0, core_1.Inject(validators_1.NG_VALIDATORS)), __param(1, core_1.Optional()), __param(1, core_1.Self()), __param(1, core_1.Inject(validators_1.NG_ASYNC_VALIDATORS)), __param(2, core_1.Optional()), __param(2, core_1.Self()), __param(2, core_1.Inject(control_value_accessor_1.NG_VALUE_ACCESSOR)), __metadata('design:paramtypes', [Array, Array, Array])], NgFormControl);
|
|
return NgFormControl;
|
|
})(ng_control_1.NgControl);
|
|
exports.NgFormControl = NgFormControl;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/forms/directives/ng_model", ["angular2/src/facade/lang", "angular2/src/facade/async", "angular2/core", "angular2/src/common/forms/directives/control_value_accessor", "angular2/src/common/forms/directives/ng_control", "angular2/src/common/forms/model", "angular2/src/common/forms/validators", "angular2/src/common/forms/directives/shared"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var __param = (this && this.__param) || function(paramIndex, decorator) {
|
|
return function(target, key) {
|
|
decorator(target, key, paramIndex);
|
|
};
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var async_1 = require("angular2/src/facade/async");
|
|
var core_1 = require("angular2/core");
|
|
var control_value_accessor_1 = require("angular2/src/common/forms/directives/control_value_accessor");
|
|
var ng_control_1 = require("angular2/src/common/forms/directives/ng_control");
|
|
var model_1 = require("angular2/src/common/forms/model");
|
|
var validators_1 = require("angular2/src/common/forms/validators");
|
|
var shared_1 = require("angular2/src/common/forms/directives/shared");
|
|
var formControlBinding = lang_1.CONST_EXPR(new core_1.Provider(ng_control_1.NgControl, {useExisting: core_1.forwardRef(function() {
|
|
return NgModel;
|
|
})}));
|
|
var NgModel = (function(_super) {
|
|
__extends(NgModel, _super);
|
|
function NgModel(_validators, _asyncValidators, valueAccessors) {
|
|
_super.call(this);
|
|
this._validators = _validators;
|
|
this._asyncValidators = _asyncValidators;
|
|
this._control = new model_1.Control();
|
|
this._added = false;
|
|
this.update = new async_1.EventEmitter();
|
|
this.valueAccessor = shared_1.selectValueAccessor(this, valueAccessors);
|
|
}
|
|
NgModel.prototype.ngOnChanges = function(changes) {
|
|
if (!this._added) {
|
|
shared_1.setUpControl(this._control, this);
|
|
this._control.updateValueAndValidity({emitEvent: false});
|
|
this._added = true;
|
|
}
|
|
if (shared_1.isPropertyUpdated(changes, this.viewModel)) {
|
|
this._control.updateValue(this.model);
|
|
this.viewModel = this.model;
|
|
}
|
|
};
|
|
Object.defineProperty(NgModel.prototype, "control", {
|
|
get: function() {
|
|
return this._control;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(NgModel.prototype, "path", {
|
|
get: function() {
|
|
return [];
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(NgModel.prototype, "validator", {
|
|
get: function() {
|
|
return shared_1.composeValidators(this._validators);
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(NgModel.prototype, "asyncValidator", {
|
|
get: function() {
|
|
return shared_1.composeAsyncValidators(this._asyncValidators);
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
NgModel.prototype.viewToModelUpdate = function(newValue) {
|
|
this.viewModel = newValue;
|
|
async_1.ObservableWrapper.callEmit(this.update, newValue);
|
|
};
|
|
NgModel = __decorate([core_1.Directive({
|
|
selector: '[ngModel]:not([ngControl]):not([ngFormControl])',
|
|
bindings: [formControlBinding],
|
|
inputs: ['model: ngModel'],
|
|
outputs: ['update: ngModelChange'],
|
|
exportAs: 'ngForm'
|
|
}), __param(0, core_1.Optional()), __param(0, core_1.Self()), __param(0, core_1.Inject(validators_1.NG_VALIDATORS)), __param(1, core_1.Optional()), __param(1, core_1.Self()), __param(1, core_1.Inject(validators_1.NG_ASYNC_VALIDATORS)), __param(2, core_1.Optional()), __param(2, core_1.Self()), __param(2, core_1.Inject(control_value_accessor_1.NG_VALUE_ACCESSOR)), __metadata('design:paramtypes', [Array, Array, Array])], NgModel);
|
|
return NgModel;
|
|
})(ng_control_1.NgControl);
|
|
exports.NgModel = NgModel;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/forms/directives/ng_control_group", ["angular2/core", "angular2/src/facade/lang", "angular2/src/common/forms/directives/control_container", "angular2/src/common/forms/directives/shared", "angular2/src/common/forms/validators"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var __param = (this && this.__param) || function(paramIndex, decorator) {
|
|
return function(target, key) {
|
|
decorator(target, key, paramIndex);
|
|
};
|
|
};
|
|
var core_1 = require("angular2/core");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var control_container_1 = require("angular2/src/common/forms/directives/control_container");
|
|
var shared_1 = require("angular2/src/common/forms/directives/shared");
|
|
var validators_1 = require("angular2/src/common/forms/validators");
|
|
var controlGroupProvider = lang_1.CONST_EXPR(new core_1.Provider(control_container_1.ControlContainer, {useExisting: core_1.forwardRef(function() {
|
|
return NgControlGroup;
|
|
})}));
|
|
var NgControlGroup = (function(_super) {
|
|
__extends(NgControlGroup, _super);
|
|
function NgControlGroup(parent, _validators, _asyncValidators) {
|
|
_super.call(this);
|
|
this._validators = _validators;
|
|
this._asyncValidators = _asyncValidators;
|
|
this._parent = parent;
|
|
}
|
|
NgControlGroup.prototype.ngOnInit = function() {
|
|
this.formDirective.addControlGroup(this);
|
|
};
|
|
NgControlGroup.prototype.ngOnDestroy = function() {
|
|
this.formDirective.removeControlGroup(this);
|
|
};
|
|
Object.defineProperty(NgControlGroup.prototype, "control", {
|
|
get: function() {
|
|
return this.formDirective.getControlGroup(this);
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(NgControlGroup.prototype, "path", {
|
|
get: function() {
|
|
return shared_1.controlPath(this.name, this._parent);
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(NgControlGroup.prototype, "formDirective", {
|
|
get: function() {
|
|
return this._parent.formDirective;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(NgControlGroup.prototype, "validator", {
|
|
get: function() {
|
|
return shared_1.composeValidators(this._validators);
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(NgControlGroup.prototype, "asyncValidator", {
|
|
get: function() {
|
|
return shared_1.composeAsyncValidators(this._asyncValidators);
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
NgControlGroup = __decorate([core_1.Directive({
|
|
selector: '[ngControlGroup]',
|
|
providers: [controlGroupProvider],
|
|
inputs: ['name: ngControlGroup'],
|
|
exportAs: 'ngForm'
|
|
}), __param(0, core_1.Host()), __param(0, core_1.SkipSelf()), __param(1, core_1.Optional()), __param(1, core_1.Self()), __param(1, core_1.Inject(validators_1.NG_VALIDATORS)), __param(2, core_1.Optional()), __param(2, core_1.Self()), __param(2, core_1.Inject(validators_1.NG_ASYNC_VALIDATORS)), __metadata('design:paramtypes', [control_container_1.ControlContainer, Array, Array])], NgControlGroup);
|
|
return NgControlGroup;
|
|
})(control_container_1.ControlContainer);
|
|
exports.NgControlGroup = NgControlGroup;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/forms/directives/ng_form_model", ["angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/facade/async", "angular2/core", "angular2/src/common/forms/directives/control_container", "angular2/src/common/forms/directives/shared", "angular2/src/common/forms/validators"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var __param = (this && this.__param) || function(paramIndex, decorator) {
|
|
return function(target, key) {
|
|
decorator(target, key, paramIndex);
|
|
};
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var async_1 = require("angular2/src/facade/async");
|
|
var core_1 = require("angular2/core");
|
|
var control_container_1 = require("angular2/src/common/forms/directives/control_container");
|
|
var shared_1 = require("angular2/src/common/forms/directives/shared");
|
|
var validators_1 = require("angular2/src/common/forms/validators");
|
|
var formDirectiveProvider = lang_1.CONST_EXPR(new core_1.Provider(control_container_1.ControlContainer, {useExisting: core_1.forwardRef(function() {
|
|
return NgFormModel;
|
|
})}));
|
|
var NgFormModel = (function(_super) {
|
|
__extends(NgFormModel, _super);
|
|
function NgFormModel(_validators, _asyncValidators) {
|
|
_super.call(this);
|
|
this._validators = _validators;
|
|
this._asyncValidators = _asyncValidators;
|
|
this.form = null;
|
|
this.directives = [];
|
|
this.ngSubmit = new async_1.EventEmitter();
|
|
}
|
|
NgFormModel.prototype.ngOnChanges = function(changes) {
|
|
if (collection_1.StringMapWrapper.contains(changes, "form")) {
|
|
var sync = shared_1.composeValidators(this._validators);
|
|
this.form.validator = validators_1.Validators.compose([this.form.validator, sync]);
|
|
var async = shared_1.composeAsyncValidators(this._asyncValidators);
|
|
this.form.asyncValidator = validators_1.Validators.composeAsync([this.form.asyncValidator, async]);
|
|
this.form.updateValueAndValidity({
|
|
onlySelf: true,
|
|
emitEvent: false
|
|
});
|
|
}
|
|
this._updateDomValue();
|
|
};
|
|
Object.defineProperty(NgFormModel.prototype, "formDirective", {
|
|
get: function() {
|
|
return this;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(NgFormModel.prototype, "control", {
|
|
get: function() {
|
|
return this.form;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(NgFormModel.prototype, "path", {
|
|
get: function() {
|
|
return [];
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
NgFormModel.prototype.addControl = function(dir) {
|
|
var ctrl = this.form.find(dir.path);
|
|
shared_1.setUpControl(ctrl, dir);
|
|
ctrl.updateValueAndValidity({emitEvent: false});
|
|
this.directives.push(dir);
|
|
};
|
|
NgFormModel.prototype.getControl = function(dir) {
|
|
return this.form.find(dir.path);
|
|
};
|
|
NgFormModel.prototype.removeControl = function(dir) {
|
|
collection_1.ListWrapper.remove(this.directives, dir);
|
|
};
|
|
NgFormModel.prototype.addControlGroup = function(dir) {
|
|
var ctrl = this.form.find(dir.path);
|
|
shared_1.setUpControlGroup(ctrl, dir);
|
|
ctrl.updateValueAndValidity({emitEvent: false});
|
|
};
|
|
NgFormModel.prototype.removeControlGroup = function(dir) {};
|
|
NgFormModel.prototype.getControlGroup = function(dir) {
|
|
return this.form.find(dir.path);
|
|
};
|
|
NgFormModel.prototype.updateModel = function(dir, value) {
|
|
var ctrl = this.form.find(dir.path);
|
|
ctrl.updateValue(value);
|
|
};
|
|
NgFormModel.prototype.onSubmit = function() {
|
|
async_1.ObservableWrapper.callEmit(this.ngSubmit, null);
|
|
return false;
|
|
};
|
|
NgFormModel.prototype._updateDomValue = function() {
|
|
var _this = this;
|
|
this.directives.forEach(function(dir) {
|
|
var ctrl = _this.form.find(dir.path);
|
|
dir.valueAccessor.writeValue(ctrl.value);
|
|
});
|
|
};
|
|
NgFormModel = __decorate([core_1.Directive({
|
|
selector: '[ngFormModel]',
|
|
bindings: [formDirectiveProvider],
|
|
inputs: ['form: ngFormModel'],
|
|
host: {'(submit)': 'onSubmit()'},
|
|
outputs: ['ngSubmit'],
|
|
exportAs: 'ngForm'
|
|
}), __param(0, core_1.Optional()), __param(0, core_1.Self()), __param(0, core_1.Inject(validators_1.NG_VALIDATORS)), __param(1, core_1.Optional()), __param(1, core_1.Self()), __param(1, core_1.Inject(validators_1.NG_ASYNC_VALIDATORS)), __metadata('design:paramtypes', [Array, Array])], NgFormModel);
|
|
return NgFormModel;
|
|
})(control_container_1.ControlContainer);
|
|
exports.NgFormModel = NgFormModel;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/forms/directives/ng_form", ["angular2/src/facade/async", "angular2/src/facade/collection", "angular2/src/facade/lang", "angular2/core", "angular2/src/common/forms/directives/control_container", "angular2/src/common/forms/model", "angular2/src/common/forms/directives/shared", "angular2/src/common/forms/validators"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var __param = (this && this.__param) || function(paramIndex, decorator) {
|
|
return function(target, key) {
|
|
decorator(target, key, paramIndex);
|
|
};
|
|
};
|
|
var async_1 = require("angular2/src/facade/async");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var core_1 = require("angular2/core");
|
|
var control_container_1 = require("angular2/src/common/forms/directives/control_container");
|
|
var model_1 = require("angular2/src/common/forms/model");
|
|
var shared_1 = require("angular2/src/common/forms/directives/shared");
|
|
var validators_1 = require("angular2/src/common/forms/validators");
|
|
var formDirectiveProvider = lang_1.CONST_EXPR(new core_1.Provider(control_container_1.ControlContainer, {useExisting: core_1.forwardRef(function() {
|
|
return NgForm;
|
|
})}));
|
|
var NgForm = (function(_super) {
|
|
__extends(NgForm, _super);
|
|
function NgForm(validators, asyncValidators) {
|
|
_super.call(this);
|
|
this.ngSubmit = new async_1.EventEmitter();
|
|
this.form = new model_1.ControlGroup({}, null, shared_1.composeValidators(validators), shared_1.composeAsyncValidators(asyncValidators));
|
|
}
|
|
Object.defineProperty(NgForm.prototype, "formDirective", {
|
|
get: function() {
|
|
return this;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(NgForm.prototype, "control", {
|
|
get: function() {
|
|
return this.form;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(NgForm.prototype, "path", {
|
|
get: function() {
|
|
return [];
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(NgForm.prototype, "controls", {
|
|
get: function() {
|
|
return this.form.controls;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
NgForm.prototype.addControl = function(dir) {
|
|
var _this = this;
|
|
async_1.PromiseWrapper.scheduleMicrotask(function() {
|
|
var container = _this._findContainer(dir.path);
|
|
var ctrl = new model_1.Control();
|
|
shared_1.setUpControl(ctrl, dir);
|
|
container.addControl(dir.name, ctrl);
|
|
ctrl.updateValueAndValidity({emitEvent: false});
|
|
});
|
|
};
|
|
NgForm.prototype.getControl = function(dir) {
|
|
return this.form.find(dir.path);
|
|
};
|
|
NgForm.prototype.removeControl = function(dir) {
|
|
var _this = this;
|
|
async_1.PromiseWrapper.scheduleMicrotask(function() {
|
|
var container = _this._findContainer(dir.path);
|
|
if (lang_1.isPresent(container)) {
|
|
container.removeControl(dir.name);
|
|
container.updateValueAndValidity({emitEvent: false});
|
|
}
|
|
});
|
|
};
|
|
NgForm.prototype.addControlGroup = function(dir) {
|
|
var _this = this;
|
|
async_1.PromiseWrapper.scheduleMicrotask(function() {
|
|
var container = _this._findContainer(dir.path);
|
|
var group = new model_1.ControlGroup({});
|
|
shared_1.setUpControlGroup(group, dir);
|
|
container.addControl(dir.name, group);
|
|
group.updateValueAndValidity({emitEvent: false});
|
|
});
|
|
};
|
|
NgForm.prototype.removeControlGroup = function(dir) {
|
|
var _this = this;
|
|
async_1.PromiseWrapper.scheduleMicrotask(function() {
|
|
var container = _this._findContainer(dir.path);
|
|
if (lang_1.isPresent(container)) {
|
|
container.removeControl(dir.name);
|
|
container.updateValueAndValidity({emitEvent: false});
|
|
}
|
|
});
|
|
};
|
|
NgForm.prototype.getControlGroup = function(dir) {
|
|
return this.form.find(dir.path);
|
|
};
|
|
NgForm.prototype.updateModel = function(dir, value) {
|
|
var _this = this;
|
|
async_1.PromiseWrapper.scheduleMicrotask(function() {
|
|
var ctrl = _this.form.find(dir.path);
|
|
ctrl.updateValue(value);
|
|
});
|
|
};
|
|
NgForm.prototype.onSubmit = function() {
|
|
async_1.ObservableWrapper.callEmit(this.ngSubmit, null);
|
|
return false;
|
|
};
|
|
NgForm.prototype._findContainer = function(path) {
|
|
path.pop();
|
|
return collection_1.ListWrapper.isEmpty(path) ? this.form : this.form.find(path);
|
|
};
|
|
NgForm = __decorate([core_1.Directive({
|
|
selector: 'form:not([ngNoForm]):not([ngFormModel]),ngForm,[ngForm]',
|
|
bindings: [formDirectiveProvider],
|
|
host: {'(submit)': 'onSubmit()'},
|
|
outputs: ['ngSubmit'],
|
|
exportAs: 'ngForm'
|
|
}), __param(0, core_1.Optional()), __param(0, core_1.Self()), __param(0, core_1.Inject(validators_1.NG_VALIDATORS)), __param(1, core_1.Optional()), __param(1, core_1.Self()), __param(1, core_1.Inject(validators_1.NG_ASYNC_VALIDATORS)), __metadata('design:paramtypes', [Array, Array])], NgForm);
|
|
return NgForm;
|
|
})(control_container_1.ControlContainer);
|
|
exports.NgForm = NgForm;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/forms/directives/ng_control_status", ["angular2/core", "angular2/src/common/forms/directives/ng_control", "angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var __param = (this && this.__param) || function(paramIndex, decorator) {
|
|
return function(target, key) {
|
|
decorator(target, key, paramIndex);
|
|
};
|
|
};
|
|
var core_1 = require("angular2/core");
|
|
var ng_control_1 = require("angular2/src/common/forms/directives/ng_control");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var NgControlStatus = (function() {
|
|
function NgControlStatus(cd) {
|
|
this._cd = cd;
|
|
}
|
|
Object.defineProperty(NgControlStatus.prototype, "ngClassUntouched", {
|
|
get: function() {
|
|
return lang_1.isPresent(this._cd.control) ? this._cd.control.untouched : false;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(NgControlStatus.prototype, "ngClassTouched", {
|
|
get: function() {
|
|
return lang_1.isPresent(this._cd.control) ? this._cd.control.touched : false;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(NgControlStatus.prototype, "ngClassPristine", {
|
|
get: function() {
|
|
return lang_1.isPresent(this._cd.control) ? this._cd.control.pristine : false;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(NgControlStatus.prototype, "ngClassDirty", {
|
|
get: function() {
|
|
return lang_1.isPresent(this._cd.control) ? this._cd.control.dirty : false;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(NgControlStatus.prototype, "ngClassValid", {
|
|
get: function() {
|
|
return lang_1.isPresent(this._cd.control) ? this._cd.control.valid : false;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(NgControlStatus.prototype, "ngClassInvalid", {
|
|
get: function() {
|
|
return lang_1.isPresent(this._cd.control) ? !this._cd.control.valid : false;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
NgControlStatus = __decorate([core_1.Directive({
|
|
selector: '[ngControl],[ngModel],[ngFormControl]',
|
|
host: {
|
|
'[class.ng-untouched]': 'ngClassUntouched',
|
|
'[class.ng-touched]': 'ngClassTouched',
|
|
'[class.ng-pristine]': 'ngClassPristine',
|
|
'[class.ng-dirty]': 'ngClassDirty',
|
|
'[class.ng-valid]': 'ngClassValid',
|
|
'[class.ng-invalid]': 'ngClassInvalid'
|
|
}
|
|
}), __param(0, core_1.Self()), __metadata('design:paramtypes', [ng_control_1.NgControl])], NgControlStatus);
|
|
return NgControlStatus;
|
|
})();
|
|
exports.NgControlStatus = NgControlStatus;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/forms/directives/validators", ["angular2/core", "angular2/src/facade/lang", "angular2/src/common/forms/validators", "angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var __param = (this && this.__param) || function(paramIndex, decorator) {
|
|
return function(target, key) {
|
|
decorator(target, key, paramIndex);
|
|
};
|
|
};
|
|
var core_1 = require("angular2/core");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var validators_1 = require("angular2/src/common/forms/validators");
|
|
var lang_2 = require("angular2/src/facade/lang");
|
|
var REQUIRED_VALIDATOR = lang_1.CONST_EXPR(new core_1.Provider(validators_1.NG_VALIDATORS, {
|
|
useValue: validators_1.Validators.required,
|
|
multi: true
|
|
}));
|
|
var RequiredValidator = (function() {
|
|
function RequiredValidator() {}
|
|
RequiredValidator = __decorate([core_1.Directive({
|
|
selector: '[required][ngControl],[required][ngFormControl],[required][ngModel]',
|
|
providers: [REQUIRED_VALIDATOR]
|
|
}), __metadata('design:paramtypes', [])], RequiredValidator);
|
|
return RequiredValidator;
|
|
})();
|
|
exports.RequiredValidator = RequiredValidator;
|
|
var MIN_LENGTH_VALIDATOR = lang_1.CONST_EXPR(new core_1.Provider(validators_1.NG_VALIDATORS, {
|
|
useExisting: core_1.forwardRef(function() {
|
|
return MinLengthValidator;
|
|
}),
|
|
multi: true
|
|
}));
|
|
var MinLengthValidator = (function() {
|
|
function MinLengthValidator(minLength) {
|
|
this._validator = validators_1.Validators.minLength(lang_2.NumberWrapper.parseInt(minLength, 10));
|
|
}
|
|
MinLengthValidator.prototype.validate = function(c) {
|
|
return this._validator(c);
|
|
};
|
|
MinLengthValidator = __decorate([core_1.Directive({
|
|
selector: '[minlength][ngControl],[minlength][ngFormControl],[minlength][ngModel]',
|
|
providers: [MIN_LENGTH_VALIDATOR]
|
|
}), __param(0, core_1.Attribute("minlength")), __metadata('design:paramtypes', [String])], MinLengthValidator);
|
|
return MinLengthValidator;
|
|
})();
|
|
exports.MinLengthValidator = MinLengthValidator;
|
|
var MAX_LENGTH_VALIDATOR = lang_1.CONST_EXPR(new core_1.Provider(validators_1.NG_VALIDATORS, {
|
|
useExisting: core_1.forwardRef(function() {
|
|
return MaxLengthValidator;
|
|
}),
|
|
multi: true
|
|
}));
|
|
var MaxLengthValidator = (function() {
|
|
function MaxLengthValidator(maxLength) {
|
|
this._validator = validators_1.Validators.maxLength(lang_2.NumberWrapper.parseInt(maxLength, 10));
|
|
}
|
|
MaxLengthValidator.prototype.validate = function(c) {
|
|
return this._validator(c);
|
|
};
|
|
MaxLengthValidator = __decorate([core_1.Directive({
|
|
selector: '[maxlength][ngControl],[maxlength][ngFormControl],[maxlength][ngModel]',
|
|
providers: [MAX_LENGTH_VALIDATOR]
|
|
}), __param(0, core_1.Attribute("maxlength")), __metadata('design:paramtypes', [String])], MaxLengthValidator);
|
|
return MaxLengthValidator;
|
|
})();
|
|
exports.MaxLengthValidator = MaxLengthValidator;
|
|
var PATTERN_VALIDATOR = lang_1.CONST_EXPR(new core_1.Provider(validators_1.NG_VALIDATORS, {
|
|
useExisting: core_1.forwardRef(function() {
|
|
return PatternValidator;
|
|
}),
|
|
multi: true
|
|
}));
|
|
var PatternValidator = (function() {
|
|
function PatternValidator(pattern) {
|
|
this._validator = validators_1.Validators.pattern(pattern);
|
|
}
|
|
PatternValidator.prototype.validate = function(c) {
|
|
return this._validator(c);
|
|
};
|
|
PatternValidator = __decorate([core_1.Directive({
|
|
selector: '[pattern][ngControl],[pattern][ngFormControl],[pattern][ngModel]',
|
|
providers: [PATTERN_VALIDATOR]
|
|
}), __param(0, core_1.Attribute("pattern")), __metadata('design:paramtypes', [String])], PatternValidator);
|
|
return PatternValidator;
|
|
})();
|
|
exports.PatternValidator = PatternValidator;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/forms/form_builder", ["angular2/core", "angular2/src/facade/collection", "angular2/src/facade/lang", "angular2/src/common/forms/model"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var core_1 = require("angular2/core");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var modelModule = require("angular2/src/common/forms/model");
|
|
var FormBuilder = (function() {
|
|
function FormBuilder() {}
|
|
FormBuilder.prototype.group = function(controlsConfig, extra) {
|
|
if (extra === void 0) {
|
|
extra = null;
|
|
}
|
|
var controls = this._reduceControls(controlsConfig);
|
|
var optionals = (lang_1.isPresent(extra) ? collection_1.StringMapWrapper.get(extra, "optionals") : null);
|
|
var validator = lang_1.isPresent(extra) ? collection_1.StringMapWrapper.get(extra, "validator") : null;
|
|
var asyncValidator = lang_1.isPresent(extra) ? collection_1.StringMapWrapper.get(extra, "asyncValidator") : null;
|
|
return new modelModule.ControlGroup(controls, optionals, validator, asyncValidator);
|
|
};
|
|
FormBuilder.prototype.control = function(value, validator, asyncValidator) {
|
|
if (validator === void 0) {
|
|
validator = null;
|
|
}
|
|
if (asyncValidator === void 0) {
|
|
asyncValidator = null;
|
|
}
|
|
return new modelModule.Control(value, validator, asyncValidator);
|
|
};
|
|
FormBuilder.prototype.array = function(controlsConfig, validator, asyncValidator) {
|
|
var _this = this;
|
|
if (validator === void 0) {
|
|
validator = null;
|
|
}
|
|
if (asyncValidator === void 0) {
|
|
asyncValidator = null;
|
|
}
|
|
var controls = controlsConfig.map(function(c) {
|
|
return _this._createControl(c);
|
|
});
|
|
return new modelModule.ControlArray(controls, validator, asyncValidator);
|
|
};
|
|
FormBuilder.prototype._reduceControls = function(controlsConfig) {
|
|
var _this = this;
|
|
var controls = {};
|
|
collection_1.StringMapWrapper.forEach(controlsConfig, function(controlConfig, controlName) {
|
|
controls[controlName] = _this._createControl(controlConfig);
|
|
});
|
|
return controls;
|
|
};
|
|
FormBuilder.prototype._createControl = function(controlConfig) {
|
|
if (controlConfig instanceof modelModule.Control || controlConfig instanceof modelModule.ControlGroup || controlConfig instanceof modelModule.ControlArray) {
|
|
return controlConfig;
|
|
} else if (lang_1.isArray(controlConfig)) {
|
|
var value = controlConfig[0];
|
|
var validator = controlConfig.length > 1 ? controlConfig[1] : null;
|
|
var asyncValidator = controlConfig.length > 2 ? controlConfig[2] : null;
|
|
return this.control(value, validator, asyncValidator);
|
|
} else {
|
|
return this.control(controlConfig);
|
|
}
|
|
};
|
|
FormBuilder = __decorate([core_1.Injectable(), __metadata('design:paramtypes', [])], FormBuilder);
|
|
return FormBuilder;
|
|
})();
|
|
exports.FormBuilder = FormBuilder;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/common_directives", ["angular2/src/facade/lang", "angular2/src/common/forms", "angular2/src/common/directives"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var forms_1 = require("angular2/src/common/forms");
|
|
var directives_1 = require("angular2/src/common/directives");
|
|
exports.COMMON_DIRECTIVES = lang_1.CONST_EXPR([directives_1.CORE_DIRECTIVES, forms_1.FORM_DIRECTIVES]);
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/compiler/xhr", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var XHR = (function() {
|
|
function XHR() {}
|
|
XHR.prototype.get = function(url) {
|
|
return null;
|
|
};
|
|
return XHR;
|
|
})();
|
|
exports.XHR = XHR;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/web_workers/shared/message_bus", ["angular2/src/facade/async"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var async_1 = require("angular2/src/facade/async");
|
|
exports.EventEmitter = async_1.EventEmitter;
|
|
exports.Observable = async_1.Observable;
|
|
var MessageBus = (function() {
|
|
function MessageBus() {}
|
|
return MessageBus;
|
|
})();
|
|
exports.MessageBus = MessageBus;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/web_workers/shared/render_store", ["angular2/src/core/di"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var di_1 = require("angular2/src/core/di");
|
|
var RenderStore = (function() {
|
|
function RenderStore() {
|
|
this._nextIndex = 0;
|
|
this._lookupById = new Map();
|
|
this._lookupByObject = new Map();
|
|
}
|
|
RenderStore.prototype.allocateId = function() {
|
|
return this._nextIndex++;
|
|
};
|
|
RenderStore.prototype.store = function(obj, id) {
|
|
this._lookupById.set(id, obj);
|
|
this._lookupByObject.set(obj, id);
|
|
};
|
|
RenderStore.prototype.remove = function(obj) {
|
|
var index = this._lookupByObject.get(obj);
|
|
this._lookupByObject.delete(obj);
|
|
this._lookupById.delete(index);
|
|
};
|
|
RenderStore.prototype.deserialize = function(id) {
|
|
if (id == null) {
|
|
return null;
|
|
}
|
|
if (!this._lookupById.has(id)) {
|
|
return null;
|
|
}
|
|
return this._lookupById.get(id);
|
|
};
|
|
RenderStore.prototype.serialize = function(obj) {
|
|
if (obj == null) {
|
|
return null;
|
|
}
|
|
return this._lookupByObject.get(obj);
|
|
};
|
|
RenderStore = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [])], RenderStore);
|
|
return RenderStore;
|
|
})();
|
|
exports.RenderStore = RenderStore;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/web_workers/shared/serialized_types", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var LocationType = (function() {
|
|
function LocationType(href, protocol, host, hostname, port, pathname, search, hash, origin) {
|
|
this.href = href;
|
|
this.protocol = protocol;
|
|
this.host = host;
|
|
this.hostname = hostname;
|
|
this.port = port;
|
|
this.pathname = pathname;
|
|
this.search = search;
|
|
this.hash = hash;
|
|
this.origin = origin;
|
|
}
|
|
return LocationType;
|
|
})();
|
|
exports.LocationType = LocationType;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/web_workers/shared/messaging_api", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
exports.RENDERER_CHANNEL = "ng-Renderer";
|
|
exports.XHR_CHANNEL = "ng-XHR";
|
|
exports.EVENT_CHANNEL = "ng-Events";
|
|
exports.ROUTER_CHANNEL = "ng-Router";
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/web_workers/worker/event_deserializer", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
function deserializeGenericEvent(serializedEvent) {
|
|
return serializedEvent;
|
|
}
|
|
exports.deserializeGenericEvent = deserializeGenericEvent;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/web_workers/shared/service_message_broker", ["angular2/src/core/di", "angular2/src/facade/collection", "angular2/src/web_workers/shared/serializer", "angular2/src/facade/lang", "angular2/src/web_workers/shared/message_bus", "angular2/src/facade/async"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var di_1 = require("angular2/src/core/di");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var serializer_1 = require("angular2/src/web_workers/shared/serializer");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var message_bus_1 = require("angular2/src/web_workers/shared/message_bus");
|
|
var async_1 = require("angular2/src/facade/async");
|
|
var ServiceMessageBrokerFactory = (function() {
|
|
function ServiceMessageBrokerFactory() {}
|
|
return ServiceMessageBrokerFactory;
|
|
})();
|
|
exports.ServiceMessageBrokerFactory = ServiceMessageBrokerFactory;
|
|
var ServiceMessageBrokerFactory_ = (function(_super) {
|
|
__extends(ServiceMessageBrokerFactory_, _super);
|
|
function ServiceMessageBrokerFactory_(_messageBus, _serializer) {
|
|
_super.call(this);
|
|
this._messageBus = _messageBus;
|
|
this._serializer = _serializer;
|
|
}
|
|
ServiceMessageBrokerFactory_.prototype.createMessageBroker = function(channel, runInZone) {
|
|
if (runInZone === void 0) {
|
|
runInZone = true;
|
|
}
|
|
this._messageBus.initChannel(channel, runInZone);
|
|
return new ServiceMessageBroker_(this._messageBus, this._serializer, channel);
|
|
};
|
|
ServiceMessageBrokerFactory_ = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [message_bus_1.MessageBus, serializer_1.Serializer])], ServiceMessageBrokerFactory_);
|
|
return ServiceMessageBrokerFactory_;
|
|
})(ServiceMessageBrokerFactory);
|
|
exports.ServiceMessageBrokerFactory_ = ServiceMessageBrokerFactory_;
|
|
var ServiceMessageBroker = (function() {
|
|
function ServiceMessageBroker() {}
|
|
return ServiceMessageBroker;
|
|
})();
|
|
exports.ServiceMessageBroker = ServiceMessageBroker;
|
|
var ServiceMessageBroker_ = (function(_super) {
|
|
__extends(ServiceMessageBroker_, _super);
|
|
function ServiceMessageBroker_(messageBus, _serializer, channel) {
|
|
var _this = this;
|
|
_super.call(this);
|
|
this._serializer = _serializer;
|
|
this.channel = channel;
|
|
this._methods = new collection_1.Map();
|
|
this._sink = messageBus.to(channel);
|
|
var source = messageBus.from(channel);
|
|
async_1.ObservableWrapper.subscribe(source, function(message) {
|
|
return _this._handleMessage(message);
|
|
});
|
|
}
|
|
ServiceMessageBroker_.prototype.registerMethod = function(methodName, signature, method, returnType) {
|
|
var _this = this;
|
|
this._methods.set(methodName, function(message) {
|
|
var serializedArgs = message.args;
|
|
var numArgs = signature === null ? 0 : signature.length;
|
|
var deserializedArgs = collection_1.ListWrapper.createFixedSize(numArgs);
|
|
for (var i = 0; i < numArgs; i++) {
|
|
var serializedArg = serializedArgs[i];
|
|
deserializedArgs[i] = _this._serializer.deserialize(serializedArg, signature[i]);
|
|
}
|
|
var promise = lang_1.FunctionWrapper.apply(method, deserializedArgs);
|
|
if (lang_1.isPresent(returnType) && lang_1.isPresent(promise)) {
|
|
_this._wrapWebWorkerPromise(message.id, promise, returnType);
|
|
}
|
|
});
|
|
};
|
|
ServiceMessageBroker_.prototype._handleMessage = function(map) {
|
|
var message = new ReceivedMessage(map);
|
|
if (this._methods.has(message.method)) {
|
|
this._methods.get(message.method)(message);
|
|
}
|
|
};
|
|
ServiceMessageBroker_.prototype._wrapWebWorkerPromise = function(id, promise, type) {
|
|
var _this = this;
|
|
async_1.PromiseWrapper.then(promise, function(result) {
|
|
async_1.ObservableWrapper.callEmit(_this._sink, {
|
|
'type': 'result',
|
|
'value': _this._serializer.serialize(result, type),
|
|
'id': id
|
|
});
|
|
});
|
|
};
|
|
return ServiceMessageBroker_;
|
|
})(ServiceMessageBroker);
|
|
exports.ServiceMessageBroker_ = ServiceMessageBroker_;
|
|
var ReceivedMessage = (function() {
|
|
function ReceivedMessage(data) {
|
|
this.method = data['method'];
|
|
this.args = data['args'];
|
|
this.id = data['id'];
|
|
this.type = data['type'];
|
|
}
|
|
return ReceivedMessage;
|
|
})();
|
|
exports.ReceivedMessage = ReceivedMessage;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/web_workers/shared/api", ["angular2/src/facade/lang", "angular2/src/core/di"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var di_1 = require("angular2/src/core/di");
|
|
exports.ON_WEB_WORKER = lang_1.CONST_EXPR(new di_1.OpaqueToken('WebWorker.onWebWorker'));
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("parse5/lib/common/unicode", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
'use strict';
|
|
exports.REPLACEMENT_CHARACTER = '\uFFFD';
|
|
exports.CODE_POINTS = {
|
|
EOF: -1,
|
|
NULL: 0x00,
|
|
TABULATION: 0x09,
|
|
CARRIAGE_RETURN: 0x0D,
|
|
LINE_FEED: 0x0A,
|
|
FORM_FEED: 0x0C,
|
|
SPACE: 0x20,
|
|
EXCLAMATION_MARK: 0x21,
|
|
QUOTATION_MARK: 0x22,
|
|
NUMBER_SIGN: 0x23,
|
|
AMPERSAND: 0x26,
|
|
APOSTROPHE: 0x27,
|
|
HYPHEN_MINUS: 0x2D,
|
|
SOLIDUS: 0x2F,
|
|
DIGIT_0: 0x30,
|
|
DIGIT_9: 0x39,
|
|
SEMICOLON: 0x3B,
|
|
LESS_THAN_SIGN: 0x3C,
|
|
EQUALS_SIGN: 0x3D,
|
|
GREATER_THAN_SIGN: 0x3E,
|
|
QUESTION_MARK: 0x3F,
|
|
LATIN_CAPITAL_A: 0x41,
|
|
LATIN_CAPITAL_F: 0x46,
|
|
LATIN_CAPITAL_X: 0x58,
|
|
LATIN_CAPITAL_Z: 0x5A,
|
|
GRAVE_ACCENT: 0x60,
|
|
LATIN_SMALL_A: 0x61,
|
|
LATIN_SMALL_F: 0x66,
|
|
LATIN_SMALL_X: 0x78,
|
|
LATIN_SMALL_Z: 0x7A,
|
|
BOM: 0xFEFF,
|
|
REPLACEMENT_CHARACTER: 0xFFFD
|
|
};
|
|
exports.CODE_POINT_SEQUENCES = {
|
|
DASH_DASH_STRING: [0x2D, 0x2D],
|
|
DOCTYPE_STRING: [0x44, 0x4F, 0x43, 0x54, 0x59, 0x50, 0x45],
|
|
CDATA_START_STRING: [0x5B, 0x43, 0x44, 0x41, 0x54, 0x41, 0x5B],
|
|
CDATA_END_STRING: [0x5D, 0x5D, 0x3E],
|
|
SCRIPT_STRING: [0x73, 0x63, 0x72, 0x69, 0x70, 0x74],
|
|
PUBLIC_STRING: [0x50, 0x55, 0x42, 0x4C, 0x49, 0x43],
|
|
SYSTEM_STRING: [0x53, 0x59, 0x53, 0x54, 0x45, 0x4D]
|
|
};
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("parse5/lib/tokenization/named_entity_trie", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
'use strict';
|
|
module.exports = {
|
|
0x41: {l: {
|
|
0x61: {l: {0x63: {l: {0x75: {l: {0x74: {l: {0x65: {
|
|
l: {0x3B: {c: [193]}},
|
|
c: [193]
|
|
}}}}}}}}},
|
|
0x62: {l: {0x72: {l: {0x65: {l: {0x76: {l: {0x65: {l: {0x3B: {c: [258]}}}}}}}}}}},
|
|
0x63: {l: {
|
|
0x69: {l: {0x72: {l: {0x63: {
|
|
l: {0x3B: {c: [194]}},
|
|
c: [194]
|
|
}}}}},
|
|
0x79: {l: {0x3B: {c: [1040]}}}
|
|
}},
|
|
0x45: {l: {0x6C: {l: {0x69: {l: {0x67: {
|
|
l: {0x3B: {c: [198]}},
|
|
c: [198]
|
|
}}}}}}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120068]}}}}},
|
|
0x67: {l: {0x72: {l: {0x61: {l: {0x76: {l: {0x65: {
|
|
l: {0x3B: {c: [192]}},
|
|
c: [192]
|
|
}}}}}}}}},
|
|
0x6C: {l: {0x70: {l: {0x68: {l: {0x61: {l: {0x3B: {c: [913]}}}}}}}}},
|
|
0x6D: {l: {0x61: {l: {0x63: {l: {0x72: {l: {0x3B: {c: [256]}}}}}}}}},
|
|
0x4D: {l: {0x50: {
|
|
l: {0x3B: {c: [38]}},
|
|
c: [38]
|
|
}}},
|
|
0x6E: {l: {0x64: {l: {0x3B: {c: [10835]}}}}},
|
|
0x6F: {l: {
|
|
0x67: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [260]}}}}}}},
|
|
0x70: {l: {0x66: {l: {0x3B: {c: [120120]}}}}}
|
|
}},
|
|
0x70: {l: {0x70: {l: {0x6C: {l: {0x79: {l: {0x46: {l: {0x75: {l: {0x6E: {l: {0x63: {l: {0x74: {l: {0x69: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [8289]}}}}}}}}}}}}}}}}}}}}}}}}},
|
|
0x72: {l: {0x69: {l: {0x6E: {l: {0x67: {
|
|
l: {0x3B: {c: [197]}},
|
|
c: [197]
|
|
}}}}}}},
|
|
0x73: {l: {
|
|
0x63: {l: {0x72: {l: {0x3B: {c: [119964]}}}}},
|
|
0x73: {l: {0x69: {l: {0x67: {l: {0x6E: {l: {0x3B: {c: [8788]}}}}}}}}}
|
|
}},
|
|
0x74: {l: {0x69: {l: {0x6C: {l: {0x64: {l: {0x65: {
|
|
l: {0x3B: {c: [195]}},
|
|
c: [195]
|
|
}}}}}}}}},
|
|
0x75: {l: {0x6D: {l: {0x6C: {
|
|
l: {0x3B: {c: [196]}},
|
|
c: [196]
|
|
}}}}}
|
|
}},
|
|
0x61: {l: {
|
|
0x61: {l: {0x63: {l: {0x75: {l: {0x74: {l: {0x65: {
|
|
l: {0x3B: {c: [225]}},
|
|
c: [225]
|
|
}}}}}}}}},
|
|
0x62: {l: {0x72: {l: {0x65: {l: {0x76: {l: {0x65: {l: {0x3B: {c: [259]}}}}}}}}}}},
|
|
0x63: {l: {
|
|
0x3B: {c: [8766]},
|
|
0x64: {l: {0x3B: {c: [8767]}}},
|
|
0x45: {l: {0x3B: {c: [8766, 819]}}},
|
|
0x69: {l: {0x72: {l: {0x63: {
|
|
l: {0x3B: {c: [226]}},
|
|
c: [226]
|
|
}}}}},
|
|
0x75: {l: {0x74: {l: {0x65: {
|
|
l: {0x3B: {c: [180]}},
|
|
c: [180]
|
|
}}}}},
|
|
0x79: {l: {0x3B: {c: [1072]}}}
|
|
}},
|
|
0x65: {l: {0x6C: {l: {0x69: {l: {0x67: {
|
|
l: {0x3B: {c: [230]}},
|
|
c: [230]
|
|
}}}}}}},
|
|
0x66: {l: {
|
|
0x3B: {c: [8289]},
|
|
0x72: {l: {0x3B: {c: [120094]}}}
|
|
}},
|
|
0x67: {l: {0x72: {l: {0x61: {l: {0x76: {l: {0x65: {
|
|
l: {0x3B: {c: [224]}},
|
|
c: [224]
|
|
}}}}}}}}},
|
|
0x6C: {l: {
|
|
0x65: {l: {
|
|
0x66: {l: {0x73: {l: {0x79: {l: {0x6D: {l: {0x3B: {c: [8501]}}}}}}}}},
|
|
0x70: {l: {0x68: {l: {0x3B: {c: [8501]}}}}}
|
|
}},
|
|
0x70: {l: {0x68: {l: {0x61: {l: {0x3B: {c: [945]}}}}}}}
|
|
}},
|
|
0x6D: {l: {
|
|
0x61: {l: {
|
|
0x63: {l: {0x72: {l: {0x3B: {c: [257]}}}}},
|
|
0x6C: {l: {0x67: {l: {0x3B: {c: [10815]}}}}}
|
|
}},
|
|
0x70: {
|
|
l: {0x3B: {c: [38]}},
|
|
c: [38]
|
|
}
|
|
}},
|
|
0x6E: {l: {
|
|
0x64: {l: {
|
|
0x61: {l: {0x6E: {l: {0x64: {l: {0x3B: {c: [10837]}}}}}}},
|
|
0x3B: {c: [8743]},
|
|
0x64: {l: {0x3B: {c: [10844]}}},
|
|
0x73: {l: {0x6C: {l: {0x6F: {l: {0x70: {l: {0x65: {l: {0x3B: {c: [10840]}}}}}}}}}}},
|
|
0x76: {l: {0x3B: {c: [10842]}}}
|
|
}},
|
|
0x67: {l: {
|
|
0x3B: {c: [8736]},
|
|
0x65: {l: {0x3B: {c: [10660]}}},
|
|
0x6C: {l: {0x65: {l: {0x3B: {c: [8736]}}}}},
|
|
0x6D: {l: {0x73: {l: {0x64: {l: {
|
|
0x61: {l: {
|
|
0x61: {l: {0x3B: {c: [10664]}}},
|
|
0x62: {l: {0x3B: {c: [10665]}}},
|
|
0x63: {l: {0x3B: {c: [10666]}}},
|
|
0x64: {l: {0x3B: {c: [10667]}}},
|
|
0x65: {l: {0x3B: {c: [10668]}}},
|
|
0x66: {l: {0x3B: {c: [10669]}}},
|
|
0x67: {l: {0x3B: {c: [10670]}}},
|
|
0x68: {l: {0x3B: {c: [10671]}}}
|
|
}},
|
|
0x3B: {c: [8737]}
|
|
}}}}}},
|
|
0x72: {l: {0x74: {l: {
|
|
0x3B: {c: [8735]},
|
|
0x76: {l: {0x62: {l: {
|
|
0x3B: {c: [8894]},
|
|
0x64: {l: {0x3B: {c: [10653]}}}
|
|
}}}}
|
|
}}}},
|
|
0x73: {l: {
|
|
0x70: {l: {0x68: {l: {0x3B: {c: [8738]}}}}},
|
|
0x74: {l: {0x3B: {c: [197]}}}
|
|
}},
|
|
0x7A: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [9084]}}}}}}}}}
|
|
}}
|
|
}},
|
|
0x6F: {l: {
|
|
0x67: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [261]}}}}}}},
|
|
0x70: {l: {0x66: {l: {0x3B: {c: [120146]}}}}}
|
|
}},
|
|
0x70: {l: {
|
|
0x61: {l: {0x63: {l: {0x69: {l: {0x72: {l: {0x3B: {c: [10863]}}}}}}}}},
|
|
0x3B: {c: [8776]},
|
|
0x45: {l: {0x3B: {c: [10864]}}},
|
|
0x65: {l: {0x3B: {c: [8778]}}},
|
|
0x69: {l: {0x64: {l: {0x3B: {c: [8779]}}}}},
|
|
0x6F: {l: {0x73: {l: {0x3B: {c: [39]}}}}},
|
|
0x70: {l: {0x72: {l: {0x6F: {l: {0x78: {l: {
|
|
0x3B: {c: [8776]},
|
|
0x65: {l: {0x71: {l: {0x3B: {c: [8778]}}}}}
|
|
}}}}}}}}
|
|
}},
|
|
0x72: {l: {0x69: {l: {0x6E: {l: {0x67: {
|
|
l: {0x3B: {c: [229]}},
|
|
c: [229]
|
|
}}}}}}},
|
|
0x73: {l: {
|
|
0x63: {l: {0x72: {l: {0x3B: {c: [119990]}}}}},
|
|
0x74: {l: {0x3B: {c: [42]}}},
|
|
0x79: {l: {0x6D: {l: {0x70: {l: {
|
|
0x3B: {c: [8776]},
|
|
0x65: {l: {0x71: {l: {0x3B: {c: [8781]}}}}}
|
|
}}}}}}
|
|
}},
|
|
0x74: {l: {0x69: {l: {0x6C: {l: {0x64: {l: {0x65: {
|
|
l: {0x3B: {c: [227]}},
|
|
c: [227]
|
|
}}}}}}}}},
|
|
0x75: {l: {0x6D: {l: {0x6C: {
|
|
l: {0x3B: {c: [228]}},
|
|
c: [228]
|
|
}}}}},
|
|
0x77: {l: {
|
|
0x63: {l: {0x6F: {l: {0x6E: {l: {0x69: {l: {0x6E: {l: {0x74: {l: {0x3B: {c: [8755]}}}}}}}}}}}}},
|
|
0x69: {l: {0x6E: {l: {0x74: {l: {0x3B: {c: [10769]}}}}}}}
|
|
}}
|
|
}},
|
|
0x62: {l: {
|
|
0x61: {l: {
|
|
0x63: {l: {0x6B: {l: {
|
|
0x63: {l: {0x6F: {l: {0x6E: {l: {0x67: {l: {0x3B: {c: [8780]}}}}}}}}},
|
|
0x65: {l: {0x70: {l: {0x73: {l: {0x69: {l: {0x6C: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [1014]}}}}}}}}}}}}}}},
|
|
0x70: {l: {0x72: {l: {0x69: {l: {0x6D: {l: {0x65: {l: {0x3B: {c: [8245]}}}}}}}}}}},
|
|
0x73: {l: {0x69: {l: {0x6D: {l: {
|
|
0x3B: {c: [8765]},
|
|
0x65: {l: {0x71: {l: {0x3B: {c: [8909]}}}}}
|
|
}}}}}}
|
|
}}}},
|
|
0x72: {l: {
|
|
0x76: {l: {0x65: {l: {0x65: {l: {0x3B: {c: [8893]}}}}}}},
|
|
0x77: {l: {0x65: {l: {0x64: {l: {
|
|
0x3B: {c: [8965]},
|
|
0x67: {l: {0x65: {l: {0x3B: {c: [8965]}}}}}
|
|
}}}}}}
|
|
}}
|
|
}},
|
|
0x62: {l: {0x72: {l: {0x6B: {l: {
|
|
0x3B: {c: [9141]},
|
|
0x74: {l: {0x62: {l: {0x72: {l: {0x6B: {l: {0x3B: {c: [9142]}}}}}}}}}
|
|
}}}}}},
|
|
0x63: {l: {
|
|
0x6F: {l: {0x6E: {l: {0x67: {l: {0x3B: {c: [8780]}}}}}}},
|
|
0x79: {l: {0x3B: {c: [1073]}}}
|
|
}},
|
|
0x64: {l: {0x71: {l: {0x75: {l: {0x6F: {l: {0x3B: {c: [8222]}}}}}}}}},
|
|
0x65: {l: {
|
|
0x63: {l: {0x61: {l: {0x75: {l: {0x73: {l: {
|
|
0x3B: {c: [8757]},
|
|
0x65: {l: {0x3B: {c: [8757]}}}
|
|
}}}}}}}},
|
|
0x6D: {l: {0x70: {l: {0x74: {l: {0x79: {l: {0x76: {l: {0x3B: {c: [10672]}}}}}}}}}}},
|
|
0x70: {l: {0x73: {l: {0x69: {l: {0x3B: {c: [1014]}}}}}}},
|
|
0x72: {l: {0x6E: {l: {0x6F: {l: {0x75: {l: {0x3B: {c: [8492]}}}}}}}}},
|
|
0x74: {l: {
|
|
0x61: {l: {0x3B: {c: [946]}}},
|
|
0x68: {l: {0x3B: {c: [8502]}}},
|
|
0x77: {l: {0x65: {l: {0x65: {l: {0x6E: {l: {0x3B: {c: [8812]}}}}}}}}}
|
|
}}
|
|
}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120095]}}}}},
|
|
0x69: {l: {0x67: {l: {
|
|
0x63: {l: {
|
|
0x61: {l: {0x70: {l: {0x3B: {c: [8898]}}}}},
|
|
0x69: {l: {0x72: {l: {0x63: {l: {0x3B: {c: [9711]}}}}}}},
|
|
0x75: {l: {0x70: {l: {0x3B: {c: [8899]}}}}}
|
|
}},
|
|
0x6F: {l: {
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [10752]}}}}}}},
|
|
0x70: {l: {0x6C: {l: {0x75: {l: {0x73: {l: {0x3B: {c: [10753]}}}}}}}}},
|
|
0x74: {l: {0x69: {l: {0x6D: {l: {0x65: {l: {0x73: {l: {0x3B: {c: [10754]}}}}}}}}}}}
|
|
}},
|
|
0x73: {l: {
|
|
0x71: {l: {0x63: {l: {0x75: {l: {0x70: {l: {0x3B: {c: [10758]}}}}}}}}},
|
|
0x74: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [9733]}}}}}}}
|
|
}},
|
|
0x74: {l: {0x72: {l: {0x69: {l: {0x61: {l: {0x6E: {l: {0x67: {l: {0x6C: {l: {0x65: {l: {
|
|
0x64: {l: {0x6F: {l: {0x77: {l: {0x6E: {l: {0x3B: {c: [9661]}}}}}}}}},
|
|
0x75: {l: {0x70: {l: {0x3B: {c: [9651]}}}}}
|
|
}}}}}}}}}}}}}}}},
|
|
0x75: {l: {0x70: {l: {0x6C: {l: {0x75: {l: {0x73: {l: {0x3B: {c: [10756]}}}}}}}}}}},
|
|
0x76: {l: {0x65: {l: {0x65: {l: {0x3B: {c: [8897]}}}}}}},
|
|
0x77: {l: {0x65: {l: {0x64: {l: {0x67: {l: {0x65: {l: {0x3B: {c: [8896]}}}}}}}}}}}
|
|
}}}},
|
|
0x6B: {l: {0x61: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [10509]}}}}}}}}}}},
|
|
0x6C: {l: {
|
|
0x61: {l: {
|
|
0x63: {l: {0x6B: {l: {
|
|
0x6C: {l: {0x6F: {l: {0x7A: {l: {0x65: {l: {0x6E: {l: {0x67: {l: {0x65: {l: {0x3B: {c: [10731]}}}}}}}}}}}}}}},
|
|
0x73: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x72: {l: {0x65: {l: {0x3B: {c: [9642]}}}}}}}}}}}}},
|
|
0x74: {l: {0x72: {l: {0x69: {l: {0x61: {l: {0x6E: {l: {0x67: {l: {0x6C: {l: {0x65: {l: {
|
|
0x3B: {c: [9652]},
|
|
0x64: {l: {0x6F: {l: {0x77: {l: {0x6E: {l: {0x3B: {c: [9662]}}}}}}}}},
|
|
0x6C: {l: {0x65: {l: {0x66: {l: {0x74: {l: {0x3B: {c: [9666]}}}}}}}}},
|
|
0x72: {l: {0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {0x3B: {c: [9656]}}}}}}}}}}}
|
|
}}}}}}}}}}}}}}}}
|
|
}}}},
|
|
0x6E: {l: {0x6B: {l: {0x3B: {c: [9251]}}}}}
|
|
}},
|
|
0x6B: {l: {
|
|
0x31: {l: {
|
|
0x32: {l: {0x3B: {c: [9618]}}},
|
|
0x34: {l: {0x3B: {c: [9617]}}}
|
|
}},
|
|
0x33: {l: {0x34: {l: {0x3B: {c: [9619]}}}}}
|
|
}},
|
|
0x6F: {l: {0x63: {l: {0x6B: {l: {0x3B: {c: [9608]}}}}}}}
|
|
}},
|
|
0x6E: {l: {
|
|
0x65: {l: {
|
|
0x3B: {c: [61, 8421]},
|
|
0x71: {l: {0x75: {l: {0x69: {l: {0x76: {l: {0x3B: {c: [8801, 8421]}}}}}}}}}
|
|
}},
|
|
0x6F: {l: {0x74: {l: {0x3B: {c: [8976]}}}}}
|
|
}},
|
|
0x4E: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [10989]}}}}}}},
|
|
0x6F: {l: {
|
|
0x70: {l: {0x66: {l: {0x3B: {c: [120147]}}}}},
|
|
0x74: {l: {
|
|
0x3B: {c: [8869]},
|
|
0x74: {l: {0x6F: {l: {0x6D: {l: {0x3B: {c: [8869]}}}}}}}
|
|
}},
|
|
0x77: {l: {0x74: {l: {0x69: {l: {0x65: {l: {0x3B: {c: [8904]}}}}}}}}},
|
|
0x78: {l: {
|
|
0x62: {l: {0x6F: {l: {0x78: {l: {0x3B: {c: [10697]}}}}}}},
|
|
0x64: {l: {
|
|
0x6C: {l: {0x3B: {c: [9488]}}},
|
|
0x4C: {l: {0x3B: {c: [9557]}}},
|
|
0x72: {l: {0x3B: {c: [9484]}}},
|
|
0x52: {l: {0x3B: {c: [9554]}}}
|
|
}},
|
|
0x44: {l: {
|
|
0x6C: {l: {0x3B: {c: [9558]}}},
|
|
0x4C: {l: {0x3B: {c: [9559]}}},
|
|
0x72: {l: {0x3B: {c: [9555]}}},
|
|
0x52: {l: {0x3B: {c: [9556]}}}
|
|
}},
|
|
0x68: {l: {
|
|
0x3B: {c: [9472]},
|
|
0x64: {l: {0x3B: {c: [9516]}}},
|
|
0x44: {l: {0x3B: {c: [9573]}}},
|
|
0x75: {l: {0x3B: {c: [9524]}}},
|
|
0x55: {l: {0x3B: {c: [9576]}}}
|
|
}},
|
|
0x48: {l: {
|
|
0x3B: {c: [9552]},
|
|
0x64: {l: {0x3B: {c: [9572]}}},
|
|
0x44: {l: {0x3B: {c: [9574]}}},
|
|
0x75: {l: {0x3B: {c: [9575]}}},
|
|
0x55: {l: {0x3B: {c: [9577]}}}
|
|
}},
|
|
0x6D: {l: {0x69: {l: {0x6E: {l: {0x75: {l: {0x73: {l: {0x3B: {c: [8863]}}}}}}}}}}},
|
|
0x70: {l: {0x6C: {l: {0x75: {l: {0x73: {l: {0x3B: {c: [8862]}}}}}}}}},
|
|
0x74: {l: {0x69: {l: {0x6D: {l: {0x65: {l: {0x73: {l: {0x3B: {c: [8864]}}}}}}}}}}},
|
|
0x75: {l: {
|
|
0x6C: {l: {0x3B: {c: [9496]}}},
|
|
0x4C: {l: {0x3B: {c: [9563]}}},
|
|
0x72: {l: {0x3B: {c: [9492]}}},
|
|
0x52: {l: {0x3B: {c: [9560]}}}
|
|
}},
|
|
0x55: {l: {
|
|
0x6C: {l: {0x3B: {c: [9564]}}},
|
|
0x4C: {l: {0x3B: {c: [9565]}}},
|
|
0x72: {l: {0x3B: {c: [9561]}}},
|
|
0x52: {l: {0x3B: {c: [9562]}}}
|
|
}},
|
|
0x76: {l: {
|
|
0x3B: {c: [9474]},
|
|
0x68: {l: {0x3B: {c: [9532]}}},
|
|
0x48: {l: {0x3B: {c: [9578]}}},
|
|
0x6C: {l: {0x3B: {c: [9508]}}},
|
|
0x4C: {l: {0x3B: {c: [9569]}}},
|
|
0x72: {l: {0x3B: {c: [9500]}}},
|
|
0x52: {l: {0x3B: {c: [9566]}}}
|
|
}},
|
|
0x56: {l: {
|
|
0x3B: {c: [9553]},
|
|
0x68: {l: {0x3B: {c: [9579]}}},
|
|
0x48: {l: {0x3B: {c: [9580]}}},
|
|
0x6C: {l: {0x3B: {c: [9570]}}},
|
|
0x4C: {l: {0x3B: {c: [9571]}}},
|
|
0x72: {l: {0x3B: {c: [9567]}}},
|
|
0x52: {l: {0x3B: {c: [9568]}}}
|
|
}}
|
|
}}
|
|
}},
|
|
0x70: {l: {0x72: {l: {0x69: {l: {0x6D: {l: {0x65: {l: {0x3B: {c: [8245]}}}}}}}}}}},
|
|
0x72: {l: {
|
|
0x65: {l: {0x76: {l: {0x65: {l: {0x3B: {c: [728]}}}}}}},
|
|
0x76: {l: {0x62: {l: {0x61: {l: {0x72: {
|
|
l: {0x3B: {c: [166]}},
|
|
c: [166]
|
|
}}}}}}}
|
|
}},
|
|
0x73: {l: {
|
|
0x63: {l: {0x72: {l: {0x3B: {c: [119991]}}}}},
|
|
0x65: {l: {0x6D: {l: {0x69: {l: {0x3B: {c: [8271]}}}}}}},
|
|
0x69: {l: {0x6D: {l: {
|
|
0x3B: {c: [8765]},
|
|
0x65: {l: {0x3B: {c: [8909]}}}
|
|
}}}},
|
|
0x6F: {l: {0x6C: {l: {
|
|
0x62: {l: {0x3B: {c: [10693]}}},
|
|
0x3B: {c: [92]},
|
|
0x68: {l: {0x73: {l: {0x75: {l: {0x62: {l: {0x3B: {c: [10184]}}}}}}}}}
|
|
}}}}
|
|
}},
|
|
0x75: {l: {
|
|
0x6C: {l: {0x6C: {l: {
|
|
0x3B: {c: [8226]},
|
|
0x65: {l: {0x74: {l: {0x3B: {c: [8226]}}}}}
|
|
}}}},
|
|
0x6D: {l: {0x70: {l: {
|
|
0x3B: {c: [8782]},
|
|
0x45: {l: {0x3B: {c: [10926]}}},
|
|
0x65: {l: {
|
|
0x3B: {c: [8783]},
|
|
0x71: {l: {0x3B: {c: [8783]}}}
|
|
}}
|
|
}}}}
|
|
}}
|
|
}},
|
|
0x42: {l: {
|
|
0x61: {l: {
|
|
0x63: {l: {0x6B: {l: {0x73: {l: {0x6C: {l: {0x61: {l: {0x73: {l: {0x68: {l: {0x3B: {c: [8726]}}}}}}}}}}}}}}},
|
|
0x72: {l: {
|
|
0x76: {l: {0x3B: {c: [10983]}}},
|
|
0x77: {l: {0x65: {l: {0x64: {l: {0x3B: {c: [8966]}}}}}}}
|
|
}}
|
|
}},
|
|
0x63: {l: {0x79: {l: {0x3B: {c: [1041]}}}}},
|
|
0x65: {l: {
|
|
0x63: {l: {0x61: {l: {0x75: {l: {0x73: {l: {0x65: {l: {0x3B: {c: [8757]}}}}}}}}}}},
|
|
0x72: {l: {0x6E: {l: {0x6F: {l: {0x75: {l: {0x6C: {l: {0x6C: {l: {0x69: {l: {0x73: {l: {0x3B: {c: [8492]}}}}}}}}}}}}}}}}},
|
|
0x74: {l: {0x61: {l: {0x3B: {c: [914]}}}}}
|
|
}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120069]}}}}},
|
|
0x6F: {l: {0x70: {l: {0x66: {l: {0x3B: {c: [120121]}}}}}}},
|
|
0x72: {l: {0x65: {l: {0x76: {l: {0x65: {l: {0x3B: {c: [728]}}}}}}}}},
|
|
0x73: {l: {0x63: {l: {0x72: {l: {0x3B: {c: [8492]}}}}}}},
|
|
0x75: {l: {0x6D: {l: {0x70: {l: {0x65: {l: {0x71: {l: {0x3B: {c: [8782]}}}}}}}}}}}
|
|
}},
|
|
0x43: {l: {
|
|
0x61: {l: {
|
|
0x63: {l: {0x75: {l: {0x74: {l: {0x65: {l: {0x3B: {c: [262]}}}}}}}}},
|
|
0x70: {l: {
|
|
0x3B: {c: [8914]},
|
|
0x69: {l: {0x74: {l: {0x61: {l: {0x6C: {l: {0x44: {l: {0x69: {l: {0x66: {l: {0x66: {l: {0x65: {l: {0x72: {l: {0x65: {l: {0x6E: {l: {0x74: {l: {0x69: {l: {0x61: {l: {0x6C: {l: {0x44: {l: {0x3B: {c: [8517]}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
|
|
}},
|
|
0x79: {l: {0x6C: {l: {0x65: {l: {0x79: {l: {0x73: {l: {0x3B: {c: [8493]}}}}}}}}}}}
|
|
}},
|
|
0x63: {l: {
|
|
0x61: {l: {0x72: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [268]}}}}}}}}},
|
|
0x65: {l: {0x64: {l: {0x69: {l: {0x6C: {
|
|
l: {0x3B: {c: [199]}},
|
|
c: [199]
|
|
}}}}}}},
|
|
0x69: {l: {0x72: {l: {0x63: {l: {0x3B: {c: [264]}}}}}}},
|
|
0x6F: {l: {0x6E: {l: {0x69: {l: {0x6E: {l: {0x74: {l: {0x3B: {c: [8752]}}}}}}}}}}}
|
|
}},
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [266]}}}}}}},
|
|
0x65: {l: {
|
|
0x64: {l: {0x69: {l: {0x6C: {l: {0x6C: {l: {0x61: {l: {0x3B: {c: [184]}}}}}}}}}}},
|
|
0x6E: {l: {0x74: {l: {0x65: {l: {0x72: {l: {0x44: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [183]}}}}}}}}}}}}}}}
|
|
}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [8493]}}}}},
|
|
0x48: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1063]}}}}}}},
|
|
0x68: {l: {0x69: {l: {0x3B: {c: [935]}}}}},
|
|
0x69: {l: {0x72: {l: {0x63: {l: {0x6C: {l: {0x65: {l: {
|
|
0x44: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [8857]}}}}}}},
|
|
0x4D: {l: {0x69: {l: {0x6E: {l: {0x75: {l: {0x73: {l: {0x3B: {c: [8854]}}}}}}}}}}},
|
|
0x50: {l: {0x6C: {l: {0x75: {l: {0x73: {l: {0x3B: {c: [8853]}}}}}}}}},
|
|
0x54: {l: {0x69: {l: {0x6D: {l: {0x65: {l: {0x73: {l: {0x3B: {c: [8855]}}}}}}}}}}}
|
|
}}}}}}}}}},
|
|
0x6C: {l: {0x6F: {l: {
|
|
0x63: {l: {0x6B: {l: {0x77: {l: {0x69: {l: {0x73: {l: {0x65: {l: {0x43: {l: {0x6F: {l: {0x6E: {l: {0x74: {l: {0x6F: {l: {0x75: {l: {0x72: {l: {0x49: {l: {0x6E: {l: {0x74: {l: {0x65: {l: {0x67: {l: {0x72: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [8754]}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},
|
|
0x73: {l: {0x65: {l: {0x43: {l: {0x75: {l: {0x72: {l: {0x6C: {l: {0x79: {l: {
|
|
0x44: {l: {0x6F: {l: {0x75: {l: {0x62: {l: {0x6C: {l: {0x65: {l: {0x51: {l: {0x75: {l: {0x6F: {l: {0x74: {l: {0x65: {l: {0x3B: {c: [8221]}}}}}}}}}}}}}}}}}}}}}}},
|
|
0x51: {l: {0x75: {l: {0x6F: {l: {0x74: {l: {0x65: {l: {0x3B: {c: [8217]}}}}}}}}}}}
|
|
}}}}}}}}}}}}}}
|
|
}}}},
|
|
0x6F: {l: {
|
|
0x6C: {l: {0x6F: {l: {0x6E: {l: {
|
|
0x3B: {c: [8759]},
|
|
0x65: {l: {0x3B: {c: [10868]}}}
|
|
}}}}}},
|
|
0x6E: {l: {
|
|
0x67: {l: {0x72: {l: {0x75: {l: {0x65: {l: {0x6E: {l: {0x74: {l: {0x3B: {c: [8801]}}}}}}}}}}}}},
|
|
0x69: {l: {0x6E: {l: {0x74: {l: {0x3B: {c: [8751]}}}}}}},
|
|
0x74: {l: {0x6F: {l: {0x75: {l: {0x72: {l: {0x49: {l: {0x6E: {l: {0x74: {l: {0x65: {l: {0x67: {l: {0x72: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [8750]}}}}}}}}}}}}}}}}}}}}}}}}}
|
|
}},
|
|
0x70: {l: {
|
|
0x66: {l: {0x3B: {c: [8450]}}},
|
|
0x72: {l: {0x6F: {l: {0x64: {l: {0x75: {l: {0x63: {l: {0x74: {l: {0x3B: {c: [8720]}}}}}}}}}}}}}
|
|
}},
|
|
0x75: {l: {0x6E: {l: {0x74: {l: {0x65: {l: {0x72: {l: {0x43: {l: {0x6C: {l: {0x6F: {l: {0x63: {l: {0x6B: {l: {0x77: {l: {0x69: {l: {0x73: {l: {0x65: {l: {0x43: {l: {0x6F: {l: {0x6E: {l: {0x74: {l: {0x6F: {l: {0x75: {l: {0x72: {l: {0x49: {l: {0x6E: {l: {0x74: {l: {0x65: {l: {0x67: {l: {0x72: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [8755]}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
|
|
}},
|
|
0x4F: {l: {0x50: {l: {0x59: {
|
|
l: {0x3B: {c: [169]}},
|
|
c: [169]
|
|
}}}}},
|
|
0x72: {l: {0x6F: {l: {0x73: {l: {0x73: {l: {0x3B: {c: [10799]}}}}}}}}},
|
|
0x73: {l: {0x63: {l: {0x72: {l: {0x3B: {c: [119966]}}}}}}},
|
|
0x75: {l: {0x70: {l: {
|
|
0x43: {l: {0x61: {l: {0x70: {l: {0x3B: {c: [8781]}}}}}}},
|
|
0x3B: {c: [8915]}
|
|
}}}}
|
|
}},
|
|
0x63: {l: {
|
|
0x61: {l: {
|
|
0x63: {l: {0x75: {l: {0x74: {l: {0x65: {l: {0x3B: {c: [263]}}}}}}}}},
|
|
0x70: {l: {
|
|
0x61: {l: {0x6E: {l: {0x64: {l: {0x3B: {c: [10820]}}}}}}},
|
|
0x62: {l: {0x72: {l: {0x63: {l: {0x75: {l: {0x70: {l: {0x3B: {c: [10825]}}}}}}}}}}},
|
|
0x63: {l: {
|
|
0x61: {l: {0x70: {l: {0x3B: {c: [10827]}}}}},
|
|
0x75: {l: {0x70: {l: {0x3B: {c: [10823]}}}}}
|
|
}},
|
|
0x3B: {c: [8745]},
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [10816]}}}}}}},
|
|
0x73: {l: {0x3B: {c: [8745, 65024]}}}
|
|
}},
|
|
0x72: {l: {
|
|
0x65: {l: {0x74: {l: {0x3B: {c: [8257]}}}}},
|
|
0x6F: {l: {0x6E: {l: {0x3B: {c: [711]}}}}}
|
|
}}
|
|
}},
|
|
0x63: {l: {
|
|
0x61: {l: {
|
|
0x70: {l: {0x73: {l: {0x3B: {c: [10829]}}}}},
|
|
0x72: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [269]}}}}}}}
|
|
}},
|
|
0x65: {l: {0x64: {l: {0x69: {l: {0x6C: {
|
|
l: {0x3B: {c: [231]}},
|
|
c: [231]
|
|
}}}}}}},
|
|
0x69: {l: {0x72: {l: {0x63: {l: {0x3B: {c: [265]}}}}}}},
|
|
0x75: {l: {0x70: {l: {0x73: {l: {
|
|
0x3B: {c: [10828]},
|
|
0x73: {l: {0x6D: {l: {0x3B: {c: [10832]}}}}}
|
|
}}}}}}
|
|
}},
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [267]}}}}}}},
|
|
0x65: {l: {
|
|
0x64: {l: {0x69: {l: {0x6C: {
|
|
l: {0x3B: {c: [184]}},
|
|
c: [184]
|
|
}}}}},
|
|
0x6D: {l: {0x70: {l: {0x74: {l: {0x79: {l: {0x76: {l: {0x3B: {c: [10674]}}}}}}}}}}},
|
|
0x6E: {l: {0x74: {
|
|
l: {
|
|
0x3B: {c: [162]},
|
|
0x65: {l: {0x72: {l: {0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [183]}}}}}}}}}}}
|
|
},
|
|
c: [162]
|
|
}}}
|
|
}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120096]}}}}},
|
|
0x68: {l: {
|
|
0x63: {l: {0x79: {l: {0x3B: {c: [1095]}}}}},
|
|
0x65: {l: {0x63: {l: {0x6B: {l: {
|
|
0x3B: {c: [10003]},
|
|
0x6D: {l: {0x61: {l: {0x72: {l: {0x6B: {l: {0x3B: {c: [10003]}}}}}}}}}
|
|
}}}}}},
|
|
0x69: {l: {0x3B: {c: [967]}}}
|
|
}},
|
|
0x69: {l: {0x72: {l: {
|
|
0x63: {l: {
|
|
0x3B: {c: [710]},
|
|
0x65: {l: {0x71: {l: {0x3B: {c: [8791]}}}}},
|
|
0x6C: {l: {0x65: {l: {
|
|
0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {
|
|
0x6C: {l: {0x65: {l: {0x66: {l: {0x74: {l: {0x3B: {c: [8634]}}}}}}}}},
|
|
0x72: {l: {0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {0x3B: {c: [8635]}}}}}}}}}}}
|
|
}}}}}}}}}},
|
|
0x64: {l: {
|
|
0x61: {l: {0x73: {l: {0x74: {l: {0x3B: {c: [8859]}}}}}}},
|
|
0x63: {l: {0x69: {l: {0x72: {l: {0x63: {l: {0x3B: {c: [8858]}}}}}}}}},
|
|
0x64: {l: {0x61: {l: {0x73: {l: {0x68: {l: {0x3B: {c: [8861]}}}}}}}}},
|
|
0x52: {l: {0x3B: {c: [174]}}},
|
|
0x53: {l: {0x3B: {c: [9416]}}}
|
|
}}
|
|
}}}}
|
|
}},
|
|
0x3B: {c: [9675]},
|
|
0x45: {l: {0x3B: {c: [10691]}}},
|
|
0x65: {l: {0x3B: {c: [8791]}}},
|
|
0x66: {l: {0x6E: {l: {0x69: {l: {0x6E: {l: {0x74: {l: {0x3B: {c: [10768]}}}}}}}}}}},
|
|
0x6D: {l: {0x69: {l: {0x64: {l: {0x3B: {c: [10991]}}}}}}},
|
|
0x73: {l: {0x63: {l: {0x69: {l: {0x72: {l: {0x3B: {c: [10690]}}}}}}}}}
|
|
}}}},
|
|
0x6C: {l: {0x75: {l: {0x62: {l: {0x73: {l: {
|
|
0x3B: {c: [9827]},
|
|
0x75: {l: {0x69: {l: {0x74: {l: {0x3B: {c: [9827]}}}}}}}
|
|
}}}}}}}},
|
|
0x6F: {l: {
|
|
0x6C: {l: {0x6F: {l: {0x6E: {l: {
|
|
0x3B: {c: [58]},
|
|
0x65: {l: {
|
|
0x3B: {c: [8788]},
|
|
0x71: {l: {0x3B: {c: [8788]}}}
|
|
}}
|
|
}}}}}},
|
|
0x6D: {l: {
|
|
0x6D: {l: {0x61: {l: {
|
|
0x3B: {c: [44]},
|
|
0x74: {l: {0x3B: {c: [64]}}}
|
|
}}}},
|
|
0x70: {l: {
|
|
0x3B: {c: [8705]},
|
|
0x66: {l: {0x6E: {l: {0x3B: {c: [8728]}}}}},
|
|
0x6C: {l: {0x65: {l: {
|
|
0x6D: {l: {0x65: {l: {0x6E: {l: {0x74: {l: {0x3B: {c: [8705]}}}}}}}}},
|
|
0x78: {l: {0x65: {l: {0x73: {l: {0x3B: {c: [8450]}}}}}}}
|
|
}}}}
|
|
}}
|
|
}},
|
|
0x6E: {l: {
|
|
0x67: {l: {
|
|
0x3B: {c: [8773]},
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [10861]}}}}}}}
|
|
}},
|
|
0x69: {l: {0x6E: {l: {0x74: {l: {0x3B: {c: [8750]}}}}}}}
|
|
}},
|
|
0x70: {l: {
|
|
0x66: {l: {0x3B: {c: [120148]}}},
|
|
0x72: {l: {0x6F: {l: {0x64: {l: {0x3B: {c: [8720]}}}}}}},
|
|
0x79: {
|
|
l: {
|
|
0x3B: {c: [169]},
|
|
0x73: {l: {0x72: {l: {0x3B: {c: [8471]}}}}}
|
|
},
|
|
c: [169]
|
|
}
|
|
}}
|
|
}},
|
|
0x72: {l: {
|
|
0x61: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [8629]}}}}}}},
|
|
0x6F: {l: {0x73: {l: {0x73: {l: {0x3B: {c: [10007]}}}}}}}
|
|
}},
|
|
0x73: {l: {
|
|
0x63: {l: {0x72: {l: {0x3B: {c: [119992]}}}}},
|
|
0x75: {l: {
|
|
0x62: {l: {
|
|
0x3B: {c: [10959]},
|
|
0x65: {l: {0x3B: {c: [10961]}}}
|
|
}},
|
|
0x70: {l: {
|
|
0x3B: {c: [10960]},
|
|
0x65: {l: {0x3B: {c: [10962]}}}
|
|
}}
|
|
}}
|
|
}},
|
|
0x74: {l: {0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [8943]}}}}}}}}},
|
|
0x75: {l: {
|
|
0x64: {l: {0x61: {l: {0x72: {l: {0x72: {l: {
|
|
0x6C: {l: {0x3B: {c: [10552]}}},
|
|
0x72: {l: {0x3B: {c: [10549]}}}
|
|
}}}}}}}},
|
|
0x65: {l: {
|
|
0x70: {l: {0x72: {l: {0x3B: {c: [8926]}}}}},
|
|
0x73: {l: {0x63: {l: {0x3B: {c: [8927]}}}}}
|
|
}},
|
|
0x6C: {l: {0x61: {l: {0x72: {l: {0x72: {l: {
|
|
0x3B: {c: [8630]},
|
|
0x70: {l: {0x3B: {c: [10557]}}}
|
|
}}}}}}}},
|
|
0x70: {l: {
|
|
0x62: {l: {0x72: {l: {0x63: {l: {0x61: {l: {0x70: {l: {0x3B: {c: [10824]}}}}}}}}}}},
|
|
0x63: {l: {
|
|
0x61: {l: {0x70: {l: {0x3B: {c: [10822]}}}}},
|
|
0x75: {l: {0x70: {l: {0x3B: {c: [10826]}}}}}
|
|
}},
|
|
0x3B: {c: [8746]},
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [8845]}}}}}}},
|
|
0x6F: {l: {0x72: {l: {0x3B: {c: [10821]}}}}},
|
|
0x73: {l: {0x3B: {c: [8746, 65024]}}}
|
|
}},
|
|
0x72: {l: {
|
|
0x61: {l: {0x72: {l: {0x72: {l: {
|
|
0x3B: {c: [8631]},
|
|
0x6D: {l: {0x3B: {c: [10556]}}}
|
|
}}}}}},
|
|
0x6C: {l: {0x79: {l: {
|
|
0x65: {l: {0x71: {l: {
|
|
0x70: {l: {0x72: {l: {0x65: {l: {0x63: {l: {0x3B: {c: [8926]}}}}}}}}},
|
|
0x73: {l: {0x75: {l: {0x63: {l: {0x63: {l: {0x3B: {c: [8927]}}}}}}}}}
|
|
}}}},
|
|
0x76: {l: {0x65: {l: {0x65: {l: {0x3B: {c: [8910]}}}}}}},
|
|
0x77: {l: {0x65: {l: {0x64: {l: {0x67: {l: {0x65: {l: {0x3B: {c: [8911]}}}}}}}}}}}
|
|
}}}},
|
|
0x72: {l: {0x65: {l: {0x6E: {
|
|
l: {0x3B: {c: [164]}},
|
|
c: [164]
|
|
}}}}},
|
|
0x76: {l: {0x65: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {
|
|
0x6C: {l: {0x65: {l: {0x66: {l: {0x74: {l: {0x3B: {c: [8630]}}}}}}}}},
|
|
0x72: {l: {0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {0x3B: {c: [8631]}}}}}}}}}}}
|
|
}}}}}}}}}}}}}}
|
|
}},
|
|
0x76: {l: {0x65: {l: {0x65: {l: {0x3B: {c: [8910]}}}}}}},
|
|
0x77: {l: {0x65: {l: {0x64: {l: {0x3B: {c: [8911]}}}}}}}
|
|
}},
|
|
0x77: {l: {
|
|
0x63: {l: {0x6F: {l: {0x6E: {l: {0x69: {l: {0x6E: {l: {0x74: {l: {0x3B: {c: [8754]}}}}}}}}}}}}},
|
|
0x69: {l: {0x6E: {l: {0x74: {l: {0x3B: {c: [8753]}}}}}}}
|
|
}},
|
|
0x79: {l: {0x6C: {l: {0x63: {l: {0x74: {l: {0x79: {l: {0x3B: {c: [9005]}}}}}}}}}}}
|
|
}},
|
|
0x64: {l: {
|
|
0x61: {l: {
|
|
0x67: {l: {0x67: {l: {0x65: {l: {0x72: {l: {0x3B: {c: [8224]}}}}}}}}},
|
|
0x6C: {l: {0x65: {l: {0x74: {l: {0x68: {l: {0x3B: {c: [8504]}}}}}}}}},
|
|
0x72: {l: {0x72: {l: {0x3B: {c: [8595]}}}}},
|
|
0x73: {l: {0x68: {l: {
|
|
0x3B: {c: [8208]},
|
|
0x76: {l: {0x3B: {c: [8867]}}}
|
|
}}}}
|
|
}},
|
|
0x41: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [8659]}}}}}}},
|
|
0x62: {l: {
|
|
0x6B: {l: {0x61: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [10511]}}}}}}}}}}},
|
|
0x6C: {l: {0x61: {l: {0x63: {l: {0x3B: {c: [733]}}}}}}}
|
|
}},
|
|
0x63: {l: {
|
|
0x61: {l: {0x72: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [271]}}}}}}}}},
|
|
0x79: {l: {0x3B: {c: [1076]}}}
|
|
}},
|
|
0x64: {l: {
|
|
0x61: {l: {
|
|
0x67: {l: {0x67: {l: {0x65: {l: {0x72: {l: {0x3B: {c: [8225]}}}}}}}}},
|
|
0x72: {l: {0x72: {l: {0x3B: {c: [8650]}}}}}
|
|
}},
|
|
0x3B: {c: [8518]},
|
|
0x6F: {l: {0x74: {l: {0x73: {l: {0x65: {l: {0x71: {l: {0x3B: {c: [10871]}}}}}}}}}}}
|
|
}},
|
|
0x65: {l: {
|
|
0x67: {
|
|
l: {0x3B: {c: [176]}},
|
|
c: [176]
|
|
},
|
|
0x6C: {l: {0x74: {l: {0x61: {l: {0x3B: {c: [948]}}}}}}},
|
|
0x6D: {l: {0x70: {l: {0x74: {l: {0x79: {l: {0x76: {l: {0x3B: {c: [10673]}}}}}}}}}}}
|
|
}},
|
|
0x66: {l: {
|
|
0x69: {l: {0x73: {l: {0x68: {l: {0x74: {l: {0x3B: {c: [10623]}}}}}}}}},
|
|
0x72: {l: {0x3B: {c: [120097]}}}
|
|
}},
|
|
0x48: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [10597]}}}}}}},
|
|
0x68: {l: {0x61: {l: {0x72: {l: {
|
|
0x6C: {l: {0x3B: {c: [8643]}}},
|
|
0x72: {l: {0x3B: {c: [8642]}}}
|
|
}}}}}},
|
|
0x69: {l: {
|
|
0x61: {l: {0x6D: {l: {
|
|
0x3B: {c: [8900]},
|
|
0x6F: {l: {0x6E: {l: {0x64: {l: {
|
|
0x3B: {c: [8900]},
|
|
0x73: {l: {0x75: {l: {0x69: {l: {0x74: {l: {0x3B: {c: [9830]}}}}}}}}}
|
|
}}}}}},
|
|
0x73: {l: {0x3B: {c: [9830]}}}
|
|
}}}},
|
|
0x65: {l: {0x3B: {c: [168]}}},
|
|
0x67: {l: {0x61: {l: {0x6D: {l: {0x6D: {l: {0x61: {l: {0x3B: {c: [989]}}}}}}}}}}},
|
|
0x73: {l: {0x69: {l: {0x6E: {l: {0x3B: {c: [8946]}}}}}}},
|
|
0x76: {l: {
|
|
0x3B: {c: [247]},
|
|
0x69: {l: {0x64: {l: {0x65: {
|
|
l: {
|
|
0x3B: {c: [247]},
|
|
0x6F: {l: {0x6E: {l: {0x74: {l: {0x69: {l: {0x6D: {l: {0x65: {l: {0x73: {l: {0x3B: {c: [8903]}}}}}}}}}}}}}}}
|
|
},
|
|
c: [247]
|
|
}}}}},
|
|
0x6F: {l: {0x6E: {l: {0x78: {l: {0x3B: {c: [8903]}}}}}}}
|
|
}}
|
|
}},
|
|
0x6A: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1106]}}}}}}},
|
|
0x6C: {l: {0x63: {l: {
|
|
0x6F: {l: {0x72: {l: {0x6E: {l: {0x3B: {c: [8990]}}}}}}},
|
|
0x72: {l: {0x6F: {l: {0x70: {l: {0x3B: {c: [8973]}}}}}}}
|
|
}}}},
|
|
0x6F: {l: {
|
|
0x6C: {l: {0x6C: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [36]}}}}}}}}},
|
|
0x70: {l: {0x66: {l: {0x3B: {c: [120149]}}}}},
|
|
0x74: {l: {
|
|
0x3B: {c: [729]},
|
|
0x65: {l: {0x71: {l: {
|
|
0x3B: {c: [8784]},
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [8785]}}}}}}}
|
|
}}}},
|
|
0x6D: {l: {0x69: {l: {0x6E: {l: {0x75: {l: {0x73: {l: {0x3B: {c: [8760]}}}}}}}}}}},
|
|
0x70: {l: {0x6C: {l: {0x75: {l: {0x73: {l: {0x3B: {c: [8724]}}}}}}}}},
|
|
0x73: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x72: {l: {0x65: {l: {0x3B: {c: [8865]}}}}}}}}}}}}}
|
|
}},
|
|
0x75: {l: {0x62: {l: {0x6C: {l: {0x65: {l: {0x62: {l: {0x61: {l: {0x72: {l: {0x77: {l: {0x65: {l: {0x64: {l: {0x67: {l: {0x65: {l: {0x3B: {c: [8966]}}}}}}}}}}}}}}}}}}}}}}}}},
|
|
0x77: {l: {0x6E: {l: {
|
|
0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8595]}}}}}}}}}}},
|
|
0x64: {l: {0x6F: {l: {0x77: {l: {0x6E: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x73: {l: {0x3B: {c: [8650]}}}}}}}}}}}}}}}}}}}}},
|
|
0x68: {l: {0x61: {l: {0x72: {l: {0x70: {l: {0x6F: {l: {0x6F: {l: {0x6E: {l: {
|
|
0x6C: {l: {0x65: {l: {0x66: {l: {0x74: {l: {0x3B: {c: [8643]}}}}}}}}},
|
|
0x72: {l: {0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {0x3B: {c: [8642]}}}}}}}}}}}
|
|
}}}}}}}}}}}}}}
|
|
}}}}
|
|
}},
|
|
0x72: {l: {
|
|
0x62: {l: {0x6B: {l: {0x61: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [10512]}}}}}}}}}}}}},
|
|
0x63: {l: {
|
|
0x6F: {l: {0x72: {l: {0x6E: {l: {0x3B: {c: [8991]}}}}}}},
|
|
0x72: {l: {0x6F: {l: {0x70: {l: {0x3B: {c: [8972]}}}}}}}
|
|
}}
|
|
}},
|
|
0x73: {l: {
|
|
0x63: {l: {
|
|
0x72: {l: {0x3B: {c: [119993]}}},
|
|
0x79: {l: {0x3B: {c: [1109]}}}
|
|
}},
|
|
0x6F: {l: {0x6C: {l: {0x3B: {c: [10742]}}}}},
|
|
0x74: {l: {0x72: {l: {0x6F: {l: {0x6B: {l: {0x3B: {c: [273]}}}}}}}}}
|
|
}},
|
|
0x74: {l: {
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [8945]}}}}}}},
|
|
0x72: {l: {0x69: {l: {
|
|
0x3B: {c: [9663]},
|
|
0x66: {l: {0x3B: {c: [9662]}}}
|
|
}}}}
|
|
}},
|
|
0x75: {l: {
|
|
0x61: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [8693]}}}}}}},
|
|
0x68: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [10607]}}}}}}}
|
|
}},
|
|
0x77: {l: {0x61: {l: {0x6E: {l: {0x67: {l: {0x6C: {l: {0x65: {l: {0x3B: {c: [10662]}}}}}}}}}}}}},
|
|
0x7A: {l: {
|
|
0x63: {l: {0x79: {l: {0x3B: {c: [1119]}}}}},
|
|
0x69: {l: {0x67: {l: {0x72: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [10239]}}}}}}}}}}}}}
|
|
}}
|
|
}},
|
|
0x44: {l: {
|
|
0x61: {l: {
|
|
0x67: {l: {0x67: {l: {0x65: {l: {0x72: {l: {0x3B: {c: [8225]}}}}}}}}},
|
|
0x72: {l: {0x72: {l: {0x3B: {c: [8609]}}}}},
|
|
0x73: {l: {0x68: {l: {0x76: {l: {0x3B: {c: [10980]}}}}}}}
|
|
}},
|
|
0x63: {l: {
|
|
0x61: {l: {0x72: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [270]}}}}}}}}},
|
|
0x79: {l: {0x3B: {c: [1044]}}}
|
|
}},
|
|
0x44: {l: {
|
|
0x3B: {c: [8517]},
|
|
0x6F: {l: {0x74: {l: {0x72: {l: {0x61: {l: {0x68: {l: {0x64: {l: {0x3B: {c: [10513]}}}}}}}}}}}}}
|
|
}},
|
|
0x65: {l: {0x6C: {l: {
|
|
0x3B: {c: [8711]},
|
|
0x74: {l: {0x61: {l: {0x3B: {c: [916]}}}}}
|
|
}}}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120071]}}}}},
|
|
0x69: {l: {
|
|
0x61: {l: {
|
|
0x63: {l: {0x72: {l: {0x69: {l: {0x74: {l: {0x69: {l: {0x63: {l: {0x61: {l: {0x6C: {l: {
|
|
0x41: {l: {0x63: {l: {0x75: {l: {0x74: {l: {0x65: {l: {0x3B: {c: [180]}}}}}}}}}}},
|
|
0x44: {l: {0x6F: {l: {
|
|
0x74: {l: {0x3B: {c: [729]}}},
|
|
0x75: {l: {0x62: {l: {0x6C: {l: {0x65: {l: {0x41: {l: {0x63: {l: {0x75: {l: {0x74: {l: {0x65: {l: {0x3B: {c: [733]}}}}}}}}}}}}}}}}}}}
|
|
}}}},
|
|
0x47: {l: {0x72: {l: {0x61: {l: {0x76: {l: {0x65: {l: {0x3B: {c: [96]}}}}}}}}}}},
|
|
0x54: {l: {0x69: {l: {0x6C: {l: {0x64: {l: {0x65: {l: {0x3B: {c: [732]}}}}}}}}}}}
|
|
}}}}}}}}}}}}}}}},
|
|
0x6D: {l: {0x6F: {l: {0x6E: {l: {0x64: {l: {0x3B: {c: [8900]}}}}}}}}}
|
|
}},
|
|
0x66: {l: {0x66: {l: {0x65: {l: {0x72: {l: {0x65: {l: {0x6E: {l: {0x74: {l: {0x69: {l: {0x61: {l: {0x6C: {l: {0x44: {l: {0x3B: {c: [8518]}}}}}}}}}}}}}}}}}}}}}}}
|
|
}},
|
|
0x4A: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1026]}}}}}}},
|
|
0x6F: {l: {
|
|
0x70: {l: {0x66: {l: {0x3B: {c: [120123]}}}}},
|
|
0x74: {l: {
|
|
0x3B: {c: [168]},
|
|
0x44: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [8412]}}}}}}},
|
|
0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [8784]}}}}}}}}}}}
|
|
}},
|
|
0x75: {l: {0x62: {l: {0x6C: {l: {0x65: {l: {
|
|
0x43: {l: {0x6F: {l: {0x6E: {l: {0x74: {l: {0x6F: {l: {0x75: {l: {0x72: {l: {0x49: {l: {0x6E: {l: {0x74: {l: {0x65: {l: {0x67: {l: {0x72: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [8751]}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},
|
|
0x44: {l: {0x6F: {l: {
|
|
0x74: {l: {0x3B: {c: [168]}}},
|
|
0x77: {l: {0x6E: {l: {0x41: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8659]}}}}}}}}}}}}}}}
|
|
}}}},
|
|
0x4C: {l: {
|
|
0x65: {l: {0x66: {l: {0x74: {l: {
|
|
0x41: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8656]}}}}}}}}}}},
|
|
0x52: {l: {0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {0x41: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8660]}}}}}}}}}}}}}}}}}}}}},
|
|
0x54: {l: {0x65: {l: {0x65: {l: {0x3B: {c: [10980]}}}}}}}
|
|
}}}}}},
|
|
0x6F: {l: {0x6E: {l: {0x67: {l: {
|
|
0x4C: {l: {0x65: {l: {0x66: {l: {0x74: {l: {
|
|
0x41: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [10232]}}}}}}}}}}},
|
|
0x52: {l: {0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {0x41: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [10234]}}}}}}}}}}}}}}}}}}}}}
|
|
}}}}}}}},
|
|
0x52: {l: {0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {0x41: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [10233]}}}}}}}}}}}}}}}}}}}}}
|
|
}}}}}}
|
|
}},
|
|
0x52: {l: {0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {
|
|
0x41: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8658]}}}}}}}}}}},
|
|
0x54: {l: {0x65: {l: {0x65: {l: {0x3B: {c: [8872]}}}}}}}
|
|
}}}}}}}}}},
|
|
0x55: {l: {0x70: {l: {
|
|
0x41: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8657]}}}}}}}}}}},
|
|
0x44: {l: {0x6F: {l: {0x77: {l: {0x6E: {l: {0x41: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8661]}}}}}}}}}}}}}}}}}}}
|
|
}}}},
|
|
0x56: {l: {0x65: {l: {0x72: {l: {0x74: {l: {0x69: {l: {0x63: {l: {0x61: {l: {0x6C: {l: {0x42: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [8741]}}}}}}}}}}}}}}}}}}}}}}}
|
|
}}}}}}}},
|
|
0x77: {l: {0x6E: {l: {
|
|
0x41: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {
|
|
0x42: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [10515]}}}}}}},
|
|
0x3B: {c: [8595]},
|
|
0x55: {l: {0x70: {l: {0x41: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8693]}}}}}}}}}}}}}}}
|
|
}}}}}}}}}},
|
|
0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8659]}}}}}}}}}}},
|
|
0x42: {l: {0x72: {l: {0x65: {l: {0x76: {l: {0x65: {l: {0x3B: {c: [785]}}}}}}}}}}},
|
|
0x4C: {l: {0x65: {l: {0x66: {l: {0x74: {l: {
|
|
0x52: {l: {0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {0x56: {l: {0x65: {l: {0x63: {l: {0x74: {l: {0x6F: {l: {0x72: {l: {0x3B: {c: [10576]}}}}}}}}}}}}}}}}}}}}}}},
|
|
0x54: {l: {0x65: {l: {0x65: {l: {0x56: {l: {0x65: {l: {0x63: {l: {0x74: {l: {0x6F: {l: {0x72: {l: {0x3B: {c: [10590]}}}}}}}}}}}}}}}}}}},
|
|
0x56: {l: {0x65: {l: {0x63: {l: {0x74: {l: {0x6F: {l: {0x72: {l: {
|
|
0x42: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [10582]}}}}}}},
|
|
0x3B: {c: [8637]}
|
|
}}}}}}}}}}}}
|
|
}}}}}}}},
|
|
0x52: {l: {0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {
|
|
0x54: {l: {0x65: {l: {0x65: {l: {0x56: {l: {0x65: {l: {0x63: {l: {0x74: {l: {0x6F: {l: {0x72: {l: {0x3B: {c: [10591]}}}}}}}}}}}}}}}}}}},
|
|
0x56: {l: {0x65: {l: {0x63: {l: {0x74: {l: {0x6F: {l: {0x72: {l: {
|
|
0x42: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [10583]}}}}}}},
|
|
0x3B: {c: [8641]}
|
|
}}}}}}}}}}}}
|
|
}}}}}}}}}},
|
|
0x54: {l: {0x65: {l: {0x65: {l: {
|
|
0x41: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8615]}}}}}}}}}}},
|
|
0x3B: {c: [8868]}
|
|
}}}}}}
|
|
}}}}
|
|
}},
|
|
0x73: {l: {
|
|
0x63: {l: {0x72: {l: {0x3B: {c: [119967]}}}}},
|
|
0x74: {l: {0x72: {l: {0x6F: {l: {0x6B: {l: {0x3B: {c: [272]}}}}}}}}}
|
|
}},
|
|
0x53: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1029]}}}}}}},
|
|
0x5A: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1039]}}}}}}}
|
|
}},
|
|
0x45: {l: {
|
|
0x61: {l: {0x63: {l: {0x75: {l: {0x74: {l: {0x65: {
|
|
l: {0x3B: {c: [201]}},
|
|
c: [201]
|
|
}}}}}}}}},
|
|
0x63: {l: {
|
|
0x61: {l: {0x72: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [282]}}}}}}}}},
|
|
0x69: {l: {0x72: {l: {0x63: {
|
|
l: {0x3B: {c: [202]}},
|
|
c: [202]
|
|
}}}}},
|
|
0x79: {l: {0x3B: {c: [1069]}}}
|
|
}},
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [278]}}}}}}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120072]}}}}},
|
|
0x67: {l: {0x72: {l: {0x61: {l: {0x76: {l: {0x65: {
|
|
l: {0x3B: {c: [200]}},
|
|
c: [200]
|
|
}}}}}}}}},
|
|
0x6C: {l: {0x65: {l: {0x6D: {l: {0x65: {l: {0x6E: {l: {0x74: {l: {0x3B: {c: [8712]}}}}}}}}}}}}},
|
|
0x6D: {l: {
|
|
0x61: {l: {0x63: {l: {0x72: {l: {0x3B: {c: [274]}}}}}}},
|
|
0x70: {l: {0x74: {l: {0x79: {l: {
|
|
0x53: {l: {0x6D: {l: {0x61: {l: {0x6C: {l: {0x6C: {l: {0x53: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x72: {l: {0x65: {l: {0x3B: {c: [9723]}}}}}}}}}}}}}}}}}}}}}}},
|
|
0x56: {l: {0x65: {l: {0x72: {l: {0x79: {l: {0x53: {l: {0x6D: {l: {0x61: {l: {0x6C: {l: {0x6C: {l: {0x53: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x72: {l: {0x65: {l: {0x3B: {c: [9643]}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
|
|
}}}}}}
|
|
}},
|
|
0x4E: {l: {0x47: {l: {0x3B: {c: [330]}}}}},
|
|
0x6F: {l: {
|
|
0x67: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [280]}}}}}}},
|
|
0x70: {l: {0x66: {l: {0x3B: {c: [120124]}}}}}
|
|
}},
|
|
0x70: {l: {0x73: {l: {0x69: {l: {0x6C: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [917]}}}}}}}}}}}}},
|
|
0x71: {l: {0x75: {l: {
|
|
0x61: {l: {0x6C: {l: {
|
|
0x3B: {c: [10869]},
|
|
0x54: {l: {0x69: {l: {0x6C: {l: {0x64: {l: {0x65: {l: {0x3B: {c: [8770]}}}}}}}}}}}
|
|
}}}},
|
|
0x69: {l: {0x6C: {l: {0x69: {l: {0x62: {l: {0x72: {l: {0x69: {l: {0x75: {l: {0x6D: {l: {0x3B: {c: [8652]}}}}}}}}}}}}}}}}}
|
|
}}}},
|
|
0x73: {l: {
|
|
0x63: {l: {0x72: {l: {0x3B: {c: [8496]}}}}},
|
|
0x69: {l: {0x6D: {l: {0x3B: {c: [10867]}}}}}
|
|
}},
|
|
0x74: {l: {0x61: {l: {0x3B: {c: [919]}}}}},
|
|
0x54: {l: {0x48: {
|
|
l: {0x3B: {c: [208]}},
|
|
c: [208]
|
|
}}},
|
|
0x75: {l: {0x6D: {l: {0x6C: {
|
|
l: {0x3B: {c: [203]}},
|
|
c: [203]
|
|
}}}}},
|
|
0x78: {l: {
|
|
0x69: {l: {0x73: {l: {0x74: {l: {0x73: {l: {0x3B: {c: [8707]}}}}}}}}},
|
|
0x70: {l: {0x6F: {l: {0x6E: {l: {0x65: {l: {0x6E: {l: {0x74: {l: {0x69: {l: {0x61: {l: {0x6C: {l: {0x45: {l: {0x3B: {c: [8519]}}}}}}}}}}}}}}}}}}}}}
|
|
}}
|
|
}},
|
|
0x65: {l: {
|
|
0x61: {l: {
|
|
0x63: {l: {0x75: {l: {0x74: {l: {0x65: {
|
|
l: {0x3B: {c: [233]}},
|
|
c: [233]
|
|
}}}}}}},
|
|
0x73: {l: {0x74: {l: {0x65: {l: {0x72: {l: {0x3B: {c: [10862]}}}}}}}}}
|
|
}},
|
|
0x63: {l: {
|
|
0x61: {l: {0x72: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [283]}}}}}}}}},
|
|
0x69: {l: {0x72: {l: {
|
|
0x63: {
|
|
l: {0x3B: {c: [234]}},
|
|
c: [234]
|
|
},
|
|
0x3B: {c: [8790]}
|
|
}}}},
|
|
0x6F: {l: {0x6C: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [8789]}}}}}}}}},
|
|
0x79: {l: {0x3B: {c: [1101]}}}
|
|
}},
|
|
0x44: {l: {
|
|
0x44: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [10871]}}}}}}},
|
|
0x6F: {l: {0x74: {l: {0x3B: {c: [8785]}}}}}
|
|
}},
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [279]}}}}}}},
|
|
0x65: {l: {0x3B: {c: [8519]}}},
|
|
0x66: {l: {
|
|
0x44: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [8786]}}}}}}},
|
|
0x72: {l: {0x3B: {c: [120098]}}}
|
|
}},
|
|
0x67: {l: {
|
|
0x3B: {c: [10906]},
|
|
0x72: {l: {0x61: {l: {0x76: {l: {0x65: {
|
|
l: {0x3B: {c: [232]}},
|
|
c: [232]
|
|
}}}}}}},
|
|
0x73: {l: {
|
|
0x3B: {c: [10902]},
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [10904]}}}}}}}
|
|
}}
|
|
}},
|
|
0x6C: {l: {
|
|
0x3B: {c: [10905]},
|
|
0x69: {l: {0x6E: {l: {0x74: {l: {0x65: {l: {0x72: {l: {0x73: {l: {0x3B: {c: [9191]}}}}}}}}}}}}},
|
|
0x6C: {l: {0x3B: {c: [8467]}}},
|
|
0x73: {l: {
|
|
0x3B: {c: [10901]},
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [10903]}}}}}}}
|
|
}}
|
|
}},
|
|
0x6D: {l: {
|
|
0x61: {l: {0x63: {l: {0x72: {l: {0x3B: {c: [275]}}}}}}},
|
|
0x70: {l: {0x74: {l: {0x79: {l: {
|
|
0x3B: {c: [8709]},
|
|
0x73: {l: {0x65: {l: {0x74: {l: {0x3B: {c: [8709]}}}}}}},
|
|
0x76: {l: {0x3B: {c: [8709]}}}
|
|
}}}}}},
|
|
0x73: {l: {0x70: {l: {
|
|
0x31: {l: {
|
|
0x33: {l: {0x3B: {c: [8196]}}},
|
|
0x34: {l: {0x3B: {c: [8197]}}}
|
|
}},
|
|
0x3B: {c: [8195]}
|
|
}}}}
|
|
}},
|
|
0x6E: {l: {
|
|
0x67: {l: {0x3B: {c: [331]}}},
|
|
0x73: {l: {0x70: {l: {0x3B: {c: [8194]}}}}}
|
|
}},
|
|
0x6F: {l: {
|
|
0x67: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [281]}}}}}}},
|
|
0x70: {l: {0x66: {l: {0x3B: {c: [120150]}}}}}
|
|
}},
|
|
0x70: {l: {
|
|
0x61: {l: {0x72: {l: {
|
|
0x3B: {c: [8917]},
|
|
0x73: {l: {0x6C: {l: {0x3B: {c: [10723]}}}}}
|
|
}}}},
|
|
0x6C: {l: {0x75: {l: {0x73: {l: {0x3B: {c: [10865]}}}}}}},
|
|
0x73: {l: {0x69: {l: {
|
|
0x3B: {c: [949]},
|
|
0x6C: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [949]}}}}}}},
|
|
0x76: {l: {0x3B: {c: [1013]}}}
|
|
}}}}
|
|
}},
|
|
0x71: {l: {
|
|
0x63: {l: {
|
|
0x69: {l: {0x72: {l: {0x63: {l: {0x3B: {c: [8790]}}}}}}},
|
|
0x6F: {l: {0x6C: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [8789]}}}}}}}}}
|
|
}},
|
|
0x73: {l: {
|
|
0x69: {l: {0x6D: {l: {0x3B: {c: [8770]}}}}},
|
|
0x6C: {l: {0x61: {l: {0x6E: {l: {0x74: {l: {
|
|
0x67: {l: {0x74: {l: {0x72: {l: {0x3B: {c: [10902]}}}}}}},
|
|
0x6C: {l: {0x65: {l: {0x73: {l: {0x73: {l: {0x3B: {c: [10901]}}}}}}}}}
|
|
}}}}}}}}
|
|
}},
|
|
0x75: {l: {
|
|
0x61: {l: {0x6C: {l: {0x73: {l: {0x3B: {c: [61]}}}}}}},
|
|
0x65: {l: {0x73: {l: {0x74: {l: {0x3B: {c: [8799]}}}}}}},
|
|
0x69: {l: {0x76: {l: {
|
|
0x3B: {c: [8801]},
|
|
0x44: {l: {0x44: {l: {0x3B: {c: [10872]}}}}}
|
|
}}}}
|
|
}},
|
|
0x76: {l: {0x70: {l: {0x61: {l: {0x72: {l: {0x73: {l: {0x6C: {l: {0x3B: {c: [10725]}}}}}}}}}}}}}
|
|
}},
|
|
0x72: {l: {
|
|
0x61: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [10609]}}}}}}},
|
|
0x44: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [8787]}}}}}}}
|
|
}},
|
|
0x73: {l: {
|
|
0x63: {l: {0x72: {l: {0x3B: {c: [8495]}}}}},
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [8784]}}}}}}},
|
|
0x69: {l: {0x6D: {l: {0x3B: {c: [8770]}}}}}
|
|
}},
|
|
0x74: {l: {
|
|
0x61: {l: {0x3B: {c: [951]}}},
|
|
0x68: {
|
|
l: {0x3B: {c: [240]}},
|
|
c: [240]
|
|
}
|
|
}},
|
|
0x75: {l: {
|
|
0x6D: {l: {0x6C: {
|
|
l: {0x3B: {c: [235]}},
|
|
c: [235]
|
|
}}},
|
|
0x72: {l: {0x6F: {l: {0x3B: {c: [8364]}}}}}
|
|
}},
|
|
0x78: {l: {
|
|
0x63: {l: {0x6C: {l: {0x3B: {c: [33]}}}}},
|
|
0x69: {l: {0x73: {l: {0x74: {l: {0x3B: {c: [8707]}}}}}}},
|
|
0x70: {l: {
|
|
0x65: {l: {0x63: {l: {0x74: {l: {0x61: {l: {0x74: {l: {0x69: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [8496]}}}}}}}}}}}}}}}}},
|
|
0x6F: {l: {0x6E: {l: {0x65: {l: {0x6E: {l: {0x74: {l: {0x69: {l: {0x61: {l: {0x6C: {l: {0x65: {l: {0x3B: {c: [8519]}}}}}}}}}}}}}}}}}}}
|
|
}}
|
|
}}
|
|
}},
|
|
0x66: {l: {
|
|
0x61: {l: {0x6C: {l: {0x6C: {l: {0x69: {l: {0x6E: {l: {0x67: {l: {0x64: {l: {0x6F: {l: {0x74: {l: {0x73: {l: {0x65: {l: {0x71: {l: {0x3B: {c: [8786]}}}}}}}}}}}}}}}}}}}}}}}}},
|
|
0x63: {l: {0x79: {l: {0x3B: {c: [1092]}}}}},
|
|
0x65: {l: {0x6D: {l: {0x61: {l: {0x6C: {l: {0x65: {l: {0x3B: {c: [9792]}}}}}}}}}}},
|
|
0x66: {l: {
|
|
0x69: {l: {0x6C: {l: {0x69: {l: {0x67: {l: {0x3B: {c: [64259]}}}}}}}}},
|
|
0x6C: {l: {
|
|
0x69: {l: {0x67: {l: {0x3B: {c: [64256]}}}}},
|
|
0x6C: {l: {0x69: {l: {0x67: {l: {0x3B: {c: [64260]}}}}}}}
|
|
}},
|
|
0x72: {l: {0x3B: {c: [120099]}}}
|
|
}},
|
|
0x69: {l: {0x6C: {l: {0x69: {l: {0x67: {l: {0x3B: {c: [64257]}}}}}}}}},
|
|
0x6A: {l: {0x6C: {l: {0x69: {l: {0x67: {l: {0x3B: {c: [102, 106]}}}}}}}}},
|
|
0x6C: {l: {
|
|
0x61: {l: {0x74: {l: {0x3B: {c: [9837]}}}}},
|
|
0x6C: {l: {0x69: {l: {0x67: {l: {0x3B: {c: [64258]}}}}}}},
|
|
0x74: {l: {0x6E: {l: {0x73: {l: {0x3B: {c: [9649]}}}}}}}
|
|
}},
|
|
0x6E: {l: {0x6F: {l: {0x66: {l: {0x3B: {c: [402]}}}}}}},
|
|
0x6F: {l: {
|
|
0x70: {l: {0x66: {l: {0x3B: {c: [120151]}}}}},
|
|
0x72: {l: {
|
|
0x61: {l: {0x6C: {l: {0x6C: {l: {0x3B: {c: [8704]}}}}}}},
|
|
0x6B: {l: {
|
|
0x3B: {c: [8916]},
|
|
0x76: {l: {0x3B: {c: [10969]}}}
|
|
}}
|
|
}}
|
|
}},
|
|
0x70: {l: {0x61: {l: {0x72: {l: {0x74: {l: {0x69: {l: {0x6E: {l: {0x74: {l: {0x3B: {c: [10765]}}}}}}}}}}}}}}},
|
|
0x72: {l: {
|
|
0x61: {l: {
|
|
0x63: {l: {
|
|
0x31: {l: {
|
|
0x32: {
|
|
l: {0x3B: {c: [189]}},
|
|
c: [189]
|
|
},
|
|
0x33: {l: {0x3B: {c: [8531]}}},
|
|
0x34: {
|
|
l: {0x3B: {c: [188]}},
|
|
c: [188]
|
|
},
|
|
0x35: {l: {0x3B: {c: [8533]}}},
|
|
0x36: {l: {0x3B: {c: [8537]}}},
|
|
0x38: {l: {0x3B: {c: [8539]}}}
|
|
}},
|
|
0x32: {l: {
|
|
0x33: {l: {0x3B: {c: [8532]}}},
|
|
0x35: {l: {0x3B: {c: [8534]}}}
|
|
}},
|
|
0x33: {l: {
|
|
0x34: {
|
|
l: {0x3B: {c: [190]}},
|
|
c: [190]
|
|
},
|
|
0x35: {l: {0x3B: {c: [8535]}}},
|
|
0x38: {l: {0x3B: {c: [8540]}}}
|
|
}},
|
|
0x34: {l: {0x35: {l: {0x3B: {c: [8536]}}}}},
|
|
0x35: {l: {
|
|
0x36: {l: {0x3B: {c: [8538]}}},
|
|
0x38: {l: {0x3B: {c: [8541]}}}
|
|
}},
|
|
0x37: {l: {0x38: {l: {0x3B: {c: [8542]}}}}}
|
|
}},
|
|
0x73: {l: {0x6C: {l: {0x3B: {c: [8260]}}}}}
|
|
}},
|
|
0x6F: {l: {0x77: {l: {0x6E: {l: {0x3B: {c: [8994]}}}}}}}
|
|
}},
|
|
0x73: {l: {0x63: {l: {0x72: {l: {0x3B: {c: [119995]}}}}}}}
|
|
}},
|
|
0x46: {l: {
|
|
0x63: {l: {0x79: {l: {0x3B: {c: [1060]}}}}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120073]}}}}},
|
|
0x69: {l: {0x6C: {l: {0x6C: {l: {0x65: {l: {0x64: {l: {
|
|
0x53: {l: {0x6D: {l: {0x61: {l: {0x6C: {l: {0x6C: {l: {0x53: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x72: {l: {0x65: {l: {0x3B: {c: [9724]}}}}}}}}}}}}}}}}}}}}}}},
|
|
0x56: {l: {0x65: {l: {0x72: {l: {0x79: {l: {0x53: {l: {0x6D: {l: {0x61: {l: {0x6C: {l: {0x6C: {l: {0x53: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x72: {l: {0x65: {l: {0x3B: {c: [9642]}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
|
|
}}}}}}}}}},
|
|
0x6F: {l: {
|
|
0x70: {l: {0x66: {l: {0x3B: {c: [120125]}}}}},
|
|
0x72: {l: {0x41: {l: {0x6C: {l: {0x6C: {l: {0x3B: {c: [8704]}}}}}}}}},
|
|
0x75: {l: {0x72: {l: {0x69: {l: {0x65: {l: {0x72: {l: {0x74: {l: {0x72: {l: {0x66: {l: {0x3B: {c: [8497]}}}}}}}}}}}}}}}}}
|
|
}},
|
|
0x73: {l: {0x63: {l: {0x72: {l: {0x3B: {c: [8497]}}}}}}}
|
|
}},
|
|
0x67: {l: {
|
|
0x61: {l: {
|
|
0x63: {l: {0x75: {l: {0x74: {l: {0x65: {l: {0x3B: {c: [501]}}}}}}}}},
|
|
0x6D: {l: {0x6D: {l: {0x61: {l: {
|
|
0x3B: {c: [947]},
|
|
0x64: {l: {0x3B: {c: [989]}}}
|
|
}}}}}},
|
|
0x70: {l: {0x3B: {c: [10886]}}}
|
|
}},
|
|
0x62: {l: {0x72: {l: {0x65: {l: {0x76: {l: {0x65: {l: {0x3B: {c: [287]}}}}}}}}}}},
|
|
0x63: {l: {
|
|
0x69: {l: {0x72: {l: {0x63: {l: {0x3B: {c: [285]}}}}}}},
|
|
0x79: {l: {0x3B: {c: [1075]}}}
|
|
}},
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [289]}}}}}}},
|
|
0x65: {l: {
|
|
0x3B: {c: [8805]},
|
|
0x6C: {l: {0x3B: {c: [8923]}}},
|
|
0x71: {l: {
|
|
0x3B: {c: [8805]},
|
|
0x71: {l: {0x3B: {c: [8807]}}},
|
|
0x73: {l: {0x6C: {l: {0x61: {l: {0x6E: {l: {0x74: {l: {0x3B: {c: [10878]}}}}}}}}}}}
|
|
}},
|
|
0x73: {l: {
|
|
0x63: {l: {0x63: {l: {0x3B: {c: [10921]}}}}},
|
|
0x3B: {c: [10878]},
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {
|
|
0x3B: {c: [10880]},
|
|
0x6F: {l: {
|
|
0x3B: {c: [10882]},
|
|
0x6C: {l: {0x3B: {c: [10884]}}}
|
|
}}
|
|
}}}}}},
|
|
0x6C: {l: {
|
|
0x3B: {c: [8923, 65024]},
|
|
0x65: {l: {0x73: {l: {0x3B: {c: [10900]}}}}}
|
|
}}
|
|
}}
|
|
}},
|
|
0x45: {l: {
|
|
0x3B: {c: [8807]},
|
|
0x6C: {l: {0x3B: {c: [10892]}}}
|
|
}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120100]}}}}},
|
|
0x67: {l: {
|
|
0x3B: {c: [8811]},
|
|
0x67: {l: {0x3B: {c: [8921]}}}
|
|
}},
|
|
0x69: {l: {0x6D: {l: {0x65: {l: {0x6C: {l: {0x3B: {c: [8503]}}}}}}}}},
|
|
0x6A: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1107]}}}}}}},
|
|
0x6C: {l: {
|
|
0x61: {l: {0x3B: {c: [10917]}}},
|
|
0x3B: {c: [8823]},
|
|
0x45: {l: {0x3B: {c: [10898]}}},
|
|
0x6A: {l: {0x3B: {c: [10916]}}}
|
|
}},
|
|
0x6E: {l: {
|
|
0x61: {l: {0x70: {l: {
|
|
0x3B: {c: [10890]},
|
|
0x70: {l: {0x72: {l: {0x6F: {l: {0x78: {l: {0x3B: {c: [10890]}}}}}}}}}
|
|
}}}},
|
|
0x65: {l: {
|
|
0x3B: {c: [10888]},
|
|
0x71: {l: {
|
|
0x3B: {c: [10888]},
|
|
0x71: {l: {0x3B: {c: [8809]}}}
|
|
}}
|
|
}},
|
|
0x45: {l: {0x3B: {c: [8809]}}},
|
|
0x73: {l: {0x69: {l: {0x6D: {l: {0x3B: {c: [8935]}}}}}}}
|
|
}},
|
|
0x6F: {l: {0x70: {l: {0x66: {l: {0x3B: {c: [120152]}}}}}}},
|
|
0x72: {l: {0x61: {l: {0x76: {l: {0x65: {l: {0x3B: {c: [96]}}}}}}}}},
|
|
0x73: {l: {
|
|
0x63: {l: {0x72: {l: {0x3B: {c: [8458]}}}}},
|
|
0x69: {l: {0x6D: {l: {
|
|
0x3B: {c: [8819]},
|
|
0x65: {l: {0x3B: {c: [10894]}}},
|
|
0x6C: {l: {0x3B: {c: [10896]}}}
|
|
}}}}
|
|
}},
|
|
0x74: {
|
|
l: {
|
|
0x63: {l: {
|
|
0x63: {l: {0x3B: {c: [10919]}}},
|
|
0x69: {l: {0x72: {l: {0x3B: {c: [10874]}}}}}
|
|
}},
|
|
0x3B: {c: [62]},
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [8919]}}}}}}},
|
|
0x6C: {l: {0x50: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [10645]}}}}}}}}},
|
|
0x71: {l: {0x75: {l: {0x65: {l: {0x73: {l: {0x74: {l: {0x3B: {c: [10876]}}}}}}}}}}},
|
|
0x72: {l: {
|
|
0x61: {l: {
|
|
0x70: {l: {0x70: {l: {0x72: {l: {0x6F: {l: {0x78: {l: {0x3B: {c: [10886]}}}}}}}}}}},
|
|
0x72: {l: {0x72: {l: {0x3B: {c: [10616]}}}}}
|
|
}},
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [8919]}}}}}}},
|
|
0x65: {l: {0x71: {l: {
|
|
0x6C: {l: {0x65: {l: {0x73: {l: {0x73: {l: {0x3B: {c: [8923]}}}}}}}}},
|
|
0x71: {l: {0x6C: {l: {0x65: {l: {0x73: {l: {0x73: {l: {0x3B: {c: [10892]}}}}}}}}}}}
|
|
}}}},
|
|
0x6C: {l: {0x65: {l: {0x73: {l: {0x73: {l: {0x3B: {c: [8823]}}}}}}}}},
|
|
0x73: {l: {0x69: {l: {0x6D: {l: {0x3B: {c: [8819]}}}}}}}
|
|
}}
|
|
},
|
|
c: [62]
|
|
},
|
|
0x76: {l: {
|
|
0x65: {l: {0x72: {l: {0x74: {l: {0x6E: {l: {0x65: {l: {0x71: {l: {0x71: {l: {0x3B: {c: [8809, 65024]}}}}}}}}}}}}}}},
|
|
0x6E: {l: {0x45: {l: {0x3B: {c: [8809, 65024]}}}}}
|
|
}}
|
|
}},
|
|
0x47: {l: {
|
|
0x61: {l: {0x6D: {l: {0x6D: {l: {0x61: {l: {
|
|
0x3B: {c: [915]},
|
|
0x64: {l: {0x3B: {c: [988]}}}
|
|
}}}}}}}},
|
|
0x62: {l: {0x72: {l: {0x65: {l: {0x76: {l: {0x65: {l: {0x3B: {c: [286]}}}}}}}}}}},
|
|
0x63: {l: {
|
|
0x65: {l: {0x64: {l: {0x69: {l: {0x6C: {l: {0x3B: {c: [290]}}}}}}}}},
|
|
0x69: {l: {0x72: {l: {0x63: {l: {0x3B: {c: [284]}}}}}}},
|
|
0x79: {l: {0x3B: {c: [1043]}}}
|
|
}},
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [288]}}}}}}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120074]}}}}},
|
|
0x67: {l: {0x3B: {c: [8921]}}},
|
|
0x4A: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1027]}}}}}}},
|
|
0x6F: {l: {0x70: {l: {0x66: {l: {0x3B: {c: [120126]}}}}}}},
|
|
0x72: {l: {0x65: {l: {0x61: {l: {0x74: {l: {0x65: {l: {0x72: {l: {
|
|
0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {
|
|
0x3B: {c: [8805]},
|
|
0x4C: {l: {0x65: {l: {0x73: {l: {0x73: {l: {0x3B: {c: [8923]}}}}}}}}}
|
|
}}}}}}}}}},
|
|
0x46: {l: {0x75: {l: {0x6C: {l: {0x6C: {l: {0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [8807]}}}}}}}}}}}}}}}}}}},
|
|
0x47: {l: {0x72: {l: {0x65: {l: {0x61: {l: {0x74: {l: {0x65: {l: {0x72: {l: {0x3B: {c: [10914]}}}}}}}}}}}}}}},
|
|
0x4C: {l: {0x65: {l: {0x73: {l: {0x73: {l: {0x3B: {c: [8823]}}}}}}}}},
|
|
0x53: {l: {0x6C: {l: {0x61: {l: {0x6E: {l: {0x74: {l: {0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [10878]}}}}}}}}}}}}}}}}}}}}},
|
|
0x54: {l: {0x69: {l: {0x6C: {l: {0x64: {l: {0x65: {l: {0x3B: {c: [8819]}}}}}}}}}}}
|
|
}}}}}}}}}}}},
|
|
0x73: {l: {0x63: {l: {0x72: {l: {0x3B: {c: [119970]}}}}}}},
|
|
0x54: {
|
|
l: {0x3B: {c: [62]}},
|
|
c: [62]
|
|
},
|
|
0x74: {l: {0x3B: {c: [8811]}}}
|
|
}},
|
|
0x48: {l: {
|
|
0x61: {l: {
|
|
0x63: {l: {0x65: {l: {0x6B: {l: {0x3B: {c: [711]}}}}}}},
|
|
0x74: {l: {0x3B: {c: [94]}}}
|
|
}},
|
|
0x41: {l: {0x52: {l: {0x44: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1066]}}}}}}}}}}},
|
|
0x63: {l: {0x69: {l: {0x72: {l: {0x63: {l: {0x3B: {c: [292]}}}}}}}}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [8460]}}}}},
|
|
0x69: {l: {0x6C: {l: {0x62: {l: {0x65: {l: {0x72: {l: {0x74: {l: {0x53: {l: {0x70: {l: {0x61: {l: {0x63: {l: {0x65: {l: {0x3B: {c: [8459]}}}}}}}}}}}}}}}}}}}}}}},
|
|
0x6F: {l: {
|
|
0x70: {l: {0x66: {l: {0x3B: {c: [8461]}}}}},
|
|
0x72: {l: {0x69: {l: {0x7A: {l: {0x6F: {l: {0x6E: {l: {0x74: {l: {0x61: {l: {0x6C: {l: {0x4C: {l: {0x69: {l: {0x6E: {l: {0x65: {l: {0x3B: {c: [9472]}}}}}}}}}}}}}}}}}}}}}}}}}
|
|
}},
|
|
0x73: {l: {
|
|
0x63: {l: {0x72: {l: {0x3B: {c: [8459]}}}}},
|
|
0x74: {l: {0x72: {l: {0x6F: {l: {0x6B: {l: {0x3B: {c: [294]}}}}}}}}}
|
|
}},
|
|
0x75: {l: {0x6D: {l: {0x70: {l: {
|
|
0x44: {l: {0x6F: {l: {0x77: {l: {0x6E: {l: {0x48: {l: {0x75: {l: {0x6D: {l: {0x70: {l: {0x3B: {c: [8782]}}}}}}}}}}}}}}}}},
|
|
0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [8783]}}}}}}}}}}}
|
|
}}}}}}
|
|
}},
|
|
0x68: {l: {
|
|
0x61: {l: {
|
|
0x69: {l: {0x72: {l: {0x73: {l: {0x70: {l: {0x3B: {c: [8202]}}}}}}}}},
|
|
0x6C: {l: {0x66: {l: {0x3B: {c: [189]}}}}},
|
|
0x6D: {l: {0x69: {l: {0x6C: {l: {0x74: {l: {0x3B: {c: [8459]}}}}}}}}},
|
|
0x72: {l: {
|
|
0x64: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1098]}}}}}}},
|
|
0x72: {l: {
|
|
0x63: {l: {0x69: {l: {0x72: {l: {0x3B: {c: [10568]}}}}}}},
|
|
0x3B: {c: [8596]},
|
|
0x77: {l: {0x3B: {c: [8621]}}}
|
|
}}
|
|
}}
|
|
}},
|
|
0x41: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [8660]}}}}}}},
|
|
0x62: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [8463]}}}}}}},
|
|
0x63: {l: {0x69: {l: {0x72: {l: {0x63: {l: {0x3B: {c: [293]}}}}}}}}},
|
|
0x65: {l: {
|
|
0x61: {l: {0x72: {l: {0x74: {l: {0x73: {l: {
|
|
0x3B: {c: [9829]},
|
|
0x75: {l: {0x69: {l: {0x74: {l: {0x3B: {c: [9829]}}}}}}}
|
|
}}}}}}}},
|
|
0x6C: {l: {0x6C: {l: {0x69: {l: {0x70: {l: {0x3B: {c: [8230]}}}}}}}}},
|
|
0x72: {l: {0x63: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [8889]}}}}}}}}}
|
|
}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120101]}}}}},
|
|
0x6B: {l: {0x73: {l: {
|
|
0x65: {l: {0x61: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [10533]}}}}}}}}}}},
|
|
0x77: {l: {0x61: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [10534]}}}}}}}}}}}
|
|
}}}},
|
|
0x6F: {l: {
|
|
0x61: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [8703]}}}}}}},
|
|
0x6D: {l: {0x74: {l: {0x68: {l: {0x74: {l: {0x3B: {c: [8763]}}}}}}}}},
|
|
0x6F: {l: {0x6B: {l: {
|
|
0x6C: {l: {0x65: {l: {0x66: {l: {0x74: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8617]}}}}}}}}}}}}}}}}}}},
|
|
0x72: {l: {0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8618]}}}}}}}}}}}}}}}}}}}}}
|
|
}}}},
|
|
0x70: {l: {0x66: {l: {0x3B: {c: [120153]}}}}},
|
|
0x72: {l: {0x62: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [8213]}}}}}}}}}
|
|
}},
|
|
0x73: {l: {
|
|
0x63: {l: {0x72: {l: {0x3B: {c: [119997]}}}}},
|
|
0x6C: {l: {0x61: {l: {0x73: {l: {0x68: {l: {0x3B: {c: [8463]}}}}}}}}},
|
|
0x74: {l: {0x72: {l: {0x6F: {l: {0x6B: {l: {0x3B: {c: [295]}}}}}}}}}
|
|
}},
|
|
0x79: {l: {
|
|
0x62: {l: {0x75: {l: {0x6C: {l: {0x6C: {l: {0x3B: {c: [8259]}}}}}}}}},
|
|
0x70: {l: {0x68: {l: {0x65: {l: {0x6E: {l: {0x3B: {c: [8208]}}}}}}}}}
|
|
}}
|
|
}},
|
|
0x49: {l: {
|
|
0x61: {l: {0x63: {l: {0x75: {l: {0x74: {l: {0x65: {
|
|
l: {0x3B: {c: [205]}},
|
|
c: [205]
|
|
}}}}}}}}},
|
|
0x63: {l: {
|
|
0x69: {l: {0x72: {l: {0x63: {
|
|
l: {0x3B: {c: [206]}},
|
|
c: [206]
|
|
}}}}},
|
|
0x79: {l: {0x3B: {c: [1048]}}}
|
|
}},
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [304]}}}}}}},
|
|
0x45: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1045]}}}}}}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [8465]}}}}},
|
|
0x67: {l: {0x72: {l: {0x61: {l: {0x76: {l: {0x65: {
|
|
l: {0x3B: {c: [204]}},
|
|
c: [204]
|
|
}}}}}}}}},
|
|
0x4A: {l: {0x6C: {l: {0x69: {l: {0x67: {l: {0x3B: {c: [306]}}}}}}}}},
|
|
0x6D: {l: {
|
|
0x61: {l: {
|
|
0x63: {l: {0x72: {l: {0x3B: {c: [298]}}}}},
|
|
0x67: {l: {0x69: {l: {0x6E: {l: {0x61: {l: {0x72: {l: {0x79: {l: {0x49: {l: {0x3B: {c: [8520]}}}}}}}}}}}}}}}
|
|
}},
|
|
0x3B: {c: [8465]},
|
|
0x70: {l: {0x6C: {l: {0x69: {l: {0x65: {l: {0x73: {l: {0x3B: {c: [8658]}}}}}}}}}}}
|
|
}},
|
|
0x6E: {l: {
|
|
0x74: {l: {
|
|
0x3B: {c: [8748]},
|
|
0x65: {l: {
|
|
0x67: {l: {0x72: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [8747]}}}}}}}}},
|
|
0x72: {l: {0x73: {l: {0x65: {l: {0x63: {l: {0x74: {l: {0x69: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [8898]}}}}}}}}}}}}}}}}}
|
|
}}
|
|
}},
|
|
0x76: {l: {0x69: {l: {0x73: {l: {0x69: {l: {0x62: {l: {0x6C: {l: {0x65: {l: {
|
|
0x43: {l: {0x6F: {l: {0x6D: {l: {0x6D: {l: {0x61: {l: {0x3B: {c: [8291]}}}}}}}}}}},
|
|
0x54: {l: {0x69: {l: {0x6D: {l: {0x65: {l: {0x73: {l: {0x3B: {c: [8290]}}}}}}}}}}}
|
|
}}}}}}}}}}}}}}
|
|
}},
|
|
0x4F: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1025]}}}}}}},
|
|
0x6F: {l: {
|
|
0x67: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [302]}}}}}}},
|
|
0x70: {l: {0x66: {l: {0x3B: {c: [120128]}}}}},
|
|
0x74: {l: {0x61: {l: {0x3B: {c: [921]}}}}}
|
|
}},
|
|
0x73: {l: {0x63: {l: {0x72: {l: {0x3B: {c: [8464]}}}}}}},
|
|
0x74: {l: {0x69: {l: {0x6C: {l: {0x64: {l: {0x65: {l: {0x3B: {c: [296]}}}}}}}}}}},
|
|
0x75: {l: {
|
|
0x6B: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1030]}}}}}}},
|
|
0x6D: {l: {0x6C: {
|
|
l: {0x3B: {c: [207]}},
|
|
c: [207]
|
|
}}}
|
|
}}
|
|
}},
|
|
0x69: {l: {
|
|
0x61: {l: {0x63: {l: {0x75: {l: {0x74: {l: {0x65: {
|
|
l: {0x3B: {c: [237]}},
|
|
c: [237]
|
|
}}}}}}}}},
|
|
0x63: {l: {
|
|
0x3B: {c: [8291]},
|
|
0x69: {l: {0x72: {l: {0x63: {
|
|
l: {0x3B: {c: [238]}},
|
|
c: [238]
|
|
}}}}},
|
|
0x79: {l: {0x3B: {c: [1080]}}}
|
|
}},
|
|
0x65: {l: {
|
|
0x63: {l: {0x79: {l: {0x3B: {c: [1077]}}}}},
|
|
0x78: {l: {0x63: {l: {0x6C: {
|
|
l: {0x3B: {c: [161]}},
|
|
c: [161]
|
|
}}}}}
|
|
}},
|
|
0x66: {l: {
|
|
0x66: {l: {0x3B: {c: [8660]}}},
|
|
0x72: {l: {0x3B: {c: [120102]}}}
|
|
}},
|
|
0x67: {l: {0x72: {l: {0x61: {l: {0x76: {l: {0x65: {
|
|
l: {0x3B: {c: [236]}},
|
|
c: [236]
|
|
}}}}}}}}},
|
|
0x69: {l: {
|
|
0x3B: {c: [8520]},
|
|
0x69: {l: {
|
|
0x69: {l: {0x6E: {l: {0x74: {l: {0x3B: {c: [10764]}}}}}}},
|
|
0x6E: {l: {0x74: {l: {0x3B: {c: [8749]}}}}}
|
|
}},
|
|
0x6E: {l: {0x66: {l: {0x69: {l: {0x6E: {l: {0x3B: {c: [10716]}}}}}}}}},
|
|
0x6F: {l: {0x74: {l: {0x61: {l: {0x3B: {c: [8489]}}}}}}}
|
|
}},
|
|
0x6A: {l: {0x6C: {l: {0x69: {l: {0x67: {l: {0x3B: {c: [307]}}}}}}}}},
|
|
0x6D: {l: {
|
|
0x61: {l: {
|
|
0x63: {l: {0x72: {l: {0x3B: {c: [299]}}}}},
|
|
0x67: {l: {
|
|
0x65: {l: {0x3B: {c: [8465]}}},
|
|
0x6C: {l: {0x69: {l: {0x6E: {l: {0x65: {l: {0x3B: {c: [8464]}}}}}}}}},
|
|
0x70: {l: {0x61: {l: {0x72: {l: {0x74: {l: {0x3B: {c: [8465]}}}}}}}}}
|
|
}},
|
|
0x74: {l: {0x68: {l: {0x3B: {c: [305]}}}}}
|
|
}},
|
|
0x6F: {l: {0x66: {l: {0x3B: {c: [8887]}}}}},
|
|
0x70: {l: {0x65: {l: {0x64: {l: {0x3B: {c: [437]}}}}}}}
|
|
}},
|
|
0x6E: {l: {
|
|
0x63: {l: {0x61: {l: {0x72: {l: {0x65: {l: {0x3B: {c: [8453]}}}}}}}}},
|
|
0x3B: {c: [8712]},
|
|
0x66: {l: {0x69: {l: {0x6E: {l: {
|
|
0x3B: {c: [8734]},
|
|
0x74: {l: {0x69: {l: {0x65: {l: {0x3B: {c: [10717]}}}}}}}
|
|
}}}}}},
|
|
0x6F: {l: {0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [305]}}}}}}}}},
|
|
0x74: {l: {
|
|
0x63: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [8890]}}}}}}},
|
|
0x3B: {c: [8747]},
|
|
0x65: {l: {
|
|
0x67: {l: {0x65: {l: {0x72: {l: {0x73: {l: {0x3B: {c: [8484]}}}}}}}}},
|
|
0x72: {l: {0x63: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [8890]}}}}}}}}}
|
|
}},
|
|
0x6C: {l: {0x61: {l: {0x72: {l: {0x68: {l: {0x6B: {l: {0x3B: {c: [10775]}}}}}}}}}}},
|
|
0x70: {l: {0x72: {l: {0x6F: {l: {0x64: {l: {0x3B: {c: [10812]}}}}}}}}}
|
|
}}
|
|
}},
|
|
0x6F: {l: {
|
|
0x63: {l: {0x79: {l: {0x3B: {c: [1105]}}}}},
|
|
0x67: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [303]}}}}}}},
|
|
0x70: {l: {0x66: {l: {0x3B: {c: [120154]}}}}},
|
|
0x74: {l: {0x61: {l: {0x3B: {c: [953]}}}}}
|
|
}},
|
|
0x70: {l: {0x72: {l: {0x6F: {l: {0x64: {l: {0x3B: {c: [10812]}}}}}}}}},
|
|
0x71: {l: {0x75: {l: {0x65: {l: {0x73: {l: {0x74: {
|
|
l: {0x3B: {c: [191]}},
|
|
c: [191]
|
|
}}}}}}}}},
|
|
0x73: {l: {
|
|
0x63: {l: {0x72: {l: {0x3B: {c: [119998]}}}}},
|
|
0x69: {l: {0x6E: {l: {
|
|
0x3B: {c: [8712]},
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [8949]}}}}}}},
|
|
0x45: {l: {0x3B: {c: [8953]}}},
|
|
0x73: {l: {
|
|
0x3B: {c: [8948]},
|
|
0x76: {l: {0x3B: {c: [8947]}}}
|
|
}},
|
|
0x76: {l: {0x3B: {c: [8712]}}}
|
|
}}}}
|
|
}},
|
|
0x74: {l: {
|
|
0x3B: {c: [8290]},
|
|
0x69: {l: {0x6C: {l: {0x64: {l: {0x65: {l: {0x3B: {c: [297]}}}}}}}}}
|
|
}},
|
|
0x75: {l: {
|
|
0x6B: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1110]}}}}}}},
|
|
0x6D: {l: {0x6C: {
|
|
l: {0x3B: {c: [239]}},
|
|
c: [239]
|
|
}}}
|
|
}}
|
|
}},
|
|
0x4A: {l: {
|
|
0x63: {l: {
|
|
0x69: {l: {0x72: {l: {0x63: {l: {0x3B: {c: [308]}}}}}}},
|
|
0x79: {l: {0x3B: {c: [1049]}}}
|
|
}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120077]}}}}},
|
|
0x6F: {l: {0x70: {l: {0x66: {l: {0x3B: {c: [120129]}}}}}}},
|
|
0x73: {l: {
|
|
0x63: {l: {0x72: {l: {0x3B: {c: [119973]}}}}},
|
|
0x65: {l: {0x72: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1032]}}}}}}}}}
|
|
}},
|
|
0x75: {l: {0x6B: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1028]}}}}}}}}}
|
|
}},
|
|
0x6A: {l: {
|
|
0x63: {l: {
|
|
0x69: {l: {0x72: {l: {0x63: {l: {0x3B: {c: [309]}}}}}}},
|
|
0x79: {l: {0x3B: {c: [1081]}}}
|
|
}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120103]}}}}},
|
|
0x6D: {l: {0x61: {l: {0x74: {l: {0x68: {l: {0x3B: {c: [567]}}}}}}}}},
|
|
0x6F: {l: {0x70: {l: {0x66: {l: {0x3B: {c: [120155]}}}}}}},
|
|
0x73: {l: {
|
|
0x63: {l: {0x72: {l: {0x3B: {c: [119999]}}}}},
|
|
0x65: {l: {0x72: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1112]}}}}}}}}}
|
|
}},
|
|
0x75: {l: {0x6B: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1108]}}}}}}}}}
|
|
}},
|
|
0x4B: {l: {
|
|
0x61: {l: {0x70: {l: {0x70: {l: {0x61: {l: {0x3B: {c: [922]}}}}}}}}},
|
|
0x63: {l: {
|
|
0x65: {l: {0x64: {l: {0x69: {l: {0x6C: {l: {0x3B: {c: [310]}}}}}}}}},
|
|
0x79: {l: {0x3B: {c: [1050]}}}
|
|
}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120078]}}}}},
|
|
0x48: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1061]}}}}}}},
|
|
0x4A: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1036]}}}}}}},
|
|
0x6F: {l: {0x70: {l: {0x66: {l: {0x3B: {c: [120130]}}}}}}},
|
|
0x73: {l: {0x63: {l: {0x72: {l: {0x3B: {c: [119974]}}}}}}}
|
|
}},
|
|
0x6B: {l: {
|
|
0x61: {l: {0x70: {l: {0x70: {l: {0x61: {l: {
|
|
0x3B: {c: [954]},
|
|
0x76: {l: {0x3B: {c: [1008]}}}
|
|
}}}}}}}},
|
|
0x63: {l: {
|
|
0x65: {l: {0x64: {l: {0x69: {l: {0x6C: {l: {0x3B: {c: [311]}}}}}}}}},
|
|
0x79: {l: {0x3B: {c: [1082]}}}
|
|
}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120104]}}}}},
|
|
0x67: {l: {0x72: {l: {0x65: {l: {0x65: {l: {0x6E: {l: {0x3B: {c: [312]}}}}}}}}}}},
|
|
0x68: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1093]}}}}}}},
|
|
0x6A: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1116]}}}}}}},
|
|
0x6F: {l: {0x70: {l: {0x66: {l: {0x3B: {c: [120156]}}}}}}},
|
|
0x73: {l: {0x63: {l: {0x72: {l: {0x3B: {c: [120000]}}}}}}}
|
|
}},
|
|
0x6C: {l: {
|
|
0x41: {l: {
|
|
0x61: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [8666]}}}}}}},
|
|
0x72: {l: {0x72: {l: {0x3B: {c: [8656]}}}}},
|
|
0x74: {l: {0x61: {l: {0x69: {l: {0x6C: {l: {0x3B: {c: [10523]}}}}}}}}}
|
|
}},
|
|
0x61: {l: {
|
|
0x63: {l: {0x75: {l: {0x74: {l: {0x65: {l: {0x3B: {c: [314]}}}}}}}}},
|
|
0x65: {l: {0x6D: {l: {0x70: {l: {0x74: {l: {0x79: {l: {0x76: {l: {0x3B: {c: [10676]}}}}}}}}}}}}},
|
|
0x67: {l: {0x72: {l: {0x61: {l: {0x6E: {l: {0x3B: {c: [8466]}}}}}}}}},
|
|
0x6D: {l: {0x62: {l: {0x64: {l: {0x61: {l: {0x3B: {c: [955]}}}}}}}}},
|
|
0x6E: {l: {0x67: {l: {
|
|
0x3B: {c: [10216]},
|
|
0x64: {l: {0x3B: {c: [10641]}}},
|
|
0x6C: {l: {0x65: {l: {0x3B: {c: [10216]}}}}}
|
|
}}}},
|
|
0x70: {l: {0x3B: {c: [10885]}}},
|
|
0x71: {l: {0x75: {l: {0x6F: {
|
|
l: {0x3B: {c: [171]}},
|
|
c: [171]
|
|
}}}}},
|
|
0x72: {l: {0x72: {l: {
|
|
0x62: {l: {
|
|
0x3B: {c: [8676]},
|
|
0x66: {l: {0x73: {l: {0x3B: {c: [10527]}}}}}
|
|
}},
|
|
0x3B: {c: [8592]},
|
|
0x66: {l: {0x73: {l: {0x3B: {c: [10525]}}}}},
|
|
0x68: {l: {0x6B: {l: {0x3B: {c: [8617]}}}}},
|
|
0x6C: {l: {0x70: {l: {0x3B: {c: [8619]}}}}},
|
|
0x70: {l: {0x6C: {l: {0x3B: {c: [10553]}}}}},
|
|
0x73: {l: {0x69: {l: {0x6D: {l: {0x3B: {c: [10611]}}}}}}},
|
|
0x74: {l: {0x6C: {l: {0x3B: {c: [8610]}}}}}
|
|
}}}},
|
|
0x74: {l: {
|
|
0x61: {l: {0x69: {l: {0x6C: {l: {0x3B: {c: [10521]}}}}}}},
|
|
0x3B: {c: [10923]},
|
|
0x65: {l: {
|
|
0x3B: {c: [10925]},
|
|
0x73: {l: {0x3B: {c: [10925, 65024]}}}
|
|
}}
|
|
}}
|
|
}},
|
|
0x62: {l: {
|
|
0x61: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [10508]}}}}}}},
|
|
0x62: {l: {0x72: {l: {0x6B: {l: {0x3B: {c: [10098]}}}}}}},
|
|
0x72: {l: {
|
|
0x61: {l: {0x63: {l: {
|
|
0x65: {l: {0x3B: {c: [123]}}},
|
|
0x6B: {l: {0x3B: {c: [91]}}}
|
|
}}}},
|
|
0x6B: {l: {
|
|
0x65: {l: {0x3B: {c: [10635]}}},
|
|
0x73: {l: {0x6C: {l: {
|
|
0x64: {l: {0x3B: {c: [10639]}}},
|
|
0x75: {l: {0x3B: {c: [10637]}}}
|
|
}}}}
|
|
}}
|
|
}}
|
|
}},
|
|
0x42: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [10510]}}}}}}}}},
|
|
0x63: {l: {
|
|
0x61: {l: {0x72: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [318]}}}}}}}}},
|
|
0x65: {l: {
|
|
0x64: {l: {0x69: {l: {0x6C: {l: {0x3B: {c: [316]}}}}}}},
|
|
0x69: {l: {0x6C: {l: {0x3B: {c: [8968]}}}}}
|
|
}},
|
|
0x75: {l: {0x62: {l: {0x3B: {c: [123]}}}}},
|
|
0x79: {l: {0x3B: {c: [1083]}}}
|
|
}},
|
|
0x64: {l: {
|
|
0x63: {l: {0x61: {l: {0x3B: {c: [10550]}}}}},
|
|
0x71: {l: {0x75: {l: {0x6F: {l: {
|
|
0x3B: {c: [8220]},
|
|
0x72: {l: {0x3B: {c: [8222]}}}
|
|
}}}}}},
|
|
0x72: {l: {
|
|
0x64: {l: {0x68: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [10599]}}}}}}}}},
|
|
0x75: {l: {0x73: {l: {0x68: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [10571]}}}}}}}}}}}
|
|
}},
|
|
0x73: {l: {0x68: {l: {0x3B: {c: [8626]}}}}}
|
|
}},
|
|
0x65: {l: {
|
|
0x3B: {c: [8804]},
|
|
0x66: {l: {0x74: {l: {
|
|
0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {
|
|
0x3B: {c: [8592]},
|
|
0x74: {l: {0x61: {l: {0x69: {l: {0x6C: {l: {0x3B: {c: [8610]}}}}}}}}}
|
|
}}}}}}}}}},
|
|
0x68: {l: {0x61: {l: {0x72: {l: {0x70: {l: {0x6F: {l: {0x6F: {l: {0x6E: {l: {
|
|
0x64: {l: {0x6F: {l: {0x77: {l: {0x6E: {l: {0x3B: {c: [8637]}}}}}}}}},
|
|
0x75: {l: {0x70: {l: {0x3B: {c: [8636]}}}}}
|
|
}}}}}}}}}}}}}},
|
|
0x6C: {l: {0x65: {l: {0x66: {l: {0x74: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x73: {l: {0x3B: {c: [8647]}}}}}}}}}}}}}}}}}}}}},
|
|
0x72: {l: {0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {
|
|
0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {
|
|
0x3B: {c: [8596]},
|
|
0x73: {l: {0x3B: {c: [8646]}}}
|
|
}}}}}}}}}},
|
|
0x68: {l: {0x61: {l: {0x72: {l: {0x70: {l: {0x6F: {l: {0x6F: {l: {0x6E: {l: {0x73: {l: {0x3B: {c: [8651]}}}}}}}}}}}}}}}}},
|
|
0x73: {l: {0x71: {l: {0x75: {l: {0x69: {l: {0x67: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8621]}}}}}}}}}}}}}}}}}}}}}
|
|
}}}}}}}}}},
|
|
0x74: {l: {0x68: {l: {0x72: {l: {0x65: {l: {0x65: {l: {0x74: {l: {0x69: {l: {0x6D: {l: {0x65: {l: {0x73: {l: {0x3B: {c: [8907]}}}}}}}}}}}}}}}}}}}}}
|
|
}}}},
|
|
0x67: {l: {0x3B: {c: [8922]}}},
|
|
0x71: {l: {
|
|
0x3B: {c: [8804]},
|
|
0x71: {l: {0x3B: {c: [8806]}}},
|
|
0x73: {l: {0x6C: {l: {0x61: {l: {0x6E: {l: {0x74: {l: {0x3B: {c: [10877]}}}}}}}}}}}
|
|
}},
|
|
0x73: {l: {
|
|
0x63: {l: {0x63: {l: {0x3B: {c: [10920]}}}}},
|
|
0x3B: {c: [10877]},
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {
|
|
0x3B: {c: [10879]},
|
|
0x6F: {l: {
|
|
0x3B: {c: [10881]},
|
|
0x72: {l: {0x3B: {c: [10883]}}}
|
|
}}
|
|
}}}}}},
|
|
0x67: {l: {
|
|
0x3B: {c: [8922, 65024]},
|
|
0x65: {l: {0x73: {l: {0x3B: {c: [10899]}}}}}
|
|
}},
|
|
0x73: {l: {
|
|
0x61: {l: {0x70: {l: {0x70: {l: {0x72: {l: {0x6F: {l: {0x78: {l: {0x3B: {c: [10885]}}}}}}}}}}}}},
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [8918]}}}}}}},
|
|
0x65: {l: {0x71: {l: {
|
|
0x67: {l: {0x74: {l: {0x72: {l: {0x3B: {c: [8922]}}}}}}},
|
|
0x71: {l: {0x67: {l: {0x74: {l: {0x72: {l: {0x3B: {c: [10891]}}}}}}}}}
|
|
}}}},
|
|
0x67: {l: {0x74: {l: {0x72: {l: {0x3B: {c: [8822]}}}}}}},
|
|
0x73: {l: {0x69: {l: {0x6D: {l: {0x3B: {c: [8818]}}}}}}}
|
|
}}
|
|
}}
|
|
}},
|
|
0x45: {l: {
|
|
0x3B: {c: [8806]},
|
|
0x67: {l: {0x3B: {c: [10891]}}}
|
|
}},
|
|
0x66: {l: {
|
|
0x69: {l: {0x73: {l: {0x68: {l: {0x74: {l: {0x3B: {c: [10620]}}}}}}}}},
|
|
0x6C: {l: {0x6F: {l: {0x6F: {l: {0x72: {l: {0x3B: {c: [8970]}}}}}}}}},
|
|
0x72: {l: {0x3B: {c: [120105]}}}
|
|
}},
|
|
0x67: {l: {
|
|
0x3B: {c: [8822]},
|
|
0x45: {l: {0x3B: {c: [10897]}}}
|
|
}},
|
|
0x48: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [10594]}}}}}}},
|
|
0x68: {l: {
|
|
0x61: {l: {0x72: {l: {
|
|
0x64: {l: {0x3B: {c: [8637]}}},
|
|
0x75: {l: {
|
|
0x3B: {c: [8636]},
|
|
0x6C: {l: {0x3B: {c: [10602]}}}
|
|
}}
|
|
}}}},
|
|
0x62: {l: {0x6C: {l: {0x6B: {l: {0x3B: {c: [9604]}}}}}}}
|
|
}},
|
|
0x6A: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1113]}}}}}}},
|
|
0x6C: {l: {
|
|
0x61: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [8647]}}}}}}},
|
|
0x3B: {c: [8810]},
|
|
0x63: {l: {0x6F: {l: {0x72: {l: {0x6E: {l: {0x65: {l: {0x72: {l: {0x3B: {c: [8990]}}}}}}}}}}}}},
|
|
0x68: {l: {0x61: {l: {0x72: {l: {0x64: {l: {0x3B: {c: [10603]}}}}}}}}},
|
|
0x74: {l: {0x72: {l: {0x69: {l: {0x3B: {c: [9722]}}}}}}}
|
|
}},
|
|
0x6D: {l: {
|
|
0x69: {l: {0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [320]}}}}}}}}},
|
|
0x6F: {l: {0x75: {l: {0x73: {l: {0x74: {l: {
|
|
0x61: {l: {0x63: {l: {0x68: {l: {0x65: {l: {0x3B: {c: [9136]}}}}}}}}},
|
|
0x3B: {c: [9136]}
|
|
}}}}}}}}
|
|
}},
|
|
0x6E: {l: {
|
|
0x61: {l: {0x70: {l: {
|
|
0x3B: {c: [10889]},
|
|
0x70: {l: {0x72: {l: {0x6F: {l: {0x78: {l: {0x3B: {c: [10889]}}}}}}}}}
|
|
}}}},
|
|
0x65: {l: {
|
|
0x3B: {c: [10887]},
|
|
0x71: {l: {
|
|
0x3B: {c: [10887]},
|
|
0x71: {l: {0x3B: {c: [8808]}}}
|
|
}}
|
|
}},
|
|
0x45: {l: {0x3B: {c: [8808]}}},
|
|
0x73: {l: {0x69: {l: {0x6D: {l: {0x3B: {c: [8934]}}}}}}}
|
|
}},
|
|
0x6F: {l: {
|
|
0x61: {l: {
|
|
0x6E: {l: {0x67: {l: {0x3B: {c: [10220]}}}}},
|
|
0x72: {l: {0x72: {l: {0x3B: {c: [8701]}}}}}
|
|
}},
|
|
0x62: {l: {0x72: {l: {0x6B: {l: {0x3B: {c: [10214]}}}}}}},
|
|
0x6E: {l: {0x67: {l: {
|
|
0x6C: {l: {0x65: {l: {0x66: {l: {0x74: {l: {
|
|
0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [10229]}}}}}}}}}}},
|
|
0x72: {l: {0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [10231]}}}}}}}}}}}}}}}}}}}}}
|
|
}}}}}}}},
|
|
0x6D: {l: {0x61: {l: {0x70: {l: {0x73: {l: {0x74: {l: {0x6F: {l: {0x3B: {c: [10236]}}}}}}}}}}}}},
|
|
0x72: {l: {0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [10230]}}}}}}}}}}}}}}}}}}}}}
|
|
}}}},
|
|
0x6F: {l: {0x70: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {
|
|
0x6C: {l: {0x65: {l: {0x66: {l: {0x74: {l: {0x3B: {c: [8619]}}}}}}}}},
|
|
0x72: {l: {0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {0x3B: {c: [8620]}}}}}}}}}}}
|
|
}}}}}}}}}}}}}},
|
|
0x70: {l: {
|
|
0x61: {l: {0x72: {l: {0x3B: {c: [10629]}}}}},
|
|
0x66: {l: {0x3B: {c: [120157]}}},
|
|
0x6C: {l: {0x75: {l: {0x73: {l: {0x3B: {c: [10797]}}}}}}}
|
|
}},
|
|
0x74: {l: {0x69: {l: {0x6D: {l: {0x65: {l: {0x73: {l: {0x3B: {c: [10804]}}}}}}}}}}},
|
|
0x77: {l: {
|
|
0x61: {l: {0x73: {l: {0x74: {l: {0x3B: {c: [8727]}}}}}}},
|
|
0x62: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [95]}}}}}}}
|
|
}},
|
|
0x7A: {l: {
|
|
0x3B: {c: [9674]},
|
|
0x65: {l: {0x6E: {l: {0x67: {l: {0x65: {l: {0x3B: {c: [9674]}}}}}}}}},
|
|
0x66: {l: {0x3B: {c: [10731]}}}
|
|
}}
|
|
}},
|
|
0x70: {l: {0x61: {l: {0x72: {l: {
|
|
0x3B: {c: [40]},
|
|
0x6C: {l: {0x74: {l: {0x3B: {c: [10643]}}}}}
|
|
}}}}}},
|
|
0x72: {l: {
|
|
0x61: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [8646]}}}}}}},
|
|
0x63: {l: {0x6F: {l: {0x72: {l: {0x6E: {l: {0x65: {l: {0x72: {l: {0x3B: {c: [8991]}}}}}}}}}}}}},
|
|
0x68: {l: {0x61: {l: {0x72: {l: {
|
|
0x3B: {c: [8651]},
|
|
0x64: {l: {0x3B: {c: [10605]}}}
|
|
}}}}}},
|
|
0x6D: {l: {0x3B: {c: [8206]}}},
|
|
0x74: {l: {0x72: {l: {0x69: {l: {0x3B: {c: [8895]}}}}}}}
|
|
}},
|
|
0x73: {l: {
|
|
0x61: {l: {0x71: {l: {0x75: {l: {0x6F: {l: {0x3B: {c: [8249]}}}}}}}}},
|
|
0x63: {l: {0x72: {l: {0x3B: {c: [120001]}}}}},
|
|
0x68: {l: {0x3B: {c: [8624]}}},
|
|
0x69: {l: {0x6D: {l: {
|
|
0x3B: {c: [8818]},
|
|
0x65: {l: {0x3B: {c: [10893]}}},
|
|
0x67: {l: {0x3B: {c: [10895]}}}
|
|
}}}},
|
|
0x71: {l: {
|
|
0x62: {l: {0x3B: {c: [91]}}},
|
|
0x75: {l: {0x6F: {l: {
|
|
0x3B: {c: [8216]},
|
|
0x72: {l: {0x3B: {c: [8218]}}}
|
|
}}}}
|
|
}},
|
|
0x74: {l: {0x72: {l: {0x6F: {l: {0x6B: {l: {0x3B: {c: [322]}}}}}}}}}
|
|
}},
|
|
0x74: {
|
|
l: {
|
|
0x63: {l: {
|
|
0x63: {l: {0x3B: {c: [10918]}}},
|
|
0x69: {l: {0x72: {l: {0x3B: {c: [10873]}}}}}
|
|
}},
|
|
0x3B: {c: [60]},
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [8918]}}}}}}},
|
|
0x68: {l: {0x72: {l: {0x65: {l: {0x65: {l: {0x3B: {c: [8907]}}}}}}}}},
|
|
0x69: {l: {0x6D: {l: {0x65: {l: {0x73: {l: {0x3B: {c: [8905]}}}}}}}}},
|
|
0x6C: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [10614]}}}}}}}}},
|
|
0x71: {l: {0x75: {l: {0x65: {l: {0x73: {l: {0x74: {l: {0x3B: {c: [10875]}}}}}}}}}}},
|
|
0x72: {l: {
|
|
0x69: {l: {
|
|
0x3B: {c: [9667]},
|
|
0x65: {l: {0x3B: {c: [8884]}}},
|
|
0x66: {l: {0x3B: {c: [9666]}}}
|
|
}},
|
|
0x50: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [10646]}}}}}}}
|
|
}}
|
|
},
|
|
c: [60]
|
|
},
|
|
0x75: {l: {0x72: {l: {
|
|
0x64: {l: {0x73: {l: {0x68: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [10570]}}}}}}}}}}},
|
|
0x75: {l: {0x68: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [10598]}}}}}}}}}
|
|
}}}},
|
|
0x76: {l: {
|
|
0x65: {l: {0x72: {l: {0x74: {l: {0x6E: {l: {0x65: {l: {0x71: {l: {0x71: {l: {0x3B: {c: [8808, 65024]}}}}}}}}}}}}}}},
|
|
0x6E: {l: {0x45: {l: {0x3B: {c: [8808, 65024]}}}}}
|
|
}}
|
|
}},
|
|
0x4C: {l: {
|
|
0x61: {l: {
|
|
0x63: {l: {0x75: {l: {0x74: {l: {0x65: {l: {0x3B: {c: [313]}}}}}}}}},
|
|
0x6D: {l: {0x62: {l: {0x64: {l: {0x61: {l: {0x3B: {c: [923]}}}}}}}}},
|
|
0x6E: {l: {0x67: {l: {0x3B: {c: [10218]}}}}},
|
|
0x70: {l: {0x6C: {l: {0x61: {l: {0x63: {l: {0x65: {l: {0x74: {l: {0x72: {l: {0x66: {l: {0x3B: {c: [8466]}}}}}}}}}}}}}}}}},
|
|
0x72: {l: {0x72: {l: {0x3B: {c: [8606]}}}}}
|
|
}},
|
|
0x63: {l: {
|
|
0x61: {l: {0x72: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [317]}}}}}}}}},
|
|
0x65: {l: {0x64: {l: {0x69: {l: {0x6C: {l: {0x3B: {c: [315]}}}}}}}}},
|
|
0x79: {l: {0x3B: {c: [1051]}}}
|
|
}},
|
|
0x65: {l: {
|
|
0x66: {l: {0x74: {l: {
|
|
0x41: {l: {
|
|
0x6E: {l: {0x67: {l: {0x6C: {l: {0x65: {l: {0x42: {l: {0x72: {l: {0x61: {l: {0x63: {l: {0x6B: {l: {0x65: {l: {0x74: {l: {0x3B: {c: [10216]}}}}}}}}}}}}}}}}}}}}}}},
|
|
0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {
|
|
0x42: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [8676]}}}}}}},
|
|
0x3B: {c: [8592]},
|
|
0x52: {l: {0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {0x41: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8646]}}}}}}}}}}}}}}}}}}}}}
|
|
}}}}}}}}
|
|
}},
|
|
0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8656]}}}}}}}}}}},
|
|
0x43: {l: {0x65: {l: {0x69: {l: {0x6C: {l: {0x69: {l: {0x6E: {l: {0x67: {l: {0x3B: {c: [8968]}}}}}}}}}}}}}}},
|
|
0x44: {l: {0x6F: {l: {
|
|
0x75: {l: {0x62: {l: {0x6C: {l: {0x65: {l: {0x42: {l: {0x72: {l: {0x61: {l: {0x63: {l: {0x6B: {l: {0x65: {l: {0x74: {l: {0x3B: {c: [10214]}}}}}}}}}}}}}}}}}}}}}}},
|
|
0x77: {l: {0x6E: {l: {
|
|
0x54: {l: {0x65: {l: {0x65: {l: {0x56: {l: {0x65: {l: {0x63: {l: {0x74: {l: {0x6F: {l: {0x72: {l: {0x3B: {c: [10593]}}}}}}}}}}}}}}}}}}},
|
|
0x56: {l: {0x65: {l: {0x63: {l: {0x74: {l: {0x6F: {l: {0x72: {l: {
|
|
0x42: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [10585]}}}}}}},
|
|
0x3B: {c: [8643]}
|
|
}}}}}}}}}}}}
|
|
}}}}
|
|
}}}},
|
|
0x46: {l: {0x6C: {l: {0x6F: {l: {0x6F: {l: {0x72: {l: {0x3B: {c: [8970]}}}}}}}}}}},
|
|
0x52: {l: {0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {
|
|
0x41: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8596]}}}}}}}}}}},
|
|
0x56: {l: {0x65: {l: {0x63: {l: {0x74: {l: {0x6F: {l: {0x72: {l: {0x3B: {c: [10574]}}}}}}}}}}}}}
|
|
}}}}}}}}}},
|
|
0x72: {l: {0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8660]}}}}}}}}}}}}}}}}}}}}},
|
|
0x54: {l: {
|
|
0x65: {l: {0x65: {l: {
|
|
0x41: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8612]}}}}}}}}}}},
|
|
0x3B: {c: [8867]},
|
|
0x56: {l: {0x65: {l: {0x63: {l: {0x74: {l: {0x6F: {l: {0x72: {l: {0x3B: {c: [10586]}}}}}}}}}}}}}
|
|
}}}},
|
|
0x72: {l: {0x69: {l: {0x61: {l: {0x6E: {l: {0x67: {l: {0x6C: {l: {0x65: {l: {
|
|
0x42: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [10703]}}}}}}},
|
|
0x3B: {c: [8882]},
|
|
0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [8884]}}}}}}}}}}}
|
|
}}}}}}}}}}}}}}
|
|
}},
|
|
0x55: {l: {0x70: {l: {
|
|
0x44: {l: {0x6F: {l: {0x77: {l: {0x6E: {l: {0x56: {l: {0x65: {l: {0x63: {l: {0x74: {l: {0x6F: {l: {0x72: {l: {0x3B: {c: [10577]}}}}}}}}}}}}}}}}}}}}},
|
|
0x54: {l: {0x65: {l: {0x65: {l: {0x56: {l: {0x65: {l: {0x63: {l: {0x74: {l: {0x6F: {l: {0x72: {l: {0x3B: {c: [10592]}}}}}}}}}}}}}}}}}}},
|
|
0x56: {l: {0x65: {l: {0x63: {l: {0x74: {l: {0x6F: {l: {0x72: {l: {
|
|
0x42: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [10584]}}}}}}},
|
|
0x3B: {c: [8639]}
|
|
}}}}}}}}}}}}
|
|
}}}},
|
|
0x56: {l: {0x65: {l: {0x63: {l: {0x74: {l: {0x6F: {l: {0x72: {l: {
|
|
0x42: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [10578]}}}}}}},
|
|
0x3B: {c: [8636]}
|
|
}}}}}}}}}}}}
|
|
}}}},
|
|
0x73: {l: {0x73: {l: {
|
|
0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x47: {l: {0x72: {l: {0x65: {l: {0x61: {l: {0x74: {l: {0x65: {l: {0x72: {l: {0x3B: {c: [8922]}}}}}}}}}}}}}}}}}}}}}}}}},
|
|
0x46: {l: {0x75: {l: {0x6C: {l: {0x6C: {l: {0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [8806]}}}}}}}}}}}}}}}}}}},
|
|
0x47: {l: {0x72: {l: {0x65: {l: {0x61: {l: {0x74: {l: {0x65: {l: {0x72: {l: {0x3B: {c: [8822]}}}}}}}}}}}}}}},
|
|
0x4C: {l: {0x65: {l: {0x73: {l: {0x73: {l: {0x3B: {c: [10913]}}}}}}}}},
|
|
0x53: {l: {0x6C: {l: {0x61: {l: {0x6E: {l: {0x74: {l: {0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [10877]}}}}}}}}}}}}}}}}}}}}},
|
|
0x54: {l: {0x69: {l: {0x6C: {l: {0x64: {l: {0x65: {l: {0x3B: {c: [8818]}}}}}}}}}}}
|
|
}}}}
|
|
}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120079]}}}}},
|
|
0x4A: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1033]}}}}}}},
|
|
0x6C: {l: {
|
|
0x3B: {c: [8920]},
|
|
0x65: {l: {0x66: {l: {0x74: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8666]}}}}}}}}}}}}}}}}}
|
|
}},
|
|
0x6D: {l: {0x69: {l: {0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [319]}}}}}}}}}}},
|
|
0x6F: {l: {
|
|
0x6E: {l: {0x67: {l: {
|
|
0x4C: {l: {0x65: {l: {0x66: {l: {0x74: {l: {
|
|
0x41: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [10229]}}}}}}}}}}},
|
|
0x52: {l: {0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {0x41: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [10231]}}}}}}}}}}}}}}}}}}}}}
|
|
}}}}}}}},
|
|
0x6C: {l: {0x65: {l: {0x66: {l: {0x74: {l: {
|
|
0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [10232]}}}}}}}}}}},
|
|
0x72: {l: {0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [10234]}}}}}}}}}}}}}}}}}}}}}
|
|
}}}}}}}},
|
|
0x52: {l: {0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {0x41: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [10230]}}}}}}}}}}}}}}}}}}}}},
|
|
0x72: {l: {0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [10233]}}}}}}}}}}}}}}}}}}}}}
|
|
}}}},
|
|
0x70: {l: {0x66: {l: {0x3B: {c: [120131]}}}}},
|
|
0x77: {l: {0x65: {l: {0x72: {l: {
|
|
0x4C: {l: {0x65: {l: {0x66: {l: {0x74: {l: {0x41: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8601]}}}}}}}}}}}}}}}}}}},
|
|
0x52: {l: {0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {0x41: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8600]}}}}}}}}}}}}}}}}}}}}}
|
|
}}}}}}
|
|
}},
|
|
0x73: {l: {
|
|
0x63: {l: {0x72: {l: {0x3B: {c: [8466]}}}}},
|
|
0x68: {l: {0x3B: {c: [8624]}}},
|
|
0x74: {l: {0x72: {l: {0x6F: {l: {0x6B: {l: {0x3B: {c: [321]}}}}}}}}}
|
|
}},
|
|
0x54: {
|
|
l: {0x3B: {c: [60]}},
|
|
c: [60]
|
|
},
|
|
0x74: {l: {0x3B: {c: [8810]}}}
|
|
}},
|
|
0x6D: {l: {
|
|
0x61: {l: {
|
|
0x63: {l: {0x72: {
|
|
l: {0x3B: {c: [175]}},
|
|
c: [175]
|
|
}}},
|
|
0x6C: {l: {
|
|
0x65: {l: {0x3B: {c: [9794]}}},
|
|
0x74: {l: {
|
|
0x3B: {c: [10016]},
|
|
0x65: {l: {0x73: {l: {0x65: {l: {0x3B: {c: [10016]}}}}}}}
|
|
}}
|
|
}},
|
|
0x70: {l: {
|
|
0x3B: {c: [8614]},
|
|
0x73: {l: {0x74: {l: {0x6F: {l: {
|
|
0x3B: {c: [8614]},
|
|
0x64: {l: {0x6F: {l: {0x77: {l: {0x6E: {l: {0x3B: {c: [8615]}}}}}}}}},
|
|
0x6C: {l: {0x65: {l: {0x66: {l: {0x74: {l: {0x3B: {c: [8612]}}}}}}}}},
|
|
0x75: {l: {0x70: {l: {0x3B: {c: [8613]}}}}}
|
|
}}}}}}
|
|
}},
|
|
0x72: {l: {0x6B: {l: {0x65: {l: {0x72: {l: {0x3B: {c: [9646]}}}}}}}}}
|
|
}},
|
|
0x63: {l: {
|
|
0x6F: {l: {0x6D: {l: {0x6D: {l: {0x61: {l: {0x3B: {c: [10793]}}}}}}}}},
|
|
0x79: {l: {0x3B: {c: [1084]}}}
|
|
}},
|
|
0x64: {l: {0x61: {l: {0x73: {l: {0x68: {l: {0x3B: {c: [8212]}}}}}}}}},
|
|
0x44: {l: {0x44: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [8762]}}}}}}}}},
|
|
0x65: {l: {0x61: {l: {0x73: {l: {0x75: {l: {0x72: {l: {0x65: {l: {0x64: {l: {0x61: {l: {0x6E: {l: {0x67: {l: {0x6C: {l: {0x65: {l: {0x3B: {c: [8737]}}}}}}}}}}}}}}}}}}}}}}}}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120106]}}}}},
|
|
0x68: {l: {0x6F: {l: {0x3B: {c: [8487]}}}}},
|
|
0x69: {l: {
|
|
0x63: {l: {0x72: {l: {0x6F: {
|
|
l: {0x3B: {c: [181]}},
|
|
c: [181]
|
|
}}}}},
|
|
0x64: {l: {
|
|
0x61: {l: {0x73: {l: {0x74: {l: {0x3B: {c: [42]}}}}}}},
|
|
0x63: {l: {0x69: {l: {0x72: {l: {0x3B: {c: [10992]}}}}}}},
|
|
0x3B: {c: [8739]},
|
|
0x64: {l: {0x6F: {l: {0x74: {
|
|
l: {0x3B: {c: [183]}},
|
|
c: [183]
|
|
}}}}}
|
|
}},
|
|
0x6E: {l: {0x75: {l: {0x73: {l: {
|
|
0x62: {l: {0x3B: {c: [8863]}}},
|
|
0x3B: {c: [8722]},
|
|
0x64: {l: {
|
|
0x3B: {c: [8760]},
|
|
0x75: {l: {0x3B: {c: [10794]}}}
|
|
}}
|
|
}}}}}}
|
|
}},
|
|
0x6C: {l: {
|
|
0x63: {l: {0x70: {l: {0x3B: {c: [10971]}}}}},
|
|
0x64: {l: {0x72: {l: {0x3B: {c: [8230]}}}}}
|
|
}},
|
|
0x6E: {l: {0x70: {l: {0x6C: {l: {0x75: {l: {0x73: {l: {0x3B: {c: [8723]}}}}}}}}}}},
|
|
0x6F: {l: {
|
|
0x64: {l: {0x65: {l: {0x6C: {l: {0x73: {l: {0x3B: {c: [8871]}}}}}}}}},
|
|
0x70: {l: {0x66: {l: {0x3B: {c: [120158]}}}}}
|
|
}},
|
|
0x70: {l: {0x3B: {c: [8723]}}},
|
|
0x73: {l: {
|
|
0x63: {l: {0x72: {l: {0x3B: {c: [120002]}}}}},
|
|
0x74: {l: {0x70: {l: {0x6F: {l: {0x73: {l: {0x3B: {c: [8766]}}}}}}}}}
|
|
}},
|
|
0x75: {l: {
|
|
0x3B: {c: [956]},
|
|
0x6C: {l: {0x74: {l: {0x69: {l: {0x6D: {l: {0x61: {l: {0x70: {l: {0x3B: {c: [8888]}}}}}}}}}}}}},
|
|
0x6D: {l: {0x61: {l: {0x70: {l: {0x3B: {c: [8888]}}}}}}}
|
|
}}
|
|
}},
|
|
0x4D: {l: {
|
|
0x61: {l: {0x70: {l: {0x3B: {c: [10501]}}}}},
|
|
0x63: {l: {0x79: {l: {0x3B: {c: [1052]}}}}},
|
|
0x65: {l: {
|
|
0x64: {l: {0x69: {l: {0x75: {l: {0x6D: {l: {0x53: {l: {0x70: {l: {0x61: {l: {0x63: {l: {0x65: {l: {0x3B: {c: [8287]}}}}}}}}}}}}}}}}}}},
|
|
0x6C: {l: {0x6C: {l: {0x69: {l: {0x6E: {l: {0x74: {l: {0x72: {l: {0x66: {l: {0x3B: {c: [8499]}}}}}}}}}}}}}}}
|
|
}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120080]}}}}},
|
|
0x69: {l: {0x6E: {l: {0x75: {l: {0x73: {l: {0x50: {l: {0x6C: {l: {0x75: {l: {0x73: {l: {0x3B: {c: [8723]}}}}}}}}}}}}}}}}},
|
|
0x6F: {l: {0x70: {l: {0x66: {l: {0x3B: {c: [120132]}}}}}}},
|
|
0x73: {l: {0x63: {l: {0x72: {l: {0x3B: {c: [8499]}}}}}}},
|
|
0x75: {l: {0x3B: {c: [924]}}}
|
|
}},
|
|
0x6E: {l: {
|
|
0x61: {l: {
|
|
0x62: {l: {0x6C: {l: {0x61: {l: {0x3B: {c: [8711]}}}}}}},
|
|
0x63: {l: {0x75: {l: {0x74: {l: {0x65: {l: {0x3B: {c: [324]}}}}}}}}},
|
|
0x6E: {l: {0x67: {l: {0x3B: {c: [8736, 8402]}}}}},
|
|
0x70: {l: {
|
|
0x3B: {c: [8777]},
|
|
0x45: {l: {0x3B: {c: [10864, 824]}}},
|
|
0x69: {l: {0x64: {l: {0x3B: {c: [8779, 824]}}}}},
|
|
0x6F: {l: {0x73: {l: {0x3B: {c: [329]}}}}},
|
|
0x70: {l: {0x72: {l: {0x6F: {l: {0x78: {l: {0x3B: {c: [8777]}}}}}}}}}
|
|
}},
|
|
0x74: {l: {0x75: {l: {0x72: {l: {
|
|
0x61: {l: {0x6C: {l: {
|
|
0x3B: {c: [9838]},
|
|
0x73: {l: {0x3B: {c: [8469]}}}
|
|
}}}},
|
|
0x3B: {c: [9838]}
|
|
}}}}}}
|
|
}},
|
|
0x62: {l: {
|
|
0x73: {l: {0x70: {
|
|
l: {0x3B: {c: [160]}},
|
|
c: [160]
|
|
}}},
|
|
0x75: {l: {0x6D: {l: {0x70: {l: {
|
|
0x3B: {c: [8782, 824]},
|
|
0x65: {l: {0x3B: {c: [8783, 824]}}}
|
|
}}}}}}
|
|
}},
|
|
0x63: {l: {
|
|
0x61: {l: {
|
|
0x70: {l: {0x3B: {c: [10819]}}},
|
|
0x72: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [328]}}}}}}}
|
|
}},
|
|
0x65: {l: {0x64: {l: {0x69: {l: {0x6C: {l: {0x3B: {c: [326]}}}}}}}}},
|
|
0x6F: {l: {0x6E: {l: {0x67: {l: {
|
|
0x3B: {c: [8775]},
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [10861, 824]}}}}}}}
|
|
}}}}}},
|
|
0x75: {l: {0x70: {l: {0x3B: {c: [10818]}}}}},
|
|
0x79: {l: {0x3B: {c: [1085]}}}
|
|
}},
|
|
0x64: {l: {0x61: {l: {0x73: {l: {0x68: {l: {0x3B: {c: [8211]}}}}}}}}},
|
|
0x65: {l: {
|
|
0x61: {l: {0x72: {l: {
|
|
0x68: {l: {0x6B: {l: {0x3B: {c: [10532]}}}}},
|
|
0x72: {l: {
|
|
0x3B: {c: [8599]},
|
|
0x6F: {l: {0x77: {l: {0x3B: {c: [8599]}}}}}
|
|
}}
|
|
}}}},
|
|
0x41: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [8663]}}}}}}},
|
|
0x3B: {c: [8800]},
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [8784, 824]}}}}}}},
|
|
0x71: {l: {0x75: {l: {0x69: {l: {0x76: {l: {0x3B: {c: [8802]}}}}}}}}},
|
|
0x73: {l: {
|
|
0x65: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [10536]}}}}}}},
|
|
0x69: {l: {0x6D: {l: {0x3B: {c: [8770, 824]}}}}}
|
|
}},
|
|
0x78: {l: {0x69: {l: {0x73: {l: {0x74: {l: {
|
|
0x3B: {c: [8708]},
|
|
0x73: {l: {0x3B: {c: [8708]}}}
|
|
}}}}}}}}
|
|
}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120107]}}}}},
|
|
0x67: {l: {
|
|
0x45: {l: {0x3B: {c: [8807, 824]}}},
|
|
0x65: {l: {
|
|
0x3B: {c: [8817]},
|
|
0x71: {l: {
|
|
0x3B: {c: [8817]},
|
|
0x71: {l: {0x3B: {c: [8807, 824]}}},
|
|
0x73: {l: {0x6C: {l: {0x61: {l: {0x6E: {l: {0x74: {l: {0x3B: {c: [10878, 824]}}}}}}}}}}}
|
|
}},
|
|
0x73: {l: {0x3B: {c: [10878, 824]}}}
|
|
}},
|
|
0x73: {l: {0x69: {l: {0x6D: {l: {0x3B: {c: [8821]}}}}}}},
|
|
0x74: {l: {
|
|
0x3B: {c: [8815]},
|
|
0x72: {l: {0x3B: {c: [8815]}}}
|
|
}}
|
|
}},
|
|
0x47: {l: {
|
|
0x67: {l: {0x3B: {c: [8921, 824]}}},
|
|
0x74: {l: {
|
|
0x3B: {c: [8811, 8402]},
|
|
0x76: {l: {0x3B: {c: [8811, 824]}}}
|
|
}}
|
|
}},
|
|
0x68: {l: {
|
|
0x61: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [8622]}}}}}}},
|
|
0x41: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [8654]}}}}}}},
|
|
0x70: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [10994]}}}}}}}
|
|
}},
|
|
0x69: {l: {
|
|
0x3B: {c: [8715]},
|
|
0x73: {l: {
|
|
0x3B: {c: [8956]},
|
|
0x64: {l: {0x3B: {c: [8954]}}}
|
|
}},
|
|
0x76: {l: {0x3B: {c: [8715]}}}
|
|
}},
|
|
0x6A: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1114]}}}}}}},
|
|
0x6C: {l: {
|
|
0x61: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [8602]}}}}}}},
|
|
0x41: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [8653]}}}}}}},
|
|
0x64: {l: {0x72: {l: {0x3B: {c: [8229]}}}}},
|
|
0x45: {l: {0x3B: {c: [8806, 824]}}},
|
|
0x65: {l: {
|
|
0x3B: {c: [8816]},
|
|
0x66: {l: {0x74: {l: {
|
|
0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8602]}}}}}}}}}}},
|
|
0x72: {l: {0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8622]}}}}}}}}}}}}}}}}}}}}}
|
|
}}}},
|
|
0x71: {l: {
|
|
0x3B: {c: [8816]},
|
|
0x71: {l: {0x3B: {c: [8806, 824]}}},
|
|
0x73: {l: {0x6C: {l: {0x61: {l: {0x6E: {l: {0x74: {l: {0x3B: {c: [10877, 824]}}}}}}}}}}}
|
|
}},
|
|
0x73: {l: {
|
|
0x3B: {c: [10877, 824]},
|
|
0x73: {l: {0x3B: {c: [8814]}}}
|
|
}}
|
|
}},
|
|
0x73: {l: {0x69: {l: {0x6D: {l: {0x3B: {c: [8820]}}}}}}},
|
|
0x74: {l: {
|
|
0x3B: {c: [8814]},
|
|
0x72: {l: {0x69: {l: {
|
|
0x3B: {c: [8938]},
|
|
0x65: {l: {0x3B: {c: [8940]}}}
|
|
}}}}
|
|
}}
|
|
}},
|
|
0x4C: {l: {
|
|
0x65: {l: {0x66: {l: {0x74: {l: {
|
|
0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8653]}}}}}}}}}}},
|
|
0x72: {l: {0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8654]}}}}}}}}}}}}}}}}}}}}}
|
|
}}}}}},
|
|
0x6C: {l: {0x3B: {c: [8920, 824]}}},
|
|
0x74: {l: {
|
|
0x3B: {c: [8810, 8402]},
|
|
0x76: {l: {0x3B: {c: [8810, 824]}}}
|
|
}}
|
|
}},
|
|
0x6D: {l: {0x69: {l: {0x64: {l: {0x3B: {c: [8740]}}}}}}},
|
|
0x6F: {l: {
|
|
0x70: {l: {0x66: {l: {0x3B: {c: [120159]}}}}},
|
|
0x74: {
|
|
l: {
|
|
0x3B: {c: [172]},
|
|
0x69: {l: {0x6E: {l: {
|
|
0x3B: {c: [8713]},
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [8949, 824]}}}}}}},
|
|
0x45: {l: {0x3B: {c: [8953, 824]}}},
|
|
0x76: {l: {
|
|
0x61: {l: {0x3B: {c: [8713]}}},
|
|
0x62: {l: {0x3B: {c: [8951]}}},
|
|
0x63: {l: {0x3B: {c: [8950]}}}
|
|
}}
|
|
}}}},
|
|
0x6E: {l: {0x69: {l: {
|
|
0x3B: {c: [8716]},
|
|
0x76: {l: {
|
|
0x61: {l: {0x3B: {c: [8716]}}},
|
|
0x62: {l: {0x3B: {c: [8958]}}},
|
|
0x63: {l: {0x3B: {c: [8957]}}}
|
|
}}
|
|
}}}}
|
|
},
|
|
c: [172]
|
|
}
|
|
}},
|
|
0x70: {l: {
|
|
0x61: {l: {0x72: {l: {
|
|
0x61: {l: {0x6C: {l: {0x6C: {l: {0x65: {l: {0x6C: {l: {0x3B: {c: [8742]}}}}}}}}}}},
|
|
0x3B: {c: [8742]},
|
|
0x73: {l: {0x6C: {l: {0x3B: {c: [11005, 8421]}}}}},
|
|
0x74: {l: {0x3B: {c: [8706, 824]}}}
|
|
}}}},
|
|
0x6F: {l: {0x6C: {l: {0x69: {l: {0x6E: {l: {0x74: {l: {0x3B: {c: [10772]}}}}}}}}}}},
|
|
0x72: {l: {
|
|
0x3B: {c: [8832]},
|
|
0x63: {l: {0x75: {l: {0x65: {l: {0x3B: {c: [8928]}}}}}}},
|
|
0x65: {l: {
|
|
0x63: {l: {
|
|
0x3B: {c: [8832]},
|
|
0x65: {l: {0x71: {l: {0x3B: {c: [10927, 824]}}}}}
|
|
}},
|
|
0x3B: {c: [10927, 824]}
|
|
}}
|
|
}}
|
|
}},
|
|
0x72: {l: {
|
|
0x61: {l: {0x72: {l: {0x72: {l: {
|
|
0x63: {l: {0x3B: {c: [10547, 824]}}},
|
|
0x3B: {c: [8603]},
|
|
0x77: {l: {0x3B: {c: [8605, 824]}}}
|
|
}}}}}},
|
|
0x41: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [8655]}}}}}}},
|
|
0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8603]}}}}}}}}}}}}}}}}}}},
|
|
0x74: {l: {0x72: {l: {0x69: {l: {
|
|
0x3B: {c: [8939]},
|
|
0x65: {l: {0x3B: {c: [8941]}}}
|
|
}}}}}}
|
|
}},
|
|
0x52: {l: {0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8655]}}}}}}}}}}}}}}}}}}}}},
|
|
0x73: {l: {
|
|
0x63: {l: {
|
|
0x3B: {c: [8833]},
|
|
0x63: {l: {0x75: {l: {0x65: {l: {0x3B: {c: [8929]}}}}}}},
|
|
0x65: {l: {0x3B: {c: [10928, 824]}}},
|
|
0x72: {l: {0x3B: {c: [120003]}}}
|
|
}},
|
|
0x68: {l: {0x6F: {l: {0x72: {l: {0x74: {l: {
|
|
0x6D: {l: {0x69: {l: {0x64: {l: {0x3B: {c: [8740]}}}}}}},
|
|
0x70: {l: {0x61: {l: {0x72: {l: {0x61: {l: {0x6C: {l: {0x6C: {l: {0x65: {l: {0x6C: {l: {0x3B: {c: [8742]}}}}}}}}}}}}}}}}}
|
|
}}}}}}}},
|
|
0x69: {l: {0x6D: {l: {
|
|
0x3B: {c: [8769]},
|
|
0x65: {l: {
|
|
0x3B: {c: [8772]},
|
|
0x71: {l: {0x3B: {c: [8772]}}}
|
|
}}
|
|
}}}},
|
|
0x6D: {l: {0x69: {l: {0x64: {l: {0x3B: {c: [8740]}}}}}}},
|
|
0x70: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [8742]}}}}}}},
|
|
0x71: {l: {0x73: {l: {0x75: {l: {
|
|
0x62: {l: {0x65: {l: {0x3B: {c: [8930]}}}}},
|
|
0x70: {l: {0x65: {l: {0x3B: {c: [8931]}}}}}
|
|
}}}}}},
|
|
0x75: {l: {
|
|
0x62: {l: {
|
|
0x3B: {c: [8836]},
|
|
0x45: {l: {0x3B: {c: [10949, 824]}}},
|
|
0x65: {l: {0x3B: {c: [8840]}}},
|
|
0x73: {l: {0x65: {l: {0x74: {l: {
|
|
0x3B: {c: [8834, 8402]},
|
|
0x65: {l: {0x71: {l: {
|
|
0x3B: {c: [8840]},
|
|
0x71: {l: {0x3B: {c: [10949, 824]}}}
|
|
}}}}
|
|
}}}}}}
|
|
}},
|
|
0x63: {l: {0x63: {l: {
|
|
0x3B: {c: [8833]},
|
|
0x65: {l: {0x71: {l: {0x3B: {c: [10928, 824]}}}}}
|
|
}}}},
|
|
0x70: {l: {
|
|
0x3B: {c: [8837]},
|
|
0x45: {l: {0x3B: {c: [10950, 824]}}},
|
|
0x65: {l: {0x3B: {c: [8841]}}},
|
|
0x73: {l: {0x65: {l: {0x74: {l: {
|
|
0x3B: {c: [8835, 8402]},
|
|
0x65: {l: {0x71: {l: {
|
|
0x3B: {c: [8841]},
|
|
0x71: {l: {0x3B: {c: [10950, 824]}}}
|
|
}}}}
|
|
}}}}}}
|
|
}}
|
|
}}
|
|
}},
|
|
0x74: {l: {
|
|
0x67: {l: {0x6C: {l: {0x3B: {c: [8825]}}}}},
|
|
0x69: {l: {0x6C: {l: {0x64: {l: {0x65: {
|
|
l: {0x3B: {c: [241]}},
|
|
c: [241]
|
|
}}}}}}},
|
|
0x6C: {l: {0x67: {l: {0x3B: {c: [8824]}}}}},
|
|
0x72: {l: {0x69: {l: {0x61: {l: {0x6E: {l: {0x67: {l: {0x6C: {l: {0x65: {l: {
|
|
0x6C: {l: {0x65: {l: {0x66: {l: {0x74: {l: {
|
|
0x3B: {c: [8938]},
|
|
0x65: {l: {0x71: {l: {0x3B: {c: [8940]}}}}}
|
|
}}}}}}}},
|
|
0x72: {l: {0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {
|
|
0x3B: {c: [8939]},
|
|
0x65: {l: {0x71: {l: {0x3B: {c: [8941]}}}}}
|
|
}}}}}}}}}}
|
|
}}}}}}}}}}}}}}
|
|
}},
|
|
0x75: {l: {
|
|
0x3B: {c: [957]},
|
|
0x6D: {l: {
|
|
0x3B: {c: [35]},
|
|
0x65: {l: {0x72: {l: {0x6F: {l: {0x3B: {c: [8470]}}}}}}},
|
|
0x73: {l: {0x70: {l: {0x3B: {c: [8199]}}}}}
|
|
}}
|
|
}},
|
|
0x76: {l: {
|
|
0x61: {l: {0x70: {l: {0x3B: {c: [8781, 8402]}}}}},
|
|
0x64: {l: {0x61: {l: {0x73: {l: {0x68: {l: {0x3B: {c: [8876]}}}}}}}}},
|
|
0x44: {l: {0x61: {l: {0x73: {l: {0x68: {l: {0x3B: {c: [8877]}}}}}}}}},
|
|
0x67: {l: {
|
|
0x65: {l: {0x3B: {c: [8805, 8402]}}},
|
|
0x74: {l: {0x3B: {c: [62, 8402]}}}
|
|
}},
|
|
0x48: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [10500]}}}}}}}}},
|
|
0x69: {l: {0x6E: {l: {0x66: {l: {0x69: {l: {0x6E: {l: {0x3B: {c: [10718]}}}}}}}}}}},
|
|
0x6C: {l: {
|
|
0x41: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [10498]}}}}}}},
|
|
0x65: {l: {0x3B: {c: [8804, 8402]}}},
|
|
0x74: {l: {
|
|
0x3B: {c: [60, 8402]},
|
|
0x72: {l: {0x69: {l: {0x65: {l: {0x3B: {c: [8884, 8402]}}}}}}}
|
|
}}
|
|
}},
|
|
0x72: {l: {
|
|
0x41: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [10499]}}}}}}},
|
|
0x74: {l: {0x72: {l: {0x69: {l: {0x65: {l: {0x3B: {c: [8885, 8402]}}}}}}}}}
|
|
}},
|
|
0x73: {l: {0x69: {l: {0x6D: {l: {0x3B: {c: [8764, 8402]}}}}}}}
|
|
}},
|
|
0x56: {l: {
|
|
0x64: {l: {0x61: {l: {0x73: {l: {0x68: {l: {0x3B: {c: [8878]}}}}}}}}},
|
|
0x44: {l: {0x61: {l: {0x73: {l: {0x68: {l: {0x3B: {c: [8879]}}}}}}}}}
|
|
}},
|
|
0x77: {l: {
|
|
0x61: {l: {0x72: {l: {
|
|
0x68: {l: {0x6B: {l: {0x3B: {c: [10531]}}}}},
|
|
0x72: {l: {
|
|
0x3B: {c: [8598]},
|
|
0x6F: {l: {0x77: {l: {0x3B: {c: [8598]}}}}}
|
|
}}
|
|
}}}},
|
|
0x41: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [8662]}}}}}}},
|
|
0x6E: {l: {0x65: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [10535]}}}}}}}}}
|
|
}}
|
|
}},
|
|
0x4E: {l: {
|
|
0x61: {l: {0x63: {l: {0x75: {l: {0x74: {l: {0x65: {l: {0x3B: {c: [323]}}}}}}}}}}},
|
|
0x63: {l: {
|
|
0x61: {l: {0x72: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [327]}}}}}}}}},
|
|
0x65: {l: {0x64: {l: {0x69: {l: {0x6C: {l: {0x3B: {c: [325]}}}}}}}}},
|
|
0x79: {l: {0x3B: {c: [1053]}}}
|
|
}},
|
|
0x65: {l: {
|
|
0x67: {l: {0x61: {l: {0x74: {l: {0x69: {l: {0x76: {l: {0x65: {l: {
|
|
0x4D: {l: {0x65: {l: {0x64: {l: {0x69: {l: {0x75: {l: {0x6D: {l: {0x53: {l: {0x70: {l: {0x61: {l: {0x63: {l: {0x65: {l: {0x3B: {c: [8203]}}}}}}}}}}}}}}}}}}}}}}},
|
|
0x54: {l: {0x68: {l: {0x69: {l: {
|
|
0x63: {l: {0x6B: {l: {0x53: {l: {0x70: {l: {0x61: {l: {0x63: {l: {0x65: {l: {0x3B: {c: [8203]}}}}}}}}}}}}}}},
|
|
0x6E: {l: {0x53: {l: {0x70: {l: {0x61: {l: {0x63: {l: {0x65: {l: {0x3B: {c: [8203]}}}}}}}}}}}}}
|
|
}}}}}},
|
|
0x56: {l: {0x65: {l: {0x72: {l: {0x79: {l: {0x54: {l: {0x68: {l: {0x69: {l: {0x6E: {l: {0x53: {l: {0x70: {l: {0x61: {l: {0x63: {l: {0x65: {l: {0x3B: {c: [8203]}}}}}}}}}}}}}}}}}}}}}}}}}}}
|
|
}}}}}}}}}}}},
|
|
0x73: {l: {0x74: {l: {0x65: {l: {0x64: {l: {
|
|
0x47: {l: {0x72: {l: {0x65: {l: {0x61: {l: {0x74: {l: {0x65: {l: {0x72: {l: {0x47: {l: {0x72: {l: {0x65: {l: {0x61: {l: {0x74: {l: {0x65: {l: {0x72: {l: {0x3B: {c: [8811]}}}}}}}}}}}}}}}}}}}}}}}}}}}}},
|
|
0x4C: {l: {0x65: {l: {0x73: {l: {0x73: {l: {0x4C: {l: {0x65: {l: {0x73: {l: {0x73: {l: {0x3B: {c: [8810]}}}}}}}}}}}}}}}}}
|
|
}}}}}}}},
|
|
0x77: {l: {0x4C: {l: {0x69: {l: {0x6E: {l: {0x65: {l: {0x3B: {c: [10]}}}}}}}}}}}
|
|
}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120081]}}}}},
|
|
0x4A: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1034]}}}}}}},
|
|
0x6F: {l: {
|
|
0x42: {l: {0x72: {l: {0x65: {l: {0x61: {l: {0x6B: {l: {0x3B: {c: [8288]}}}}}}}}}}},
|
|
0x6E: {l: {0x42: {l: {0x72: {l: {0x65: {l: {0x61: {l: {0x6B: {l: {0x69: {l: {0x6E: {l: {0x67: {l: {0x53: {l: {0x70: {l: {0x61: {l: {0x63: {l: {0x65: {l: {0x3B: {c: [160]}}}}}}}}}}}}}}}}}}}}}}}}}}}}},
|
|
0x70: {l: {0x66: {l: {0x3B: {c: [8469]}}}}},
|
|
0x74: {l: {
|
|
0x3B: {c: [10988]},
|
|
0x43: {l: {
|
|
0x6F: {l: {0x6E: {l: {0x67: {l: {0x72: {l: {0x75: {l: {0x65: {l: {0x6E: {l: {0x74: {l: {0x3B: {c: [8802]}}}}}}}}}}}}}}}}},
|
|
0x75: {l: {0x70: {l: {0x43: {l: {0x61: {l: {0x70: {l: {0x3B: {c: [8813]}}}}}}}}}}}
|
|
}},
|
|
0x44: {l: {0x6F: {l: {0x75: {l: {0x62: {l: {0x6C: {l: {0x65: {l: {0x56: {l: {0x65: {l: {0x72: {l: {0x74: {l: {0x69: {l: {0x63: {l: {0x61: {l: {0x6C: {l: {0x42: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [8742]}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},
|
|
0x45: {l: {
|
|
0x6C: {l: {0x65: {l: {0x6D: {l: {0x65: {l: {0x6E: {l: {0x74: {l: {0x3B: {c: [8713]}}}}}}}}}}}}},
|
|
0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {
|
|
0x3B: {c: [8800]},
|
|
0x54: {l: {0x69: {l: {0x6C: {l: {0x64: {l: {0x65: {l: {0x3B: {c: [8770, 824]}}}}}}}}}}}
|
|
}}}}}}}},
|
|
0x78: {l: {0x69: {l: {0x73: {l: {0x74: {l: {0x73: {l: {0x3B: {c: [8708]}}}}}}}}}}}
|
|
}},
|
|
0x47: {l: {0x72: {l: {0x65: {l: {0x61: {l: {0x74: {l: {0x65: {l: {0x72: {l: {
|
|
0x3B: {c: [8815]},
|
|
0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [8817]}}}}}}}}}}},
|
|
0x46: {l: {0x75: {l: {0x6C: {l: {0x6C: {l: {0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [8807, 824]}}}}}}}}}}}}}}}}}}},
|
|
0x47: {l: {0x72: {l: {0x65: {l: {0x61: {l: {0x74: {l: {0x65: {l: {0x72: {l: {0x3B: {c: [8811, 824]}}}}}}}}}}}}}}},
|
|
0x4C: {l: {0x65: {l: {0x73: {l: {0x73: {l: {0x3B: {c: [8825]}}}}}}}}},
|
|
0x53: {l: {0x6C: {l: {0x61: {l: {0x6E: {l: {0x74: {l: {0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [10878, 824]}}}}}}}}}}}}}}}}}}}}},
|
|
0x54: {l: {0x69: {l: {0x6C: {l: {0x64: {l: {0x65: {l: {0x3B: {c: [8821]}}}}}}}}}}}
|
|
}}}}}}}}}}}}}},
|
|
0x48: {l: {0x75: {l: {0x6D: {l: {0x70: {l: {
|
|
0x44: {l: {0x6F: {l: {0x77: {l: {0x6E: {l: {0x48: {l: {0x75: {l: {0x6D: {l: {0x70: {l: {0x3B: {c: [8782, 824]}}}}}}}}}}}}}}}}},
|
|
0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [8783, 824]}}}}}}}}}}}
|
|
}}}}}}}},
|
|
0x4C: {l: {0x65: {l: {
|
|
0x66: {l: {0x74: {l: {0x54: {l: {0x72: {l: {0x69: {l: {0x61: {l: {0x6E: {l: {0x67: {l: {0x6C: {l: {0x65: {l: {
|
|
0x42: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [10703, 824]}}}}}}},
|
|
0x3B: {c: [8938]},
|
|
0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [8940]}}}}}}}}}}}
|
|
}}}}}}}}}}}}}}}}}}}},
|
|
0x73: {l: {0x73: {l: {
|
|
0x3B: {c: [8814]},
|
|
0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [8816]}}}}}}}}}}},
|
|
0x47: {l: {0x72: {l: {0x65: {l: {0x61: {l: {0x74: {l: {0x65: {l: {0x72: {l: {0x3B: {c: [8824]}}}}}}}}}}}}}}},
|
|
0x4C: {l: {0x65: {l: {0x73: {l: {0x73: {l: {0x3B: {c: [8810, 824]}}}}}}}}},
|
|
0x53: {l: {0x6C: {l: {0x61: {l: {0x6E: {l: {0x74: {l: {0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [10877, 824]}}}}}}}}}}}}}}}}}}}}},
|
|
0x54: {l: {0x69: {l: {0x6C: {l: {0x64: {l: {0x65: {l: {0x3B: {c: [8820]}}}}}}}}}}}
|
|
}}}}
|
|
}}}},
|
|
0x4E: {l: {0x65: {l: {0x73: {l: {0x74: {l: {0x65: {l: {0x64: {l: {
|
|
0x47: {l: {0x72: {l: {0x65: {l: {0x61: {l: {0x74: {l: {0x65: {l: {0x72: {l: {0x47: {l: {0x72: {l: {0x65: {l: {0x61: {l: {0x74: {l: {0x65: {l: {0x72: {l: {0x3B: {c: [10914, 824]}}}}}}}}}}}}}}}}}}}}}}}}}}}}},
|
|
0x4C: {l: {0x65: {l: {0x73: {l: {0x73: {l: {0x4C: {l: {0x65: {l: {0x73: {l: {0x73: {l: {0x3B: {c: [10913, 824]}}}}}}}}}}}}}}}}}
|
|
}}}}}}}}}}}},
|
|
0x50: {l: {0x72: {l: {0x65: {l: {0x63: {l: {0x65: {l: {0x64: {l: {0x65: {l: {0x73: {l: {
|
|
0x3B: {c: [8832]},
|
|
0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [10927, 824]}}}}}}}}}}},
|
|
0x53: {l: {0x6C: {l: {0x61: {l: {0x6E: {l: {0x74: {l: {0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [8928]}}}}}}}}}}}}}}}}}}}}}
|
|
}}}}}}}}}}}}}}}},
|
|
0x52: {l: {
|
|
0x65: {l: {0x76: {l: {0x65: {l: {0x72: {l: {0x73: {l: {0x65: {l: {0x45: {l: {0x6C: {l: {0x65: {l: {0x6D: {l: {0x65: {l: {0x6E: {l: {0x74: {l: {0x3B: {c: [8716]}}}}}}}}}}}}}}}}}}}}}}}}}}},
|
|
0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {0x54: {l: {0x72: {l: {0x69: {l: {0x61: {l: {0x6E: {l: {0x67: {l: {0x6C: {l: {0x65: {l: {
|
|
0x42: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [10704, 824]}}}}}}},
|
|
0x3B: {c: [8939]},
|
|
0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [8941]}}}}}}}}}}}
|
|
}}}}}}}}}}}}}}}}}}}}}}}}
|
|
}},
|
|
0x53: {l: {
|
|
0x71: {l: {0x75: {l: {0x61: {l: {0x72: {l: {0x65: {l: {0x53: {l: {0x75: {l: {
|
|
0x62: {l: {0x73: {l: {0x65: {l: {0x74: {l: {
|
|
0x3B: {c: [8847, 824]},
|
|
0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [8930]}}}}}}}}}}}
|
|
}}}}}}}},
|
|
0x70: {l: {0x65: {l: {0x72: {l: {0x73: {l: {0x65: {l: {0x74: {l: {
|
|
0x3B: {c: [8848, 824]},
|
|
0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [8931]}}}}}}}}}}}
|
|
}}}}}}}}}}}}
|
|
}}}}}}}}}}}}}},
|
|
0x75: {l: {
|
|
0x62: {l: {0x73: {l: {0x65: {l: {0x74: {l: {
|
|
0x3B: {c: [8834, 8402]},
|
|
0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [8840]}}}}}}}}}}}
|
|
}}}}}}}},
|
|
0x63: {l: {0x63: {l: {0x65: {l: {0x65: {l: {0x64: {l: {0x73: {l: {
|
|
0x3B: {c: [8833]},
|
|
0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [10928, 824]}}}}}}}}}}},
|
|
0x53: {l: {0x6C: {l: {0x61: {l: {0x6E: {l: {0x74: {l: {0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [8929]}}}}}}}}}}}}}}}}}}}}},
|
|
0x54: {l: {0x69: {l: {0x6C: {l: {0x64: {l: {0x65: {l: {0x3B: {c: [8831, 824]}}}}}}}}}}}
|
|
}}}}}}}}}}}},
|
|
0x70: {l: {0x65: {l: {0x72: {l: {0x73: {l: {0x65: {l: {0x74: {l: {
|
|
0x3B: {c: [8835, 8402]},
|
|
0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [8841]}}}}}}}}}}}
|
|
}}}}}}}}}}}}
|
|
}}
|
|
}},
|
|
0x54: {l: {0x69: {l: {0x6C: {l: {0x64: {l: {0x65: {l: {
|
|
0x3B: {c: [8769]},
|
|
0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [8772]}}}}}}}}}}},
|
|
0x46: {l: {0x75: {l: {0x6C: {l: {0x6C: {l: {0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [8775]}}}}}}}}}}}}}}}}}}},
|
|
0x54: {l: {0x69: {l: {0x6C: {l: {0x64: {l: {0x65: {l: {0x3B: {c: [8777]}}}}}}}}}}}
|
|
}}}}}}}}}},
|
|
0x56: {l: {0x65: {l: {0x72: {l: {0x74: {l: {0x69: {l: {0x63: {l: {0x61: {l: {0x6C: {l: {0x42: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [8740]}}}}}}}}}}}}}}}}}}}}}}}
|
|
}}
|
|
}},
|
|
0x73: {l: {0x63: {l: {0x72: {l: {0x3B: {c: [119977]}}}}}}},
|
|
0x74: {l: {0x69: {l: {0x6C: {l: {0x64: {l: {0x65: {
|
|
l: {0x3B: {c: [209]}},
|
|
c: [209]
|
|
}}}}}}}}},
|
|
0x75: {l: {0x3B: {c: [925]}}}
|
|
}},
|
|
0x4F: {l: {
|
|
0x61: {l: {0x63: {l: {0x75: {l: {0x74: {l: {0x65: {
|
|
l: {0x3B: {c: [211]}},
|
|
c: [211]
|
|
}}}}}}}}},
|
|
0x63: {l: {
|
|
0x69: {l: {0x72: {l: {0x63: {
|
|
l: {0x3B: {c: [212]}},
|
|
c: [212]
|
|
}}}}},
|
|
0x79: {l: {0x3B: {c: [1054]}}}
|
|
}},
|
|
0x64: {l: {0x62: {l: {0x6C: {l: {0x61: {l: {0x63: {l: {0x3B: {c: [336]}}}}}}}}}}},
|
|
0x45: {l: {0x6C: {l: {0x69: {l: {0x67: {l: {0x3B: {c: [338]}}}}}}}}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120082]}}}}},
|
|
0x67: {l: {0x72: {l: {0x61: {l: {0x76: {l: {0x65: {
|
|
l: {0x3B: {c: [210]}},
|
|
c: [210]
|
|
}}}}}}}}},
|
|
0x6D: {l: {
|
|
0x61: {l: {0x63: {l: {0x72: {l: {0x3B: {c: [332]}}}}}}},
|
|
0x65: {l: {0x67: {l: {0x61: {l: {0x3B: {c: [937]}}}}}}},
|
|
0x69: {l: {0x63: {l: {0x72: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [927]}}}}}}}}}}}
|
|
}},
|
|
0x6F: {l: {0x70: {l: {0x66: {l: {0x3B: {c: [120134]}}}}}}},
|
|
0x70: {l: {0x65: {l: {0x6E: {l: {0x43: {l: {0x75: {l: {0x72: {l: {0x6C: {l: {0x79: {l: {
|
|
0x44: {l: {0x6F: {l: {0x75: {l: {0x62: {l: {0x6C: {l: {0x65: {l: {0x51: {l: {0x75: {l: {0x6F: {l: {0x74: {l: {0x65: {l: {0x3B: {c: [8220]}}}}}}}}}}}}}}}}}}}}}}},
|
|
0x51: {l: {0x75: {l: {0x6F: {l: {0x74: {l: {0x65: {l: {0x3B: {c: [8216]}}}}}}}}}}}
|
|
}}}}}}}}}}}}}}}},
|
|
0x72: {l: {0x3B: {c: [10836]}}},
|
|
0x73: {l: {
|
|
0x63: {l: {0x72: {l: {0x3B: {c: [119978]}}}}},
|
|
0x6C: {l: {0x61: {l: {0x73: {l: {0x68: {
|
|
l: {0x3B: {c: [216]}},
|
|
c: [216]
|
|
}}}}}}}
|
|
}},
|
|
0x74: {l: {0x69: {l: {
|
|
0x6C: {l: {0x64: {l: {0x65: {
|
|
l: {0x3B: {c: [213]}},
|
|
c: [213]
|
|
}}}}},
|
|
0x6D: {l: {0x65: {l: {0x73: {l: {0x3B: {c: [10807]}}}}}}}
|
|
}}}},
|
|
0x75: {l: {0x6D: {l: {0x6C: {
|
|
l: {0x3B: {c: [214]}},
|
|
c: [214]
|
|
}}}}},
|
|
0x76: {l: {0x65: {l: {0x72: {l: {
|
|
0x42: {l: {
|
|
0x61: {l: {0x72: {l: {0x3B: {c: [8254]}}}}},
|
|
0x72: {l: {0x61: {l: {0x63: {l: {
|
|
0x65: {l: {0x3B: {c: [9182]}}},
|
|
0x6B: {l: {0x65: {l: {0x74: {l: {0x3B: {c: [9140]}}}}}}}
|
|
}}}}}}
|
|
}},
|
|
0x50: {l: {0x61: {l: {0x72: {l: {0x65: {l: {0x6E: {l: {0x74: {l: {0x68: {l: {0x65: {l: {0x73: {l: {0x69: {l: {0x73: {l: {0x3B: {c: [9180]}}}}}}}}}}}}}}}}}}}}}}}
|
|
}}}}}}
|
|
}},
|
|
0x6F: {l: {
|
|
0x61: {l: {
|
|
0x63: {l: {0x75: {l: {0x74: {l: {0x65: {
|
|
l: {0x3B: {c: [243]}},
|
|
c: [243]
|
|
}}}}}}},
|
|
0x73: {l: {0x74: {l: {0x3B: {c: [8859]}}}}}
|
|
}},
|
|
0x63: {l: {
|
|
0x69: {l: {0x72: {l: {
|
|
0x63: {
|
|
l: {0x3B: {c: [244]}},
|
|
c: [244]
|
|
},
|
|
0x3B: {c: [8858]}
|
|
}}}},
|
|
0x79: {l: {0x3B: {c: [1086]}}}
|
|
}},
|
|
0x64: {l: {
|
|
0x61: {l: {0x73: {l: {0x68: {l: {0x3B: {c: [8861]}}}}}}},
|
|
0x62: {l: {0x6C: {l: {0x61: {l: {0x63: {l: {0x3B: {c: [337]}}}}}}}}},
|
|
0x69: {l: {0x76: {l: {0x3B: {c: [10808]}}}}},
|
|
0x6F: {l: {0x74: {l: {0x3B: {c: [8857]}}}}},
|
|
0x73: {l: {0x6F: {l: {0x6C: {l: {0x64: {l: {0x3B: {c: [10684]}}}}}}}}}
|
|
}},
|
|
0x65: {l: {0x6C: {l: {0x69: {l: {0x67: {l: {0x3B: {c: [339]}}}}}}}}},
|
|
0x66: {l: {
|
|
0x63: {l: {0x69: {l: {0x72: {l: {0x3B: {c: [10687]}}}}}}},
|
|
0x72: {l: {0x3B: {c: [120108]}}}
|
|
}},
|
|
0x67: {l: {
|
|
0x6F: {l: {0x6E: {l: {0x3B: {c: [731]}}}}},
|
|
0x72: {l: {0x61: {l: {0x76: {l: {0x65: {
|
|
l: {0x3B: {c: [242]}},
|
|
c: [242]
|
|
}}}}}}},
|
|
0x74: {l: {0x3B: {c: [10689]}}}
|
|
}},
|
|
0x68: {l: {
|
|
0x62: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [10677]}}}}}}},
|
|
0x6D: {l: {0x3B: {c: [937]}}}
|
|
}},
|
|
0x69: {l: {0x6E: {l: {0x74: {l: {0x3B: {c: [8750]}}}}}}},
|
|
0x6C: {l: {
|
|
0x61: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [8634]}}}}}}},
|
|
0x63: {l: {
|
|
0x69: {l: {0x72: {l: {0x3B: {c: [10686]}}}}},
|
|
0x72: {l: {0x6F: {l: {0x73: {l: {0x73: {l: {0x3B: {c: [10683]}}}}}}}}}
|
|
}},
|
|
0x69: {l: {0x6E: {l: {0x65: {l: {0x3B: {c: [8254]}}}}}}},
|
|
0x74: {l: {0x3B: {c: [10688]}}}
|
|
}},
|
|
0x6D: {l: {
|
|
0x61: {l: {0x63: {l: {0x72: {l: {0x3B: {c: [333]}}}}}}},
|
|
0x65: {l: {0x67: {l: {0x61: {l: {0x3B: {c: [969]}}}}}}},
|
|
0x69: {l: {
|
|
0x63: {l: {0x72: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [959]}}}}}}}}},
|
|
0x64: {l: {0x3B: {c: [10678]}}},
|
|
0x6E: {l: {0x75: {l: {0x73: {l: {0x3B: {c: [8854]}}}}}}}
|
|
}}
|
|
}},
|
|
0x6F: {l: {0x70: {l: {0x66: {l: {0x3B: {c: [120160]}}}}}}},
|
|
0x70: {l: {
|
|
0x61: {l: {0x72: {l: {0x3B: {c: [10679]}}}}},
|
|
0x65: {l: {0x72: {l: {0x70: {l: {0x3B: {c: [10681]}}}}}}},
|
|
0x6C: {l: {0x75: {l: {0x73: {l: {0x3B: {c: [8853]}}}}}}}
|
|
}},
|
|
0x72: {l: {
|
|
0x61: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [8635]}}}}}}},
|
|
0x3B: {c: [8744]},
|
|
0x64: {l: {
|
|
0x3B: {c: [10845]},
|
|
0x65: {l: {0x72: {l: {
|
|
0x3B: {c: [8500]},
|
|
0x6F: {l: {0x66: {l: {0x3B: {c: [8500]}}}}}
|
|
}}}},
|
|
0x66: {
|
|
l: {0x3B: {c: [170]}},
|
|
c: [170]
|
|
},
|
|
0x6D: {
|
|
l: {0x3B: {c: [186]}},
|
|
c: [186]
|
|
}
|
|
}},
|
|
0x69: {l: {0x67: {l: {0x6F: {l: {0x66: {l: {0x3B: {c: [8886]}}}}}}}}},
|
|
0x6F: {l: {0x72: {l: {0x3B: {c: [10838]}}}}},
|
|
0x73: {l: {0x6C: {l: {0x6F: {l: {0x70: {l: {0x65: {l: {0x3B: {c: [10839]}}}}}}}}}}},
|
|
0x76: {l: {0x3B: {c: [10843]}}}
|
|
}},
|
|
0x53: {l: {0x3B: {c: [9416]}}},
|
|
0x73: {l: {
|
|
0x63: {l: {0x72: {l: {0x3B: {c: [8500]}}}}},
|
|
0x6C: {l: {0x61: {l: {0x73: {l: {0x68: {
|
|
l: {0x3B: {c: [248]}},
|
|
c: [248]
|
|
}}}}}}},
|
|
0x6F: {l: {0x6C: {l: {0x3B: {c: [8856]}}}}}
|
|
}},
|
|
0x74: {l: {0x69: {l: {
|
|
0x6C: {l: {0x64: {l: {0x65: {
|
|
l: {0x3B: {c: [245]}},
|
|
c: [245]
|
|
}}}}},
|
|
0x6D: {l: {0x65: {l: {0x73: {l: {
|
|
0x61: {l: {0x73: {l: {0x3B: {c: [10806]}}}}},
|
|
0x3B: {c: [8855]}
|
|
}}}}}}
|
|
}}}},
|
|
0x75: {l: {0x6D: {l: {0x6C: {
|
|
l: {0x3B: {c: [246]}},
|
|
c: [246]
|
|
}}}}},
|
|
0x76: {l: {0x62: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [9021]}}}}}}}}}
|
|
}},
|
|
0x70: {l: {
|
|
0x61: {l: {0x72: {l: {
|
|
0x61: {
|
|
l: {
|
|
0x3B: {c: [182]},
|
|
0x6C: {l: {0x6C: {l: {0x65: {l: {0x6C: {l: {0x3B: {c: [8741]}}}}}}}}}
|
|
},
|
|
c: [182]
|
|
},
|
|
0x3B: {c: [8741]},
|
|
0x73: {l: {
|
|
0x69: {l: {0x6D: {l: {0x3B: {c: [10995]}}}}},
|
|
0x6C: {l: {0x3B: {c: [11005]}}}
|
|
}},
|
|
0x74: {l: {0x3B: {c: [8706]}}}
|
|
}}}},
|
|
0x63: {l: {0x79: {l: {0x3B: {c: [1087]}}}}},
|
|
0x65: {l: {0x72: {l: {
|
|
0x63: {l: {0x6E: {l: {0x74: {l: {0x3B: {c: [37]}}}}}}},
|
|
0x69: {l: {0x6F: {l: {0x64: {l: {0x3B: {c: [46]}}}}}}},
|
|
0x6D: {l: {0x69: {l: {0x6C: {l: {0x3B: {c: [8240]}}}}}}},
|
|
0x70: {l: {0x3B: {c: [8869]}}},
|
|
0x74: {l: {0x65: {l: {0x6E: {l: {0x6B: {l: {0x3B: {c: [8241]}}}}}}}}}
|
|
}}}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120109]}}}}},
|
|
0x68: {l: {
|
|
0x69: {l: {
|
|
0x3B: {c: [966]},
|
|
0x76: {l: {0x3B: {c: [981]}}}
|
|
}},
|
|
0x6D: {l: {0x6D: {l: {0x61: {l: {0x74: {l: {0x3B: {c: [8499]}}}}}}}}},
|
|
0x6F: {l: {0x6E: {l: {0x65: {l: {0x3B: {c: [9742]}}}}}}}
|
|
}},
|
|
0x69: {l: {
|
|
0x3B: {c: [960]},
|
|
0x74: {l: {0x63: {l: {0x68: {l: {0x66: {l: {0x6F: {l: {0x72: {l: {0x6B: {l: {0x3B: {c: [8916]}}}}}}}}}}}}}}},
|
|
0x76: {l: {0x3B: {c: [982]}}}
|
|
}},
|
|
0x6C: {l: {
|
|
0x61: {l: {0x6E: {l: {
|
|
0x63: {l: {0x6B: {l: {
|
|
0x3B: {c: [8463]},
|
|
0x68: {l: {0x3B: {c: [8462]}}}
|
|
}}}},
|
|
0x6B: {l: {0x76: {l: {0x3B: {c: [8463]}}}}}
|
|
}}}},
|
|
0x75: {l: {0x73: {l: {
|
|
0x61: {l: {0x63: {l: {0x69: {l: {0x72: {l: {0x3B: {c: [10787]}}}}}}}}},
|
|
0x62: {l: {0x3B: {c: [8862]}}},
|
|
0x63: {l: {0x69: {l: {0x72: {l: {0x3B: {c: [10786]}}}}}}},
|
|
0x3B: {c: [43]},
|
|
0x64: {l: {
|
|
0x6F: {l: {0x3B: {c: [8724]}}},
|
|
0x75: {l: {0x3B: {c: [10789]}}}
|
|
}},
|
|
0x65: {l: {0x3B: {c: [10866]}}},
|
|
0x6D: {l: {0x6E: {
|
|
l: {0x3B: {c: [177]}},
|
|
c: [177]
|
|
}}},
|
|
0x73: {l: {0x69: {l: {0x6D: {l: {0x3B: {c: [10790]}}}}}}},
|
|
0x74: {l: {0x77: {l: {0x6F: {l: {0x3B: {c: [10791]}}}}}}}
|
|
}}}}
|
|
}},
|
|
0x6D: {l: {0x3B: {c: [177]}}},
|
|
0x6F: {l: {
|
|
0x69: {l: {0x6E: {l: {0x74: {l: {0x69: {l: {0x6E: {l: {0x74: {l: {0x3B: {c: [10773]}}}}}}}}}}}}},
|
|
0x70: {l: {0x66: {l: {0x3B: {c: [120161]}}}}},
|
|
0x75: {l: {0x6E: {l: {0x64: {
|
|
l: {0x3B: {c: [163]}},
|
|
c: [163]
|
|
}}}}}
|
|
}},
|
|
0x72: {l: {
|
|
0x61: {l: {0x70: {l: {0x3B: {c: [10935]}}}}},
|
|
0x3B: {c: [8826]},
|
|
0x63: {l: {0x75: {l: {0x65: {l: {0x3B: {c: [8828]}}}}}}},
|
|
0x65: {l: {
|
|
0x63: {l: {
|
|
0x61: {l: {0x70: {l: {0x70: {l: {0x72: {l: {0x6F: {l: {0x78: {l: {0x3B: {c: [10935]}}}}}}}}}}}}},
|
|
0x3B: {c: [8826]},
|
|
0x63: {l: {0x75: {l: {0x72: {l: {0x6C: {l: {0x79: {l: {0x65: {l: {0x71: {l: {0x3B: {c: [8828]}}}}}}}}}}}}}}},
|
|
0x65: {l: {0x71: {l: {0x3B: {c: [10927]}}}}},
|
|
0x6E: {l: {
|
|
0x61: {l: {0x70: {l: {0x70: {l: {0x72: {l: {0x6F: {l: {0x78: {l: {0x3B: {c: [10937]}}}}}}}}}}}}},
|
|
0x65: {l: {0x71: {l: {0x71: {l: {0x3B: {c: [10933]}}}}}}},
|
|
0x73: {l: {0x69: {l: {0x6D: {l: {0x3B: {c: [8936]}}}}}}}
|
|
}},
|
|
0x73: {l: {0x69: {l: {0x6D: {l: {0x3B: {c: [8830]}}}}}}}
|
|
}},
|
|
0x3B: {c: [10927]}
|
|
}},
|
|
0x45: {l: {0x3B: {c: [10931]}}},
|
|
0x69: {l: {0x6D: {l: {0x65: {l: {
|
|
0x3B: {c: [8242]},
|
|
0x73: {l: {0x3B: {c: [8473]}}}
|
|
}}}}}},
|
|
0x6E: {l: {
|
|
0x61: {l: {0x70: {l: {0x3B: {c: [10937]}}}}},
|
|
0x45: {l: {0x3B: {c: [10933]}}},
|
|
0x73: {l: {0x69: {l: {0x6D: {l: {0x3B: {c: [8936]}}}}}}}
|
|
}},
|
|
0x6F: {l: {
|
|
0x64: {l: {0x3B: {c: [8719]}}},
|
|
0x66: {l: {
|
|
0x61: {l: {0x6C: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [9006]}}}}}}}}},
|
|
0x6C: {l: {0x69: {l: {0x6E: {l: {0x65: {l: {0x3B: {c: [8978]}}}}}}}}},
|
|
0x73: {l: {0x75: {l: {0x72: {l: {0x66: {l: {0x3B: {c: [8979]}}}}}}}}}
|
|
}},
|
|
0x70: {l: {
|
|
0x3B: {c: [8733]},
|
|
0x74: {l: {0x6F: {l: {0x3B: {c: [8733]}}}}}
|
|
}}
|
|
}},
|
|
0x73: {l: {0x69: {l: {0x6D: {l: {0x3B: {c: [8830]}}}}}}},
|
|
0x75: {l: {0x72: {l: {0x65: {l: {0x6C: {l: {0x3B: {c: [8880]}}}}}}}}}
|
|
}},
|
|
0x73: {l: {
|
|
0x63: {l: {0x72: {l: {0x3B: {c: [120005]}}}}},
|
|
0x69: {l: {0x3B: {c: [968]}}}
|
|
}},
|
|
0x75: {l: {0x6E: {l: {0x63: {l: {0x73: {l: {0x70: {l: {0x3B: {c: [8200]}}}}}}}}}}}
|
|
}},
|
|
0x50: {l: {
|
|
0x61: {l: {0x72: {l: {0x74: {l: {0x69: {l: {0x61: {l: {0x6C: {l: {0x44: {l: {0x3B: {c: [8706]}}}}}}}}}}}}}}},
|
|
0x63: {l: {0x79: {l: {0x3B: {c: [1055]}}}}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120083]}}}}},
|
|
0x68: {l: {0x69: {l: {0x3B: {c: [934]}}}}},
|
|
0x69: {l: {0x3B: {c: [928]}}},
|
|
0x6C: {l: {0x75: {l: {0x73: {l: {0x4D: {l: {0x69: {l: {0x6E: {l: {0x75: {l: {0x73: {l: {0x3B: {c: [177]}}}}}}}}}}}}}}}}},
|
|
0x6F: {l: {
|
|
0x69: {l: {0x6E: {l: {0x63: {l: {0x61: {l: {0x72: {l: {0x65: {l: {0x70: {l: {0x6C: {l: {0x61: {l: {0x6E: {l: {0x65: {l: {0x3B: {c: [8460]}}}}}}}}}}}}}}}}}}}}}}},
|
|
0x70: {l: {0x66: {l: {0x3B: {c: [8473]}}}}}
|
|
}},
|
|
0x72: {l: {
|
|
0x3B: {c: [10939]},
|
|
0x65: {l: {0x63: {l: {0x65: {l: {0x64: {l: {0x65: {l: {0x73: {l: {
|
|
0x3B: {c: [8826]},
|
|
0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [10927]}}}}}}}}}}},
|
|
0x53: {l: {0x6C: {l: {0x61: {l: {0x6E: {l: {0x74: {l: {0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [8828]}}}}}}}}}}}}}}}}}}}}},
|
|
0x54: {l: {0x69: {l: {0x6C: {l: {0x64: {l: {0x65: {l: {0x3B: {c: [8830]}}}}}}}}}}}
|
|
}}}}}}}}}}}},
|
|
0x69: {l: {0x6D: {l: {0x65: {l: {0x3B: {c: [8243]}}}}}}},
|
|
0x6F: {l: {
|
|
0x64: {l: {0x75: {l: {0x63: {l: {0x74: {l: {0x3B: {c: [8719]}}}}}}}}},
|
|
0x70: {l: {0x6F: {l: {0x72: {l: {0x74: {l: {0x69: {l: {0x6F: {l: {0x6E: {l: {
|
|
0x61: {l: {0x6C: {l: {0x3B: {c: [8733]}}}}},
|
|
0x3B: {c: [8759]}
|
|
}}}}}}}}}}}}}}
|
|
}}
|
|
}},
|
|
0x73: {l: {
|
|
0x63: {l: {0x72: {l: {0x3B: {c: [119979]}}}}},
|
|
0x69: {l: {0x3B: {c: [936]}}}
|
|
}}
|
|
}},
|
|
0x51: {l: {
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120084]}}}}},
|
|
0x6F: {l: {0x70: {l: {0x66: {l: {0x3B: {c: [8474]}}}}}}},
|
|
0x73: {l: {0x63: {l: {0x72: {l: {0x3B: {c: [119980]}}}}}}},
|
|
0x55: {l: {0x4F: {l: {0x54: {
|
|
l: {0x3B: {c: [34]}},
|
|
c: [34]
|
|
}}}}}
|
|
}},
|
|
0x71: {l: {
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120110]}}}}},
|
|
0x69: {l: {0x6E: {l: {0x74: {l: {0x3B: {c: [10764]}}}}}}},
|
|
0x6F: {l: {0x70: {l: {0x66: {l: {0x3B: {c: [120162]}}}}}}},
|
|
0x70: {l: {0x72: {l: {0x69: {l: {0x6D: {l: {0x65: {l: {0x3B: {c: [8279]}}}}}}}}}}},
|
|
0x73: {l: {0x63: {l: {0x72: {l: {0x3B: {c: [120006]}}}}}}},
|
|
0x75: {l: {
|
|
0x61: {l: {0x74: {l: {
|
|
0x65: {l: {0x72: {l: {0x6E: {l: {0x69: {l: {0x6F: {l: {0x6E: {l: {0x73: {l: {0x3B: {c: [8461]}}}}}}}}}}}}}}},
|
|
0x69: {l: {0x6E: {l: {0x74: {l: {0x3B: {c: [10774]}}}}}}}
|
|
}}}},
|
|
0x65: {l: {0x73: {l: {0x74: {l: {
|
|
0x3B: {c: [63]},
|
|
0x65: {l: {0x71: {l: {0x3B: {c: [8799]}}}}}
|
|
}}}}}},
|
|
0x6F: {l: {0x74: {
|
|
l: {0x3B: {c: [34]}},
|
|
c: [34]
|
|
}}}
|
|
}}
|
|
}},
|
|
0x72: {l: {
|
|
0x41: {l: {
|
|
0x61: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [8667]}}}}}}},
|
|
0x72: {l: {0x72: {l: {0x3B: {c: [8658]}}}}},
|
|
0x74: {l: {0x61: {l: {0x69: {l: {0x6C: {l: {0x3B: {c: [10524]}}}}}}}}}
|
|
}},
|
|
0x61: {l: {
|
|
0x63: {l: {
|
|
0x65: {l: {0x3B: {c: [8765, 817]}}},
|
|
0x75: {l: {0x74: {l: {0x65: {l: {0x3B: {c: [341]}}}}}}}
|
|
}},
|
|
0x64: {l: {0x69: {l: {0x63: {l: {0x3B: {c: [8730]}}}}}}},
|
|
0x65: {l: {0x6D: {l: {0x70: {l: {0x74: {l: {0x79: {l: {0x76: {l: {0x3B: {c: [10675]}}}}}}}}}}}}},
|
|
0x6E: {l: {0x67: {l: {
|
|
0x3B: {c: [10217]},
|
|
0x64: {l: {0x3B: {c: [10642]}}},
|
|
0x65: {l: {0x3B: {c: [10661]}}},
|
|
0x6C: {l: {0x65: {l: {0x3B: {c: [10217]}}}}}
|
|
}}}},
|
|
0x71: {l: {0x75: {l: {0x6F: {
|
|
l: {0x3B: {c: [187]}},
|
|
c: [187]
|
|
}}}}},
|
|
0x72: {l: {0x72: {l: {
|
|
0x61: {l: {0x70: {l: {0x3B: {c: [10613]}}}}},
|
|
0x62: {l: {
|
|
0x3B: {c: [8677]},
|
|
0x66: {l: {0x73: {l: {0x3B: {c: [10528]}}}}}
|
|
}},
|
|
0x63: {l: {0x3B: {c: [10547]}}},
|
|
0x3B: {c: [8594]},
|
|
0x66: {l: {0x73: {l: {0x3B: {c: [10526]}}}}},
|
|
0x68: {l: {0x6B: {l: {0x3B: {c: [8618]}}}}},
|
|
0x6C: {l: {0x70: {l: {0x3B: {c: [8620]}}}}},
|
|
0x70: {l: {0x6C: {l: {0x3B: {c: [10565]}}}}},
|
|
0x73: {l: {0x69: {l: {0x6D: {l: {0x3B: {c: [10612]}}}}}}},
|
|
0x74: {l: {0x6C: {l: {0x3B: {c: [8611]}}}}},
|
|
0x77: {l: {0x3B: {c: [8605]}}}
|
|
}}}},
|
|
0x74: {l: {
|
|
0x61: {l: {0x69: {l: {0x6C: {l: {0x3B: {c: [10522]}}}}}}},
|
|
0x69: {l: {0x6F: {l: {
|
|
0x3B: {c: [8758]},
|
|
0x6E: {l: {0x61: {l: {0x6C: {l: {0x73: {l: {0x3B: {c: [8474]}}}}}}}}}
|
|
}}}}
|
|
}}
|
|
}},
|
|
0x62: {l: {
|
|
0x61: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [10509]}}}}}}},
|
|
0x62: {l: {0x72: {l: {0x6B: {l: {0x3B: {c: [10099]}}}}}}},
|
|
0x72: {l: {
|
|
0x61: {l: {0x63: {l: {
|
|
0x65: {l: {0x3B: {c: [125]}}},
|
|
0x6B: {l: {0x3B: {c: [93]}}}
|
|
}}}},
|
|
0x6B: {l: {
|
|
0x65: {l: {0x3B: {c: [10636]}}},
|
|
0x73: {l: {0x6C: {l: {
|
|
0x64: {l: {0x3B: {c: [10638]}}},
|
|
0x75: {l: {0x3B: {c: [10640]}}}
|
|
}}}}
|
|
}}
|
|
}}
|
|
}},
|
|
0x42: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [10511]}}}}}}}}},
|
|
0x63: {l: {
|
|
0x61: {l: {0x72: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [345]}}}}}}}}},
|
|
0x65: {l: {
|
|
0x64: {l: {0x69: {l: {0x6C: {l: {0x3B: {c: [343]}}}}}}},
|
|
0x69: {l: {0x6C: {l: {0x3B: {c: [8969]}}}}}
|
|
}},
|
|
0x75: {l: {0x62: {l: {0x3B: {c: [125]}}}}},
|
|
0x79: {l: {0x3B: {c: [1088]}}}
|
|
}},
|
|
0x64: {l: {
|
|
0x63: {l: {0x61: {l: {0x3B: {c: [10551]}}}}},
|
|
0x6C: {l: {0x64: {l: {0x68: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [10601]}}}}}}}}}}},
|
|
0x71: {l: {0x75: {l: {0x6F: {l: {
|
|
0x3B: {c: [8221]},
|
|
0x72: {l: {0x3B: {c: [8221]}}}
|
|
}}}}}},
|
|
0x73: {l: {0x68: {l: {0x3B: {c: [8627]}}}}}
|
|
}},
|
|
0x65: {l: {
|
|
0x61: {l: {0x6C: {l: {
|
|
0x3B: {c: [8476]},
|
|
0x69: {l: {0x6E: {l: {0x65: {l: {0x3B: {c: [8475]}}}}}}},
|
|
0x70: {l: {0x61: {l: {0x72: {l: {0x74: {l: {0x3B: {c: [8476]}}}}}}}}},
|
|
0x73: {l: {0x3B: {c: [8477]}}}
|
|
}}}},
|
|
0x63: {l: {0x74: {l: {0x3B: {c: [9645]}}}}},
|
|
0x67: {
|
|
l: {0x3B: {c: [174]}},
|
|
c: [174]
|
|
}
|
|
}},
|
|
0x66: {l: {
|
|
0x69: {l: {0x73: {l: {0x68: {l: {0x74: {l: {0x3B: {c: [10621]}}}}}}}}},
|
|
0x6C: {l: {0x6F: {l: {0x6F: {l: {0x72: {l: {0x3B: {c: [8971]}}}}}}}}},
|
|
0x72: {l: {0x3B: {c: [120111]}}}
|
|
}},
|
|
0x48: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [10596]}}}}}}},
|
|
0x68: {l: {
|
|
0x61: {l: {0x72: {l: {
|
|
0x64: {l: {0x3B: {c: [8641]}}},
|
|
0x75: {l: {
|
|
0x3B: {c: [8640]},
|
|
0x6C: {l: {0x3B: {c: [10604]}}}
|
|
}}
|
|
}}}},
|
|
0x6F: {l: {
|
|
0x3B: {c: [961]},
|
|
0x76: {l: {0x3B: {c: [1009]}}}
|
|
}}
|
|
}},
|
|
0x69: {l: {
|
|
0x67: {l: {0x68: {l: {0x74: {l: {
|
|
0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {
|
|
0x3B: {c: [8594]},
|
|
0x74: {l: {0x61: {l: {0x69: {l: {0x6C: {l: {0x3B: {c: [8611]}}}}}}}}}
|
|
}}}}}}}}}},
|
|
0x68: {l: {0x61: {l: {0x72: {l: {0x70: {l: {0x6F: {l: {0x6F: {l: {0x6E: {l: {
|
|
0x64: {l: {0x6F: {l: {0x77: {l: {0x6E: {l: {0x3B: {c: [8641]}}}}}}}}},
|
|
0x75: {l: {0x70: {l: {0x3B: {c: [8640]}}}}}
|
|
}}}}}}}}}}}}}},
|
|
0x6C: {l: {0x65: {l: {0x66: {l: {0x74: {l: {
|
|
0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x73: {l: {0x3B: {c: [8644]}}}}}}}}}}}}},
|
|
0x68: {l: {0x61: {l: {0x72: {l: {0x70: {l: {0x6F: {l: {0x6F: {l: {0x6E: {l: {0x73: {l: {0x3B: {c: [8652]}}}}}}}}}}}}}}}}}
|
|
}}}}}}}},
|
|
0x72: {l: {0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x73: {l: {0x3B: {c: [8649]}}}}}}}}}}}}}}}}}}}}}}},
|
|
0x73: {l: {0x71: {l: {0x75: {l: {0x69: {l: {0x67: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8605]}}}}}}}}}}}}}}}}}}}}},
|
|
0x74: {l: {0x68: {l: {0x72: {l: {0x65: {l: {0x65: {l: {0x74: {l: {0x69: {l: {0x6D: {l: {0x65: {l: {0x73: {l: {0x3B: {c: [8908]}}}}}}}}}}}}}}}}}}}}}
|
|
}}}}}},
|
|
0x6E: {l: {0x67: {l: {0x3B: {c: [730]}}}}},
|
|
0x73: {l: {0x69: {l: {0x6E: {l: {0x67: {l: {0x64: {l: {0x6F: {l: {0x74: {l: {0x73: {l: {0x65: {l: {0x71: {l: {0x3B: {c: [8787]}}}}}}}}}}}}}}}}}}}}}
|
|
}},
|
|
0x6C: {l: {
|
|
0x61: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [8644]}}}}}}},
|
|
0x68: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [8652]}}}}}}},
|
|
0x6D: {l: {0x3B: {c: [8207]}}}
|
|
}},
|
|
0x6D: {l: {0x6F: {l: {0x75: {l: {0x73: {l: {0x74: {l: {
|
|
0x61: {l: {0x63: {l: {0x68: {l: {0x65: {l: {0x3B: {c: [9137]}}}}}}}}},
|
|
0x3B: {c: [9137]}
|
|
}}}}}}}}}},
|
|
0x6E: {l: {0x6D: {l: {0x69: {l: {0x64: {l: {0x3B: {c: [10990]}}}}}}}}},
|
|
0x6F: {l: {
|
|
0x61: {l: {
|
|
0x6E: {l: {0x67: {l: {0x3B: {c: [10221]}}}}},
|
|
0x72: {l: {0x72: {l: {0x3B: {c: [8702]}}}}}
|
|
}},
|
|
0x62: {l: {0x72: {l: {0x6B: {l: {0x3B: {c: [10215]}}}}}}},
|
|
0x70: {l: {
|
|
0x61: {l: {0x72: {l: {0x3B: {c: [10630]}}}}},
|
|
0x66: {l: {0x3B: {c: [120163]}}},
|
|
0x6C: {l: {0x75: {l: {0x73: {l: {0x3B: {c: [10798]}}}}}}}
|
|
}},
|
|
0x74: {l: {0x69: {l: {0x6D: {l: {0x65: {l: {0x73: {l: {0x3B: {c: [10805]}}}}}}}}}}}
|
|
}},
|
|
0x70: {l: {
|
|
0x61: {l: {0x72: {l: {
|
|
0x3B: {c: [41]},
|
|
0x67: {l: {0x74: {l: {0x3B: {c: [10644]}}}}}
|
|
}}}},
|
|
0x70: {l: {0x6F: {l: {0x6C: {l: {0x69: {l: {0x6E: {l: {0x74: {l: {0x3B: {c: [10770]}}}}}}}}}}}}}
|
|
}},
|
|
0x72: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [8649]}}}}}}}}},
|
|
0x73: {l: {
|
|
0x61: {l: {0x71: {l: {0x75: {l: {0x6F: {l: {0x3B: {c: [8250]}}}}}}}}},
|
|
0x63: {l: {0x72: {l: {0x3B: {c: [120007]}}}}},
|
|
0x68: {l: {0x3B: {c: [8625]}}},
|
|
0x71: {l: {
|
|
0x62: {l: {0x3B: {c: [93]}}},
|
|
0x75: {l: {0x6F: {l: {
|
|
0x3B: {c: [8217]},
|
|
0x72: {l: {0x3B: {c: [8217]}}}
|
|
}}}}
|
|
}}
|
|
}},
|
|
0x74: {l: {
|
|
0x68: {l: {0x72: {l: {0x65: {l: {0x65: {l: {0x3B: {c: [8908]}}}}}}}}},
|
|
0x69: {l: {0x6D: {l: {0x65: {l: {0x73: {l: {0x3B: {c: [8906]}}}}}}}}},
|
|
0x72: {l: {0x69: {l: {
|
|
0x3B: {c: [9657]},
|
|
0x65: {l: {0x3B: {c: [8885]}}},
|
|
0x66: {l: {0x3B: {c: [9656]}}},
|
|
0x6C: {l: {0x74: {l: {0x72: {l: {0x69: {l: {0x3B: {c: [10702]}}}}}}}}}
|
|
}}}}
|
|
}},
|
|
0x75: {l: {0x6C: {l: {0x75: {l: {0x68: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [10600]}}}}}}}}}}}}},
|
|
0x78: {l: {0x3B: {c: [8478]}}}
|
|
}},
|
|
0x52: {l: {
|
|
0x61: {l: {
|
|
0x63: {l: {0x75: {l: {0x74: {l: {0x65: {l: {0x3B: {c: [340]}}}}}}}}},
|
|
0x6E: {l: {0x67: {l: {0x3B: {c: [10219]}}}}},
|
|
0x72: {l: {0x72: {l: {
|
|
0x3B: {c: [8608]},
|
|
0x74: {l: {0x6C: {l: {0x3B: {c: [10518]}}}}}
|
|
}}}}
|
|
}},
|
|
0x42: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [10512]}}}}}}}}},
|
|
0x63: {l: {
|
|
0x61: {l: {0x72: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [344]}}}}}}}}},
|
|
0x65: {l: {0x64: {l: {0x69: {l: {0x6C: {l: {0x3B: {c: [342]}}}}}}}}},
|
|
0x79: {l: {0x3B: {c: [1056]}}}
|
|
}},
|
|
0x65: {l: {
|
|
0x3B: {c: [8476]},
|
|
0x76: {l: {0x65: {l: {0x72: {l: {0x73: {l: {0x65: {l: {
|
|
0x45: {l: {
|
|
0x6C: {l: {0x65: {l: {0x6D: {l: {0x65: {l: {0x6E: {l: {0x74: {l: {0x3B: {c: [8715]}}}}}}}}}}}}},
|
|
0x71: {l: {0x75: {l: {0x69: {l: {0x6C: {l: {0x69: {l: {0x62: {l: {0x72: {l: {0x69: {l: {0x75: {l: {0x6D: {l: {0x3B: {c: [8651]}}}}}}}}}}}}}}}}}}}}}
|
|
}},
|
|
0x55: {l: {0x70: {l: {0x45: {l: {0x71: {l: {0x75: {l: {0x69: {l: {0x6C: {l: {0x69: {l: {0x62: {l: {0x72: {l: {0x69: {l: {0x75: {l: {0x6D: {l: {0x3B: {c: [10607]}}}}}}}}}}}}}}}}}}}}}}}}}}}
|
|
}}}}}}}}}}
|
|
}},
|
|
0x45: {l: {0x47: {
|
|
l: {0x3B: {c: [174]}},
|
|
c: [174]
|
|
}}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [8476]}}}}},
|
|
0x68: {l: {0x6F: {l: {0x3B: {c: [929]}}}}},
|
|
0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {
|
|
0x41: {l: {
|
|
0x6E: {l: {0x67: {l: {0x6C: {l: {0x65: {l: {0x42: {l: {0x72: {l: {0x61: {l: {0x63: {l: {0x6B: {l: {0x65: {l: {0x74: {l: {0x3B: {c: [10217]}}}}}}}}}}}}}}}}}}}}}}},
|
|
0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {
|
|
0x42: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [8677]}}}}}}},
|
|
0x3B: {c: [8594]},
|
|
0x4C: {l: {0x65: {l: {0x66: {l: {0x74: {l: {0x41: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8644]}}}}}}}}}}}}}}}}}}}
|
|
}}}}}}}}
|
|
}},
|
|
0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8658]}}}}}}}}}}},
|
|
0x43: {l: {0x65: {l: {0x69: {l: {0x6C: {l: {0x69: {l: {0x6E: {l: {0x67: {l: {0x3B: {c: [8969]}}}}}}}}}}}}}}},
|
|
0x44: {l: {0x6F: {l: {
|
|
0x75: {l: {0x62: {l: {0x6C: {l: {0x65: {l: {0x42: {l: {0x72: {l: {0x61: {l: {0x63: {l: {0x6B: {l: {0x65: {l: {0x74: {l: {0x3B: {c: [10215]}}}}}}}}}}}}}}}}}}}}}}},
|
|
0x77: {l: {0x6E: {l: {
|
|
0x54: {l: {0x65: {l: {0x65: {l: {0x56: {l: {0x65: {l: {0x63: {l: {0x74: {l: {0x6F: {l: {0x72: {l: {0x3B: {c: [10589]}}}}}}}}}}}}}}}}}}},
|
|
0x56: {l: {0x65: {l: {0x63: {l: {0x74: {l: {0x6F: {l: {0x72: {l: {
|
|
0x42: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [10581]}}}}}}},
|
|
0x3B: {c: [8642]}
|
|
}}}}}}}}}}}}
|
|
}}}}
|
|
}}}},
|
|
0x46: {l: {0x6C: {l: {0x6F: {l: {0x6F: {l: {0x72: {l: {0x3B: {c: [8971]}}}}}}}}}}},
|
|
0x54: {l: {
|
|
0x65: {l: {0x65: {l: {
|
|
0x41: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8614]}}}}}}}}}}},
|
|
0x3B: {c: [8866]},
|
|
0x56: {l: {0x65: {l: {0x63: {l: {0x74: {l: {0x6F: {l: {0x72: {l: {0x3B: {c: [10587]}}}}}}}}}}}}}
|
|
}}}},
|
|
0x72: {l: {0x69: {l: {0x61: {l: {0x6E: {l: {0x67: {l: {0x6C: {l: {0x65: {l: {
|
|
0x42: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [10704]}}}}}}},
|
|
0x3B: {c: [8883]},
|
|
0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [8885]}}}}}}}}}}}
|
|
}}}}}}}}}}}}}}
|
|
}},
|
|
0x55: {l: {0x70: {l: {
|
|
0x44: {l: {0x6F: {l: {0x77: {l: {0x6E: {l: {0x56: {l: {0x65: {l: {0x63: {l: {0x74: {l: {0x6F: {l: {0x72: {l: {0x3B: {c: [10575]}}}}}}}}}}}}}}}}}}}}},
|
|
0x54: {l: {0x65: {l: {0x65: {l: {0x56: {l: {0x65: {l: {0x63: {l: {0x74: {l: {0x6F: {l: {0x72: {l: {0x3B: {c: [10588]}}}}}}}}}}}}}}}}}}},
|
|
0x56: {l: {0x65: {l: {0x63: {l: {0x74: {l: {0x6F: {l: {0x72: {l: {
|
|
0x42: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [10580]}}}}}}},
|
|
0x3B: {c: [8638]}
|
|
}}}}}}}}}}}}
|
|
}}}},
|
|
0x56: {l: {0x65: {l: {0x63: {l: {0x74: {l: {0x6F: {l: {0x72: {l: {
|
|
0x42: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [10579]}}}}}}},
|
|
0x3B: {c: [8640]}
|
|
}}}}}}}}}}}}
|
|
}}}}}}}},
|
|
0x6F: {l: {
|
|
0x70: {l: {0x66: {l: {0x3B: {c: [8477]}}}}},
|
|
0x75: {l: {0x6E: {l: {0x64: {l: {0x49: {l: {0x6D: {l: {0x70: {l: {0x6C: {l: {0x69: {l: {0x65: {l: {0x73: {l: {0x3B: {c: [10608]}}}}}}}}}}}}}}}}}}}}}
|
|
}},
|
|
0x72: {l: {0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8667]}}}}}}}}}}}}}}}}}}}}},
|
|
0x73: {l: {
|
|
0x63: {l: {0x72: {l: {0x3B: {c: [8475]}}}}},
|
|
0x68: {l: {0x3B: {c: [8625]}}}
|
|
}},
|
|
0x75: {l: {0x6C: {l: {0x65: {l: {0x44: {l: {0x65: {l: {0x6C: {l: {0x61: {l: {0x79: {l: {0x65: {l: {0x64: {l: {0x3B: {c: [10740]}}}}}}}}}}}}}}}}}}}}}
|
|
}},
|
|
0x53: {l: {
|
|
0x61: {l: {0x63: {l: {0x75: {l: {0x74: {l: {0x65: {l: {0x3B: {c: [346]}}}}}}}}}}},
|
|
0x63: {l: {
|
|
0x61: {l: {0x72: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [352]}}}}}}}}},
|
|
0x3B: {c: [10940]},
|
|
0x65: {l: {0x64: {l: {0x69: {l: {0x6C: {l: {0x3B: {c: [350]}}}}}}}}},
|
|
0x69: {l: {0x72: {l: {0x63: {l: {0x3B: {c: [348]}}}}}}},
|
|
0x79: {l: {0x3B: {c: [1057]}}}
|
|
}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120086]}}}}},
|
|
0x48: {l: {
|
|
0x43: {l: {0x48: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1065]}}}}}}}}},
|
|
0x63: {l: {0x79: {l: {0x3B: {c: [1064]}}}}}
|
|
}},
|
|
0x68: {l: {0x6F: {l: {0x72: {l: {0x74: {l: {
|
|
0x44: {l: {0x6F: {l: {0x77: {l: {0x6E: {l: {0x41: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8595]}}}}}}}}}}}}}}}}}}},
|
|
0x4C: {l: {0x65: {l: {0x66: {l: {0x74: {l: {0x41: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8592]}}}}}}}}}}}}}}}}}}},
|
|
0x52: {l: {0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {0x41: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8594]}}}}}}}}}}}}}}}}}}}}},
|
|
0x55: {l: {0x70: {l: {0x41: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8593]}}}}}}}}}}}}}}}
|
|
}}}}}}}},
|
|
0x69: {l: {0x67: {l: {0x6D: {l: {0x61: {l: {0x3B: {c: [931]}}}}}}}}},
|
|
0x6D: {l: {0x61: {l: {0x6C: {l: {0x6C: {l: {0x43: {l: {0x69: {l: {0x72: {l: {0x63: {l: {0x6C: {l: {0x65: {l: {0x3B: {c: [8728]}}}}}}}}}}}}}}}}}}}}},
|
|
0x4F: {l: {0x46: {l: {0x54: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1068]}}}}}}}}}}},
|
|
0x6F: {l: {0x70: {l: {0x66: {l: {0x3B: {c: [120138]}}}}}}},
|
|
0x71: {l: {
|
|
0x72: {l: {0x74: {l: {0x3B: {c: [8730]}}}}},
|
|
0x75: {l: {0x61: {l: {0x72: {l: {0x65: {l: {
|
|
0x3B: {c: [9633]},
|
|
0x49: {l: {0x6E: {l: {0x74: {l: {0x65: {l: {0x72: {l: {0x73: {l: {0x65: {l: {0x63: {l: {0x74: {l: {0x69: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [8851]}}}}}}}}}}}}}}}}}}}}}}}}},
|
|
0x53: {l: {0x75: {l: {
|
|
0x62: {l: {0x73: {l: {0x65: {l: {0x74: {l: {
|
|
0x3B: {c: [8847]},
|
|
0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [8849]}}}}}}}}}}}
|
|
}}}}}}}},
|
|
0x70: {l: {0x65: {l: {0x72: {l: {0x73: {l: {0x65: {l: {0x74: {l: {
|
|
0x3B: {c: [8848]},
|
|
0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [8850]}}}}}}}}}}}
|
|
}}}}}}}}}}}}
|
|
}}}},
|
|
0x55: {l: {0x6E: {l: {0x69: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [8852]}}}}}}}}}}}
|
|
}}}}}}}}
|
|
}},
|
|
0x73: {l: {0x63: {l: {0x72: {l: {0x3B: {c: [119982]}}}}}}},
|
|
0x74: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [8902]}}}}}}},
|
|
0x75: {l: {
|
|
0x62: {l: {
|
|
0x3B: {c: [8912]},
|
|
0x73: {l: {0x65: {l: {0x74: {l: {
|
|
0x3B: {c: [8912]},
|
|
0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [8838]}}}}}}}}}}}
|
|
}}}}}}
|
|
}},
|
|
0x63: {l: {
|
|
0x63: {l: {0x65: {l: {0x65: {l: {0x64: {l: {0x73: {l: {
|
|
0x3B: {c: [8827]},
|
|
0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [10928]}}}}}}}}}}},
|
|
0x53: {l: {0x6C: {l: {0x61: {l: {0x6E: {l: {0x74: {l: {0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [8829]}}}}}}}}}}}}}}}}}}}}},
|
|
0x54: {l: {0x69: {l: {0x6C: {l: {0x64: {l: {0x65: {l: {0x3B: {c: [8831]}}}}}}}}}}}
|
|
}}}}}}}}}},
|
|
0x68: {l: {0x54: {l: {0x68: {l: {0x61: {l: {0x74: {l: {0x3B: {c: [8715]}}}}}}}}}}}
|
|
}},
|
|
0x6D: {l: {0x3B: {c: [8721]}}},
|
|
0x70: {l: {
|
|
0x3B: {c: [8913]},
|
|
0x65: {l: {0x72: {l: {0x73: {l: {0x65: {l: {0x74: {l: {
|
|
0x3B: {c: [8835]},
|
|
0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [8839]}}}}}}}}}}}
|
|
}}}}}}}}}},
|
|
0x73: {l: {0x65: {l: {0x74: {l: {0x3B: {c: [8913]}}}}}}}
|
|
}}
|
|
}}
|
|
}},
|
|
0x73: {l: {
|
|
0x61: {l: {0x63: {l: {0x75: {l: {0x74: {l: {0x65: {l: {0x3B: {c: [347]}}}}}}}}}}},
|
|
0x62: {l: {0x71: {l: {0x75: {l: {0x6F: {l: {0x3B: {c: [8218]}}}}}}}}},
|
|
0x63: {l: {
|
|
0x61: {l: {
|
|
0x70: {l: {0x3B: {c: [10936]}}},
|
|
0x72: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [353]}}}}}}}
|
|
}},
|
|
0x3B: {c: [8827]},
|
|
0x63: {l: {0x75: {l: {0x65: {l: {0x3B: {c: [8829]}}}}}}},
|
|
0x65: {l: {
|
|
0x3B: {c: [10928]},
|
|
0x64: {l: {0x69: {l: {0x6C: {l: {0x3B: {c: [351]}}}}}}}
|
|
}},
|
|
0x45: {l: {0x3B: {c: [10932]}}},
|
|
0x69: {l: {0x72: {l: {0x63: {l: {0x3B: {c: [349]}}}}}}},
|
|
0x6E: {l: {
|
|
0x61: {l: {0x70: {l: {0x3B: {c: [10938]}}}}},
|
|
0x45: {l: {0x3B: {c: [10934]}}},
|
|
0x73: {l: {0x69: {l: {0x6D: {l: {0x3B: {c: [8937]}}}}}}}
|
|
}},
|
|
0x70: {l: {0x6F: {l: {0x6C: {l: {0x69: {l: {0x6E: {l: {0x74: {l: {0x3B: {c: [10771]}}}}}}}}}}}}},
|
|
0x73: {l: {0x69: {l: {0x6D: {l: {0x3B: {c: [8831]}}}}}}},
|
|
0x79: {l: {0x3B: {c: [1089]}}}
|
|
}},
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {
|
|
0x62: {l: {0x3B: {c: [8865]}}},
|
|
0x3B: {c: [8901]},
|
|
0x65: {l: {0x3B: {c: [10854]}}}
|
|
}}}}}},
|
|
0x65: {l: {
|
|
0x61: {l: {0x72: {l: {
|
|
0x68: {l: {0x6B: {l: {0x3B: {c: [10533]}}}}},
|
|
0x72: {l: {
|
|
0x3B: {c: [8600]},
|
|
0x6F: {l: {0x77: {l: {0x3B: {c: [8600]}}}}}
|
|
}}
|
|
}}}},
|
|
0x41: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [8664]}}}}}}},
|
|
0x63: {l: {0x74: {
|
|
l: {0x3B: {c: [167]}},
|
|
c: [167]
|
|
}}},
|
|
0x6D: {l: {0x69: {l: {0x3B: {c: [59]}}}}},
|
|
0x73: {l: {0x77: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [10537]}}}}}}}}},
|
|
0x74: {l: {0x6D: {l: {
|
|
0x69: {l: {0x6E: {l: {0x75: {l: {0x73: {l: {0x3B: {c: [8726]}}}}}}}}},
|
|
0x6E: {l: {0x3B: {c: [8726]}}}
|
|
}}}},
|
|
0x78: {l: {0x74: {l: {0x3B: {c: [10038]}}}}}
|
|
}},
|
|
0x66: {l: {0x72: {l: {
|
|
0x3B: {c: [120112]},
|
|
0x6F: {l: {0x77: {l: {0x6E: {l: {0x3B: {c: [8994]}}}}}}}
|
|
}}}},
|
|
0x68: {l: {
|
|
0x61: {l: {0x72: {l: {0x70: {l: {0x3B: {c: [9839]}}}}}}},
|
|
0x63: {l: {
|
|
0x68: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1097]}}}}}}},
|
|
0x79: {l: {0x3B: {c: [1096]}}}
|
|
}},
|
|
0x6F: {l: {0x72: {l: {0x74: {l: {
|
|
0x6D: {l: {0x69: {l: {0x64: {l: {0x3B: {c: [8739]}}}}}}},
|
|
0x70: {l: {0x61: {l: {0x72: {l: {0x61: {l: {0x6C: {l: {0x6C: {l: {0x65: {l: {0x6C: {l: {0x3B: {c: [8741]}}}}}}}}}}}}}}}}}
|
|
}}}}}},
|
|
0x79: {
|
|
l: {0x3B: {c: [173]}},
|
|
c: [173]
|
|
}
|
|
}},
|
|
0x69: {l: {
|
|
0x67: {l: {0x6D: {l: {0x61: {l: {
|
|
0x3B: {c: [963]},
|
|
0x66: {l: {0x3B: {c: [962]}}},
|
|
0x76: {l: {0x3B: {c: [962]}}}
|
|
}}}}}},
|
|
0x6D: {l: {
|
|
0x3B: {c: [8764]},
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [10858]}}}}}}},
|
|
0x65: {l: {
|
|
0x3B: {c: [8771]},
|
|
0x71: {l: {0x3B: {c: [8771]}}}
|
|
}},
|
|
0x67: {l: {
|
|
0x3B: {c: [10910]},
|
|
0x45: {l: {0x3B: {c: [10912]}}}
|
|
}},
|
|
0x6C: {l: {
|
|
0x3B: {c: [10909]},
|
|
0x45: {l: {0x3B: {c: [10911]}}}
|
|
}},
|
|
0x6E: {l: {0x65: {l: {0x3B: {c: [8774]}}}}},
|
|
0x70: {l: {0x6C: {l: {0x75: {l: {0x73: {l: {0x3B: {c: [10788]}}}}}}}}},
|
|
0x72: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [10610]}}}}}}}}}
|
|
}}
|
|
}},
|
|
0x6C: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [8592]}}}}}}}}},
|
|
0x6D: {l: {
|
|
0x61: {l: {
|
|
0x6C: {l: {0x6C: {l: {0x73: {l: {0x65: {l: {0x74: {l: {0x6D: {l: {0x69: {l: {0x6E: {l: {0x75: {l: {0x73: {l: {0x3B: {c: [8726]}}}}}}}}}}}}}}}}}}}}},
|
|
0x73: {l: {0x68: {l: {0x70: {l: {0x3B: {c: [10803]}}}}}}}
|
|
}},
|
|
0x65: {l: {0x70: {l: {0x61: {l: {0x72: {l: {0x73: {l: {0x6C: {l: {0x3B: {c: [10724]}}}}}}}}}}}}},
|
|
0x69: {l: {
|
|
0x64: {l: {0x3B: {c: [8739]}}},
|
|
0x6C: {l: {0x65: {l: {0x3B: {c: [8995]}}}}}
|
|
}},
|
|
0x74: {l: {
|
|
0x3B: {c: [10922]},
|
|
0x65: {l: {
|
|
0x3B: {c: [10924]},
|
|
0x73: {l: {0x3B: {c: [10924, 65024]}}}
|
|
}}
|
|
}}
|
|
}},
|
|
0x6F: {l: {
|
|
0x66: {l: {0x74: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1100]}}}}}}}}},
|
|
0x6C: {l: {
|
|
0x62: {l: {
|
|
0x61: {l: {0x72: {l: {0x3B: {c: [9023]}}}}},
|
|
0x3B: {c: [10692]}
|
|
}},
|
|
0x3B: {c: [47]}
|
|
}},
|
|
0x70: {l: {0x66: {l: {0x3B: {c: [120164]}}}}}
|
|
}},
|
|
0x70: {l: {0x61: {l: {
|
|
0x64: {l: {0x65: {l: {0x73: {l: {
|
|
0x3B: {c: [9824]},
|
|
0x75: {l: {0x69: {l: {0x74: {l: {0x3B: {c: [9824]}}}}}}}
|
|
}}}}}},
|
|
0x72: {l: {0x3B: {c: [8741]}}}
|
|
}}}},
|
|
0x71: {l: {
|
|
0x63: {l: {
|
|
0x61: {l: {0x70: {l: {
|
|
0x3B: {c: [8851]},
|
|
0x73: {l: {0x3B: {c: [8851, 65024]}}}
|
|
}}}},
|
|
0x75: {l: {0x70: {l: {
|
|
0x3B: {c: [8852]},
|
|
0x73: {l: {0x3B: {c: [8852, 65024]}}}
|
|
}}}}
|
|
}},
|
|
0x73: {l: {0x75: {l: {
|
|
0x62: {l: {
|
|
0x3B: {c: [8847]},
|
|
0x65: {l: {0x3B: {c: [8849]}}},
|
|
0x73: {l: {0x65: {l: {0x74: {l: {
|
|
0x3B: {c: [8847]},
|
|
0x65: {l: {0x71: {l: {0x3B: {c: [8849]}}}}}
|
|
}}}}}}
|
|
}},
|
|
0x70: {l: {
|
|
0x3B: {c: [8848]},
|
|
0x65: {l: {0x3B: {c: [8850]}}},
|
|
0x73: {l: {0x65: {l: {0x74: {l: {
|
|
0x3B: {c: [8848]},
|
|
0x65: {l: {0x71: {l: {0x3B: {c: [8850]}}}}}
|
|
}}}}}}
|
|
}}
|
|
}}}},
|
|
0x75: {l: {
|
|
0x61: {l: {0x72: {l: {
|
|
0x65: {l: {0x3B: {c: [9633]}}},
|
|
0x66: {l: {0x3B: {c: [9642]}}}
|
|
}}}},
|
|
0x3B: {c: [9633]},
|
|
0x66: {l: {0x3B: {c: [9642]}}}
|
|
}}
|
|
}},
|
|
0x72: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [8594]}}}}}}}}},
|
|
0x73: {l: {
|
|
0x63: {l: {0x72: {l: {0x3B: {c: [120008]}}}}},
|
|
0x65: {l: {0x74: {l: {0x6D: {l: {0x6E: {l: {0x3B: {c: [8726]}}}}}}}}},
|
|
0x6D: {l: {0x69: {l: {0x6C: {l: {0x65: {l: {0x3B: {c: [8995]}}}}}}}}},
|
|
0x74: {l: {0x61: {l: {0x72: {l: {0x66: {l: {0x3B: {c: [8902]}}}}}}}}}
|
|
}},
|
|
0x74: {l: {
|
|
0x61: {l: {0x72: {l: {
|
|
0x3B: {c: [9734]},
|
|
0x66: {l: {0x3B: {c: [9733]}}}
|
|
}}}},
|
|
0x72: {l: {
|
|
0x61: {l: {0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {
|
|
0x65: {l: {0x70: {l: {0x73: {l: {0x69: {l: {0x6C: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [1013]}}}}}}}}}}}}}}},
|
|
0x70: {l: {0x68: {l: {0x69: {l: {0x3B: {c: [981]}}}}}}}
|
|
}}}}}}}}}},
|
|
0x6E: {l: {0x73: {l: {0x3B: {c: [175]}}}}}
|
|
}}
|
|
}},
|
|
0x75: {l: {
|
|
0x62: {l: {
|
|
0x3B: {c: [8834]},
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [10941]}}}}}}},
|
|
0x45: {l: {0x3B: {c: [10949]}}},
|
|
0x65: {l: {
|
|
0x3B: {c: [8838]},
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [10947]}}}}}}}
|
|
}},
|
|
0x6D: {l: {0x75: {l: {0x6C: {l: {0x74: {l: {0x3B: {c: [10945]}}}}}}}}},
|
|
0x6E: {l: {
|
|
0x45: {l: {0x3B: {c: [10955]}}},
|
|
0x65: {l: {0x3B: {c: [8842]}}}
|
|
}},
|
|
0x70: {l: {0x6C: {l: {0x75: {l: {0x73: {l: {0x3B: {c: [10943]}}}}}}}}},
|
|
0x72: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [10617]}}}}}}}}},
|
|
0x73: {l: {
|
|
0x65: {l: {0x74: {l: {
|
|
0x3B: {c: [8834]},
|
|
0x65: {l: {0x71: {l: {
|
|
0x3B: {c: [8838]},
|
|
0x71: {l: {0x3B: {c: [10949]}}}
|
|
}}}},
|
|
0x6E: {l: {0x65: {l: {0x71: {l: {
|
|
0x3B: {c: [8842]},
|
|
0x71: {l: {0x3B: {c: [10955]}}}
|
|
}}}}}}
|
|
}}}},
|
|
0x69: {l: {0x6D: {l: {0x3B: {c: [10951]}}}}},
|
|
0x75: {l: {
|
|
0x62: {l: {0x3B: {c: [10965]}}},
|
|
0x70: {l: {0x3B: {c: [10963]}}}
|
|
}}
|
|
}}
|
|
}},
|
|
0x63: {l: {0x63: {l: {
|
|
0x61: {l: {0x70: {l: {0x70: {l: {0x72: {l: {0x6F: {l: {0x78: {l: {0x3B: {c: [10936]}}}}}}}}}}}}},
|
|
0x3B: {c: [8827]},
|
|
0x63: {l: {0x75: {l: {0x72: {l: {0x6C: {l: {0x79: {l: {0x65: {l: {0x71: {l: {0x3B: {c: [8829]}}}}}}}}}}}}}}},
|
|
0x65: {l: {0x71: {l: {0x3B: {c: [10928]}}}}},
|
|
0x6E: {l: {
|
|
0x61: {l: {0x70: {l: {0x70: {l: {0x72: {l: {0x6F: {l: {0x78: {l: {0x3B: {c: [10938]}}}}}}}}}}}}},
|
|
0x65: {l: {0x71: {l: {0x71: {l: {0x3B: {c: [10934]}}}}}}},
|
|
0x73: {l: {0x69: {l: {0x6D: {l: {0x3B: {c: [8937]}}}}}}}
|
|
}},
|
|
0x73: {l: {0x69: {l: {0x6D: {l: {0x3B: {c: [8831]}}}}}}}
|
|
}}}},
|
|
0x6D: {l: {0x3B: {c: [8721]}}},
|
|
0x6E: {l: {0x67: {l: {0x3B: {c: [9834]}}}}},
|
|
0x70: {l: {
|
|
0x31: {
|
|
l: {0x3B: {c: [185]}},
|
|
c: [185]
|
|
},
|
|
0x32: {
|
|
l: {0x3B: {c: [178]}},
|
|
c: [178]
|
|
},
|
|
0x33: {
|
|
l: {0x3B: {c: [179]}},
|
|
c: [179]
|
|
},
|
|
0x3B: {c: [8835]},
|
|
0x64: {l: {
|
|
0x6F: {l: {0x74: {l: {0x3B: {c: [10942]}}}}},
|
|
0x73: {l: {0x75: {l: {0x62: {l: {0x3B: {c: [10968]}}}}}}}
|
|
}},
|
|
0x45: {l: {0x3B: {c: [10950]}}},
|
|
0x65: {l: {
|
|
0x3B: {c: [8839]},
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [10948]}}}}}}}
|
|
}},
|
|
0x68: {l: {0x73: {l: {
|
|
0x6F: {l: {0x6C: {l: {0x3B: {c: [10185]}}}}},
|
|
0x75: {l: {0x62: {l: {0x3B: {c: [10967]}}}}}
|
|
}}}},
|
|
0x6C: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [10619]}}}}}}}}},
|
|
0x6D: {l: {0x75: {l: {0x6C: {l: {0x74: {l: {0x3B: {c: [10946]}}}}}}}}},
|
|
0x6E: {l: {
|
|
0x45: {l: {0x3B: {c: [10956]}}},
|
|
0x65: {l: {0x3B: {c: [8843]}}}
|
|
}},
|
|
0x70: {l: {0x6C: {l: {0x75: {l: {0x73: {l: {0x3B: {c: [10944]}}}}}}}}},
|
|
0x73: {l: {
|
|
0x65: {l: {0x74: {l: {
|
|
0x3B: {c: [8835]},
|
|
0x65: {l: {0x71: {l: {
|
|
0x3B: {c: [8839]},
|
|
0x71: {l: {0x3B: {c: [10950]}}}
|
|
}}}},
|
|
0x6E: {l: {0x65: {l: {0x71: {l: {
|
|
0x3B: {c: [8843]},
|
|
0x71: {l: {0x3B: {c: [10956]}}}
|
|
}}}}}}
|
|
}}}},
|
|
0x69: {l: {0x6D: {l: {0x3B: {c: [10952]}}}}},
|
|
0x75: {l: {
|
|
0x62: {l: {0x3B: {c: [10964]}}},
|
|
0x70: {l: {0x3B: {c: [10966]}}}
|
|
}}
|
|
}}
|
|
}}
|
|
}},
|
|
0x77: {l: {
|
|
0x61: {l: {0x72: {l: {
|
|
0x68: {l: {0x6B: {l: {0x3B: {c: [10534]}}}}},
|
|
0x72: {l: {
|
|
0x3B: {c: [8601]},
|
|
0x6F: {l: {0x77: {l: {0x3B: {c: [8601]}}}}}
|
|
}}
|
|
}}}},
|
|
0x41: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [8665]}}}}}}},
|
|
0x6E: {l: {0x77: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [10538]}}}}}}}}}
|
|
}},
|
|
0x7A: {l: {0x6C: {l: {0x69: {l: {0x67: {
|
|
l: {0x3B: {c: [223]}},
|
|
c: [223]
|
|
}}}}}}}
|
|
}},
|
|
0x54: {l: {
|
|
0x61: {l: {
|
|
0x62: {l: {0x3B: {c: [9]}}},
|
|
0x75: {l: {0x3B: {c: [932]}}}
|
|
}},
|
|
0x63: {l: {
|
|
0x61: {l: {0x72: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [356]}}}}}}}}},
|
|
0x65: {l: {0x64: {l: {0x69: {l: {0x6C: {l: {0x3B: {c: [354]}}}}}}}}},
|
|
0x79: {l: {0x3B: {c: [1058]}}}
|
|
}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120087]}}}}},
|
|
0x68: {l: {
|
|
0x65: {l: {
|
|
0x72: {l: {0x65: {l: {0x66: {l: {0x6F: {l: {0x72: {l: {0x65: {l: {0x3B: {c: [8756]}}}}}}}}}}}}},
|
|
0x74: {l: {0x61: {l: {0x3B: {c: [920]}}}}}
|
|
}},
|
|
0x69: {l: {
|
|
0x63: {l: {0x6B: {l: {0x53: {l: {0x70: {l: {0x61: {l: {0x63: {l: {0x65: {l: {0x3B: {c: [8287, 8202]}}}}}}}}}}}}}}},
|
|
0x6E: {l: {0x53: {l: {0x70: {l: {0x61: {l: {0x63: {l: {0x65: {l: {0x3B: {c: [8201]}}}}}}}}}}}}}
|
|
}}
|
|
}},
|
|
0x48: {l: {0x4F: {l: {0x52: {l: {0x4E: {
|
|
l: {0x3B: {c: [222]}},
|
|
c: [222]
|
|
}}}}}}},
|
|
0x69: {l: {0x6C: {l: {0x64: {l: {0x65: {l: {
|
|
0x3B: {c: [8764]},
|
|
0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [8771]}}}}}}}}}}},
|
|
0x46: {l: {0x75: {l: {0x6C: {l: {0x6C: {l: {0x45: {l: {0x71: {l: {0x75: {l: {0x61: {l: {0x6C: {l: {0x3B: {c: [8773]}}}}}}}}}}}}}}}}}}},
|
|
0x54: {l: {0x69: {l: {0x6C: {l: {0x64: {l: {0x65: {l: {0x3B: {c: [8776]}}}}}}}}}}}
|
|
}}}}}}}},
|
|
0x6F: {l: {0x70: {l: {0x66: {l: {0x3B: {c: [120139]}}}}}}},
|
|
0x52: {l: {0x41: {l: {0x44: {l: {0x45: {l: {0x3B: {c: [8482]}}}}}}}}},
|
|
0x72: {l: {0x69: {l: {0x70: {l: {0x6C: {l: {0x65: {l: {0x44: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [8411]}}}}}}}}}}}}}}}}},
|
|
0x73: {l: {
|
|
0x63: {l: {0x72: {l: {0x3B: {c: [119983]}}}}},
|
|
0x74: {l: {0x72: {l: {0x6F: {l: {0x6B: {l: {0x3B: {c: [358]}}}}}}}}}
|
|
}},
|
|
0x53: {l: {
|
|
0x63: {l: {0x79: {l: {0x3B: {c: [1062]}}}}},
|
|
0x48: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1035]}}}}}}}
|
|
}}
|
|
}},
|
|
0x74: {l: {
|
|
0x61: {l: {
|
|
0x72: {l: {0x67: {l: {0x65: {l: {0x74: {l: {0x3B: {c: [8982]}}}}}}}}},
|
|
0x75: {l: {0x3B: {c: [964]}}}
|
|
}},
|
|
0x62: {l: {0x72: {l: {0x6B: {l: {0x3B: {c: [9140]}}}}}}},
|
|
0x63: {l: {
|
|
0x61: {l: {0x72: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [357]}}}}}}}}},
|
|
0x65: {l: {0x64: {l: {0x69: {l: {0x6C: {l: {0x3B: {c: [355]}}}}}}}}},
|
|
0x79: {l: {0x3B: {c: [1090]}}}
|
|
}},
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [8411]}}}}}}},
|
|
0x65: {l: {0x6C: {l: {0x72: {l: {0x65: {l: {0x63: {l: {0x3B: {c: [8981]}}}}}}}}}}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120113]}}}}},
|
|
0x68: {l: {
|
|
0x65: {l: {
|
|
0x72: {l: {0x65: {l: {
|
|
0x34: {l: {0x3B: {c: [8756]}}},
|
|
0x66: {l: {0x6F: {l: {0x72: {l: {0x65: {l: {0x3B: {c: [8756]}}}}}}}}}
|
|
}}}},
|
|
0x74: {l: {0x61: {l: {
|
|
0x3B: {c: [952]},
|
|
0x73: {l: {0x79: {l: {0x6D: {l: {0x3B: {c: [977]}}}}}}},
|
|
0x76: {l: {0x3B: {c: [977]}}}
|
|
}}}}
|
|
}},
|
|
0x69: {l: {
|
|
0x63: {l: {0x6B: {l: {
|
|
0x61: {l: {0x70: {l: {0x70: {l: {0x72: {l: {0x6F: {l: {0x78: {l: {0x3B: {c: [8776]}}}}}}}}}}}}},
|
|
0x73: {l: {0x69: {l: {0x6D: {l: {0x3B: {c: [8764]}}}}}}}
|
|
}}}},
|
|
0x6E: {l: {0x73: {l: {0x70: {l: {0x3B: {c: [8201]}}}}}}}
|
|
}},
|
|
0x6B: {l: {
|
|
0x61: {l: {0x70: {l: {0x3B: {c: [8776]}}}}},
|
|
0x73: {l: {0x69: {l: {0x6D: {l: {0x3B: {c: [8764]}}}}}}}
|
|
}},
|
|
0x6F: {l: {0x72: {l: {0x6E: {
|
|
l: {0x3B: {c: [254]}},
|
|
c: [254]
|
|
}}}}}
|
|
}},
|
|
0x69: {l: {
|
|
0x6C: {l: {0x64: {l: {0x65: {l: {0x3B: {c: [732]}}}}}}},
|
|
0x6D: {l: {0x65: {l: {0x73: {
|
|
l: {
|
|
0x62: {l: {
|
|
0x61: {l: {0x72: {l: {0x3B: {c: [10801]}}}}},
|
|
0x3B: {c: [8864]}
|
|
}},
|
|
0x3B: {c: [215]},
|
|
0x64: {l: {0x3B: {c: [10800]}}}
|
|
},
|
|
c: [215]
|
|
}}}}},
|
|
0x6E: {l: {0x74: {l: {0x3B: {c: [8749]}}}}}
|
|
}},
|
|
0x6F: {l: {
|
|
0x65: {l: {0x61: {l: {0x3B: {c: [10536]}}}}},
|
|
0x70: {l: {
|
|
0x62: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [9014]}}}}}}},
|
|
0x63: {l: {0x69: {l: {0x72: {l: {0x3B: {c: [10993]}}}}}}},
|
|
0x3B: {c: [8868]},
|
|
0x66: {l: {
|
|
0x3B: {c: [120165]},
|
|
0x6F: {l: {0x72: {l: {0x6B: {l: {0x3B: {c: [10970]}}}}}}}
|
|
}}
|
|
}},
|
|
0x73: {l: {0x61: {l: {0x3B: {c: [10537]}}}}}
|
|
}},
|
|
0x70: {l: {0x72: {l: {0x69: {l: {0x6D: {l: {0x65: {l: {0x3B: {c: [8244]}}}}}}}}}}},
|
|
0x72: {l: {
|
|
0x61: {l: {0x64: {l: {0x65: {l: {0x3B: {c: [8482]}}}}}}},
|
|
0x69: {l: {
|
|
0x61: {l: {0x6E: {l: {0x67: {l: {0x6C: {l: {0x65: {l: {
|
|
0x3B: {c: [9653]},
|
|
0x64: {l: {0x6F: {l: {0x77: {l: {0x6E: {l: {0x3B: {c: [9663]}}}}}}}}},
|
|
0x6C: {l: {0x65: {l: {0x66: {l: {0x74: {l: {
|
|
0x3B: {c: [9667]},
|
|
0x65: {l: {0x71: {l: {0x3B: {c: [8884]}}}}}
|
|
}}}}}}}},
|
|
0x71: {l: {0x3B: {c: [8796]}}},
|
|
0x72: {l: {0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {
|
|
0x3B: {c: [9657]},
|
|
0x65: {l: {0x71: {l: {0x3B: {c: [8885]}}}}}
|
|
}}}}}}}}}}
|
|
}}}}}}}}}},
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [9708]}}}}}}},
|
|
0x65: {l: {0x3B: {c: [8796]}}},
|
|
0x6D: {l: {0x69: {l: {0x6E: {l: {0x75: {l: {0x73: {l: {0x3B: {c: [10810]}}}}}}}}}}},
|
|
0x70: {l: {0x6C: {l: {0x75: {l: {0x73: {l: {0x3B: {c: [10809]}}}}}}}}},
|
|
0x73: {l: {0x62: {l: {0x3B: {c: [10701]}}}}},
|
|
0x74: {l: {0x69: {l: {0x6D: {l: {0x65: {l: {0x3B: {c: [10811]}}}}}}}}}
|
|
}},
|
|
0x70: {l: {0x65: {l: {0x7A: {l: {0x69: {l: {0x75: {l: {0x6D: {l: {0x3B: {c: [9186]}}}}}}}}}}}}}
|
|
}},
|
|
0x73: {l: {
|
|
0x63: {l: {
|
|
0x72: {l: {0x3B: {c: [120009]}}},
|
|
0x79: {l: {0x3B: {c: [1094]}}}
|
|
}},
|
|
0x68: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1115]}}}}}}},
|
|
0x74: {l: {0x72: {l: {0x6F: {l: {0x6B: {l: {0x3B: {c: [359]}}}}}}}}}
|
|
}},
|
|
0x77: {l: {
|
|
0x69: {l: {0x78: {l: {0x74: {l: {0x3B: {c: [8812]}}}}}}},
|
|
0x6F: {l: {0x68: {l: {0x65: {l: {0x61: {l: {0x64: {l: {
|
|
0x6C: {l: {0x65: {l: {0x66: {l: {0x74: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8606]}}}}}}}}}}}}}}}}}}},
|
|
0x72: {l: {0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8608]}}}}}}}}}}}}}}}}}}}}}
|
|
}}}}}}}}}}
|
|
}}
|
|
}},
|
|
0x55: {l: {
|
|
0x61: {l: {
|
|
0x63: {l: {0x75: {l: {0x74: {l: {0x65: {
|
|
l: {0x3B: {c: [218]}},
|
|
c: [218]
|
|
}}}}}}},
|
|
0x72: {l: {0x72: {l: {
|
|
0x3B: {c: [8607]},
|
|
0x6F: {l: {0x63: {l: {0x69: {l: {0x72: {l: {0x3B: {c: [10569]}}}}}}}}}
|
|
}}}}
|
|
}},
|
|
0x62: {l: {0x72: {l: {
|
|
0x63: {l: {0x79: {l: {0x3B: {c: [1038]}}}}},
|
|
0x65: {l: {0x76: {l: {0x65: {l: {0x3B: {c: [364]}}}}}}}
|
|
}}}},
|
|
0x63: {l: {
|
|
0x69: {l: {0x72: {l: {0x63: {
|
|
l: {0x3B: {c: [219]}},
|
|
c: [219]
|
|
}}}}},
|
|
0x79: {l: {0x3B: {c: [1059]}}}
|
|
}},
|
|
0x64: {l: {0x62: {l: {0x6C: {l: {0x61: {l: {0x63: {l: {0x3B: {c: [368]}}}}}}}}}}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120088]}}}}},
|
|
0x67: {l: {0x72: {l: {0x61: {l: {0x76: {l: {0x65: {
|
|
l: {0x3B: {c: [217]}},
|
|
c: [217]
|
|
}}}}}}}}},
|
|
0x6D: {l: {0x61: {l: {0x63: {l: {0x72: {l: {0x3B: {c: [362]}}}}}}}}},
|
|
0x6E: {l: {
|
|
0x64: {l: {0x65: {l: {0x72: {l: {
|
|
0x42: {l: {
|
|
0x61: {l: {0x72: {l: {0x3B: {c: [95]}}}}},
|
|
0x72: {l: {0x61: {l: {0x63: {l: {
|
|
0x65: {l: {0x3B: {c: [9183]}}},
|
|
0x6B: {l: {0x65: {l: {0x74: {l: {0x3B: {c: [9141]}}}}}}}
|
|
}}}}}}
|
|
}},
|
|
0x50: {l: {0x61: {l: {0x72: {l: {0x65: {l: {0x6E: {l: {0x74: {l: {0x68: {l: {0x65: {l: {0x73: {l: {0x69: {l: {0x73: {l: {0x3B: {c: [9181]}}}}}}}}}}}}}}}}}}}}}}}
|
|
}}}}}},
|
|
0x69: {l: {0x6F: {l: {0x6E: {l: {
|
|
0x3B: {c: [8899]},
|
|
0x50: {l: {0x6C: {l: {0x75: {l: {0x73: {l: {0x3B: {c: [8846]}}}}}}}}}
|
|
}}}}}}
|
|
}},
|
|
0x6F: {l: {
|
|
0x67: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [370]}}}}}}},
|
|
0x70: {l: {0x66: {l: {0x3B: {c: [120140]}}}}}
|
|
}},
|
|
0x70: {l: {
|
|
0x41: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {
|
|
0x42: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [10514]}}}}}}},
|
|
0x3B: {c: [8593]},
|
|
0x44: {l: {0x6F: {l: {0x77: {l: {0x6E: {l: {0x41: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8645]}}}}}}}}}}}}}}}}}}}
|
|
}}}}}}}}}},
|
|
0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8657]}}}}}}}}}}},
|
|
0x44: {l: {0x6F: {l: {0x77: {l: {0x6E: {l: {0x41: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8597]}}}}}}}}}}}}}}}}}}},
|
|
0x64: {l: {0x6F: {l: {0x77: {l: {0x6E: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8661]}}}}}}}}}}}}}}}}}}},
|
|
0x45: {l: {0x71: {l: {0x75: {l: {0x69: {l: {0x6C: {l: {0x69: {l: {0x62: {l: {0x72: {l: {0x69: {l: {0x75: {l: {0x6D: {l: {0x3B: {c: [10606]}}}}}}}}}}}}}}}}}}}}}}},
|
|
0x70: {l: {0x65: {l: {0x72: {l: {
|
|
0x4C: {l: {0x65: {l: {0x66: {l: {0x74: {l: {0x41: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8598]}}}}}}}}}}}}}}}}}}},
|
|
0x52: {l: {0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {0x41: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8599]}}}}}}}}}}}}}}}}}}}}}
|
|
}}}}}},
|
|
0x73: {l: {0x69: {l: {
|
|
0x3B: {c: [978]},
|
|
0x6C: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [933]}}}}}}}
|
|
}}}},
|
|
0x54: {l: {0x65: {l: {0x65: {l: {
|
|
0x41: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8613]}}}}}}}}}}},
|
|
0x3B: {c: [8869]}
|
|
}}}}}}
|
|
}},
|
|
0x72: {l: {0x69: {l: {0x6E: {l: {0x67: {l: {0x3B: {c: [366]}}}}}}}}},
|
|
0x73: {l: {0x63: {l: {0x72: {l: {0x3B: {c: [119984]}}}}}}},
|
|
0x74: {l: {0x69: {l: {0x6C: {l: {0x64: {l: {0x65: {l: {0x3B: {c: [360]}}}}}}}}}}},
|
|
0x75: {l: {0x6D: {l: {0x6C: {
|
|
l: {0x3B: {c: [220]}},
|
|
c: [220]
|
|
}}}}}
|
|
}},
|
|
0x75: {l: {
|
|
0x61: {l: {
|
|
0x63: {l: {0x75: {l: {0x74: {l: {0x65: {
|
|
l: {0x3B: {c: [250]}},
|
|
c: [250]
|
|
}}}}}}},
|
|
0x72: {l: {0x72: {l: {0x3B: {c: [8593]}}}}}
|
|
}},
|
|
0x41: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [8657]}}}}}}},
|
|
0x62: {l: {0x72: {l: {
|
|
0x63: {l: {0x79: {l: {0x3B: {c: [1118]}}}}},
|
|
0x65: {l: {0x76: {l: {0x65: {l: {0x3B: {c: [365]}}}}}}}
|
|
}}}},
|
|
0x63: {l: {
|
|
0x69: {l: {0x72: {l: {0x63: {
|
|
l: {0x3B: {c: [251]}},
|
|
c: [251]
|
|
}}}}},
|
|
0x79: {l: {0x3B: {c: [1091]}}}
|
|
}},
|
|
0x64: {l: {
|
|
0x61: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [8645]}}}}}}},
|
|
0x62: {l: {0x6C: {l: {0x61: {l: {0x63: {l: {0x3B: {c: [369]}}}}}}}}},
|
|
0x68: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [10606]}}}}}}}
|
|
}},
|
|
0x66: {l: {
|
|
0x69: {l: {0x73: {l: {0x68: {l: {0x74: {l: {0x3B: {c: [10622]}}}}}}}}},
|
|
0x72: {l: {0x3B: {c: [120114]}}}
|
|
}},
|
|
0x67: {l: {0x72: {l: {0x61: {l: {0x76: {l: {0x65: {
|
|
l: {0x3B: {c: [249]}},
|
|
c: [249]
|
|
}}}}}}}}},
|
|
0x48: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [10595]}}}}}}},
|
|
0x68: {l: {
|
|
0x61: {l: {0x72: {l: {
|
|
0x6C: {l: {0x3B: {c: [8639]}}},
|
|
0x72: {l: {0x3B: {c: [8638]}}}
|
|
}}}},
|
|
0x62: {l: {0x6C: {l: {0x6B: {l: {0x3B: {c: [9600]}}}}}}}
|
|
}},
|
|
0x6C: {l: {
|
|
0x63: {l: {
|
|
0x6F: {l: {0x72: {l: {0x6E: {l: {
|
|
0x3B: {c: [8988]},
|
|
0x65: {l: {0x72: {l: {0x3B: {c: [8988]}}}}}
|
|
}}}}}},
|
|
0x72: {l: {0x6F: {l: {0x70: {l: {0x3B: {c: [8975]}}}}}}}
|
|
}},
|
|
0x74: {l: {0x72: {l: {0x69: {l: {0x3B: {c: [9720]}}}}}}}
|
|
}},
|
|
0x6D: {l: {
|
|
0x61: {l: {0x63: {l: {0x72: {l: {0x3B: {c: [363]}}}}}}},
|
|
0x6C: {
|
|
l: {0x3B: {c: [168]}},
|
|
c: [168]
|
|
}
|
|
}},
|
|
0x6F: {l: {
|
|
0x67: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [371]}}}}}}},
|
|
0x70: {l: {0x66: {l: {0x3B: {c: [120166]}}}}}
|
|
}},
|
|
0x70: {l: {
|
|
0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8593]}}}}}}}}}}},
|
|
0x64: {l: {0x6F: {l: {0x77: {l: {0x6E: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x3B: {c: [8597]}}}}}}}}}}}}}}}}}}},
|
|
0x68: {l: {0x61: {l: {0x72: {l: {0x70: {l: {0x6F: {l: {0x6F: {l: {0x6E: {l: {
|
|
0x6C: {l: {0x65: {l: {0x66: {l: {0x74: {l: {0x3B: {c: [8639]}}}}}}}}},
|
|
0x72: {l: {0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {0x3B: {c: [8638]}}}}}}}}}}}
|
|
}}}}}}}}}}}}}},
|
|
0x6C: {l: {0x75: {l: {0x73: {l: {0x3B: {c: [8846]}}}}}}},
|
|
0x73: {l: {0x69: {l: {
|
|
0x3B: {c: [965]},
|
|
0x68: {l: {0x3B: {c: [978]}}},
|
|
0x6C: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [965]}}}}}}}
|
|
}}}},
|
|
0x75: {l: {0x70: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x6F: {l: {0x77: {l: {0x73: {l: {0x3B: {c: [8648]}}}}}}}}}}}}}}}}}
|
|
}},
|
|
0x72: {l: {
|
|
0x63: {l: {
|
|
0x6F: {l: {0x72: {l: {0x6E: {l: {
|
|
0x3B: {c: [8989]},
|
|
0x65: {l: {0x72: {l: {0x3B: {c: [8989]}}}}}
|
|
}}}}}},
|
|
0x72: {l: {0x6F: {l: {0x70: {l: {0x3B: {c: [8974]}}}}}}}
|
|
}},
|
|
0x69: {l: {0x6E: {l: {0x67: {l: {0x3B: {c: [367]}}}}}}},
|
|
0x74: {l: {0x72: {l: {0x69: {l: {0x3B: {c: [9721]}}}}}}}
|
|
}},
|
|
0x73: {l: {0x63: {l: {0x72: {l: {0x3B: {c: [120010]}}}}}}},
|
|
0x74: {l: {
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [8944]}}}}}}},
|
|
0x69: {l: {0x6C: {l: {0x64: {l: {0x65: {l: {0x3B: {c: [361]}}}}}}}}},
|
|
0x72: {l: {0x69: {l: {
|
|
0x3B: {c: [9653]},
|
|
0x66: {l: {0x3B: {c: [9652]}}}
|
|
}}}}
|
|
}},
|
|
0x75: {l: {
|
|
0x61: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [8648]}}}}}}},
|
|
0x6D: {l: {0x6C: {
|
|
l: {0x3B: {c: [252]}},
|
|
c: [252]
|
|
}}}
|
|
}},
|
|
0x77: {l: {0x61: {l: {0x6E: {l: {0x67: {l: {0x6C: {l: {0x65: {l: {0x3B: {c: [10663]}}}}}}}}}}}}}
|
|
}},
|
|
0x76: {l: {
|
|
0x61: {l: {
|
|
0x6E: {l: {0x67: {l: {0x72: {l: {0x74: {l: {0x3B: {c: [10652]}}}}}}}}},
|
|
0x72: {l: {
|
|
0x65: {l: {0x70: {l: {0x73: {l: {0x69: {l: {0x6C: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [1013]}}}}}}}}}}}}}}},
|
|
0x6B: {l: {0x61: {l: {0x70: {l: {0x70: {l: {0x61: {l: {0x3B: {c: [1008]}}}}}}}}}}},
|
|
0x6E: {l: {0x6F: {l: {0x74: {l: {0x68: {l: {0x69: {l: {0x6E: {l: {0x67: {l: {0x3B: {c: [8709]}}}}}}}}}}}}}}},
|
|
0x70: {l: {
|
|
0x68: {l: {0x69: {l: {0x3B: {c: [981]}}}}},
|
|
0x69: {l: {0x3B: {c: [982]}}},
|
|
0x72: {l: {0x6F: {l: {0x70: {l: {0x74: {l: {0x6F: {l: {0x3B: {c: [8733]}}}}}}}}}}}
|
|
}},
|
|
0x72: {l: {
|
|
0x3B: {c: [8597]},
|
|
0x68: {l: {0x6F: {l: {0x3B: {c: [1009]}}}}}
|
|
}},
|
|
0x73: {l: {
|
|
0x69: {l: {0x67: {l: {0x6D: {l: {0x61: {l: {0x3B: {c: [962]}}}}}}}}},
|
|
0x75: {l: {
|
|
0x62: {l: {0x73: {l: {0x65: {l: {0x74: {l: {0x6E: {l: {0x65: {l: {0x71: {l: {
|
|
0x3B: {c: [8842, 65024]},
|
|
0x71: {l: {0x3B: {c: [10955, 65024]}}}
|
|
}}}}}}}}}}}}}},
|
|
0x70: {l: {0x73: {l: {0x65: {l: {0x74: {l: {0x6E: {l: {0x65: {l: {0x71: {l: {
|
|
0x3B: {c: [8843, 65024]},
|
|
0x71: {l: {0x3B: {c: [10956, 65024]}}}
|
|
}}}}}}}}}}}}}}
|
|
}}
|
|
}},
|
|
0x74: {l: {
|
|
0x68: {l: {0x65: {l: {0x74: {l: {0x61: {l: {0x3B: {c: [977]}}}}}}}}},
|
|
0x72: {l: {0x69: {l: {0x61: {l: {0x6E: {l: {0x67: {l: {0x6C: {l: {0x65: {l: {
|
|
0x6C: {l: {0x65: {l: {0x66: {l: {0x74: {l: {0x3B: {c: [8882]}}}}}}}}},
|
|
0x72: {l: {0x69: {l: {0x67: {l: {0x68: {l: {0x74: {l: {0x3B: {c: [8883]}}}}}}}}}}}
|
|
}}}}}}}}}}}}}}
|
|
}}
|
|
}}
|
|
}},
|
|
0x41: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [8661]}}}}}}},
|
|
0x42: {l: {0x61: {l: {0x72: {l: {
|
|
0x3B: {c: [10984]},
|
|
0x76: {l: {0x3B: {c: [10985]}}}
|
|
}}}}}},
|
|
0x63: {l: {0x79: {l: {0x3B: {c: [1074]}}}}},
|
|
0x64: {l: {0x61: {l: {0x73: {l: {0x68: {l: {0x3B: {c: [8866]}}}}}}}}},
|
|
0x44: {l: {0x61: {l: {0x73: {l: {0x68: {l: {0x3B: {c: [8872]}}}}}}}}},
|
|
0x65: {l: {
|
|
0x65: {l: {
|
|
0x62: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [8891]}}}}}}},
|
|
0x3B: {c: [8744]},
|
|
0x65: {l: {0x71: {l: {0x3B: {c: [8794]}}}}}
|
|
}},
|
|
0x6C: {l: {0x6C: {l: {0x69: {l: {0x70: {l: {0x3B: {c: [8942]}}}}}}}}},
|
|
0x72: {l: {
|
|
0x62: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [124]}}}}}}},
|
|
0x74: {l: {0x3B: {c: [124]}}}
|
|
}}
|
|
}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120115]}}}}},
|
|
0x6C: {l: {0x74: {l: {0x72: {l: {0x69: {l: {0x3B: {c: [8882]}}}}}}}}},
|
|
0x6E: {l: {0x73: {l: {0x75: {l: {
|
|
0x62: {l: {0x3B: {c: [8834, 8402]}}},
|
|
0x70: {l: {0x3B: {c: [8835, 8402]}}}
|
|
}}}}}},
|
|
0x6F: {l: {0x70: {l: {0x66: {l: {0x3B: {c: [120167]}}}}}}},
|
|
0x70: {l: {0x72: {l: {0x6F: {l: {0x70: {l: {0x3B: {c: [8733]}}}}}}}}},
|
|
0x72: {l: {0x74: {l: {0x72: {l: {0x69: {l: {0x3B: {c: [8883]}}}}}}}}},
|
|
0x73: {l: {
|
|
0x63: {l: {0x72: {l: {0x3B: {c: [120011]}}}}},
|
|
0x75: {l: {
|
|
0x62: {l: {0x6E: {l: {
|
|
0x45: {l: {0x3B: {c: [10955, 65024]}}},
|
|
0x65: {l: {0x3B: {c: [8842, 65024]}}}
|
|
}}}},
|
|
0x70: {l: {0x6E: {l: {
|
|
0x45: {l: {0x3B: {c: [10956, 65024]}}},
|
|
0x65: {l: {0x3B: {c: [8843, 65024]}}}
|
|
}}}}
|
|
}}
|
|
}},
|
|
0x7A: {l: {0x69: {l: {0x67: {l: {0x7A: {l: {0x61: {l: {0x67: {l: {0x3B: {c: [10650]}}}}}}}}}}}}}
|
|
}},
|
|
0x56: {l: {
|
|
0x62: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [10987]}}}}}}},
|
|
0x63: {l: {0x79: {l: {0x3B: {c: [1042]}}}}},
|
|
0x64: {l: {0x61: {l: {0x73: {l: {0x68: {l: {
|
|
0x3B: {c: [8873]},
|
|
0x6C: {l: {0x3B: {c: [10982]}}}
|
|
}}}}}}}},
|
|
0x44: {l: {0x61: {l: {0x73: {l: {0x68: {l: {0x3B: {c: [8875]}}}}}}}}},
|
|
0x65: {l: {
|
|
0x65: {l: {0x3B: {c: [8897]}}},
|
|
0x72: {l: {
|
|
0x62: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [8214]}}}}}}},
|
|
0x74: {l: {
|
|
0x3B: {c: [8214]},
|
|
0x69: {l: {0x63: {l: {0x61: {l: {0x6C: {l: {
|
|
0x42: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [8739]}}}}}}},
|
|
0x4C: {l: {0x69: {l: {0x6E: {l: {0x65: {l: {0x3B: {c: [124]}}}}}}}}},
|
|
0x53: {l: {0x65: {l: {0x70: {l: {0x61: {l: {0x72: {l: {0x61: {l: {0x74: {l: {0x6F: {l: {0x72: {l: {0x3B: {c: [10072]}}}}}}}}}}}}}}}}}}},
|
|
0x54: {l: {0x69: {l: {0x6C: {l: {0x64: {l: {0x65: {l: {0x3B: {c: [8768]}}}}}}}}}}}
|
|
}}}}}}}}
|
|
}},
|
|
0x79: {l: {0x54: {l: {0x68: {l: {0x69: {l: {0x6E: {l: {0x53: {l: {0x70: {l: {0x61: {l: {0x63: {l: {0x65: {l: {0x3B: {c: [8202]}}}}}}}}}}}}}}}}}}}}}
|
|
}}
|
|
}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120089]}}}}},
|
|
0x6F: {l: {0x70: {l: {0x66: {l: {0x3B: {c: [120141]}}}}}}},
|
|
0x73: {l: {0x63: {l: {0x72: {l: {0x3B: {c: [119985]}}}}}}},
|
|
0x76: {l: {0x64: {l: {0x61: {l: {0x73: {l: {0x68: {l: {0x3B: {c: [8874]}}}}}}}}}}}
|
|
}},
|
|
0x57: {l: {
|
|
0x63: {l: {0x69: {l: {0x72: {l: {0x63: {l: {0x3B: {c: [372]}}}}}}}}},
|
|
0x65: {l: {0x64: {l: {0x67: {l: {0x65: {l: {0x3B: {c: [8896]}}}}}}}}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120090]}}}}},
|
|
0x6F: {l: {0x70: {l: {0x66: {l: {0x3B: {c: [120142]}}}}}}},
|
|
0x73: {l: {0x63: {l: {0x72: {l: {0x3B: {c: [119986]}}}}}}}
|
|
}},
|
|
0x77: {l: {
|
|
0x63: {l: {0x69: {l: {0x72: {l: {0x63: {l: {0x3B: {c: [373]}}}}}}}}},
|
|
0x65: {l: {
|
|
0x64: {l: {
|
|
0x62: {l: {0x61: {l: {0x72: {l: {0x3B: {c: [10847]}}}}}}},
|
|
0x67: {l: {0x65: {l: {
|
|
0x3B: {c: [8743]},
|
|
0x71: {l: {0x3B: {c: [8793]}}}
|
|
}}}}
|
|
}},
|
|
0x69: {l: {0x65: {l: {0x72: {l: {0x70: {l: {0x3B: {c: [8472]}}}}}}}}}
|
|
}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120116]}}}}},
|
|
0x6F: {l: {0x70: {l: {0x66: {l: {0x3B: {c: [120168]}}}}}}},
|
|
0x70: {l: {0x3B: {c: [8472]}}},
|
|
0x72: {l: {
|
|
0x3B: {c: [8768]},
|
|
0x65: {l: {0x61: {l: {0x74: {l: {0x68: {l: {0x3B: {c: [8768]}}}}}}}}}
|
|
}},
|
|
0x73: {l: {0x63: {l: {0x72: {l: {0x3B: {c: [120012]}}}}}}}
|
|
}},
|
|
0x78: {l: {
|
|
0x63: {l: {
|
|
0x61: {l: {0x70: {l: {0x3B: {c: [8898]}}}}},
|
|
0x69: {l: {0x72: {l: {0x63: {l: {0x3B: {c: [9711]}}}}}}},
|
|
0x75: {l: {0x70: {l: {0x3B: {c: [8899]}}}}}
|
|
}},
|
|
0x64: {l: {0x74: {l: {0x72: {l: {0x69: {l: {0x3B: {c: [9661]}}}}}}}}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120117]}}}}},
|
|
0x68: {l: {
|
|
0x61: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [10231]}}}}}}},
|
|
0x41: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [10234]}}}}}}}
|
|
}},
|
|
0x69: {l: {0x3B: {c: [958]}}},
|
|
0x6C: {l: {
|
|
0x61: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [10229]}}}}}}},
|
|
0x41: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [10232]}}}}}}}
|
|
}},
|
|
0x6D: {l: {0x61: {l: {0x70: {l: {0x3B: {c: [10236]}}}}}}},
|
|
0x6E: {l: {0x69: {l: {0x73: {l: {0x3B: {c: [8955]}}}}}}},
|
|
0x6F: {l: {
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [10752]}}}}}}},
|
|
0x70: {l: {
|
|
0x66: {l: {0x3B: {c: [120169]}}},
|
|
0x6C: {l: {0x75: {l: {0x73: {l: {0x3B: {c: [10753]}}}}}}}
|
|
}},
|
|
0x74: {l: {0x69: {l: {0x6D: {l: {0x65: {l: {0x3B: {c: [10754]}}}}}}}}}
|
|
}},
|
|
0x72: {l: {
|
|
0x61: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [10230]}}}}}}},
|
|
0x41: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [10233]}}}}}}}
|
|
}},
|
|
0x73: {l: {
|
|
0x63: {l: {0x72: {l: {0x3B: {c: [120013]}}}}},
|
|
0x71: {l: {0x63: {l: {0x75: {l: {0x70: {l: {0x3B: {c: [10758]}}}}}}}}}
|
|
}},
|
|
0x75: {l: {
|
|
0x70: {l: {0x6C: {l: {0x75: {l: {0x73: {l: {0x3B: {c: [10756]}}}}}}}}},
|
|
0x74: {l: {0x72: {l: {0x69: {l: {0x3B: {c: [9651]}}}}}}}
|
|
}},
|
|
0x76: {l: {0x65: {l: {0x65: {l: {0x3B: {c: [8897]}}}}}}},
|
|
0x77: {l: {0x65: {l: {0x64: {l: {0x67: {l: {0x65: {l: {0x3B: {c: [8896]}}}}}}}}}}}
|
|
}},
|
|
0x58: {l: {
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120091]}}}}},
|
|
0x69: {l: {0x3B: {c: [926]}}},
|
|
0x6F: {l: {0x70: {l: {0x66: {l: {0x3B: {c: [120143]}}}}}}},
|
|
0x73: {l: {0x63: {l: {0x72: {l: {0x3B: {c: [119987]}}}}}}}
|
|
}},
|
|
0x59: {l: {
|
|
0x61: {l: {0x63: {l: {0x75: {l: {0x74: {l: {0x65: {
|
|
l: {0x3B: {c: [221]}},
|
|
c: [221]
|
|
}}}}}}}}},
|
|
0x41: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1071]}}}}}}},
|
|
0x63: {l: {
|
|
0x69: {l: {0x72: {l: {0x63: {l: {0x3B: {c: [374]}}}}}}},
|
|
0x79: {l: {0x3B: {c: [1067]}}}
|
|
}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120092]}}}}},
|
|
0x49: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1031]}}}}}}},
|
|
0x6F: {l: {0x70: {l: {0x66: {l: {0x3B: {c: [120144]}}}}}}},
|
|
0x73: {l: {0x63: {l: {0x72: {l: {0x3B: {c: [119988]}}}}}}},
|
|
0x55: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1070]}}}}}}},
|
|
0x75: {l: {0x6D: {l: {0x6C: {l: {0x3B: {c: [376]}}}}}}}
|
|
}},
|
|
0x79: {l: {
|
|
0x61: {l: {0x63: {l: {
|
|
0x75: {l: {0x74: {l: {0x65: {
|
|
l: {0x3B: {c: [253]}},
|
|
c: [253]
|
|
}}}}},
|
|
0x79: {l: {0x3B: {c: [1103]}}}
|
|
}}}},
|
|
0x63: {l: {
|
|
0x69: {l: {0x72: {l: {0x63: {l: {0x3B: {c: [375]}}}}}}},
|
|
0x79: {l: {0x3B: {c: [1099]}}}
|
|
}},
|
|
0x65: {l: {0x6E: {
|
|
l: {0x3B: {c: [165]}},
|
|
c: [165]
|
|
}}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120118]}}}}},
|
|
0x69: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1111]}}}}}}},
|
|
0x6F: {l: {0x70: {l: {0x66: {l: {0x3B: {c: [120170]}}}}}}},
|
|
0x73: {l: {0x63: {l: {0x72: {l: {0x3B: {c: [120014]}}}}}}},
|
|
0x75: {l: {
|
|
0x63: {l: {0x79: {l: {0x3B: {c: [1102]}}}}},
|
|
0x6D: {l: {0x6C: {
|
|
l: {0x3B: {c: [255]}},
|
|
c: [255]
|
|
}}}
|
|
}}
|
|
}},
|
|
0x5A: {l: {
|
|
0x61: {l: {0x63: {l: {0x75: {l: {0x74: {l: {0x65: {l: {0x3B: {c: [377]}}}}}}}}}}},
|
|
0x63: {l: {
|
|
0x61: {l: {0x72: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [381]}}}}}}}}},
|
|
0x79: {l: {0x3B: {c: [1047]}}}
|
|
}},
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [379]}}}}}}},
|
|
0x65: {l: {
|
|
0x72: {l: {0x6F: {l: {0x57: {l: {0x69: {l: {0x64: {l: {0x74: {l: {0x68: {l: {0x53: {l: {0x70: {l: {0x61: {l: {0x63: {l: {0x65: {l: {0x3B: {c: [8203]}}}}}}}}}}}}}}}}}}}}}}}}},
|
|
0x74: {l: {0x61: {l: {0x3B: {c: [918]}}}}}
|
|
}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [8488]}}}}},
|
|
0x48: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1046]}}}}}}},
|
|
0x6F: {l: {0x70: {l: {0x66: {l: {0x3B: {c: [8484]}}}}}}},
|
|
0x73: {l: {0x63: {l: {0x72: {l: {0x3B: {c: [119989]}}}}}}}
|
|
}},
|
|
0x7A: {l: {
|
|
0x61: {l: {0x63: {l: {0x75: {l: {0x74: {l: {0x65: {l: {0x3B: {c: [378]}}}}}}}}}}},
|
|
0x63: {l: {
|
|
0x61: {l: {0x72: {l: {0x6F: {l: {0x6E: {l: {0x3B: {c: [382]}}}}}}}}},
|
|
0x79: {l: {0x3B: {c: [1079]}}}
|
|
}},
|
|
0x64: {l: {0x6F: {l: {0x74: {l: {0x3B: {c: [380]}}}}}}},
|
|
0x65: {l: {
|
|
0x65: {l: {0x74: {l: {0x72: {l: {0x66: {l: {0x3B: {c: [8488]}}}}}}}}},
|
|
0x74: {l: {0x61: {l: {0x3B: {c: [950]}}}}}
|
|
}},
|
|
0x66: {l: {0x72: {l: {0x3B: {c: [120119]}}}}},
|
|
0x68: {l: {0x63: {l: {0x79: {l: {0x3B: {c: [1078]}}}}}}},
|
|
0x69: {l: {0x67: {l: {0x72: {l: {0x61: {l: {0x72: {l: {0x72: {l: {0x3B: {c: [8669]}}}}}}}}}}}}},
|
|
0x6F: {l: {0x70: {l: {0x66: {l: {0x3B: {c: [120171]}}}}}}},
|
|
0x73: {l: {0x63: {l: {0x72: {l: {0x3B: {c: [120015]}}}}}}},
|
|
0x77: {l: {
|
|
0x6A: {l: {0x3B: {c: [8205]}}},
|
|
0x6E: {l: {0x6A: {l: {0x3B: {c: [8204]}}}}}
|
|
}}
|
|
}}
|
|
};
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("parse5/lib/common/html", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
'use strict';
|
|
var NS = exports.NAMESPACES = {
|
|
HTML: 'http://www.w3.org/1999/xhtml',
|
|
MATHML: 'http://www.w3.org/1998/Math/MathML',
|
|
SVG: 'http://www.w3.org/2000/svg',
|
|
XLINK: 'http://www.w3.org/1999/xlink',
|
|
XML: 'http://www.w3.org/XML/1998/namespace',
|
|
XMLNS: 'http://www.w3.org/2000/xmlns/'
|
|
};
|
|
exports.ATTRS = {
|
|
TYPE: 'type',
|
|
ACTION: 'action',
|
|
ENCODING: 'encoding',
|
|
PROMPT: 'prompt',
|
|
NAME: 'name',
|
|
COLOR: 'color',
|
|
FACE: 'face',
|
|
SIZE: 'size'
|
|
};
|
|
var $ = exports.TAG_NAMES = {
|
|
A: 'a',
|
|
ADDRESS: 'address',
|
|
ANNOTATION_XML: 'annotation-xml',
|
|
APPLET: 'applet',
|
|
AREA: 'area',
|
|
ARTICLE: 'article',
|
|
ASIDE: 'aside',
|
|
B: 'b',
|
|
BASE: 'base',
|
|
BASEFONT: 'basefont',
|
|
BGSOUND: 'bgsound',
|
|
BIG: 'big',
|
|
BLOCKQUOTE: 'blockquote',
|
|
BODY: 'body',
|
|
BR: 'br',
|
|
BUTTON: 'button',
|
|
CAPTION: 'caption',
|
|
CENTER: 'center',
|
|
CODE: 'code',
|
|
COL: 'col',
|
|
COLGROUP: 'colgroup',
|
|
COMMAND: 'command',
|
|
DD: 'dd',
|
|
DESC: 'desc',
|
|
DETAILS: 'details',
|
|
DIALOG: 'dialog',
|
|
DIR: 'dir',
|
|
DIV: 'div',
|
|
DL: 'dl',
|
|
DT: 'dt',
|
|
EM: 'em',
|
|
EMBED: 'embed',
|
|
FIELDSET: 'fieldset',
|
|
FIGCAPTION: 'figcaption',
|
|
FIGURE: 'figure',
|
|
FONT: 'font',
|
|
FOOTER: 'footer',
|
|
FOREIGN_OBJECT: 'foreignObject',
|
|
FORM: 'form',
|
|
FRAME: 'frame',
|
|
FRAMESET: 'frameset',
|
|
H1: 'h1',
|
|
H2: 'h2',
|
|
H3: 'h3',
|
|
H4: 'h4',
|
|
H5: 'h5',
|
|
H6: 'h6',
|
|
HEAD: 'head',
|
|
HEADER: 'header',
|
|
HGROUP: 'hgroup',
|
|
HR: 'hr',
|
|
HTML: 'html',
|
|
I: 'i',
|
|
IMG: 'img',
|
|
IMAGE: 'image',
|
|
INPUT: 'input',
|
|
IFRAME: 'iframe',
|
|
ISINDEX: 'isindex',
|
|
KEYGEN: 'keygen',
|
|
LABEL: 'label',
|
|
LI: 'li',
|
|
LINK: 'link',
|
|
LISTING: 'listing',
|
|
MAIN: 'main',
|
|
MALIGNMARK: 'malignmark',
|
|
MARQUEE: 'marquee',
|
|
MATH: 'math',
|
|
MENU: 'menu',
|
|
MENUITEM: 'menuitem',
|
|
META: 'meta',
|
|
MGLYPH: 'mglyph',
|
|
MI: 'mi',
|
|
MO: 'mo',
|
|
MN: 'mn',
|
|
MS: 'ms',
|
|
MTEXT: 'mtext',
|
|
NAV: 'nav',
|
|
NOBR: 'nobr',
|
|
NOFRAMES: 'noframes',
|
|
NOEMBED: 'noembed',
|
|
NOSCRIPT: 'noscript',
|
|
OBJECT: 'object',
|
|
OL: 'ol',
|
|
OPTGROUP: 'optgroup',
|
|
OPTION: 'option',
|
|
P: 'p',
|
|
PARAM: 'param',
|
|
PLAINTEXT: 'plaintext',
|
|
PRE: 'pre',
|
|
RP: 'rp',
|
|
RT: 'rt',
|
|
RUBY: 'ruby',
|
|
S: 's',
|
|
SCRIPT: 'script',
|
|
SECTION: 'section',
|
|
SELECT: 'select',
|
|
SOURCE: 'source',
|
|
SMALL: 'small',
|
|
SPAN: 'span',
|
|
STRIKE: 'strike',
|
|
STRONG: 'strong',
|
|
STYLE: 'style',
|
|
SUB: 'sub',
|
|
SUMMARY: 'summary',
|
|
SUP: 'sup',
|
|
TABLE: 'table',
|
|
TBODY: 'tbody',
|
|
TEMPLATE: 'template',
|
|
TEXTAREA: 'textarea',
|
|
TFOOT: 'tfoot',
|
|
TD: 'td',
|
|
TH: 'th',
|
|
THEAD: 'thead',
|
|
TITLE: 'title',
|
|
TR: 'tr',
|
|
TRACK: 'track',
|
|
TT: 'tt',
|
|
U: 'u',
|
|
UL: 'ul',
|
|
SVG: 'svg',
|
|
VAR: 'var',
|
|
WBR: 'wbr',
|
|
XMP: 'xmp'
|
|
};
|
|
var SPECIAL_ELEMENTS = exports.SPECIAL_ELEMENTS = {};
|
|
SPECIAL_ELEMENTS[NS.HTML] = {};
|
|
SPECIAL_ELEMENTS[NS.HTML][$.ADDRESS] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.APPLET] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.AREA] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.ARTICLE] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.ASIDE] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.BASE] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.BASEFONT] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.BGSOUND] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.BLOCKQUOTE] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.BODY] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.BR] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.BUTTON] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.CAPTION] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.CENTER] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.COL] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.COLGROUP] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.DD] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.DETAILS] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.DIR] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.DIV] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.DL] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.DT] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.EMBED] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.FIELDSET] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.FIGCAPTION] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.FIGURE] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.FOOTER] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.FORM] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.FRAME] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.FRAMESET] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.H1] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.H2] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.H3] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.H4] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.H5] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.H6] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.HEAD] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.HEADER] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.HGROUP] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.HR] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.HTML] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.IFRAME] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.IMG] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.INPUT] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.ISINDEX] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.LI] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.LINK] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.LISTING] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.MAIN] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.MARQUEE] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.MENU] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.MENUITEM] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.META] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.NAV] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.NOEMBED] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.NOFRAMES] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.NOSCRIPT] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.OBJECT] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.OL] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.P] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.PARAM] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.PLAINTEXT] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.PRE] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.SCRIPT] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.SECTION] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.SELECT] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.SOURCE] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.STYLE] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.SUMMARY] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.TABLE] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.TBODY] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.TD] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.TEMPLATE] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.TEXTAREA] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.TFOOT] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.TH] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.THEAD] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.TITLE] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.TR] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.TRACK] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.UL] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.WBR] = true;
|
|
SPECIAL_ELEMENTS[NS.HTML][$.XMP] = true;
|
|
SPECIAL_ELEMENTS[NS.MATHML] = {};
|
|
SPECIAL_ELEMENTS[NS.MATHML][$.MI] = true;
|
|
SPECIAL_ELEMENTS[NS.MATHML][$.MO] = true;
|
|
SPECIAL_ELEMENTS[NS.MATHML][$.MN] = true;
|
|
SPECIAL_ELEMENTS[NS.MATHML][$.MS] = true;
|
|
SPECIAL_ELEMENTS[NS.MATHML][$.MTEXT] = true;
|
|
SPECIAL_ELEMENTS[NS.MATHML][$.ANNOTATION_XML] = true;
|
|
SPECIAL_ELEMENTS[NS.SVG] = {};
|
|
SPECIAL_ELEMENTS[NS.SVG][$.TITLE] = true;
|
|
SPECIAL_ELEMENTS[NS.SVG][$.FOREIGN_OBJECT] = true;
|
|
SPECIAL_ELEMENTS[NS.SVG][$.DESC] = true;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("parse5/lib/tree_construction/formatting_element_list", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
'use strict';
|
|
var NOAH_ARK_CAPACITY = 3;
|
|
var FormattingElementList = module.exports = function(treeAdapter) {
|
|
this.length = 0;
|
|
this.entries = [];
|
|
this.treeAdapter = treeAdapter;
|
|
this.bookmark = null;
|
|
};
|
|
FormattingElementList.MARKER_ENTRY = 'MARKER_ENTRY';
|
|
FormattingElementList.ELEMENT_ENTRY = 'ELEMENT_ENTRY';
|
|
FormattingElementList.prototype._getNoahArkConditionCandidates = function(newElement) {
|
|
var candidates = [];
|
|
if (this.length >= NOAH_ARK_CAPACITY) {
|
|
var neAttrsLength = this.treeAdapter.getAttrList(newElement).length,
|
|
neTagName = this.treeAdapter.getTagName(newElement),
|
|
neNamespaceURI = this.treeAdapter.getNamespaceURI(newElement);
|
|
for (var i = this.length - 1; i >= 0; i--) {
|
|
var entry = this.entries[i];
|
|
if (entry.type === FormattingElementList.MARKER_ENTRY)
|
|
break;
|
|
var element = entry.element,
|
|
elementAttrs = this.treeAdapter.getAttrList(element);
|
|
if (this.treeAdapter.getTagName(element) === neTagName && this.treeAdapter.getNamespaceURI(element) === neNamespaceURI && elementAttrs.length === neAttrsLength) {
|
|
candidates.push({
|
|
idx: i,
|
|
attrs: elementAttrs
|
|
});
|
|
}
|
|
}
|
|
}
|
|
return candidates.length < NOAH_ARK_CAPACITY ? [] : candidates;
|
|
};
|
|
FormattingElementList.prototype._ensureNoahArkCondition = function(newElement) {
|
|
var candidates = this._getNoahArkConditionCandidates(newElement),
|
|
cLength = candidates.length;
|
|
if (cLength) {
|
|
var neAttrs = this.treeAdapter.getAttrList(newElement),
|
|
neAttrsLength = neAttrs.length,
|
|
neAttrsMap = {};
|
|
for (var i = 0; i < neAttrsLength; i++) {
|
|
var neAttr = neAttrs[i];
|
|
neAttrsMap[neAttr.name] = neAttr.value;
|
|
}
|
|
for (var i = 0; i < neAttrsLength; i++) {
|
|
for (var j = 0; j < cLength; j++) {
|
|
var cAttr = candidates[j].attrs[i];
|
|
if (neAttrsMap[cAttr.name] !== cAttr.value) {
|
|
candidates.splice(j, 1);
|
|
cLength--;
|
|
}
|
|
if (candidates.length < NOAH_ARK_CAPACITY)
|
|
return ;
|
|
}
|
|
}
|
|
for (var i = cLength - 1; i >= NOAH_ARK_CAPACITY - 1; i--) {
|
|
this.entries.splice(candidates[i].idx, 1);
|
|
this.length--;
|
|
}
|
|
}
|
|
};
|
|
FormattingElementList.prototype.insertMarker = function() {
|
|
this.entries.push({type: FormattingElementList.MARKER_ENTRY});
|
|
this.length++;
|
|
};
|
|
FormattingElementList.prototype.pushElement = function(element, token) {
|
|
this._ensureNoahArkCondition(element);
|
|
this.entries.push({
|
|
type: FormattingElementList.ELEMENT_ENTRY,
|
|
element: element,
|
|
token: token
|
|
});
|
|
this.length++;
|
|
};
|
|
FormattingElementList.prototype.insertElementAfterBookmark = function(element, token) {
|
|
var bookmarkIdx = this.length - 1;
|
|
for (; bookmarkIdx >= 0; bookmarkIdx--) {
|
|
if (this.entries[bookmarkIdx] === this.bookmark)
|
|
break;
|
|
}
|
|
this.entries.splice(bookmarkIdx + 1, 0, {
|
|
type: FormattingElementList.ELEMENT_ENTRY,
|
|
element: element,
|
|
token: token
|
|
});
|
|
this.length++;
|
|
};
|
|
FormattingElementList.prototype.removeEntry = function(entry) {
|
|
for (var i = this.length - 1; i >= 0; i--) {
|
|
if (this.entries[i] === entry) {
|
|
this.entries.splice(i, 1);
|
|
this.length--;
|
|
break;
|
|
}
|
|
}
|
|
};
|
|
FormattingElementList.prototype.clearToLastMarker = function() {
|
|
while (this.length) {
|
|
var entry = this.entries.pop();
|
|
this.length--;
|
|
if (entry.type === FormattingElementList.MARKER_ENTRY)
|
|
break;
|
|
}
|
|
};
|
|
FormattingElementList.prototype.getElementEntryInScopeWithTagName = function(tagName) {
|
|
for (var i = this.length - 1; i >= 0; i--) {
|
|
var entry = this.entries[i];
|
|
if (entry.type === FormattingElementList.MARKER_ENTRY)
|
|
return null;
|
|
if (this.treeAdapter.getTagName(entry.element) === tagName)
|
|
return entry;
|
|
}
|
|
return null;
|
|
};
|
|
FormattingElementList.prototype.getElementEntry = function(element) {
|
|
for (var i = this.length - 1; i >= 0; i--) {
|
|
var entry = this.entries[i];
|
|
if (entry.type === FormattingElementList.ELEMENT_ENTRY && entry.element == element)
|
|
return entry;
|
|
}
|
|
return null;
|
|
};
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("parse5/lib/tree_construction/doctype", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
'use strict';
|
|
var VALID_DOCTYPE_NAME = 'html',
|
|
QUIRKS_MODE_SYSTEM_ID = 'http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd',
|
|
QUIRKS_MODE_PUBLIC_ID_PREFIXES = ["+//silmaril//dtd html pro v0r11 19970101//en", "-//advasoft ltd//dtd html 3.0 aswedit + extensions//en", "-//as//dtd html 3.0 aswedit + extensions//en", "-//ietf//dtd html 2.0 level 1//en", "-//ietf//dtd html 2.0 level 2//en", "-//ietf//dtd html 2.0 strict level 1//en", "-//ietf//dtd html 2.0 strict level 2//en", "-//ietf//dtd html 2.0 strict//en", "-//ietf//dtd html 2.0//en", "-//ietf//dtd html 2.1e//en", "-//ietf//dtd html 3.0//en", "-//ietf//dtd html 3.0//en//", "-//ietf//dtd html 3.2 final//en", "-//ietf//dtd html 3.2//en", "-//ietf//dtd html 3//en", "-//ietf//dtd html level 0//en", "-//ietf//dtd html level 0//en//2.0", "-//ietf//dtd html level 1//en", "-//ietf//dtd html level 1//en//2.0", "-//ietf//dtd html level 2//en", "-//ietf//dtd html level 2//en//2.0", "-//ietf//dtd html level 3//en", "-//ietf//dtd html level 3//en//3.0", "-//ietf//dtd html strict level 0//en", "-//ietf//dtd html strict level 0//en//2.0", "-//ietf//dtd html strict level 1//en", "-//ietf//dtd html strict level 1//en//2.0", "-//ietf//dtd html strict level 2//en", "-//ietf//dtd html strict level 2//en//2.0", "-//ietf//dtd html strict level 3//en", "-//ietf//dtd html strict level 3//en//3.0", "-//ietf//dtd html strict//en", "-//ietf//dtd html strict//en//2.0", "-//ietf//dtd html strict//en//3.0", "-//ietf//dtd html//en", "-//ietf//dtd html//en//2.0", "-//ietf//dtd html//en//3.0", "-//metrius//dtd metrius presentational//en", "-//microsoft//dtd internet explorer 2.0 html strict//en", "-//microsoft//dtd internet explorer 2.0 html//en", "-//microsoft//dtd internet explorer 2.0 tables//en", "-//microsoft//dtd internet explorer 3.0 html strict//en", "-//microsoft//dtd internet explorer 3.0 html//en", "-//microsoft//dtd internet explorer 3.0 tables//en", "-//netscape comm. corp.//dtd html//en", "-//netscape comm. corp.//dtd strict html//en", "-//o'reilly and associates//dtd html 2.0//en", "-//o'reilly and associates//dtd html extended 1.0//en", "-//spyglass//dtd html 2.0 extended//en", "-//sq//dtd html 2.0 hotmetal + extensions//en", "-//sun microsystems corp.//dtd hotjava html//en", "-//sun microsystems corp.//dtd hotjava strict html//en", "-//w3c//dtd html 3 1995-03-24//en", "-//w3c//dtd html 3.2 draft//en", "-//w3c//dtd html 3.2 final//en", "-//w3c//dtd html 3.2//en", "-//w3c//dtd html 3.2s draft//en", "-//w3c//dtd html 4.0 frameset//en", "-//w3c//dtd html 4.0 transitional//en", "-//w3c//dtd html experimental 19960712//en", "-//w3c//dtd html experimental 970421//en", "-//w3c//dtd w3 html//en", "-//w3o//dtd w3 html 3.0//en", "-//w3o//dtd w3 html 3.0//en//", "-//webtechs//dtd mozilla html 2.0//en", "-//webtechs//dtd mozilla html//en"],
|
|
QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES = ['-//w3c//dtd html 4.01 frameset//', '-//w3c//dtd html 4.01 transitional//'],
|
|
QUIRKS_MODE_PUBLIC_IDS = ['-//w3o//dtd w3 html strict 3.0//en//', '-/w3c/dtd html 4.0 transitional/en', 'html'];
|
|
exports.isQuirks = function(name, publicId, systemId) {
|
|
if (name !== VALID_DOCTYPE_NAME)
|
|
return true;
|
|
if (systemId && systemId.toLowerCase() === QUIRKS_MODE_SYSTEM_ID)
|
|
return true;
|
|
if (publicId !== null) {
|
|
publicId = publicId.toLowerCase();
|
|
if (QUIRKS_MODE_PUBLIC_IDS.indexOf(publicId) > -1)
|
|
return true;
|
|
var prefixes = QUIRKS_MODE_PUBLIC_ID_PREFIXES;
|
|
if (systemId === null)
|
|
prefixes = prefixes.concat(QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES);
|
|
for (var i = 0; i < prefixes.length; i++) {
|
|
if (publicId.indexOf(prefixes[i]) === 0)
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
};
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("parse5/lib/tree_adapters/default", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
'use strict';
|
|
exports.createDocument = function() {
|
|
return {
|
|
nodeName: '#document',
|
|
quirksMode: false,
|
|
childNodes: []
|
|
};
|
|
};
|
|
exports.createDocumentFragment = function() {
|
|
return {
|
|
nodeName: '#document-fragment',
|
|
quirksMode: false,
|
|
childNodes: []
|
|
};
|
|
};
|
|
exports.createElement = function(tagName, namespaceURI, attrs) {
|
|
return {
|
|
nodeName: tagName,
|
|
tagName: tagName,
|
|
attrs: attrs,
|
|
namespaceURI: namespaceURI,
|
|
childNodes: [],
|
|
parentNode: null
|
|
};
|
|
};
|
|
exports.createCommentNode = function(data) {
|
|
return {
|
|
nodeName: '#comment',
|
|
data: data,
|
|
parentNode: null
|
|
};
|
|
};
|
|
var createTextNode = function(value) {
|
|
return {
|
|
nodeName: '#text',
|
|
value: value,
|
|
parentNode: null
|
|
};
|
|
};
|
|
exports.setDocumentType = function(document, name, publicId, systemId) {
|
|
var doctypeNode = null;
|
|
for (var i = 0; i < document.childNodes.length; i++) {
|
|
if (document.childNodes[i].nodeName === '#documentType') {
|
|
doctypeNode = document.childNodes[i];
|
|
break;
|
|
}
|
|
}
|
|
if (doctypeNode) {
|
|
doctypeNode.name = name;
|
|
doctypeNode.publicId = publicId;
|
|
doctypeNode.systemId = systemId;
|
|
} else {
|
|
appendChild(document, {
|
|
nodeName: '#documentType',
|
|
name: name,
|
|
publicId: publicId,
|
|
systemId: systemId
|
|
});
|
|
}
|
|
};
|
|
exports.setQuirksMode = function(document) {
|
|
document.quirksMode = true;
|
|
};
|
|
exports.isQuirksMode = function(document) {
|
|
return document.quirksMode;
|
|
};
|
|
var appendChild = exports.appendChild = function(parentNode, newNode) {
|
|
parentNode.childNodes.push(newNode);
|
|
newNode.parentNode = parentNode;
|
|
};
|
|
var insertBefore = exports.insertBefore = function(parentNode, newNode, referenceNode) {
|
|
var insertionIdx = parentNode.childNodes.indexOf(referenceNode);
|
|
parentNode.childNodes.splice(insertionIdx, 0, newNode);
|
|
newNode.parentNode = parentNode;
|
|
};
|
|
exports.detachNode = function(node) {
|
|
if (node.parentNode) {
|
|
var idx = node.parentNode.childNodes.indexOf(node);
|
|
node.parentNode.childNodes.splice(idx, 1);
|
|
node.parentNode = null;
|
|
}
|
|
};
|
|
exports.insertText = function(parentNode, text) {
|
|
if (parentNode.childNodes.length) {
|
|
var prevNode = parentNode.childNodes[parentNode.childNodes.length - 1];
|
|
if (prevNode.nodeName === '#text') {
|
|
prevNode.value += text;
|
|
return ;
|
|
}
|
|
}
|
|
appendChild(parentNode, createTextNode(text));
|
|
};
|
|
exports.insertTextBefore = function(parentNode, text, referenceNode) {
|
|
var prevNode = parentNode.childNodes[parentNode.childNodes.indexOf(referenceNode) - 1];
|
|
if (prevNode && prevNode.nodeName === '#text')
|
|
prevNode.value += text;
|
|
else
|
|
insertBefore(parentNode, createTextNode(text), referenceNode);
|
|
};
|
|
exports.adoptAttributes = function(recipientNode, attrs) {
|
|
var recipientAttrsMap = [];
|
|
for (var i = 0; i < recipientNode.attrs.length; i++)
|
|
recipientAttrsMap.push(recipientNode.attrs[i].name);
|
|
for (var j = 0; j < attrs.length; j++) {
|
|
if (recipientAttrsMap.indexOf(attrs[j].name) === -1)
|
|
recipientNode.attrs.push(attrs[j]);
|
|
}
|
|
};
|
|
exports.getFirstChild = function(node) {
|
|
return node.childNodes[0];
|
|
};
|
|
exports.getChildNodes = function(node) {
|
|
return node.childNodes;
|
|
};
|
|
exports.getParentNode = function(node) {
|
|
return node.parentNode;
|
|
};
|
|
exports.getAttrList = function(node) {
|
|
return node.attrs;
|
|
};
|
|
exports.getTagName = function(element) {
|
|
return element.tagName;
|
|
};
|
|
exports.getNamespaceURI = function(element) {
|
|
return element.namespaceURI;
|
|
};
|
|
exports.getTextNodeContent = function(textNode) {
|
|
return textNode.value;
|
|
};
|
|
exports.getCommentNodeContent = function(commentNode) {
|
|
return commentNode.data;
|
|
};
|
|
exports.getDocumentTypeNodeName = function(doctypeNode) {
|
|
return doctypeNode.name;
|
|
};
|
|
exports.getDocumentTypeNodePublicId = function(doctypeNode) {
|
|
return doctypeNode.publicId;
|
|
};
|
|
exports.getDocumentTypeNodeSystemId = function(doctypeNode) {
|
|
return doctypeNode.systemId;
|
|
};
|
|
exports.isTextNode = function(node) {
|
|
return node.nodeName === '#text';
|
|
};
|
|
exports.isCommentNode = function(node) {
|
|
return node.nodeName === '#comment';
|
|
};
|
|
exports.isDocumentTypeNode = function(node) {
|
|
return node.nodeName === '#documentType';
|
|
};
|
|
exports.isElementNode = function(node) {
|
|
return !!node.tagName;
|
|
};
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("parse5/lib/common/foreign_content", ["parse5/lib/tokenization/tokenizer", "parse5/lib/common/html"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
'use strict';
|
|
var Tokenizer = require("parse5/lib/tokenization/tokenizer"),
|
|
HTML = require("parse5/lib/common/html");
|
|
var $ = HTML.TAG_NAMES,
|
|
NS = HTML.NAMESPACES,
|
|
ATTRS = HTML.ATTRS;
|
|
var MIME_TYPES = {
|
|
TEXT_HTML: 'text/html',
|
|
APPLICATION_XML: 'application/xhtml+xml'
|
|
};
|
|
var DEFINITION_URL_ATTR = 'definitionurl',
|
|
ADJUSTED_DEFINITION_URL_ATTR = 'definitionURL',
|
|
SVG_ATTRS_ADJUSTMENT_MAP = {
|
|
'attributename': 'attributeName',
|
|
'attributetype': 'attributeType',
|
|
'basefrequency': 'baseFrequency',
|
|
'baseprofile': 'baseProfile',
|
|
'calcmode': 'calcMode',
|
|
'clippathunits': 'clipPathUnits',
|
|
'contentscripttype': 'contentScriptType',
|
|
'contentstyletype': 'contentStyleType',
|
|
'diffuseconstant': 'diffuseConstant',
|
|
'edgemode': 'edgeMode',
|
|
'externalresourcesrequired': 'externalResourcesRequired',
|
|
'filterres': 'filterRes',
|
|
'filterunits': 'filterUnits',
|
|
'glyphref': 'glyphRef',
|
|
'gradienttransform': 'gradientTransform',
|
|
'gradientunits': 'gradientUnits',
|
|
'kernelmatrix': 'kernelMatrix',
|
|
'kernelunitlength': 'kernelUnitLength',
|
|
'keypoints': 'keyPoints',
|
|
'keysplines': 'keySplines',
|
|
'keytimes': 'keyTimes',
|
|
'lengthadjust': 'lengthAdjust',
|
|
'limitingconeangle': 'limitingConeAngle',
|
|
'markerheight': 'markerHeight',
|
|
'markerunits': 'markerUnits',
|
|
'markerwidth': 'markerWidth',
|
|
'maskcontentunits': 'maskContentUnits',
|
|
'maskunits': 'maskUnits',
|
|
'numoctaves': 'numOctaves',
|
|
'pathlength': 'pathLength',
|
|
'patterncontentunits': 'patternContentUnits',
|
|
'patterntransform': 'patternTransform',
|
|
'patternunits': 'patternUnits',
|
|
'pointsatx': 'pointsAtX',
|
|
'pointsaty': 'pointsAtY',
|
|
'pointsatz': 'pointsAtZ',
|
|
'preservealpha': 'preserveAlpha',
|
|
'preserveaspectratio': 'preserveAspectRatio',
|
|
'primitiveunits': 'primitiveUnits',
|
|
'refx': 'refX',
|
|
'refy': 'refY',
|
|
'repeatcount': 'repeatCount',
|
|
'repeatdur': 'repeatDur',
|
|
'requiredextensions': 'requiredExtensions',
|
|
'requiredfeatures': 'requiredFeatures',
|
|
'specularconstant': 'specularConstant',
|
|
'specularexponent': 'specularExponent',
|
|
'spreadmethod': 'spreadMethod',
|
|
'startoffset': 'startOffset',
|
|
'stddeviation': 'stdDeviation',
|
|
'stitchtiles': 'stitchTiles',
|
|
'surfacescale': 'surfaceScale',
|
|
'systemlanguage': 'systemLanguage',
|
|
'tablevalues': 'tableValues',
|
|
'targetx': 'targetX',
|
|
'targety': 'targetY',
|
|
'textlength': 'textLength',
|
|
'viewbox': 'viewBox',
|
|
'viewtarget': 'viewTarget',
|
|
'xchannelselector': 'xChannelSelector',
|
|
'ychannelselector': 'yChannelSelector',
|
|
'zoomandpan': 'zoomAndPan'
|
|
},
|
|
XML_ATTRS_ADJUSTMENT_MAP = {
|
|
'xlink:actuate': {
|
|
prefix: 'xlink',
|
|
name: 'actuate',
|
|
namespace: NS.XLINK
|
|
},
|
|
'xlink:arcrole': {
|
|
prefix: 'xlink',
|
|
name: 'arcrole',
|
|
namespace: NS.XLINK
|
|
},
|
|
'xlink:href': {
|
|
prefix: 'xlink',
|
|
name: 'href',
|
|
namespace: NS.XLINK
|
|
},
|
|
'xlink:role': {
|
|
prefix: 'xlink',
|
|
name: 'role',
|
|
namespace: NS.XLINK
|
|
},
|
|
'xlink:show': {
|
|
prefix: 'xlink',
|
|
name: 'show',
|
|
namespace: NS.XLINK
|
|
},
|
|
'xlink:title': {
|
|
prefix: 'xlink',
|
|
name: 'title',
|
|
namespace: NS.XLINK
|
|
},
|
|
'xlink:type': {
|
|
prefix: 'xlink',
|
|
name: 'type',
|
|
namespace: NS.XLINK
|
|
},
|
|
'xml:base': {
|
|
prefix: 'xml',
|
|
name: 'base',
|
|
namespace: NS.XML
|
|
},
|
|
'xml:lang': {
|
|
prefix: 'xml',
|
|
name: 'lang',
|
|
namespace: NS.XML
|
|
},
|
|
'xml:space': {
|
|
prefix: 'xml',
|
|
name: 'space',
|
|
namespace: NS.XML
|
|
},
|
|
'xmlns': {
|
|
prefix: '',
|
|
name: 'xmlns',
|
|
namespace: NS.XMLNS
|
|
},
|
|
'xmlns:xlink': {
|
|
prefix: 'xmlns',
|
|
name: 'xlink',
|
|
namespace: NS.XMLNS
|
|
}
|
|
};
|
|
var SVG_TAG_NAMES_ADJUSTMENT_MAP = {
|
|
'altglyph': 'altGlyph',
|
|
'altglyphdef': 'altGlyphDef',
|
|
'altglyphitem': 'altGlyphItem',
|
|
'animatecolor': 'animateColor',
|
|
'animatemotion': 'animateMotion',
|
|
'animatetransform': 'animateTransform',
|
|
'clippath': 'clipPath',
|
|
'feblend': 'feBlend',
|
|
'fecolormatrix': 'feColorMatrix',
|
|
'fecomponenttransfer': 'feComponentTransfer',
|
|
'fecomposite': 'feComposite',
|
|
'feconvolvematrix': 'feConvolveMatrix',
|
|
'fediffuselighting': 'feDiffuseLighting',
|
|
'fedisplacementmap': 'feDisplacementMap',
|
|
'fedistantlight': 'feDistantLight',
|
|
'feflood': 'feFlood',
|
|
'fefunca': 'feFuncA',
|
|
'fefuncb': 'feFuncB',
|
|
'fefuncg': 'feFuncG',
|
|
'fefuncr': 'feFuncR',
|
|
'fegaussianblur': 'feGaussianBlur',
|
|
'feimage': 'feImage',
|
|
'femerge': 'feMerge',
|
|
'femergenode': 'feMergeNode',
|
|
'femorphology': 'feMorphology',
|
|
'feoffset': 'feOffset',
|
|
'fepointlight': 'fePointLight',
|
|
'fespecularlighting': 'feSpecularLighting',
|
|
'fespotlight': 'feSpotLight',
|
|
'fetile': 'feTile',
|
|
'feturbulence': 'feTurbulence',
|
|
'foreignobject': 'foreignObject',
|
|
'glyphref': 'glyphRef',
|
|
'lineargradient': 'linearGradient',
|
|
'radialgradient': 'radialGradient',
|
|
'textpath': 'textPath'
|
|
};
|
|
var EXITS_FOREIGN_CONTENT = {};
|
|
EXITS_FOREIGN_CONTENT[$.B] = true;
|
|
EXITS_FOREIGN_CONTENT[$.BIG] = true;
|
|
EXITS_FOREIGN_CONTENT[$.BLOCKQUOTE] = true;
|
|
EXITS_FOREIGN_CONTENT[$.BODY] = true;
|
|
EXITS_FOREIGN_CONTENT[$.BR] = true;
|
|
EXITS_FOREIGN_CONTENT[$.CENTER] = true;
|
|
EXITS_FOREIGN_CONTENT[$.CODE] = true;
|
|
EXITS_FOREIGN_CONTENT[$.DD] = true;
|
|
EXITS_FOREIGN_CONTENT[$.DIV] = true;
|
|
EXITS_FOREIGN_CONTENT[$.DL] = true;
|
|
EXITS_FOREIGN_CONTENT[$.DT] = true;
|
|
EXITS_FOREIGN_CONTENT[$.EM] = true;
|
|
EXITS_FOREIGN_CONTENT[$.EMBED] = true;
|
|
EXITS_FOREIGN_CONTENT[$.H1] = true;
|
|
EXITS_FOREIGN_CONTENT[$.H2] = true;
|
|
EXITS_FOREIGN_CONTENT[$.H3] = true;
|
|
EXITS_FOREIGN_CONTENT[$.H4] = true;
|
|
EXITS_FOREIGN_CONTENT[$.H5] = true;
|
|
EXITS_FOREIGN_CONTENT[$.H6] = true;
|
|
EXITS_FOREIGN_CONTENT[$.HEAD] = true;
|
|
EXITS_FOREIGN_CONTENT[$.HR] = true;
|
|
EXITS_FOREIGN_CONTENT[$.I] = true;
|
|
EXITS_FOREIGN_CONTENT[$.IMG] = true;
|
|
EXITS_FOREIGN_CONTENT[$.LI] = true;
|
|
EXITS_FOREIGN_CONTENT[$.LISTING] = true;
|
|
EXITS_FOREIGN_CONTENT[$.MENU] = true;
|
|
EXITS_FOREIGN_CONTENT[$.META] = true;
|
|
EXITS_FOREIGN_CONTENT[$.NOBR] = true;
|
|
EXITS_FOREIGN_CONTENT[$.OL] = true;
|
|
EXITS_FOREIGN_CONTENT[$.P] = true;
|
|
EXITS_FOREIGN_CONTENT[$.PRE] = true;
|
|
EXITS_FOREIGN_CONTENT[$.RUBY] = true;
|
|
EXITS_FOREIGN_CONTENT[$.S] = true;
|
|
EXITS_FOREIGN_CONTENT[$.SMALL] = true;
|
|
EXITS_FOREIGN_CONTENT[$.SPAN] = true;
|
|
EXITS_FOREIGN_CONTENT[$.STRONG] = true;
|
|
EXITS_FOREIGN_CONTENT[$.STRIKE] = true;
|
|
EXITS_FOREIGN_CONTENT[$.SUB] = true;
|
|
EXITS_FOREIGN_CONTENT[$.SUP] = true;
|
|
EXITS_FOREIGN_CONTENT[$.TABLE] = true;
|
|
EXITS_FOREIGN_CONTENT[$.TT] = true;
|
|
EXITS_FOREIGN_CONTENT[$.U] = true;
|
|
EXITS_FOREIGN_CONTENT[$.UL] = true;
|
|
EXITS_FOREIGN_CONTENT[$.VAR] = true;
|
|
exports.causesExit = function(startTagToken) {
|
|
var tn = startTagToken.tagName;
|
|
if (tn === $.FONT && (Tokenizer.getTokenAttr(startTagToken, ATTRS.COLOR) !== null || Tokenizer.getTokenAttr(startTagToken, ATTRS.SIZE) !== null || Tokenizer.getTokenAttr(startTagToken, ATTRS.FACE) !== null)) {
|
|
return true;
|
|
}
|
|
return EXITS_FOREIGN_CONTENT[tn];
|
|
};
|
|
exports.adjustTokenMathMLAttrs = function(token) {
|
|
for (var i = 0; i < token.attrs.length; i++) {
|
|
if (token.attrs[i].name === DEFINITION_URL_ATTR) {
|
|
token.attrs[i].name = ADJUSTED_DEFINITION_URL_ATTR;
|
|
break;
|
|
}
|
|
}
|
|
};
|
|
exports.adjustTokenSVGAttrs = function(token) {
|
|
for (var i = 0; i < token.attrs.length; i++) {
|
|
var adjustedAttrName = SVG_ATTRS_ADJUSTMENT_MAP[token.attrs[i].name];
|
|
if (adjustedAttrName)
|
|
token.attrs[i].name = adjustedAttrName;
|
|
}
|
|
};
|
|
exports.adjustTokenXMLAttrs = function(token) {
|
|
for (var i = 0; i < token.attrs.length; i++) {
|
|
var adjustedAttrEntry = XML_ATTRS_ADJUSTMENT_MAP[token.attrs[i].name];
|
|
if (adjustedAttrEntry) {
|
|
token.attrs[i].prefix = adjustedAttrEntry.prefix;
|
|
token.attrs[i].name = adjustedAttrEntry.name;
|
|
token.attrs[i].namespace = adjustedAttrEntry.namespace;
|
|
}
|
|
}
|
|
};
|
|
exports.adjustTokenSVGTagName = function(token) {
|
|
var adjustedTagName = SVG_TAG_NAMES_ADJUSTMENT_MAP[token.tagName];
|
|
if (adjustedTagName)
|
|
token.tagName = adjustedTagName;
|
|
};
|
|
exports.isMathMLTextIntegrationPoint = function(tn, ns) {
|
|
return ns === NS.MATHML && (tn === $.MI || tn === $.MO || tn === $.MN || tn === $.MS || tn === $.MTEXT);
|
|
};
|
|
exports.isHtmlIntegrationPoint = function(tn, ns, attrs) {
|
|
if (ns === NS.MATHML && tn === $.ANNOTATION_XML) {
|
|
for (var i = 0; i < attrs.length; i++) {
|
|
if (attrs[i].name === ATTRS.ENCODING) {
|
|
var value = attrs[i].value.toLowerCase();
|
|
return value === MIME_TYPES.TEXT_HTML || value === MIME_TYPES.APPLICATION_XML;
|
|
}
|
|
}
|
|
}
|
|
return ns === NS.SVG && (tn === $.FOREIGN_OBJECT || tn === $.DESC || tn === $.TITLE);
|
|
};
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("parse5/lib/simple_api/tokenizer_proxy", ["parse5/lib/tokenization/tokenizer", "parse5/lib/common/foreign_content", "parse5/lib/common/unicode", "parse5/lib/common/html"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
'use strict';
|
|
var Tokenizer = require("parse5/lib/tokenization/tokenizer"),
|
|
ForeignContent = require("parse5/lib/common/foreign_content"),
|
|
UNICODE = require("parse5/lib/common/unicode"),
|
|
HTML = require("parse5/lib/common/html");
|
|
var $ = HTML.TAG_NAMES,
|
|
NS = HTML.NAMESPACES;
|
|
var TokenizerProxy = module.exports = function(html) {
|
|
this.tokenizer = new Tokenizer(html);
|
|
this.namespaceStack = [];
|
|
this.namespaceStackTop = -1;
|
|
this.currentNamespace = null;
|
|
this.inForeignContent = false;
|
|
};
|
|
TokenizerProxy.prototype.getNextToken = function() {
|
|
var token = this.tokenizer.getNextToken();
|
|
if (token.type === Tokenizer.START_TAG_TOKEN)
|
|
this._handleStartTagToken(token);
|
|
else if (token.type === Tokenizer.END_TAG_TOKEN)
|
|
this._handleEndTagToken(token);
|
|
else if (token.type === Tokenizer.NULL_CHARACTER_TOKEN && this.inForeignContent) {
|
|
token.type = Tokenizer.CHARACTER_TOKEN;
|
|
token.chars = UNICODE.REPLACEMENT_CHARACTER;
|
|
}
|
|
return token;
|
|
};
|
|
TokenizerProxy.prototype._enterNamespace = function(namespace) {
|
|
this.namespaceStackTop++;
|
|
this.namespaceStack.push(namespace);
|
|
this.inForeignContent = namespace !== NS.HTML;
|
|
this.currentNamespace = namespace;
|
|
this.tokenizer.allowCDATA = this.inForeignContent;
|
|
};
|
|
TokenizerProxy.prototype._leaveCurrentNamespace = function() {
|
|
this.namespaceStackTop--;
|
|
this.namespaceStack.pop();
|
|
this.currentNamespace = this.namespaceStack[this.namespaceStackTop];
|
|
this.inForeignContent = this.currentNamespace !== NS.HTML;
|
|
this.tokenizer.allowCDATA = this.inForeignContent;
|
|
};
|
|
TokenizerProxy.prototype._ensureTokenizerState = function(tn) {
|
|
if (tn === $.TEXTAREA || tn === $.TITLE)
|
|
this.tokenizer.state = Tokenizer.RCDATA_STATE;
|
|
else if (tn === $.PLAINTEXT)
|
|
this.tokenizer.state = Tokenizer.PLAINTEXT_STATE;
|
|
else if (tn === $.SCRIPT)
|
|
this.tokenizer.state = Tokenizer.SCRIPT_DATA_STATE;
|
|
else if (tn === $.STYLE || tn === $.IFRAME || tn === $.XMP || tn === $.NOEMBED || tn === $.NOFRAMES || tn === $.NOSCRIPT) {
|
|
this.tokenizer.state = Tokenizer.RAWTEXT_STATE;
|
|
}
|
|
};
|
|
TokenizerProxy.prototype._handleStartTagToken = function(token) {
|
|
var tn = token.tagName;
|
|
if (tn === $.SVG)
|
|
this._enterNamespace(NS.SVG);
|
|
else if (tn === $.MATH)
|
|
this._enterNamespace(NS.MATHML);
|
|
else {
|
|
if (this.inForeignContent) {
|
|
if (ForeignContent.causesExit(token))
|
|
this._leaveCurrentNamespace();
|
|
else if (ForeignContent.isMathMLTextIntegrationPoint(tn, this.currentNamespace) || ForeignContent.isHtmlIntegrationPoint(tn, this.currentNamespace, token.attrs)) {
|
|
this._enterNamespace(NS.HTML);
|
|
}
|
|
} else
|
|
this._ensureTokenizerState(tn);
|
|
}
|
|
};
|
|
TokenizerProxy.prototype._handleEndTagToken = function(token) {
|
|
var tn = token.tagName;
|
|
if (!this.inForeignContent) {
|
|
var previousNs = this.namespaceStack[this.namespaceStackTop - 1];
|
|
if (ForeignContent.isMathMLTextIntegrationPoint(tn, previousNs) || ForeignContent.isHtmlIntegrationPoint(tn, previousNs, token.attrs)) {
|
|
this._leaveCurrentNamespace();
|
|
} else if (tn === $.SCRIPT)
|
|
this.tokenizer.state = Tokenizer.DATA_STATE;
|
|
} else if ((tn === $.SVG && this.currentNamespace === NS.SVG) || (tn === $.MATH && this.currentNamespace === NS.MATHML))
|
|
this._leaveCurrentNamespace();
|
|
};
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("parse5/lib/common/utils", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
'use strict';
|
|
exports.mergeOptions = function(defaults, options) {
|
|
options = options || {};
|
|
return [defaults, options].reduce(function(merged, optObj) {
|
|
Object.keys(optObj).forEach(function(key) {
|
|
merged[key] = optObj[key];
|
|
});
|
|
return merged;
|
|
}, {});
|
|
};
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("parse5/lib/jsdom/parsing_unit", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
'use strict';
|
|
var ParsingUnit = module.exports = function(parser) {
|
|
this.parser = parser;
|
|
this.suspended = false;
|
|
this.parsingLoopLock = false;
|
|
this.callback = null;
|
|
};
|
|
ParsingUnit.prototype._stateGuard = function(suspend) {
|
|
if (this.suspended && suspend)
|
|
throw new Error('parse5: Parser was already suspended. Please, check your control flow logic.');
|
|
else if (!this.suspended && !suspend)
|
|
throw new Error('parse5: Parser was already resumed. Please, check your control flow logic.');
|
|
return suspend;
|
|
};
|
|
ParsingUnit.prototype.suspend = function() {
|
|
this.suspended = this._stateGuard(true);
|
|
return this;
|
|
};
|
|
ParsingUnit.prototype.resume = function() {
|
|
this.suspended = this._stateGuard(false);
|
|
if (!this.parsingLoopLock)
|
|
this.parser._runParsingLoop();
|
|
return this;
|
|
};
|
|
ParsingUnit.prototype.documentWrite = function(html) {
|
|
this.parser.tokenizer.preprocessor.write(html);
|
|
return this;
|
|
};
|
|
ParsingUnit.prototype.handleScripts = function(scriptHandler) {
|
|
this.parser.scriptHandler = scriptHandler;
|
|
return this;
|
|
};
|
|
ParsingUnit.prototype.done = function(callback) {
|
|
this.callback = callback;
|
|
return this;
|
|
};
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("parse5/lib/tree_adapters/htmlparser2", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
'use strict';
|
|
var nodeTypes = {
|
|
element: 1,
|
|
text: 3,
|
|
cdata: 4,
|
|
comment: 8
|
|
};
|
|
var nodePropertyShorthands = {
|
|
tagName: 'name',
|
|
childNodes: 'children',
|
|
parentNode: 'parent',
|
|
previousSibling: 'prev',
|
|
nextSibling: 'next',
|
|
nodeValue: 'data'
|
|
};
|
|
var Node = function(props) {
|
|
for (var key in props) {
|
|
if (props.hasOwnProperty(key))
|
|
this[key] = props[key];
|
|
}
|
|
};
|
|
Node.prototype = {
|
|
get firstChild() {
|
|
var children = this.children;
|
|
return children && children[0] || null;
|
|
},
|
|
get lastChild() {
|
|
var children = this.children;
|
|
return children && children[children.length - 1] || null;
|
|
},
|
|
get nodeType() {
|
|
return nodeTypes[this.type] || nodeTypes.element;
|
|
}
|
|
};
|
|
Object.keys(nodePropertyShorthands).forEach(function(key) {
|
|
var shorthand = nodePropertyShorthands[key];
|
|
Object.defineProperty(Node.prototype, key, {
|
|
get: function() {
|
|
return this[shorthand] || null;
|
|
},
|
|
set: function(val) {
|
|
this[shorthand] = val;
|
|
return val;
|
|
}
|
|
});
|
|
});
|
|
exports.createDocument = exports.createDocumentFragment = function() {
|
|
return new Node({
|
|
type: 'root',
|
|
name: 'root',
|
|
parent: null,
|
|
prev: null,
|
|
next: null,
|
|
children: []
|
|
});
|
|
};
|
|
exports.createElement = function(tagName, namespaceURI, attrs) {
|
|
var attribs = {},
|
|
attribsNamespace = {},
|
|
attribsPrefix = {};
|
|
for (var i = 0; i < attrs.length; i++) {
|
|
var attrName = attrs[i].name;
|
|
attribs[attrName] = attrs[i].value;
|
|
attribsNamespace[attrName] = attrs[i].namespace;
|
|
attribsPrefix[attrName] = attrs[i].prefix;
|
|
}
|
|
return new Node({
|
|
type: tagName === 'script' || tagName === 'style' ? tagName : 'tag',
|
|
name: tagName,
|
|
namespace: namespaceURI,
|
|
attribs: attribs,
|
|
'x-attribsNamespace': attribsNamespace,
|
|
'x-attribsPrefix': attribsPrefix,
|
|
children: [],
|
|
parent: null,
|
|
prev: null,
|
|
next: null
|
|
});
|
|
};
|
|
exports.createCommentNode = function(data) {
|
|
return new Node({
|
|
type: 'comment',
|
|
data: data,
|
|
parent: null,
|
|
prev: null,
|
|
next: null
|
|
});
|
|
};
|
|
var createTextNode = function(value) {
|
|
return new Node({
|
|
type: 'text',
|
|
data: value,
|
|
parent: null,
|
|
prev: null,
|
|
next: null
|
|
});
|
|
};
|
|
exports.setDocumentType = function(document, name, publicId, systemId) {
|
|
var data = '!DOCTYPE';
|
|
if (name)
|
|
data += ' ' + name;
|
|
if (publicId)
|
|
data += ' PUBLIC "' + publicId + '"';
|
|
if (systemId)
|
|
data += ' "' + systemId + '"';
|
|
var doctypeNode = null;
|
|
for (var i = 0; i < document.children.length; i++) {
|
|
if (document.children[i].type === 'directive' && document.children[i].name === '!doctype') {
|
|
doctypeNode = document.children[i];
|
|
break;
|
|
}
|
|
}
|
|
if (doctypeNode) {
|
|
doctypeNode.data = data;
|
|
doctypeNode['x-name'] = name;
|
|
doctypeNode['x-publicId'] = publicId;
|
|
doctypeNode['x-systemId'] = systemId;
|
|
} else {
|
|
appendChild(document, new Node({
|
|
type: 'directive',
|
|
name: '!doctype',
|
|
data: data,
|
|
'x-name': name,
|
|
'x-publicId': publicId,
|
|
'x-systemId': systemId
|
|
}));
|
|
}
|
|
};
|
|
exports.setQuirksMode = function(document) {
|
|
document.quirksMode = true;
|
|
};
|
|
exports.isQuirksMode = function(document) {
|
|
return document.quirksMode;
|
|
};
|
|
var appendChild = exports.appendChild = function(parentNode, newNode) {
|
|
var prev = parentNode.children[parentNode.children.length - 1];
|
|
if (prev) {
|
|
prev.next = newNode;
|
|
newNode.prev = prev;
|
|
}
|
|
parentNode.children.push(newNode);
|
|
newNode.parent = parentNode;
|
|
};
|
|
var insertBefore = exports.insertBefore = function(parentNode, newNode, referenceNode) {
|
|
var insertionIdx = parentNode.children.indexOf(referenceNode),
|
|
prev = referenceNode.prev;
|
|
if (prev) {
|
|
prev.next = newNode;
|
|
newNode.prev = prev;
|
|
}
|
|
referenceNode.prev = newNode;
|
|
newNode.next = referenceNode;
|
|
parentNode.children.splice(insertionIdx, 0, newNode);
|
|
newNode.parent = parentNode;
|
|
};
|
|
exports.detachNode = function(node) {
|
|
if (node.parent) {
|
|
var idx = node.parent.children.indexOf(node),
|
|
prev = node.prev,
|
|
next = node.next;
|
|
node.prev = null;
|
|
node.next = null;
|
|
if (prev)
|
|
prev.next = next;
|
|
if (next)
|
|
next.prev = prev;
|
|
node.parent.children.splice(idx, 1);
|
|
node.parent = null;
|
|
}
|
|
};
|
|
exports.insertText = function(parentNode, text) {
|
|
var lastChild = parentNode.children[parentNode.children.length - 1];
|
|
if (lastChild && lastChild.type === 'text')
|
|
lastChild.data += text;
|
|
else
|
|
appendChild(parentNode, createTextNode(text));
|
|
};
|
|
exports.insertTextBefore = function(parentNode, text, referenceNode) {
|
|
var prevNode = parentNode.children[parentNode.children.indexOf(referenceNode) - 1];
|
|
if (prevNode && prevNode.type === 'text')
|
|
prevNode.data += text;
|
|
else
|
|
insertBefore(parentNode, createTextNode(text), referenceNode);
|
|
};
|
|
exports.adoptAttributes = function(recipientNode, attrs) {
|
|
for (var i = 0; i < attrs.length; i++) {
|
|
var attrName = attrs[i].name;
|
|
if (typeof recipientNode.attribs[attrName] === 'undefined') {
|
|
recipientNode.attribs[attrName] = attrs[i].value;
|
|
recipientNode['x-attribsNamespace'][attrName] = attrs[i].namespace;
|
|
recipientNode['x-attribsPrefix'][attrName] = attrs[i].prefix;
|
|
}
|
|
}
|
|
};
|
|
exports.getFirstChild = function(node) {
|
|
return node.children[0];
|
|
};
|
|
exports.getChildNodes = function(node) {
|
|
return node.children;
|
|
};
|
|
exports.getParentNode = function(node) {
|
|
return node.parent;
|
|
};
|
|
exports.getAttrList = function(node) {
|
|
var attrList = [];
|
|
for (var name in node.attribs) {
|
|
if (node.attribs.hasOwnProperty(name)) {
|
|
attrList.push({
|
|
name: name,
|
|
value: node.attribs[name],
|
|
namespace: node['x-attribsNamespace'][name],
|
|
prefix: node['x-attribsPrefix'][name]
|
|
});
|
|
}
|
|
}
|
|
return attrList;
|
|
};
|
|
exports.getTagName = function(element) {
|
|
return element.name;
|
|
};
|
|
exports.getNamespaceURI = function(element) {
|
|
return element.namespace;
|
|
};
|
|
exports.getTextNodeContent = function(textNode) {
|
|
return textNode.data;
|
|
};
|
|
exports.getCommentNodeContent = function(commentNode) {
|
|
return commentNode.data;
|
|
};
|
|
exports.getDocumentTypeNodeName = function(doctypeNode) {
|
|
return doctypeNode['x-name'];
|
|
};
|
|
exports.getDocumentTypeNodePublicId = function(doctypeNode) {
|
|
return doctypeNode['x-publicId'];
|
|
};
|
|
exports.getDocumentTypeNodeSystemId = function(doctypeNode) {
|
|
return doctypeNode['x-systemId'];
|
|
};
|
|
exports.isTextNode = function(node) {
|
|
return node.type === 'text';
|
|
};
|
|
exports.isCommentNode = function(node) {
|
|
return node.type === 'comment';
|
|
};
|
|
exports.isDocumentTypeNode = function(node) {
|
|
return node.type === 'directive' && node.name === '!doctype';
|
|
};
|
|
exports.isElementNode = function(node) {
|
|
return !!node.attribs;
|
|
};
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/platform/dom/dom_adapter", ["angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
exports.DOM = null;
|
|
function setRootDomAdapter(adapter) {
|
|
if (lang_1.isBlank(exports.DOM)) {
|
|
exports.DOM = adapter;
|
|
}
|
|
}
|
|
exports.setRootDomAdapter = setRootDomAdapter;
|
|
var DomAdapter = (function() {
|
|
function DomAdapter() {}
|
|
Object.defineProperty(DomAdapter.prototype, "attrToPropMap", {
|
|
get: function() {
|
|
return this._attrToPropMap;
|
|
},
|
|
set: function(value) {
|
|
this._attrToPropMap = value;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
;
|
|
;
|
|
return DomAdapter;
|
|
})();
|
|
exports.DomAdapter = DomAdapter;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/animate/css_animation_options", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var CssAnimationOptions = (function() {
|
|
function CssAnimationOptions() {
|
|
this.classesToAdd = [];
|
|
this.classesToRemove = [];
|
|
this.animationClasses = [];
|
|
}
|
|
return CssAnimationOptions;
|
|
})();
|
|
exports.CssAnimationOptions = CssAnimationOptions;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/facade/math", ["angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
exports.Math = lang_1.global.Math;
|
|
exports.NaN = typeof exports.NaN;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/platform/dom/util", ["angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var CAMEL_CASE_REGEXP = /([A-Z])/g;
|
|
var DASH_CASE_REGEXP = /-([a-z])/g;
|
|
function camelCaseToDashCase(input) {
|
|
return lang_1.StringWrapper.replaceAllMapped(input, CAMEL_CASE_REGEXP, function(m) {
|
|
return '-' + m[1].toLowerCase();
|
|
});
|
|
}
|
|
exports.camelCaseToDashCase = camelCaseToDashCase;
|
|
function dashCaseToCamelCase(input) {
|
|
return lang_1.StringWrapper.replaceAllMapped(input, DASH_CASE_REGEXP, function(m) {
|
|
return m[1].toUpperCase();
|
|
});
|
|
}
|
|
exports.dashCaseToCamelCase = dashCaseToCamelCase;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/animate/browser_details", ["angular2/src/core/di", "angular2/src/facade/math", "angular2/src/platform/dom/dom_adapter"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var di_1 = require("angular2/src/core/di");
|
|
var math_1 = require("angular2/src/facade/math");
|
|
var dom_adapter_1 = require("angular2/src/platform/dom/dom_adapter");
|
|
var BrowserDetails = (function() {
|
|
function BrowserDetails() {
|
|
this.elapsedTimeIncludesDelay = false;
|
|
this.doesElapsedTimeIncludesDelay();
|
|
}
|
|
BrowserDetails.prototype.doesElapsedTimeIncludesDelay = function() {
|
|
var _this = this;
|
|
var div = dom_adapter_1.DOM.createElement('div');
|
|
dom_adapter_1.DOM.setAttribute(div, 'style', "position: absolute; top: -9999px; left: -9999px; width: 1px;\n height: 1px; transition: all 1ms linear 1ms;");
|
|
this.raf(function(timestamp) {
|
|
dom_adapter_1.DOM.on(div, 'transitionend', function(event) {
|
|
var elapsed = math_1.Math.round(event.elapsedTime * 1000);
|
|
_this.elapsedTimeIncludesDelay = elapsed == 2;
|
|
dom_adapter_1.DOM.remove(div);
|
|
});
|
|
dom_adapter_1.DOM.setStyle(div, 'width', '2px');
|
|
}, 2);
|
|
};
|
|
BrowserDetails.prototype.raf = function(callback, frames) {
|
|
if (frames === void 0) {
|
|
frames = 1;
|
|
}
|
|
var queue = new RafQueue(callback, frames);
|
|
return function() {
|
|
return queue.cancel();
|
|
};
|
|
};
|
|
BrowserDetails = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [])], BrowserDetails);
|
|
return BrowserDetails;
|
|
})();
|
|
exports.BrowserDetails = BrowserDetails;
|
|
var RafQueue = (function() {
|
|
function RafQueue(callback, frames) {
|
|
this.callback = callback;
|
|
this.frames = frames;
|
|
this._raf();
|
|
}
|
|
RafQueue.prototype._raf = function() {
|
|
var _this = this;
|
|
this.currentFrameId = dom_adapter_1.DOM.requestAnimationFrame(function(timestamp) {
|
|
return _this._nextFrame(timestamp);
|
|
});
|
|
};
|
|
RafQueue.prototype._nextFrame = function(timestamp) {
|
|
this.frames--;
|
|
if (this.frames > 0) {
|
|
this._raf();
|
|
} else {
|
|
this.callback(timestamp);
|
|
}
|
|
};
|
|
RafQueue.prototype.cancel = function() {
|
|
dom_adapter_1.DOM.cancelAnimationFrame(this.currentFrameId);
|
|
this.currentFrameId = null;
|
|
};
|
|
return RafQueue;
|
|
})();
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/platform/dom/dom_tokens", ["angular2/src/core/di", "angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var di_1 = require("angular2/src/core/di");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
exports.DOCUMENT = lang_1.CONST_EXPR(new di_1.OpaqueToken('DocumentToken'));
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/platform/dom/events/event_manager", ["angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/core/di", "angular2/src/core/zone/ng_zone", "angular2/src/facade/collection"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var __param = (this && this.__param) || function(paramIndex, decorator) {
|
|
return function(target, key) {
|
|
decorator(target, key, paramIndex);
|
|
};
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var di_1 = require("angular2/src/core/di");
|
|
var ng_zone_1 = require("angular2/src/core/zone/ng_zone");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
exports.EVENT_MANAGER_PLUGINS = lang_1.CONST_EXPR(new di_1.OpaqueToken("EventManagerPlugins"));
|
|
var EventManager = (function() {
|
|
function EventManager(plugins, _zone) {
|
|
var _this = this;
|
|
this._zone = _zone;
|
|
plugins.forEach(function(p) {
|
|
return p.manager = _this;
|
|
});
|
|
this._plugins = collection_1.ListWrapper.reversed(plugins);
|
|
}
|
|
EventManager.prototype.addEventListener = function(element, eventName, handler) {
|
|
var plugin = this._findPluginFor(eventName);
|
|
return plugin.addEventListener(element, eventName, handler);
|
|
};
|
|
EventManager.prototype.addGlobalEventListener = function(target, eventName, handler) {
|
|
var plugin = this._findPluginFor(eventName);
|
|
return plugin.addGlobalEventListener(target, eventName, handler);
|
|
};
|
|
EventManager.prototype.getZone = function() {
|
|
return this._zone;
|
|
};
|
|
EventManager.prototype._findPluginFor = function(eventName) {
|
|
var plugins = this._plugins;
|
|
for (var i = 0; i < plugins.length; i++) {
|
|
var plugin = plugins[i];
|
|
if (plugin.supports(eventName)) {
|
|
return plugin;
|
|
}
|
|
}
|
|
throw new exceptions_1.BaseException("No event manager plugin found for event " + eventName);
|
|
};
|
|
EventManager = __decorate([di_1.Injectable(), __param(0, di_1.Inject(exports.EVENT_MANAGER_PLUGINS)), __metadata('design:paramtypes', [Array, ng_zone_1.NgZone])], EventManager);
|
|
return EventManager;
|
|
})();
|
|
exports.EventManager = EventManager;
|
|
var EventManagerPlugin = (function() {
|
|
function EventManagerPlugin() {}
|
|
EventManagerPlugin.prototype.supports = function(eventName) {
|
|
return false;
|
|
};
|
|
EventManagerPlugin.prototype.addEventListener = function(element, eventName, handler) {
|
|
throw "not implemented";
|
|
};
|
|
EventManagerPlugin.prototype.addGlobalEventListener = function(element, eventName, handler) {
|
|
throw "not implemented";
|
|
};
|
|
return EventManagerPlugin;
|
|
})();
|
|
exports.EventManagerPlugin = EventManagerPlugin;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/platform/dom/events/dom_events", ["angular2/src/platform/dom/dom_adapter", "angular2/core", "angular2/src/platform/dom/events/event_manager"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var dom_adapter_1 = require("angular2/src/platform/dom/dom_adapter");
|
|
var core_1 = require("angular2/core");
|
|
var event_manager_1 = require("angular2/src/platform/dom/events/event_manager");
|
|
var DomEventsPlugin = (function(_super) {
|
|
__extends(DomEventsPlugin, _super);
|
|
function DomEventsPlugin() {
|
|
_super.apply(this, arguments);
|
|
}
|
|
DomEventsPlugin.prototype.supports = function(eventName) {
|
|
return true;
|
|
};
|
|
DomEventsPlugin.prototype.addEventListener = function(element, eventName, handler) {
|
|
var zone = this.manager.getZone();
|
|
var outsideHandler = function(event) {
|
|
return zone.run(function() {
|
|
return handler(event);
|
|
});
|
|
};
|
|
return this.manager.getZone().runOutsideAngular(function() {
|
|
return dom_adapter_1.DOM.onAndCancel(element, eventName, outsideHandler);
|
|
});
|
|
};
|
|
DomEventsPlugin.prototype.addGlobalEventListener = function(target, eventName, handler) {
|
|
var element = dom_adapter_1.DOM.getGlobalEventTarget(target);
|
|
var zone = this.manager.getZone();
|
|
var outsideHandler = function(event) {
|
|
return zone.run(function() {
|
|
return handler(event);
|
|
});
|
|
};
|
|
return this.manager.getZone().runOutsideAngular(function() {
|
|
return dom_adapter_1.DOM.onAndCancel(element, eventName, outsideHandler);
|
|
});
|
|
};
|
|
DomEventsPlugin = __decorate([core_1.Injectable(), __metadata('design:paramtypes', [])], DomEventsPlugin);
|
|
return DomEventsPlugin;
|
|
})(event_manager_1.EventManagerPlugin);
|
|
exports.DomEventsPlugin = DomEventsPlugin;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/platform/dom/debug/by", ["angular2/src/facade/lang", "angular2/src/platform/dom/dom_adapter"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var dom_adapter_1 = require("angular2/src/platform/dom/dom_adapter");
|
|
var By = (function() {
|
|
function By() {}
|
|
By.all = function() {
|
|
return function(debugElement) {
|
|
return true;
|
|
};
|
|
};
|
|
By.css = function(selector) {
|
|
return function(debugElement) {
|
|
return lang_1.isPresent(debugElement.nativeElement) ? dom_adapter_1.DOM.elementMatches(debugElement.nativeElement, selector) : false;
|
|
};
|
|
};
|
|
By.directive = function(type) {
|
|
return function(debugElement) {
|
|
return debugElement.providerTokens.indexOf(type) !== -1;
|
|
};
|
|
};
|
|
return By;
|
|
})();
|
|
exports.By = By;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/debug/debug_renderer", ["angular2/src/facade/lang", "angular2/src/core/debug/debug_node"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var debug_node_1 = require("angular2/src/core/debug/debug_node");
|
|
var DebugDomRootRenderer = (function() {
|
|
function DebugDomRootRenderer(_delegate) {
|
|
this._delegate = _delegate;
|
|
}
|
|
DebugDomRootRenderer.prototype.renderComponent = function(componentProto) {
|
|
return new DebugDomRenderer(this, this._delegate.renderComponent(componentProto));
|
|
};
|
|
return DebugDomRootRenderer;
|
|
})();
|
|
exports.DebugDomRootRenderer = DebugDomRootRenderer;
|
|
var DebugDomRenderer = (function() {
|
|
function DebugDomRenderer(_rootRenderer, _delegate) {
|
|
this._rootRenderer = _rootRenderer;
|
|
this._delegate = _delegate;
|
|
}
|
|
DebugDomRenderer.prototype.renderComponent = function(componentType) {
|
|
return this._rootRenderer.renderComponent(componentType);
|
|
};
|
|
DebugDomRenderer.prototype.selectRootElement = function(selector) {
|
|
var nativeEl = this._delegate.selectRootElement(selector);
|
|
var debugEl = new debug_node_1.DebugElement(nativeEl, null);
|
|
debug_node_1.indexDebugNode(debugEl);
|
|
return nativeEl;
|
|
};
|
|
DebugDomRenderer.prototype.createElement = function(parentElement, name) {
|
|
var nativeEl = this._delegate.createElement(parentElement, name);
|
|
var debugEl = new debug_node_1.DebugElement(nativeEl, debug_node_1.getDebugNode(parentElement));
|
|
debugEl.name = name;
|
|
debug_node_1.indexDebugNode(debugEl);
|
|
return nativeEl;
|
|
};
|
|
DebugDomRenderer.prototype.createViewRoot = function(hostElement) {
|
|
return this._delegate.createViewRoot(hostElement);
|
|
};
|
|
DebugDomRenderer.prototype.createTemplateAnchor = function(parentElement) {
|
|
var comment = this._delegate.createTemplateAnchor(parentElement);
|
|
var debugEl = new debug_node_1.DebugNode(comment, debug_node_1.getDebugNode(parentElement));
|
|
debug_node_1.indexDebugNode(debugEl);
|
|
return comment;
|
|
};
|
|
DebugDomRenderer.prototype.createText = function(parentElement, value) {
|
|
var text = this._delegate.createText(parentElement, value);
|
|
var debugEl = new debug_node_1.DebugNode(text, debug_node_1.getDebugNode(parentElement));
|
|
debug_node_1.indexDebugNode(debugEl);
|
|
return text;
|
|
};
|
|
DebugDomRenderer.prototype.projectNodes = function(parentElement, nodes) {
|
|
var debugParent = debug_node_1.getDebugNode(parentElement);
|
|
if (lang_1.isPresent(debugParent) && debugParent instanceof debug_node_1.DebugElement) {
|
|
nodes.forEach(function(node) {
|
|
debugParent.addChild(debug_node_1.getDebugNode(node));
|
|
});
|
|
}
|
|
return this._delegate.projectNodes(parentElement, nodes);
|
|
};
|
|
DebugDomRenderer.prototype.attachViewAfter = function(node, viewRootNodes) {
|
|
var debugNode = debug_node_1.getDebugNode(node);
|
|
if (lang_1.isPresent(debugNode)) {
|
|
var debugParent = debugNode.parent;
|
|
if (viewRootNodes.length > 0 && lang_1.isPresent(debugParent)) {
|
|
var debugViewRootNodes = [];
|
|
viewRootNodes.forEach(function(rootNode) {
|
|
return debugViewRootNodes.push(debug_node_1.getDebugNode(rootNode));
|
|
});
|
|
debugParent.insertChildrenAfter(debugNode, debugViewRootNodes);
|
|
}
|
|
}
|
|
return this._delegate.attachViewAfter(node, viewRootNodes);
|
|
};
|
|
DebugDomRenderer.prototype.detachView = function(viewRootNodes) {
|
|
viewRootNodes.forEach(function(node) {
|
|
var debugNode = debug_node_1.getDebugNode(node);
|
|
if (lang_1.isPresent(debugNode) && lang_1.isPresent(debugNode.parent)) {
|
|
debugNode.parent.removeChild(debugNode);
|
|
}
|
|
});
|
|
return this._delegate.detachView(viewRootNodes);
|
|
};
|
|
DebugDomRenderer.prototype.destroyView = function(hostElement, viewAllNodes) {
|
|
viewAllNodes.forEach(function(node) {
|
|
debug_node_1.removeDebugNodeFromIndex(debug_node_1.getDebugNode(node));
|
|
});
|
|
return this._delegate.destroyView(hostElement, viewAllNodes);
|
|
};
|
|
DebugDomRenderer.prototype.listen = function(renderElement, name, callback) {
|
|
var debugEl = debug_node_1.getDebugNode(renderElement);
|
|
if (lang_1.isPresent(debugEl)) {
|
|
debugEl.listeners.push(new debug_node_1.EventListener(name, callback));
|
|
}
|
|
return this._delegate.listen(renderElement, name, callback);
|
|
};
|
|
DebugDomRenderer.prototype.listenGlobal = function(target, name, callback) {
|
|
return this._delegate.listenGlobal(target, name, callback);
|
|
};
|
|
DebugDomRenderer.prototype.setElementProperty = function(renderElement, propertyName, propertyValue) {
|
|
var debugEl = debug_node_1.getDebugNode(renderElement);
|
|
if (lang_1.isPresent(debugEl) && debugEl instanceof debug_node_1.DebugElement) {
|
|
debugEl.properties.set(propertyName, propertyValue);
|
|
}
|
|
return this._delegate.setElementProperty(renderElement, propertyName, propertyValue);
|
|
};
|
|
DebugDomRenderer.prototype.setElementAttribute = function(renderElement, attributeName, attributeValue) {
|
|
var debugEl = debug_node_1.getDebugNode(renderElement);
|
|
if (lang_1.isPresent(debugEl) && debugEl instanceof debug_node_1.DebugElement) {
|
|
debugEl.attributes.set(attributeName, attributeValue);
|
|
}
|
|
return this._delegate.setElementAttribute(renderElement, attributeName, attributeValue);
|
|
};
|
|
DebugDomRenderer.prototype.setBindingDebugInfo = function(renderElement, propertyName, propertyValue) {
|
|
return this._delegate.setBindingDebugInfo(renderElement, propertyName, propertyValue);
|
|
};
|
|
DebugDomRenderer.prototype.setElementDebugInfo = function(renderElement, info) {
|
|
var debugEl = debug_node_1.getDebugNode(renderElement);
|
|
debugEl.setDebugInfo(info);
|
|
return this._delegate.setElementDebugInfo(renderElement, info);
|
|
};
|
|
DebugDomRenderer.prototype.setElementClass = function(renderElement, className, isAdd) {
|
|
return this._delegate.setElementClass(renderElement, className, isAdd);
|
|
};
|
|
DebugDomRenderer.prototype.setElementStyle = function(renderElement, styleName, styleValue) {
|
|
return this._delegate.setElementStyle(renderElement, styleName, styleValue);
|
|
};
|
|
DebugDomRenderer.prototype.invokeElementMethod = function(renderElement, methodName, args) {
|
|
return this._delegate.invokeElementMethod(renderElement, methodName, args);
|
|
};
|
|
DebugDomRenderer.prototype.setText = function(renderNode, text) {
|
|
return this._delegate.setText(renderNode, text);
|
|
};
|
|
return DebugDomRenderer;
|
|
})();
|
|
exports.DebugDomRenderer = DebugDomRenderer;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/compiler/selector", ["angular2/src/facade/collection", "angular2/src/facade/lang", "angular2/src/facade/exceptions"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var _EMPTY_ATTR_VALUE = '';
|
|
var _SELECTOR_REGEXP = lang_1.RegExpWrapper.create('(\\:not\\()|' + '([-\\w]+)|' + '(?:\\.([-\\w]+))|' + '(?:\\[([-\\w*]+)(?:=([^\\]]*))?\\])|' + '(\\))|' + '(\\s*,\\s*)');
|
|
var CssSelector = (function() {
|
|
function CssSelector() {
|
|
this.element = null;
|
|
this.classNames = [];
|
|
this.attrs = [];
|
|
this.notSelectors = [];
|
|
}
|
|
CssSelector.parse = function(selector) {
|
|
var results = [];
|
|
var _addResult = function(res, cssSel) {
|
|
if (cssSel.notSelectors.length > 0 && lang_1.isBlank(cssSel.element) && collection_1.ListWrapper.isEmpty(cssSel.classNames) && collection_1.ListWrapper.isEmpty(cssSel.attrs)) {
|
|
cssSel.element = "*";
|
|
}
|
|
res.push(cssSel);
|
|
};
|
|
var cssSelector = new CssSelector();
|
|
var matcher = lang_1.RegExpWrapper.matcher(_SELECTOR_REGEXP, selector);
|
|
var match;
|
|
var current = cssSelector;
|
|
var inNot = false;
|
|
while (lang_1.isPresent(match = lang_1.RegExpMatcherWrapper.next(matcher))) {
|
|
if (lang_1.isPresent(match[1])) {
|
|
if (inNot) {
|
|
throw new exceptions_1.BaseException('Nesting :not is not allowed in a selector');
|
|
}
|
|
inNot = true;
|
|
current = new CssSelector();
|
|
cssSelector.notSelectors.push(current);
|
|
}
|
|
if (lang_1.isPresent(match[2])) {
|
|
current.setElement(match[2]);
|
|
}
|
|
if (lang_1.isPresent(match[3])) {
|
|
current.addClassName(match[3]);
|
|
}
|
|
if (lang_1.isPresent(match[4])) {
|
|
current.addAttribute(match[4], match[5]);
|
|
}
|
|
if (lang_1.isPresent(match[6])) {
|
|
inNot = false;
|
|
current = cssSelector;
|
|
}
|
|
if (lang_1.isPresent(match[7])) {
|
|
if (inNot) {
|
|
throw new exceptions_1.BaseException('Multiple selectors in :not are not supported');
|
|
}
|
|
_addResult(results, cssSelector);
|
|
cssSelector = current = new CssSelector();
|
|
}
|
|
}
|
|
_addResult(results, cssSelector);
|
|
return results;
|
|
};
|
|
CssSelector.prototype.isElementSelector = function() {
|
|
return lang_1.isPresent(this.element) && collection_1.ListWrapper.isEmpty(this.classNames) && collection_1.ListWrapper.isEmpty(this.attrs) && this.notSelectors.length === 0;
|
|
};
|
|
CssSelector.prototype.setElement = function(element) {
|
|
if (element === void 0) {
|
|
element = null;
|
|
}
|
|
this.element = element;
|
|
};
|
|
CssSelector.prototype.getMatchingElementTemplate = function() {
|
|
var tagName = lang_1.isPresent(this.element) ? this.element : 'div';
|
|
var classAttr = this.classNames.length > 0 ? " class=\"" + this.classNames.join(' ') + "\"" : '';
|
|
var attrs = '';
|
|
for (var i = 0; i < this.attrs.length; i += 2) {
|
|
var attrName = this.attrs[i];
|
|
var attrValue = this.attrs[i + 1] !== '' ? "=\"" + this.attrs[i + 1] + "\"" : '';
|
|
attrs += " " + attrName + attrValue;
|
|
}
|
|
return "<" + tagName + classAttr + attrs + "></" + tagName + ">";
|
|
};
|
|
CssSelector.prototype.addAttribute = function(name, value) {
|
|
if (value === void 0) {
|
|
value = _EMPTY_ATTR_VALUE;
|
|
}
|
|
this.attrs.push(name);
|
|
if (lang_1.isPresent(value)) {
|
|
value = value.toLowerCase();
|
|
} else {
|
|
value = _EMPTY_ATTR_VALUE;
|
|
}
|
|
this.attrs.push(value);
|
|
};
|
|
CssSelector.prototype.addClassName = function(name) {
|
|
this.classNames.push(name.toLowerCase());
|
|
};
|
|
CssSelector.prototype.toString = function() {
|
|
var res = '';
|
|
if (lang_1.isPresent(this.element)) {
|
|
res += this.element;
|
|
}
|
|
if (lang_1.isPresent(this.classNames)) {
|
|
for (var i = 0; i < this.classNames.length; i++) {
|
|
res += '.' + this.classNames[i];
|
|
}
|
|
}
|
|
if (lang_1.isPresent(this.attrs)) {
|
|
for (var i = 0; i < this.attrs.length; ) {
|
|
var attrName = this.attrs[i++];
|
|
var attrValue = this.attrs[i++];
|
|
res += '[' + attrName;
|
|
if (attrValue.length > 0) {
|
|
res += '=' + attrValue;
|
|
}
|
|
res += ']';
|
|
}
|
|
}
|
|
this.notSelectors.forEach(function(notSelector) {
|
|
return res += ":not(" + notSelector + ")";
|
|
});
|
|
return res;
|
|
};
|
|
return CssSelector;
|
|
})();
|
|
exports.CssSelector = CssSelector;
|
|
var SelectorMatcher = (function() {
|
|
function SelectorMatcher() {
|
|
this._elementMap = new collection_1.Map();
|
|
this._elementPartialMap = new collection_1.Map();
|
|
this._classMap = new collection_1.Map();
|
|
this._classPartialMap = new collection_1.Map();
|
|
this._attrValueMap = new collection_1.Map();
|
|
this._attrValuePartialMap = new collection_1.Map();
|
|
this._listContexts = [];
|
|
}
|
|
SelectorMatcher.createNotMatcher = function(notSelectors) {
|
|
var notMatcher = new SelectorMatcher();
|
|
notMatcher.addSelectables(notSelectors, null);
|
|
return notMatcher;
|
|
};
|
|
SelectorMatcher.prototype.addSelectables = function(cssSelectors, callbackCtxt) {
|
|
var listContext = null;
|
|
if (cssSelectors.length > 1) {
|
|
listContext = new SelectorListContext(cssSelectors);
|
|
this._listContexts.push(listContext);
|
|
}
|
|
for (var i = 0; i < cssSelectors.length; i++) {
|
|
this._addSelectable(cssSelectors[i], callbackCtxt, listContext);
|
|
}
|
|
};
|
|
SelectorMatcher.prototype._addSelectable = function(cssSelector, callbackCtxt, listContext) {
|
|
var matcher = this;
|
|
var element = cssSelector.element;
|
|
var classNames = cssSelector.classNames;
|
|
var attrs = cssSelector.attrs;
|
|
var selectable = new SelectorContext(cssSelector, callbackCtxt, listContext);
|
|
if (lang_1.isPresent(element)) {
|
|
var isTerminal = attrs.length === 0 && classNames.length === 0;
|
|
if (isTerminal) {
|
|
this._addTerminal(matcher._elementMap, element, selectable);
|
|
} else {
|
|
matcher = this._addPartial(matcher._elementPartialMap, element);
|
|
}
|
|
}
|
|
if (lang_1.isPresent(classNames)) {
|
|
for (var index = 0; index < classNames.length; index++) {
|
|
var isTerminal = attrs.length === 0 && index === classNames.length - 1;
|
|
var className = classNames[index];
|
|
if (isTerminal) {
|
|
this._addTerminal(matcher._classMap, className, selectable);
|
|
} else {
|
|
matcher = this._addPartial(matcher._classPartialMap, className);
|
|
}
|
|
}
|
|
}
|
|
if (lang_1.isPresent(attrs)) {
|
|
for (var index = 0; index < attrs.length; ) {
|
|
var isTerminal = index === attrs.length - 2;
|
|
var attrName = attrs[index++];
|
|
var attrValue = attrs[index++];
|
|
if (isTerminal) {
|
|
var terminalMap = matcher._attrValueMap;
|
|
var terminalValuesMap = terminalMap.get(attrName);
|
|
if (lang_1.isBlank(terminalValuesMap)) {
|
|
terminalValuesMap = new collection_1.Map();
|
|
terminalMap.set(attrName, terminalValuesMap);
|
|
}
|
|
this._addTerminal(terminalValuesMap, attrValue, selectable);
|
|
} else {
|
|
var parttialMap = matcher._attrValuePartialMap;
|
|
var partialValuesMap = parttialMap.get(attrName);
|
|
if (lang_1.isBlank(partialValuesMap)) {
|
|
partialValuesMap = new collection_1.Map();
|
|
parttialMap.set(attrName, partialValuesMap);
|
|
}
|
|
matcher = this._addPartial(partialValuesMap, attrValue);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
SelectorMatcher.prototype._addTerminal = function(map, name, selectable) {
|
|
var terminalList = map.get(name);
|
|
if (lang_1.isBlank(terminalList)) {
|
|
terminalList = [];
|
|
map.set(name, terminalList);
|
|
}
|
|
terminalList.push(selectable);
|
|
};
|
|
SelectorMatcher.prototype._addPartial = function(map, name) {
|
|
var matcher = map.get(name);
|
|
if (lang_1.isBlank(matcher)) {
|
|
matcher = new SelectorMatcher();
|
|
map.set(name, matcher);
|
|
}
|
|
return matcher;
|
|
};
|
|
SelectorMatcher.prototype.match = function(cssSelector, matchedCallback) {
|
|
var result = false;
|
|
var element = cssSelector.element;
|
|
var classNames = cssSelector.classNames;
|
|
var attrs = cssSelector.attrs;
|
|
for (var i = 0; i < this._listContexts.length; i++) {
|
|
this._listContexts[i].alreadyMatched = false;
|
|
}
|
|
result = this._matchTerminal(this._elementMap, element, cssSelector, matchedCallback) || result;
|
|
result = this._matchPartial(this._elementPartialMap, element, cssSelector, matchedCallback) || result;
|
|
if (lang_1.isPresent(classNames)) {
|
|
for (var index = 0; index < classNames.length; index++) {
|
|
var className = classNames[index];
|
|
result = this._matchTerminal(this._classMap, className, cssSelector, matchedCallback) || result;
|
|
result = this._matchPartial(this._classPartialMap, className, cssSelector, matchedCallback) || result;
|
|
}
|
|
}
|
|
if (lang_1.isPresent(attrs)) {
|
|
for (var index = 0; index < attrs.length; ) {
|
|
var attrName = attrs[index++];
|
|
var attrValue = attrs[index++];
|
|
var terminalValuesMap = this._attrValueMap.get(attrName);
|
|
if (!lang_1.StringWrapper.equals(attrValue, _EMPTY_ATTR_VALUE)) {
|
|
result = this._matchTerminal(terminalValuesMap, _EMPTY_ATTR_VALUE, cssSelector, matchedCallback) || result;
|
|
}
|
|
result = this._matchTerminal(terminalValuesMap, attrValue, cssSelector, matchedCallback) || result;
|
|
var partialValuesMap = this._attrValuePartialMap.get(attrName);
|
|
if (!lang_1.StringWrapper.equals(attrValue, _EMPTY_ATTR_VALUE)) {
|
|
result = this._matchPartial(partialValuesMap, _EMPTY_ATTR_VALUE, cssSelector, matchedCallback) || result;
|
|
}
|
|
result = this._matchPartial(partialValuesMap, attrValue, cssSelector, matchedCallback) || result;
|
|
}
|
|
}
|
|
return result;
|
|
};
|
|
SelectorMatcher.prototype._matchTerminal = function(map, name, cssSelector, matchedCallback) {
|
|
if (lang_1.isBlank(map) || lang_1.isBlank(name)) {
|
|
return false;
|
|
}
|
|
var selectables = map.get(name);
|
|
var starSelectables = map.get("*");
|
|
if (lang_1.isPresent(starSelectables)) {
|
|
selectables = selectables.concat(starSelectables);
|
|
}
|
|
if (lang_1.isBlank(selectables)) {
|
|
return false;
|
|
}
|
|
var selectable;
|
|
var result = false;
|
|
for (var index = 0; index < selectables.length; index++) {
|
|
selectable = selectables[index];
|
|
result = selectable.finalize(cssSelector, matchedCallback) || result;
|
|
}
|
|
return result;
|
|
};
|
|
SelectorMatcher.prototype._matchPartial = function(map, name, cssSelector, matchedCallback) {
|
|
if (lang_1.isBlank(map) || lang_1.isBlank(name)) {
|
|
return false;
|
|
}
|
|
var nestedSelector = map.get(name);
|
|
if (lang_1.isBlank(nestedSelector)) {
|
|
return false;
|
|
}
|
|
return nestedSelector.match(cssSelector, matchedCallback);
|
|
};
|
|
return SelectorMatcher;
|
|
})();
|
|
exports.SelectorMatcher = SelectorMatcher;
|
|
var SelectorListContext = (function() {
|
|
function SelectorListContext(selectors) {
|
|
this.selectors = selectors;
|
|
this.alreadyMatched = false;
|
|
}
|
|
return SelectorListContext;
|
|
})();
|
|
exports.SelectorListContext = SelectorListContext;
|
|
var SelectorContext = (function() {
|
|
function SelectorContext(selector, cbContext, listContext) {
|
|
this.selector = selector;
|
|
this.cbContext = cbContext;
|
|
this.listContext = listContext;
|
|
this.notSelectors = selector.notSelectors;
|
|
}
|
|
SelectorContext.prototype.finalize = function(cssSelector, callback) {
|
|
var result = true;
|
|
if (this.notSelectors.length > 0 && (lang_1.isBlank(this.listContext) || !this.listContext.alreadyMatched)) {
|
|
var notMatcher = SelectorMatcher.createNotMatcher(this.notSelectors);
|
|
result = !notMatcher.match(cssSelector, null);
|
|
}
|
|
if (result && lang_1.isPresent(callback) && (lang_1.isBlank(this.listContext) || !this.listContext.alreadyMatched)) {
|
|
if (lang_1.isPresent(this.listContext)) {
|
|
this.listContext.alreadyMatched = true;
|
|
}
|
|
callback(this.selector, this.cbContext);
|
|
}
|
|
return result;
|
|
};
|
|
return SelectorContext;
|
|
})();
|
|
exports.SelectorContext = SelectorContext;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/web_workers/shared/post_message_bus", ["angular2/src/facade/exceptions", "angular2/src/facade/async", "angular2/src/facade/collection", "angular2/src/core/di"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var async_1 = require("angular2/src/facade/async");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var di_1 = require("angular2/src/core/di");
|
|
var PostMessageBusSink = (function() {
|
|
function PostMessageBusSink(_postMessageTarget) {
|
|
this._postMessageTarget = _postMessageTarget;
|
|
this._channels = collection_1.StringMapWrapper.create();
|
|
this._messageBuffer = [];
|
|
}
|
|
PostMessageBusSink.prototype.attachToZone = function(zone) {
|
|
var _this = this;
|
|
this._zone = zone;
|
|
this._zone.runOutsideAngular(function() {
|
|
async_1.ObservableWrapper.subscribe(_this._zone.onStable, function(_) {
|
|
_this._handleOnEventDone();
|
|
});
|
|
});
|
|
};
|
|
PostMessageBusSink.prototype.initChannel = function(channel, runInZone) {
|
|
var _this = this;
|
|
if (runInZone === void 0) {
|
|
runInZone = true;
|
|
}
|
|
if (collection_1.StringMapWrapper.contains(this._channels, channel)) {
|
|
throw new exceptions_1.BaseException(channel + " has already been initialized");
|
|
}
|
|
var emitter = new async_1.EventEmitter(false);
|
|
var channelInfo = new _Channel(emitter, runInZone);
|
|
this._channels[channel] = channelInfo;
|
|
emitter.subscribe(function(data) {
|
|
var message = {
|
|
channel: channel,
|
|
message: data
|
|
};
|
|
if (runInZone) {
|
|
_this._messageBuffer.push(message);
|
|
} else {
|
|
_this._sendMessages([message]);
|
|
}
|
|
});
|
|
};
|
|
PostMessageBusSink.prototype.to = function(channel) {
|
|
if (collection_1.StringMapWrapper.contains(this._channels, channel)) {
|
|
return this._channels[channel].emitter;
|
|
} else {
|
|
throw new exceptions_1.BaseException(channel + " is not set up. Did you forget to call initChannel?");
|
|
}
|
|
};
|
|
PostMessageBusSink.prototype._handleOnEventDone = function() {
|
|
if (this._messageBuffer.length > 0) {
|
|
this._sendMessages(this._messageBuffer);
|
|
this._messageBuffer = [];
|
|
}
|
|
};
|
|
PostMessageBusSink.prototype._sendMessages = function(messages) {
|
|
this._postMessageTarget.postMessage(messages);
|
|
};
|
|
return PostMessageBusSink;
|
|
})();
|
|
exports.PostMessageBusSink = PostMessageBusSink;
|
|
var PostMessageBusSource = (function() {
|
|
function PostMessageBusSource(eventTarget) {
|
|
var _this = this;
|
|
this._channels = collection_1.StringMapWrapper.create();
|
|
if (eventTarget) {
|
|
eventTarget.addEventListener("message", function(ev) {
|
|
return _this._handleMessages(ev);
|
|
});
|
|
} else {
|
|
addEventListener("message", function(ev) {
|
|
return _this._handleMessages(ev);
|
|
});
|
|
}
|
|
}
|
|
PostMessageBusSource.prototype.attachToZone = function(zone) {
|
|
this._zone = zone;
|
|
};
|
|
PostMessageBusSource.prototype.initChannel = function(channel, runInZone) {
|
|
if (runInZone === void 0) {
|
|
runInZone = true;
|
|
}
|
|
if (collection_1.StringMapWrapper.contains(this._channels, channel)) {
|
|
throw new exceptions_1.BaseException(channel + " has already been initialized");
|
|
}
|
|
var emitter = new async_1.EventEmitter(false);
|
|
var channelInfo = new _Channel(emitter, runInZone);
|
|
this._channels[channel] = channelInfo;
|
|
};
|
|
PostMessageBusSource.prototype.from = function(channel) {
|
|
if (collection_1.StringMapWrapper.contains(this._channels, channel)) {
|
|
return this._channels[channel].emitter;
|
|
} else {
|
|
throw new exceptions_1.BaseException(channel + " is not set up. Did you forget to call initChannel?");
|
|
}
|
|
};
|
|
PostMessageBusSource.prototype._handleMessages = function(ev) {
|
|
var messages = ev.data;
|
|
for (var i = 0; i < messages.length; i++) {
|
|
this._handleMessage(messages[i]);
|
|
}
|
|
};
|
|
PostMessageBusSource.prototype._handleMessage = function(data) {
|
|
var channel = data.channel;
|
|
if (collection_1.StringMapWrapper.contains(this._channels, channel)) {
|
|
var channelInfo = this._channels[channel];
|
|
if (channelInfo.runInZone) {
|
|
this._zone.run(function() {
|
|
channelInfo.emitter.emit(data.message);
|
|
});
|
|
} else {
|
|
channelInfo.emitter.emit(data.message);
|
|
}
|
|
}
|
|
};
|
|
return PostMessageBusSource;
|
|
})();
|
|
exports.PostMessageBusSource = PostMessageBusSource;
|
|
var PostMessageBus = (function() {
|
|
function PostMessageBus(sink, source) {
|
|
this.sink = sink;
|
|
this.source = source;
|
|
}
|
|
PostMessageBus.prototype.attachToZone = function(zone) {
|
|
this.source.attachToZone(zone);
|
|
this.sink.attachToZone(zone);
|
|
};
|
|
PostMessageBus.prototype.initChannel = function(channel, runInZone) {
|
|
if (runInZone === void 0) {
|
|
runInZone = true;
|
|
}
|
|
this.source.initChannel(channel, runInZone);
|
|
this.sink.initChannel(channel, runInZone);
|
|
};
|
|
PostMessageBus.prototype.from = function(channel) {
|
|
return this.source.from(channel);
|
|
};
|
|
PostMessageBus.prototype.to = function(channel) {
|
|
return this.sink.to(channel);
|
|
};
|
|
PostMessageBus = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [PostMessageBusSink, PostMessageBusSource])], PostMessageBus);
|
|
return PostMessageBus;
|
|
})();
|
|
exports.PostMessageBus = PostMessageBus;
|
|
var _Channel = (function() {
|
|
function _Channel(emitter, runInZone) {
|
|
this.emitter = emitter;
|
|
this.runInZone = runInZone;
|
|
}
|
|
return _Channel;
|
|
})();
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/compiler/util", ["angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var CAMEL_CASE_REGEXP = /([A-Z])/g;
|
|
var DASH_CASE_REGEXP = /-([a-z])/g;
|
|
var SINGLE_QUOTE_ESCAPE_STRING_RE = /'|\\|\n|\r|\$/g;
|
|
var DOUBLE_QUOTE_ESCAPE_STRING_RE = /"|\\|\n|\r|\$/g;
|
|
exports.MODULE_SUFFIX = lang_1.IS_DART ? '.dart' : '.js';
|
|
exports.CONST_VAR = lang_1.IS_DART ? 'const' : 'var';
|
|
function camelCaseToDashCase(input) {
|
|
return lang_1.StringWrapper.replaceAllMapped(input, CAMEL_CASE_REGEXP, function(m) {
|
|
return '-' + m[1].toLowerCase();
|
|
});
|
|
}
|
|
exports.camelCaseToDashCase = camelCaseToDashCase;
|
|
function dashCaseToCamelCase(input) {
|
|
return lang_1.StringWrapper.replaceAllMapped(input, DASH_CASE_REGEXP, function(m) {
|
|
return m[1].toUpperCase();
|
|
});
|
|
}
|
|
exports.dashCaseToCamelCase = dashCaseToCamelCase;
|
|
function escapeSingleQuoteString(input) {
|
|
if (lang_1.isBlank(input)) {
|
|
return null;
|
|
}
|
|
return "'" + escapeString(input, SINGLE_QUOTE_ESCAPE_STRING_RE) + "'";
|
|
}
|
|
exports.escapeSingleQuoteString = escapeSingleQuoteString;
|
|
function escapeDoubleQuoteString(input) {
|
|
if (lang_1.isBlank(input)) {
|
|
return null;
|
|
}
|
|
return "\"" + escapeString(input, DOUBLE_QUOTE_ESCAPE_STRING_RE) + "\"";
|
|
}
|
|
exports.escapeDoubleQuoteString = escapeDoubleQuoteString;
|
|
function escapeString(input, re) {
|
|
return lang_1.StringWrapper.replaceAllMapped(input, re, function(match) {
|
|
if (match[0] == '$') {
|
|
return lang_1.IS_DART ? '\\$' : '$';
|
|
} else if (match[0] == '\n') {
|
|
return '\\n';
|
|
} else if (match[0] == '\r') {
|
|
return '\\r';
|
|
} else {
|
|
return "\\" + match[0];
|
|
}
|
|
});
|
|
}
|
|
function codeGenExportVariable(name) {
|
|
if (lang_1.IS_DART) {
|
|
return "const " + name + " = ";
|
|
} else {
|
|
return "var " + name + " = exports['" + name + "'] = ";
|
|
}
|
|
}
|
|
exports.codeGenExportVariable = codeGenExportVariable;
|
|
function codeGenConstConstructorCall(name) {
|
|
if (lang_1.IS_DART) {
|
|
return "const " + name;
|
|
} else {
|
|
return "new " + name;
|
|
}
|
|
}
|
|
exports.codeGenConstConstructorCall = codeGenConstConstructorCall;
|
|
function codeGenValueFn(params, value, fnName) {
|
|
if (fnName === void 0) {
|
|
fnName = '';
|
|
}
|
|
if (lang_1.IS_DART) {
|
|
return codeGenFnHeader(params, fnName) + " => " + value;
|
|
} else {
|
|
return codeGenFnHeader(params, fnName) + " { return " + value + "; }";
|
|
}
|
|
}
|
|
exports.codeGenValueFn = codeGenValueFn;
|
|
function codeGenFnHeader(params, fnName) {
|
|
if (fnName === void 0) {
|
|
fnName = '';
|
|
}
|
|
if (lang_1.IS_DART) {
|
|
return fnName + "(" + params.join(',') + ")";
|
|
} else {
|
|
return "function " + fnName + "(" + params.join(',') + ")";
|
|
}
|
|
}
|
|
exports.codeGenFnHeader = codeGenFnHeader;
|
|
function codeGenToString(expr) {
|
|
if (lang_1.IS_DART) {
|
|
return "'${" + expr + "}'";
|
|
} else {
|
|
return expr;
|
|
}
|
|
}
|
|
exports.codeGenToString = codeGenToString;
|
|
function splitAtColon(input, defaultValues) {
|
|
var parts = lang_1.StringWrapper.split(input.trim(), /\s*:\s*/g);
|
|
if (parts.length > 1) {
|
|
return parts;
|
|
} else {
|
|
return defaultValues;
|
|
}
|
|
}
|
|
exports.splitAtColon = splitAtColon;
|
|
var Statement = (function() {
|
|
function Statement(statement) {
|
|
this.statement = statement;
|
|
}
|
|
return Statement;
|
|
})();
|
|
exports.Statement = Statement;
|
|
var Expression = (function() {
|
|
function Expression(expression, isArray) {
|
|
if (isArray === void 0) {
|
|
isArray = false;
|
|
}
|
|
this.expression = expression;
|
|
this.isArray = isArray;
|
|
}
|
|
return Expression;
|
|
})();
|
|
exports.Expression = Expression;
|
|
function escapeValue(value) {
|
|
if (value instanceof Expression) {
|
|
return value.expression;
|
|
} else if (lang_1.isString(value)) {
|
|
return escapeSingleQuoteString(value);
|
|
} else if (lang_1.isBlank(value)) {
|
|
return 'null';
|
|
} else {
|
|
return "" + value;
|
|
}
|
|
}
|
|
exports.escapeValue = escapeValue;
|
|
function codeGenArray(data) {
|
|
return "[" + data.map(escapeValue).join(',') + "]";
|
|
}
|
|
exports.codeGenArray = codeGenArray;
|
|
function codeGenFlatArray(values) {
|
|
var result = '([';
|
|
var isFirstArrayEntry = true;
|
|
var concatFn = lang_1.IS_DART ? '.addAll' : 'concat';
|
|
for (var i = 0; i < values.length; i++) {
|
|
var value = values[i];
|
|
if (value instanceof Expression && value.isArray) {
|
|
result += "])." + concatFn + "(" + value.expression + ")." + concatFn + "([";
|
|
isFirstArrayEntry = true;
|
|
} else {
|
|
if (!isFirstArrayEntry) {
|
|
result += ',';
|
|
}
|
|
isFirstArrayEntry = false;
|
|
result += escapeValue(value);
|
|
}
|
|
}
|
|
result += '])';
|
|
return result;
|
|
}
|
|
exports.codeGenFlatArray = codeGenFlatArray;
|
|
function codeGenStringMap(keyValueArray) {
|
|
return "{" + keyValueArray.map(codeGenKeyValue).join(',') + "}";
|
|
}
|
|
exports.codeGenStringMap = codeGenStringMap;
|
|
function codeGenKeyValue(keyValue) {
|
|
return escapeValue(keyValue[0]) + ":" + escapeValue(keyValue[1]);
|
|
}
|
|
function addAll(source, target) {
|
|
for (var i = 0; i < source.length; i++) {
|
|
target.push(source[i]);
|
|
}
|
|
}
|
|
exports.addAll = addAll;
|
|
function flattenArray(source, target) {
|
|
if (lang_1.isPresent(source)) {
|
|
for (var i = 0; i < source.length; i++) {
|
|
var item = source[i];
|
|
if (lang_1.isArray(item)) {
|
|
flattenArray(item, target);
|
|
} else {
|
|
target.push(item);
|
|
}
|
|
}
|
|
}
|
|
return target;
|
|
}
|
|
exports.flattenArray = flattenArray;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/linker/interfaces", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
(function(LifecycleHooks) {
|
|
LifecycleHooks[LifecycleHooks["OnInit"] = 0] = "OnInit";
|
|
LifecycleHooks[LifecycleHooks["OnDestroy"] = 1] = "OnDestroy";
|
|
LifecycleHooks[LifecycleHooks["DoCheck"] = 2] = "DoCheck";
|
|
LifecycleHooks[LifecycleHooks["OnChanges"] = 3] = "OnChanges";
|
|
LifecycleHooks[LifecycleHooks["AfterContentInit"] = 4] = "AfterContentInit";
|
|
LifecycleHooks[LifecycleHooks["AfterContentChecked"] = 5] = "AfterContentChecked";
|
|
LifecycleHooks[LifecycleHooks["AfterViewInit"] = 6] = "AfterViewInit";
|
|
LifecycleHooks[LifecycleHooks["AfterViewChecked"] = 7] = "AfterViewChecked";
|
|
})(exports.LifecycleHooks || (exports.LifecycleHooks = {}));
|
|
var LifecycleHooks = exports.LifecycleHooks;
|
|
exports.LIFECYCLE_HOOKS_VALUES = [LifecycleHooks.OnInit, LifecycleHooks.OnDestroy, LifecycleHooks.DoCheck, LifecycleHooks.OnChanges, LifecycleHooks.AfterContentInit, LifecycleHooks.AfterContentChecked, LifecycleHooks.AfterViewInit, LifecycleHooks.AfterViewChecked];
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/compiler/template_ast", ["angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var TextAst = (function() {
|
|
function TextAst(value, ngContentIndex, sourceSpan) {
|
|
this.value = value;
|
|
this.ngContentIndex = ngContentIndex;
|
|
this.sourceSpan = sourceSpan;
|
|
}
|
|
TextAst.prototype.visit = function(visitor, context) {
|
|
return visitor.visitText(this, context);
|
|
};
|
|
return TextAst;
|
|
})();
|
|
exports.TextAst = TextAst;
|
|
var BoundTextAst = (function() {
|
|
function BoundTextAst(value, ngContentIndex, sourceSpan) {
|
|
this.value = value;
|
|
this.ngContentIndex = ngContentIndex;
|
|
this.sourceSpan = sourceSpan;
|
|
}
|
|
BoundTextAst.prototype.visit = function(visitor, context) {
|
|
return visitor.visitBoundText(this, context);
|
|
};
|
|
return BoundTextAst;
|
|
})();
|
|
exports.BoundTextAst = BoundTextAst;
|
|
var AttrAst = (function() {
|
|
function AttrAst(name, value, sourceSpan) {
|
|
this.name = name;
|
|
this.value = value;
|
|
this.sourceSpan = sourceSpan;
|
|
}
|
|
AttrAst.prototype.visit = function(visitor, context) {
|
|
return visitor.visitAttr(this, context);
|
|
};
|
|
return AttrAst;
|
|
})();
|
|
exports.AttrAst = AttrAst;
|
|
var BoundElementPropertyAst = (function() {
|
|
function BoundElementPropertyAst(name, type, value, unit, sourceSpan) {
|
|
this.name = name;
|
|
this.type = type;
|
|
this.value = value;
|
|
this.unit = unit;
|
|
this.sourceSpan = sourceSpan;
|
|
}
|
|
BoundElementPropertyAst.prototype.visit = function(visitor, context) {
|
|
return visitor.visitElementProperty(this, context);
|
|
};
|
|
return BoundElementPropertyAst;
|
|
})();
|
|
exports.BoundElementPropertyAst = BoundElementPropertyAst;
|
|
var BoundEventAst = (function() {
|
|
function BoundEventAst(name, target, handler, sourceSpan) {
|
|
this.name = name;
|
|
this.target = target;
|
|
this.handler = handler;
|
|
this.sourceSpan = sourceSpan;
|
|
}
|
|
BoundEventAst.prototype.visit = function(visitor, context) {
|
|
return visitor.visitEvent(this, context);
|
|
};
|
|
Object.defineProperty(BoundEventAst.prototype, "fullName", {
|
|
get: function() {
|
|
if (lang_1.isPresent(this.target)) {
|
|
return this.target + ":" + this.name;
|
|
} else {
|
|
return this.name;
|
|
}
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
return BoundEventAst;
|
|
})();
|
|
exports.BoundEventAst = BoundEventAst;
|
|
var VariableAst = (function() {
|
|
function VariableAst(name, value, sourceSpan) {
|
|
this.name = name;
|
|
this.value = value;
|
|
this.sourceSpan = sourceSpan;
|
|
}
|
|
VariableAst.prototype.visit = function(visitor, context) {
|
|
return visitor.visitVariable(this, context);
|
|
};
|
|
return VariableAst;
|
|
})();
|
|
exports.VariableAst = VariableAst;
|
|
var ElementAst = (function() {
|
|
function ElementAst(name, attrs, inputs, outputs, exportAsVars, directives, children, ngContentIndex, sourceSpan) {
|
|
this.name = name;
|
|
this.attrs = attrs;
|
|
this.inputs = inputs;
|
|
this.outputs = outputs;
|
|
this.exportAsVars = exportAsVars;
|
|
this.directives = directives;
|
|
this.children = children;
|
|
this.ngContentIndex = ngContentIndex;
|
|
this.sourceSpan = sourceSpan;
|
|
}
|
|
ElementAst.prototype.visit = function(visitor, context) {
|
|
return visitor.visitElement(this, context);
|
|
};
|
|
ElementAst.prototype.isBound = function() {
|
|
return (this.inputs.length > 0 || this.outputs.length > 0 || this.exportAsVars.length > 0 || this.directives.length > 0);
|
|
};
|
|
ElementAst.prototype.getComponent = function() {
|
|
return this.directives.length > 0 && this.directives[0].directive.isComponent ? this.directives[0].directive : null;
|
|
};
|
|
return ElementAst;
|
|
})();
|
|
exports.ElementAst = ElementAst;
|
|
var EmbeddedTemplateAst = (function() {
|
|
function EmbeddedTemplateAst(attrs, outputs, vars, directives, children, ngContentIndex, sourceSpan) {
|
|
this.attrs = attrs;
|
|
this.outputs = outputs;
|
|
this.vars = vars;
|
|
this.directives = directives;
|
|
this.children = children;
|
|
this.ngContentIndex = ngContentIndex;
|
|
this.sourceSpan = sourceSpan;
|
|
}
|
|
EmbeddedTemplateAst.prototype.visit = function(visitor, context) {
|
|
return visitor.visitEmbeddedTemplate(this, context);
|
|
};
|
|
return EmbeddedTemplateAst;
|
|
})();
|
|
exports.EmbeddedTemplateAst = EmbeddedTemplateAst;
|
|
var BoundDirectivePropertyAst = (function() {
|
|
function BoundDirectivePropertyAst(directiveName, templateName, value, sourceSpan) {
|
|
this.directiveName = directiveName;
|
|
this.templateName = templateName;
|
|
this.value = value;
|
|
this.sourceSpan = sourceSpan;
|
|
}
|
|
BoundDirectivePropertyAst.prototype.visit = function(visitor, context) {
|
|
return visitor.visitDirectiveProperty(this, context);
|
|
};
|
|
return BoundDirectivePropertyAst;
|
|
})();
|
|
exports.BoundDirectivePropertyAst = BoundDirectivePropertyAst;
|
|
var DirectiveAst = (function() {
|
|
function DirectiveAst(directive, inputs, hostProperties, hostEvents, exportAsVars, sourceSpan) {
|
|
this.directive = directive;
|
|
this.inputs = inputs;
|
|
this.hostProperties = hostProperties;
|
|
this.hostEvents = hostEvents;
|
|
this.exportAsVars = exportAsVars;
|
|
this.sourceSpan = sourceSpan;
|
|
}
|
|
DirectiveAst.prototype.visit = function(visitor, context) {
|
|
return visitor.visitDirective(this, context);
|
|
};
|
|
return DirectiveAst;
|
|
})();
|
|
exports.DirectiveAst = DirectiveAst;
|
|
var NgContentAst = (function() {
|
|
function NgContentAst(index, ngContentIndex, sourceSpan) {
|
|
this.index = index;
|
|
this.ngContentIndex = ngContentIndex;
|
|
this.sourceSpan = sourceSpan;
|
|
}
|
|
NgContentAst.prototype.visit = function(visitor, context) {
|
|
return visitor.visitNgContent(this, context);
|
|
};
|
|
return NgContentAst;
|
|
})();
|
|
exports.NgContentAst = NgContentAst;
|
|
(function(PropertyBindingType) {
|
|
PropertyBindingType[PropertyBindingType["Property"] = 0] = "Property";
|
|
PropertyBindingType[PropertyBindingType["Attribute"] = 1] = "Attribute";
|
|
PropertyBindingType[PropertyBindingType["Class"] = 2] = "Class";
|
|
PropertyBindingType[PropertyBindingType["Style"] = 3] = "Style";
|
|
})(exports.PropertyBindingType || (exports.PropertyBindingType = {}));
|
|
var PropertyBindingType = exports.PropertyBindingType;
|
|
function templateVisitAll(visitor, asts, context) {
|
|
if (context === void 0) {
|
|
context = null;
|
|
}
|
|
var result = [];
|
|
asts.forEach(function(ast) {
|
|
var astResult = ast.visit(visitor, context);
|
|
if (lang_1.isPresent(astResult)) {
|
|
result.push(astResult);
|
|
}
|
|
});
|
|
return result;
|
|
}
|
|
exports.templateVisitAll = templateVisitAll;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/compiler/source_module", ["angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var MODULE_REGEXP = /#MODULE\[([^\]]*)\]/g;
|
|
function moduleRef(moduleUrl) {
|
|
return "#MODULE[" + moduleUrl + "]";
|
|
}
|
|
exports.moduleRef = moduleRef;
|
|
var SourceModule = (function() {
|
|
function SourceModule(moduleUrl, sourceWithModuleRefs) {
|
|
this.moduleUrl = moduleUrl;
|
|
this.sourceWithModuleRefs = sourceWithModuleRefs;
|
|
}
|
|
SourceModule.getSourceWithoutImports = function(sourceWithModuleRefs) {
|
|
return lang_1.StringWrapper.replaceAllMapped(sourceWithModuleRefs, MODULE_REGEXP, function(match) {
|
|
return '';
|
|
});
|
|
};
|
|
SourceModule.prototype.getSourceWithImports = function() {
|
|
var _this = this;
|
|
var moduleAliases = {};
|
|
var imports = [];
|
|
var newSource = lang_1.StringWrapper.replaceAllMapped(this.sourceWithModuleRefs, MODULE_REGEXP, function(match) {
|
|
var moduleUrl = match[1];
|
|
var alias = moduleAliases[moduleUrl];
|
|
if (lang_1.isBlank(alias)) {
|
|
if (moduleUrl == _this.moduleUrl) {
|
|
alias = '';
|
|
} else {
|
|
alias = "import" + imports.length;
|
|
imports.push([moduleUrl, alias]);
|
|
}
|
|
moduleAliases[moduleUrl] = alias;
|
|
}
|
|
return alias.length > 0 ? alias + "." : '';
|
|
});
|
|
return new SourceWithImports(newSource, imports);
|
|
};
|
|
return SourceModule;
|
|
})();
|
|
exports.SourceModule = SourceModule;
|
|
var SourceExpression = (function() {
|
|
function SourceExpression(declarations, expression) {
|
|
this.declarations = declarations;
|
|
this.expression = expression;
|
|
}
|
|
return SourceExpression;
|
|
})();
|
|
exports.SourceExpression = SourceExpression;
|
|
var SourceExpressions = (function() {
|
|
function SourceExpressions(declarations, expressions) {
|
|
this.declarations = declarations;
|
|
this.expressions = expressions;
|
|
}
|
|
return SourceExpressions;
|
|
})();
|
|
exports.SourceExpressions = SourceExpressions;
|
|
var SourceWithImports = (function() {
|
|
function SourceWithImports(source, imports) {
|
|
this.source = source;
|
|
this.imports = imports;
|
|
}
|
|
return SourceWithImports;
|
|
})();
|
|
exports.SourceWithImports = SourceWithImports;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/compiler/change_definition_factory", ["angular2/src/facade/collection", "angular2/src/facade/lang", "angular2/src/core/reflection/reflection", "angular2/src/core/change_detection/change_detection", "angular2/src/compiler/template_ast", "angular2/src/core/linker/interfaces"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var reflection_1 = require("angular2/src/core/reflection/reflection");
|
|
var change_detection_1 = require("angular2/src/core/change_detection/change_detection");
|
|
var template_ast_1 = require("angular2/src/compiler/template_ast");
|
|
var interfaces_1 = require("angular2/src/core/linker/interfaces");
|
|
function createChangeDetectorDefinitions(componentType, componentStrategy, genConfig, parsedTemplate) {
|
|
var pvVisitors = [];
|
|
var visitor = new ProtoViewVisitor(null, pvVisitors, componentStrategy);
|
|
template_ast_1.templateVisitAll(visitor, parsedTemplate);
|
|
return createChangeDefinitions(pvVisitors, componentType, genConfig);
|
|
}
|
|
exports.createChangeDetectorDefinitions = createChangeDetectorDefinitions;
|
|
var ProtoViewVisitor = (function() {
|
|
function ProtoViewVisitor(parent, allVisitors, strategy) {
|
|
this.parent = parent;
|
|
this.allVisitors = allVisitors;
|
|
this.strategy = strategy;
|
|
this.nodeCount = 0;
|
|
this.boundElementCount = 0;
|
|
this.variableNames = [];
|
|
this.bindingRecords = [];
|
|
this.eventRecords = [];
|
|
this.directiveRecords = [];
|
|
this.viewIndex = allVisitors.length;
|
|
allVisitors.push(this);
|
|
}
|
|
ProtoViewVisitor.prototype.visitEmbeddedTemplate = function(ast, context) {
|
|
this.nodeCount++;
|
|
this.boundElementCount++;
|
|
template_ast_1.templateVisitAll(this, ast.outputs);
|
|
for (var i = 0; i < ast.directives.length; i++) {
|
|
ast.directives[i].visit(this, i);
|
|
}
|
|
var childVisitor = new ProtoViewVisitor(this, this.allVisitors, change_detection_1.ChangeDetectionStrategy.Default);
|
|
template_ast_1.templateVisitAll(childVisitor, ast.vars);
|
|
template_ast_1.templateVisitAll(childVisitor, ast.children);
|
|
return null;
|
|
};
|
|
ProtoViewVisitor.prototype.visitElement = function(ast, context) {
|
|
this.nodeCount++;
|
|
if (ast.isBound()) {
|
|
this.boundElementCount++;
|
|
}
|
|
template_ast_1.templateVisitAll(this, ast.inputs, null);
|
|
template_ast_1.templateVisitAll(this, ast.outputs);
|
|
template_ast_1.templateVisitAll(this, ast.exportAsVars);
|
|
for (var i = 0; i < ast.directives.length; i++) {
|
|
ast.directives[i].visit(this, i);
|
|
}
|
|
template_ast_1.templateVisitAll(this, ast.children);
|
|
return null;
|
|
};
|
|
ProtoViewVisitor.prototype.visitNgContent = function(ast, context) {
|
|
return null;
|
|
};
|
|
ProtoViewVisitor.prototype.visitVariable = function(ast, context) {
|
|
this.variableNames.push(ast.name);
|
|
return null;
|
|
};
|
|
ProtoViewVisitor.prototype.visitEvent = function(ast, directiveRecord) {
|
|
var bindingRecord = lang_1.isPresent(directiveRecord) ? change_detection_1.BindingRecord.createForHostEvent(ast.handler, ast.fullName, directiveRecord) : change_detection_1.BindingRecord.createForEvent(ast.handler, ast.fullName, this.boundElementCount - 1);
|
|
this.eventRecords.push(bindingRecord);
|
|
return null;
|
|
};
|
|
ProtoViewVisitor.prototype.visitElementProperty = function(ast, directiveRecord) {
|
|
var boundElementIndex = this.boundElementCount - 1;
|
|
var dirIndex = lang_1.isPresent(directiveRecord) ? directiveRecord.directiveIndex : null;
|
|
var bindingRecord;
|
|
if (ast.type === template_ast_1.PropertyBindingType.Property) {
|
|
bindingRecord = lang_1.isPresent(dirIndex) ? change_detection_1.BindingRecord.createForHostProperty(dirIndex, ast.value, ast.name) : change_detection_1.BindingRecord.createForElementProperty(ast.value, boundElementIndex, ast.name);
|
|
} else if (ast.type === template_ast_1.PropertyBindingType.Attribute) {
|
|
bindingRecord = lang_1.isPresent(dirIndex) ? change_detection_1.BindingRecord.createForHostAttribute(dirIndex, ast.value, ast.name) : change_detection_1.BindingRecord.createForElementAttribute(ast.value, boundElementIndex, ast.name);
|
|
} else if (ast.type === template_ast_1.PropertyBindingType.Class) {
|
|
bindingRecord = lang_1.isPresent(dirIndex) ? change_detection_1.BindingRecord.createForHostClass(dirIndex, ast.value, ast.name) : change_detection_1.BindingRecord.createForElementClass(ast.value, boundElementIndex, ast.name);
|
|
} else if (ast.type === template_ast_1.PropertyBindingType.Style) {
|
|
bindingRecord = lang_1.isPresent(dirIndex) ? change_detection_1.BindingRecord.createForHostStyle(dirIndex, ast.value, ast.name, ast.unit) : change_detection_1.BindingRecord.createForElementStyle(ast.value, boundElementIndex, ast.name, ast.unit);
|
|
}
|
|
this.bindingRecords.push(bindingRecord);
|
|
return null;
|
|
};
|
|
ProtoViewVisitor.prototype.visitAttr = function(ast, context) {
|
|
return null;
|
|
};
|
|
ProtoViewVisitor.prototype.visitBoundText = function(ast, context) {
|
|
var nodeIndex = this.nodeCount++;
|
|
this.bindingRecords.push(change_detection_1.BindingRecord.createForTextNode(ast.value, nodeIndex));
|
|
return null;
|
|
};
|
|
ProtoViewVisitor.prototype.visitText = function(ast, context) {
|
|
this.nodeCount++;
|
|
return null;
|
|
};
|
|
ProtoViewVisitor.prototype.visitDirective = function(ast, directiveIndexAsNumber) {
|
|
var directiveIndex = new change_detection_1.DirectiveIndex(this.boundElementCount - 1, directiveIndexAsNumber);
|
|
var directiveMetadata = ast.directive;
|
|
var outputsArray = [];
|
|
collection_1.StringMapWrapper.forEach(ast.directive.outputs, function(eventName, dirProperty) {
|
|
return outputsArray.push([dirProperty, eventName]);
|
|
});
|
|
var directiveRecord = new change_detection_1.DirectiveRecord({
|
|
directiveIndex: directiveIndex,
|
|
callAfterContentInit: directiveMetadata.lifecycleHooks.indexOf(interfaces_1.LifecycleHooks.AfterContentInit) !== -1,
|
|
callAfterContentChecked: directiveMetadata.lifecycleHooks.indexOf(interfaces_1.LifecycleHooks.AfterContentChecked) !== -1,
|
|
callAfterViewInit: directiveMetadata.lifecycleHooks.indexOf(interfaces_1.LifecycleHooks.AfterViewInit) !== -1,
|
|
callAfterViewChecked: directiveMetadata.lifecycleHooks.indexOf(interfaces_1.LifecycleHooks.AfterViewChecked) !== -1,
|
|
callOnChanges: directiveMetadata.lifecycleHooks.indexOf(interfaces_1.LifecycleHooks.OnChanges) !== -1,
|
|
callDoCheck: directiveMetadata.lifecycleHooks.indexOf(interfaces_1.LifecycleHooks.DoCheck) !== -1,
|
|
callOnInit: directiveMetadata.lifecycleHooks.indexOf(interfaces_1.LifecycleHooks.OnInit) !== -1,
|
|
callOnDestroy: directiveMetadata.lifecycleHooks.indexOf(interfaces_1.LifecycleHooks.OnDestroy) !== -1,
|
|
changeDetection: directiveMetadata.changeDetection,
|
|
outputs: outputsArray
|
|
});
|
|
this.directiveRecords.push(directiveRecord);
|
|
template_ast_1.templateVisitAll(this, ast.inputs, directiveRecord);
|
|
var bindingRecords = this.bindingRecords;
|
|
if (directiveRecord.callOnChanges) {
|
|
bindingRecords.push(change_detection_1.BindingRecord.createDirectiveOnChanges(directiveRecord));
|
|
}
|
|
if (directiveRecord.callOnInit) {
|
|
bindingRecords.push(change_detection_1.BindingRecord.createDirectiveOnInit(directiveRecord));
|
|
}
|
|
if (directiveRecord.callDoCheck) {
|
|
bindingRecords.push(change_detection_1.BindingRecord.createDirectiveDoCheck(directiveRecord));
|
|
}
|
|
template_ast_1.templateVisitAll(this, ast.hostProperties, directiveRecord);
|
|
template_ast_1.templateVisitAll(this, ast.hostEvents, directiveRecord);
|
|
template_ast_1.templateVisitAll(this, ast.exportAsVars);
|
|
return null;
|
|
};
|
|
ProtoViewVisitor.prototype.visitDirectiveProperty = function(ast, directiveRecord) {
|
|
var setter = reflection_1.reflector.setter(ast.directiveName);
|
|
this.bindingRecords.push(change_detection_1.BindingRecord.createForDirective(ast.value, ast.directiveName, setter, directiveRecord));
|
|
return null;
|
|
};
|
|
return ProtoViewVisitor;
|
|
})();
|
|
function createChangeDefinitions(pvVisitors, componentType, genConfig) {
|
|
var pvVariableNames = _collectNestedProtoViewsVariableNames(pvVisitors);
|
|
return pvVisitors.map(function(pvVisitor) {
|
|
var id = componentType.name + "_" + pvVisitor.viewIndex;
|
|
return new change_detection_1.ChangeDetectorDefinition(id, pvVisitor.strategy, pvVariableNames[pvVisitor.viewIndex], pvVisitor.bindingRecords, pvVisitor.eventRecords, pvVisitor.directiveRecords, genConfig);
|
|
});
|
|
}
|
|
function _collectNestedProtoViewsVariableNames(pvVisitors) {
|
|
var nestedPvVariableNames = collection_1.ListWrapper.createFixedSize(pvVisitors.length);
|
|
pvVisitors.forEach(function(pv) {
|
|
var parentVariableNames = lang_1.isPresent(pv.parent) ? nestedPvVariableNames[pv.parent.viewIndex] : [];
|
|
nestedPvVariableNames[pv.viewIndex] = parentVariableNames.concat(pv.variableNames);
|
|
});
|
|
return nestedPvVariableNames;
|
|
}
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/transform/template_compiler/change_detector_codegen", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var Codegen = (function() {
|
|
function Codegen(moduleAlias) {}
|
|
Codegen.prototype.generate = function(typeName, changeDetectorTypeName, def) {
|
|
throw "Not implemented in JS";
|
|
};
|
|
Codegen.prototype.toString = function() {
|
|
throw "Not implemented in JS";
|
|
};
|
|
return Codegen;
|
|
})();
|
|
exports.Codegen = Codegen;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/compiler/shadow_css", ["angular2/src/facade/collection", "angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var ShadowCss = (function() {
|
|
function ShadowCss() {
|
|
this.strictStyling = true;
|
|
}
|
|
ShadowCss.prototype.shimCssText = function(cssText, selector, hostSelector) {
|
|
if (hostSelector === void 0) {
|
|
hostSelector = '';
|
|
}
|
|
cssText = stripComments(cssText);
|
|
cssText = this._insertDirectives(cssText);
|
|
return this._scopeCssText(cssText, selector, hostSelector);
|
|
};
|
|
ShadowCss.prototype._insertDirectives = function(cssText) {
|
|
cssText = this._insertPolyfillDirectivesInCssText(cssText);
|
|
return this._insertPolyfillRulesInCssText(cssText);
|
|
};
|
|
ShadowCss.prototype._insertPolyfillDirectivesInCssText = function(cssText) {
|
|
return lang_1.StringWrapper.replaceAllMapped(cssText, _cssContentNextSelectorRe, function(m) {
|
|
return m[1] + '{';
|
|
});
|
|
};
|
|
ShadowCss.prototype._insertPolyfillRulesInCssText = function(cssText) {
|
|
return lang_1.StringWrapper.replaceAllMapped(cssText, _cssContentRuleRe, function(m) {
|
|
var rule = m[0];
|
|
rule = lang_1.StringWrapper.replace(rule, m[1], '');
|
|
rule = lang_1.StringWrapper.replace(rule, m[2], '');
|
|
return m[3] + rule;
|
|
});
|
|
};
|
|
ShadowCss.prototype._scopeCssText = function(cssText, scopeSelector, hostSelector) {
|
|
var unscoped = this._extractUnscopedRulesFromCssText(cssText);
|
|
cssText = this._insertPolyfillHostInCssText(cssText);
|
|
cssText = this._convertColonHost(cssText);
|
|
cssText = this._convertColonHostContext(cssText);
|
|
cssText = this._convertShadowDOMSelectors(cssText);
|
|
if (lang_1.isPresent(scopeSelector)) {
|
|
cssText = this._scopeSelectors(cssText, scopeSelector, hostSelector);
|
|
}
|
|
cssText = cssText + '\n' + unscoped;
|
|
return cssText.trim();
|
|
};
|
|
ShadowCss.prototype._extractUnscopedRulesFromCssText = function(cssText) {
|
|
var r = '',
|
|
m;
|
|
var matcher = lang_1.RegExpWrapper.matcher(_cssContentUnscopedRuleRe, cssText);
|
|
while (lang_1.isPresent(m = lang_1.RegExpMatcherWrapper.next(matcher))) {
|
|
var rule = m[0];
|
|
rule = lang_1.StringWrapper.replace(rule, m[2], '');
|
|
rule = lang_1.StringWrapper.replace(rule, m[1], m[3]);
|
|
r += rule + '\n\n';
|
|
}
|
|
return r;
|
|
};
|
|
ShadowCss.prototype._convertColonHost = function(cssText) {
|
|
return this._convertColonRule(cssText, _cssColonHostRe, this._colonHostPartReplacer);
|
|
};
|
|
ShadowCss.prototype._convertColonHostContext = function(cssText) {
|
|
return this._convertColonRule(cssText, _cssColonHostContextRe, this._colonHostContextPartReplacer);
|
|
};
|
|
ShadowCss.prototype._convertColonRule = function(cssText, regExp, partReplacer) {
|
|
return lang_1.StringWrapper.replaceAllMapped(cssText, regExp, function(m) {
|
|
if (lang_1.isPresent(m[2])) {
|
|
var parts = m[2].split(','),
|
|
r = [];
|
|
for (var i = 0; i < parts.length; i++) {
|
|
var p = parts[i];
|
|
if (lang_1.isBlank(p))
|
|
break;
|
|
p = p.trim();
|
|
r.push(partReplacer(_polyfillHostNoCombinator, p, m[3]));
|
|
}
|
|
return r.join(',');
|
|
} else {
|
|
return _polyfillHostNoCombinator + m[3];
|
|
}
|
|
});
|
|
};
|
|
ShadowCss.prototype._colonHostContextPartReplacer = function(host, part, suffix) {
|
|
if (lang_1.StringWrapper.contains(part, _polyfillHost)) {
|
|
return this._colonHostPartReplacer(host, part, suffix);
|
|
} else {
|
|
return host + part + suffix + ', ' + part + ' ' + host + suffix;
|
|
}
|
|
};
|
|
ShadowCss.prototype._colonHostPartReplacer = function(host, part, suffix) {
|
|
return host + lang_1.StringWrapper.replace(part, _polyfillHost, '') + suffix;
|
|
};
|
|
ShadowCss.prototype._convertShadowDOMSelectors = function(cssText) {
|
|
for (var i = 0; i < _shadowDOMSelectorsRe.length; i++) {
|
|
cssText = lang_1.StringWrapper.replaceAll(cssText, _shadowDOMSelectorsRe[i], ' ');
|
|
}
|
|
return cssText;
|
|
};
|
|
ShadowCss.prototype._scopeSelectors = function(cssText, scopeSelector, hostSelector) {
|
|
var _this = this;
|
|
return processRules(cssText, function(rule) {
|
|
var selector = rule.selector;
|
|
var content = rule.content;
|
|
if (rule.selector[0] != '@' || rule.selector.startsWith('@page')) {
|
|
selector = _this._scopeSelector(rule.selector, scopeSelector, hostSelector, _this.strictStyling);
|
|
} else if (rule.selector.startsWith('@media')) {
|
|
content = _this._scopeSelectors(rule.content, scopeSelector, hostSelector);
|
|
}
|
|
return new CssRule(selector, content);
|
|
});
|
|
};
|
|
ShadowCss.prototype._scopeSelector = function(selector, scopeSelector, hostSelector, strict) {
|
|
var r = [],
|
|
parts = selector.split(',');
|
|
for (var i = 0; i < parts.length; i++) {
|
|
var p = parts[i].trim();
|
|
var deepParts = lang_1.StringWrapper.split(p, _shadowDeepSelectors);
|
|
var shallowPart = deepParts[0];
|
|
if (this._selectorNeedsScoping(shallowPart, scopeSelector)) {
|
|
deepParts[0] = strict && !lang_1.StringWrapper.contains(shallowPart, _polyfillHostNoCombinator) ? this._applyStrictSelectorScope(shallowPart, scopeSelector) : this._applySelectorScope(shallowPart, scopeSelector, hostSelector);
|
|
}
|
|
r.push(deepParts.join(' '));
|
|
}
|
|
return r.join(', ');
|
|
};
|
|
ShadowCss.prototype._selectorNeedsScoping = function(selector, scopeSelector) {
|
|
var re = this._makeScopeMatcher(scopeSelector);
|
|
return !lang_1.isPresent(lang_1.RegExpWrapper.firstMatch(re, selector));
|
|
};
|
|
ShadowCss.prototype._makeScopeMatcher = function(scopeSelector) {
|
|
var lre = /\[/g;
|
|
var rre = /\]/g;
|
|
scopeSelector = lang_1.StringWrapper.replaceAll(scopeSelector, lre, '\\[');
|
|
scopeSelector = lang_1.StringWrapper.replaceAll(scopeSelector, rre, '\\]');
|
|
return lang_1.RegExpWrapper.create('^(' + scopeSelector + ')' + _selectorReSuffix, 'm');
|
|
};
|
|
ShadowCss.prototype._applySelectorScope = function(selector, scopeSelector, hostSelector) {
|
|
return this._applySimpleSelectorScope(selector, scopeSelector, hostSelector);
|
|
};
|
|
ShadowCss.prototype._applySimpleSelectorScope = function(selector, scopeSelector, hostSelector) {
|
|
if (lang_1.isPresent(lang_1.RegExpWrapper.firstMatch(_polyfillHostRe, selector))) {
|
|
var replaceBy = this.strictStyling ? "[" + hostSelector + "]" : scopeSelector;
|
|
selector = lang_1.StringWrapper.replace(selector, _polyfillHostNoCombinator, replaceBy);
|
|
return lang_1.StringWrapper.replaceAll(selector, _polyfillHostRe, replaceBy + ' ');
|
|
} else {
|
|
return scopeSelector + ' ' + selector;
|
|
}
|
|
};
|
|
ShadowCss.prototype._applyStrictSelectorScope = function(selector, scopeSelector) {
|
|
var isRe = /\[is=([^\]]*)\]/g;
|
|
scopeSelector = lang_1.StringWrapper.replaceAllMapped(scopeSelector, isRe, function(m) {
|
|
return m[1];
|
|
});
|
|
var splits = [' ', '>', '+', '~'],
|
|
scoped = selector,
|
|
attrName = '[' + scopeSelector + ']';
|
|
for (var i = 0; i < splits.length; i++) {
|
|
var sep = splits[i];
|
|
var parts = scoped.split(sep);
|
|
scoped = parts.map(function(p) {
|
|
var t = lang_1.StringWrapper.replaceAll(p.trim(), _polyfillHostRe, '');
|
|
if (t.length > 0 && !collection_1.ListWrapper.contains(splits, t) && !lang_1.StringWrapper.contains(t, attrName)) {
|
|
var re = /([^:]*)(:*)(.*)/g;
|
|
var m = lang_1.RegExpWrapper.firstMatch(re, t);
|
|
if (lang_1.isPresent(m)) {
|
|
p = m[1] + attrName + m[2] + m[3];
|
|
}
|
|
}
|
|
return p;
|
|
}).join(sep);
|
|
}
|
|
return scoped;
|
|
};
|
|
ShadowCss.prototype._insertPolyfillHostInCssText = function(selector) {
|
|
selector = lang_1.StringWrapper.replaceAll(selector, _colonHostContextRe, _polyfillHostContext);
|
|
selector = lang_1.StringWrapper.replaceAll(selector, _colonHostRe, _polyfillHost);
|
|
return selector;
|
|
};
|
|
return ShadowCss;
|
|
})();
|
|
exports.ShadowCss = ShadowCss;
|
|
var _cssContentNextSelectorRe = /polyfill-next-selector[^}]*content:[\s]*?['"](.*?)['"][;\s]*}([^{]*?){/gim;
|
|
var _cssContentRuleRe = /(polyfill-rule)[^}]*(content:[\s]*['"](.*?)['"])[;\s]*[^}]*}/gim;
|
|
var _cssContentUnscopedRuleRe = /(polyfill-unscoped-rule)[^}]*(content:[\s]*['"](.*?)['"])[;\s]*[^}]*}/gim;
|
|
var _polyfillHost = '-shadowcsshost';
|
|
var _polyfillHostContext = '-shadowcsscontext';
|
|
var _parenSuffix = ')(?:\\((' + '(?:\\([^)(]*\\)|[^)(]*)+?' + ')\\))?([^,{]*)';
|
|
var _cssColonHostRe = lang_1.RegExpWrapper.create('(' + _polyfillHost + _parenSuffix, 'im');
|
|
var _cssColonHostContextRe = lang_1.RegExpWrapper.create('(' + _polyfillHostContext + _parenSuffix, 'im');
|
|
var _polyfillHostNoCombinator = _polyfillHost + '-no-combinator';
|
|
var _shadowDOMSelectorsRe = [/::shadow/g, /::content/g, /\/shadow-deep\//g, /\/shadow\//g];
|
|
var _shadowDeepSelectors = /(?:>>>)|(?:\/deep\/)/g;
|
|
var _selectorReSuffix = '([>\\s~+\[.,{:][\\s\\S]*)?$';
|
|
var _polyfillHostRe = lang_1.RegExpWrapper.create(_polyfillHost, 'im');
|
|
var _colonHostRe = /:host/gim;
|
|
var _colonHostContextRe = /:host-context/gim;
|
|
var _commentRe = /\/\*[\s\S]*?\*\//g;
|
|
function stripComments(input) {
|
|
return lang_1.StringWrapper.replaceAllMapped(input, _commentRe, function(_) {
|
|
return '';
|
|
});
|
|
}
|
|
var _ruleRe = /(\s*)([^;\{\}]+?)(\s*)((?:{%BLOCK%}?\s*;?)|(?:\s*;))/g;
|
|
var _curlyRe = /([{}])/g;
|
|
var OPEN_CURLY = '{';
|
|
var CLOSE_CURLY = '}';
|
|
var BLOCK_PLACEHOLDER = '%BLOCK%';
|
|
var CssRule = (function() {
|
|
function CssRule(selector, content) {
|
|
this.selector = selector;
|
|
this.content = content;
|
|
}
|
|
return CssRule;
|
|
})();
|
|
exports.CssRule = CssRule;
|
|
function processRules(input, ruleCallback) {
|
|
var inputWithEscapedBlocks = escapeBlocks(input);
|
|
var nextBlockIndex = 0;
|
|
return lang_1.StringWrapper.replaceAllMapped(inputWithEscapedBlocks.escapedString, _ruleRe, function(m) {
|
|
var selector = m[2];
|
|
var content = '';
|
|
var suffix = m[4];
|
|
var contentPrefix = '';
|
|
if (lang_1.isPresent(m[4]) && m[4].startsWith('{' + BLOCK_PLACEHOLDER)) {
|
|
content = inputWithEscapedBlocks.blocks[nextBlockIndex++];
|
|
suffix = m[4].substring(BLOCK_PLACEHOLDER.length + 1);
|
|
contentPrefix = '{';
|
|
}
|
|
var rule = ruleCallback(new CssRule(selector, content));
|
|
return "" + m[1] + rule.selector + m[3] + contentPrefix + rule.content + suffix;
|
|
});
|
|
}
|
|
exports.processRules = processRules;
|
|
var StringWithEscapedBlocks = (function() {
|
|
function StringWithEscapedBlocks(escapedString, blocks) {
|
|
this.escapedString = escapedString;
|
|
this.blocks = blocks;
|
|
}
|
|
return StringWithEscapedBlocks;
|
|
})();
|
|
function escapeBlocks(input) {
|
|
var inputParts = lang_1.StringWrapper.split(input, _curlyRe);
|
|
var resultParts = [];
|
|
var escapedBlocks = [];
|
|
var bracketCount = 0;
|
|
var currentBlockParts = [];
|
|
for (var partIndex = 0; partIndex < inputParts.length; partIndex++) {
|
|
var part = inputParts[partIndex];
|
|
if (part == CLOSE_CURLY) {
|
|
bracketCount--;
|
|
}
|
|
if (bracketCount > 0) {
|
|
currentBlockParts.push(part);
|
|
} else {
|
|
if (currentBlockParts.length > 0) {
|
|
escapedBlocks.push(currentBlockParts.join(''));
|
|
resultParts.push(BLOCK_PLACEHOLDER);
|
|
currentBlockParts = [];
|
|
}
|
|
resultParts.push(part);
|
|
}
|
|
if (part == OPEN_CURLY) {
|
|
bracketCount++;
|
|
}
|
|
}
|
|
if (currentBlockParts.length > 0) {
|
|
escapedBlocks.push(currentBlockParts.join(''));
|
|
resultParts.push(BLOCK_PLACEHOLDER);
|
|
}
|
|
return new StringWithEscapedBlocks(resultParts.join(''), escapedBlocks);
|
|
}
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/compiler/url_resolver", ["angular2/src/core/di", "angular2/src/facade/lang", "angular2/src/core/application_tokens", "angular2/src/core/di"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var __param = (this && this.__param) || function(paramIndex, decorator) {
|
|
return function(target, key) {
|
|
decorator(target, key, paramIndex);
|
|
};
|
|
};
|
|
var di_1 = require("angular2/src/core/di");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var application_tokens_1 = require("angular2/src/core/application_tokens");
|
|
var di_2 = require("angular2/src/core/di");
|
|
function createWithoutPackagePrefix() {
|
|
return new UrlResolver();
|
|
}
|
|
exports.createWithoutPackagePrefix = createWithoutPackagePrefix;
|
|
exports.DEFAULT_PACKAGE_URL_PROVIDER = new di_2.Provider(application_tokens_1.PACKAGE_ROOT_URL, {useValue: "/"});
|
|
var UrlResolver = (function() {
|
|
function UrlResolver(packagePrefix) {
|
|
if (packagePrefix === void 0) {
|
|
packagePrefix = null;
|
|
}
|
|
if (lang_1.isPresent(packagePrefix)) {
|
|
this._packagePrefix = lang_1.StringWrapper.stripRight(packagePrefix, "/") + "/";
|
|
}
|
|
}
|
|
UrlResolver.prototype.resolve = function(baseUrl, url) {
|
|
var resolvedUrl = url;
|
|
if (lang_1.isPresent(baseUrl) && baseUrl.length > 0) {
|
|
resolvedUrl = _resolveUrl(baseUrl, resolvedUrl);
|
|
}
|
|
if (lang_1.isPresent(this._packagePrefix) && getUrlScheme(resolvedUrl) == "package") {
|
|
resolvedUrl = resolvedUrl.replace("package:", this._packagePrefix);
|
|
}
|
|
return resolvedUrl;
|
|
};
|
|
UrlResolver = __decorate([di_1.Injectable(), __param(0, di_1.Inject(application_tokens_1.PACKAGE_ROOT_URL)), __metadata('design:paramtypes', [String])], UrlResolver);
|
|
return UrlResolver;
|
|
})();
|
|
exports.UrlResolver = UrlResolver;
|
|
function getUrlScheme(url) {
|
|
var match = _split(url);
|
|
return (match && match[_ComponentIndex.Scheme]) || "";
|
|
}
|
|
exports.getUrlScheme = getUrlScheme;
|
|
function _buildFromEncodedParts(opt_scheme, opt_userInfo, opt_domain, opt_port, opt_path, opt_queryData, opt_fragment) {
|
|
var out = [];
|
|
if (lang_1.isPresent(opt_scheme)) {
|
|
out.push(opt_scheme + ':');
|
|
}
|
|
if (lang_1.isPresent(opt_domain)) {
|
|
out.push('//');
|
|
if (lang_1.isPresent(opt_userInfo)) {
|
|
out.push(opt_userInfo + '@');
|
|
}
|
|
out.push(opt_domain);
|
|
if (lang_1.isPresent(opt_port)) {
|
|
out.push(':' + opt_port);
|
|
}
|
|
}
|
|
if (lang_1.isPresent(opt_path)) {
|
|
out.push(opt_path);
|
|
}
|
|
if (lang_1.isPresent(opt_queryData)) {
|
|
out.push('?' + opt_queryData);
|
|
}
|
|
if (lang_1.isPresent(opt_fragment)) {
|
|
out.push('#' + opt_fragment);
|
|
}
|
|
return out.join('');
|
|
}
|
|
var _splitRe = lang_1.RegExpWrapper.create('^' + '(?:' + '([^:/?#.]+)' + ':)?' + '(?://' + '(?:([^/?#]*)@)?' + '([\\w\\d\\-\\u0100-\\uffff.%]*)' + '(?::([0-9]+))?' + ')?' + '([^?#]+)?' + '(?:\\?([^#]*))?' + '(?:#(.*))?' + '$');
|
|
var _ComponentIndex;
|
|
(function(_ComponentIndex) {
|
|
_ComponentIndex[_ComponentIndex["Scheme"] = 1] = "Scheme";
|
|
_ComponentIndex[_ComponentIndex["UserInfo"] = 2] = "UserInfo";
|
|
_ComponentIndex[_ComponentIndex["Domain"] = 3] = "Domain";
|
|
_ComponentIndex[_ComponentIndex["Port"] = 4] = "Port";
|
|
_ComponentIndex[_ComponentIndex["Path"] = 5] = "Path";
|
|
_ComponentIndex[_ComponentIndex["QueryData"] = 6] = "QueryData";
|
|
_ComponentIndex[_ComponentIndex["Fragment"] = 7] = "Fragment";
|
|
})(_ComponentIndex || (_ComponentIndex = {}));
|
|
function _split(uri) {
|
|
return lang_1.RegExpWrapper.firstMatch(_splitRe, uri);
|
|
}
|
|
function _removeDotSegments(path) {
|
|
if (path == '/')
|
|
return '/';
|
|
var leadingSlash = path[0] == '/' ? '/' : '';
|
|
var trailingSlash = path[path.length - 1] === '/' ? '/' : '';
|
|
var segments = path.split('/');
|
|
var out = [];
|
|
var up = 0;
|
|
for (var pos = 0; pos < segments.length; pos++) {
|
|
var segment = segments[pos];
|
|
switch (segment) {
|
|
case '':
|
|
case '.':
|
|
break;
|
|
case '..':
|
|
if (out.length > 0) {
|
|
out.pop();
|
|
} else {
|
|
up++;
|
|
}
|
|
break;
|
|
default:
|
|
out.push(segment);
|
|
}
|
|
}
|
|
if (leadingSlash == '') {
|
|
while (up-- > 0) {
|
|
out.unshift('..');
|
|
}
|
|
if (out.length === 0)
|
|
out.push('.');
|
|
}
|
|
return leadingSlash + out.join('/') + trailingSlash;
|
|
}
|
|
function _joinAndCanonicalizePath(parts) {
|
|
var path = parts[_ComponentIndex.Path];
|
|
path = lang_1.isBlank(path) ? '' : _removeDotSegments(path);
|
|
parts[_ComponentIndex.Path] = path;
|
|
return _buildFromEncodedParts(parts[_ComponentIndex.Scheme], parts[_ComponentIndex.UserInfo], parts[_ComponentIndex.Domain], parts[_ComponentIndex.Port], path, parts[_ComponentIndex.QueryData], parts[_ComponentIndex.Fragment]);
|
|
}
|
|
function _resolveUrl(base, url) {
|
|
var parts = _split(encodeURI(url));
|
|
var baseParts = _split(base);
|
|
if (lang_1.isPresent(parts[_ComponentIndex.Scheme])) {
|
|
return _joinAndCanonicalizePath(parts);
|
|
} else {
|
|
parts[_ComponentIndex.Scheme] = baseParts[_ComponentIndex.Scheme];
|
|
}
|
|
for (var i = _ComponentIndex.Scheme; i <= _ComponentIndex.Port; i++) {
|
|
if (lang_1.isBlank(parts[i])) {
|
|
parts[i] = baseParts[i];
|
|
}
|
|
}
|
|
if (parts[_ComponentIndex.Path][0] == '/') {
|
|
return _joinAndCanonicalizePath(parts);
|
|
}
|
|
var path = baseParts[_ComponentIndex.Path];
|
|
if (lang_1.isBlank(path))
|
|
path = '/';
|
|
var index = path.lastIndexOf('/');
|
|
path = path.substring(0, index + 1) + parts[_ComponentIndex.Path];
|
|
parts[_ComponentIndex.Path] = path;
|
|
return _joinAndCanonicalizePath(parts);
|
|
}
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/compiler/style_url_resolver", ["angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var StyleWithImports = (function() {
|
|
function StyleWithImports(style, styleUrls) {
|
|
this.style = style;
|
|
this.styleUrls = styleUrls;
|
|
}
|
|
return StyleWithImports;
|
|
})();
|
|
exports.StyleWithImports = StyleWithImports;
|
|
function isStyleUrlResolvable(url) {
|
|
if (lang_1.isBlank(url) || url.length === 0 || url[0] == '/')
|
|
return false;
|
|
var schemeMatch = lang_1.RegExpWrapper.firstMatch(_urlWithSchemaRe, url);
|
|
return lang_1.isBlank(schemeMatch) || schemeMatch[1] == 'package' || schemeMatch[1] == 'asset';
|
|
}
|
|
exports.isStyleUrlResolvable = isStyleUrlResolvable;
|
|
function extractStyleUrls(resolver, baseUrl, cssText) {
|
|
var foundUrls = [];
|
|
var modifiedCssText = lang_1.StringWrapper.replaceAllMapped(cssText, _cssImportRe, function(m) {
|
|
var url = lang_1.isPresent(m[1]) ? m[1] : m[2];
|
|
if (!isStyleUrlResolvable(url)) {
|
|
return m[0];
|
|
}
|
|
foundUrls.push(resolver.resolve(baseUrl, url));
|
|
return '';
|
|
});
|
|
return new StyleWithImports(modifiedCssText, foundUrls);
|
|
}
|
|
exports.extractStyleUrls = extractStyleUrls;
|
|
var _cssImportRe = /@import\s+(?:url\()?\s*(?:(?:['"]([^'"]*))|([^;\)\s]*))[^;]*;?/g;
|
|
var _urlWithSchemaRe = /^([a-zA-Z\-\+\.]+):/g;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/compiler/proto_view_compiler", ["angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/compiler/template_ast", "angular2/src/compiler/source_module", "angular2/src/core/linker/view", "angular2/src/core/linker/view_type", "angular2/src/core/linker/element", "angular2/src/compiler/util", "angular2/src/core/di"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var template_ast_1 = require("angular2/src/compiler/template_ast");
|
|
var source_module_1 = require("angular2/src/compiler/source_module");
|
|
var view_1 = require("angular2/src/core/linker/view");
|
|
var view_type_1 = require("angular2/src/core/linker/view_type");
|
|
var element_1 = require("angular2/src/core/linker/element");
|
|
var util_1 = require("angular2/src/compiler/util");
|
|
var di_1 = require("angular2/src/core/di");
|
|
exports.PROTO_VIEW_JIT_IMPORTS = lang_1.CONST_EXPR({
|
|
'AppProtoView': view_1.AppProtoView,
|
|
'AppProtoElement': element_1.AppProtoElement,
|
|
'ViewType': view_type_1.ViewType
|
|
});
|
|
exports.APP_VIEW_MODULE_REF = source_module_1.moduleRef('package:angular2/src/core/linker/view' + util_1.MODULE_SUFFIX);
|
|
exports.VIEW_TYPE_MODULE_REF = source_module_1.moduleRef('package:angular2/src/core/linker/view_type' + util_1.MODULE_SUFFIX);
|
|
exports.APP_EL_MODULE_REF = source_module_1.moduleRef('package:angular2/src/core/linker/element' + util_1.MODULE_SUFFIX);
|
|
exports.METADATA_MODULE_REF = source_module_1.moduleRef('package:angular2/src/core/metadata/view' + util_1.MODULE_SUFFIX);
|
|
var IMPLICIT_TEMPLATE_VAR = '\$implicit';
|
|
var CLASS_ATTR = 'class';
|
|
var STYLE_ATTR = 'style';
|
|
var ProtoViewCompiler = (function() {
|
|
function ProtoViewCompiler() {}
|
|
ProtoViewCompiler.prototype.compileProtoViewRuntime = function(metadataCache, component, template, pipes) {
|
|
var protoViewFactory = new RuntimeProtoViewFactory(metadataCache, component, pipes);
|
|
var allProtoViews = [];
|
|
protoViewFactory.createCompileProtoView(template, [], [], allProtoViews);
|
|
return new CompileProtoViews([], allProtoViews);
|
|
};
|
|
ProtoViewCompiler.prototype.compileProtoViewCodeGen = function(resolvedMetadataCacheExpr, component, template, pipes) {
|
|
var protoViewFactory = new CodeGenProtoViewFactory(resolvedMetadataCacheExpr, component, pipes);
|
|
var allProtoViews = [];
|
|
var allStatements = [];
|
|
protoViewFactory.createCompileProtoView(template, [], allStatements, allProtoViews);
|
|
return new CompileProtoViews(allStatements.map(function(stmt) {
|
|
return stmt.statement;
|
|
}), allProtoViews);
|
|
};
|
|
ProtoViewCompiler = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [])], ProtoViewCompiler);
|
|
return ProtoViewCompiler;
|
|
})();
|
|
exports.ProtoViewCompiler = ProtoViewCompiler;
|
|
var CompileProtoViews = (function() {
|
|
function CompileProtoViews(declarations, protoViews) {
|
|
this.declarations = declarations;
|
|
this.protoViews = protoViews;
|
|
}
|
|
return CompileProtoViews;
|
|
})();
|
|
exports.CompileProtoViews = CompileProtoViews;
|
|
var CompileProtoView = (function() {
|
|
function CompileProtoView(embeddedTemplateIndex, protoElements, protoView) {
|
|
this.embeddedTemplateIndex = embeddedTemplateIndex;
|
|
this.protoElements = protoElements;
|
|
this.protoView = protoView;
|
|
}
|
|
return CompileProtoView;
|
|
})();
|
|
exports.CompileProtoView = CompileProtoView;
|
|
var CompileProtoElement = (function() {
|
|
function CompileProtoElement(boundElementIndex, attrNameAndValues, variableNameAndValues, renderEvents, directives, embeddedTemplateIndex, appProtoEl) {
|
|
this.boundElementIndex = boundElementIndex;
|
|
this.attrNameAndValues = attrNameAndValues;
|
|
this.variableNameAndValues = variableNameAndValues;
|
|
this.renderEvents = renderEvents;
|
|
this.directives = directives;
|
|
this.embeddedTemplateIndex = embeddedTemplateIndex;
|
|
this.appProtoEl = appProtoEl;
|
|
}
|
|
return CompileProtoElement;
|
|
})();
|
|
exports.CompileProtoElement = CompileProtoElement;
|
|
function visitAndReturnContext(visitor, asts, context) {
|
|
template_ast_1.templateVisitAll(visitor, asts, context);
|
|
return context;
|
|
}
|
|
var ProtoViewFactory = (function() {
|
|
function ProtoViewFactory(component) {
|
|
this.component = component;
|
|
}
|
|
ProtoViewFactory.prototype.createCompileProtoView = function(template, templateVariableBindings, targetStatements, targetProtoViews) {
|
|
var embeddedTemplateIndex = targetProtoViews.length;
|
|
targetProtoViews.push(null);
|
|
var builder = new ProtoViewBuilderVisitor(this, targetStatements, targetProtoViews);
|
|
template_ast_1.templateVisitAll(builder, template);
|
|
var viewType = getViewType(this.component, embeddedTemplateIndex);
|
|
var appProtoView = this.createAppProtoView(embeddedTemplateIndex, viewType, templateVariableBindings, targetStatements);
|
|
var cpv = new CompileProtoView(embeddedTemplateIndex, builder.protoElements, appProtoView);
|
|
targetProtoViews[embeddedTemplateIndex] = cpv;
|
|
return cpv;
|
|
};
|
|
return ProtoViewFactory;
|
|
})();
|
|
var CodeGenProtoViewFactory = (function(_super) {
|
|
__extends(CodeGenProtoViewFactory, _super);
|
|
function CodeGenProtoViewFactory(resolvedMetadataCacheExpr, component, pipes) {
|
|
_super.call(this, component);
|
|
this.resolvedMetadataCacheExpr = resolvedMetadataCacheExpr;
|
|
this.pipes = pipes;
|
|
this._nextVarId = 0;
|
|
}
|
|
CodeGenProtoViewFactory.prototype._nextProtoViewVar = function(embeddedTemplateIndex) {
|
|
return "appProtoView" + this._nextVarId++ + "_" + this.component.type.name + embeddedTemplateIndex;
|
|
};
|
|
CodeGenProtoViewFactory.prototype.createAppProtoView = function(embeddedTemplateIndex, viewType, templateVariableBindings, targetStatements) {
|
|
var protoViewVarName = this._nextProtoViewVar(embeddedTemplateIndex);
|
|
var viewTypeExpr = codeGenViewType(viewType);
|
|
var pipesExpr = embeddedTemplateIndex === 0 ? codeGenTypesArray(this.pipes.map(function(pipeMeta) {
|
|
return pipeMeta.type;
|
|
})) : null;
|
|
var statement = "var " + protoViewVarName + " = " + exports.APP_VIEW_MODULE_REF + "AppProtoView.create(" + this.resolvedMetadataCacheExpr.expression + ", " + viewTypeExpr + ", " + pipesExpr + ", " + util_1.codeGenStringMap(templateVariableBindings) + ");";
|
|
targetStatements.push(new util_1.Statement(statement));
|
|
return new util_1.Expression(protoViewVarName);
|
|
};
|
|
CodeGenProtoViewFactory.prototype.createAppProtoElement = function(boundElementIndex, attrNameAndValues, variableNameAndValues, directives, targetStatements) {
|
|
var varName = "appProtoEl" + this._nextVarId++ + "_" + this.component.type.name;
|
|
var value = exports.APP_EL_MODULE_REF + "AppProtoElement.create(\n " + this.resolvedMetadataCacheExpr.expression + ",\n " + boundElementIndex + ",\n " + util_1.codeGenStringMap(attrNameAndValues) + ",\n " + codeGenDirectivesArray(directives) + ",\n " + util_1.codeGenStringMap(variableNameAndValues) + "\n )";
|
|
var statement = "var " + varName + " = " + value + ";";
|
|
targetStatements.push(new util_1.Statement(statement));
|
|
return new util_1.Expression(varName);
|
|
};
|
|
return CodeGenProtoViewFactory;
|
|
})(ProtoViewFactory);
|
|
var RuntimeProtoViewFactory = (function(_super) {
|
|
__extends(RuntimeProtoViewFactory, _super);
|
|
function RuntimeProtoViewFactory(metadataCache, component, pipes) {
|
|
_super.call(this, component);
|
|
this.metadataCache = metadataCache;
|
|
this.pipes = pipes;
|
|
}
|
|
RuntimeProtoViewFactory.prototype.createAppProtoView = function(embeddedTemplateIndex, viewType, templateVariableBindings, targetStatements) {
|
|
var pipes = embeddedTemplateIndex === 0 ? this.pipes.map(function(pipeMeta) {
|
|
return pipeMeta.type.runtime;
|
|
}) : [];
|
|
var templateVars = keyValueArrayToStringMap(templateVariableBindings);
|
|
return view_1.AppProtoView.create(this.metadataCache, viewType, pipes, templateVars);
|
|
};
|
|
RuntimeProtoViewFactory.prototype.createAppProtoElement = function(boundElementIndex, attrNameAndValues, variableNameAndValues, directives, targetStatements) {
|
|
var attrs = keyValueArrayToStringMap(attrNameAndValues);
|
|
return element_1.AppProtoElement.create(this.metadataCache, boundElementIndex, attrs, directives.map(function(dirMeta) {
|
|
return dirMeta.type.runtime;
|
|
}), keyValueArrayToStringMap(variableNameAndValues));
|
|
};
|
|
return RuntimeProtoViewFactory;
|
|
})(ProtoViewFactory);
|
|
var ProtoViewBuilderVisitor = (function() {
|
|
function ProtoViewBuilderVisitor(factory, allStatements, allProtoViews) {
|
|
this.factory = factory;
|
|
this.allStatements = allStatements;
|
|
this.allProtoViews = allProtoViews;
|
|
this.protoElements = [];
|
|
this.boundElementCount = 0;
|
|
}
|
|
ProtoViewBuilderVisitor.prototype._readAttrNameAndValues = function(directives, attrAsts) {
|
|
var attrs = visitAndReturnContext(this, attrAsts, {});
|
|
directives.forEach(function(directiveMeta) {
|
|
collection_1.StringMapWrapper.forEach(directiveMeta.hostAttributes, function(value, name) {
|
|
var prevValue = attrs[name];
|
|
attrs[name] = lang_1.isPresent(prevValue) ? mergeAttributeValue(name, prevValue, value) : value;
|
|
});
|
|
});
|
|
return mapToKeyValueArray(attrs);
|
|
};
|
|
ProtoViewBuilderVisitor.prototype.visitBoundText = function(ast, context) {
|
|
return null;
|
|
};
|
|
ProtoViewBuilderVisitor.prototype.visitText = function(ast, context) {
|
|
return null;
|
|
};
|
|
ProtoViewBuilderVisitor.prototype.visitNgContent = function(ast, context) {
|
|
return null;
|
|
};
|
|
ProtoViewBuilderVisitor.prototype.visitElement = function(ast, context) {
|
|
var _this = this;
|
|
var boundElementIndex = null;
|
|
if (ast.isBound()) {
|
|
boundElementIndex = this.boundElementCount++;
|
|
}
|
|
var component = ast.getComponent();
|
|
var variableNameAndValues = [];
|
|
if (lang_1.isBlank(component)) {
|
|
ast.exportAsVars.forEach(function(varAst) {
|
|
variableNameAndValues.push([varAst.name, null]);
|
|
});
|
|
}
|
|
var directives = [];
|
|
var renderEvents = visitAndReturnContext(this, ast.outputs, new Map());
|
|
collection_1.ListWrapper.forEachWithIndex(ast.directives, function(directiveAst, index) {
|
|
directiveAst.visit(_this, new DirectiveContext(index, boundElementIndex, renderEvents, variableNameAndValues, directives));
|
|
});
|
|
var renderEventArray = [];
|
|
renderEvents.forEach(function(eventAst, _) {
|
|
return renderEventArray.push(eventAst);
|
|
});
|
|
var attrNameAndValues = this._readAttrNameAndValues(directives, ast.attrs);
|
|
this._addProtoElement(ast.isBound(), boundElementIndex, attrNameAndValues, variableNameAndValues, renderEventArray, directives, null);
|
|
template_ast_1.templateVisitAll(this, ast.children);
|
|
return null;
|
|
};
|
|
ProtoViewBuilderVisitor.prototype.visitEmbeddedTemplate = function(ast, context) {
|
|
var _this = this;
|
|
var boundElementIndex = this.boundElementCount++;
|
|
var directives = [];
|
|
collection_1.ListWrapper.forEachWithIndex(ast.directives, function(directiveAst, index) {
|
|
directiveAst.visit(_this, new DirectiveContext(index, boundElementIndex, new Map(), [], directives));
|
|
});
|
|
var attrNameAndValues = this._readAttrNameAndValues(directives, ast.attrs);
|
|
var templateVariableBindings = ast.vars.map(function(varAst) {
|
|
return [varAst.value.length > 0 ? varAst.value : IMPLICIT_TEMPLATE_VAR, varAst.name];
|
|
});
|
|
var nestedProtoView = this.factory.createCompileProtoView(ast.children, templateVariableBindings, this.allStatements, this.allProtoViews);
|
|
this._addProtoElement(true, boundElementIndex, attrNameAndValues, [], [], directives, nestedProtoView.embeddedTemplateIndex);
|
|
return null;
|
|
};
|
|
ProtoViewBuilderVisitor.prototype._addProtoElement = function(isBound, boundElementIndex, attrNameAndValues, variableNameAndValues, renderEvents, directives, embeddedTemplateIndex) {
|
|
var appProtoEl = null;
|
|
if (isBound) {
|
|
appProtoEl = this.factory.createAppProtoElement(boundElementIndex, attrNameAndValues, variableNameAndValues, directives, this.allStatements);
|
|
}
|
|
var compileProtoEl = new CompileProtoElement(boundElementIndex, attrNameAndValues, variableNameAndValues, renderEvents, directives, embeddedTemplateIndex, appProtoEl);
|
|
this.protoElements.push(compileProtoEl);
|
|
};
|
|
ProtoViewBuilderVisitor.prototype.visitVariable = function(ast, ctx) {
|
|
return null;
|
|
};
|
|
ProtoViewBuilderVisitor.prototype.visitAttr = function(ast, attrNameAndValues) {
|
|
attrNameAndValues[ast.name] = ast.value;
|
|
return null;
|
|
};
|
|
ProtoViewBuilderVisitor.prototype.visitDirective = function(ast, ctx) {
|
|
ctx.targetDirectives.push(ast.directive);
|
|
template_ast_1.templateVisitAll(this, ast.hostEvents, ctx.hostEventTargetAndNames);
|
|
ast.exportAsVars.forEach(function(varAst) {
|
|
ctx.targetVariableNameAndValues.push([varAst.name, ctx.index]);
|
|
});
|
|
return null;
|
|
};
|
|
ProtoViewBuilderVisitor.prototype.visitEvent = function(ast, eventTargetAndNames) {
|
|
eventTargetAndNames.set(ast.fullName, ast);
|
|
return null;
|
|
};
|
|
ProtoViewBuilderVisitor.prototype.visitDirectiveProperty = function(ast, context) {
|
|
return null;
|
|
};
|
|
ProtoViewBuilderVisitor.prototype.visitElementProperty = function(ast, context) {
|
|
return null;
|
|
};
|
|
return ProtoViewBuilderVisitor;
|
|
})();
|
|
function mapToKeyValueArray(data) {
|
|
var entryArray = [];
|
|
collection_1.StringMapWrapper.forEach(data, function(value, name) {
|
|
entryArray.push([name, value]);
|
|
});
|
|
collection_1.ListWrapper.sort(entryArray, function(entry1, entry2) {
|
|
return lang_1.StringWrapper.compare(entry1[0], entry2[0]);
|
|
});
|
|
var keyValueArray = [];
|
|
entryArray.forEach(function(entry) {
|
|
keyValueArray.push([entry[0], entry[1]]);
|
|
});
|
|
return keyValueArray;
|
|
}
|
|
function mergeAttributeValue(attrName, attrValue1, attrValue2) {
|
|
if (attrName == CLASS_ATTR || attrName == STYLE_ATTR) {
|
|
return attrValue1 + " " + attrValue2;
|
|
} else {
|
|
return attrValue2;
|
|
}
|
|
}
|
|
var DirectiveContext = (function() {
|
|
function DirectiveContext(index, boundElementIndex, hostEventTargetAndNames, targetVariableNameAndValues, targetDirectives) {
|
|
this.index = index;
|
|
this.boundElementIndex = boundElementIndex;
|
|
this.hostEventTargetAndNames = hostEventTargetAndNames;
|
|
this.targetVariableNameAndValues = targetVariableNameAndValues;
|
|
this.targetDirectives = targetDirectives;
|
|
}
|
|
return DirectiveContext;
|
|
})();
|
|
function keyValueArrayToStringMap(keyValueArray) {
|
|
var stringMap = {};
|
|
for (var i = 0; i < keyValueArray.length; i++) {
|
|
var entry = keyValueArray[i];
|
|
stringMap[entry[0]] = entry[1];
|
|
}
|
|
return stringMap;
|
|
}
|
|
function codeGenDirectivesArray(directives) {
|
|
var expressions = directives.map(function(directiveType) {
|
|
return typeRef(directiveType.type);
|
|
});
|
|
return "[" + expressions.join(',') + "]";
|
|
}
|
|
function codeGenTypesArray(types) {
|
|
var expressions = types.map(typeRef);
|
|
return "[" + expressions.join(',') + "]";
|
|
}
|
|
function codeGenViewType(value) {
|
|
if (lang_1.IS_DART) {
|
|
return "" + exports.VIEW_TYPE_MODULE_REF + value;
|
|
} else {
|
|
return "" + value;
|
|
}
|
|
}
|
|
function typeRef(type) {
|
|
return "" + source_module_1.moduleRef(type.moduleUrl) + type.name;
|
|
}
|
|
function getViewType(component, embeddedTemplateIndex) {
|
|
if (embeddedTemplateIndex > 0) {
|
|
return view_type_1.ViewType.EMBEDDED;
|
|
} else if (component.type.isHost) {
|
|
return view_type_1.ViewType.HOST;
|
|
} else {
|
|
return view_type_1.ViewType.COMPONENT;
|
|
}
|
|
}
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/compiler/html_ast", ["angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var HtmlTextAst = (function() {
|
|
function HtmlTextAst(value, sourceSpan) {
|
|
this.value = value;
|
|
this.sourceSpan = sourceSpan;
|
|
}
|
|
HtmlTextAst.prototype.visit = function(visitor, context) {
|
|
return visitor.visitText(this, context);
|
|
};
|
|
return HtmlTextAst;
|
|
})();
|
|
exports.HtmlTextAst = HtmlTextAst;
|
|
var HtmlAttrAst = (function() {
|
|
function HtmlAttrAst(name, value, sourceSpan) {
|
|
this.name = name;
|
|
this.value = value;
|
|
this.sourceSpan = sourceSpan;
|
|
}
|
|
HtmlAttrAst.prototype.visit = function(visitor, context) {
|
|
return visitor.visitAttr(this, context);
|
|
};
|
|
return HtmlAttrAst;
|
|
})();
|
|
exports.HtmlAttrAst = HtmlAttrAst;
|
|
var HtmlElementAst = (function() {
|
|
function HtmlElementAst(name, attrs, children, sourceSpan, startSourceSpan, endSourceSpan) {
|
|
this.name = name;
|
|
this.attrs = attrs;
|
|
this.children = children;
|
|
this.sourceSpan = sourceSpan;
|
|
this.startSourceSpan = startSourceSpan;
|
|
this.endSourceSpan = endSourceSpan;
|
|
}
|
|
HtmlElementAst.prototype.visit = function(visitor, context) {
|
|
return visitor.visitElement(this, context);
|
|
};
|
|
return HtmlElementAst;
|
|
})();
|
|
exports.HtmlElementAst = HtmlElementAst;
|
|
var HtmlCommentAst = (function() {
|
|
function HtmlCommentAst(value, sourceSpan) {
|
|
this.value = value;
|
|
this.sourceSpan = sourceSpan;
|
|
}
|
|
HtmlCommentAst.prototype.visit = function(visitor, context) {
|
|
return visitor.visitComment(this, context);
|
|
};
|
|
return HtmlCommentAst;
|
|
})();
|
|
exports.HtmlCommentAst = HtmlCommentAst;
|
|
function htmlVisitAll(visitor, asts, context) {
|
|
if (context === void 0) {
|
|
context = null;
|
|
}
|
|
var result = [];
|
|
asts.forEach(function(ast) {
|
|
var astResult = ast.visit(visitor, context);
|
|
if (lang_1.isPresent(astResult)) {
|
|
result.push(astResult);
|
|
}
|
|
});
|
|
return result;
|
|
}
|
|
exports.htmlVisitAll = htmlVisitAll;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/compiler/parse_util", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var ParseLocation = (function() {
|
|
function ParseLocation(file, offset, line, col) {
|
|
this.file = file;
|
|
this.offset = offset;
|
|
this.line = line;
|
|
this.col = col;
|
|
}
|
|
ParseLocation.prototype.toString = function() {
|
|
return this.file.url + "@" + this.line + ":" + this.col;
|
|
};
|
|
return ParseLocation;
|
|
})();
|
|
exports.ParseLocation = ParseLocation;
|
|
var ParseSourceFile = (function() {
|
|
function ParseSourceFile(content, url) {
|
|
this.content = content;
|
|
this.url = url;
|
|
}
|
|
return ParseSourceFile;
|
|
})();
|
|
exports.ParseSourceFile = ParseSourceFile;
|
|
var ParseSourceSpan = (function() {
|
|
function ParseSourceSpan(start, end) {
|
|
this.start = start;
|
|
this.end = end;
|
|
}
|
|
ParseSourceSpan.prototype.toString = function() {
|
|
return this.start.file.content.substring(this.start.offset, this.end.offset);
|
|
};
|
|
return ParseSourceSpan;
|
|
})();
|
|
exports.ParseSourceSpan = ParseSourceSpan;
|
|
var ParseError = (function() {
|
|
function ParseError(span, msg) {
|
|
this.span = span;
|
|
this.msg = msg;
|
|
}
|
|
ParseError.prototype.toString = function() {
|
|
var source = this.span.start.file.content;
|
|
var ctxStart = this.span.start.offset;
|
|
if (ctxStart > source.length - 1) {
|
|
ctxStart = source.length - 1;
|
|
}
|
|
var ctxEnd = ctxStart;
|
|
var ctxLen = 0;
|
|
var ctxLines = 0;
|
|
while (ctxLen < 100 && ctxStart > 0) {
|
|
ctxStart--;
|
|
ctxLen++;
|
|
if (source[ctxStart] == "\n") {
|
|
if (++ctxLines == 3) {
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
ctxLen = 0;
|
|
ctxLines = 0;
|
|
while (ctxLen < 100 && ctxEnd < source.length - 1) {
|
|
ctxEnd++;
|
|
ctxLen++;
|
|
if (source[ctxEnd] == "\n") {
|
|
if (++ctxLines == 3) {
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
var context = source.substring(ctxStart, this.span.start.offset) + '[ERROR ->]' + source.substring(this.span.start.offset, ctxEnd + 1);
|
|
return this.msg + " (\"" + context + "\"): " + this.span.start;
|
|
};
|
|
return ParseError;
|
|
})();
|
|
exports.ParseError = ParseError;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/compiler/html_tags", ["angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
exports.NAMED_ENTITIES = lang_1.CONST_EXPR({
|
|
'Aacute': '\u00C1',
|
|
'aacute': '\u00E1',
|
|
'Acirc': '\u00C2',
|
|
'acirc': '\u00E2',
|
|
'acute': '\u00B4',
|
|
'AElig': '\u00C6',
|
|
'aelig': '\u00E6',
|
|
'Agrave': '\u00C0',
|
|
'agrave': '\u00E0',
|
|
'alefsym': '\u2135',
|
|
'Alpha': '\u0391',
|
|
'alpha': '\u03B1',
|
|
'amp': '&',
|
|
'and': '\u2227',
|
|
'ang': '\u2220',
|
|
'apos': '\u0027',
|
|
'Aring': '\u00C5',
|
|
'aring': '\u00E5',
|
|
'asymp': '\u2248',
|
|
'Atilde': '\u00C3',
|
|
'atilde': '\u00E3',
|
|
'Auml': '\u00C4',
|
|
'auml': '\u00E4',
|
|
'bdquo': '\u201E',
|
|
'Beta': '\u0392',
|
|
'beta': '\u03B2',
|
|
'brvbar': '\u00A6',
|
|
'bull': '\u2022',
|
|
'cap': '\u2229',
|
|
'Ccedil': '\u00C7',
|
|
'ccedil': '\u00E7',
|
|
'cedil': '\u00B8',
|
|
'cent': '\u00A2',
|
|
'Chi': '\u03A7',
|
|
'chi': '\u03C7',
|
|
'circ': '\u02C6',
|
|
'clubs': '\u2663',
|
|
'cong': '\u2245',
|
|
'copy': '\u00A9',
|
|
'crarr': '\u21B5',
|
|
'cup': '\u222A',
|
|
'curren': '\u00A4',
|
|
'dagger': '\u2020',
|
|
'Dagger': '\u2021',
|
|
'darr': '\u2193',
|
|
'dArr': '\u21D3',
|
|
'deg': '\u00B0',
|
|
'Delta': '\u0394',
|
|
'delta': '\u03B4',
|
|
'diams': '\u2666',
|
|
'divide': '\u00F7',
|
|
'Eacute': '\u00C9',
|
|
'eacute': '\u00E9',
|
|
'Ecirc': '\u00CA',
|
|
'ecirc': '\u00EA',
|
|
'Egrave': '\u00C8',
|
|
'egrave': '\u00E8',
|
|
'empty': '\u2205',
|
|
'emsp': '\u2003',
|
|
'ensp': '\u2002',
|
|
'Epsilon': '\u0395',
|
|
'epsilon': '\u03B5',
|
|
'equiv': '\u2261',
|
|
'Eta': '\u0397',
|
|
'eta': '\u03B7',
|
|
'ETH': '\u00D0',
|
|
'eth': '\u00F0',
|
|
'Euml': '\u00CB',
|
|
'euml': '\u00EB',
|
|
'euro': '\u20AC',
|
|
'exist': '\u2203',
|
|
'fnof': '\u0192',
|
|
'forall': '\u2200',
|
|
'frac12': '\u00BD',
|
|
'frac14': '\u00BC',
|
|
'frac34': '\u00BE',
|
|
'frasl': '\u2044',
|
|
'Gamma': '\u0393',
|
|
'gamma': '\u03B3',
|
|
'ge': '\u2265',
|
|
'gt': '>',
|
|
'harr': '\u2194',
|
|
'hArr': '\u21D4',
|
|
'hearts': '\u2665',
|
|
'hellip': '\u2026',
|
|
'Iacute': '\u00CD',
|
|
'iacute': '\u00ED',
|
|
'Icirc': '\u00CE',
|
|
'icirc': '\u00EE',
|
|
'iexcl': '\u00A1',
|
|
'Igrave': '\u00CC',
|
|
'igrave': '\u00EC',
|
|
'image': '\u2111',
|
|
'infin': '\u221E',
|
|
'int': '\u222B',
|
|
'Iota': '\u0399',
|
|
'iota': '\u03B9',
|
|
'iquest': '\u00BF',
|
|
'isin': '\u2208',
|
|
'Iuml': '\u00CF',
|
|
'iuml': '\u00EF',
|
|
'Kappa': '\u039A',
|
|
'kappa': '\u03BA',
|
|
'Lambda': '\u039B',
|
|
'lambda': '\u03BB',
|
|
'lang': '\u27E8',
|
|
'laquo': '\u00AB',
|
|
'larr': '\u2190',
|
|
'lArr': '\u21D0',
|
|
'lceil': '\u2308',
|
|
'ldquo': '\u201C',
|
|
'le': '\u2264',
|
|
'lfloor': '\u230A',
|
|
'lowast': '\u2217',
|
|
'loz': '\u25CA',
|
|
'lrm': '\u200E',
|
|
'lsaquo': '\u2039',
|
|
'lsquo': '\u2018',
|
|
'lt': '<',
|
|
'macr': '\u00AF',
|
|
'mdash': '\u2014',
|
|
'micro': '\u00B5',
|
|
'middot': '\u00B7',
|
|
'minus': '\u2212',
|
|
'Mu': '\u039C',
|
|
'mu': '\u03BC',
|
|
'nabla': '\u2207',
|
|
'nbsp': '\u00A0',
|
|
'ndash': '\u2013',
|
|
'ne': '\u2260',
|
|
'ni': '\u220B',
|
|
'not': '\u00AC',
|
|
'notin': '\u2209',
|
|
'nsub': '\u2284',
|
|
'Ntilde': '\u00D1',
|
|
'ntilde': '\u00F1',
|
|
'Nu': '\u039D',
|
|
'nu': '\u03BD',
|
|
'Oacute': '\u00D3',
|
|
'oacute': '\u00F3',
|
|
'Ocirc': '\u00D4',
|
|
'ocirc': '\u00F4',
|
|
'OElig': '\u0152',
|
|
'oelig': '\u0153',
|
|
'Ograve': '\u00D2',
|
|
'ograve': '\u00F2',
|
|
'oline': '\u203E',
|
|
'Omega': '\u03A9',
|
|
'omega': '\u03C9',
|
|
'Omicron': '\u039F',
|
|
'omicron': '\u03BF',
|
|
'oplus': '\u2295',
|
|
'or': '\u2228',
|
|
'ordf': '\u00AA',
|
|
'ordm': '\u00BA',
|
|
'Oslash': '\u00D8',
|
|
'oslash': '\u00F8',
|
|
'Otilde': '\u00D5',
|
|
'otilde': '\u00F5',
|
|
'otimes': '\u2297',
|
|
'Ouml': '\u00D6',
|
|
'ouml': '\u00F6',
|
|
'para': '\u00B6',
|
|
'permil': '\u2030',
|
|
'perp': '\u22A5',
|
|
'Phi': '\u03A6',
|
|
'phi': '\u03C6',
|
|
'Pi': '\u03A0',
|
|
'pi': '\u03C0',
|
|
'piv': '\u03D6',
|
|
'plusmn': '\u00B1',
|
|
'pound': '\u00A3',
|
|
'prime': '\u2032',
|
|
'Prime': '\u2033',
|
|
'prod': '\u220F',
|
|
'prop': '\u221D',
|
|
'Psi': '\u03A8',
|
|
'psi': '\u03C8',
|
|
'quot': '\u0022',
|
|
'radic': '\u221A',
|
|
'rang': '\u27E9',
|
|
'raquo': '\u00BB',
|
|
'rarr': '\u2192',
|
|
'rArr': '\u21D2',
|
|
'rceil': '\u2309',
|
|
'rdquo': '\u201D',
|
|
'real': '\u211C',
|
|
'reg': '\u00AE',
|
|
'rfloor': '\u230B',
|
|
'Rho': '\u03A1',
|
|
'rho': '\u03C1',
|
|
'rlm': '\u200F',
|
|
'rsaquo': '\u203A',
|
|
'rsquo': '\u2019',
|
|
'sbquo': '\u201A',
|
|
'Scaron': '\u0160',
|
|
'scaron': '\u0161',
|
|
'sdot': '\u22C5',
|
|
'sect': '\u00A7',
|
|
'shy': '\u00AD',
|
|
'Sigma': '\u03A3',
|
|
'sigma': '\u03C3',
|
|
'sigmaf': '\u03C2',
|
|
'sim': '\u223C',
|
|
'spades': '\u2660',
|
|
'sub': '\u2282',
|
|
'sube': '\u2286',
|
|
'sum': '\u2211',
|
|
'sup': '\u2283',
|
|
'sup1': '\u00B9',
|
|
'sup2': '\u00B2',
|
|
'sup3': '\u00B3',
|
|
'supe': '\u2287',
|
|
'szlig': '\u00DF',
|
|
'Tau': '\u03A4',
|
|
'tau': '\u03C4',
|
|
'there4': '\u2234',
|
|
'Theta': '\u0398',
|
|
'theta': '\u03B8',
|
|
'thetasym': '\u03D1',
|
|
'thinsp': '\u2009',
|
|
'THORN': '\u00DE',
|
|
'thorn': '\u00FE',
|
|
'tilde': '\u02DC',
|
|
'times': '\u00D7',
|
|
'trade': '\u2122',
|
|
'Uacute': '\u00DA',
|
|
'uacute': '\u00FA',
|
|
'uarr': '\u2191',
|
|
'uArr': '\u21D1',
|
|
'Ucirc': '\u00DB',
|
|
'ucirc': '\u00FB',
|
|
'Ugrave': '\u00D9',
|
|
'ugrave': '\u00F9',
|
|
'uml': '\u00A8',
|
|
'upsih': '\u03D2',
|
|
'Upsilon': '\u03A5',
|
|
'upsilon': '\u03C5',
|
|
'Uuml': '\u00DC',
|
|
'uuml': '\u00FC',
|
|
'weierp': '\u2118',
|
|
'Xi': '\u039E',
|
|
'xi': '\u03BE',
|
|
'Yacute': '\u00DD',
|
|
'yacute': '\u00FD',
|
|
'yen': '\u00A5',
|
|
'yuml': '\u00FF',
|
|
'Yuml': '\u0178',
|
|
'Zeta': '\u0396',
|
|
'zeta': '\u03B6',
|
|
'zwj': '\u200D',
|
|
'zwnj': '\u200C'
|
|
});
|
|
(function(HtmlTagContentType) {
|
|
HtmlTagContentType[HtmlTagContentType["RAW_TEXT"] = 0] = "RAW_TEXT";
|
|
HtmlTagContentType[HtmlTagContentType["ESCAPABLE_RAW_TEXT"] = 1] = "ESCAPABLE_RAW_TEXT";
|
|
HtmlTagContentType[HtmlTagContentType["PARSABLE_DATA"] = 2] = "PARSABLE_DATA";
|
|
})(exports.HtmlTagContentType || (exports.HtmlTagContentType = {}));
|
|
var HtmlTagContentType = exports.HtmlTagContentType;
|
|
var HtmlTagDefinition = (function() {
|
|
function HtmlTagDefinition(_a) {
|
|
var _this = this;
|
|
var _b = _a === void 0 ? {} : _a,
|
|
closedByChildren = _b.closedByChildren,
|
|
requiredParents = _b.requiredParents,
|
|
implicitNamespacePrefix = _b.implicitNamespacePrefix,
|
|
contentType = _b.contentType,
|
|
closedByParent = _b.closedByParent,
|
|
isVoid = _b.isVoid,
|
|
ignoreFirstLf = _b.ignoreFirstLf;
|
|
this.closedByChildren = {};
|
|
this.closedByParent = false;
|
|
if (lang_1.isPresent(closedByChildren) && closedByChildren.length > 0) {
|
|
closedByChildren.forEach(function(tagName) {
|
|
return _this.closedByChildren[tagName] = true;
|
|
});
|
|
}
|
|
this.isVoid = lang_1.normalizeBool(isVoid);
|
|
this.closedByParent = lang_1.normalizeBool(closedByParent) || this.isVoid;
|
|
if (lang_1.isPresent(requiredParents) && requiredParents.length > 0) {
|
|
this.requiredParents = {};
|
|
this.parentToAdd = requiredParents[0];
|
|
requiredParents.forEach(function(tagName) {
|
|
return _this.requiredParents[tagName] = true;
|
|
});
|
|
}
|
|
this.implicitNamespacePrefix = implicitNamespacePrefix;
|
|
this.contentType = lang_1.isPresent(contentType) ? contentType : HtmlTagContentType.PARSABLE_DATA;
|
|
this.ignoreFirstLf = lang_1.normalizeBool(ignoreFirstLf);
|
|
}
|
|
HtmlTagDefinition.prototype.requireExtraParent = function(currentParent) {
|
|
if (lang_1.isBlank(this.requiredParents)) {
|
|
return false;
|
|
}
|
|
if (lang_1.isBlank(currentParent)) {
|
|
return true;
|
|
}
|
|
var lcParent = currentParent.toLowerCase();
|
|
return this.requiredParents[lcParent] != true && lcParent != 'template';
|
|
};
|
|
HtmlTagDefinition.prototype.isClosedByChild = function(name) {
|
|
return this.isVoid || lang_1.normalizeBool(this.closedByChildren[name.toLowerCase()]);
|
|
};
|
|
return HtmlTagDefinition;
|
|
})();
|
|
exports.HtmlTagDefinition = HtmlTagDefinition;
|
|
var TAG_DEFINITIONS = {
|
|
'base': new HtmlTagDefinition({isVoid: true}),
|
|
'meta': new HtmlTagDefinition({isVoid: true}),
|
|
'area': new HtmlTagDefinition({isVoid: true}),
|
|
'embed': new HtmlTagDefinition({isVoid: true}),
|
|
'link': new HtmlTagDefinition({isVoid: true}),
|
|
'img': new HtmlTagDefinition({isVoid: true}),
|
|
'input': new HtmlTagDefinition({isVoid: true}),
|
|
'param': new HtmlTagDefinition({isVoid: true}),
|
|
'hr': new HtmlTagDefinition({isVoid: true}),
|
|
'br': new HtmlTagDefinition({isVoid: true}),
|
|
'source': new HtmlTagDefinition({isVoid: true}),
|
|
'track': new HtmlTagDefinition({isVoid: true}),
|
|
'wbr': new HtmlTagDefinition({isVoid: true}),
|
|
'p': new HtmlTagDefinition({
|
|
closedByChildren: ['address', 'article', 'aside', 'blockquote', 'div', 'dl', 'fieldset', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hgroup', 'hr', 'main', 'nav', 'ol', 'p', 'pre', 'section', 'table', 'ul'],
|
|
closedByParent: true
|
|
}),
|
|
'thead': new HtmlTagDefinition({closedByChildren: ['tbody', 'tfoot']}),
|
|
'tbody': new HtmlTagDefinition({
|
|
closedByChildren: ['tbody', 'tfoot'],
|
|
closedByParent: true
|
|
}),
|
|
'tfoot': new HtmlTagDefinition({
|
|
closedByChildren: ['tbody'],
|
|
closedByParent: true
|
|
}),
|
|
'tr': new HtmlTagDefinition({
|
|
closedByChildren: ['tr'],
|
|
requiredParents: ['tbody', 'tfoot', 'thead'],
|
|
closedByParent: true
|
|
}),
|
|
'td': new HtmlTagDefinition({
|
|
closedByChildren: ['td', 'th'],
|
|
closedByParent: true
|
|
}),
|
|
'th': new HtmlTagDefinition({
|
|
closedByChildren: ['td', 'th'],
|
|
closedByParent: true
|
|
}),
|
|
'col': new HtmlTagDefinition({
|
|
requiredParents: ['colgroup'],
|
|
isVoid: true
|
|
}),
|
|
'svg': new HtmlTagDefinition({implicitNamespacePrefix: 'svg'}),
|
|
'math': new HtmlTagDefinition({implicitNamespacePrefix: 'math'}),
|
|
'li': new HtmlTagDefinition({
|
|
closedByChildren: ['li'],
|
|
closedByParent: true
|
|
}),
|
|
'dt': new HtmlTagDefinition({closedByChildren: ['dt', 'dd']}),
|
|
'dd': new HtmlTagDefinition({
|
|
closedByChildren: ['dt', 'dd'],
|
|
closedByParent: true
|
|
}),
|
|
'rb': new HtmlTagDefinition({
|
|
closedByChildren: ['rb', 'rt', 'rtc', 'rp'],
|
|
closedByParent: true
|
|
}),
|
|
'rt': new HtmlTagDefinition({
|
|
closedByChildren: ['rb', 'rt', 'rtc', 'rp'],
|
|
closedByParent: true
|
|
}),
|
|
'rtc': new HtmlTagDefinition({
|
|
closedByChildren: ['rb', 'rtc', 'rp'],
|
|
closedByParent: true
|
|
}),
|
|
'rp': new HtmlTagDefinition({
|
|
closedByChildren: ['rb', 'rt', 'rtc', 'rp'],
|
|
closedByParent: true
|
|
}),
|
|
'optgroup': new HtmlTagDefinition({
|
|
closedByChildren: ['optgroup'],
|
|
closedByParent: true
|
|
}),
|
|
'option': new HtmlTagDefinition({
|
|
closedByChildren: ['option', 'optgroup'],
|
|
closedByParent: true
|
|
}),
|
|
'pre': new HtmlTagDefinition({ignoreFirstLf: true}),
|
|
'listing': new HtmlTagDefinition({ignoreFirstLf: true}),
|
|
'style': new HtmlTagDefinition({contentType: HtmlTagContentType.RAW_TEXT}),
|
|
'script': new HtmlTagDefinition({contentType: HtmlTagContentType.RAW_TEXT}),
|
|
'title': new HtmlTagDefinition({contentType: HtmlTagContentType.ESCAPABLE_RAW_TEXT}),
|
|
'textarea': new HtmlTagDefinition({
|
|
contentType: HtmlTagContentType.ESCAPABLE_RAW_TEXT,
|
|
ignoreFirstLf: true
|
|
})
|
|
};
|
|
var DEFAULT_TAG_DEFINITION = new HtmlTagDefinition();
|
|
function getHtmlTagDefinition(tagName) {
|
|
var result = TAG_DEFINITIONS[tagName.toLowerCase()];
|
|
return lang_1.isPresent(result) ? result : DEFAULT_TAG_DEFINITION;
|
|
}
|
|
exports.getHtmlTagDefinition = getHtmlTagDefinition;
|
|
var NS_PREFIX_RE = /^@([^:]+):(.+)/g;
|
|
function splitNsName(elementName) {
|
|
if (elementName[0] != '@') {
|
|
return [null, elementName];
|
|
}
|
|
var match = lang_1.RegExpWrapper.firstMatch(NS_PREFIX_RE, elementName);
|
|
return [match[1], match[2]];
|
|
}
|
|
exports.splitNsName = splitNsName;
|
|
function getNsPrefix(elementName) {
|
|
return splitNsName(elementName)[0];
|
|
}
|
|
exports.getNsPrefix = getNsPrefix;
|
|
function mergeNsAndName(prefix, localName) {
|
|
return lang_1.isPresent(prefix) ? "@" + prefix + ":" + localName : localName;
|
|
}
|
|
exports.mergeNsAndName = mergeNsAndName;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/compiler/schema/element_schema_registry", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var ElementSchemaRegistry = (function() {
|
|
function ElementSchemaRegistry() {}
|
|
ElementSchemaRegistry.prototype.hasProperty = function(tagName, propName) {
|
|
return true;
|
|
};
|
|
ElementSchemaRegistry.prototype.getMappedPropName = function(propName) {
|
|
return propName;
|
|
};
|
|
return ElementSchemaRegistry;
|
|
})();
|
|
exports.ElementSchemaRegistry = ElementSchemaRegistry;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/compiler/template_preparser", ["angular2/src/facade/lang", "angular2/src/compiler/html_tags"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var html_tags_1 = require("angular2/src/compiler/html_tags");
|
|
var NG_CONTENT_SELECT_ATTR = 'select';
|
|
var NG_CONTENT_ELEMENT = 'ng-content';
|
|
var LINK_ELEMENT = 'link';
|
|
var LINK_STYLE_REL_ATTR = 'rel';
|
|
var LINK_STYLE_HREF_ATTR = 'href';
|
|
var LINK_STYLE_REL_VALUE = 'stylesheet';
|
|
var STYLE_ELEMENT = 'style';
|
|
var SCRIPT_ELEMENT = 'script';
|
|
var NG_NON_BINDABLE_ATTR = 'ngNonBindable';
|
|
var NG_PROJECT_AS = 'ngProjectAs';
|
|
function preparseElement(ast) {
|
|
var selectAttr = null;
|
|
var hrefAttr = null;
|
|
var relAttr = null;
|
|
var nonBindable = false;
|
|
var projectAs = null;
|
|
ast.attrs.forEach(function(attr) {
|
|
var lcAttrName = attr.name.toLowerCase();
|
|
if (lcAttrName == NG_CONTENT_SELECT_ATTR) {
|
|
selectAttr = attr.value;
|
|
} else if (lcAttrName == LINK_STYLE_HREF_ATTR) {
|
|
hrefAttr = attr.value;
|
|
} else if (lcAttrName == LINK_STYLE_REL_ATTR) {
|
|
relAttr = attr.value;
|
|
} else if (attr.name == NG_NON_BINDABLE_ATTR) {
|
|
nonBindable = true;
|
|
} else if (attr.name == NG_PROJECT_AS) {
|
|
if (attr.value.length > 0) {
|
|
projectAs = attr.value;
|
|
}
|
|
}
|
|
});
|
|
selectAttr = normalizeNgContentSelect(selectAttr);
|
|
var nodeName = ast.name.toLowerCase();
|
|
var type = PreparsedElementType.OTHER;
|
|
if (html_tags_1.splitNsName(nodeName)[1] == NG_CONTENT_ELEMENT) {
|
|
type = PreparsedElementType.NG_CONTENT;
|
|
} else if (nodeName == STYLE_ELEMENT) {
|
|
type = PreparsedElementType.STYLE;
|
|
} else if (nodeName == SCRIPT_ELEMENT) {
|
|
type = PreparsedElementType.SCRIPT;
|
|
} else if (nodeName == LINK_ELEMENT && relAttr == LINK_STYLE_REL_VALUE) {
|
|
type = PreparsedElementType.STYLESHEET;
|
|
}
|
|
return new PreparsedElement(type, selectAttr, hrefAttr, nonBindable, projectAs);
|
|
}
|
|
exports.preparseElement = preparseElement;
|
|
(function(PreparsedElementType) {
|
|
PreparsedElementType[PreparsedElementType["NG_CONTENT"] = 0] = "NG_CONTENT";
|
|
PreparsedElementType[PreparsedElementType["STYLE"] = 1] = "STYLE";
|
|
PreparsedElementType[PreparsedElementType["STYLESHEET"] = 2] = "STYLESHEET";
|
|
PreparsedElementType[PreparsedElementType["SCRIPT"] = 3] = "SCRIPT";
|
|
PreparsedElementType[PreparsedElementType["OTHER"] = 4] = "OTHER";
|
|
})(exports.PreparsedElementType || (exports.PreparsedElementType = {}));
|
|
var PreparsedElementType = exports.PreparsedElementType;
|
|
var PreparsedElement = (function() {
|
|
function PreparsedElement(type, selectAttr, hrefAttr, nonBindable, projectAs) {
|
|
this.type = type;
|
|
this.selectAttr = selectAttr;
|
|
this.hrefAttr = hrefAttr;
|
|
this.nonBindable = nonBindable;
|
|
this.projectAs = projectAs;
|
|
}
|
|
return PreparsedElement;
|
|
})();
|
|
exports.PreparsedElement = PreparsedElement;
|
|
function normalizeNgContentSelect(selectAttr) {
|
|
if (lang_1.isBlank(selectAttr) || selectAttr.length === 0) {
|
|
return '*';
|
|
}
|
|
return selectAttr;
|
|
}
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/compiler/template_normalizer", ["angular2/src/compiler/directive_metadata", "angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/facade/async", "angular2/src/compiler/xhr", "angular2/src/compiler/url_resolver", "angular2/src/compiler/style_url_resolver", "angular2/src/core/di", "angular2/src/core/metadata/view", "angular2/src/compiler/html_ast", "angular2/src/compiler/html_parser", "angular2/src/compiler/template_preparser"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var directive_metadata_1 = require("angular2/src/compiler/directive_metadata");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var async_1 = require("angular2/src/facade/async");
|
|
var xhr_1 = require("angular2/src/compiler/xhr");
|
|
var url_resolver_1 = require("angular2/src/compiler/url_resolver");
|
|
var style_url_resolver_1 = require("angular2/src/compiler/style_url_resolver");
|
|
var di_1 = require("angular2/src/core/di");
|
|
var view_1 = require("angular2/src/core/metadata/view");
|
|
var html_ast_1 = require("angular2/src/compiler/html_ast");
|
|
var html_parser_1 = require("angular2/src/compiler/html_parser");
|
|
var template_preparser_1 = require("angular2/src/compiler/template_preparser");
|
|
var TemplateNormalizer = (function() {
|
|
function TemplateNormalizer(_xhr, _urlResolver, _htmlParser) {
|
|
this._xhr = _xhr;
|
|
this._urlResolver = _urlResolver;
|
|
this._htmlParser = _htmlParser;
|
|
}
|
|
TemplateNormalizer.prototype.normalizeTemplate = function(directiveType, template) {
|
|
var _this = this;
|
|
if (lang_1.isPresent(template.template)) {
|
|
return async_1.PromiseWrapper.resolve(this.normalizeLoadedTemplate(directiveType, template, template.template, directiveType.moduleUrl));
|
|
} else if (lang_1.isPresent(template.templateUrl)) {
|
|
var sourceAbsUrl = this._urlResolver.resolve(directiveType.moduleUrl, template.templateUrl);
|
|
return this._xhr.get(sourceAbsUrl).then(function(templateContent) {
|
|
return _this.normalizeLoadedTemplate(directiveType, template, templateContent, sourceAbsUrl);
|
|
});
|
|
} else {
|
|
throw new exceptions_1.BaseException("No template specified for component " + directiveType.name);
|
|
}
|
|
};
|
|
TemplateNormalizer.prototype.normalizeLoadedTemplate = function(directiveType, templateMeta, template, templateAbsUrl) {
|
|
var _this = this;
|
|
var rootNodesAndErrors = this._htmlParser.parse(template, directiveType.name);
|
|
if (rootNodesAndErrors.errors.length > 0) {
|
|
var errorString = rootNodesAndErrors.errors.join('\n');
|
|
throw new exceptions_1.BaseException("Template parse errors:\n" + errorString);
|
|
}
|
|
var visitor = new TemplatePreparseVisitor();
|
|
html_ast_1.htmlVisitAll(visitor, rootNodesAndErrors.rootNodes);
|
|
var allStyles = templateMeta.styles.concat(visitor.styles);
|
|
var allStyleAbsUrls = visitor.styleUrls.filter(style_url_resolver_1.isStyleUrlResolvable).map(function(url) {
|
|
return _this._urlResolver.resolve(templateAbsUrl, url);
|
|
}).concat(templateMeta.styleUrls.filter(style_url_resolver_1.isStyleUrlResolvable).map(function(url) {
|
|
return _this._urlResolver.resolve(directiveType.moduleUrl, url);
|
|
}));
|
|
var allResolvedStyles = allStyles.map(function(style) {
|
|
var styleWithImports = style_url_resolver_1.extractStyleUrls(_this._urlResolver, templateAbsUrl, style);
|
|
styleWithImports.styleUrls.forEach(function(styleUrl) {
|
|
return allStyleAbsUrls.push(styleUrl);
|
|
});
|
|
return styleWithImports.style;
|
|
});
|
|
var encapsulation = templateMeta.encapsulation;
|
|
if (encapsulation === view_1.ViewEncapsulation.Emulated && allResolvedStyles.length === 0 && allStyleAbsUrls.length === 0) {
|
|
encapsulation = view_1.ViewEncapsulation.None;
|
|
}
|
|
return new directive_metadata_1.CompileTemplateMetadata({
|
|
encapsulation: encapsulation,
|
|
template: template,
|
|
templateUrl: templateAbsUrl,
|
|
styles: allResolvedStyles,
|
|
styleUrls: allStyleAbsUrls,
|
|
ngContentSelectors: visitor.ngContentSelectors
|
|
});
|
|
};
|
|
TemplateNormalizer = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [xhr_1.XHR, url_resolver_1.UrlResolver, html_parser_1.HtmlParser])], TemplateNormalizer);
|
|
return TemplateNormalizer;
|
|
})();
|
|
exports.TemplateNormalizer = TemplateNormalizer;
|
|
var TemplatePreparseVisitor = (function() {
|
|
function TemplatePreparseVisitor() {
|
|
this.ngContentSelectors = [];
|
|
this.styles = [];
|
|
this.styleUrls = [];
|
|
this.ngNonBindableStackCount = 0;
|
|
}
|
|
TemplatePreparseVisitor.prototype.visitElement = function(ast, context) {
|
|
var preparsedElement = template_preparser_1.preparseElement(ast);
|
|
switch (preparsedElement.type) {
|
|
case template_preparser_1.PreparsedElementType.NG_CONTENT:
|
|
if (this.ngNonBindableStackCount === 0) {
|
|
this.ngContentSelectors.push(preparsedElement.selectAttr);
|
|
}
|
|
break;
|
|
case template_preparser_1.PreparsedElementType.STYLE:
|
|
var textContent = '';
|
|
ast.children.forEach(function(child) {
|
|
if (child instanceof html_ast_1.HtmlTextAst) {
|
|
textContent += child.value;
|
|
}
|
|
});
|
|
this.styles.push(textContent);
|
|
break;
|
|
case template_preparser_1.PreparsedElementType.STYLESHEET:
|
|
this.styleUrls.push(preparsedElement.hrefAttr);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
if (preparsedElement.nonBindable) {
|
|
this.ngNonBindableStackCount++;
|
|
}
|
|
html_ast_1.htmlVisitAll(this, ast.children);
|
|
if (preparsedElement.nonBindable) {
|
|
this.ngNonBindableStackCount--;
|
|
}
|
|
return null;
|
|
};
|
|
TemplatePreparseVisitor.prototype.visitComment = function(ast, context) {
|
|
return null;
|
|
};
|
|
TemplatePreparseVisitor.prototype.visitAttr = function(ast, context) {
|
|
return null;
|
|
};
|
|
TemplatePreparseVisitor.prototype.visitText = function(ast, context) {
|
|
return null;
|
|
};
|
|
return TemplatePreparseVisitor;
|
|
})();
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/linker/directive_lifecycle_reflector", ["angular2/src/facade/lang", "angular2/src/core/linker/interfaces"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var interfaces_1 = require("angular2/src/core/linker/interfaces");
|
|
function hasLifecycleHook(lcInterface, token) {
|
|
if (!(token instanceof lang_1.Type))
|
|
return false;
|
|
var proto = token.prototype;
|
|
switch (lcInterface) {
|
|
case interfaces_1.LifecycleHooks.AfterContentInit:
|
|
return !!proto.ngAfterContentInit;
|
|
case interfaces_1.LifecycleHooks.AfterContentChecked:
|
|
return !!proto.ngAfterContentChecked;
|
|
case interfaces_1.LifecycleHooks.AfterViewInit:
|
|
return !!proto.ngAfterViewInit;
|
|
case interfaces_1.LifecycleHooks.AfterViewChecked:
|
|
return !!proto.ngAfterViewChecked;
|
|
case interfaces_1.LifecycleHooks.OnChanges:
|
|
return !!proto.ngOnChanges;
|
|
case interfaces_1.LifecycleHooks.DoCheck:
|
|
return !!proto.ngDoCheck;
|
|
case interfaces_1.LifecycleHooks.OnDestroy:
|
|
return !!proto.ngOnDestroy;
|
|
case interfaces_1.LifecycleHooks.OnInit:
|
|
return !!proto.ngOnInit;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
exports.hasLifecycleHook = hasLifecycleHook;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/compiler/assertions", ["angular2/src/facade/lang", "angular2/src/facade/exceptions"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
function assertArrayOfStrings(identifier, value) {
|
|
if (!lang_1.assertionsEnabled() || lang_1.isBlank(value)) {
|
|
return ;
|
|
}
|
|
if (!lang_1.isArray(value)) {
|
|
throw new exceptions_1.BaseException("Expected '" + identifier + "' to be an array of strings.");
|
|
}
|
|
for (var i = 0; i < value.length; i += 1) {
|
|
if (!lang_1.isString(value[i])) {
|
|
throw new exceptions_1.BaseException("Expected '" + identifier + "' to be an array of strings.");
|
|
}
|
|
}
|
|
}
|
|
exports.assertArrayOfStrings = assertArrayOfStrings;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/compiler/schema/dom_element_schema_registry", ["angular2/src/core/di", "angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/platform/dom/dom_adapter", "angular2/src/compiler/html_tags", "angular2/src/compiler/schema/element_schema_registry"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var di_1 = require("angular2/src/core/di");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var dom_adapter_1 = require("angular2/src/platform/dom/dom_adapter");
|
|
var html_tags_1 = require("angular2/src/compiler/html_tags");
|
|
var element_schema_registry_1 = require("angular2/src/compiler/schema/element_schema_registry");
|
|
var NAMESPACE_URIS = lang_1.CONST_EXPR({
|
|
'xlink': 'http://www.w3.org/1999/xlink',
|
|
'svg': 'http://www.w3.org/2000/svg'
|
|
});
|
|
var DomElementSchemaRegistry = (function(_super) {
|
|
__extends(DomElementSchemaRegistry, _super);
|
|
function DomElementSchemaRegistry() {
|
|
_super.apply(this, arguments);
|
|
this._protoElements = new Map();
|
|
}
|
|
DomElementSchemaRegistry.prototype._getProtoElement = function(tagName) {
|
|
var element = this._protoElements.get(tagName);
|
|
if (lang_1.isBlank(element)) {
|
|
var nsAndName = html_tags_1.splitNsName(tagName);
|
|
element = lang_1.isPresent(nsAndName[0]) ? dom_adapter_1.DOM.createElementNS(NAMESPACE_URIS[nsAndName[0]], nsAndName[1]) : dom_adapter_1.DOM.createElement(nsAndName[1]);
|
|
this._protoElements.set(tagName, element);
|
|
}
|
|
return element;
|
|
};
|
|
DomElementSchemaRegistry.prototype.hasProperty = function(tagName, propName) {
|
|
if (tagName.indexOf('-') !== -1) {
|
|
return true;
|
|
} else {
|
|
var elm = this._getProtoElement(tagName);
|
|
return dom_adapter_1.DOM.hasProperty(elm, propName);
|
|
}
|
|
};
|
|
DomElementSchemaRegistry.prototype.getMappedPropName = function(propName) {
|
|
var mappedPropName = collection_1.StringMapWrapper.get(dom_adapter_1.DOM.attrToPropMap, propName);
|
|
return lang_1.isPresent(mappedPropName) ? mappedPropName : propName;
|
|
};
|
|
DomElementSchemaRegistry = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [])], DomElementSchemaRegistry);
|
|
return DomElementSchemaRegistry;
|
|
})(element_schema_registry_1.ElementSchemaRegistry);
|
|
exports.DomElementSchemaRegistry = DomElementSchemaRegistry;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/angular_entrypoint", ["angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var AngularEntrypoint = (function() {
|
|
function AngularEntrypoint(name) {
|
|
this.name = name;
|
|
}
|
|
AngularEntrypoint = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [String])], AngularEntrypoint);
|
|
return AngularEntrypoint;
|
|
})();
|
|
exports.AngularEntrypoint = AngularEntrypoint;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/router/location/platform_location", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var PlatformLocation = (function() {
|
|
function PlatformLocation() {}
|
|
Object.defineProperty(PlatformLocation.prototype, "pathname", {
|
|
get: function() {
|
|
return null;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(PlatformLocation.prototype, "search", {
|
|
get: function() {
|
|
return null;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(PlatformLocation.prototype, "hash", {
|
|
get: function() {
|
|
return null;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
return PlatformLocation;
|
|
})();
|
|
exports.PlatformLocation = PlatformLocation;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/web_workers/worker/platform_location", ["angular2/src/core/di", "angular2/src/router/location/platform_location", "angular2/src/web_workers/shared/client_message_broker", "angular2/src/web_workers/shared/messaging_api", "angular2/src/web_workers/shared/serialized_types", "angular2/src/facade/async", "angular2/src/facade/exceptions", "angular2/src/web_workers/shared/serializer", "angular2/src/web_workers/shared/message_bus", "angular2/src/facade/collection", "angular2/src/facade/lang", "angular2/src/web_workers/worker/event_deserializer"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var di_1 = require("angular2/src/core/di");
|
|
var platform_location_1 = require("angular2/src/router/location/platform_location");
|
|
var client_message_broker_1 = require("angular2/src/web_workers/shared/client_message_broker");
|
|
var messaging_api_1 = require("angular2/src/web_workers/shared/messaging_api");
|
|
var serialized_types_1 = require("angular2/src/web_workers/shared/serialized_types");
|
|
var async_1 = require("angular2/src/facade/async");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var serializer_1 = require("angular2/src/web_workers/shared/serializer");
|
|
var message_bus_1 = require("angular2/src/web_workers/shared/message_bus");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var event_deserializer_1 = require("angular2/src/web_workers/worker/event_deserializer");
|
|
var WebWorkerPlatformLocation = (function(_super) {
|
|
__extends(WebWorkerPlatformLocation, _super);
|
|
function WebWorkerPlatformLocation(brokerFactory, bus, _serializer) {
|
|
var _this = this;
|
|
_super.call(this);
|
|
this._serializer = _serializer;
|
|
this._popStateListeners = [];
|
|
this._hashChangeListeners = [];
|
|
this._location = null;
|
|
this._broker = brokerFactory.createMessageBroker(messaging_api_1.ROUTER_CHANNEL);
|
|
this._channelSource = bus.from(messaging_api_1.ROUTER_CHANNEL);
|
|
async_1.ObservableWrapper.subscribe(this._channelSource, function(msg) {
|
|
var listeners = null;
|
|
if (collection_1.StringMapWrapper.contains(msg, 'event')) {
|
|
var type = msg['event']['type'];
|
|
if (lang_1.StringWrapper.equals(type, "popstate")) {
|
|
listeners = _this._popStateListeners;
|
|
} else if (lang_1.StringWrapper.equals(type, "hashchange")) {
|
|
listeners = _this._hashChangeListeners;
|
|
}
|
|
if (listeners !== null) {
|
|
var e = event_deserializer_1.deserializeGenericEvent(msg['event']);
|
|
_this._location = _this._serializer.deserialize(msg['location'], serialized_types_1.LocationType);
|
|
listeners.forEach(function(fn) {
|
|
return fn(e);
|
|
});
|
|
}
|
|
}
|
|
});
|
|
}
|
|
WebWorkerPlatformLocation.prototype.init = function() {
|
|
var _this = this;
|
|
var args = new client_message_broker_1.UiArguments("getLocation");
|
|
var locationPromise = this._broker.runOnService(args, serialized_types_1.LocationType);
|
|
return async_1.PromiseWrapper.then(locationPromise, function(val) {
|
|
_this._location = val;
|
|
return true;
|
|
}, function(err) {
|
|
throw new exceptions_1.BaseException(err);
|
|
});
|
|
};
|
|
WebWorkerPlatformLocation.prototype.getBaseHrefFromDOM = function() {
|
|
throw new exceptions_1.BaseException("Attempt to get base href from DOM from WebWorker. You must either provide a value for the APP_BASE_HREF token through DI or use the hash location strategy.");
|
|
};
|
|
WebWorkerPlatformLocation.prototype.onPopState = function(fn) {
|
|
this._popStateListeners.push(fn);
|
|
};
|
|
WebWorkerPlatformLocation.prototype.onHashChange = function(fn) {
|
|
this._hashChangeListeners.push(fn);
|
|
};
|
|
Object.defineProperty(WebWorkerPlatformLocation.prototype, "pathname", {
|
|
get: function() {
|
|
if (this._location === null) {
|
|
return null;
|
|
}
|
|
return this._location.pathname;
|
|
},
|
|
set: function(newPath) {
|
|
if (this._location === null) {
|
|
throw new exceptions_1.BaseException("Attempt to set pathname before value is obtained from UI");
|
|
}
|
|
this._location.pathname = newPath;
|
|
var fnArgs = [new client_message_broker_1.FnArg(newPath, serializer_1.PRIMITIVE)];
|
|
var args = new client_message_broker_1.UiArguments("setPathname", fnArgs);
|
|
this._broker.runOnService(args, null);
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(WebWorkerPlatformLocation.prototype, "search", {
|
|
get: function() {
|
|
if (this._location === null) {
|
|
return null;
|
|
}
|
|
return this._location.search;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(WebWorkerPlatformLocation.prototype, "hash", {
|
|
get: function() {
|
|
if (this._location === null) {
|
|
return null;
|
|
}
|
|
return this._location.hash;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
WebWorkerPlatformLocation.prototype.pushState = function(state, title, url) {
|
|
var fnArgs = [new client_message_broker_1.FnArg(state, serializer_1.PRIMITIVE), new client_message_broker_1.FnArg(title, serializer_1.PRIMITIVE), new client_message_broker_1.FnArg(url, serializer_1.PRIMITIVE)];
|
|
var args = new client_message_broker_1.UiArguments("pushState", fnArgs);
|
|
this._broker.runOnService(args, null);
|
|
};
|
|
WebWorkerPlatformLocation.prototype.replaceState = function(state, title, url) {
|
|
var fnArgs = [new client_message_broker_1.FnArg(state, serializer_1.PRIMITIVE), new client_message_broker_1.FnArg(title, serializer_1.PRIMITIVE), new client_message_broker_1.FnArg(url, serializer_1.PRIMITIVE)];
|
|
var args = new client_message_broker_1.UiArguments("replaceState", fnArgs);
|
|
this._broker.runOnService(args, null);
|
|
};
|
|
WebWorkerPlatformLocation.prototype.forward = function() {
|
|
var args = new client_message_broker_1.UiArguments("forward");
|
|
this._broker.runOnService(args, null);
|
|
};
|
|
WebWorkerPlatformLocation.prototype.back = function() {
|
|
var args = new client_message_broker_1.UiArguments("back");
|
|
this._broker.runOnService(args, null);
|
|
};
|
|
WebWorkerPlatformLocation = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [client_message_broker_1.ClientMessageBrokerFactory, message_bus_1.MessageBus, serializer_1.Serializer])], WebWorkerPlatformLocation);
|
|
return WebWorkerPlatformLocation;
|
|
})(platform_location_1.PlatformLocation);
|
|
exports.WebWorkerPlatformLocation = WebWorkerPlatformLocation;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/router/location/location_strategy", ["angular2/src/facade/lang", "angular2/core"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var core_1 = require("angular2/core");
|
|
var LocationStrategy = (function() {
|
|
function LocationStrategy() {}
|
|
return LocationStrategy;
|
|
})();
|
|
exports.LocationStrategy = LocationStrategy;
|
|
exports.APP_BASE_HREF = lang_1.CONST_EXPR(new core_1.OpaqueToken('appBaseHref'));
|
|
function normalizeQueryParams(params) {
|
|
return (params.length > 0 && params.substring(0, 1) != '?') ? ('?' + params) : params;
|
|
}
|
|
exports.normalizeQueryParams = normalizeQueryParams;
|
|
function joinWithSlash(start, end) {
|
|
if (start.length == 0) {
|
|
return end;
|
|
}
|
|
if (end.length == 0) {
|
|
return start;
|
|
}
|
|
var slashes = 0;
|
|
if (start.endsWith('/')) {
|
|
slashes++;
|
|
}
|
|
if (end.startsWith('/')) {
|
|
slashes++;
|
|
}
|
|
if (slashes == 2) {
|
|
return start + end.substring(1);
|
|
}
|
|
if (slashes == 1) {
|
|
return start + end;
|
|
}
|
|
return start + '/' + end;
|
|
}
|
|
exports.joinWithSlash = joinWithSlash;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/router/location/path_location_strategy", ["angular2/core", "angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/router/location/location_strategy", "angular2/src/router/location/platform_location"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var __param = (this && this.__param) || function(paramIndex, decorator) {
|
|
return function(target, key) {
|
|
decorator(target, key, paramIndex);
|
|
};
|
|
};
|
|
var core_1 = require("angular2/core");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var location_strategy_1 = require("angular2/src/router/location/location_strategy");
|
|
var platform_location_1 = require("angular2/src/router/location/platform_location");
|
|
var PathLocationStrategy = (function(_super) {
|
|
__extends(PathLocationStrategy, _super);
|
|
function PathLocationStrategy(_platformLocation, href) {
|
|
_super.call(this);
|
|
this._platformLocation = _platformLocation;
|
|
if (lang_1.isBlank(href)) {
|
|
href = this._platformLocation.getBaseHrefFromDOM();
|
|
}
|
|
if (lang_1.isBlank(href)) {
|
|
throw new exceptions_1.BaseException("No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to the document.");
|
|
}
|
|
this._baseHref = href;
|
|
}
|
|
PathLocationStrategy.prototype.onPopState = function(fn) {
|
|
this._platformLocation.onPopState(fn);
|
|
this._platformLocation.onHashChange(fn);
|
|
};
|
|
PathLocationStrategy.prototype.getBaseHref = function() {
|
|
return this._baseHref;
|
|
};
|
|
PathLocationStrategy.prototype.prepareExternalUrl = function(internal) {
|
|
return location_strategy_1.joinWithSlash(this._baseHref, internal);
|
|
};
|
|
PathLocationStrategy.prototype.path = function() {
|
|
return this._platformLocation.pathname + location_strategy_1.normalizeQueryParams(this._platformLocation.search);
|
|
};
|
|
PathLocationStrategy.prototype.pushState = function(state, title, url, queryParams) {
|
|
var externalUrl = this.prepareExternalUrl(url + location_strategy_1.normalizeQueryParams(queryParams));
|
|
this._platformLocation.pushState(state, title, externalUrl);
|
|
};
|
|
PathLocationStrategy.prototype.replaceState = function(state, title, url, queryParams) {
|
|
var externalUrl = this.prepareExternalUrl(url + location_strategy_1.normalizeQueryParams(queryParams));
|
|
this._platformLocation.replaceState(state, title, externalUrl);
|
|
};
|
|
PathLocationStrategy.prototype.forward = function() {
|
|
this._platformLocation.forward();
|
|
};
|
|
PathLocationStrategy.prototype.back = function() {
|
|
this._platformLocation.back();
|
|
};
|
|
PathLocationStrategy = __decorate([core_1.Injectable(), __param(1, core_1.Optional()), __param(1, core_1.Inject(location_strategy_1.APP_BASE_HREF)), __metadata('design:paramtypes', [platform_location_1.PlatformLocation, String])], PathLocationStrategy);
|
|
return PathLocationStrategy;
|
|
})(location_strategy_1.LocationStrategy);
|
|
exports.PathLocationStrategy = PathLocationStrategy;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/router/route_config/route_config_impl", ["angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var __make_dart_analyzer_happy = null;
|
|
var RouteConfig = (function() {
|
|
function RouteConfig(configs) {
|
|
this.configs = configs;
|
|
}
|
|
RouteConfig = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [Array])], RouteConfig);
|
|
return RouteConfig;
|
|
})();
|
|
exports.RouteConfig = RouteConfig;
|
|
var AbstractRoute = (function() {
|
|
function AbstractRoute(_a) {
|
|
var name = _a.name,
|
|
useAsDefault = _a.useAsDefault,
|
|
path = _a.path,
|
|
regex = _a.regex,
|
|
serializer = _a.serializer,
|
|
data = _a.data;
|
|
this.name = name;
|
|
this.useAsDefault = useAsDefault;
|
|
this.path = path;
|
|
this.regex = regex;
|
|
this.serializer = serializer;
|
|
this.data = data;
|
|
}
|
|
AbstractRoute = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [Object])], AbstractRoute);
|
|
return AbstractRoute;
|
|
})();
|
|
exports.AbstractRoute = AbstractRoute;
|
|
var Route = (function(_super) {
|
|
__extends(Route, _super);
|
|
function Route(_a) {
|
|
var name = _a.name,
|
|
useAsDefault = _a.useAsDefault,
|
|
path = _a.path,
|
|
regex = _a.regex,
|
|
serializer = _a.serializer,
|
|
data = _a.data,
|
|
component = _a.component;
|
|
_super.call(this, {
|
|
name: name,
|
|
useAsDefault: useAsDefault,
|
|
path: path,
|
|
regex: regex,
|
|
serializer: serializer,
|
|
data: data
|
|
});
|
|
this.aux = null;
|
|
this.component = component;
|
|
}
|
|
Route = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [Object])], Route);
|
|
return Route;
|
|
})(AbstractRoute);
|
|
exports.Route = Route;
|
|
var AuxRoute = (function(_super) {
|
|
__extends(AuxRoute, _super);
|
|
function AuxRoute(_a) {
|
|
var name = _a.name,
|
|
useAsDefault = _a.useAsDefault,
|
|
path = _a.path,
|
|
regex = _a.regex,
|
|
serializer = _a.serializer,
|
|
data = _a.data,
|
|
component = _a.component;
|
|
_super.call(this, {
|
|
name: name,
|
|
useAsDefault: useAsDefault,
|
|
path: path,
|
|
regex: regex,
|
|
serializer: serializer,
|
|
data: data
|
|
});
|
|
this.component = component;
|
|
}
|
|
AuxRoute = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [Object])], AuxRoute);
|
|
return AuxRoute;
|
|
})(AbstractRoute);
|
|
exports.AuxRoute = AuxRoute;
|
|
var AsyncRoute = (function(_super) {
|
|
__extends(AsyncRoute, _super);
|
|
function AsyncRoute(_a) {
|
|
var name = _a.name,
|
|
useAsDefault = _a.useAsDefault,
|
|
path = _a.path,
|
|
regex = _a.regex,
|
|
serializer = _a.serializer,
|
|
data = _a.data,
|
|
loader = _a.loader;
|
|
_super.call(this, {
|
|
name: name,
|
|
useAsDefault: useAsDefault,
|
|
path: path,
|
|
regex: regex,
|
|
serializer: serializer,
|
|
data: data
|
|
});
|
|
this.aux = null;
|
|
this.loader = loader;
|
|
}
|
|
AsyncRoute = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [Object])], AsyncRoute);
|
|
return AsyncRoute;
|
|
})(AbstractRoute);
|
|
exports.AsyncRoute = AsyncRoute;
|
|
var Redirect = (function(_super) {
|
|
__extends(Redirect, _super);
|
|
function Redirect(_a) {
|
|
var name = _a.name,
|
|
useAsDefault = _a.useAsDefault,
|
|
path = _a.path,
|
|
regex = _a.regex,
|
|
serializer = _a.serializer,
|
|
data = _a.data,
|
|
redirectTo = _a.redirectTo;
|
|
_super.call(this, {
|
|
name: name,
|
|
useAsDefault: useAsDefault,
|
|
path: path,
|
|
regex: regex,
|
|
serializer: serializer,
|
|
data: data
|
|
});
|
|
this.redirectTo = redirectTo;
|
|
}
|
|
Redirect = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [Object])], Redirect);
|
|
return Redirect;
|
|
})(AbstractRoute);
|
|
exports.Redirect = Redirect;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/router/url_parser", ["angular2/src/facade/collection", "angular2/src/facade/lang", "angular2/src/facade/exceptions"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
function convertUrlParamsToArray(urlParams) {
|
|
var paramsArray = [];
|
|
if (lang_1.isBlank(urlParams)) {
|
|
return [];
|
|
}
|
|
collection_1.StringMapWrapper.forEach(urlParams, function(value, key) {
|
|
paramsArray.push((value === true) ? key : key + '=' + value);
|
|
});
|
|
return paramsArray;
|
|
}
|
|
exports.convertUrlParamsToArray = convertUrlParamsToArray;
|
|
function serializeParams(urlParams, joiner) {
|
|
if (joiner === void 0) {
|
|
joiner = '&';
|
|
}
|
|
return convertUrlParamsToArray(urlParams).join(joiner);
|
|
}
|
|
exports.serializeParams = serializeParams;
|
|
var Url = (function() {
|
|
function Url(path, child, auxiliary, params) {
|
|
if (child === void 0) {
|
|
child = null;
|
|
}
|
|
if (auxiliary === void 0) {
|
|
auxiliary = lang_1.CONST_EXPR([]);
|
|
}
|
|
if (params === void 0) {
|
|
params = lang_1.CONST_EXPR({});
|
|
}
|
|
this.path = path;
|
|
this.child = child;
|
|
this.auxiliary = auxiliary;
|
|
this.params = params;
|
|
}
|
|
Url.prototype.toString = function() {
|
|
return this.path + this._matrixParamsToString() + this._auxToString() + this._childString();
|
|
};
|
|
Url.prototype.segmentToString = function() {
|
|
return this.path + this._matrixParamsToString();
|
|
};
|
|
Url.prototype._auxToString = function() {
|
|
return this.auxiliary.length > 0 ? ('(' + this.auxiliary.map(function(sibling) {
|
|
return sibling.toString();
|
|
}).join('//') + ')') : '';
|
|
};
|
|
Url.prototype._matrixParamsToString = function() {
|
|
var paramString = serializeParams(this.params, ';');
|
|
if (paramString.length > 0) {
|
|
return ';' + paramString;
|
|
}
|
|
return '';
|
|
};
|
|
Url.prototype._childString = function() {
|
|
return lang_1.isPresent(this.child) ? ('/' + this.child.toString()) : '';
|
|
};
|
|
return Url;
|
|
})();
|
|
exports.Url = Url;
|
|
var RootUrl = (function(_super) {
|
|
__extends(RootUrl, _super);
|
|
function RootUrl(path, child, auxiliary, params) {
|
|
if (child === void 0) {
|
|
child = null;
|
|
}
|
|
if (auxiliary === void 0) {
|
|
auxiliary = lang_1.CONST_EXPR([]);
|
|
}
|
|
if (params === void 0) {
|
|
params = null;
|
|
}
|
|
_super.call(this, path, child, auxiliary, params);
|
|
}
|
|
RootUrl.prototype.toString = function() {
|
|
return this.path + this._auxToString() + this._childString() + this._queryParamsToString();
|
|
};
|
|
RootUrl.prototype.segmentToString = function() {
|
|
return this.path + this._queryParamsToString();
|
|
};
|
|
RootUrl.prototype._queryParamsToString = function() {
|
|
if (lang_1.isBlank(this.params)) {
|
|
return '';
|
|
}
|
|
return '?' + serializeParams(this.params);
|
|
};
|
|
return RootUrl;
|
|
})(Url);
|
|
exports.RootUrl = RootUrl;
|
|
function pathSegmentsToUrl(pathSegments) {
|
|
var url = new Url(pathSegments[pathSegments.length - 1]);
|
|
for (var i = pathSegments.length - 2; i >= 0; i -= 1) {
|
|
url = new Url(pathSegments[i], url);
|
|
}
|
|
return url;
|
|
}
|
|
exports.pathSegmentsToUrl = pathSegmentsToUrl;
|
|
var SEGMENT_RE = lang_1.RegExpWrapper.create('^[^\\/\\(\\)\\?;=&#]+');
|
|
function matchUrlSegment(str) {
|
|
var match = lang_1.RegExpWrapper.firstMatch(SEGMENT_RE, str);
|
|
return lang_1.isPresent(match) ? match[0] : '';
|
|
}
|
|
var UrlParser = (function() {
|
|
function UrlParser() {}
|
|
UrlParser.prototype.peekStartsWith = function(str) {
|
|
return this._remaining.startsWith(str);
|
|
};
|
|
UrlParser.prototype.capture = function(str) {
|
|
if (!this._remaining.startsWith(str)) {
|
|
throw new exceptions_1.BaseException("Expected \"" + str + "\".");
|
|
}
|
|
this._remaining = this._remaining.substring(str.length);
|
|
};
|
|
UrlParser.prototype.parse = function(url) {
|
|
this._remaining = url;
|
|
if (url == '' || url == '/') {
|
|
return new Url('');
|
|
}
|
|
return this.parseRoot();
|
|
};
|
|
UrlParser.prototype.parseRoot = function() {
|
|
if (this.peekStartsWith('/')) {
|
|
this.capture('/');
|
|
}
|
|
var path = matchUrlSegment(this._remaining);
|
|
this.capture(path);
|
|
var aux = [];
|
|
if (this.peekStartsWith('(')) {
|
|
aux = this.parseAuxiliaryRoutes();
|
|
}
|
|
if (this.peekStartsWith(';')) {
|
|
this.parseMatrixParams();
|
|
}
|
|
var child = null;
|
|
if (this.peekStartsWith('/') && !this.peekStartsWith('//')) {
|
|
this.capture('/');
|
|
child = this.parseSegment();
|
|
}
|
|
var queryParams = null;
|
|
if (this.peekStartsWith('?')) {
|
|
queryParams = this.parseQueryParams();
|
|
}
|
|
return new RootUrl(path, child, aux, queryParams);
|
|
};
|
|
UrlParser.prototype.parseSegment = function() {
|
|
if (this._remaining.length == 0) {
|
|
return null;
|
|
}
|
|
if (this.peekStartsWith('/')) {
|
|
this.capture('/');
|
|
}
|
|
var path = matchUrlSegment(this._remaining);
|
|
this.capture(path);
|
|
var matrixParams = null;
|
|
if (this.peekStartsWith(';')) {
|
|
matrixParams = this.parseMatrixParams();
|
|
}
|
|
var aux = [];
|
|
if (this.peekStartsWith('(')) {
|
|
aux = this.parseAuxiliaryRoutes();
|
|
}
|
|
var child = null;
|
|
if (this.peekStartsWith('/') && !this.peekStartsWith('//')) {
|
|
this.capture('/');
|
|
child = this.parseSegment();
|
|
}
|
|
return new Url(path, child, aux, matrixParams);
|
|
};
|
|
UrlParser.prototype.parseQueryParams = function() {
|
|
var params = {};
|
|
this.capture('?');
|
|
this.parseParam(params);
|
|
while (this._remaining.length > 0 && this.peekStartsWith('&')) {
|
|
this.capture('&');
|
|
this.parseParam(params);
|
|
}
|
|
return params;
|
|
};
|
|
UrlParser.prototype.parseMatrixParams = function() {
|
|
var params = {};
|
|
while (this._remaining.length > 0 && this.peekStartsWith(';')) {
|
|
this.capture(';');
|
|
this.parseParam(params);
|
|
}
|
|
return params;
|
|
};
|
|
UrlParser.prototype.parseParam = function(params) {
|
|
var key = matchUrlSegment(this._remaining);
|
|
if (lang_1.isBlank(key)) {
|
|
return ;
|
|
}
|
|
this.capture(key);
|
|
var value = true;
|
|
if (this.peekStartsWith('=')) {
|
|
this.capture('=');
|
|
var valueMatch = matchUrlSegment(this._remaining);
|
|
if (lang_1.isPresent(valueMatch)) {
|
|
value = valueMatch;
|
|
this.capture(value);
|
|
}
|
|
}
|
|
params[key] = value;
|
|
};
|
|
UrlParser.prototype.parseAuxiliaryRoutes = function() {
|
|
var routes = [];
|
|
this.capture('(');
|
|
while (!this.peekStartsWith(')') && this._remaining.length > 0) {
|
|
routes.push(this.parseSegment());
|
|
if (this.peekStartsWith('//')) {
|
|
this.capture('//');
|
|
}
|
|
}
|
|
this.capture(')');
|
|
return routes;
|
|
};
|
|
return UrlParser;
|
|
})();
|
|
exports.UrlParser = UrlParser;
|
|
exports.parser = new UrlParser();
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/router/instruction", ["angular2/src/facade/collection", "angular2/src/facade/lang", "angular2/src/facade/async"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var async_1 = require("angular2/src/facade/async");
|
|
var RouteParams = (function() {
|
|
function RouteParams(params) {
|
|
this.params = params;
|
|
}
|
|
RouteParams.prototype.get = function(param) {
|
|
return lang_1.normalizeBlank(collection_1.StringMapWrapper.get(this.params, param));
|
|
};
|
|
return RouteParams;
|
|
})();
|
|
exports.RouteParams = RouteParams;
|
|
var RouteData = (function() {
|
|
function RouteData(data) {
|
|
if (data === void 0) {
|
|
data = lang_1.CONST_EXPR({});
|
|
}
|
|
this.data = data;
|
|
}
|
|
RouteData.prototype.get = function(key) {
|
|
return lang_1.normalizeBlank(collection_1.StringMapWrapper.get(this.data, key));
|
|
};
|
|
return RouteData;
|
|
})();
|
|
exports.RouteData = RouteData;
|
|
exports.BLANK_ROUTE_DATA = new RouteData();
|
|
var Instruction = (function() {
|
|
function Instruction(component, child, auxInstruction) {
|
|
this.component = component;
|
|
this.child = child;
|
|
this.auxInstruction = auxInstruction;
|
|
}
|
|
Object.defineProperty(Instruction.prototype, "urlPath", {
|
|
get: function() {
|
|
return lang_1.isPresent(this.component) ? this.component.urlPath : '';
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(Instruction.prototype, "urlParams", {
|
|
get: function() {
|
|
return lang_1.isPresent(this.component) ? this.component.urlParams : [];
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(Instruction.prototype, "specificity", {
|
|
get: function() {
|
|
var total = '';
|
|
if (lang_1.isPresent(this.component)) {
|
|
total += this.component.specificity;
|
|
}
|
|
if (lang_1.isPresent(this.child)) {
|
|
total += this.child.specificity;
|
|
}
|
|
return total;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Instruction.prototype.toRootUrl = function() {
|
|
return this.toUrlPath() + this.toUrlQuery();
|
|
};
|
|
Instruction.prototype._toNonRootUrl = function() {
|
|
return this._stringifyPathMatrixAuxPrefixed() + (lang_1.isPresent(this.child) ? this.child._toNonRootUrl() : '');
|
|
};
|
|
Instruction.prototype.toUrlQuery = function() {
|
|
return this.urlParams.length > 0 ? ('?' + this.urlParams.join('&')) : '';
|
|
};
|
|
Instruction.prototype.replaceChild = function(child) {
|
|
return new ResolvedInstruction(this.component, child, this.auxInstruction);
|
|
};
|
|
Instruction.prototype.toUrlPath = function() {
|
|
return this.urlPath + this._stringifyAux() + (lang_1.isPresent(this.child) ? this.child._toNonRootUrl() : '');
|
|
};
|
|
Instruction.prototype.toLinkUrl = function() {
|
|
return this.urlPath + this._stringifyAux() + (lang_1.isPresent(this.child) ? this.child._toLinkUrl() : '') + this.toUrlQuery();
|
|
};
|
|
Instruction.prototype._toLinkUrl = function() {
|
|
return this._stringifyPathMatrixAuxPrefixed() + (lang_1.isPresent(this.child) ? this.child._toLinkUrl() : '');
|
|
};
|
|
Instruction.prototype._stringifyPathMatrixAuxPrefixed = function() {
|
|
var primary = this._stringifyPathMatrixAux();
|
|
if (primary.length > 0) {
|
|
primary = '/' + primary;
|
|
}
|
|
return primary;
|
|
};
|
|
Instruction.prototype._stringifyMatrixParams = function() {
|
|
return this.urlParams.length > 0 ? (';' + this.urlParams.join(';')) : '';
|
|
};
|
|
Instruction.prototype._stringifyPathMatrixAux = function() {
|
|
if (lang_1.isBlank(this.component)) {
|
|
return '';
|
|
}
|
|
return this.urlPath + this._stringifyMatrixParams() + this._stringifyAux();
|
|
};
|
|
Instruction.prototype._stringifyAux = function() {
|
|
var routes = [];
|
|
collection_1.StringMapWrapper.forEach(this.auxInstruction, function(auxInstruction, _) {
|
|
routes.push(auxInstruction._stringifyPathMatrixAux());
|
|
});
|
|
if (routes.length > 0) {
|
|
return '(' + routes.join('//') + ')';
|
|
}
|
|
return '';
|
|
};
|
|
return Instruction;
|
|
})();
|
|
exports.Instruction = Instruction;
|
|
var ResolvedInstruction = (function(_super) {
|
|
__extends(ResolvedInstruction, _super);
|
|
function ResolvedInstruction(component, child, auxInstruction) {
|
|
_super.call(this, component, child, auxInstruction);
|
|
}
|
|
ResolvedInstruction.prototype.resolveComponent = function() {
|
|
return async_1.PromiseWrapper.resolve(this.component);
|
|
};
|
|
return ResolvedInstruction;
|
|
})(Instruction);
|
|
exports.ResolvedInstruction = ResolvedInstruction;
|
|
var DefaultInstruction = (function(_super) {
|
|
__extends(DefaultInstruction, _super);
|
|
function DefaultInstruction(component, child) {
|
|
_super.call(this, component, child, {});
|
|
}
|
|
DefaultInstruction.prototype.toLinkUrl = function() {
|
|
return '';
|
|
};
|
|
DefaultInstruction.prototype._toLinkUrl = function() {
|
|
return '';
|
|
};
|
|
return DefaultInstruction;
|
|
})(ResolvedInstruction);
|
|
exports.DefaultInstruction = DefaultInstruction;
|
|
var UnresolvedInstruction = (function(_super) {
|
|
__extends(UnresolvedInstruction, _super);
|
|
function UnresolvedInstruction(_resolver, _urlPath, _urlParams) {
|
|
if (_urlPath === void 0) {
|
|
_urlPath = '';
|
|
}
|
|
if (_urlParams === void 0) {
|
|
_urlParams = lang_1.CONST_EXPR([]);
|
|
}
|
|
_super.call(this, null, null, {});
|
|
this._resolver = _resolver;
|
|
this._urlPath = _urlPath;
|
|
this._urlParams = _urlParams;
|
|
}
|
|
Object.defineProperty(UnresolvedInstruction.prototype, "urlPath", {
|
|
get: function() {
|
|
if (lang_1.isPresent(this.component)) {
|
|
return this.component.urlPath;
|
|
}
|
|
if (lang_1.isPresent(this._urlPath)) {
|
|
return this._urlPath;
|
|
}
|
|
return '';
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(UnresolvedInstruction.prototype, "urlParams", {
|
|
get: function() {
|
|
if (lang_1.isPresent(this.component)) {
|
|
return this.component.urlParams;
|
|
}
|
|
if (lang_1.isPresent(this._urlParams)) {
|
|
return this._urlParams;
|
|
}
|
|
return [];
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
UnresolvedInstruction.prototype.resolveComponent = function() {
|
|
var _this = this;
|
|
if (lang_1.isPresent(this.component)) {
|
|
return async_1.PromiseWrapper.resolve(this.component);
|
|
}
|
|
return this._resolver().then(function(instruction) {
|
|
_this.child = lang_1.isPresent(instruction) ? instruction.child : null;
|
|
return _this.component = lang_1.isPresent(instruction) ? instruction.component : null;
|
|
});
|
|
};
|
|
return UnresolvedInstruction;
|
|
})(Instruction);
|
|
exports.UnresolvedInstruction = UnresolvedInstruction;
|
|
var RedirectInstruction = (function(_super) {
|
|
__extends(RedirectInstruction, _super);
|
|
function RedirectInstruction(component, child, auxInstruction, _specificity) {
|
|
_super.call(this, component, child, auxInstruction);
|
|
this._specificity = _specificity;
|
|
}
|
|
Object.defineProperty(RedirectInstruction.prototype, "specificity", {
|
|
get: function() {
|
|
return this._specificity;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
return RedirectInstruction;
|
|
})(ResolvedInstruction);
|
|
exports.RedirectInstruction = RedirectInstruction;
|
|
var ComponentInstruction = (function() {
|
|
function ComponentInstruction(urlPath, urlParams, data, componentType, terminal, specificity, params) {
|
|
if (params === void 0) {
|
|
params = null;
|
|
}
|
|
this.urlPath = urlPath;
|
|
this.urlParams = urlParams;
|
|
this.componentType = componentType;
|
|
this.terminal = terminal;
|
|
this.specificity = specificity;
|
|
this.params = params;
|
|
this.reuse = false;
|
|
this.routeData = lang_1.isPresent(data) ? data : exports.BLANK_ROUTE_DATA;
|
|
}
|
|
return ComponentInstruction;
|
|
})();
|
|
exports.ComponentInstruction = ComponentInstruction;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/router/rules/route_handlers/async_route_handler", ["angular2/src/facade/lang", "angular2/src/router/instruction"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var instruction_1 = require("angular2/src/router/instruction");
|
|
var AsyncRouteHandler = (function() {
|
|
function AsyncRouteHandler(_loader, data) {
|
|
if (data === void 0) {
|
|
data = null;
|
|
}
|
|
this._loader = _loader;
|
|
this._resolvedComponent = null;
|
|
this.data = lang_1.isPresent(data) ? new instruction_1.RouteData(data) : instruction_1.BLANK_ROUTE_DATA;
|
|
}
|
|
AsyncRouteHandler.prototype.resolveComponentType = function() {
|
|
var _this = this;
|
|
if (lang_1.isPresent(this._resolvedComponent)) {
|
|
return this._resolvedComponent;
|
|
}
|
|
return this._resolvedComponent = this._loader().then(function(componentType) {
|
|
_this.componentType = componentType;
|
|
return componentType;
|
|
});
|
|
};
|
|
return AsyncRouteHandler;
|
|
})();
|
|
exports.AsyncRouteHandler = AsyncRouteHandler;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/router/rules/route_handlers/sync_route_handler", ["angular2/src/facade/async", "angular2/src/facade/lang", "angular2/src/router/instruction"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var async_1 = require("angular2/src/facade/async");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var instruction_1 = require("angular2/src/router/instruction");
|
|
var SyncRouteHandler = (function() {
|
|
function SyncRouteHandler(componentType, data) {
|
|
this.componentType = componentType;
|
|
this._resolvedComponent = null;
|
|
this._resolvedComponent = async_1.PromiseWrapper.resolve(componentType);
|
|
this.data = lang_1.isPresent(data) ? new instruction_1.RouteData(data) : instruction_1.BLANK_ROUTE_DATA;
|
|
}
|
|
SyncRouteHandler.prototype.resolveComponentType = function() {
|
|
return this._resolvedComponent;
|
|
};
|
|
return SyncRouteHandler;
|
|
})();
|
|
exports.SyncRouteHandler = SyncRouteHandler;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/router/utils", ["angular2/src/facade/lang", "angular2/src/facade/collection"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var TouchMap = (function() {
|
|
function TouchMap(map) {
|
|
var _this = this;
|
|
this.map = {};
|
|
this.keys = {};
|
|
if (lang_1.isPresent(map)) {
|
|
collection_1.StringMapWrapper.forEach(map, function(value, key) {
|
|
_this.map[key] = lang_1.isPresent(value) ? value.toString() : null;
|
|
_this.keys[key] = true;
|
|
});
|
|
}
|
|
}
|
|
TouchMap.prototype.get = function(key) {
|
|
collection_1.StringMapWrapper.delete(this.keys, key);
|
|
return this.map[key];
|
|
};
|
|
TouchMap.prototype.getUnused = function() {
|
|
var _this = this;
|
|
var unused = {};
|
|
var keys = collection_1.StringMapWrapper.keys(this.keys);
|
|
keys.forEach(function(key) {
|
|
return unused[key] = collection_1.StringMapWrapper.get(_this.map, key);
|
|
});
|
|
return unused;
|
|
};
|
|
return TouchMap;
|
|
})();
|
|
exports.TouchMap = TouchMap;
|
|
function normalizeString(obj) {
|
|
if (lang_1.isBlank(obj)) {
|
|
return null;
|
|
} else {
|
|
return obj.toString();
|
|
}
|
|
}
|
|
exports.normalizeString = normalizeString;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/router/rules/route_paths/route_path", [], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var MatchedUrl = (function() {
|
|
function MatchedUrl(urlPath, urlParams, allParams, auxiliary, rest) {
|
|
this.urlPath = urlPath;
|
|
this.urlParams = urlParams;
|
|
this.allParams = allParams;
|
|
this.auxiliary = auxiliary;
|
|
this.rest = rest;
|
|
}
|
|
return MatchedUrl;
|
|
})();
|
|
exports.MatchedUrl = MatchedUrl;
|
|
var GeneratedUrl = (function() {
|
|
function GeneratedUrl(urlPath, urlParams) {
|
|
this.urlPath = urlPath;
|
|
this.urlParams = urlParams;
|
|
}
|
|
return GeneratedUrl;
|
|
})();
|
|
exports.GeneratedUrl = GeneratedUrl;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/router/rules/route_paths/regex_route_path", ["angular2/src/facade/lang", "angular2/src/router/rules/route_paths/route_path"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var route_path_1 = require("angular2/src/router/rules/route_paths/route_path");
|
|
var RegexRoutePath = (function() {
|
|
function RegexRoutePath(_reString, _serializer) {
|
|
this._reString = _reString;
|
|
this._serializer = _serializer;
|
|
this.terminal = true;
|
|
this.specificity = '2';
|
|
this.hash = this._reString;
|
|
this._regex = lang_1.RegExpWrapper.create(this._reString);
|
|
}
|
|
RegexRoutePath.prototype.matchUrl = function(url) {
|
|
var urlPath = url.toString();
|
|
var params = {};
|
|
var matcher = lang_1.RegExpWrapper.matcher(this._regex, urlPath);
|
|
var match = lang_1.RegExpMatcherWrapper.next(matcher);
|
|
if (lang_1.isBlank(match)) {
|
|
return null;
|
|
}
|
|
for (var i = 0; i < match.length; i += 1) {
|
|
params[i.toString()] = match[i];
|
|
}
|
|
return new route_path_1.MatchedUrl(urlPath, [], params, [], null);
|
|
};
|
|
RegexRoutePath.prototype.generateUrl = function(params) {
|
|
return this._serializer(params);
|
|
};
|
|
RegexRoutePath.prototype.toString = function() {
|
|
return this._reString;
|
|
};
|
|
return RegexRoutePath;
|
|
})();
|
|
exports.RegexRoutePath = RegexRoutePath;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/router/route_config/route_config_decorator", ["angular2/src/router/route_config/route_config_impl", "angular2/src/core/util/decorators", "angular2/src/router/route_config/route_config_impl"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var route_config_impl_1 = require("angular2/src/router/route_config/route_config_impl");
|
|
var decorators_1 = require("angular2/src/core/util/decorators");
|
|
var route_config_impl_2 = require("angular2/src/router/route_config/route_config_impl");
|
|
exports.Route = route_config_impl_2.Route;
|
|
exports.Redirect = route_config_impl_2.Redirect;
|
|
exports.AuxRoute = route_config_impl_2.AuxRoute;
|
|
exports.AsyncRoute = route_config_impl_2.AsyncRoute;
|
|
exports.RouteConfig = decorators_1.makeDecorator(route_config_impl_1.RouteConfig);
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/router/location/location", ["angular2/src/router/location/location_strategy", "angular2/src/facade/async", "angular2/core"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var location_strategy_1 = require("angular2/src/router/location/location_strategy");
|
|
var async_1 = require("angular2/src/facade/async");
|
|
var core_1 = require("angular2/core");
|
|
var Location = (function() {
|
|
function Location(platformStrategy) {
|
|
var _this = this;
|
|
this.platformStrategy = platformStrategy;
|
|
this._subject = new async_1.EventEmitter();
|
|
var browserBaseHref = this.platformStrategy.getBaseHref();
|
|
this._baseHref = stripTrailingSlash(stripIndexHtml(browserBaseHref));
|
|
this.platformStrategy.onPopState(function(ev) {
|
|
async_1.ObservableWrapper.callEmit(_this._subject, {
|
|
'url': _this.path(),
|
|
'pop': true,
|
|
'type': ev.type
|
|
});
|
|
});
|
|
}
|
|
Location.prototype.path = function() {
|
|
return this.normalize(this.platformStrategy.path());
|
|
};
|
|
Location.prototype.normalize = function(url) {
|
|
return stripTrailingSlash(_stripBaseHref(this._baseHref, stripIndexHtml(url)));
|
|
};
|
|
Location.prototype.prepareExternalUrl = function(url) {
|
|
if (url.length > 0 && !url.startsWith('/')) {
|
|
url = '/' + url;
|
|
}
|
|
return this.platformStrategy.prepareExternalUrl(url);
|
|
};
|
|
Location.prototype.go = function(path, query) {
|
|
if (query === void 0) {
|
|
query = '';
|
|
}
|
|
this.platformStrategy.pushState(null, '', path, query);
|
|
};
|
|
Location.prototype.replaceState = function(path, query) {
|
|
if (query === void 0) {
|
|
query = '';
|
|
}
|
|
this.platformStrategy.replaceState(null, '', path, query);
|
|
};
|
|
Location.prototype.forward = function() {
|
|
this.platformStrategy.forward();
|
|
};
|
|
Location.prototype.back = function() {
|
|
this.platformStrategy.back();
|
|
};
|
|
Location.prototype.subscribe = function(onNext, onThrow, onReturn) {
|
|
if (onThrow === void 0) {
|
|
onThrow = null;
|
|
}
|
|
if (onReturn === void 0) {
|
|
onReturn = null;
|
|
}
|
|
return async_1.ObservableWrapper.subscribe(this._subject, onNext, onThrow, onReturn);
|
|
};
|
|
Location = __decorate([core_1.Injectable(), __metadata('design:paramtypes', [location_strategy_1.LocationStrategy])], Location);
|
|
return Location;
|
|
})();
|
|
exports.Location = Location;
|
|
function _stripBaseHref(baseHref, url) {
|
|
if (baseHref.length > 0 && url.startsWith(baseHref)) {
|
|
return url.substring(baseHref.length);
|
|
}
|
|
return url;
|
|
}
|
|
function stripIndexHtml(url) {
|
|
if (/\/index.html$/g.test(url)) {
|
|
return url.substring(0, url.length - 11);
|
|
}
|
|
return url;
|
|
}
|
|
function stripTrailingSlash(url) {
|
|
if (/\/$/g.test(url)) {
|
|
url = url.substring(0, url.length - 1);
|
|
}
|
|
return url;
|
|
}
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/router/lifecycle/lifecycle_annotations_impl", ["angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var RouteLifecycleHook = (function() {
|
|
function RouteLifecycleHook(name) {
|
|
this.name = name;
|
|
}
|
|
RouteLifecycleHook = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [String])], RouteLifecycleHook);
|
|
return RouteLifecycleHook;
|
|
})();
|
|
exports.RouteLifecycleHook = RouteLifecycleHook;
|
|
var CanActivate = (function() {
|
|
function CanActivate(fn) {
|
|
this.fn = fn;
|
|
}
|
|
CanActivate = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [Function])], CanActivate);
|
|
return CanActivate;
|
|
})();
|
|
exports.CanActivate = CanActivate;
|
|
exports.routerCanReuse = lang_1.CONST_EXPR(new RouteLifecycleHook("routerCanReuse"));
|
|
exports.routerCanDeactivate = lang_1.CONST_EXPR(new RouteLifecycleHook("routerCanDeactivate"));
|
|
exports.routerOnActivate = lang_1.CONST_EXPR(new RouteLifecycleHook("routerOnActivate"));
|
|
exports.routerOnReuse = lang_1.CONST_EXPR(new RouteLifecycleHook("routerOnReuse"));
|
|
exports.routerOnDeactivate = lang_1.CONST_EXPR(new RouteLifecycleHook("routerOnDeactivate"));
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/compiler", ["angular2/src/compiler/url_resolver", "angular2/src/compiler/xhr", "angular2/src/compiler/compiler"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
function __export(m) {
|
|
for (var p in m)
|
|
if (!exports.hasOwnProperty(p))
|
|
exports[p] = m[p];
|
|
}
|
|
__export(require("angular2/src/compiler/url_resolver"));
|
|
__export(require("angular2/src/compiler/xhr"));
|
|
__export(require("angular2/src/compiler/compiler"));
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/instrumentation", ["angular2/src/core/profile/profile"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var profile_1 = require("angular2/src/core/profile/profile");
|
|
exports.wtfCreateScope = profile_1.wtfCreateScope;
|
|
exports.wtfLeave = profile_1.wtfLeave;
|
|
exports.wtfStartTimeRange = profile_1.wtfStartTimeRange;
|
|
exports.wtfEndTimeRange = profile_1.wtfEndTimeRange;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("rxjs/util/tryCatch", ["rxjs/util/errorObject"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
"use strict";
|
|
var errorObject_1 = require("rxjs/util/errorObject");
|
|
var tryCatchTarget;
|
|
function tryCatcher() {
|
|
try {
|
|
return tryCatchTarget.apply(this, arguments);
|
|
} catch (e) {
|
|
errorObject_1.errorObject.e = e;
|
|
return errorObject_1.errorObject;
|
|
}
|
|
}
|
|
function tryCatch(fn) {
|
|
tryCatchTarget = fn;
|
|
return tryCatcher;
|
|
}
|
|
exports.tryCatch = tryCatch;
|
|
;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/di/decorators", ["angular2/src/core/di/metadata", "angular2/src/core/util/decorators"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var metadata_1 = require("angular2/src/core/di/metadata");
|
|
var decorators_1 = require("angular2/src/core/util/decorators");
|
|
exports.Inject = decorators_1.makeParamDecorator(metadata_1.InjectMetadata);
|
|
exports.Optional = decorators_1.makeParamDecorator(metadata_1.OptionalMetadata);
|
|
exports.Injectable = decorators_1.makeDecorator(metadata_1.InjectableMetadata);
|
|
exports.Self = decorators_1.makeParamDecorator(metadata_1.SelfMetadata);
|
|
exports.Host = decorators_1.makeParamDecorator(metadata_1.HostMetadata);
|
|
exports.SkipSelf = decorators_1.makeParamDecorator(metadata_1.SkipSelfMetadata);
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/facade/exceptions", ["angular2/src/facade/base_wrapped_exception", "angular2/src/facade/exception_handler", "angular2/src/facade/exception_handler"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var base_wrapped_exception_1 = require("angular2/src/facade/base_wrapped_exception");
|
|
var exception_handler_1 = require("angular2/src/facade/exception_handler");
|
|
var exception_handler_2 = require("angular2/src/facade/exception_handler");
|
|
exports.ExceptionHandler = exception_handler_2.ExceptionHandler;
|
|
var BaseException = (function(_super) {
|
|
__extends(BaseException, _super);
|
|
function BaseException(message) {
|
|
if (message === void 0) {
|
|
message = "--";
|
|
}
|
|
_super.call(this, message);
|
|
this.message = message;
|
|
this.stack = (new Error(message)).stack;
|
|
}
|
|
BaseException.prototype.toString = function() {
|
|
return this.message;
|
|
};
|
|
return BaseException;
|
|
})(Error);
|
|
exports.BaseException = BaseException;
|
|
var WrappedException = (function(_super) {
|
|
__extends(WrappedException, _super);
|
|
function WrappedException(_wrapperMessage, _originalException, _originalStack, _context) {
|
|
_super.call(this, _wrapperMessage);
|
|
this._wrapperMessage = _wrapperMessage;
|
|
this._originalException = _originalException;
|
|
this._originalStack = _originalStack;
|
|
this._context = _context;
|
|
this._wrapperStack = (new Error(_wrapperMessage)).stack;
|
|
}
|
|
Object.defineProperty(WrappedException.prototype, "wrapperMessage", {
|
|
get: function() {
|
|
return this._wrapperMessage;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(WrappedException.prototype, "wrapperStack", {
|
|
get: function() {
|
|
return this._wrapperStack;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(WrappedException.prototype, "originalException", {
|
|
get: function() {
|
|
return this._originalException;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(WrappedException.prototype, "originalStack", {
|
|
get: function() {
|
|
return this._originalStack;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(WrappedException.prototype, "context", {
|
|
get: function() {
|
|
return this._context;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(WrappedException.prototype, "message", {
|
|
get: function() {
|
|
return exception_handler_1.ExceptionHandler.exceptionToString(this);
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
WrappedException.prototype.toString = function() {
|
|
return this.message;
|
|
};
|
|
return WrappedException;
|
|
})(base_wrapped_exception_1.BaseWrappedException);
|
|
exports.WrappedException = WrappedException;
|
|
function makeTypeError(message) {
|
|
return new TypeError(message);
|
|
}
|
|
exports.makeTypeError = makeTypeError;
|
|
function unimplemented() {
|
|
throw new BaseException('unimplemented');
|
|
}
|
|
exports.unimplemented = unimplemented;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/reflection/reflector", ["angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/facade/collection", "angular2/src/core/reflection/reflector_reader"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var reflector_reader_1 = require("angular2/src/core/reflection/reflector_reader");
|
|
var ReflectionInfo = (function() {
|
|
function ReflectionInfo(annotations, parameters, factory, interfaces, propMetadata) {
|
|
this.annotations = annotations;
|
|
this.parameters = parameters;
|
|
this.factory = factory;
|
|
this.interfaces = interfaces;
|
|
this.propMetadata = propMetadata;
|
|
}
|
|
return ReflectionInfo;
|
|
})();
|
|
exports.ReflectionInfo = ReflectionInfo;
|
|
var Reflector = (function(_super) {
|
|
__extends(Reflector, _super);
|
|
function Reflector(reflectionCapabilities) {
|
|
_super.call(this);
|
|
this._injectableInfo = new collection_1.Map();
|
|
this._getters = new collection_1.Map();
|
|
this._setters = new collection_1.Map();
|
|
this._methods = new collection_1.Map();
|
|
this._usedKeys = null;
|
|
this.reflectionCapabilities = reflectionCapabilities;
|
|
}
|
|
Reflector.prototype.isReflectionEnabled = function() {
|
|
return this.reflectionCapabilities.isReflectionEnabled();
|
|
};
|
|
Reflector.prototype.trackUsage = function() {
|
|
this._usedKeys = new collection_1.Set();
|
|
};
|
|
Reflector.prototype.listUnusedKeys = function() {
|
|
var _this = this;
|
|
if (this._usedKeys == null) {
|
|
throw new exceptions_1.BaseException('Usage tracking is disabled');
|
|
}
|
|
var allTypes = collection_1.MapWrapper.keys(this._injectableInfo);
|
|
return allTypes.filter(function(key) {
|
|
return !collection_1.SetWrapper.has(_this._usedKeys, key);
|
|
});
|
|
};
|
|
Reflector.prototype.registerFunction = function(func, funcInfo) {
|
|
this._injectableInfo.set(func, funcInfo);
|
|
};
|
|
Reflector.prototype.registerType = function(type, typeInfo) {
|
|
this._injectableInfo.set(type, typeInfo);
|
|
};
|
|
Reflector.prototype.registerGetters = function(getters) {
|
|
_mergeMaps(this._getters, getters);
|
|
};
|
|
Reflector.prototype.registerSetters = function(setters) {
|
|
_mergeMaps(this._setters, setters);
|
|
};
|
|
Reflector.prototype.registerMethods = function(methods) {
|
|
_mergeMaps(this._methods, methods);
|
|
};
|
|
Reflector.prototype.factory = function(type) {
|
|
if (this._containsReflectionInfo(type)) {
|
|
var res = this._getReflectionInfo(type).factory;
|
|
return lang_1.isPresent(res) ? res : null;
|
|
} else {
|
|
return this.reflectionCapabilities.factory(type);
|
|
}
|
|
};
|
|
Reflector.prototype.parameters = function(typeOrFunc) {
|
|
if (this._injectableInfo.has(typeOrFunc)) {
|
|
var res = this._getReflectionInfo(typeOrFunc).parameters;
|
|
return lang_1.isPresent(res) ? res : [];
|
|
} else {
|
|
return this.reflectionCapabilities.parameters(typeOrFunc);
|
|
}
|
|
};
|
|
Reflector.prototype.annotations = function(typeOrFunc) {
|
|
if (this._injectableInfo.has(typeOrFunc)) {
|
|
var res = this._getReflectionInfo(typeOrFunc).annotations;
|
|
return lang_1.isPresent(res) ? res : [];
|
|
} else {
|
|
return this.reflectionCapabilities.annotations(typeOrFunc);
|
|
}
|
|
};
|
|
Reflector.prototype.propMetadata = function(typeOrFunc) {
|
|
if (this._injectableInfo.has(typeOrFunc)) {
|
|
var res = this._getReflectionInfo(typeOrFunc).propMetadata;
|
|
return lang_1.isPresent(res) ? res : {};
|
|
} else {
|
|
return this.reflectionCapabilities.propMetadata(typeOrFunc);
|
|
}
|
|
};
|
|
Reflector.prototype.interfaces = function(type) {
|
|
if (this._injectableInfo.has(type)) {
|
|
var res = this._getReflectionInfo(type).interfaces;
|
|
return lang_1.isPresent(res) ? res : [];
|
|
} else {
|
|
return this.reflectionCapabilities.interfaces(type);
|
|
}
|
|
};
|
|
Reflector.prototype.getter = function(name) {
|
|
if (this._getters.has(name)) {
|
|
return this._getters.get(name);
|
|
} else {
|
|
return this.reflectionCapabilities.getter(name);
|
|
}
|
|
};
|
|
Reflector.prototype.setter = function(name) {
|
|
if (this._setters.has(name)) {
|
|
return this._setters.get(name);
|
|
} else {
|
|
return this.reflectionCapabilities.setter(name);
|
|
}
|
|
};
|
|
Reflector.prototype.method = function(name) {
|
|
if (this._methods.has(name)) {
|
|
return this._methods.get(name);
|
|
} else {
|
|
return this.reflectionCapabilities.method(name);
|
|
}
|
|
};
|
|
Reflector.prototype._getReflectionInfo = function(typeOrFunc) {
|
|
if (lang_1.isPresent(this._usedKeys)) {
|
|
this._usedKeys.add(typeOrFunc);
|
|
}
|
|
return this._injectableInfo.get(typeOrFunc);
|
|
};
|
|
Reflector.prototype._containsReflectionInfo = function(typeOrFunc) {
|
|
return this._injectableInfo.has(typeOrFunc);
|
|
};
|
|
Reflector.prototype.importUri = function(type) {
|
|
return this.reflectionCapabilities.importUri(type);
|
|
};
|
|
return Reflector;
|
|
})(reflector_reader_1.ReflectorReader);
|
|
exports.Reflector = Reflector;
|
|
function _mergeMaps(target, config) {
|
|
collection_1.StringMapWrapper.forEach(config, function(v, k) {
|
|
return target.set(k, v);
|
|
});
|
|
}
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/change_detection/change_detection_util", ["angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/facade/collection", "angular2/src/core/change_detection/constants", "angular2/src/core/change_detection/pipe_lifecycle_reflector", "angular2/src/core/change_detection/binding_record", "angular2/src/core/change_detection/directive_record"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var constants_1 = require("angular2/src/core/change_detection/constants");
|
|
var pipe_lifecycle_reflector_1 = require("angular2/src/core/change_detection/pipe_lifecycle_reflector");
|
|
var binding_record_1 = require("angular2/src/core/change_detection/binding_record");
|
|
var directive_record_1 = require("angular2/src/core/change_detection/directive_record");
|
|
var WrappedValue = (function() {
|
|
function WrappedValue(wrapped) {
|
|
this.wrapped = wrapped;
|
|
}
|
|
WrappedValue.wrap = function(value) {
|
|
var w = _wrappedValues[_wrappedIndex++ % 5];
|
|
w.wrapped = value;
|
|
return w;
|
|
};
|
|
return WrappedValue;
|
|
})();
|
|
exports.WrappedValue = WrappedValue;
|
|
var _wrappedValues = [new WrappedValue(null), new WrappedValue(null), new WrappedValue(null), new WrappedValue(null), new WrappedValue(null)];
|
|
var _wrappedIndex = 0;
|
|
var SimpleChange = (function() {
|
|
function SimpleChange(previousValue, currentValue) {
|
|
this.previousValue = previousValue;
|
|
this.currentValue = currentValue;
|
|
}
|
|
SimpleChange.prototype.isFirstChange = function() {
|
|
return this.previousValue === ChangeDetectionUtil.uninitialized;
|
|
};
|
|
return SimpleChange;
|
|
})();
|
|
exports.SimpleChange = SimpleChange;
|
|
function _simpleChange(previousValue, currentValue) {
|
|
return new SimpleChange(previousValue, currentValue);
|
|
}
|
|
var ChangeDetectionUtil = (function() {
|
|
function ChangeDetectionUtil() {}
|
|
ChangeDetectionUtil.arrayFn0 = function() {
|
|
return [];
|
|
};
|
|
ChangeDetectionUtil.arrayFn1 = function(a1) {
|
|
return [a1];
|
|
};
|
|
ChangeDetectionUtil.arrayFn2 = function(a1, a2) {
|
|
return [a1, a2];
|
|
};
|
|
ChangeDetectionUtil.arrayFn3 = function(a1, a2, a3) {
|
|
return [a1, a2, a3];
|
|
};
|
|
ChangeDetectionUtil.arrayFn4 = function(a1, a2, a3, a4) {
|
|
return [a1, a2, a3, a4];
|
|
};
|
|
ChangeDetectionUtil.arrayFn5 = function(a1, a2, a3, a4, a5) {
|
|
return [a1, a2, a3, a4, a5];
|
|
};
|
|
ChangeDetectionUtil.arrayFn6 = function(a1, a2, a3, a4, a5, a6) {
|
|
return [a1, a2, a3, a4, a5, a6];
|
|
};
|
|
ChangeDetectionUtil.arrayFn7 = function(a1, a2, a3, a4, a5, a6, a7) {
|
|
return [a1, a2, a3, a4, a5, a6, a7];
|
|
};
|
|
ChangeDetectionUtil.arrayFn8 = function(a1, a2, a3, a4, a5, a6, a7, a8) {
|
|
return [a1, a2, a3, a4, a5, a6, a7, a8];
|
|
};
|
|
ChangeDetectionUtil.arrayFn9 = function(a1, a2, a3, a4, a5, a6, a7, a8, a9) {
|
|
return [a1, a2, a3, a4, a5, a6, a7, a8, a9];
|
|
};
|
|
ChangeDetectionUtil.operation_negate = function(value) {
|
|
return !value;
|
|
};
|
|
ChangeDetectionUtil.operation_add = function(left, right) {
|
|
return left + right;
|
|
};
|
|
ChangeDetectionUtil.operation_subtract = function(left, right) {
|
|
return left - right;
|
|
};
|
|
ChangeDetectionUtil.operation_multiply = function(left, right) {
|
|
return left * right;
|
|
};
|
|
ChangeDetectionUtil.operation_divide = function(left, right) {
|
|
return left / right;
|
|
};
|
|
ChangeDetectionUtil.operation_remainder = function(left, right) {
|
|
return left % right;
|
|
};
|
|
ChangeDetectionUtil.operation_equals = function(left, right) {
|
|
return left == right;
|
|
};
|
|
ChangeDetectionUtil.operation_not_equals = function(left, right) {
|
|
return left != right;
|
|
};
|
|
ChangeDetectionUtil.operation_identical = function(left, right) {
|
|
return left === right;
|
|
};
|
|
ChangeDetectionUtil.operation_not_identical = function(left, right) {
|
|
return left !== right;
|
|
};
|
|
ChangeDetectionUtil.operation_less_then = function(left, right) {
|
|
return left < right;
|
|
};
|
|
ChangeDetectionUtil.operation_greater_then = function(left, right) {
|
|
return left > right;
|
|
};
|
|
ChangeDetectionUtil.operation_less_or_equals_then = function(left, right) {
|
|
return left <= right;
|
|
};
|
|
ChangeDetectionUtil.operation_greater_or_equals_then = function(left, right) {
|
|
return left >= right;
|
|
};
|
|
ChangeDetectionUtil.cond = function(cond, trueVal, falseVal) {
|
|
return cond ? trueVal : falseVal;
|
|
};
|
|
ChangeDetectionUtil.mapFn = function(keys) {
|
|
function buildMap(values) {
|
|
var res = collection_1.StringMapWrapper.create();
|
|
for (var i = 0; i < keys.length; ++i) {
|
|
collection_1.StringMapWrapper.set(res, keys[i], values[i]);
|
|
}
|
|
return res;
|
|
}
|
|
switch (keys.length) {
|
|
case 0:
|
|
return function() {
|
|
return [];
|
|
};
|
|
case 1:
|
|
return function(a1) {
|
|
return buildMap([a1]);
|
|
};
|
|
case 2:
|
|
return function(a1, a2) {
|
|
return buildMap([a1, a2]);
|
|
};
|
|
case 3:
|
|
return function(a1, a2, a3) {
|
|
return buildMap([a1, a2, a3]);
|
|
};
|
|
case 4:
|
|
return function(a1, a2, a3, a4) {
|
|
return buildMap([a1, a2, a3, a4]);
|
|
};
|
|
case 5:
|
|
return function(a1, a2, a3, a4, a5) {
|
|
return buildMap([a1, a2, a3, a4, a5]);
|
|
};
|
|
case 6:
|
|
return function(a1, a2, a3, a4, a5, a6) {
|
|
return buildMap([a1, a2, a3, a4, a5, a6]);
|
|
};
|
|
case 7:
|
|
return function(a1, a2, a3, a4, a5, a6, a7) {
|
|
return buildMap([a1, a2, a3, a4, a5, a6, a7]);
|
|
};
|
|
case 8:
|
|
return function(a1, a2, a3, a4, a5, a6, a7, a8) {
|
|
return buildMap([a1, a2, a3, a4, a5, a6, a7, a8]);
|
|
};
|
|
case 9:
|
|
return function(a1, a2, a3, a4, a5, a6, a7, a8, a9) {
|
|
return buildMap([a1, a2, a3, a4, a5, a6, a7, a8, a9]);
|
|
};
|
|
default:
|
|
throw new exceptions_1.BaseException("Does not support literal maps with more than 9 elements");
|
|
}
|
|
};
|
|
ChangeDetectionUtil.keyedAccess = function(obj, args) {
|
|
return obj[args[0]];
|
|
};
|
|
ChangeDetectionUtil.unwrapValue = function(value) {
|
|
if (value instanceof WrappedValue) {
|
|
return value.wrapped;
|
|
} else {
|
|
return value;
|
|
}
|
|
};
|
|
ChangeDetectionUtil.changeDetectionMode = function(strategy) {
|
|
return constants_1.isDefaultChangeDetectionStrategy(strategy) ? constants_1.ChangeDetectionStrategy.CheckAlways : constants_1.ChangeDetectionStrategy.CheckOnce;
|
|
};
|
|
ChangeDetectionUtil.simpleChange = function(previousValue, currentValue) {
|
|
return _simpleChange(previousValue, currentValue);
|
|
};
|
|
ChangeDetectionUtil.isValueBlank = function(value) {
|
|
return lang_1.isBlank(value);
|
|
};
|
|
ChangeDetectionUtil.s = function(value) {
|
|
return lang_1.isPresent(value) ? "" + value : '';
|
|
};
|
|
ChangeDetectionUtil.protoByIndex = function(protos, selfIndex) {
|
|
return selfIndex < 1 ? null : protos[selfIndex - 1];
|
|
};
|
|
ChangeDetectionUtil.callPipeOnDestroy = function(selectedPipe) {
|
|
if (pipe_lifecycle_reflector_1.implementsOnDestroy(selectedPipe.pipe)) {
|
|
selectedPipe.pipe.ngOnDestroy();
|
|
}
|
|
};
|
|
ChangeDetectionUtil.bindingTarget = function(mode, elementIndex, name, unit, debug) {
|
|
return new binding_record_1.BindingTarget(mode, elementIndex, name, unit, debug);
|
|
};
|
|
ChangeDetectionUtil.directiveIndex = function(elementIndex, directiveIndex) {
|
|
return new directive_record_1.DirectiveIndex(elementIndex, directiveIndex);
|
|
};
|
|
ChangeDetectionUtil.looseNotIdentical = function(a, b) {
|
|
return !lang_1.looseIdentical(a, b);
|
|
};
|
|
ChangeDetectionUtil.devModeEqual = function(a, b) {
|
|
if (collection_1.isListLikeIterable(a) && collection_1.isListLikeIterable(b)) {
|
|
return collection_1.areIterablesEqual(a, b, ChangeDetectionUtil.devModeEqual);
|
|
} else if (!collection_1.isListLikeIterable(a) && !lang_1.isPrimitive(a) && !collection_1.isListLikeIterable(b) && !lang_1.isPrimitive(b)) {
|
|
return true;
|
|
} else {
|
|
return lang_1.looseIdentical(a, b);
|
|
}
|
|
};
|
|
ChangeDetectionUtil.uninitialized = lang_1.CONST_EXPR(new Object());
|
|
return ChangeDetectionUtil;
|
|
})();
|
|
exports.ChangeDetectionUtil = ChangeDetectionUtil;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/profile/profile", ["angular2/src/core/profile/wtf_impl"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var impl = require("angular2/src/core/profile/wtf_impl");
|
|
exports.wtfEnabled = impl.detectWTF();
|
|
function noopScope(arg0, arg1) {
|
|
return null;
|
|
}
|
|
exports.wtfCreateScope = exports.wtfEnabled ? impl.createScope : function(signature, flags) {
|
|
return noopScope;
|
|
};
|
|
exports.wtfLeave = exports.wtfEnabled ? impl.leave : function(s, r) {
|
|
return r;
|
|
};
|
|
exports.wtfStartTimeRange = exports.wtfEnabled ? impl.startTimeRange : function(rangeType, action) {
|
|
return null;
|
|
};
|
|
exports.wtfEndTimeRange = exports.wtfEnabled ? impl.endTimeRange : function(r) {
|
|
return null;
|
|
};
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/change_detection/codegen_logic_util", ["angular2/src/facade/lang", "angular2/src/core/change_detection/codegen_facade", "angular2/src/core/change_detection/proto_record", "angular2/src/facade/exceptions"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var codegen_facade_1 = require("angular2/src/core/change_detection/codegen_facade");
|
|
var proto_record_1 = require("angular2/src/core/change_detection/proto_record");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var CodegenLogicUtil = (function() {
|
|
function CodegenLogicUtil(_names, _utilName, _changeDetectorStateName) {
|
|
this._names = _names;
|
|
this._utilName = _utilName;
|
|
this._changeDetectorStateName = _changeDetectorStateName;
|
|
}
|
|
CodegenLogicUtil.prototype.genPropertyBindingEvalValue = function(protoRec) {
|
|
var _this = this;
|
|
return this._genEvalValue(protoRec, function(idx) {
|
|
return _this._names.getLocalName(idx);
|
|
}, this._names.getLocalsAccessorName());
|
|
};
|
|
CodegenLogicUtil.prototype.genEventBindingEvalValue = function(eventRecord, protoRec) {
|
|
var _this = this;
|
|
return this._genEvalValue(protoRec, function(idx) {
|
|
return _this._names.getEventLocalName(eventRecord, idx);
|
|
}, "locals");
|
|
};
|
|
CodegenLogicUtil.prototype._genEvalValue = function(protoRec, getLocalName, localsAccessor) {
|
|
var context = (protoRec.contextIndex == -1) ? this._names.getDirectiveName(protoRec.directiveIndex) : getLocalName(protoRec.contextIndex);
|
|
var argString = protoRec.args.map(function(arg) {
|
|
return getLocalName(arg);
|
|
}).join(", ");
|
|
var rhs;
|
|
switch (protoRec.mode) {
|
|
case proto_record_1.RecordType.Self:
|
|
rhs = context;
|
|
break;
|
|
case proto_record_1.RecordType.Const:
|
|
rhs = codegen_facade_1.codify(protoRec.funcOrValue);
|
|
break;
|
|
case proto_record_1.RecordType.PropertyRead:
|
|
rhs = context + "." + protoRec.name;
|
|
break;
|
|
case proto_record_1.RecordType.SafeProperty:
|
|
var read = context + "." + protoRec.name;
|
|
rhs = this._utilName + ".isValueBlank(" + context + ") ? null : " + read;
|
|
break;
|
|
case proto_record_1.RecordType.PropertyWrite:
|
|
rhs = context + "." + protoRec.name + " = " + getLocalName(protoRec.args[0]);
|
|
break;
|
|
case proto_record_1.RecordType.Local:
|
|
rhs = localsAccessor + ".get(" + codegen_facade_1.rawString(protoRec.name) + ")";
|
|
break;
|
|
case proto_record_1.RecordType.InvokeMethod:
|
|
rhs = context + "." + protoRec.name + "(" + argString + ")";
|
|
break;
|
|
case proto_record_1.RecordType.SafeMethodInvoke:
|
|
var invoke = context + "." + protoRec.name + "(" + argString + ")";
|
|
rhs = this._utilName + ".isValueBlank(" + context + ") ? null : " + invoke;
|
|
break;
|
|
case proto_record_1.RecordType.InvokeClosure:
|
|
rhs = context + "(" + argString + ")";
|
|
break;
|
|
case proto_record_1.RecordType.PrimitiveOp:
|
|
rhs = this._utilName + "." + protoRec.name + "(" + argString + ")";
|
|
break;
|
|
case proto_record_1.RecordType.CollectionLiteral:
|
|
rhs = this._utilName + "." + protoRec.name + "(" + argString + ")";
|
|
break;
|
|
case proto_record_1.RecordType.Interpolate:
|
|
rhs = this._genInterpolation(protoRec);
|
|
break;
|
|
case proto_record_1.RecordType.KeyedRead:
|
|
rhs = context + "[" + getLocalName(protoRec.args[0]) + "]";
|
|
break;
|
|
case proto_record_1.RecordType.KeyedWrite:
|
|
rhs = context + "[" + getLocalName(protoRec.args[0]) + "] = " + getLocalName(protoRec.args[1]);
|
|
break;
|
|
case proto_record_1.RecordType.Chain:
|
|
rhs = "" + getLocalName(protoRec.args[protoRec.args.length - 1]);
|
|
break;
|
|
default:
|
|
throw new exceptions_1.BaseException("Unknown operation " + protoRec.mode);
|
|
}
|
|
return getLocalName(protoRec.selfIndex) + " = " + rhs + ";";
|
|
};
|
|
CodegenLogicUtil.prototype.genPropertyBindingTargets = function(propertyBindingTargets, genDebugInfo) {
|
|
var _this = this;
|
|
var bs = propertyBindingTargets.map(function(b) {
|
|
if (lang_1.isBlank(b))
|
|
return "null";
|
|
var debug = genDebugInfo ? codegen_facade_1.codify(b.debug) : "null";
|
|
return _this._utilName + ".bindingTarget(" + codegen_facade_1.codify(b.mode) + ", " + b.elementIndex + ", " + codegen_facade_1.codify(b.name) + ", " + codegen_facade_1.codify(b.unit) + ", " + debug + ")";
|
|
});
|
|
return "[" + bs.join(", ") + "]";
|
|
};
|
|
CodegenLogicUtil.prototype.genDirectiveIndices = function(directiveRecords) {
|
|
var _this = this;
|
|
var bs = directiveRecords.map(function(b) {
|
|
return (_this._utilName + ".directiveIndex(" + b.directiveIndex.elementIndex + ", " + b.directiveIndex.directiveIndex + ")");
|
|
});
|
|
return "[" + bs.join(", ") + "]";
|
|
};
|
|
CodegenLogicUtil.prototype._genInterpolation = function(protoRec) {
|
|
var iVals = [];
|
|
for (var i = 0; i < protoRec.args.length; ++i) {
|
|
iVals.push(codegen_facade_1.codify(protoRec.fixedArgs[i]));
|
|
iVals.push(this._utilName + ".s(" + this._names.getLocalName(protoRec.args[i]) + ")");
|
|
}
|
|
iVals.push(codegen_facade_1.codify(protoRec.fixedArgs[protoRec.args.length]));
|
|
return codegen_facade_1.combineGeneratedStrings(iVals);
|
|
};
|
|
CodegenLogicUtil.prototype.genHydrateDirectives = function(directiveRecords) {
|
|
var _this = this;
|
|
var res = [];
|
|
var outputCount = 0;
|
|
for (var i = 0; i < directiveRecords.length; ++i) {
|
|
var r = directiveRecords[i];
|
|
var dirVarName = this._names.getDirectiveName(r.directiveIndex);
|
|
res.push(dirVarName + " = " + this._genReadDirective(i) + ";");
|
|
if (lang_1.isPresent(r.outputs)) {
|
|
r.outputs.forEach(function(output) {
|
|
var eventHandlerExpr = _this._genEventHandler(r.directiveIndex.elementIndex, output[1]);
|
|
var statementStart = "this.outputSubscriptions[" + outputCount++ + "] = " + dirVarName + "." + output[0];
|
|
if (lang_1.IS_DART) {
|
|
res.push(statementStart + ".listen(" + eventHandlerExpr + ");");
|
|
} else {
|
|
res.push(statementStart + ".subscribe({next: " + eventHandlerExpr + "});");
|
|
}
|
|
});
|
|
}
|
|
}
|
|
if (outputCount > 0) {
|
|
var statementStart = 'this.outputSubscriptions';
|
|
if (lang_1.IS_DART) {
|
|
res.unshift(statementStart + " = new List(" + outputCount + ");");
|
|
} else {
|
|
res.unshift(statementStart + " = new Array(" + outputCount + ");");
|
|
}
|
|
}
|
|
return res.join("\n");
|
|
};
|
|
CodegenLogicUtil.prototype.genDirectivesOnDestroy = function(directiveRecords) {
|
|
var res = [];
|
|
for (var i = 0; i < directiveRecords.length; ++i) {
|
|
var r = directiveRecords[i];
|
|
if (r.callOnDestroy) {
|
|
var dirVarName = this._names.getDirectiveName(r.directiveIndex);
|
|
res.push(dirVarName + ".ngOnDestroy();");
|
|
}
|
|
}
|
|
return res.join("\n");
|
|
};
|
|
CodegenLogicUtil.prototype._genEventHandler = function(boundElementIndex, eventName) {
|
|
if (lang_1.IS_DART) {
|
|
return "(event) => this.handleEvent('" + eventName + "', " + boundElementIndex + ", event)";
|
|
} else {
|
|
return "(function(event) { return this.handleEvent('" + eventName + "', " + boundElementIndex + ", event); }).bind(this)";
|
|
}
|
|
};
|
|
CodegenLogicUtil.prototype._genReadDirective = function(index) {
|
|
return "this.getDirectiveFor(directives, " + index + ")";
|
|
};
|
|
CodegenLogicUtil.prototype.genHydrateDetectors = function(directiveRecords) {
|
|
var res = [];
|
|
for (var i = 0; i < directiveRecords.length; ++i) {
|
|
var r = directiveRecords[i];
|
|
if (!r.isDefaultChangeDetection()) {
|
|
res.push(this._names.getDetectorName(r.directiveIndex) + " = this.getDetectorFor(directives, " + i + ");");
|
|
}
|
|
}
|
|
return res.join("\n");
|
|
};
|
|
CodegenLogicUtil.prototype.genContentLifecycleCallbacks = function(directiveRecords) {
|
|
var res = [];
|
|
var eq = lang_1.IS_DART ? '==' : '===';
|
|
for (var i = directiveRecords.length - 1; i >= 0; --i) {
|
|
var dir = directiveRecords[i];
|
|
if (dir.callAfterContentInit) {
|
|
res.push("if(" + this._names.getStateName() + " " + eq + " " + this._changeDetectorStateName + ".NeverChecked) " + this._names.getDirectiveName(dir.directiveIndex) + ".ngAfterContentInit();");
|
|
}
|
|
if (dir.callAfterContentChecked) {
|
|
res.push(this._names.getDirectiveName(dir.directiveIndex) + ".ngAfterContentChecked();");
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
CodegenLogicUtil.prototype.genViewLifecycleCallbacks = function(directiveRecords) {
|
|
var res = [];
|
|
var eq = lang_1.IS_DART ? '==' : '===';
|
|
for (var i = directiveRecords.length - 1; i >= 0; --i) {
|
|
var dir = directiveRecords[i];
|
|
if (dir.callAfterViewInit) {
|
|
res.push("if(" + this._names.getStateName() + " " + eq + " " + this._changeDetectorStateName + ".NeverChecked) " + this._names.getDirectiveName(dir.directiveIndex) + ".ngAfterViewInit();");
|
|
}
|
|
if (dir.callAfterViewChecked) {
|
|
res.push(this._names.getDirectiveName(dir.directiveIndex) + ".ngAfterViewChecked();");
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
return CodegenLogicUtil;
|
|
})();
|
|
exports.CodegenLogicUtil = CodegenLogicUtil;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/zone/ng_zone", ["angular2/src/facade/async", "angular2/src/core/zone/ng_zone_impl", "angular2/src/facade/exceptions", "angular2/src/core/zone/ng_zone_impl"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var async_1 = require("angular2/src/facade/async");
|
|
var ng_zone_impl_1 = require("angular2/src/core/zone/ng_zone_impl");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var ng_zone_impl_2 = require("angular2/src/core/zone/ng_zone_impl");
|
|
exports.NgZoneError = ng_zone_impl_2.NgZoneError;
|
|
var NgZone = (function() {
|
|
function NgZone(_a) {
|
|
var _this = this;
|
|
var _b = _a.enableLongStackTrace,
|
|
enableLongStackTrace = _b === void 0 ? false : _b;
|
|
this._hasPendingMicrotasks = false;
|
|
this._hasPendingMacrotasks = false;
|
|
this._isStable = true;
|
|
this._nesting = 0;
|
|
this._onUnstable = new async_1.EventEmitter(false);
|
|
this._onMicrotaskEmpty = new async_1.EventEmitter(false);
|
|
this._onStable = new async_1.EventEmitter(false);
|
|
this._onErrorEvents = new async_1.EventEmitter(false);
|
|
this._zoneImpl = new ng_zone_impl_1.NgZoneImpl({
|
|
trace: enableLongStackTrace,
|
|
onEnter: function() {
|
|
_this._nesting++;
|
|
if (_this._isStable) {
|
|
_this._isStable = false;
|
|
_this._onUnstable.emit(null);
|
|
}
|
|
},
|
|
onLeave: function() {
|
|
_this._nesting--;
|
|
_this._checkStable();
|
|
},
|
|
setMicrotask: function(hasMicrotasks) {
|
|
_this._hasPendingMicrotasks = hasMicrotasks;
|
|
_this._checkStable();
|
|
},
|
|
setMacrotask: function(hasMacrotasks) {
|
|
_this._hasPendingMacrotasks = hasMacrotasks;
|
|
},
|
|
onError: function(error) {
|
|
return _this._onErrorEvents.emit(error);
|
|
}
|
|
});
|
|
}
|
|
NgZone.isInAngularZone = function() {
|
|
return ng_zone_impl_1.NgZoneImpl.isInAngularZone();
|
|
};
|
|
NgZone.assertInAngularZone = function() {
|
|
if (!ng_zone_impl_1.NgZoneImpl.isInAngularZone()) {
|
|
throw new exceptions_1.BaseException('Expected to be in Angular Zone, but it is not!');
|
|
}
|
|
};
|
|
NgZone.assertNotInAngularZone = function() {
|
|
if (ng_zone_impl_1.NgZoneImpl.isInAngularZone()) {
|
|
throw new exceptions_1.BaseException('Expected to not be in Angular Zone, but it is!');
|
|
}
|
|
};
|
|
NgZone.prototype._checkStable = function() {
|
|
var _this = this;
|
|
if (this._nesting == 0) {
|
|
if (!this._hasPendingMicrotasks && !this._isStable) {
|
|
try {
|
|
this._nesting++;
|
|
this._onMicrotaskEmpty.emit(null);
|
|
} finally {
|
|
this._nesting--;
|
|
if (!this._hasPendingMicrotasks) {
|
|
try {
|
|
this.runOutsideAngular(function() {
|
|
return _this._onStable.emit(null);
|
|
});
|
|
} finally {
|
|
this._isStable = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
;
|
|
Object.defineProperty(NgZone.prototype, "onUnstable", {
|
|
get: function() {
|
|
return this._onUnstable;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(NgZone.prototype, "onMicrotaskEmpty", {
|
|
get: function() {
|
|
return this._onMicrotaskEmpty;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(NgZone.prototype, "onStable", {
|
|
get: function() {
|
|
return this._onStable;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(NgZone.prototype, "onError", {
|
|
get: function() {
|
|
return this._onErrorEvents;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(NgZone.prototype, "hasPendingMicrotasks", {
|
|
get: function() {
|
|
return this._hasPendingMicrotasks;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(NgZone.prototype, "hasPendingMacrotasks", {
|
|
get: function() {
|
|
return this._hasPendingMacrotasks;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
NgZone.prototype.run = function(fn) {
|
|
return this._zoneImpl.runInner(fn);
|
|
};
|
|
NgZone.prototype.runOutsideAngular = function(fn) {
|
|
return this._zoneImpl.runOuter(fn);
|
|
};
|
|
return NgZone;
|
|
})();
|
|
exports.NgZone = NgZone;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/linker/element", ["angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/facade/collection", "angular2/src/core/di", "angular2/src/core/di/provider", "angular2/src/core/di/injector", "angular2/src/core/di/provider", "angular2/src/core/metadata/di", "angular2/src/core/linker/view_type", "angular2/src/core/linker/element_ref", "angular2/src/core/linker/view_container_ref", "angular2/src/core/linker/element_ref", "angular2/src/core/render/api", "angular2/src/core/linker/template_ref", "angular2/src/core/metadata/directives", "angular2/src/core/change_detection/change_detection", "angular2/src/core/linker/query_list", "angular2/src/core/reflection/reflection", "angular2/src/core/pipes/pipe_provider", "angular2/src/core/linker/view_container_ref"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var di_1 = require("angular2/src/core/di");
|
|
var provider_1 = require("angular2/src/core/di/provider");
|
|
var injector_1 = require("angular2/src/core/di/injector");
|
|
var provider_2 = require("angular2/src/core/di/provider");
|
|
var di_2 = require("angular2/src/core/metadata/di");
|
|
var view_type_1 = require("angular2/src/core/linker/view_type");
|
|
var element_ref_1 = require("angular2/src/core/linker/element_ref");
|
|
var view_container_ref_1 = require("angular2/src/core/linker/view_container_ref");
|
|
var element_ref_2 = require("angular2/src/core/linker/element_ref");
|
|
var api_1 = require("angular2/src/core/render/api");
|
|
var template_ref_1 = require("angular2/src/core/linker/template_ref");
|
|
var directives_1 = require("angular2/src/core/metadata/directives");
|
|
var change_detection_1 = require("angular2/src/core/change_detection/change_detection");
|
|
var query_list_1 = require("angular2/src/core/linker/query_list");
|
|
var reflection_1 = require("angular2/src/core/reflection/reflection");
|
|
var pipe_provider_1 = require("angular2/src/core/pipes/pipe_provider");
|
|
var view_container_ref_2 = require("angular2/src/core/linker/view_container_ref");
|
|
var _staticKeys;
|
|
var StaticKeys = (function() {
|
|
function StaticKeys() {
|
|
this.templateRefId = di_1.Key.get(template_ref_1.TemplateRef).id;
|
|
this.viewContainerId = di_1.Key.get(view_container_ref_1.ViewContainerRef).id;
|
|
this.changeDetectorRefId = di_1.Key.get(change_detection_1.ChangeDetectorRef).id;
|
|
this.elementRefId = di_1.Key.get(element_ref_2.ElementRef).id;
|
|
this.rendererId = di_1.Key.get(api_1.Renderer).id;
|
|
}
|
|
StaticKeys.instance = function() {
|
|
if (lang_1.isBlank(_staticKeys))
|
|
_staticKeys = new StaticKeys();
|
|
return _staticKeys;
|
|
};
|
|
return StaticKeys;
|
|
})();
|
|
exports.StaticKeys = StaticKeys;
|
|
var DirectiveDependency = (function(_super) {
|
|
__extends(DirectiveDependency, _super);
|
|
function DirectiveDependency(key, optional, lowerBoundVisibility, upperBoundVisibility, properties, attributeName, queryDecorator) {
|
|
_super.call(this, key, optional, lowerBoundVisibility, upperBoundVisibility, properties);
|
|
this.attributeName = attributeName;
|
|
this.queryDecorator = queryDecorator;
|
|
this._verify();
|
|
}
|
|
DirectiveDependency.prototype._verify = function() {
|
|
var count = 0;
|
|
if (lang_1.isPresent(this.queryDecorator))
|
|
count++;
|
|
if (lang_1.isPresent(this.attributeName))
|
|
count++;
|
|
if (count > 1)
|
|
throw new exceptions_1.BaseException('A directive injectable can contain only one of the following @Attribute or @Query.');
|
|
};
|
|
DirectiveDependency.createFrom = function(d) {
|
|
return new DirectiveDependency(d.key, d.optional, d.lowerBoundVisibility, d.upperBoundVisibility, d.properties, DirectiveDependency._attributeName(d.properties), DirectiveDependency._query(d.properties));
|
|
};
|
|
DirectiveDependency._attributeName = function(properties) {
|
|
var p = properties.find(function(p) {
|
|
return p instanceof di_2.AttributeMetadata;
|
|
});
|
|
return lang_1.isPresent(p) ? p.attributeName : null;
|
|
};
|
|
DirectiveDependency._query = function(properties) {
|
|
return properties.find(function(p) {
|
|
return p instanceof di_2.QueryMetadata;
|
|
});
|
|
};
|
|
return DirectiveDependency;
|
|
})(di_1.Dependency);
|
|
exports.DirectiveDependency = DirectiveDependency;
|
|
var DirectiveProvider = (function(_super) {
|
|
__extends(DirectiveProvider, _super);
|
|
function DirectiveProvider(key, factory, deps, isComponent, providers, viewProviders, queries) {
|
|
_super.call(this, key, [new provider_2.ResolvedFactory(factory, deps)], false);
|
|
this.isComponent = isComponent;
|
|
this.providers = providers;
|
|
this.viewProviders = viewProviders;
|
|
this.queries = queries;
|
|
}
|
|
Object.defineProperty(DirectiveProvider.prototype, "displayName", {
|
|
get: function() {
|
|
return this.key.displayName;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
DirectiveProvider.createFromType = function(type, meta) {
|
|
var provider = new di_1.Provider(type, {useClass: type});
|
|
if (lang_1.isBlank(meta)) {
|
|
meta = new directives_1.DirectiveMetadata();
|
|
}
|
|
var rb = provider_2.resolveProvider(provider);
|
|
var rf = rb.resolvedFactories[0];
|
|
var deps = rf.dependencies.map(DirectiveDependency.createFrom);
|
|
var isComponent = meta instanceof directives_1.ComponentMetadata;
|
|
var resolvedProviders = lang_1.isPresent(meta.providers) ? di_1.Injector.resolve(meta.providers) : null;
|
|
var resolvedViewProviders = meta instanceof directives_1.ComponentMetadata && lang_1.isPresent(meta.viewProviders) ? di_1.Injector.resolve(meta.viewProviders) : null;
|
|
var queries = [];
|
|
if (lang_1.isPresent(meta.queries)) {
|
|
collection_1.StringMapWrapper.forEach(meta.queries, function(meta, fieldName) {
|
|
var setter = reflection_1.reflector.setter(fieldName);
|
|
queries.push(new QueryMetadataWithSetter(setter, meta));
|
|
});
|
|
}
|
|
deps.forEach(function(d) {
|
|
if (lang_1.isPresent(d.queryDecorator)) {
|
|
queries.push(new QueryMetadataWithSetter(null, d.queryDecorator));
|
|
}
|
|
});
|
|
return new DirectiveProvider(rb.key, rf.factory, deps, isComponent, resolvedProviders, resolvedViewProviders, queries);
|
|
};
|
|
return DirectiveProvider;
|
|
})(provider_2.ResolvedProvider_);
|
|
exports.DirectiveProvider = DirectiveProvider;
|
|
var QueryMetadataWithSetter = (function() {
|
|
function QueryMetadataWithSetter(setter, metadata) {
|
|
this.setter = setter;
|
|
this.metadata = metadata;
|
|
}
|
|
return QueryMetadataWithSetter;
|
|
})();
|
|
exports.QueryMetadataWithSetter = QueryMetadataWithSetter;
|
|
function setProvidersVisibility(providers, visibility, result) {
|
|
for (var i = 0; i < providers.length; i++) {
|
|
result.set(providers[i].key.id, visibility);
|
|
}
|
|
}
|
|
var AppProtoElement = (function() {
|
|
function AppProtoElement(firstProviderIsComponent, index, attributes, pwvs, protoQueryRefs, directiveVariableBindings) {
|
|
this.firstProviderIsComponent = firstProviderIsComponent;
|
|
this.index = index;
|
|
this.attributes = attributes;
|
|
this.protoQueryRefs = protoQueryRefs;
|
|
this.directiveVariableBindings = directiveVariableBindings;
|
|
var length = pwvs.length;
|
|
if (length > 0) {
|
|
this.protoInjector = new injector_1.ProtoInjector(pwvs);
|
|
} else {
|
|
this.protoInjector = null;
|
|
this.protoQueryRefs = [];
|
|
}
|
|
}
|
|
AppProtoElement.create = function(metadataCache, index, attributes, directiveTypes, directiveVariableBindings) {
|
|
var componentDirProvider = null;
|
|
var mergedProvidersMap = new Map();
|
|
var providerVisibilityMap = new Map();
|
|
var providers = collection_1.ListWrapper.createGrowableSize(directiveTypes.length);
|
|
var protoQueryRefs = [];
|
|
for (var i = 0; i < directiveTypes.length; i++) {
|
|
var dirProvider = metadataCache.getResolvedDirectiveMetadata(directiveTypes[i]);
|
|
providers[i] = new injector_1.ProviderWithVisibility(dirProvider, dirProvider.isComponent ? injector_1.Visibility.PublicAndPrivate : injector_1.Visibility.Public);
|
|
if (dirProvider.isComponent) {
|
|
componentDirProvider = dirProvider;
|
|
} else {
|
|
if (lang_1.isPresent(dirProvider.providers)) {
|
|
provider_1.mergeResolvedProviders(dirProvider.providers, mergedProvidersMap);
|
|
setProvidersVisibility(dirProvider.providers, injector_1.Visibility.Public, providerVisibilityMap);
|
|
}
|
|
}
|
|
if (lang_1.isPresent(dirProvider.viewProviders)) {
|
|
provider_1.mergeResolvedProviders(dirProvider.viewProviders, mergedProvidersMap);
|
|
setProvidersVisibility(dirProvider.viewProviders, injector_1.Visibility.Private, providerVisibilityMap);
|
|
}
|
|
for (var queryIdx = 0; queryIdx < dirProvider.queries.length; queryIdx++) {
|
|
var q = dirProvider.queries[queryIdx];
|
|
protoQueryRefs.push(new ProtoQueryRef(i, q.setter, q.metadata));
|
|
}
|
|
}
|
|
if (lang_1.isPresent(componentDirProvider) && lang_1.isPresent(componentDirProvider.providers)) {
|
|
provider_1.mergeResolvedProviders(componentDirProvider.providers, mergedProvidersMap);
|
|
setProvidersVisibility(componentDirProvider.providers, injector_1.Visibility.Public, providerVisibilityMap);
|
|
}
|
|
mergedProvidersMap.forEach(function(provider, _) {
|
|
providers.push(new injector_1.ProviderWithVisibility(provider, providerVisibilityMap.get(provider.key.id)));
|
|
});
|
|
return new AppProtoElement(lang_1.isPresent(componentDirProvider), index, attributes, providers, protoQueryRefs, directiveVariableBindings);
|
|
};
|
|
AppProtoElement.prototype.getProviderAtIndex = function(index) {
|
|
return this.protoInjector.getProviderAtIndex(index);
|
|
};
|
|
return AppProtoElement;
|
|
})();
|
|
exports.AppProtoElement = AppProtoElement;
|
|
var _Context = (function() {
|
|
function _Context(element, componentElement, injector) {
|
|
this.element = element;
|
|
this.componentElement = componentElement;
|
|
this.injector = injector;
|
|
}
|
|
return _Context;
|
|
})();
|
|
var InjectorWithHostBoundary = (function() {
|
|
function InjectorWithHostBoundary(injector, hostInjectorBoundary) {
|
|
this.injector = injector;
|
|
this.hostInjectorBoundary = hostInjectorBoundary;
|
|
}
|
|
return InjectorWithHostBoundary;
|
|
})();
|
|
exports.InjectorWithHostBoundary = InjectorWithHostBoundary;
|
|
var AppElement = (function() {
|
|
function AppElement(proto, parentView, parent, nativeElement, embeddedViewFactory) {
|
|
var _this = this;
|
|
this.proto = proto;
|
|
this.parentView = parentView;
|
|
this.parent = parent;
|
|
this.nativeElement = nativeElement;
|
|
this.embeddedViewFactory = embeddedViewFactory;
|
|
this.nestedViews = null;
|
|
this.componentView = null;
|
|
this.ref = new element_ref_1.ElementRef_(this);
|
|
var parentInjector = lang_1.isPresent(parent) ? parent._injector : parentView.parentInjector;
|
|
if (lang_1.isPresent(this.proto.protoInjector)) {
|
|
var isBoundary;
|
|
if (lang_1.isPresent(parent) && lang_1.isPresent(parent.proto.protoInjector)) {
|
|
isBoundary = false;
|
|
} else {
|
|
isBoundary = parentView.hostInjectorBoundary;
|
|
}
|
|
this._queryStrategy = this._buildQueryStrategy();
|
|
this._injector = new di_1.Injector(this.proto.protoInjector, parentInjector, isBoundary, this, function() {
|
|
return _this._debugContext();
|
|
});
|
|
var injectorStrategy = this._injector.internalStrategy;
|
|
this._strategy = injectorStrategy instanceof injector_1.InjectorInlineStrategy ? new ElementDirectiveInlineStrategy(injectorStrategy, this) : new ElementDirectiveDynamicStrategy(injectorStrategy, this);
|
|
this._strategy.init();
|
|
} else {
|
|
this._queryStrategy = null;
|
|
this._injector = parentInjector;
|
|
this._strategy = null;
|
|
}
|
|
}
|
|
AppElement.getViewParentInjector = function(parentViewType, containerAppElement, imperativelyCreatedProviders, rootInjector) {
|
|
var parentInjector;
|
|
var hostInjectorBoundary;
|
|
switch (parentViewType) {
|
|
case view_type_1.ViewType.COMPONENT:
|
|
parentInjector = containerAppElement._injector;
|
|
hostInjectorBoundary = true;
|
|
break;
|
|
case view_type_1.ViewType.EMBEDDED:
|
|
parentInjector = lang_1.isPresent(containerAppElement.proto.protoInjector) ? containerAppElement._injector.parent : containerAppElement._injector;
|
|
hostInjectorBoundary = containerAppElement._injector.hostBoundary;
|
|
break;
|
|
case view_type_1.ViewType.HOST:
|
|
if (lang_1.isPresent(containerAppElement)) {
|
|
parentInjector = lang_1.isPresent(containerAppElement.proto.protoInjector) ? containerAppElement._injector.parent : containerAppElement._injector;
|
|
if (lang_1.isPresent(imperativelyCreatedProviders)) {
|
|
var imperativeProvidersWithVisibility = imperativelyCreatedProviders.map(function(p) {
|
|
return new injector_1.ProviderWithVisibility(p, injector_1.Visibility.Public);
|
|
});
|
|
parentInjector = new di_1.Injector(new injector_1.ProtoInjector(imperativeProvidersWithVisibility), parentInjector, true, null, null);
|
|
hostInjectorBoundary = false;
|
|
} else {
|
|
hostInjectorBoundary = containerAppElement._injector.hostBoundary;
|
|
}
|
|
} else {
|
|
parentInjector = rootInjector;
|
|
hostInjectorBoundary = true;
|
|
}
|
|
break;
|
|
}
|
|
return new InjectorWithHostBoundary(parentInjector, hostInjectorBoundary);
|
|
};
|
|
AppElement.prototype.attachComponentView = function(componentView) {
|
|
this.componentView = componentView;
|
|
};
|
|
AppElement.prototype._debugContext = function() {
|
|
var c = this.parentView.getDebugContext(this, null, null);
|
|
return lang_1.isPresent(c) ? new _Context(c.element, c.componentElement, c.injector) : null;
|
|
};
|
|
AppElement.prototype.hasVariableBinding = function(name) {
|
|
var vb = this.proto.directiveVariableBindings;
|
|
return lang_1.isPresent(vb) && collection_1.StringMapWrapper.contains(vb, name);
|
|
};
|
|
AppElement.prototype.getVariableBinding = function(name) {
|
|
var index = this.proto.directiveVariableBindings[name];
|
|
return lang_1.isPresent(index) ? this.getDirectiveAtIndex(index) : this.getElementRef();
|
|
};
|
|
AppElement.prototype.get = function(token) {
|
|
return this._injector.get(token);
|
|
};
|
|
AppElement.prototype.hasDirective = function(type) {
|
|
return lang_1.isPresent(this._injector.getOptional(type));
|
|
};
|
|
AppElement.prototype.getComponent = function() {
|
|
return lang_1.isPresent(this._strategy) ? this._strategy.getComponent() : null;
|
|
};
|
|
AppElement.prototype.getInjector = function() {
|
|
return this._injector;
|
|
};
|
|
AppElement.prototype.getElementRef = function() {
|
|
return this.ref;
|
|
};
|
|
AppElement.prototype.getViewContainerRef = function() {
|
|
return new view_container_ref_2.ViewContainerRef_(this);
|
|
};
|
|
AppElement.prototype.getTemplateRef = function() {
|
|
if (lang_1.isPresent(this.embeddedViewFactory)) {
|
|
return new template_ref_1.TemplateRef_(this.ref);
|
|
}
|
|
return null;
|
|
};
|
|
AppElement.prototype.getDependency = function(injector, provider, dep) {
|
|
if (provider instanceof DirectiveProvider) {
|
|
var dirDep = dep;
|
|
if (lang_1.isPresent(dirDep.attributeName))
|
|
return this._buildAttribute(dirDep);
|
|
if (lang_1.isPresent(dirDep.queryDecorator))
|
|
return this._queryStrategy.findQuery(dirDep.queryDecorator).list;
|
|
if (dirDep.key.id === StaticKeys.instance().changeDetectorRefId) {
|
|
if (this.proto.firstProviderIsComponent) {
|
|
return new _ComponentViewChangeDetectorRef(this);
|
|
} else {
|
|
return this.parentView.changeDetector.ref;
|
|
}
|
|
}
|
|
if (dirDep.key.id === StaticKeys.instance().elementRefId) {
|
|
return this.getElementRef();
|
|
}
|
|
if (dirDep.key.id === StaticKeys.instance().viewContainerId) {
|
|
return this.getViewContainerRef();
|
|
}
|
|
if (dirDep.key.id === StaticKeys.instance().templateRefId) {
|
|
var tr = this.getTemplateRef();
|
|
if (lang_1.isBlank(tr) && !dirDep.optional) {
|
|
throw new di_1.NoProviderError(null, dirDep.key);
|
|
}
|
|
return tr;
|
|
}
|
|
if (dirDep.key.id === StaticKeys.instance().rendererId) {
|
|
return this.parentView.renderer;
|
|
}
|
|
} else if (provider instanceof pipe_provider_1.PipeProvider) {
|
|
if (dep.key.id === StaticKeys.instance().changeDetectorRefId) {
|
|
if (this.proto.firstProviderIsComponent) {
|
|
return new _ComponentViewChangeDetectorRef(this);
|
|
} else {
|
|
return this.parentView.changeDetector;
|
|
}
|
|
}
|
|
}
|
|
return injector_1.UNDEFINED;
|
|
};
|
|
AppElement.prototype._buildAttribute = function(dep) {
|
|
var attributes = this.proto.attributes;
|
|
if (lang_1.isPresent(attributes) && collection_1.StringMapWrapper.contains(attributes, dep.attributeName)) {
|
|
return attributes[dep.attributeName];
|
|
} else {
|
|
return null;
|
|
}
|
|
};
|
|
AppElement.prototype.addDirectivesMatchingQuery = function(query, list) {
|
|
var templateRef = this.getTemplateRef();
|
|
if (query.selector === template_ref_1.TemplateRef && lang_1.isPresent(templateRef)) {
|
|
list.push(templateRef);
|
|
}
|
|
if (this._strategy != null) {
|
|
this._strategy.addDirectivesMatchingQuery(query, list);
|
|
}
|
|
};
|
|
AppElement.prototype._buildQueryStrategy = function() {
|
|
if (this.proto.protoQueryRefs.length === 0) {
|
|
return _emptyQueryStrategy;
|
|
} else if (this.proto.protoQueryRefs.length <= InlineQueryStrategy.NUMBER_OF_SUPPORTED_QUERIES) {
|
|
return new InlineQueryStrategy(this);
|
|
} else {
|
|
return new DynamicQueryStrategy(this);
|
|
}
|
|
};
|
|
AppElement.prototype.getDirectiveAtIndex = function(index) {
|
|
return this._injector.getAt(index);
|
|
};
|
|
AppElement.prototype.ngAfterViewChecked = function() {
|
|
if (lang_1.isPresent(this._queryStrategy))
|
|
this._queryStrategy.updateViewQueries();
|
|
};
|
|
AppElement.prototype.ngAfterContentChecked = function() {
|
|
if (lang_1.isPresent(this._queryStrategy))
|
|
this._queryStrategy.updateContentQueries();
|
|
};
|
|
AppElement.prototype.traverseAndSetQueriesAsDirty = function() {
|
|
var inj = this;
|
|
while (lang_1.isPresent(inj)) {
|
|
inj._setQueriesAsDirty();
|
|
if (lang_1.isBlank(inj.parent) && inj.parentView.proto.type === view_type_1.ViewType.EMBEDDED) {
|
|
inj = inj.parentView.containerAppElement;
|
|
} else {
|
|
inj = inj.parent;
|
|
}
|
|
}
|
|
};
|
|
AppElement.prototype._setQueriesAsDirty = function() {
|
|
if (lang_1.isPresent(this._queryStrategy)) {
|
|
this._queryStrategy.setContentQueriesAsDirty();
|
|
}
|
|
if (this.parentView.proto.type === view_type_1.ViewType.COMPONENT) {
|
|
this.parentView.containerAppElement._queryStrategy.setViewQueriesAsDirty();
|
|
}
|
|
};
|
|
return AppElement;
|
|
})();
|
|
exports.AppElement = AppElement;
|
|
var _EmptyQueryStrategy = (function() {
|
|
function _EmptyQueryStrategy() {}
|
|
_EmptyQueryStrategy.prototype.setContentQueriesAsDirty = function() {};
|
|
_EmptyQueryStrategy.prototype.setViewQueriesAsDirty = function() {};
|
|
_EmptyQueryStrategy.prototype.updateContentQueries = function() {};
|
|
_EmptyQueryStrategy.prototype.updateViewQueries = function() {};
|
|
_EmptyQueryStrategy.prototype.findQuery = function(query) {
|
|
throw new exceptions_1.BaseException("Cannot find query for directive " + query + ".");
|
|
};
|
|
return _EmptyQueryStrategy;
|
|
})();
|
|
var _emptyQueryStrategy = new _EmptyQueryStrategy();
|
|
var InlineQueryStrategy = (function() {
|
|
function InlineQueryStrategy(ei) {
|
|
var protoRefs = ei.proto.protoQueryRefs;
|
|
if (protoRefs.length > 0)
|
|
this.query0 = new QueryRef(protoRefs[0], ei);
|
|
if (protoRefs.length > 1)
|
|
this.query1 = new QueryRef(protoRefs[1], ei);
|
|
if (protoRefs.length > 2)
|
|
this.query2 = new QueryRef(protoRefs[2], ei);
|
|
}
|
|
InlineQueryStrategy.prototype.setContentQueriesAsDirty = function() {
|
|
if (lang_1.isPresent(this.query0) && !this.query0.isViewQuery)
|
|
this.query0.dirty = true;
|
|
if (lang_1.isPresent(this.query1) && !this.query1.isViewQuery)
|
|
this.query1.dirty = true;
|
|
if (lang_1.isPresent(this.query2) && !this.query2.isViewQuery)
|
|
this.query2.dirty = true;
|
|
};
|
|
InlineQueryStrategy.prototype.setViewQueriesAsDirty = function() {
|
|
if (lang_1.isPresent(this.query0) && this.query0.isViewQuery)
|
|
this.query0.dirty = true;
|
|
if (lang_1.isPresent(this.query1) && this.query1.isViewQuery)
|
|
this.query1.dirty = true;
|
|
if (lang_1.isPresent(this.query2) && this.query2.isViewQuery)
|
|
this.query2.dirty = true;
|
|
};
|
|
InlineQueryStrategy.prototype.updateContentQueries = function() {
|
|
if (lang_1.isPresent(this.query0) && !this.query0.isViewQuery) {
|
|
this.query0.update();
|
|
}
|
|
if (lang_1.isPresent(this.query1) && !this.query1.isViewQuery) {
|
|
this.query1.update();
|
|
}
|
|
if (lang_1.isPresent(this.query2) && !this.query2.isViewQuery) {
|
|
this.query2.update();
|
|
}
|
|
};
|
|
InlineQueryStrategy.prototype.updateViewQueries = function() {
|
|
if (lang_1.isPresent(this.query0) && this.query0.isViewQuery) {
|
|
this.query0.update();
|
|
}
|
|
if (lang_1.isPresent(this.query1) && this.query1.isViewQuery) {
|
|
this.query1.update();
|
|
}
|
|
if (lang_1.isPresent(this.query2) && this.query2.isViewQuery) {
|
|
this.query2.update();
|
|
}
|
|
};
|
|
InlineQueryStrategy.prototype.findQuery = function(query) {
|
|
if (lang_1.isPresent(this.query0) && this.query0.protoQueryRef.query === query) {
|
|
return this.query0;
|
|
}
|
|
if (lang_1.isPresent(this.query1) && this.query1.protoQueryRef.query === query) {
|
|
return this.query1;
|
|
}
|
|
if (lang_1.isPresent(this.query2) && this.query2.protoQueryRef.query === query) {
|
|
return this.query2;
|
|
}
|
|
throw new exceptions_1.BaseException("Cannot find query for directive " + query + ".");
|
|
};
|
|
InlineQueryStrategy.NUMBER_OF_SUPPORTED_QUERIES = 3;
|
|
return InlineQueryStrategy;
|
|
})();
|
|
var DynamicQueryStrategy = (function() {
|
|
function DynamicQueryStrategy(ei) {
|
|
this.queries = ei.proto.protoQueryRefs.map(function(p) {
|
|
return new QueryRef(p, ei);
|
|
});
|
|
}
|
|
DynamicQueryStrategy.prototype.setContentQueriesAsDirty = function() {
|
|
for (var i = 0; i < this.queries.length; ++i) {
|
|
var q = this.queries[i];
|
|
if (!q.isViewQuery)
|
|
q.dirty = true;
|
|
}
|
|
};
|
|
DynamicQueryStrategy.prototype.setViewQueriesAsDirty = function() {
|
|
for (var i = 0; i < this.queries.length; ++i) {
|
|
var q = this.queries[i];
|
|
if (q.isViewQuery)
|
|
q.dirty = true;
|
|
}
|
|
};
|
|
DynamicQueryStrategy.prototype.updateContentQueries = function() {
|
|
for (var i = 0; i < this.queries.length; ++i) {
|
|
var q = this.queries[i];
|
|
if (!q.isViewQuery) {
|
|
q.update();
|
|
}
|
|
}
|
|
};
|
|
DynamicQueryStrategy.prototype.updateViewQueries = function() {
|
|
for (var i = 0; i < this.queries.length; ++i) {
|
|
var q = this.queries[i];
|
|
if (q.isViewQuery) {
|
|
q.update();
|
|
}
|
|
}
|
|
};
|
|
DynamicQueryStrategy.prototype.findQuery = function(query) {
|
|
for (var i = 0; i < this.queries.length; ++i) {
|
|
var q = this.queries[i];
|
|
if (q.protoQueryRef.query === query) {
|
|
return q;
|
|
}
|
|
}
|
|
throw new exceptions_1.BaseException("Cannot find query for directive " + query + ".");
|
|
};
|
|
return DynamicQueryStrategy;
|
|
})();
|
|
var ElementDirectiveInlineStrategy = (function() {
|
|
function ElementDirectiveInlineStrategy(injectorStrategy, _ei) {
|
|
this.injectorStrategy = injectorStrategy;
|
|
this._ei = _ei;
|
|
}
|
|
ElementDirectiveInlineStrategy.prototype.init = function() {
|
|
var i = this.injectorStrategy;
|
|
var p = i.protoStrategy;
|
|
i.resetConstructionCounter();
|
|
if (p.provider0 instanceof DirectiveProvider && lang_1.isPresent(p.keyId0) && i.obj0 === injector_1.UNDEFINED)
|
|
i.obj0 = i.instantiateProvider(p.provider0, p.visibility0);
|
|
if (p.provider1 instanceof DirectiveProvider && lang_1.isPresent(p.keyId1) && i.obj1 === injector_1.UNDEFINED)
|
|
i.obj1 = i.instantiateProvider(p.provider1, p.visibility1);
|
|
if (p.provider2 instanceof DirectiveProvider && lang_1.isPresent(p.keyId2) && i.obj2 === injector_1.UNDEFINED)
|
|
i.obj2 = i.instantiateProvider(p.provider2, p.visibility2);
|
|
if (p.provider3 instanceof DirectiveProvider && lang_1.isPresent(p.keyId3) && i.obj3 === injector_1.UNDEFINED)
|
|
i.obj3 = i.instantiateProvider(p.provider3, p.visibility3);
|
|
if (p.provider4 instanceof DirectiveProvider && lang_1.isPresent(p.keyId4) && i.obj4 === injector_1.UNDEFINED)
|
|
i.obj4 = i.instantiateProvider(p.provider4, p.visibility4);
|
|
if (p.provider5 instanceof DirectiveProvider && lang_1.isPresent(p.keyId5) && i.obj5 === injector_1.UNDEFINED)
|
|
i.obj5 = i.instantiateProvider(p.provider5, p.visibility5);
|
|
if (p.provider6 instanceof DirectiveProvider && lang_1.isPresent(p.keyId6) && i.obj6 === injector_1.UNDEFINED)
|
|
i.obj6 = i.instantiateProvider(p.provider6, p.visibility6);
|
|
if (p.provider7 instanceof DirectiveProvider && lang_1.isPresent(p.keyId7) && i.obj7 === injector_1.UNDEFINED)
|
|
i.obj7 = i.instantiateProvider(p.provider7, p.visibility7);
|
|
if (p.provider8 instanceof DirectiveProvider && lang_1.isPresent(p.keyId8) && i.obj8 === injector_1.UNDEFINED)
|
|
i.obj8 = i.instantiateProvider(p.provider8, p.visibility8);
|
|
if (p.provider9 instanceof DirectiveProvider && lang_1.isPresent(p.keyId9) && i.obj9 === injector_1.UNDEFINED)
|
|
i.obj9 = i.instantiateProvider(p.provider9, p.visibility9);
|
|
};
|
|
ElementDirectiveInlineStrategy.prototype.getComponent = function() {
|
|
return this.injectorStrategy.obj0;
|
|
};
|
|
ElementDirectiveInlineStrategy.prototype.isComponentKey = function(key) {
|
|
return this._ei.proto.firstProviderIsComponent && lang_1.isPresent(key) && key.id === this.injectorStrategy.protoStrategy.keyId0;
|
|
};
|
|
ElementDirectiveInlineStrategy.prototype.addDirectivesMatchingQuery = function(query, list) {
|
|
var i = this.injectorStrategy;
|
|
var p = i.protoStrategy;
|
|
if (lang_1.isPresent(p.provider0) && p.provider0.key.token === query.selector) {
|
|
if (i.obj0 === injector_1.UNDEFINED)
|
|
i.obj0 = i.instantiateProvider(p.provider0, p.visibility0);
|
|
list.push(i.obj0);
|
|
}
|
|
if (lang_1.isPresent(p.provider1) && p.provider1.key.token === query.selector) {
|
|
if (i.obj1 === injector_1.UNDEFINED)
|
|
i.obj1 = i.instantiateProvider(p.provider1, p.visibility1);
|
|
list.push(i.obj1);
|
|
}
|
|
if (lang_1.isPresent(p.provider2) && p.provider2.key.token === query.selector) {
|
|
if (i.obj2 === injector_1.UNDEFINED)
|
|
i.obj2 = i.instantiateProvider(p.provider2, p.visibility2);
|
|
list.push(i.obj2);
|
|
}
|
|
if (lang_1.isPresent(p.provider3) && p.provider3.key.token === query.selector) {
|
|
if (i.obj3 === injector_1.UNDEFINED)
|
|
i.obj3 = i.instantiateProvider(p.provider3, p.visibility3);
|
|
list.push(i.obj3);
|
|
}
|
|
if (lang_1.isPresent(p.provider4) && p.provider4.key.token === query.selector) {
|
|
if (i.obj4 === injector_1.UNDEFINED)
|
|
i.obj4 = i.instantiateProvider(p.provider4, p.visibility4);
|
|
list.push(i.obj4);
|
|
}
|
|
if (lang_1.isPresent(p.provider5) && p.provider5.key.token === query.selector) {
|
|
if (i.obj5 === injector_1.UNDEFINED)
|
|
i.obj5 = i.instantiateProvider(p.provider5, p.visibility5);
|
|
list.push(i.obj5);
|
|
}
|
|
if (lang_1.isPresent(p.provider6) && p.provider6.key.token === query.selector) {
|
|
if (i.obj6 === injector_1.UNDEFINED)
|
|
i.obj6 = i.instantiateProvider(p.provider6, p.visibility6);
|
|
list.push(i.obj6);
|
|
}
|
|
if (lang_1.isPresent(p.provider7) && p.provider7.key.token === query.selector) {
|
|
if (i.obj7 === injector_1.UNDEFINED)
|
|
i.obj7 = i.instantiateProvider(p.provider7, p.visibility7);
|
|
list.push(i.obj7);
|
|
}
|
|
if (lang_1.isPresent(p.provider8) && p.provider8.key.token === query.selector) {
|
|
if (i.obj8 === injector_1.UNDEFINED)
|
|
i.obj8 = i.instantiateProvider(p.provider8, p.visibility8);
|
|
list.push(i.obj8);
|
|
}
|
|
if (lang_1.isPresent(p.provider9) && p.provider9.key.token === query.selector) {
|
|
if (i.obj9 === injector_1.UNDEFINED)
|
|
i.obj9 = i.instantiateProvider(p.provider9, p.visibility9);
|
|
list.push(i.obj9);
|
|
}
|
|
};
|
|
return ElementDirectiveInlineStrategy;
|
|
})();
|
|
var ElementDirectiveDynamicStrategy = (function() {
|
|
function ElementDirectiveDynamicStrategy(injectorStrategy, _ei) {
|
|
this.injectorStrategy = injectorStrategy;
|
|
this._ei = _ei;
|
|
}
|
|
ElementDirectiveDynamicStrategy.prototype.init = function() {
|
|
var inj = this.injectorStrategy;
|
|
var p = inj.protoStrategy;
|
|
inj.resetConstructionCounter();
|
|
for (var i = 0; i < p.keyIds.length; i++) {
|
|
if (p.providers[i] instanceof DirectiveProvider && lang_1.isPresent(p.keyIds[i]) && inj.objs[i] === injector_1.UNDEFINED) {
|
|
inj.objs[i] = inj.instantiateProvider(p.providers[i], p.visibilities[i]);
|
|
}
|
|
}
|
|
};
|
|
ElementDirectiveDynamicStrategy.prototype.getComponent = function() {
|
|
return this.injectorStrategy.objs[0];
|
|
};
|
|
ElementDirectiveDynamicStrategy.prototype.isComponentKey = function(key) {
|
|
var p = this.injectorStrategy.protoStrategy;
|
|
return this._ei.proto.firstProviderIsComponent && lang_1.isPresent(key) && key.id === p.keyIds[0];
|
|
};
|
|
ElementDirectiveDynamicStrategy.prototype.addDirectivesMatchingQuery = function(query, list) {
|
|
var ist = this.injectorStrategy;
|
|
var p = ist.protoStrategy;
|
|
for (var i = 0; i < p.providers.length; i++) {
|
|
if (p.providers[i].key.token === query.selector) {
|
|
if (ist.objs[i] === injector_1.UNDEFINED) {
|
|
ist.objs[i] = ist.instantiateProvider(p.providers[i], p.visibilities[i]);
|
|
}
|
|
list.push(ist.objs[i]);
|
|
}
|
|
}
|
|
};
|
|
return ElementDirectiveDynamicStrategy;
|
|
})();
|
|
var ProtoQueryRef = (function() {
|
|
function ProtoQueryRef(dirIndex, setter, query) {
|
|
this.dirIndex = dirIndex;
|
|
this.setter = setter;
|
|
this.query = query;
|
|
}
|
|
Object.defineProperty(ProtoQueryRef.prototype, "usesPropertySyntax", {
|
|
get: function() {
|
|
return lang_1.isPresent(this.setter);
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
return ProtoQueryRef;
|
|
})();
|
|
exports.ProtoQueryRef = ProtoQueryRef;
|
|
var QueryRef = (function() {
|
|
function QueryRef(protoQueryRef, originator) {
|
|
this.protoQueryRef = protoQueryRef;
|
|
this.originator = originator;
|
|
this.list = new query_list_1.QueryList();
|
|
this.dirty = true;
|
|
}
|
|
Object.defineProperty(QueryRef.prototype, "isViewQuery", {
|
|
get: function() {
|
|
return this.protoQueryRef.query.isViewQuery;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
QueryRef.prototype.update = function() {
|
|
if (!this.dirty)
|
|
return ;
|
|
this._update();
|
|
this.dirty = false;
|
|
if (this.protoQueryRef.usesPropertySyntax) {
|
|
var dir = this.originator.getDirectiveAtIndex(this.protoQueryRef.dirIndex);
|
|
if (this.protoQueryRef.query.first) {
|
|
this.protoQueryRef.setter(dir, this.list.length > 0 ? this.list.first : null);
|
|
} else {
|
|
this.protoQueryRef.setter(dir, this.list);
|
|
}
|
|
}
|
|
this.list.notifyOnChanges();
|
|
};
|
|
QueryRef.prototype._update = function() {
|
|
var aggregator = [];
|
|
if (this.protoQueryRef.query.isViewQuery) {
|
|
var nestedView = this.originator.componentView;
|
|
if (lang_1.isPresent(nestedView))
|
|
this._visitView(nestedView, aggregator);
|
|
} else {
|
|
this._visit(this.originator, aggregator);
|
|
}
|
|
this.list.reset(aggregator);
|
|
};
|
|
;
|
|
QueryRef.prototype._visit = function(inj, aggregator) {
|
|
var view = inj.parentView;
|
|
var startIdx = inj.proto.index;
|
|
for (var i = startIdx; i < view.appElements.length; i++) {
|
|
var curInj = view.appElements[i];
|
|
if (i > startIdx && (lang_1.isBlank(curInj.parent) || curInj.parent.proto.index < startIdx)) {
|
|
break;
|
|
}
|
|
if (!this.protoQueryRef.query.descendants && !(curInj.parent == this.originator || curInj == this.originator))
|
|
continue;
|
|
this._visitInjector(curInj, aggregator);
|
|
this._visitViewContainerViews(curInj.nestedViews, aggregator);
|
|
}
|
|
};
|
|
QueryRef.prototype._visitInjector = function(inj, aggregator) {
|
|
if (this.protoQueryRef.query.isVarBindingQuery) {
|
|
this._aggregateVariableBinding(inj, aggregator);
|
|
} else {
|
|
this._aggregateDirective(inj, aggregator);
|
|
}
|
|
};
|
|
QueryRef.prototype._visitViewContainerViews = function(views, aggregator) {
|
|
if (lang_1.isPresent(views)) {
|
|
for (var j = 0; j < views.length; j++) {
|
|
this._visitView(views[j], aggregator);
|
|
}
|
|
}
|
|
};
|
|
QueryRef.prototype._visitView = function(view, aggregator) {
|
|
for (var i = 0; i < view.appElements.length; i++) {
|
|
var inj = view.appElements[i];
|
|
this._visitInjector(inj, aggregator);
|
|
this._visitViewContainerViews(inj.nestedViews, aggregator);
|
|
}
|
|
};
|
|
QueryRef.prototype._aggregateVariableBinding = function(inj, aggregator) {
|
|
var vb = this.protoQueryRef.query.varBindings;
|
|
for (var i = 0; i < vb.length; ++i) {
|
|
if (inj.hasVariableBinding(vb[i])) {
|
|
aggregator.push(inj.getVariableBinding(vb[i]));
|
|
}
|
|
}
|
|
};
|
|
QueryRef.prototype._aggregateDirective = function(inj, aggregator) {
|
|
inj.addDirectivesMatchingQuery(this.protoQueryRef.query, aggregator);
|
|
};
|
|
return QueryRef;
|
|
})();
|
|
exports.QueryRef = QueryRef;
|
|
var _ComponentViewChangeDetectorRef = (function(_super) {
|
|
__extends(_ComponentViewChangeDetectorRef, _super);
|
|
function _ComponentViewChangeDetectorRef(_appElement) {
|
|
_super.call(this);
|
|
this._appElement = _appElement;
|
|
}
|
|
_ComponentViewChangeDetectorRef.prototype.markForCheck = function() {
|
|
this._appElement.componentView.changeDetector.ref.markForCheck();
|
|
};
|
|
_ComponentViewChangeDetectorRef.prototype.detach = function() {
|
|
this._appElement.componentView.changeDetector.ref.detach();
|
|
};
|
|
_ComponentViewChangeDetectorRef.prototype.detectChanges = function() {
|
|
this._appElement.componentView.changeDetector.ref.detectChanges();
|
|
};
|
|
_ComponentViewChangeDetectorRef.prototype.checkNoChanges = function() {
|
|
this._appElement.componentView.changeDetector.ref.checkNoChanges();
|
|
};
|
|
_ComponentViewChangeDetectorRef.prototype.reattach = function() {
|
|
this._appElement.componentView.changeDetector.ref.reattach();
|
|
};
|
|
return _ComponentViewChangeDetectorRef;
|
|
})(change_detection_1.ChangeDetectorRef);
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/pipes/pipes", ["angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/facade/collection", "angular2/src/core/change_detection/pipes"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var cd = require("angular2/src/core/change_detection/pipes");
|
|
var ProtoPipes = (function() {
|
|
function ProtoPipes(config) {
|
|
this.config = config;
|
|
this.config = config;
|
|
}
|
|
ProtoPipes.fromProviders = function(providers) {
|
|
var config = {};
|
|
providers.forEach(function(b) {
|
|
return config[b.name] = b;
|
|
});
|
|
return new ProtoPipes(config);
|
|
};
|
|
ProtoPipes.prototype.get = function(name) {
|
|
var provider = this.config[name];
|
|
if (lang_1.isBlank(provider))
|
|
throw new exceptions_1.BaseException("Cannot find pipe '" + name + "'.");
|
|
return provider;
|
|
};
|
|
return ProtoPipes;
|
|
})();
|
|
exports.ProtoPipes = ProtoPipes;
|
|
var Pipes = (function() {
|
|
function Pipes(proto, injector) {
|
|
this.proto = proto;
|
|
this.injector = injector;
|
|
this._config = {};
|
|
}
|
|
Pipes.prototype.get = function(name) {
|
|
var cached = collection_1.StringMapWrapper.get(this._config, name);
|
|
if (lang_1.isPresent(cached))
|
|
return cached;
|
|
var p = this.proto.get(name);
|
|
var transform = this.injector.instantiateResolved(p);
|
|
var res = new cd.SelectedPipe(transform, p.pure);
|
|
if (p.pure) {
|
|
collection_1.StringMapWrapper.set(this._config, name, res);
|
|
}
|
|
return res;
|
|
};
|
|
return Pipes;
|
|
})();
|
|
exports.Pipes = Pipes;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/linker", ["angular2/src/core/linker/directive_resolver", "angular2/src/core/linker/view_resolver", "angular2/src/core/linker/compiler", "angular2/src/core/linker/view_manager", "angular2/src/core/linker/query_list", "angular2/src/core/linker/dynamic_component_loader", "angular2/src/core/linker/element_ref", "angular2/src/core/linker/template_ref", "angular2/src/core/linker/view_ref", "angular2/src/core/linker/view_container_ref", "angular2/src/core/linker/dynamic_component_loader"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var directive_resolver_1 = require("angular2/src/core/linker/directive_resolver");
|
|
exports.DirectiveResolver = directive_resolver_1.DirectiveResolver;
|
|
var view_resolver_1 = require("angular2/src/core/linker/view_resolver");
|
|
exports.ViewResolver = view_resolver_1.ViewResolver;
|
|
var compiler_1 = require("angular2/src/core/linker/compiler");
|
|
exports.Compiler = compiler_1.Compiler;
|
|
var view_manager_1 = require("angular2/src/core/linker/view_manager");
|
|
exports.AppViewManager = view_manager_1.AppViewManager;
|
|
var query_list_1 = require("angular2/src/core/linker/query_list");
|
|
exports.QueryList = query_list_1.QueryList;
|
|
var dynamic_component_loader_1 = require("angular2/src/core/linker/dynamic_component_loader");
|
|
exports.DynamicComponentLoader = dynamic_component_loader_1.DynamicComponentLoader;
|
|
var element_ref_1 = require("angular2/src/core/linker/element_ref");
|
|
exports.ElementRef = element_ref_1.ElementRef;
|
|
var template_ref_1 = require("angular2/src/core/linker/template_ref");
|
|
exports.TemplateRef = template_ref_1.TemplateRef;
|
|
var view_ref_1 = require("angular2/src/core/linker/view_ref");
|
|
exports.EmbeddedViewRef = view_ref_1.EmbeddedViewRef;
|
|
exports.HostViewRef = view_ref_1.HostViewRef;
|
|
exports.ViewRef = view_ref_1.ViewRef;
|
|
exports.HostViewFactoryRef = view_ref_1.HostViewFactoryRef;
|
|
var view_container_ref_1 = require("angular2/src/core/linker/view_container_ref");
|
|
exports.ViewContainerRef = view_container_ref_1.ViewContainerRef;
|
|
var dynamic_component_loader_2 = require("angular2/src/core/linker/dynamic_component_loader");
|
|
exports.ComponentRef = dynamic_component_loader_2.ComponentRef;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/linker/resolved_metadata_cache", ["angular2/src/core/di", "angular2/src/facade/lang", "angular2/src/core/linker/element", "angular2/src/core/linker/directive_resolver", "angular2/src/core/pipes/pipe_provider", "angular2/src/core/linker/pipe_resolver"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var di_1 = require("angular2/src/core/di");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var element_1 = require("angular2/src/core/linker/element");
|
|
var directive_resolver_1 = require("angular2/src/core/linker/directive_resolver");
|
|
var pipe_provider_1 = require("angular2/src/core/pipes/pipe_provider");
|
|
var pipe_resolver_1 = require("angular2/src/core/linker/pipe_resolver");
|
|
var ResolvedMetadataCache = (function() {
|
|
function ResolvedMetadataCache(_directiveResolver, _pipeResolver) {
|
|
this._directiveResolver = _directiveResolver;
|
|
this._pipeResolver = _pipeResolver;
|
|
this._directiveCache = new Map();
|
|
this._pipeCache = new Map();
|
|
}
|
|
ResolvedMetadataCache.prototype.getResolvedDirectiveMetadata = function(type) {
|
|
var result = this._directiveCache.get(type);
|
|
if (lang_1.isBlank(result)) {
|
|
result = element_1.DirectiveProvider.createFromType(type, this._directiveResolver.resolve(type));
|
|
this._directiveCache.set(type, result);
|
|
}
|
|
return result;
|
|
};
|
|
ResolvedMetadataCache.prototype.getResolvedPipeMetadata = function(type) {
|
|
var result = this._pipeCache.get(type);
|
|
if (lang_1.isBlank(result)) {
|
|
result = pipe_provider_1.PipeProvider.createFromType(type, this._pipeResolver.resolve(type));
|
|
this._pipeCache.set(type, result);
|
|
}
|
|
return result;
|
|
};
|
|
ResolvedMetadataCache = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [directive_resolver_1.DirectiveResolver, pipe_resolver_1.PipeResolver])], ResolvedMetadataCache);
|
|
return ResolvedMetadataCache;
|
|
})();
|
|
exports.ResolvedMetadataCache = ResolvedMetadataCache;
|
|
exports.CODEGEN_RESOLVED_METADATA_CACHE = new ResolvedMetadataCache(directive_resolver_1.CODEGEN_DIRECTIVE_RESOLVER, pipe_resolver_1.CODEGEN_PIPE_RESOLVER);
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/pipes/date_pipe", ["angular2/src/facade/lang", "angular2/src/facade/intl", "angular2/core", "angular2/src/facade/collection", "angular2/src/common/pipes/invalid_pipe_argument_exception"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var intl_1 = require("angular2/src/facade/intl");
|
|
var core_1 = require("angular2/core");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var invalid_pipe_argument_exception_1 = require("angular2/src/common/pipes/invalid_pipe_argument_exception");
|
|
var defaultLocale = 'en-US';
|
|
var DatePipe = (function() {
|
|
function DatePipe() {}
|
|
DatePipe.prototype.transform = function(value, args) {
|
|
if (lang_1.isBlank(value))
|
|
return null;
|
|
if (!this.supports(value)) {
|
|
throw new invalid_pipe_argument_exception_1.InvalidPipeArgumentException(DatePipe, value);
|
|
}
|
|
var pattern = lang_1.isPresent(args) && args.length > 0 ? args[0] : 'mediumDate';
|
|
if (lang_1.isNumber(value)) {
|
|
value = lang_1.DateWrapper.fromMillis(value);
|
|
}
|
|
if (collection_1.StringMapWrapper.contains(DatePipe._ALIASES, pattern)) {
|
|
pattern = collection_1.StringMapWrapper.get(DatePipe._ALIASES, pattern);
|
|
}
|
|
return intl_1.DateFormatter.format(value, defaultLocale, pattern);
|
|
};
|
|
DatePipe.prototype.supports = function(obj) {
|
|
return lang_1.isDate(obj) || lang_1.isNumber(obj);
|
|
};
|
|
DatePipe._ALIASES = {
|
|
'medium': 'yMMMdjms',
|
|
'short': 'yMdjm',
|
|
'fullDate': 'yMMMMEEEEd',
|
|
'longDate': 'yMMMMd',
|
|
'mediumDate': 'yMMMd',
|
|
'shortDate': 'yMd',
|
|
'mediumTime': 'jms',
|
|
'shortTime': 'jm'
|
|
};
|
|
DatePipe = __decorate([lang_1.CONST(), core_1.Pipe({
|
|
name: 'date',
|
|
pure: true
|
|
}), core_1.Injectable(), __metadata('design:paramtypes', [])], DatePipe);
|
|
return DatePipe;
|
|
})();
|
|
exports.DatePipe = DatePipe;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/directives", ["angular2/src/common/directives/ng_class", "angular2/src/common/directives/ng_for", "angular2/src/common/directives/ng_if", "angular2/src/common/directives/ng_style", "angular2/src/common/directives/ng_switch", "angular2/src/common/directives/ng_plural", "angular2/src/common/directives/observable_list_diff", "angular2/src/common/directives/core_directives"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
function __export(m) {
|
|
for (var p in m)
|
|
if (!exports.hasOwnProperty(p))
|
|
exports[p] = m[p];
|
|
}
|
|
var ng_class_1 = require("angular2/src/common/directives/ng_class");
|
|
exports.NgClass = ng_class_1.NgClass;
|
|
var ng_for_1 = require("angular2/src/common/directives/ng_for");
|
|
exports.NgFor = ng_for_1.NgFor;
|
|
var ng_if_1 = require("angular2/src/common/directives/ng_if");
|
|
exports.NgIf = ng_if_1.NgIf;
|
|
var ng_style_1 = require("angular2/src/common/directives/ng_style");
|
|
exports.NgStyle = ng_style_1.NgStyle;
|
|
var ng_switch_1 = require("angular2/src/common/directives/ng_switch");
|
|
exports.NgSwitch = ng_switch_1.NgSwitch;
|
|
exports.NgSwitchWhen = ng_switch_1.NgSwitchWhen;
|
|
exports.NgSwitchDefault = ng_switch_1.NgSwitchDefault;
|
|
var ng_plural_1 = require("angular2/src/common/directives/ng_plural");
|
|
exports.NgPlural = ng_plural_1.NgPlural;
|
|
exports.NgPluralCase = ng_plural_1.NgPluralCase;
|
|
exports.NgLocalization = ng_plural_1.NgLocalization;
|
|
__export(require("angular2/src/common/directives/observable_list_diff"));
|
|
var core_directives_1 = require("angular2/src/common/directives/core_directives");
|
|
exports.CORE_DIRECTIVES = core_directives_1.CORE_DIRECTIVES;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/forms/directives/shared", ["angular2/src/facade/collection", "angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/common/forms/validators", "angular2/src/common/forms/directives/default_value_accessor", "angular2/src/common/forms/directives/number_value_accessor", "angular2/src/common/forms/directives/checkbox_value_accessor", "angular2/src/common/forms/directives/select_control_value_accessor", "angular2/src/common/forms/directives/radio_control_value_accessor", "angular2/src/common/forms/directives/normalize_validator"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var validators_1 = require("angular2/src/common/forms/validators");
|
|
var default_value_accessor_1 = require("angular2/src/common/forms/directives/default_value_accessor");
|
|
var number_value_accessor_1 = require("angular2/src/common/forms/directives/number_value_accessor");
|
|
var checkbox_value_accessor_1 = require("angular2/src/common/forms/directives/checkbox_value_accessor");
|
|
var select_control_value_accessor_1 = require("angular2/src/common/forms/directives/select_control_value_accessor");
|
|
var radio_control_value_accessor_1 = require("angular2/src/common/forms/directives/radio_control_value_accessor");
|
|
var normalize_validator_1 = require("angular2/src/common/forms/directives/normalize_validator");
|
|
function controlPath(name, parent) {
|
|
var p = collection_1.ListWrapper.clone(parent.path);
|
|
p.push(name);
|
|
return p;
|
|
}
|
|
exports.controlPath = controlPath;
|
|
function setUpControl(control, dir) {
|
|
if (lang_1.isBlank(control))
|
|
_throwError(dir, "Cannot find control");
|
|
if (lang_1.isBlank(dir.valueAccessor))
|
|
_throwError(dir, "No value accessor for");
|
|
control.validator = validators_1.Validators.compose([control.validator, dir.validator]);
|
|
control.asyncValidator = validators_1.Validators.composeAsync([control.asyncValidator, dir.asyncValidator]);
|
|
dir.valueAccessor.writeValue(control.value);
|
|
dir.valueAccessor.registerOnChange(function(newValue) {
|
|
dir.viewToModelUpdate(newValue);
|
|
control.updateValue(newValue, {emitModelToViewChange: false});
|
|
control.markAsDirty();
|
|
});
|
|
control.registerOnChange(function(newValue) {
|
|
return dir.valueAccessor.writeValue(newValue);
|
|
});
|
|
dir.valueAccessor.registerOnTouched(function() {
|
|
return control.markAsTouched();
|
|
});
|
|
}
|
|
exports.setUpControl = setUpControl;
|
|
function setUpControlGroup(control, dir) {
|
|
if (lang_1.isBlank(control))
|
|
_throwError(dir, "Cannot find control");
|
|
control.validator = validators_1.Validators.compose([control.validator, dir.validator]);
|
|
control.asyncValidator = validators_1.Validators.composeAsync([control.asyncValidator, dir.asyncValidator]);
|
|
}
|
|
exports.setUpControlGroup = setUpControlGroup;
|
|
function _throwError(dir, message) {
|
|
var path = dir.path.join(" -> ");
|
|
throw new exceptions_1.BaseException(message + " '" + path + "'");
|
|
}
|
|
function composeValidators(validators) {
|
|
return lang_1.isPresent(validators) ? validators_1.Validators.compose(validators.map(normalize_validator_1.normalizeValidator)) : null;
|
|
}
|
|
exports.composeValidators = composeValidators;
|
|
function composeAsyncValidators(validators) {
|
|
return lang_1.isPresent(validators) ? validators_1.Validators.composeAsync(validators.map(normalize_validator_1.normalizeAsyncValidator)) : null;
|
|
}
|
|
exports.composeAsyncValidators = composeAsyncValidators;
|
|
function isPropertyUpdated(changes, viewModel) {
|
|
if (!collection_1.StringMapWrapper.contains(changes, "model"))
|
|
return false;
|
|
var change = changes["model"];
|
|
if (change.isFirstChange())
|
|
return true;
|
|
return !lang_1.looseIdentical(viewModel, change.currentValue);
|
|
}
|
|
exports.isPropertyUpdated = isPropertyUpdated;
|
|
function selectValueAccessor(dir, valueAccessors) {
|
|
if (lang_1.isBlank(valueAccessors))
|
|
return null;
|
|
var defaultAccessor;
|
|
var builtinAccessor;
|
|
var customAccessor;
|
|
valueAccessors.forEach(function(v) {
|
|
if (lang_1.hasConstructor(v, default_value_accessor_1.DefaultValueAccessor)) {
|
|
defaultAccessor = v;
|
|
} else if (lang_1.hasConstructor(v, checkbox_value_accessor_1.CheckboxControlValueAccessor) || lang_1.hasConstructor(v, number_value_accessor_1.NumberValueAccessor) || lang_1.hasConstructor(v, select_control_value_accessor_1.SelectControlValueAccessor) || lang_1.hasConstructor(v, radio_control_value_accessor_1.RadioControlValueAccessor)) {
|
|
if (lang_1.isPresent(builtinAccessor))
|
|
_throwError(dir, "More than one built-in value accessor matches");
|
|
builtinAccessor = v;
|
|
} else {
|
|
if (lang_1.isPresent(customAccessor))
|
|
_throwError(dir, "More than one custom value accessor matches");
|
|
customAccessor = v;
|
|
}
|
|
});
|
|
if (lang_1.isPresent(customAccessor))
|
|
return customAccessor;
|
|
if (lang_1.isPresent(builtinAccessor))
|
|
return builtinAccessor;
|
|
if (lang_1.isPresent(defaultAccessor))
|
|
return defaultAccessor;
|
|
_throwError(dir, "No valid value accessor for");
|
|
return null;
|
|
}
|
|
exports.selectValueAccessor = selectValueAccessor;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/forms/directives", ["angular2/src/facade/lang", "angular2/src/common/forms/directives/ng_control_name", "angular2/src/common/forms/directives/ng_form_control", "angular2/src/common/forms/directives/ng_model", "angular2/src/common/forms/directives/ng_control_group", "angular2/src/common/forms/directives/ng_form_model", "angular2/src/common/forms/directives/ng_form", "angular2/src/common/forms/directives/default_value_accessor", "angular2/src/common/forms/directives/checkbox_value_accessor", "angular2/src/common/forms/directives/number_value_accessor", "angular2/src/common/forms/directives/radio_control_value_accessor", "angular2/src/common/forms/directives/ng_control_status", "angular2/src/common/forms/directives/select_control_value_accessor", "angular2/src/common/forms/directives/validators", "angular2/src/common/forms/directives/ng_control_name", "angular2/src/common/forms/directives/ng_form_control", "angular2/src/common/forms/directives/ng_model", "angular2/src/common/forms/directives/ng_control_group", "angular2/src/common/forms/directives/ng_form_model", "angular2/src/common/forms/directives/ng_form", "angular2/src/common/forms/directives/default_value_accessor", "angular2/src/common/forms/directives/checkbox_value_accessor", "angular2/src/common/forms/directives/radio_control_value_accessor", "angular2/src/common/forms/directives/number_value_accessor", "angular2/src/common/forms/directives/ng_control_status", "angular2/src/common/forms/directives/select_control_value_accessor", "angular2/src/common/forms/directives/validators", "angular2/src/common/forms/directives/ng_control"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var ng_control_name_1 = require("angular2/src/common/forms/directives/ng_control_name");
|
|
var ng_form_control_1 = require("angular2/src/common/forms/directives/ng_form_control");
|
|
var ng_model_1 = require("angular2/src/common/forms/directives/ng_model");
|
|
var ng_control_group_1 = require("angular2/src/common/forms/directives/ng_control_group");
|
|
var ng_form_model_1 = require("angular2/src/common/forms/directives/ng_form_model");
|
|
var ng_form_1 = require("angular2/src/common/forms/directives/ng_form");
|
|
var default_value_accessor_1 = require("angular2/src/common/forms/directives/default_value_accessor");
|
|
var checkbox_value_accessor_1 = require("angular2/src/common/forms/directives/checkbox_value_accessor");
|
|
var number_value_accessor_1 = require("angular2/src/common/forms/directives/number_value_accessor");
|
|
var radio_control_value_accessor_1 = require("angular2/src/common/forms/directives/radio_control_value_accessor");
|
|
var ng_control_status_1 = require("angular2/src/common/forms/directives/ng_control_status");
|
|
var select_control_value_accessor_1 = require("angular2/src/common/forms/directives/select_control_value_accessor");
|
|
var validators_1 = require("angular2/src/common/forms/directives/validators");
|
|
var ng_control_name_2 = require("angular2/src/common/forms/directives/ng_control_name");
|
|
exports.NgControlName = ng_control_name_2.NgControlName;
|
|
var ng_form_control_2 = require("angular2/src/common/forms/directives/ng_form_control");
|
|
exports.NgFormControl = ng_form_control_2.NgFormControl;
|
|
var ng_model_2 = require("angular2/src/common/forms/directives/ng_model");
|
|
exports.NgModel = ng_model_2.NgModel;
|
|
var ng_control_group_2 = require("angular2/src/common/forms/directives/ng_control_group");
|
|
exports.NgControlGroup = ng_control_group_2.NgControlGroup;
|
|
var ng_form_model_2 = require("angular2/src/common/forms/directives/ng_form_model");
|
|
exports.NgFormModel = ng_form_model_2.NgFormModel;
|
|
var ng_form_2 = require("angular2/src/common/forms/directives/ng_form");
|
|
exports.NgForm = ng_form_2.NgForm;
|
|
var default_value_accessor_2 = require("angular2/src/common/forms/directives/default_value_accessor");
|
|
exports.DefaultValueAccessor = default_value_accessor_2.DefaultValueAccessor;
|
|
var checkbox_value_accessor_2 = require("angular2/src/common/forms/directives/checkbox_value_accessor");
|
|
exports.CheckboxControlValueAccessor = checkbox_value_accessor_2.CheckboxControlValueAccessor;
|
|
var radio_control_value_accessor_2 = require("angular2/src/common/forms/directives/radio_control_value_accessor");
|
|
exports.RadioControlValueAccessor = radio_control_value_accessor_2.RadioControlValueAccessor;
|
|
exports.RadioButtonState = radio_control_value_accessor_2.RadioButtonState;
|
|
var number_value_accessor_2 = require("angular2/src/common/forms/directives/number_value_accessor");
|
|
exports.NumberValueAccessor = number_value_accessor_2.NumberValueAccessor;
|
|
var ng_control_status_2 = require("angular2/src/common/forms/directives/ng_control_status");
|
|
exports.NgControlStatus = ng_control_status_2.NgControlStatus;
|
|
var select_control_value_accessor_2 = require("angular2/src/common/forms/directives/select_control_value_accessor");
|
|
exports.SelectControlValueAccessor = select_control_value_accessor_2.SelectControlValueAccessor;
|
|
exports.NgSelectOption = select_control_value_accessor_2.NgSelectOption;
|
|
var validators_2 = require("angular2/src/common/forms/directives/validators");
|
|
exports.RequiredValidator = validators_2.RequiredValidator;
|
|
exports.MinLengthValidator = validators_2.MinLengthValidator;
|
|
exports.MaxLengthValidator = validators_2.MaxLengthValidator;
|
|
exports.PatternValidator = validators_2.PatternValidator;
|
|
var ng_control_1 = require("angular2/src/common/forms/directives/ng_control");
|
|
exports.NgControl = ng_control_1.NgControl;
|
|
exports.FORM_DIRECTIVES = lang_1.CONST_EXPR([ng_control_name_1.NgControlName, ng_control_group_1.NgControlGroup, ng_form_control_1.NgFormControl, ng_model_1.NgModel, ng_form_model_1.NgFormModel, ng_form_1.NgForm, select_control_value_accessor_1.NgSelectOption, default_value_accessor_1.DefaultValueAccessor, number_value_accessor_1.NumberValueAccessor, checkbox_value_accessor_1.CheckboxControlValueAccessor, select_control_value_accessor_1.SelectControlValueAccessor, radio_control_value_accessor_1.RadioControlValueAccessor, ng_control_status_1.NgControlStatus, validators_1.RequiredValidator, validators_1.MinLengthValidator, validators_1.MaxLengthValidator, validators_1.PatternValidator]);
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/web_workers/shared/serializer", ["angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/facade/collection", "angular2/src/core/render/api", "angular2/src/core/di", "angular2/src/web_workers/shared/render_store", "angular2/src/core/metadata/view", "angular2/src/web_workers/shared/serialized_types"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var api_1 = require("angular2/src/core/render/api");
|
|
var di_1 = require("angular2/src/core/di");
|
|
var render_store_1 = require("angular2/src/web_workers/shared/render_store");
|
|
var view_1 = require("angular2/src/core/metadata/view");
|
|
var serialized_types_1 = require("angular2/src/web_workers/shared/serialized_types");
|
|
exports.PRIMITIVE = String;
|
|
var Serializer = (function() {
|
|
function Serializer(_renderStore) {
|
|
this._renderStore = _renderStore;
|
|
}
|
|
Serializer.prototype.serialize = function(obj, type) {
|
|
var _this = this;
|
|
if (!lang_1.isPresent(obj)) {
|
|
return null;
|
|
}
|
|
if (lang_1.isArray(obj)) {
|
|
return obj.map(function(v) {
|
|
return _this.serialize(v, type);
|
|
});
|
|
}
|
|
if (type == exports.PRIMITIVE) {
|
|
return obj;
|
|
}
|
|
if (type == RenderStoreObject) {
|
|
return this._renderStore.serialize(obj);
|
|
} else if (type === api_1.RenderComponentType) {
|
|
return this._serializeRenderComponentType(obj);
|
|
} else if (type === view_1.ViewEncapsulation) {
|
|
return lang_1.serializeEnum(obj);
|
|
} else if (type === serialized_types_1.LocationType) {
|
|
return this._serializeLocation(obj);
|
|
} else {
|
|
throw new exceptions_1.BaseException("No serializer for " + type.toString());
|
|
}
|
|
};
|
|
Serializer.prototype.deserialize = function(map, type, data) {
|
|
var _this = this;
|
|
if (!lang_1.isPresent(map)) {
|
|
return null;
|
|
}
|
|
if (lang_1.isArray(map)) {
|
|
var obj = [];
|
|
map.forEach(function(val) {
|
|
return obj.push(_this.deserialize(val, type, data));
|
|
});
|
|
return obj;
|
|
}
|
|
if (type == exports.PRIMITIVE) {
|
|
return map;
|
|
}
|
|
if (type == RenderStoreObject) {
|
|
return this._renderStore.deserialize(map);
|
|
} else if (type === api_1.RenderComponentType) {
|
|
return this._deserializeRenderComponentType(map);
|
|
} else if (type === view_1.ViewEncapsulation) {
|
|
return view_1.VIEW_ENCAPSULATION_VALUES[map];
|
|
} else if (type === serialized_types_1.LocationType) {
|
|
return this._deserializeLocation(map);
|
|
} else {
|
|
throw new exceptions_1.BaseException("No deserializer for " + type.toString());
|
|
}
|
|
};
|
|
Serializer.prototype.mapToObject = function(map, type) {
|
|
var _this = this;
|
|
var object = {};
|
|
var serialize = lang_1.isPresent(type);
|
|
map.forEach(function(value, key) {
|
|
if (serialize) {
|
|
object[key] = _this.serialize(value, type);
|
|
} else {
|
|
object[key] = value;
|
|
}
|
|
});
|
|
return object;
|
|
};
|
|
Serializer.prototype.objectToMap = function(obj, type, data) {
|
|
var _this = this;
|
|
if (lang_1.isPresent(type)) {
|
|
var map = new collection_1.Map();
|
|
collection_1.StringMapWrapper.forEach(obj, function(val, key) {
|
|
map.set(key, _this.deserialize(val, type, data));
|
|
});
|
|
return map;
|
|
} else {
|
|
return collection_1.MapWrapper.createFromStringMap(obj);
|
|
}
|
|
};
|
|
Serializer.prototype._serializeLocation = function(loc) {
|
|
return {
|
|
'href': loc.href,
|
|
'protocol': loc.protocol,
|
|
'host': loc.host,
|
|
'hostname': loc.hostname,
|
|
'port': loc.port,
|
|
'pathname': loc.pathname,
|
|
'search': loc.search,
|
|
'hash': loc.hash,
|
|
'origin': loc.origin
|
|
};
|
|
};
|
|
Serializer.prototype._deserializeLocation = function(loc) {
|
|
return new serialized_types_1.LocationType(loc['href'], loc['protocol'], loc['host'], loc['hostname'], loc['port'], loc['pathname'], loc['search'], loc['hash'], loc['origin']);
|
|
};
|
|
Serializer.prototype._serializeRenderComponentType = function(obj) {
|
|
return {
|
|
'id': obj.id,
|
|
'encapsulation': this.serialize(obj.encapsulation, view_1.ViewEncapsulation),
|
|
'styles': this.serialize(obj.styles, exports.PRIMITIVE)
|
|
};
|
|
};
|
|
Serializer.prototype._deserializeRenderComponentType = function(map) {
|
|
return new api_1.RenderComponentType(map['id'], this.deserialize(map['encapsulation'], view_1.ViewEncapsulation), this.deserialize(map['styles'], exports.PRIMITIVE));
|
|
};
|
|
Serializer = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [render_store_1.RenderStore])], Serializer);
|
|
return Serializer;
|
|
})();
|
|
exports.Serializer = Serializer;
|
|
var RenderStoreObject = (function() {
|
|
function RenderStoreObject() {}
|
|
return RenderStoreObject;
|
|
})();
|
|
exports.RenderStoreObject = RenderStoreObject;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/web_workers/worker/renderer", ["angular2/src/core/render/api", "angular2/src/web_workers/shared/client_message_broker", "angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/core/di", "angular2/src/web_workers/shared/render_store", "angular2/src/web_workers/shared/messaging_api", "angular2/src/web_workers/shared/serializer", "angular2/src/web_workers/shared/messaging_api", "angular2/src/web_workers/shared/message_bus", "angular2/src/facade/async", "angular2/src/core/metadata/view", "angular2/src/web_workers/worker/event_deserializer"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var api_1 = require("angular2/src/core/render/api");
|
|
var client_message_broker_1 = require("angular2/src/web_workers/shared/client_message_broker");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var di_1 = require("angular2/src/core/di");
|
|
var render_store_1 = require("angular2/src/web_workers/shared/render_store");
|
|
var messaging_api_1 = require("angular2/src/web_workers/shared/messaging_api");
|
|
var serializer_1 = require("angular2/src/web_workers/shared/serializer");
|
|
var messaging_api_2 = require("angular2/src/web_workers/shared/messaging_api");
|
|
var message_bus_1 = require("angular2/src/web_workers/shared/message_bus");
|
|
var async_1 = require("angular2/src/facade/async");
|
|
var view_1 = require("angular2/src/core/metadata/view");
|
|
var event_deserializer_1 = require("angular2/src/web_workers/worker/event_deserializer");
|
|
var WebWorkerRootRenderer = (function() {
|
|
function WebWorkerRootRenderer(messageBrokerFactory, bus, _serializer, _renderStore) {
|
|
var _this = this;
|
|
this._serializer = _serializer;
|
|
this._renderStore = _renderStore;
|
|
this.globalEvents = new NamedEventEmitter();
|
|
this._componentRenderers = new Map();
|
|
this._messageBroker = messageBrokerFactory.createMessageBroker(messaging_api_1.RENDERER_CHANNEL);
|
|
bus.initChannel(messaging_api_2.EVENT_CHANNEL);
|
|
var source = bus.from(messaging_api_2.EVENT_CHANNEL);
|
|
async_1.ObservableWrapper.subscribe(source, function(message) {
|
|
return _this._dispatchEvent(message);
|
|
});
|
|
}
|
|
WebWorkerRootRenderer.prototype._dispatchEvent = function(message) {
|
|
var eventName = message['eventName'];
|
|
var target = message['eventTarget'];
|
|
var event = event_deserializer_1.deserializeGenericEvent(message['event']);
|
|
if (lang_1.isPresent(target)) {
|
|
this.globalEvents.dispatchEvent(eventNameWithTarget(target, eventName), event);
|
|
} else {
|
|
var element = this._serializer.deserialize(message['element'], serializer_1.RenderStoreObject);
|
|
element.events.dispatchEvent(eventName, event);
|
|
}
|
|
};
|
|
WebWorkerRootRenderer.prototype.renderComponent = function(componentType) {
|
|
var result = this._componentRenderers.get(componentType.id);
|
|
if (lang_1.isBlank(result)) {
|
|
result = new WebWorkerRenderer(this, componentType);
|
|
this._componentRenderers.set(componentType.id, result);
|
|
var id = this._renderStore.allocateId();
|
|
this._renderStore.store(result, id);
|
|
this.runOnService('renderComponent', [new client_message_broker_1.FnArg(componentType, api_1.RenderComponentType), new client_message_broker_1.FnArg(result, serializer_1.RenderStoreObject)]);
|
|
}
|
|
return result;
|
|
};
|
|
WebWorkerRootRenderer.prototype.runOnService = function(fnName, fnArgs) {
|
|
var args = new client_message_broker_1.UiArguments(fnName, fnArgs);
|
|
this._messageBroker.runOnService(args, null);
|
|
};
|
|
WebWorkerRootRenderer.prototype.allocateNode = function() {
|
|
var result = new WebWorkerRenderNode();
|
|
var id = this._renderStore.allocateId();
|
|
this._renderStore.store(result, id);
|
|
return result;
|
|
};
|
|
WebWorkerRootRenderer.prototype.allocateId = function() {
|
|
return this._renderStore.allocateId();
|
|
};
|
|
WebWorkerRootRenderer.prototype.destroyNodes = function(nodes) {
|
|
for (var i = 0; i < nodes.length; i++) {
|
|
this._renderStore.remove(nodes[i]);
|
|
}
|
|
};
|
|
WebWorkerRootRenderer = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [client_message_broker_1.ClientMessageBrokerFactory, message_bus_1.MessageBus, serializer_1.Serializer, render_store_1.RenderStore])], WebWorkerRootRenderer);
|
|
return WebWorkerRootRenderer;
|
|
})();
|
|
exports.WebWorkerRootRenderer = WebWorkerRootRenderer;
|
|
var WebWorkerRenderer = (function() {
|
|
function WebWorkerRenderer(_rootRenderer, _componentType) {
|
|
this._rootRenderer = _rootRenderer;
|
|
this._componentType = _componentType;
|
|
}
|
|
WebWorkerRenderer.prototype.renderComponent = function(componentType) {
|
|
return this._rootRenderer.renderComponent(componentType);
|
|
};
|
|
WebWorkerRenderer.prototype._runOnService = function(fnName, fnArgs) {
|
|
var fnArgsWithRenderer = [new client_message_broker_1.FnArg(this, serializer_1.RenderStoreObject)].concat(fnArgs);
|
|
this._rootRenderer.runOnService(fnName, fnArgsWithRenderer);
|
|
};
|
|
WebWorkerRenderer.prototype.selectRootElement = function(selector) {
|
|
var node = this._rootRenderer.allocateNode();
|
|
this._runOnService('selectRootElement', [new client_message_broker_1.FnArg(selector, null), new client_message_broker_1.FnArg(node, serializer_1.RenderStoreObject)]);
|
|
return node;
|
|
};
|
|
WebWorkerRenderer.prototype.createElement = function(parentElement, name) {
|
|
var node = this._rootRenderer.allocateNode();
|
|
this._runOnService('createElement', [new client_message_broker_1.FnArg(parentElement, serializer_1.RenderStoreObject), new client_message_broker_1.FnArg(name, null), new client_message_broker_1.FnArg(node, serializer_1.RenderStoreObject)]);
|
|
return node;
|
|
};
|
|
WebWorkerRenderer.prototype.createViewRoot = function(hostElement) {
|
|
var viewRoot = this._componentType.encapsulation === view_1.ViewEncapsulation.Native ? this._rootRenderer.allocateNode() : hostElement;
|
|
this._runOnService('createViewRoot', [new client_message_broker_1.FnArg(hostElement, serializer_1.RenderStoreObject), new client_message_broker_1.FnArg(viewRoot, serializer_1.RenderStoreObject)]);
|
|
return viewRoot;
|
|
};
|
|
WebWorkerRenderer.prototype.createTemplateAnchor = function(parentElement) {
|
|
var node = this._rootRenderer.allocateNode();
|
|
this._runOnService('createTemplateAnchor', [new client_message_broker_1.FnArg(parentElement, serializer_1.RenderStoreObject), new client_message_broker_1.FnArg(node, serializer_1.RenderStoreObject)]);
|
|
return node;
|
|
};
|
|
WebWorkerRenderer.prototype.createText = function(parentElement, value) {
|
|
var node = this._rootRenderer.allocateNode();
|
|
this._runOnService('createText', [new client_message_broker_1.FnArg(parentElement, serializer_1.RenderStoreObject), new client_message_broker_1.FnArg(value, null), new client_message_broker_1.FnArg(node, serializer_1.RenderStoreObject)]);
|
|
return node;
|
|
};
|
|
WebWorkerRenderer.prototype.projectNodes = function(parentElement, nodes) {
|
|
this._runOnService('projectNodes', [new client_message_broker_1.FnArg(parentElement, serializer_1.RenderStoreObject), new client_message_broker_1.FnArg(nodes, serializer_1.RenderStoreObject)]);
|
|
};
|
|
WebWorkerRenderer.prototype.attachViewAfter = function(node, viewRootNodes) {
|
|
this._runOnService('attachViewAfter', [new client_message_broker_1.FnArg(node, serializer_1.RenderStoreObject), new client_message_broker_1.FnArg(viewRootNodes, serializer_1.RenderStoreObject)]);
|
|
};
|
|
WebWorkerRenderer.prototype.detachView = function(viewRootNodes) {
|
|
this._runOnService('detachView', [new client_message_broker_1.FnArg(viewRootNodes, serializer_1.RenderStoreObject)]);
|
|
};
|
|
WebWorkerRenderer.prototype.destroyView = function(hostElement, viewAllNodes) {
|
|
this._runOnService('destroyView', [new client_message_broker_1.FnArg(hostElement, serializer_1.RenderStoreObject), new client_message_broker_1.FnArg(viewAllNodes, serializer_1.RenderStoreObject)]);
|
|
this._rootRenderer.destroyNodes(viewAllNodes);
|
|
};
|
|
WebWorkerRenderer.prototype.setElementProperty = function(renderElement, propertyName, propertyValue) {
|
|
this._runOnService('setElementProperty', [new client_message_broker_1.FnArg(renderElement, serializer_1.RenderStoreObject), new client_message_broker_1.FnArg(propertyName, null), new client_message_broker_1.FnArg(propertyValue, null)]);
|
|
};
|
|
WebWorkerRenderer.prototype.setElementAttribute = function(renderElement, attributeName, attributeValue) {
|
|
this._runOnService('setElementAttribute', [new client_message_broker_1.FnArg(renderElement, serializer_1.RenderStoreObject), new client_message_broker_1.FnArg(attributeName, null), new client_message_broker_1.FnArg(attributeValue, null)]);
|
|
};
|
|
WebWorkerRenderer.prototype.setBindingDebugInfo = function(renderElement, propertyName, propertyValue) {
|
|
this._runOnService('setBindingDebugInfo', [new client_message_broker_1.FnArg(renderElement, serializer_1.RenderStoreObject), new client_message_broker_1.FnArg(propertyName, null), new client_message_broker_1.FnArg(propertyValue, null)]);
|
|
};
|
|
WebWorkerRenderer.prototype.setElementDebugInfo = function(renderElement, info) {};
|
|
WebWorkerRenderer.prototype.setElementClass = function(renderElement, className, isAdd) {
|
|
this._runOnService('setElementClass', [new client_message_broker_1.FnArg(renderElement, serializer_1.RenderStoreObject), new client_message_broker_1.FnArg(className, null), new client_message_broker_1.FnArg(isAdd, null)]);
|
|
};
|
|
WebWorkerRenderer.prototype.setElementStyle = function(renderElement, styleName, styleValue) {
|
|
this._runOnService('setElementStyle', [new client_message_broker_1.FnArg(renderElement, serializer_1.RenderStoreObject), new client_message_broker_1.FnArg(styleName, null), new client_message_broker_1.FnArg(styleValue, null)]);
|
|
};
|
|
WebWorkerRenderer.prototype.invokeElementMethod = function(renderElement, methodName, args) {
|
|
this._runOnService('invokeElementMethod', [new client_message_broker_1.FnArg(renderElement, serializer_1.RenderStoreObject), new client_message_broker_1.FnArg(methodName, null), new client_message_broker_1.FnArg(args, null)]);
|
|
};
|
|
WebWorkerRenderer.prototype.setText = function(renderNode, text) {
|
|
this._runOnService('setText', [new client_message_broker_1.FnArg(renderNode, serializer_1.RenderStoreObject), new client_message_broker_1.FnArg(text, null)]);
|
|
};
|
|
WebWorkerRenderer.prototype.listen = function(renderElement, name, callback) {
|
|
var _this = this;
|
|
renderElement.events.listen(name, callback);
|
|
var unlistenCallbackId = this._rootRenderer.allocateId();
|
|
this._runOnService('listen', [new client_message_broker_1.FnArg(renderElement, serializer_1.RenderStoreObject), new client_message_broker_1.FnArg(name, null), new client_message_broker_1.FnArg(unlistenCallbackId, null)]);
|
|
return function() {
|
|
renderElement.events.unlisten(name, callback);
|
|
_this._runOnService('listenDone', [new client_message_broker_1.FnArg(unlistenCallbackId, null)]);
|
|
};
|
|
};
|
|
WebWorkerRenderer.prototype.listenGlobal = function(target, name, callback) {
|
|
var _this = this;
|
|
this._rootRenderer.globalEvents.listen(eventNameWithTarget(target, name), callback);
|
|
var unlistenCallbackId = this._rootRenderer.allocateId();
|
|
this._runOnService('listenGlobal', [new client_message_broker_1.FnArg(target, null), new client_message_broker_1.FnArg(name, null), new client_message_broker_1.FnArg(unlistenCallbackId, null)]);
|
|
return function() {
|
|
_this._rootRenderer.globalEvents.unlisten(eventNameWithTarget(target, name), callback);
|
|
_this._runOnService('listenDone', [new client_message_broker_1.FnArg(unlistenCallbackId, null)]);
|
|
};
|
|
};
|
|
return WebWorkerRenderer;
|
|
})();
|
|
exports.WebWorkerRenderer = WebWorkerRenderer;
|
|
var NamedEventEmitter = (function() {
|
|
function NamedEventEmitter() {}
|
|
NamedEventEmitter.prototype._getListeners = function(eventName) {
|
|
if (lang_1.isBlank(this._listeners)) {
|
|
this._listeners = new Map();
|
|
}
|
|
var listeners = this._listeners.get(eventName);
|
|
if (lang_1.isBlank(listeners)) {
|
|
listeners = [];
|
|
this._listeners.set(eventName, listeners);
|
|
}
|
|
return listeners;
|
|
};
|
|
NamedEventEmitter.prototype.listen = function(eventName, callback) {
|
|
this._getListeners(eventName).push(callback);
|
|
};
|
|
NamedEventEmitter.prototype.unlisten = function(eventName, callback) {
|
|
collection_1.ListWrapper.remove(this._getListeners(eventName), callback);
|
|
};
|
|
NamedEventEmitter.prototype.dispatchEvent = function(eventName, event) {
|
|
var listeners = this._getListeners(eventName);
|
|
for (var i = 0; i < listeners.length; i++) {
|
|
listeners[i](event);
|
|
}
|
|
};
|
|
return NamedEventEmitter;
|
|
})();
|
|
exports.NamedEventEmitter = NamedEventEmitter;
|
|
function eventNameWithTarget(target, eventName) {
|
|
return target + ":" + eventName;
|
|
}
|
|
var WebWorkerRenderNode = (function() {
|
|
function WebWorkerRenderNode() {
|
|
this.events = new NamedEventEmitter();
|
|
}
|
|
return WebWorkerRenderNode;
|
|
})();
|
|
exports.WebWorkerRenderNode = WebWorkerRenderNode;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("parse5/lib/tokenization/preprocessor", ["parse5/lib/common/unicode"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
'use strict';
|
|
var UNICODE = require("parse5/lib/common/unicode");
|
|
var $ = UNICODE.CODE_POINTS;
|
|
function isReservedCodePoint(cp) {
|
|
return cp >= 0xD800 && cp <= 0xDFFF || cp > 0x10FFFF;
|
|
}
|
|
function isSurrogatePair(cp1, cp2) {
|
|
return cp1 >= 0xD800 && cp1 <= 0xDBFF && cp2 >= 0xDC00 && cp2 <= 0xDFFF;
|
|
}
|
|
function getSurrogatePairCodePoint(cp1, cp2) {
|
|
return (cp1 - 0xD800) * 0x400 + 0x2400 + cp2;
|
|
}
|
|
var Preprocessor = module.exports = function(html) {
|
|
this.write(html);
|
|
this.pos = this.html.charCodeAt(0) === $.BOM ? 0 : -1;
|
|
this.gapStack = [];
|
|
this.lastGapPos = -1;
|
|
this.skipNextNewLine = false;
|
|
};
|
|
Preprocessor.prototype.write = function(html) {
|
|
if (this.html) {
|
|
this.html = this.html.substring(0, this.pos + 1) + html + this.html.substring(this.pos + 1, this.html.length);
|
|
} else
|
|
this.html = html;
|
|
this.lastCharPos = this.html.length - 1;
|
|
};
|
|
Preprocessor.prototype.advanceAndPeekCodePoint = function() {
|
|
this.pos++;
|
|
if (this.pos > this.lastCharPos)
|
|
return $.EOF;
|
|
var cp = this.html.charCodeAt(this.pos);
|
|
if (this.skipNextNewLine && cp === $.LINE_FEED) {
|
|
this.skipNextNewLine = false;
|
|
this._addGap();
|
|
return this.advanceAndPeekCodePoint();
|
|
}
|
|
if (cp === $.CARRIAGE_RETURN) {
|
|
this.skipNextNewLine = true;
|
|
return $.LINE_FEED;
|
|
}
|
|
this.skipNextNewLine = false;
|
|
return cp >= 0xD800 ? this._processHighRangeCodePoint(cp) : cp;
|
|
};
|
|
Preprocessor.prototype._processHighRangeCodePoint = function(cp) {
|
|
if (this.pos !== this.lastCharPos) {
|
|
var nextCp = this.html.charCodeAt(this.pos + 1);
|
|
if (isSurrogatePair(cp, nextCp)) {
|
|
this.pos++;
|
|
cp = getSurrogatePairCodePoint(cp, nextCp);
|
|
this._addGap();
|
|
}
|
|
}
|
|
if (isReservedCodePoint(cp))
|
|
cp = $.REPLACEMENT_CHARACTER;
|
|
return cp;
|
|
};
|
|
Preprocessor.prototype._addGap = function() {
|
|
this.gapStack.push(this.lastGapPos);
|
|
this.lastGapPos = this.pos;
|
|
};
|
|
Preprocessor.prototype.retreat = function() {
|
|
if (this.pos === this.lastGapPos) {
|
|
this.lastGapPos = this.gapStack.pop();
|
|
this.pos--;
|
|
}
|
|
this.pos--;
|
|
};
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("parse5/lib/tree_construction/open_element_stack", ["parse5/lib/common/html"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
'use strict';
|
|
var HTML = require("parse5/lib/common/html");
|
|
var $ = HTML.TAG_NAMES,
|
|
NS = HTML.NAMESPACES;
|
|
function isImpliedEndTagRequired(tn) {
|
|
switch (tn.length) {
|
|
case 1:
|
|
return tn === $.P;
|
|
case 2:
|
|
return tn === $.RP || tn === $.RT || tn === $.DD || tn === $.DT || tn === $.LI;
|
|
case 6:
|
|
return tn === $.OPTION;
|
|
case 8:
|
|
return tn === $.OPTGROUP;
|
|
}
|
|
return false;
|
|
}
|
|
function isScopingElement(tn, ns) {
|
|
switch (tn.length) {
|
|
case 2:
|
|
if (tn === $.TD || tn === $.TH)
|
|
return ns === NS.HTML;
|
|
else if (tn === $.MI || tn === $.MO || tn == $.MN || tn === $.MS)
|
|
return ns === NS.MATHML;
|
|
break;
|
|
case 4:
|
|
if (tn === $.HTML)
|
|
return ns === NS.HTML;
|
|
else if (tn === $.DESC)
|
|
return ns === NS.SVG;
|
|
break;
|
|
case 5:
|
|
if (tn === $.TABLE)
|
|
return ns === NS.HTML;
|
|
else if (tn === $.MTEXT)
|
|
return ns === NS.MATHML;
|
|
else if (tn === $.TITLE)
|
|
return ns === NS.SVG;
|
|
break;
|
|
case 6:
|
|
return (tn === $.APPLET || tn === $.OBJECT) && ns === NS.HTML;
|
|
case 7:
|
|
return (tn === $.CAPTION || tn === $.MARQUEE) && ns === NS.HTML;
|
|
case 8:
|
|
return tn === $.TEMPLATE && ns === NS.HTML;
|
|
case 13:
|
|
return tn === $.FOREIGN_OBJECT && ns === NS.SVG;
|
|
case 14:
|
|
return tn === $.ANNOTATION_XML && ns === NS.MATHML;
|
|
}
|
|
return false;
|
|
}
|
|
var OpenElementStack = module.exports = function(document, treeAdapter) {
|
|
this.stackTop = -1;
|
|
this.items = [];
|
|
this.current = document;
|
|
this.currentTagName = null;
|
|
this.currentTmplContent = null;
|
|
this.tmplCount = 0;
|
|
this.treeAdapter = treeAdapter;
|
|
};
|
|
OpenElementStack.prototype._indexOf = function(element) {
|
|
var idx = -1;
|
|
for (var i = this.stackTop; i >= 0; i--) {
|
|
if (this.items[i] === element) {
|
|
idx = i;
|
|
break;
|
|
}
|
|
}
|
|
return idx;
|
|
};
|
|
OpenElementStack.prototype._isInTemplate = function() {
|
|
if (this.currentTagName !== $.TEMPLATE)
|
|
return false;
|
|
return this.treeAdapter.getNamespaceURI(this.current) === NS.HTML;
|
|
};
|
|
OpenElementStack.prototype._updateCurrentElement = function() {
|
|
this.current = this.items[this.stackTop];
|
|
this.currentTagName = this.current && this.treeAdapter.getTagName(this.current);
|
|
this.currentTmplContent = this._isInTemplate() ? this.treeAdapter.getChildNodes(this.current)[0] : null;
|
|
};
|
|
OpenElementStack.prototype.push = function(element) {
|
|
this.items[++this.stackTop] = element;
|
|
this._updateCurrentElement();
|
|
if (this._isInTemplate())
|
|
this.tmplCount++;
|
|
};
|
|
OpenElementStack.prototype.pop = function() {
|
|
this.stackTop--;
|
|
if (this.tmplCount > 0 && this._isInTemplate())
|
|
this.tmplCount--;
|
|
this._updateCurrentElement();
|
|
};
|
|
OpenElementStack.prototype.replace = function(oldElement, newElement) {
|
|
var idx = this._indexOf(oldElement);
|
|
this.items[idx] = newElement;
|
|
if (idx === this.stackTop)
|
|
this._updateCurrentElement();
|
|
};
|
|
OpenElementStack.prototype.insertAfter = function(referenceElement, newElement) {
|
|
var insertionIdx = this._indexOf(referenceElement) + 1;
|
|
this.items.splice(insertionIdx, 0, newElement);
|
|
if (insertionIdx == ++this.stackTop)
|
|
this._updateCurrentElement();
|
|
};
|
|
OpenElementStack.prototype.popUntilTagNamePopped = function(tagName) {
|
|
while (this.stackTop > -1) {
|
|
var tn = this.currentTagName;
|
|
this.pop();
|
|
if (tn === tagName)
|
|
break;
|
|
}
|
|
};
|
|
OpenElementStack.prototype.popUntilTemplatePopped = function() {
|
|
while (this.stackTop > -1) {
|
|
var tn = this.currentTagName,
|
|
ns = this.treeAdapter.getNamespaceURI(this.current);
|
|
this.pop();
|
|
if (tn === $.TEMPLATE && ns === NS.HTML)
|
|
break;
|
|
}
|
|
};
|
|
OpenElementStack.prototype.popUntilElementPopped = function(element) {
|
|
while (this.stackTop > -1) {
|
|
var poppedElement = this.current;
|
|
this.pop();
|
|
if (poppedElement === element)
|
|
break;
|
|
}
|
|
};
|
|
OpenElementStack.prototype.popUntilNumberedHeaderPopped = function() {
|
|
while (this.stackTop > -1) {
|
|
var tn = this.currentTagName;
|
|
this.pop();
|
|
if (tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6)
|
|
break;
|
|
}
|
|
};
|
|
OpenElementStack.prototype.popAllUpToHtmlElement = function() {
|
|
this.stackTop = 0;
|
|
this._updateCurrentElement();
|
|
};
|
|
OpenElementStack.prototype.clearBackToTableContext = function() {
|
|
while (this.currentTagName !== $.TABLE && this.currentTagName !== $.TEMPLATE && this.currentTagName !== $.HTML)
|
|
this.pop();
|
|
};
|
|
OpenElementStack.prototype.clearBackToTableBodyContext = function() {
|
|
while (this.currentTagName !== $.TBODY && this.currentTagName !== $.TFOOT && this.currentTagName !== $.THEAD && this.currentTagName !== $.TEMPLATE && this.currentTagName !== $.HTML) {
|
|
this.pop();
|
|
}
|
|
};
|
|
OpenElementStack.prototype.clearBackToTableRowContext = function() {
|
|
while (this.currentTagName !== $.TR && this.currentTagName !== $.TEMPLATE && this.currentTagName !== $.HTML)
|
|
this.pop();
|
|
};
|
|
OpenElementStack.prototype.remove = function(element) {
|
|
for (var i = this.stackTop; i >= 0; i--) {
|
|
if (this.items[i] === element) {
|
|
this.items.splice(i, 1);
|
|
this.stackTop--;
|
|
this._updateCurrentElement();
|
|
break;
|
|
}
|
|
}
|
|
};
|
|
OpenElementStack.prototype.tryPeekProperlyNestedBodyElement = function() {
|
|
var element = this.items[1];
|
|
return element && this.treeAdapter.getTagName(element) === $.BODY ? element : null;
|
|
};
|
|
OpenElementStack.prototype.contains = function(element) {
|
|
return this._indexOf(element) > -1;
|
|
};
|
|
OpenElementStack.prototype.getCommonAncestor = function(element) {
|
|
var elementIdx = this._indexOf(element);
|
|
return --elementIdx >= 0 ? this.items[elementIdx] : null;
|
|
};
|
|
OpenElementStack.prototype.isRootHtmlElementCurrent = function() {
|
|
return this.stackTop === 0 && this.currentTagName === $.HTML;
|
|
};
|
|
OpenElementStack.prototype.hasInScope = function(tagName) {
|
|
for (var i = this.stackTop; i >= 0; i--) {
|
|
var tn = this.treeAdapter.getTagName(this.items[i]);
|
|
if (tn === tagName)
|
|
return true;
|
|
var ns = this.treeAdapter.getNamespaceURI(this.items[i]);
|
|
if (isScopingElement(tn, ns))
|
|
return false;
|
|
}
|
|
return true;
|
|
};
|
|
OpenElementStack.prototype.hasNumberedHeaderInScope = function() {
|
|
for (var i = this.stackTop; i >= 0; i--) {
|
|
var tn = this.treeAdapter.getTagName(this.items[i]);
|
|
if (tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6)
|
|
return true;
|
|
if (isScopingElement(tn, this.treeAdapter.getNamespaceURI(this.items[i])))
|
|
return false;
|
|
}
|
|
return true;
|
|
};
|
|
OpenElementStack.prototype.hasInListItemScope = function(tagName) {
|
|
for (var i = this.stackTop; i >= 0; i--) {
|
|
var tn = this.treeAdapter.getTagName(this.items[i]);
|
|
if (tn === tagName)
|
|
return true;
|
|
var ns = this.treeAdapter.getNamespaceURI(this.items[i]);
|
|
if (((tn === $.UL || tn === $.OL) && ns === NS.HTML) || isScopingElement(tn, ns))
|
|
return false;
|
|
}
|
|
return true;
|
|
};
|
|
OpenElementStack.prototype.hasInButtonScope = function(tagName) {
|
|
for (var i = this.stackTop; i >= 0; i--) {
|
|
var tn = this.treeAdapter.getTagName(this.items[i]);
|
|
if (tn === tagName)
|
|
return true;
|
|
var ns = this.treeAdapter.getNamespaceURI(this.items[i]);
|
|
if ((tn === $.BUTTON && ns === NS.HTML) || isScopingElement(tn, ns))
|
|
return false;
|
|
}
|
|
return true;
|
|
};
|
|
OpenElementStack.prototype.hasInTableScope = function(tagName) {
|
|
for (var i = this.stackTop; i >= 0; i--) {
|
|
var tn = this.treeAdapter.getTagName(this.items[i]);
|
|
if (tn === tagName)
|
|
return true;
|
|
var ns = this.treeAdapter.getNamespaceURI(this.items[i]);
|
|
if ((tn === $.TABLE || tn === $.TEMPLATE || tn === $.HTML) && ns === NS.HTML)
|
|
return false;
|
|
}
|
|
return true;
|
|
};
|
|
OpenElementStack.prototype.hasTableBodyContextInTableScope = function() {
|
|
for (var i = this.stackTop; i >= 0; i--) {
|
|
var tn = this.treeAdapter.getTagName(this.items[i]);
|
|
if (tn === $.TBODY || tn === $.THEAD || tn === $.TFOOT)
|
|
return true;
|
|
var ns = this.treeAdapter.getNamespaceURI(this.items[i]);
|
|
if ((tn === $.TABLE || tn === $.HTML) && ns === NS.HTML)
|
|
return false;
|
|
}
|
|
return true;
|
|
};
|
|
OpenElementStack.prototype.hasInSelectScope = function(tagName) {
|
|
for (var i = this.stackTop; i >= 0; i--) {
|
|
var tn = this.treeAdapter.getTagName(this.items[i]);
|
|
if (tn === tagName)
|
|
return true;
|
|
var ns = this.treeAdapter.getNamespaceURI(this.items[i]);
|
|
if (tn !== $.OPTION && tn !== $.OPTGROUP && ns === NS.HTML)
|
|
return false;
|
|
}
|
|
return true;
|
|
};
|
|
OpenElementStack.prototype.generateImpliedEndTags = function() {
|
|
while (isImpliedEndTagRequired(this.currentTagName))
|
|
this.pop();
|
|
};
|
|
OpenElementStack.prototype.generateImpliedEndTagsWithExclusion = function(exclusionTagName) {
|
|
while (isImpliedEndTagRequired(this.currentTagName) && this.currentTagName !== exclusionTagName)
|
|
this.pop();
|
|
};
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("parse5/lib/simple_api/simple_api_parser", ["parse5/lib/tokenization/tokenizer", "parse5/lib/simple_api/tokenizer_proxy"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
'use strict';
|
|
var Tokenizer = require("parse5/lib/tokenization/tokenizer"),
|
|
TokenizerProxy = require("parse5/lib/simple_api/tokenizer_proxy");
|
|
function skip() {}
|
|
var SimpleApiParser = module.exports = function(handlers) {
|
|
this.handlers = {
|
|
doctype: handlers.doctype || skip,
|
|
startTag: handlers.startTag || skip,
|
|
endTag: handlers.endTag || skip,
|
|
text: handlers.text || skip,
|
|
comment: handlers.comment || skip
|
|
};
|
|
};
|
|
SimpleApiParser.prototype.parse = function(html) {
|
|
var token = null;
|
|
this._reset(html);
|
|
do {
|
|
token = this.tokenizerProxy.getNextToken();
|
|
if (token.type === Tokenizer.CHARACTER_TOKEN || token.type === Tokenizer.WHITESPACE_CHARACTER_TOKEN || token.type === Tokenizer.NULL_CHARACTER_TOKEN) {
|
|
this.pendingText = (this.pendingText || '') + token.chars;
|
|
} else {
|
|
this._emitPendingText();
|
|
this._handleToken(token);
|
|
}
|
|
} while (token.type !== Tokenizer.EOF_TOKEN);
|
|
};
|
|
SimpleApiParser.prototype._handleToken = function(token) {
|
|
if (token.type === Tokenizer.START_TAG_TOKEN)
|
|
this.handlers.startTag(token.tagName, token.attrs, token.selfClosing);
|
|
else if (token.type === Tokenizer.END_TAG_TOKEN)
|
|
this.handlers.endTag(token.tagName);
|
|
else if (token.type === Tokenizer.COMMENT_TOKEN)
|
|
this.handlers.comment(token.data);
|
|
else if (token.type === Tokenizer.DOCTYPE_TOKEN)
|
|
this.handlers.doctype(token.name, token.publicId, token.systemId);
|
|
};
|
|
SimpleApiParser.prototype._reset = function(html) {
|
|
this.tokenizerProxy = new TokenizerProxy(html);
|
|
this.pendingText = null;
|
|
};
|
|
SimpleApiParser.prototype._emitPendingText = function() {
|
|
if (this.pendingText !== null) {
|
|
this.handlers.text(this.pendingText);
|
|
this.pendingText = null;
|
|
}
|
|
};
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("parse5/lib/serialization/serializer", ["parse5/lib/tree_adapters/default", "parse5/lib/common/utils", "parse5/lib/common/html"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
'use strict';
|
|
var DefaultTreeAdapter = require("parse5/lib/tree_adapters/default"),
|
|
Utils = require("parse5/lib/common/utils"),
|
|
HTML = require("parse5/lib/common/html");
|
|
var $ = HTML.TAG_NAMES,
|
|
NS = HTML.NAMESPACES;
|
|
var DEFAULT_OPTIONS = {encodeHtmlEntities: true};
|
|
var AMP_REGEX = /&/g,
|
|
NBSP_REGEX = /\u00a0/g,
|
|
DOUBLE_QUOTE_REGEX = /"/g,
|
|
LT_REGEX = /</g,
|
|
GT_REGEX = />/g;
|
|
function escapeString(str, attrMode) {
|
|
str = str.replace(AMP_REGEX, '&').replace(NBSP_REGEX, ' ');
|
|
if (attrMode)
|
|
str = str.replace(DOUBLE_QUOTE_REGEX, '"');
|
|
else {
|
|
str = str.replace(LT_REGEX, '<').replace(GT_REGEX, '>');
|
|
}
|
|
return str;
|
|
}
|
|
function enquoteDoctypeId(id) {
|
|
var quote = id.indexOf('"') !== -1 ? '\'' : '"';
|
|
return quote + id + quote;
|
|
}
|
|
var Serializer = module.exports = function(treeAdapter, options) {
|
|
this.treeAdapter = treeAdapter || DefaultTreeAdapter;
|
|
this.options = Utils.mergeOptions(DEFAULT_OPTIONS, options);
|
|
};
|
|
Serializer.prototype.serialize = function(node) {
|
|
this.html = '';
|
|
this._serializeChildNodes(node);
|
|
return this.html;
|
|
};
|
|
Serializer.prototype._serializeChildNodes = function(parentNode) {
|
|
var childNodes = this.treeAdapter.getChildNodes(parentNode);
|
|
if (childNodes) {
|
|
for (var i = 0,
|
|
cnLength = childNodes.length; i < cnLength; i++) {
|
|
var currentNode = childNodes[i];
|
|
if (this.treeAdapter.isElementNode(currentNode))
|
|
this._serializeElement(currentNode);
|
|
else if (this.treeAdapter.isTextNode(currentNode))
|
|
this._serializeTextNode(currentNode);
|
|
else if (this.treeAdapter.isCommentNode(currentNode))
|
|
this._serializeCommentNode(currentNode);
|
|
else if (this.treeAdapter.isDocumentTypeNode(currentNode))
|
|
this._serializeDocumentTypeNode(currentNode);
|
|
}
|
|
}
|
|
};
|
|
Serializer.prototype._serializeElement = function(node) {
|
|
var tn = this.treeAdapter.getTagName(node),
|
|
ns = this.treeAdapter.getNamespaceURI(node),
|
|
qualifiedTn = (ns === NS.HTML || ns === NS.SVG || ns === NS.MATHML) ? tn : (ns + ':' + tn);
|
|
this.html += '<' + qualifiedTn;
|
|
this._serializeAttributes(node);
|
|
this.html += '>';
|
|
if (tn !== $.AREA && tn !== $.BASE && tn !== $.BASEFONT && tn !== $.BGSOUND && tn !== $.BR && tn !== $.BR && tn !== $.COL && tn !== $.EMBED && tn !== $.FRAME && tn !== $.HR && tn !== $.IMG && tn !== $.INPUT && tn !== $.KEYGEN && tn !== $.LINK && tn !== $.MENUITEM && tn !== $.META && tn !== $.PARAM && tn !== $.SOURCE && tn !== $.TRACK && tn !== $.WBR) {
|
|
if (tn === $.PRE || tn === $.TEXTAREA || tn === $.LISTING) {
|
|
var firstChild = this.treeAdapter.getFirstChild(node);
|
|
if (firstChild && this.treeAdapter.isTextNode(firstChild)) {
|
|
var content = this.treeAdapter.getTextNodeContent(firstChild);
|
|
if (content[0] === '\n')
|
|
this.html += '\n';
|
|
}
|
|
}
|
|
var childNodesHolder = tn === $.TEMPLATE && ns === NS.HTML ? this.treeAdapter.getChildNodes(node)[0] : node;
|
|
this._serializeChildNodes(childNodesHolder);
|
|
this.html += '</' + qualifiedTn + '>';
|
|
}
|
|
};
|
|
Serializer.prototype._serializeAttributes = function(node) {
|
|
var attrs = this.treeAdapter.getAttrList(node);
|
|
for (var i = 0,
|
|
attrsLength = attrs.length; i < attrsLength; i++) {
|
|
var attr = attrs[i],
|
|
value = this.options.encodeHtmlEntities ? escapeString(attr.value, true) : attr.value;
|
|
this.html += ' ';
|
|
if (!attr.namespace)
|
|
this.html += attr.name;
|
|
else if (attr.namespace === NS.XML)
|
|
this.html += 'xml:' + attr.name;
|
|
else if (attr.namespace === NS.XMLNS) {
|
|
if (attr.name !== 'xmlns')
|
|
this.html += 'xmlns:';
|
|
this.html += attr.name;
|
|
} else if (attr.namespace === NS.XLINK)
|
|
this.html += 'xlink:' + attr.name;
|
|
else
|
|
this.html += attr.namespace + ':' + attr.name;
|
|
this.html += '="' + value + '"';
|
|
}
|
|
};
|
|
Serializer.prototype._serializeTextNode = function(node) {
|
|
var content = this.treeAdapter.getTextNodeContent(node),
|
|
parent = this.treeAdapter.getParentNode(node),
|
|
parentTn = void 0;
|
|
if (parent && this.treeAdapter.isElementNode(parent))
|
|
parentTn = this.treeAdapter.getTagName(parent);
|
|
if (parentTn === $.STYLE || parentTn === $.SCRIPT || parentTn === $.XMP || parentTn === $.IFRAME || parentTn === $.NOEMBED || parentTn === $.NOFRAMES || parentTn === $.PLAINTEXT || parentTn === $.NOSCRIPT) {
|
|
this.html += content;
|
|
} else
|
|
this.html += this.options.encodeHtmlEntities ? escapeString(content, false) : content;
|
|
};
|
|
Serializer.prototype._serializeCommentNode = function(node) {
|
|
this.html += '<!--' + this.treeAdapter.getCommentNodeContent(node) + '-->';
|
|
};
|
|
Serializer.prototype._serializeDocumentTypeNode = function(node) {
|
|
var name = this.treeAdapter.getDocumentTypeNodeName(node),
|
|
publicId = this.treeAdapter.getDocumentTypeNodePublicId(node),
|
|
systemId = this.treeAdapter.getDocumentTypeNodeSystemId(node);
|
|
this.html += '<!DOCTYPE ' + name;
|
|
if (publicId !== null)
|
|
this.html += ' PUBLIC ' + enquoteDoctypeId(publicId);
|
|
else if (systemId !== null)
|
|
this.html += ' SYSTEM';
|
|
if (systemId !== null)
|
|
this.html += ' ' + enquoteDoctypeId(systemId);
|
|
this.html += '>';
|
|
};
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("parse5/lib/jsdom/jsdom_parser", ["parse5/lib/tree_construction/parser", "parse5/lib/jsdom/parsing_unit"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
'use strict';
|
|
var Parser = require("parse5/lib/tree_construction/parser"),
|
|
ParsingUnit = require("parse5/lib/jsdom/parsing_unit");
|
|
exports.parseDocument = function(html, treeAdapter) {
|
|
var parser = new Parser(treeAdapter),
|
|
parsingUnit = new ParsingUnit(parser);
|
|
parser._runParsingLoop = function() {
|
|
parsingUnit.parsingLoopLock = true;
|
|
while (!parsingUnit.suspended && !this.stopped)
|
|
this._iterateParsingLoop();
|
|
parsingUnit.parsingLoopLock = false;
|
|
if (this.stopped)
|
|
parsingUnit.callback(this.document);
|
|
};
|
|
process.nextTick(function() {
|
|
parser.parse(html);
|
|
});
|
|
return parsingUnit;
|
|
};
|
|
exports.parseInnerHtml = function(innerHtml, contextElement, treeAdapter) {
|
|
var parser = new Parser(treeAdapter);
|
|
return parser.parseFragment(innerHtml, contextElement);
|
|
};
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/animate/animation", ["angular2/src/facade/lang", "angular2/src/facade/math", "angular2/src/platform/dom/util", "angular2/src/facade/collection", "angular2/src/platform/dom/dom_adapter"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var math_1 = require("angular2/src/facade/math");
|
|
var util_1 = require("angular2/src/platform/dom/util");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var dom_adapter_1 = require("angular2/src/platform/dom/dom_adapter");
|
|
var Animation = (function() {
|
|
function Animation(element, data, browserDetails) {
|
|
var _this = this;
|
|
this.element = element;
|
|
this.data = data;
|
|
this.browserDetails = browserDetails;
|
|
this.callbacks = [];
|
|
this.eventClearFunctions = [];
|
|
this.completed = false;
|
|
this._stringPrefix = '';
|
|
this.startTime = lang_1.DateWrapper.toMillis(lang_1.DateWrapper.now());
|
|
this._stringPrefix = dom_adapter_1.DOM.getAnimationPrefix();
|
|
this.setup();
|
|
this.wait(function(timestamp) {
|
|
return _this.start();
|
|
});
|
|
}
|
|
Object.defineProperty(Animation.prototype, "totalTime", {
|
|
get: function() {
|
|
var delay = this.computedDelay != null ? this.computedDelay : 0;
|
|
var duration = this.computedDuration != null ? this.computedDuration : 0;
|
|
return delay + duration;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Animation.prototype.wait = function(callback) {
|
|
this.browserDetails.raf(callback, 2);
|
|
};
|
|
Animation.prototype.setup = function() {
|
|
if (this.data.fromStyles != null)
|
|
this.applyStyles(this.data.fromStyles);
|
|
if (this.data.duration != null)
|
|
this.applyStyles({'transitionDuration': this.data.duration.toString() + 'ms'});
|
|
if (this.data.delay != null)
|
|
this.applyStyles({'transitionDelay': this.data.delay.toString() + 'ms'});
|
|
};
|
|
Animation.prototype.start = function() {
|
|
this.addClasses(this.data.classesToAdd);
|
|
this.addClasses(this.data.animationClasses);
|
|
this.removeClasses(this.data.classesToRemove);
|
|
if (this.data.toStyles != null)
|
|
this.applyStyles(this.data.toStyles);
|
|
var computedStyles = dom_adapter_1.DOM.getComputedStyle(this.element);
|
|
this.computedDelay = math_1.Math.max(this.parseDurationString(computedStyles.getPropertyValue(this._stringPrefix + 'transition-delay')), this.parseDurationString(this.element.style.getPropertyValue(this._stringPrefix + 'transition-delay')));
|
|
this.computedDuration = math_1.Math.max(this.parseDurationString(computedStyles.getPropertyValue(this._stringPrefix + 'transition-duration')), this.parseDurationString(this.element.style.getPropertyValue(this._stringPrefix + 'transition-duration')));
|
|
this.addEvents();
|
|
};
|
|
Animation.prototype.applyStyles = function(styles) {
|
|
var _this = this;
|
|
collection_1.StringMapWrapper.forEach(styles, function(value, key) {
|
|
var dashCaseKey = util_1.camelCaseToDashCase(key);
|
|
if (lang_1.isPresent(dom_adapter_1.DOM.getStyle(_this.element, dashCaseKey))) {
|
|
dom_adapter_1.DOM.setStyle(_this.element, dashCaseKey, value.toString());
|
|
} else {
|
|
dom_adapter_1.DOM.setStyle(_this.element, _this._stringPrefix + dashCaseKey, value.toString());
|
|
}
|
|
});
|
|
};
|
|
Animation.prototype.addClasses = function(classes) {
|
|
for (var i = 0,
|
|
len = classes.length; i < len; i++)
|
|
dom_adapter_1.DOM.addClass(this.element, classes[i]);
|
|
};
|
|
Animation.prototype.removeClasses = function(classes) {
|
|
for (var i = 0,
|
|
len = classes.length; i < len; i++)
|
|
dom_adapter_1.DOM.removeClass(this.element, classes[i]);
|
|
};
|
|
Animation.prototype.addEvents = function() {
|
|
var _this = this;
|
|
if (this.totalTime > 0) {
|
|
this.eventClearFunctions.push(dom_adapter_1.DOM.onAndCancel(this.element, dom_adapter_1.DOM.getTransitionEnd(), function(event) {
|
|
return _this.handleAnimationEvent(event);
|
|
}));
|
|
} else {
|
|
this.handleAnimationCompleted();
|
|
}
|
|
};
|
|
Animation.prototype.handleAnimationEvent = function(event) {
|
|
var elapsedTime = math_1.Math.round(event.elapsedTime * 1000);
|
|
if (!this.browserDetails.elapsedTimeIncludesDelay)
|
|
elapsedTime += this.computedDelay;
|
|
event.stopPropagation();
|
|
if (elapsedTime >= this.totalTime)
|
|
this.handleAnimationCompleted();
|
|
};
|
|
Animation.prototype.handleAnimationCompleted = function() {
|
|
this.removeClasses(this.data.animationClasses);
|
|
this.callbacks.forEach(function(callback) {
|
|
return callback();
|
|
});
|
|
this.callbacks = [];
|
|
this.eventClearFunctions.forEach(function(fn) {
|
|
return fn();
|
|
});
|
|
this.eventClearFunctions = [];
|
|
this.completed = true;
|
|
};
|
|
Animation.prototype.onComplete = function(callback) {
|
|
if (this.completed) {
|
|
callback();
|
|
} else {
|
|
this.callbacks.push(callback);
|
|
}
|
|
return this;
|
|
};
|
|
Animation.prototype.parseDurationString = function(duration) {
|
|
var maxValue = 0;
|
|
if (duration == null || duration.length < 2) {
|
|
return maxValue;
|
|
} else if (duration.substring(duration.length - 2) == 'ms') {
|
|
var value = lang_1.NumberWrapper.parseInt(this.stripLetters(duration), 10);
|
|
if (value > maxValue)
|
|
maxValue = value;
|
|
} else if (duration.substring(duration.length - 1) == 's') {
|
|
var ms = lang_1.NumberWrapper.parseFloat(this.stripLetters(duration)) * 1000;
|
|
var value = math_1.Math.floor(ms);
|
|
if (value > maxValue)
|
|
maxValue = value;
|
|
}
|
|
return maxValue;
|
|
};
|
|
Animation.prototype.stripLetters = function(str) {
|
|
return lang_1.StringWrapper.replaceAll(str, lang_1.RegExpWrapper.create('[^0-9]+$', ''), '');
|
|
};
|
|
return Animation;
|
|
})();
|
|
exports.Animation = Animation;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/platform/dom/shared_styles_host", ["angular2/src/platform/dom/dom_adapter", "angular2/src/core/di", "angular2/src/facade/collection", "angular2/src/platform/dom/dom_tokens"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var __param = (this && this.__param) || function(paramIndex, decorator) {
|
|
return function(target, key) {
|
|
decorator(target, key, paramIndex);
|
|
};
|
|
};
|
|
var dom_adapter_1 = require("angular2/src/platform/dom/dom_adapter");
|
|
var di_1 = require("angular2/src/core/di");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var dom_tokens_1 = require("angular2/src/platform/dom/dom_tokens");
|
|
var SharedStylesHost = (function() {
|
|
function SharedStylesHost() {
|
|
this._styles = [];
|
|
this._stylesSet = new Set();
|
|
}
|
|
SharedStylesHost.prototype.addStyles = function(styles) {
|
|
var _this = this;
|
|
var additions = [];
|
|
styles.forEach(function(style) {
|
|
if (!collection_1.SetWrapper.has(_this._stylesSet, style)) {
|
|
_this._stylesSet.add(style);
|
|
_this._styles.push(style);
|
|
additions.push(style);
|
|
}
|
|
});
|
|
this.onStylesAdded(additions);
|
|
};
|
|
SharedStylesHost.prototype.onStylesAdded = function(additions) {};
|
|
SharedStylesHost.prototype.getAllStyles = function() {
|
|
return this._styles;
|
|
};
|
|
SharedStylesHost = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [])], SharedStylesHost);
|
|
return SharedStylesHost;
|
|
})();
|
|
exports.SharedStylesHost = SharedStylesHost;
|
|
var DomSharedStylesHost = (function(_super) {
|
|
__extends(DomSharedStylesHost, _super);
|
|
function DomSharedStylesHost(doc) {
|
|
_super.call(this);
|
|
this._hostNodes = new Set();
|
|
this._hostNodes.add(doc.head);
|
|
}
|
|
DomSharedStylesHost.prototype._addStylesToHost = function(styles, host) {
|
|
for (var i = 0; i < styles.length; i++) {
|
|
var style = styles[i];
|
|
dom_adapter_1.DOM.appendChild(host, dom_adapter_1.DOM.createStyleElement(style));
|
|
}
|
|
};
|
|
DomSharedStylesHost.prototype.addHost = function(hostNode) {
|
|
this._addStylesToHost(this._styles, hostNode);
|
|
this._hostNodes.add(hostNode);
|
|
};
|
|
DomSharedStylesHost.prototype.removeHost = function(hostNode) {
|
|
collection_1.SetWrapper.delete(this._hostNodes, hostNode);
|
|
};
|
|
DomSharedStylesHost.prototype.onStylesAdded = function(additions) {
|
|
var _this = this;
|
|
this._hostNodes.forEach(function(hostNode) {
|
|
_this._addStylesToHost(additions, hostNode);
|
|
});
|
|
};
|
|
DomSharedStylesHost = __decorate([di_1.Injectable(), __param(0, di_1.Inject(dom_tokens_1.DOCUMENT)), __metadata('design:paramtypes', [Object])], DomSharedStylesHost);
|
|
return DomSharedStylesHost;
|
|
})(SharedStylesHost);
|
|
exports.DomSharedStylesHost = DomSharedStylesHost;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/platform/dom/debug/ng_probe", ["angular2/src/facade/lang", "angular2/src/core/di", "angular2/src/platform/dom/dom_adapter", "angular2/src/core/debug/debug_node", "angular2/src/platform/dom/dom_renderer", "angular2/core", "angular2/src/core/debug/debug_renderer"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var di_1 = require("angular2/src/core/di");
|
|
var dom_adapter_1 = require("angular2/src/platform/dom/dom_adapter");
|
|
var debug_node_1 = require("angular2/src/core/debug/debug_node");
|
|
var dom_renderer_1 = require("angular2/src/platform/dom/dom_renderer");
|
|
var core_1 = require("angular2/core");
|
|
var debug_renderer_1 = require("angular2/src/core/debug/debug_renderer");
|
|
var CORE_TOKENS = lang_1.CONST_EXPR({
|
|
'ApplicationRef': core_1.ApplicationRef,
|
|
'NgZone': core_1.NgZone
|
|
});
|
|
var INSPECT_GLOBAL_NAME = 'ng.probe';
|
|
var CORE_TOKENS_GLOBAL_NAME = 'ng.coreTokens';
|
|
function inspectNativeElement(element) {
|
|
return debug_node_1.getDebugNode(element);
|
|
}
|
|
exports.inspectNativeElement = inspectNativeElement;
|
|
function _createConditionalRootRenderer(rootRenderer) {
|
|
if (lang_1.assertionsEnabled()) {
|
|
return _createRootRenderer(rootRenderer);
|
|
}
|
|
return rootRenderer;
|
|
}
|
|
function _createRootRenderer(rootRenderer) {
|
|
dom_adapter_1.DOM.setGlobalVar(INSPECT_GLOBAL_NAME, inspectNativeElement);
|
|
dom_adapter_1.DOM.setGlobalVar(CORE_TOKENS_GLOBAL_NAME, CORE_TOKENS);
|
|
return new debug_renderer_1.DebugDomRootRenderer(rootRenderer);
|
|
}
|
|
exports.ELEMENT_PROBE_PROVIDERS = lang_1.CONST_EXPR([new di_1.Provider(core_1.RootRenderer, {
|
|
useFactory: _createConditionalRootRenderer,
|
|
deps: [dom_renderer_1.DomRootRenderer]
|
|
})]);
|
|
exports.ELEMENT_PROBE_PROVIDERS_PROD_MODE = lang_1.CONST_EXPR([new di_1.Provider(core_1.RootRenderer, {
|
|
useFactory: _createRootRenderer,
|
|
deps: [dom_renderer_1.DomRootRenderer]
|
|
})]);
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/compiler/directive_metadata", ["angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/facade/collection", "angular2/src/core/change_detection/change_detection", "angular2/src/core/metadata/view", "angular2/src/compiler/selector", "angular2/src/compiler/util", "angular2/src/core/linker/interfaces"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var change_detection_1 = require("angular2/src/core/change_detection/change_detection");
|
|
var view_1 = require("angular2/src/core/metadata/view");
|
|
var selector_1 = require("angular2/src/compiler/selector");
|
|
var util_1 = require("angular2/src/compiler/util");
|
|
var interfaces_1 = require("angular2/src/core/linker/interfaces");
|
|
var HOST_REG_EXP = /^(?:(?:\[([^\]]+)\])|(?:\(([^\)]+)\)))$/g;
|
|
var CompileMetadataWithIdentifier = (function() {
|
|
function CompileMetadataWithIdentifier() {}
|
|
CompileMetadataWithIdentifier.fromJson = function(data) {
|
|
return _COMPILE_METADATA_FROM_JSON[data['class']](data);
|
|
};
|
|
Object.defineProperty(CompileMetadataWithIdentifier.prototype, "identifier", {
|
|
get: function() {
|
|
return exceptions_1.unimplemented();
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
return CompileMetadataWithIdentifier;
|
|
})();
|
|
exports.CompileMetadataWithIdentifier = CompileMetadataWithIdentifier;
|
|
var CompileMetadataWithType = (function(_super) {
|
|
__extends(CompileMetadataWithType, _super);
|
|
function CompileMetadataWithType() {
|
|
_super.apply(this, arguments);
|
|
}
|
|
CompileMetadataWithType.fromJson = function(data) {
|
|
return _COMPILE_METADATA_FROM_JSON[data['class']](data);
|
|
};
|
|
Object.defineProperty(CompileMetadataWithType.prototype, "type", {
|
|
get: function() {
|
|
return exceptions_1.unimplemented();
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(CompileMetadataWithType.prototype, "identifier", {
|
|
get: function() {
|
|
return exceptions_1.unimplemented();
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
return CompileMetadataWithType;
|
|
})(CompileMetadataWithIdentifier);
|
|
exports.CompileMetadataWithType = CompileMetadataWithType;
|
|
var CompileIdentifierMetadata = (function() {
|
|
function CompileIdentifierMetadata(_a) {
|
|
var _b = _a === void 0 ? {} : _a,
|
|
runtime = _b.runtime,
|
|
name = _b.name,
|
|
moduleUrl = _b.moduleUrl,
|
|
prefix = _b.prefix,
|
|
constConstructor = _b.constConstructor;
|
|
this.runtime = runtime;
|
|
this.name = name;
|
|
this.prefix = prefix;
|
|
this.moduleUrl = moduleUrl;
|
|
this.constConstructor = constConstructor;
|
|
}
|
|
CompileIdentifierMetadata.fromJson = function(data) {
|
|
return new CompileIdentifierMetadata({
|
|
name: data['name'],
|
|
prefix: data['prefix'],
|
|
moduleUrl: data['moduleUrl'],
|
|
constConstructor: data['constConstructor']
|
|
});
|
|
};
|
|
CompileIdentifierMetadata.prototype.toJson = function() {
|
|
return {
|
|
'class': 'Identifier',
|
|
'name': this.name,
|
|
'moduleUrl': this.moduleUrl,
|
|
'prefix': this.prefix,
|
|
'constConstructor': this.constConstructor
|
|
};
|
|
};
|
|
Object.defineProperty(CompileIdentifierMetadata.prototype, "identifier", {
|
|
get: function() {
|
|
return this;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
return CompileIdentifierMetadata;
|
|
})();
|
|
exports.CompileIdentifierMetadata = CompileIdentifierMetadata;
|
|
var CompileDiDependencyMetadata = (function() {
|
|
function CompileDiDependencyMetadata(_a) {
|
|
var _b = _a === void 0 ? {} : _a,
|
|
isAttribute = _b.isAttribute,
|
|
isSelf = _b.isSelf,
|
|
isHost = _b.isHost,
|
|
isSkipSelf = _b.isSkipSelf,
|
|
isOptional = _b.isOptional,
|
|
query = _b.query,
|
|
viewQuery = _b.viewQuery,
|
|
token = _b.token;
|
|
this.isAttribute = lang_1.normalizeBool(isAttribute);
|
|
this.isSelf = lang_1.normalizeBool(isSelf);
|
|
this.isHost = lang_1.normalizeBool(isHost);
|
|
this.isSkipSelf = lang_1.normalizeBool(isSkipSelf);
|
|
this.isOptional = lang_1.normalizeBool(isOptional);
|
|
this.query = query;
|
|
this.viewQuery = viewQuery;
|
|
this.token = token;
|
|
}
|
|
CompileDiDependencyMetadata.fromJson = function(data) {
|
|
return new CompileDiDependencyMetadata({
|
|
token: objFromJson(data['token'], CompileIdentifierMetadata.fromJson),
|
|
query: objFromJson(data['query'], CompileQueryMetadata.fromJson),
|
|
viewQuery: objFromJson(data['viewQuery'], CompileQueryMetadata.fromJson),
|
|
isAttribute: data['isAttribute'],
|
|
isSelf: data['isSelf'],
|
|
isHost: data['isHost'],
|
|
isSkipSelf: data['isSkipSelf'],
|
|
isOptional: data['isOptional']
|
|
});
|
|
};
|
|
CompileDiDependencyMetadata.prototype.toJson = function() {
|
|
return {
|
|
'token': objToJson(this.token),
|
|
'query': objToJson(this.query),
|
|
'viewQuery': objToJson(this.viewQuery),
|
|
'isAttribute': this.isAttribute,
|
|
'isSelf': this.isSelf,
|
|
'isHost': this.isHost,
|
|
'isSkipSelf': this.isSkipSelf,
|
|
'isOptional': this.isOptional
|
|
};
|
|
};
|
|
return CompileDiDependencyMetadata;
|
|
})();
|
|
exports.CompileDiDependencyMetadata = CompileDiDependencyMetadata;
|
|
var CompileProviderMetadata = (function() {
|
|
function CompileProviderMetadata(_a) {
|
|
var token = _a.token,
|
|
useClass = _a.useClass,
|
|
useValue = _a.useValue,
|
|
useExisting = _a.useExisting,
|
|
useFactory = _a.useFactory,
|
|
deps = _a.deps,
|
|
multi = _a.multi;
|
|
this.token = token;
|
|
this.useClass = useClass;
|
|
this.useValue = useValue;
|
|
this.useExisting = useExisting;
|
|
this.useFactory = useFactory;
|
|
this.deps = deps;
|
|
this.multi = multi;
|
|
}
|
|
CompileProviderMetadata.fromJson = function(data) {
|
|
return new CompileProviderMetadata({
|
|
token: objFromJson(data['token'], CompileIdentifierMetadata.fromJson),
|
|
useClass: objFromJson(data['useClass'], CompileTypeMetadata.fromJson)
|
|
});
|
|
};
|
|
CompileProviderMetadata.prototype.toJson = function() {
|
|
return {
|
|
'token': objToJson(this.token),
|
|
'useClass': objToJson(this.useClass)
|
|
};
|
|
};
|
|
return CompileProviderMetadata;
|
|
})();
|
|
exports.CompileProviderMetadata = CompileProviderMetadata;
|
|
var CompileFactoryMetadata = (function() {
|
|
function CompileFactoryMetadata(_a) {
|
|
var runtime = _a.runtime,
|
|
name = _a.name,
|
|
moduleUrl = _a.moduleUrl,
|
|
constConstructor = _a.constConstructor,
|
|
diDeps = _a.diDeps;
|
|
this.runtime = runtime;
|
|
this.name = name;
|
|
this.moduleUrl = moduleUrl;
|
|
this.diDeps = diDeps;
|
|
this.constConstructor = constConstructor;
|
|
}
|
|
Object.defineProperty(CompileFactoryMetadata.prototype, "identifier", {
|
|
get: function() {
|
|
return this;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
CompileFactoryMetadata.prototype.toJson = function() {
|
|
return null;
|
|
};
|
|
return CompileFactoryMetadata;
|
|
})();
|
|
exports.CompileFactoryMetadata = CompileFactoryMetadata;
|
|
var CompileTypeMetadata = (function() {
|
|
function CompileTypeMetadata(_a) {
|
|
var _b = _a === void 0 ? {} : _a,
|
|
runtime = _b.runtime,
|
|
name = _b.name,
|
|
moduleUrl = _b.moduleUrl,
|
|
prefix = _b.prefix,
|
|
isHost = _b.isHost,
|
|
constConstructor = _b.constConstructor,
|
|
diDeps = _b.diDeps;
|
|
this.runtime = runtime;
|
|
this.name = name;
|
|
this.moduleUrl = moduleUrl;
|
|
this.prefix = prefix;
|
|
this.isHost = lang_1.normalizeBool(isHost);
|
|
this.constConstructor = constConstructor;
|
|
this.diDeps = lang_1.normalizeBlank(diDeps);
|
|
}
|
|
CompileTypeMetadata.fromJson = function(data) {
|
|
return new CompileTypeMetadata({
|
|
name: data['name'],
|
|
moduleUrl: data['moduleUrl'],
|
|
prefix: data['prefix'],
|
|
isHost: data['isHost'],
|
|
constConstructor: data['constConstructor'],
|
|
diDeps: arrayFromJson(data['diDeps'], CompileDiDependencyMetadata.fromJson)
|
|
});
|
|
};
|
|
Object.defineProperty(CompileTypeMetadata.prototype, "identifier", {
|
|
get: function() {
|
|
return this;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(CompileTypeMetadata.prototype, "type", {
|
|
get: function() {
|
|
return this;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
CompileTypeMetadata.prototype.toJson = function() {
|
|
return {
|
|
'class': 'Type',
|
|
'name': this.name,
|
|
'moduleUrl': this.moduleUrl,
|
|
'prefix': this.prefix,
|
|
'isHost': this.isHost,
|
|
'constConstructor': this.constConstructor,
|
|
'diDeps': arrayToJson(this.diDeps)
|
|
};
|
|
};
|
|
return CompileTypeMetadata;
|
|
})();
|
|
exports.CompileTypeMetadata = CompileTypeMetadata;
|
|
var CompileQueryMetadata = (function() {
|
|
function CompileQueryMetadata(_a) {
|
|
var _b = _a === void 0 ? {} : _a,
|
|
selectors = _b.selectors,
|
|
descendants = _b.descendants,
|
|
first = _b.first,
|
|
propertyName = _b.propertyName;
|
|
this.selectors = selectors;
|
|
this.descendants = descendants;
|
|
this.first = lang_1.normalizeBool(first);
|
|
this.propertyName = propertyName;
|
|
}
|
|
CompileQueryMetadata.fromJson = function(data) {
|
|
return new CompileQueryMetadata({
|
|
selectors: arrayFromJson(data['selectors'], CompileIdentifierMetadata.fromJson),
|
|
descendants: data['descendants'],
|
|
first: data['first'],
|
|
propertyName: data['propertyName']
|
|
});
|
|
};
|
|
CompileQueryMetadata.prototype.toJson = function() {
|
|
return {
|
|
'selectors': arrayToJson(this.selectors),
|
|
'descendants': this.descendants,
|
|
'first': this.first,
|
|
'propertyName': this.propertyName
|
|
};
|
|
};
|
|
return CompileQueryMetadata;
|
|
})();
|
|
exports.CompileQueryMetadata = CompileQueryMetadata;
|
|
var CompileTemplateMetadata = (function() {
|
|
function CompileTemplateMetadata(_a) {
|
|
var _b = _a === void 0 ? {} : _a,
|
|
encapsulation = _b.encapsulation,
|
|
template = _b.template,
|
|
templateUrl = _b.templateUrl,
|
|
styles = _b.styles,
|
|
styleUrls = _b.styleUrls,
|
|
ngContentSelectors = _b.ngContentSelectors;
|
|
this.encapsulation = lang_1.isPresent(encapsulation) ? encapsulation : view_1.ViewEncapsulation.Emulated;
|
|
this.template = template;
|
|
this.templateUrl = templateUrl;
|
|
this.styles = lang_1.isPresent(styles) ? styles : [];
|
|
this.styleUrls = lang_1.isPresent(styleUrls) ? styleUrls : [];
|
|
this.ngContentSelectors = lang_1.isPresent(ngContentSelectors) ? ngContentSelectors : [];
|
|
}
|
|
CompileTemplateMetadata.fromJson = function(data) {
|
|
return new CompileTemplateMetadata({
|
|
encapsulation: lang_1.isPresent(data['encapsulation']) ? view_1.VIEW_ENCAPSULATION_VALUES[data['encapsulation']] : data['encapsulation'],
|
|
template: data['template'],
|
|
templateUrl: data['templateUrl'],
|
|
styles: data['styles'],
|
|
styleUrls: data['styleUrls'],
|
|
ngContentSelectors: data['ngContentSelectors']
|
|
});
|
|
};
|
|
CompileTemplateMetadata.prototype.toJson = function() {
|
|
return {
|
|
'encapsulation': lang_1.isPresent(this.encapsulation) ? lang_1.serializeEnum(this.encapsulation) : this.encapsulation,
|
|
'template': this.template,
|
|
'templateUrl': this.templateUrl,
|
|
'styles': this.styles,
|
|
'styleUrls': this.styleUrls,
|
|
'ngContentSelectors': this.ngContentSelectors
|
|
};
|
|
};
|
|
return CompileTemplateMetadata;
|
|
})();
|
|
exports.CompileTemplateMetadata = CompileTemplateMetadata;
|
|
var CompileDirectiveMetadata = (function() {
|
|
function CompileDirectiveMetadata(_a) {
|
|
var _b = _a === void 0 ? {} : _a,
|
|
type = _b.type,
|
|
isComponent = _b.isComponent,
|
|
dynamicLoadable = _b.dynamicLoadable,
|
|
selector = _b.selector,
|
|
exportAs = _b.exportAs,
|
|
changeDetection = _b.changeDetection,
|
|
inputs = _b.inputs,
|
|
outputs = _b.outputs,
|
|
hostListeners = _b.hostListeners,
|
|
hostProperties = _b.hostProperties,
|
|
hostAttributes = _b.hostAttributes,
|
|
lifecycleHooks = _b.lifecycleHooks,
|
|
providers = _b.providers,
|
|
viewProviders = _b.viewProviders,
|
|
queries = _b.queries,
|
|
viewQueries = _b.viewQueries,
|
|
template = _b.template;
|
|
this.type = type;
|
|
this.isComponent = isComponent;
|
|
this.dynamicLoadable = dynamicLoadable;
|
|
this.selector = selector;
|
|
this.exportAs = exportAs;
|
|
this.changeDetection = changeDetection;
|
|
this.inputs = inputs;
|
|
this.outputs = outputs;
|
|
this.hostListeners = hostListeners;
|
|
this.hostProperties = hostProperties;
|
|
this.hostAttributes = hostAttributes;
|
|
this.lifecycleHooks = lifecycleHooks;
|
|
this.providers = lang_1.normalizeBlank(providers);
|
|
this.viewProviders = lang_1.normalizeBlank(viewProviders);
|
|
this.queries = queries;
|
|
this.viewQueries = viewQueries;
|
|
this.template = template;
|
|
}
|
|
CompileDirectiveMetadata.create = function(_a) {
|
|
var _b = _a === void 0 ? {} : _a,
|
|
type = _b.type,
|
|
isComponent = _b.isComponent,
|
|
dynamicLoadable = _b.dynamicLoadable,
|
|
selector = _b.selector,
|
|
exportAs = _b.exportAs,
|
|
changeDetection = _b.changeDetection,
|
|
inputs = _b.inputs,
|
|
outputs = _b.outputs,
|
|
host = _b.host,
|
|
lifecycleHooks = _b.lifecycleHooks,
|
|
providers = _b.providers,
|
|
viewProviders = _b.viewProviders,
|
|
queries = _b.queries,
|
|
viewQueries = _b.viewQueries,
|
|
template = _b.template;
|
|
var hostListeners = {};
|
|
var hostProperties = {};
|
|
var hostAttributes = {};
|
|
if (lang_1.isPresent(host)) {
|
|
collection_1.StringMapWrapper.forEach(host, function(value, key) {
|
|
var matches = lang_1.RegExpWrapper.firstMatch(HOST_REG_EXP, key);
|
|
if (lang_1.isBlank(matches)) {
|
|
hostAttributes[key] = value;
|
|
} else if (lang_1.isPresent(matches[1])) {
|
|
hostProperties[matches[1]] = value;
|
|
} else if (lang_1.isPresent(matches[2])) {
|
|
hostListeners[matches[2]] = value;
|
|
}
|
|
});
|
|
}
|
|
var inputsMap = {};
|
|
if (lang_1.isPresent(inputs)) {
|
|
inputs.forEach(function(bindConfig) {
|
|
var parts = util_1.splitAtColon(bindConfig, [bindConfig, bindConfig]);
|
|
inputsMap[parts[0]] = parts[1];
|
|
});
|
|
}
|
|
var outputsMap = {};
|
|
if (lang_1.isPresent(outputs)) {
|
|
outputs.forEach(function(bindConfig) {
|
|
var parts = util_1.splitAtColon(bindConfig, [bindConfig, bindConfig]);
|
|
outputsMap[parts[0]] = parts[1];
|
|
});
|
|
}
|
|
return new CompileDirectiveMetadata({
|
|
type: type,
|
|
isComponent: lang_1.normalizeBool(isComponent),
|
|
dynamicLoadable: lang_1.normalizeBool(dynamicLoadable),
|
|
selector: selector,
|
|
exportAs: exportAs,
|
|
changeDetection: changeDetection,
|
|
inputs: inputsMap,
|
|
outputs: outputsMap,
|
|
hostListeners: hostListeners,
|
|
hostProperties: hostProperties,
|
|
hostAttributes: hostAttributes,
|
|
lifecycleHooks: lang_1.isPresent(lifecycleHooks) ? lifecycleHooks : [],
|
|
providers: providers,
|
|
viewProviders: viewProviders,
|
|
queries: queries,
|
|
viewQueries: viewQueries,
|
|
template: template
|
|
});
|
|
};
|
|
Object.defineProperty(CompileDirectiveMetadata.prototype, "identifier", {
|
|
get: function() {
|
|
return this.type;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
CompileDirectiveMetadata.fromJson = function(data) {
|
|
return new CompileDirectiveMetadata({
|
|
isComponent: data['isComponent'],
|
|
dynamicLoadable: data['dynamicLoadable'],
|
|
selector: data['selector'],
|
|
exportAs: data['exportAs'],
|
|
type: lang_1.isPresent(data['type']) ? CompileTypeMetadata.fromJson(data['type']) : data['type'],
|
|
changeDetection: lang_1.isPresent(data['changeDetection']) ? change_detection_1.CHANGE_DETECTION_STRATEGY_VALUES[data['changeDetection']] : data['changeDetection'],
|
|
inputs: data['inputs'],
|
|
outputs: data['outputs'],
|
|
hostListeners: data['hostListeners'],
|
|
hostProperties: data['hostProperties'],
|
|
hostAttributes: data['hostAttributes'],
|
|
lifecycleHooks: data['lifecycleHooks'].map(function(hookValue) {
|
|
return interfaces_1.LIFECYCLE_HOOKS_VALUES[hookValue];
|
|
}),
|
|
template: lang_1.isPresent(data['template']) ? CompileTemplateMetadata.fromJson(data['template']) : data['template'],
|
|
providers: arrayFromJson(data['providers'], CompileProviderMetadata.fromJson)
|
|
});
|
|
};
|
|
CompileDirectiveMetadata.prototype.toJson = function() {
|
|
return {
|
|
'class': 'Directive',
|
|
'isComponent': this.isComponent,
|
|
'dynamicLoadable': this.dynamicLoadable,
|
|
'selector': this.selector,
|
|
'exportAs': this.exportAs,
|
|
'type': lang_1.isPresent(this.type) ? this.type.toJson() : this.type,
|
|
'changeDetection': lang_1.isPresent(this.changeDetection) ? lang_1.serializeEnum(this.changeDetection) : this.changeDetection,
|
|
'inputs': this.inputs,
|
|
'outputs': this.outputs,
|
|
'hostListeners': this.hostListeners,
|
|
'hostProperties': this.hostProperties,
|
|
'hostAttributes': this.hostAttributes,
|
|
'lifecycleHooks': this.lifecycleHooks.map(function(hook) {
|
|
return lang_1.serializeEnum(hook);
|
|
}),
|
|
'template': lang_1.isPresent(this.template) ? this.template.toJson() : this.template,
|
|
'providers': arrayToJson(this.providers)
|
|
};
|
|
};
|
|
return CompileDirectiveMetadata;
|
|
})();
|
|
exports.CompileDirectiveMetadata = CompileDirectiveMetadata;
|
|
function createHostComponentMeta(componentType, componentSelector) {
|
|
var template = selector_1.CssSelector.parse(componentSelector)[0].getMatchingElementTemplate();
|
|
return CompileDirectiveMetadata.create({
|
|
type: new CompileTypeMetadata({
|
|
runtime: Object,
|
|
name: "Host" + componentType.name,
|
|
moduleUrl: componentType.moduleUrl,
|
|
isHost: true
|
|
}),
|
|
template: new CompileTemplateMetadata({
|
|
template: template,
|
|
templateUrl: '',
|
|
styles: [],
|
|
styleUrls: [],
|
|
ngContentSelectors: []
|
|
}),
|
|
changeDetection: change_detection_1.ChangeDetectionStrategy.Default,
|
|
inputs: [],
|
|
outputs: [],
|
|
host: {},
|
|
lifecycleHooks: [],
|
|
isComponent: true,
|
|
dynamicLoadable: false,
|
|
selector: '*',
|
|
providers: [],
|
|
viewProviders: [],
|
|
queries: [],
|
|
viewQueries: []
|
|
});
|
|
}
|
|
exports.createHostComponentMeta = createHostComponentMeta;
|
|
var CompilePipeMetadata = (function() {
|
|
function CompilePipeMetadata(_a) {
|
|
var _b = _a === void 0 ? {} : _a,
|
|
type = _b.type,
|
|
name = _b.name,
|
|
pure = _b.pure;
|
|
this.type = type;
|
|
this.name = name;
|
|
this.pure = lang_1.normalizeBool(pure);
|
|
}
|
|
Object.defineProperty(CompilePipeMetadata.prototype, "identifier", {
|
|
get: function() {
|
|
return this.type;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
CompilePipeMetadata.fromJson = function(data) {
|
|
return new CompilePipeMetadata({
|
|
type: lang_1.isPresent(data['type']) ? CompileTypeMetadata.fromJson(data['type']) : data['type'],
|
|
name: data['name'],
|
|
pure: data['pure']
|
|
});
|
|
};
|
|
CompilePipeMetadata.prototype.toJson = function() {
|
|
return {
|
|
'class': 'Pipe',
|
|
'type': lang_1.isPresent(this.type) ? this.type.toJson() : null,
|
|
'name': this.name,
|
|
'pure': this.pure
|
|
};
|
|
};
|
|
return CompilePipeMetadata;
|
|
})();
|
|
exports.CompilePipeMetadata = CompilePipeMetadata;
|
|
var _COMPILE_METADATA_FROM_JSON = {
|
|
'Directive': CompileDirectiveMetadata.fromJson,
|
|
'Pipe': CompilePipeMetadata.fromJson,
|
|
'Type': CompileTypeMetadata.fromJson,
|
|
'Identifier': CompileIdentifierMetadata.fromJson
|
|
};
|
|
function arrayFromJson(obj, fn) {
|
|
return lang_1.isBlank(obj) ? null : obj.map(function(o) {
|
|
return objFromJson(o, fn);
|
|
});
|
|
}
|
|
function arrayToJson(obj) {
|
|
return lang_1.isBlank(obj) ? null : obj.map(objToJson);
|
|
}
|
|
function objFromJson(obj, fn) {
|
|
return (lang_1.isString(obj) || lang_1.isBlank(obj)) ? obj : fn(obj);
|
|
}
|
|
function objToJson(obj) {
|
|
return (lang_1.isString(obj) || lang_1.isBlank(obj)) ? obj : obj.toJson();
|
|
}
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/compiler/change_detector_compiler", ["angular2/src/compiler/source_module", "angular2/src/core/change_detection/change_detection_jit_generator", "angular2/src/core/change_detection/abstract_change_detector", "angular2/src/core/change_detection/change_detection_util", "angular2/src/core/change_detection/constants", "angular2/src/compiler/change_definition_factory", "angular2/src/facade/lang", "angular2/src/core/change_detection/change_detection", "angular2/src/transform/template_compiler/change_detector_codegen", "angular2/src/compiler/util", "angular2/src/core/di"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var source_module_1 = require("angular2/src/compiler/source_module");
|
|
var change_detection_jit_generator_1 = require("angular2/src/core/change_detection/change_detection_jit_generator");
|
|
var abstract_change_detector_1 = require("angular2/src/core/change_detection/abstract_change_detector");
|
|
var change_detection_util_1 = require("angular2/src/core/change_detection/change_detection_util");
|
|
var constants_1 = require("angular2/src/core/change_detection/constants");
|
|
var change_definition_factory_1 = require("angular2/src/compiler/change_definition_factory");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var change_detection_1 = require("angular2/src/core/change_detection/change_detection");
|
|
var change_detector_codegen_1 = require("angular2/src/transform/template_compiler/change_detector_codegen");
|
|
var util_1 = require("angular2/src/compiler/util");
|
|
var di_1 = require("angular2/src/core/di");
|
|
var ABSTRACT_CHANGE_DETECTOR = "AbstractChangeDetector";
|
|
var UTIL = "ChangeDetectionUtil";
|
|
var CHANGE_DETECTOR_STATE = "ChangeDetectorState";
|
|
exports.CHANGE_DETECTION_JIT_IMPORTS = lang_1.CONST_EXPR({
|
|
'AbstractChangeDetector': abstract_change_detector_1.AbstractChangeDetector,
|
|
'ChangeDetectionUtil': change_detection_util_1.ChangeDetectionUtil,
|
|
'ChangeDetectorState': constants_1.ChangeDetectorState
|
|
});
|
|
var ABSTRACT_CHANGE_DETECTOR_MODULE = source_module_1.moduleRef("package:angular2/src/core/change_detection/abstract_change_detector" + util_1.MODULE_SUFFIX);
|
|
var UTIL_MODULE = source_module_1.moduleRef("package:angular2/src/core/change_detection/change_detection_util" + util_1.MODULE_SUFFIX);
|
|
var PREGEN_PROTO_CHANGE_DETECTOR_MODULE = source_module_1.moduleRef("package:angular2/src/core/change_detection/pregen_proto_change_detector" + util_1.MODULE_SUFFIX);
|
|
var CONSTANTS_MODULE = source_module_1.moduleRef("package:angular2/src/core/change_detection/constants" + util_1.MODULE_SUFFIX);
|
|
var ChangeDetectionCompiler = (function() {
|
|
function ChangeDetectionCompiler(_genConfig) {
|
|
this._genConfig = _genConfig;
|
|
}
|
|
ChangeDetectionCompiler.prototype.compileComponentRuntime = function(componentType, strategy, parsedTemplate) {
|
|
var _this = this;
|
|
var changeDetectorDefinitions = change_definition_factory_1.createChangeDetectorDefinitions(componentType, strategy, this._genConfig, parsedTemplate);
|
|
return changeDetectorDefinitions.map(function(definition) {
|
|
return _this._createChangeDetectorFactory(definition);
|
|
});
|
|
};
|
|
ChangeDetectionCompiler.prototype._createChangeDetectorFactory = function(definition) {
|
|
var proto = new change_detection_1.DynamicProtoChangeDetector(definition);
|
|
return function() {
|
|
return proto.instantiate();
|
|
};
|
|
};
|
|
ChangeDetectionCompiler.prototype.compileComponentCodeGen = function(componentType, strategy, parsedTemplate) {
|
|
var changeDetectorDefinitions = change_definition_factory_1.createChangeDetectorDefinitions(componentType, strategy, this._genConfig, parsedTemplate);
|
|
var factories = [];
|
|
var index = 0;
|
|
var sourceParts = changeDetectorDefinitions.map(function(definition) {
|
|
var codegen;
|
|
var sourcePart;
|
|
if (lang_1.IS_DART) {
|
|
codegen = new change_detector_codegen_1.Codegen(PREGEN_PROTO_CHANGE_DETECTOR_MODULE);
|
|
var className = "_" + definition.id;
|
|
var typeRef = (index === 0 && componentType.isHost) ? 'dynamic' : "" + source_module_1.moduleRef(componentType.moduleUrl) + componentType.name;
|
|
codegen.generate(typeRef, className, definition);
|
|
factories.push(className + ".newChangeDetector");
|
|
sourcePart = codegen.toString();
|
|
} else {
|
|
codegen = new change_detection_jit_generator_1.ChangeDetectorJITGenerator(definition, "" + UTIL_MODULE + UTIL, "" + ABSTRACT_CHANGE_DETECTOR_MODULE + ABSTRACT_CHANGE_DETECTOR, "" + CONSTANTS_MODULE + CHANGE_DETECTOR_STATE);
|
|
factories.push("function() { return new " + codegen.typeName + "(); }");
|
|
sourcePart = codegen.generateSource();
|
|
}
|
|
index++;
|
|
return sourcePart;
|
|
});
|
|
return new source_module_1.SourceExpressions(sourceParts, factories);
|
|
};
|
|
ChangeDetectionCompiler = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [change_detection_1.ChangeDetectorGenConfig])], ChangeDetectionCompiler);
|
|
return ChangeDetectionCompiler;
|
|
})();
|
|
exports.ChangeDetectionCompiler = ChangeDetectionCompiler;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/compiler/style_compiler", ["angular2/src/compiler/source_module", "angular2/src/core/metadata/view", "angular2/src/compiler/xhr", "angular2/src/facade/lang", "angular2/src/facade/async", "angular2/src/compiler/shadow_css", "angular2/src/compiler/url_resolver", "angular2/src/compiler/style_url_resolver", "angular2/src/compiler/util", "angular2/src/core/di"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var source_module_1 = require("angular2/src/compiler/source_module");
|
|
var view_1 = require("angular2/src/core/metadata/view");
|
|
var xhr_1 = require("angular2/src/compiler/xhr");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var async_1 = require("angular2/src/facade/async");
|
|
var shadow_css_1 = require("angular2/src/compiler/shadow_css");
|
|
var url_resolver_1 = require("angular2/src/compiler/url_resolver");
|
|
var style_url_resolver_1 = require("angular2/src/compiler/style_url_resolver");
|
|
var util_1 = require("angular2/src/compiler/util");
|
|
var di_1 = require("angular2/src/core/di");
|
|
var COMPONENT_VARIABLE = '%COMP%';
|
|
var HOST_ATTR = "_nghost-" + COMPONENT_VARIABLE;
|
|
var CONTENT_ATTR = "_ngcontent-" + COMPONENT_VARIABLE;
|
|
var StyleCompiler = (function() {
|
|
function StyleCompiler(_xhr, _urlResolver) {
|
|
this._xhr = _xhr;
|
|
this._urlResolver = _urlResolver;
|
|
this._styleCache = new Map();
|
|
this._shadowCss = new shadow_css_1.ShadowCss();
|
|
}
|
|
StyleCompiler.prototype.compileComponentRuntime = function(template) {
|
|
var styles = template.styles;
|
|
var styleAbsUrls = template.styleUrls;
|
|
return this._loadStyles(styles, styleAbsUrls, template.encapsulation === view_1.ViewEncapsulation.Emulated);
|
|
};
|
|
StyleCompiler.prototype.compileComponentCodeGen = function(template) {
|
|
var shim = template.encapsulation === view_1.ViewEncapsulation.Emulated;
|
|
return this._styleCodeGen(template.styles, template.styleUrls, shim);
|
|
};
|
|
StyleCompiler.prototype.compileStylesheetCodeGen = function(stylesheetUrl, cssText) {
|
|
var styleWithImports = style_url_resolver_1.extractStyleUrls(this._urlResolver, stylesheetUrl, cssText);
|
|
return [this._styleModule(stylesheetUrl, false, this._styleCodeGen([styleWithImports.style], styleWithImports.styleUrls, false)), this._styleModule(stylesheetUrl, true, this._styleCodeGen([styleWithImports.style], styleWithImports.styleUrls, true))];
|
|
};
|
|
StyleCompiler.prototype.clearCache = function() {
|
|
this._styleCache.clear();
|
|
};
|
|
StyleCompiler.prototype._loadStyles = function(plainStyles, absUrls, encapsulate) {
|
|
var _this = this;
|
|
var promises = absUrls.map(function(absUrl) {
|
|
var cacheKey = "" + absUrl + (encapsulate ? '.shim' : '');
|
|
var result = _this._styleCache.get(cacheKey);
|
|
if (lang_1.isBlank(result)) {
|
|
result = _this._xhr.get(absUrl).then(function(style) {
|
|
var styleWithImports = style_url_resolver_1.extractStyleUrls(_this._urlResolver, absUrl, style);
|
|
return _this._loadStyles([styleWithImports.style], styleWithImports.styleUrls, encapsulate);
|
|
});
|
|
_this._styleCache.set(cacheKey, result);
|
|
}
|
|
return result;
|
|
});
|
|
return async_1.PromiseWrapper.all(promises).then(function(nestedStyles) {
|
|
var result = plainStyles.map(function(plainStyle) {
|
|
return _this._shimIfNeeded(plainStyle, encapsulate);
|
|
});
|
|
nestedStyles.forEach(function(styles) {
|
|
return result.push(styles);
|
|
});
|
|
return result;
|
|
});
|
|
};
|
|
StyleCompiler.prototype._styleCodeGen = function(plainStyles, absUrls, shim) {
|
|
var _this = this;
|
|
var arrayPrefix = lang_1.IS_DART ? "const" : '';
|
|
var styleExpressions = plainStyles.map(function(plainStyle) {
|
|
return util_1.escapeSingleQuoteString(_this._shimIfNeeded(plainStyle, shim));
|
|
});
|
|
for (var i = 0; i < absUrls.length; i++) {
|
|
var moduleUrl = this._createModuleUrl(absUrls[i], shim);
|
|
styleExpressions.push(source_module_1.moduleRef(moduleUrl) + "STYLES");
|
|
}
|
|
var expressionSource = arrayPrefix + " [" + styleExpressions.join(',') + "]";
|
|
return new source_module_1.SourceExpression([], expressionSource);
|
|
};
|
|
StyleCompiler.prototype._styleModule = function(stylesheetUrl, shim, expression) {
|
|
var moduleSource = "\n " + expression.declarations.join('\n') + "\n " + util_1.codeGenExportVariable('STYLES') + expression.expression + ";\n ";
|
|
return new source_module_1.SourceModule(this._createModuleUrl(stylesheetUrl, shim), moduleSource);
|
|
};
|
|
StyleCompiler.prototype._shimIfNeeded = function(style, shim) {
|
|
return shim ? this._shadowCss.shimCssText(style, CONTENT_ATTR, HOST_ATTR) : style;
|
|
};
|
|
StyleCompiler.prototype._createModuleUrl = function(stylesheetUrl, shim) {
|
|
return shim ? stylesheetUrl + ".shim" + util_1.MODULE_SUFFIX : "" + stylesheetUrl + util_1.MODULE_SUFFIX;
|
|
};
|
|
StyleCompiler = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [xhr_1.XHR, url_resolver_1.UrlResolver])], StyleCompiler);
|
|
return StyleCompiler;
|
|
})();
|
|
exports.StyleCompiler = StyleCompiler;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/compiler/view_compiler", ["angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/compiler/template_ast", "angular2/src/compiler/source_module", "angular2/src/core/linker/view", "angular2/src/core/linker/view_type", "angular2/src/core/linker/element", "angular2/src/core/metadata/view", "angular2/src/compiler/util", "angular2/src/core/di", "angular2/src/compiler/proto_view_compiler"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var template_ast_1 = require("angular2/src/compiler/template_ast");
|
|
var source_module_1 = require("angular2/src/compiler/source_module");
|
|
var view_1 = require("angular2/src/core/linker/view");
|
|
var view_type_1 = require("angular2/src/core/linker/view_type");
|
|
var element_1 = require("angular2/src/core/linker/element");
|
|
var view_2 = require("angular2/src/core/metadata/view");
|
|
var util_1 = require("angular2/src/compiler/util");
|
|
var di_1 = require("angular2/src/core/di");
|
|
var proto_view_compiler_1 = require("angular2/src/compiler/proto_view_compiler");
|
|
exports.VIEW_JIT_IMPORTS = lang_1.CONST_EXPR({
|
|
'AppView': view_1.AppView,
|
|
'AppElement': element_1.AppElement,
|
|
'flattenNestedViewRenderNodes': view_1.flattenNestedViewRenderNodes,
|
|
'checkSlotCount': view_1.checkSlotCount
|
|
});
|
|
var ViewCompiler = (function() {
|
|
function ViewCompiler() {}
|
|
ViewCompiler.prototype.compileComponentRuntime = function(component, template, styles, protoViews, changeDetectorFactories, componentViewFactory) {
|
|
var viewFactory = new RuntimeViewFactory(component, styles, protoViews, changeDetectorFactories, componentViewFactory);
|
|
return viewFactory.createViewFactory(template, 0, []);
|
|
};
|
|
ViewCompiler.prototype.compileComponentCodeGen = function(component, template, styles, protoViews, changeDetectorFactoryExpressions, componentViewFactory) {
|
|
var viewFactory = new CodeGenViewFactory(component, styles, protoViews, changeDetectorFactoryExpressions, componentViewFactory);
|
|
var targetStatements = [];
|
|
var viewFactoryExpression = viewFactory.createViewFactory(template, 0, targetStatements);
|
|
return new source_module_1.SourceExpression(targetStatements.map(function(stmt) {
|
|
return stmt.statement;
|
|
}), viewFactoryExpression.expression);
|
|
};
|
|
ViewCompiler = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [])], ViewCompiler);
|
|
return ViewCompiler;
|
|
})();
|
|
exports.ViewCompiler = ViewCompiler;
|
|
var CodeGenViewFactory = (function() {
|
|
function CodeGenViewFactory(component, styles, protoViews, changeDetectorExpressions, componentViewFactory) {
|
|
this.component = component;
|
|
this.styles = styles;
|
|
this.protoViews = protoViews;
|
|
this.changeDetectorExpressions = changeDetectorExpressions;
|
|
this.componentViewFactory = componentViewFactory;
|
|
this._nextVarId = 0;
|
|
}
|
|
CodeGenViewFactory.prototype._nextVar = function(prefix) {
|
|
return "" + prefix + this._nextVarId++ + "_" + this.component.type.name;
|
|
};
|
|
CodeGenViewFactory.prototype._nextRenderVar = function() {
|
|
return this._nextVar('render');
|
|
};
|
|
CodeGenViewFactory.prototype._nextAppVar = function() {
|
|
return this._nextVar('app');
|
|
};
|
|
CodeGenViewFactory.prototype._nextDisposableVar = function() {
|
|
return "disposable" + this._nextVarId++ + "_" + this.component.type.name;
|
|
};
|
|
CodeGenViewFactory.prototype.createText = function(renderer, parent, text, targetStatements) {
|
|
var varName = this._nextRenderVar();
|
|
var statement = "var " + varName + " = " + renderer.expression + ".createText(" + (lang_1.isPresent(parent) ? parent.expression : null) + ", " + util_1.escapeSingleQuoteString(text) + ");";
|
|
targetStatements.push(new util_1.Statement(statement));
|
|
return new util_1.Expression(varName);
|
|
};
|
|
CodeGenViewFactory.prototype.createElement = function(renderer, parentRenderNode, name, rootSelector, targetStatements) {
|
|
var varName = this._nextRenderVar();
|
|
var valueExpr;
|
|
if (lang_1.isPresent(rootSelector)) {
|
|
valueExpr = rootSelector.expression + " == null ?\n " + renderer.expression + ".createElement(" + (lang_1.isPresent(parentRenderNode) ? parentRenderNode.expression : null) + ", " + util_1.escapeSingleQuoteString(name) + ") :\n " + renderer.expression + ".selectRootElement(" + rootSelector.expression + ");";
|
|
} else {
|
|
valueExpr = renderer.expression + ".createElement(" + (lang_1.isPresent(parentRenderNode) ? parentRenderNode.expression : null) + ", " + util_1.escapeSingleQuoteString(name) + ")";
|
|
}
|
|
var statement = "var " + varName + " = " + valueExpr + ";";
|
|
targetStatements.push(new util_1.Statement(statement));
|
|
return new util_1.Expression(varName);
|
|
};
|
|
CodeGenViewFactory.prototype.createTemplateAnchor = function(renderer, parentRenderNode, targetStatements) {
|
|
var varName = this._nextRenderVar();
|
|
var valueExpr = renderer.expression + ".createTemplateAnchor(" + (lang_1.isPresent(parentRenderNode) ? parentRenderNode.expression : null) + ");";
|
|
targetStatements.push(new util_1.Statement("var " + varName + " = " + valueExpr));
|
|
return new util_1.Expression(varName);
|
|
};
|
|
CodeGenViewFactory.prototype.createGlobalEventListener = function(renderer, appView, boundElementIndex, eventAst, targetStatements) {
|
|
var disposableVar = this._nextDisposableVar();
|
|
var eventHandlerExpr = codeGenEventHandler(appView, boundElementIndex, eventAst.fullName);
|
|
targetStatements.push(new util_1.Statement("var " + disposableVar + " = " + renderer.expression + ".listenGlobal(" + util_1.escapeValue(eventAst.target) + ", " + util_1.escapeValue(eventAst.name) + ", " + eventHandlerExpr + ");"));
|
|
return new util_1.Expression(disposableVar);
|
|
};
|
|
CodeGenViewFactory.prototype.createElementEventListener = function(renderer, appView, boundElementIndex, renderNode, eventAst, targetStatements) {
|
|
var disposableVar = this._nextDisposableVar();
|
|
var eventHandlerExpr = codeGenEventHandler(appView, boundElementIndex, eventAst.fullName);
|
|
targetStatements.push(new util_1.Statement("var " + disposableVar + " = " + renderer.expression + ".listen(" + renderNode.expression + ", " + util_1.escapeValue(eventAst.name) + ", " + eventHandlerExpr + ");"));
|
|
return new util_1.Expression(disposableVar);
|
|
};
|
|
CodeGenViewFactory.prototype.setElementAttribute = function(renderer, renderNode, attrName, attrValue, targetStatements) {
|
|
targetStatements.push(new util_1.Statement(renderer.expression + ".setElementAttribute(" + renderNode.expression + ", " + util_1.escapeSingleQuoteString(attrName) + ", " + util_1.escapeSingleQuoteString(attrValue) + ");"));
|
|
};
|
|
CodeGenViewFactory.prototype.createAppElement = function(appProtoEl, appView, renderNode, parentAppEl, embeddedViewFactory, targetStatements) {
|
|
var appVar = this._nextAppVar();
|
|
var varValue = "new " + proto_view_compiler_1.APP_EL_MODULE_REF + "AppElement(" + appProtoEl.expression + ", " + appView.expression + ",\n " + (lang_1.isPresent(parentAppEl) ? parentAppEl.expression : null) + ", " + renderNode.expression + ", " + (lang_1.isPresent(embeddedViewFactory) ? embeddedViewFactory.expression : null) + ")";
|
|
targetStatements.push(new util_1.Statement("var " + appVar + " = " + varValue + ";"));
|
|
return new util_1.Expression(appVar);
|
|
};
|
|
CodeGenViewFactory.prototype.createAndSetComponentView = function(renderer, viewManager, view, appEl, component, contentNodesByNgContentIndex, targetStatements) {
|
|
var codeGenContentNodes;
|
|
if (this.component.type.isHost) {
|
|
codeGenContentNodes = view.expression + ".projectableNodes";
|
|
} else {
|
|
codeGenContentNodes = "[" + contentNodesByNgContentIndex.map(function(nodes) {
|
|
return util_1.codeGenFlatArray(nodes);
|
|
}).join(',') + "]";
|
|
}
|
|
targetStatements.push(new util_1.Statement(this.componentViewFactory(component) + "(" + renderer.expression + ", " + viewManager.expression + ", " + appEl.expression + ", " + codeGenContentNodes + ", null, null, null);"));
|
|
};
|
|
CodeGenViewFactory.prototype.getProjectedNodes = function(projectableNodes, ngContentIndex) {
|
|
return new util_1.Expression(projectableNodes.expression + "[" + ngContentIndex + "]", true);
|
|
};
|
|
CodeGenViewFactory.prototype.appendProjectedNodes = function(renderer, parent, nodes, targetStatements) {
|
|
targetStatements.push(new util_1.Statement(renderer.expression + ".projectNodes(" + parent.expression + ", " + proto_view_compiler_1.APP_VIEW_MODULE_REF + "flattenNestedViewRenderNodes(" + nodes.expression + "));"));
|
|
};
|
|
CodeGenViewFactory.prototype.createViewFactory = function(asts, embeddedTemplateIndex, targetStatements) {
|
|
var compileProtoView = this.protoViews[embeddedTemplateIndex];
|
|
var isHostView = this.component.type.isHost;
|
|
var isComponentView = embeddedTemplateIndex === 0 && !isHostView;
|
|
var visitor = new ViewBuilderVisitor(new util_1.Expression('renderer'), new util_1.Expression('viewManager'), new util_1.Expression('projectableNodes'), isHostView ? new util_1.Expression('rootSelector') : null, new util_1.Expression('view'), compileProtoView, targetStatements, this);
|
|
template_ast_1.templateVisitAll(visitor, asts, new ParentElement(isComponentView ? new util_1.Expression('parentRenderNode') : null, null, null));
|
|
var appProtoView = compileProtoView.protoView.expression;
|
|
var viewFactoryName = codeGenViewFactoryName(this.component, embeddedTemplateIndex);
|
|
var changeDetectorFactory = this.changeDetectorExpressions.expressions[embeddedTemplateIndex];
|
|
var factoryArgs = ['parentRenderer', 'viewManager', 'containerEl', 'projectableNodes', 'rootSelector', 'dynamicallyCreatedProviders', 'rootInjector'];
|
|
var initRendererStmts = [];
|
|
var rendererExpr = "parentRenderer";
|
|
if (embeddedTemplateIndex === 0) {
|
|
var renderCompTypeVar = this._nextVar('renderType');
|
|
targetStatements.push(new util_1.Statement("var " + renderCompTypeVar + " = null;"));
|
|
var stylesVar = this._nextVar('styles');
|
|
targetStatements.push(new util_1.Statement(util_1.CONST_VAR + " " + stylesVar + " = " + this.styles.expression + ";"));
|
|
var encapsulation = this.component.template.encapsulation;
|
|
initRendererStmts.push("if (" + renderCompTypeVar + " == null) {\n " + renderCompTypeVar + " = viewManager.createRenderComponentType(" + codeGenViewEncapsulation(encapsulation) + ", " + stylesVar + ");\n }");
|
|
rendererExpr = "parentRenderer.renderComponent(" + renderCompTypeVar + ")";
|
|
}
|
|
var statement = "\n" + util_1.codeGenFnHeader(factoryArgs, viewFactoryName) + "{\n " + initRendererStmts.join('\n') + "\n var renderer = " + rendererExpr + ";\n var view = new " + proto_view_compiler_1.APP_VIEW_MODULE_REF + "AppView(\n " + appProtoView + ", renderer, viewManager,\n projectableNodes,\n containerEl,\n dynamicallyCreatedProviders, rootInjector,\n " + changeDetectorFactory + "()\n );\n " + proto_view_compiler_1.APP_VIEW_MODULE_REF + "checkSlotCount(" + util_1.escapeValue(this.component.type.name) + ", " + this.component.template.ngContentSelectors.length + ", projectableNodes);\n " + (isComponentView ? 'var parentRenderNode = renderer.createViewRoot(view.containerAppElement.nativeElement);' : '') + "\n " + visitor.renderStmts.map(function(stmt) {
|
|
return stmt.statement;
|
|
}).join('\n') + "\n " + visitor.appStmts.map(function(stmt) {
|
|
return stmt.statement;
|
|
}).join('\n') + "\n\n view.init(" + util_1.codeGenFlatArray(visitor.rootNodesOrAppElements) + ", " + util_1.codeGenArray(visitor.renderNodes) + ", " + util_1.codeGenArray(visitor.appDisposables) + ",\n " + util_1.codeGenArray(visitor.appElements) + ");\n return view;\n}";
|
|
targetStatements.push(new util_1.Statement(statement));
|
|
return new util_1.Expression(viewFactoryName);
|
|
};
|
|
return CodeGenViewFactory;
|
|
})();
|
|
var RuntimeViewFactory = (function() {
|
|
function RuntimeViewFactory(component, styles, protoViews, changeDetectorFactories, componentViewFactory) {
|
|
this.component = component;
|
|
this.styles = styles;
|
|
this.protoViews = protoViews;
|
|
this.changeDetectorFactories = changeDetectorFactories;
|
|
this.componentViewFactory = componentViewFactory;
|
|
}
|
|
RuntimeViewFactory.prototype.createText = function(renderer, parent, text, targetStatements) {
|
|
return renderer.createText(parent, text);
|
|
};
|
|
RuntimeViewFactory.prototype.createElement = function(renderer, parent, name, rootSelector, targetStatements) {
|
|
var el;
|
|
if (lang_1.isPresent(rootSelector)) {
|
|
el = renderer.selectRootElement(rootSelector);
|
|
} else {
|
|
el = renderer.createElement(parent, name);
|
|
}
|
|
return el;
|
|
};
|
|
RuntimeViewFactory.prototype.createTemplateAnchor = function(renderer, parent, targetStatements) {
|
|
return renderer.createTemplateAnchor(parent);
|
|
};
|
|
RuntimeViewFactory.prototype.createGlobalEventListener = function(renderer, appView, boundElementIndex, eventAst, targetStatements) {
|
|
return renderer.listenGlobal(eventAst.target, eventAst.name, function(event) {
|
|
return appView.triggerEventHandlers(eventAst.fullName, event, boundElementIndex);
|
|
});
|
|
};
|
|
RuntimeViewFactory.prototype.createElementEventListener = function(renderer, appView, boundElementIndex, renderNode, eventAst, targetStatements) {
|
|
return renderer.listen(renderNode, eventAst.name, function(event) {
|
|
return appView.triggerEventHandlers(eventAst.fullName, event, boundElementIndex);
|
|
});
|
|
};
|
|
RuntimeViewFactory.prototype.setElementAttribute = function(renderer, renderNode, attrName, attrValue, targetStatements) {
|
|
renderer.setElementAttribute(renderNode, attrName, attrValue);
|
|
};
|
|
RuntimeViewFactory.prototype.createAppElement = function(appProtoEl, appView, renderNode, parentAppEl, embeddedViewFactory, targetStatements) {
|
|
return new element_1.AppElement(appProtoEl, appView, parentAppEl, renderNode, embeddedViewFactory);
|
|
};
|
|
RuntimeViewFactory.prototype.createAndSetComponentView = function(renderer, viewManager, appView, appEl, component, contentNodesByNgContentIndex, targetStatements) {
|
|
var flattenedContentNodes;
|
|
if (this.component.type.isHost) {
|
|
flattenedContentNodes = appView.projectableNodes;
|
|
} else {
|
|
flattenedContentNodes = collection_1.ListWrapper.createFixedSize(contentNodesByNgContentIndex.length);
|
|
for (var i = 0; i < contentNodesByNgContentIndex.length; i++) {
|
|
flattenedContentNodes[i] = util_1.flattenArray(contentNodesByNgContentIndex[i], []);
|
|
}
|
|
}
|
|
this.componentViewFactory(component)(renderer, viewManager, appEl, flattenedContentNodes);
|
|
};
|
|
RuntimeViewFactory.prototype.getProjectedNodes = function(projectableNodes, ngContentIndex) {
|
|
return projectableNodes[ngContentIndex];
|
|
};
|
|
RuntimeViewFactory.prototype.appendProjectedNodes = function(renderer, parent, nodes, targetStatements) {
|
|
renderer.projectNodes(parent, view_1.flattenNestedViewRenderNodes(nodes));
|
|
};
|
|
RuntimeViewFactory.prototype.createViewFactory = function(asts, embeddedTemplateIndex, targetStatements) {
|
|
var _this = this;
|
|
var compileProtoView = this.protoViews[embeddedTemplateIndex];
|
|
var isComponentView = compileProtoView.protoView.type === view_type_1.ViewType.COMPONENT;
|
|
var renderComponentType = null;
|
|
return function(parentRenderer, viewManager, containerEl, projectableNodes, rootSelector, dynamicallyCreatedProviders, rootInjector) {
|
|
if (rootSelector === void 0) {
|
|
rootSelector = null;
|
|
}
|
|
if (dynamicallyCreatedProviders === void 0) {
|
|
dynamicallyCreatedProviders = null;
|
|
}
|
|
if (rootInjector === void 0) {
|
|
rootInjector = null;
|
|
}
|
|
view_1.checkSlotCount(_this.component.type.name, _this.component.template.ngContentSelectors.length, projectableNodes);
|
|
var renderer;
|
|
if (embeddedTemplateIndex === 0) {
|
|
if (lang_1.isBlank(renderComponentType)) {
|
|
renderComponentType = viewManager.createRenderComponentType(_this.component.template.encapsulation, _this.styles);
|
|
}
|
|
renderer = parentRenderer.renderComponent(renderComponentType);
|
|
} else {
|
|
renderer = parentRenderer;
|
|
}
|
|
var changeDetector = _this.changeDetectorFactories[embeddedTemplateIndex]();
|
|
var view = new view_1.AppView(compileProtoView.protoView, renderer, viewManager, projectableNodes, containerEl, dynamicallyCreatedProviders, rootInjector, changeDetector);
|
|
var visitor = new ViewBuilderVisitor(renderer, viewManager, projectableNodes, rootSelector, view, compileProtoView, [], _this);
|
|
var parentRenderNode = isComponentView ? renderer.createViewRoot(containerEl.nativeElement) : null;
|
|
template_ast_1.templateVisitAll(visitor, asts, new ParentElement(parentRenderNode, null, null));
|
|
view.init(util_1.flattenArray(visitor.rootNodesOrAppElements, []), visitor.renderNodes, visitor.appDisposables, visitor.appElements);
|
|
return view;
|
|
};
|
|
};
|
|
return RuntimeViewFactory;
|
|
})();
|
|
var ParentElement = (function() {
|
|
function ParentElement(renderNode, appEl, component) {
|
|
this.renderNode = renderNode;
|
|
this.appEl = appEl;
|
|
this.component = component;
|
|
if (lang_1.isPresent(component)) {
|
|
this.contentNodesByNgContentIndex = collection_1.ListWrapper.createFixedSize(component.template.ngContentSelectors.length);
|
|
for (var i = 0; i < this.contentNodesByNgContentIndex.length; i++) {
|
|
this.contentNodesByNgContentIndex[i] = [];
|
|
}
|
|
} else {
|
|
this.contentNodesByNgContentIndex = null;
|
|
}
|
|
}
|
|
ParentElement.prototype.addContentNode = function(ngContentIndex, nodeExpr) {
|
|
this.contentNodesByNgContentIndex[ngContentIndex].push(nodeExpr);
|
|
};
|
|
return ParentElement;
|
|
})();
|
|
var ViewBuilderVisitor = (function() {
|
|
function ViewBuilderVisitor(renderer, viewManager, projectableNodes, rootSelector, view, protoView, targetStatements, factory) {
|
|
this.renderer = renderer;
|
|
this.viewManager = viewManager;
|
|
this.projectableNodes = projectableNodes;
|
|
this.rootSelector = rootSelector;
|
|
this.view = view;
|
|
this.protoView = protoView;
|
|
this.targetStatements = targetStatements;
|
|
this.factory = factory;
|
|
this.renderStmts = [];
|
|
this.renderNodes = [];
|
|
this.appStmts = [];
|
|
this.appElements = [];
|
|
this.appDisposables = [];
|
|
this.rootNodesOrAppElements = [];
|
|
this.elementCount = 0;
|
|
}
|
|
ViewBuilderVisitor.prototype._addRenderNode = function(renderNode, appEl, ngContentIndex, parent) {
|
|
this.renderNodes.push(renderNode);
|
|
if (lang_1.isPresent(parent.component)) {
|
|
if (lang_1.isPresent(ngContentIndex)) {
|
|
parent.addContentNode(ngContentIndex, lang_1.isPresent(appEl) ? appEl : renderNode);
|
|
}
|
|
} else if (lang_1.isBlank(parent.renderNode)) {
|
|
this.rootNodesOrAppElements.push(lang_1.isPresent(appEl) ? appEl : renderNode);
|
|
}
|
|
};
|
|
ViewBuilderVisitor.prototype._getParentRenderNode = function(ngContentIndex, parent) {
|
|
return lang_1.isPresent(parent.component) && parent.component.template.encapsulation !== view_2.ViewEncapsulation.Native ? null : parent.renderNode;
|
|
};
|
|
ViewBuilderVisitor.prototype.visitBoundText = function(ast, parent) {
|
|
return this._visitText('', ast.ngContentIndex, parent);
|
|
};
|
|
ViewBuilderVisitor.prototype.visitText = function(ast, parent) {
|
|
return this._visitText(ast.value, ast.ngContentIndex, parent);
|
|
};
|
|
ViewBuilderVisitor.prototype._visitText = function(value, ngContentIndex, parent) {
|
|
var renderNode = this.factory.createText(this.renderer, this._getParentRenderNode(ngContentIndex, parent), value, this.renderStmts);
|
|
this._addRenderNode(renderNode, null, ngContentIndex, parent);
|
|
return null;
|
|
};
|
|
ViewBuilderVisitor.prototype.visitNgContent = function(ast, parent) {
|
|
var nodesExpression = this.factory.getProjectedNodes(this.projectableNodes, ast.index);
|
|
if (lang_1.isPresent(parent.component)) {
|
|
if (lang_1.isPresent(ast.ngContentIndex)) {
|
|
parent.addContentNode(ast.ngContentIndex, nodesExpression);
|
|
}
|
|
} else {
|
|
if (lang_1.isPresent(parent.renderNode)) {
|
|
this.factory.appendProjectedNodes(this.renderer, parent.renderNode, nodesExpression, this.renderStmts);
|
|
} else {
|
|
this.rootNodesOrAppElements.push(nodesExpression);
|
|
}
|
|
}
|
|
return null;
|
|
};
|
|
ViewBuilderVisitor.prototype.visitElement = function(ast, parent) {
|
|
var _this = this;
|
|
var renderNode = this.factory.createElement(this.renderer, this._getParentRenderNode(ast.ngContentIndex, parent), ast.name, this.rootSelector, this.renderStmts);
|
|
var component = ast.getComponent();
|
|
var elementIndex = this.elementCount++;
|
|
var protoEl = this.protoView.protoElements[elementIndex];
|
|
protoEl.renderEvents.forEach(function(eventAst) {
|
|
var disposable;
|
|
if (lang_1.isPresent(eventAst.target)) {
|
|
disposable = _this.factory.createGlobalEventListener(_this.renderer, _this.view, protoEl.boundElementIndex, eventAst, _this.renderStmts);
|
|
} else {
|
|
disposable = _this.factory.createElementEventListener(_this.renderer, _this.view, protoEl.boundElementIndex, renderNode, eventAst, _this.renderStmts);
|
|
}
|
|
_this.appDisposables.push(disposable);
|
|
});
|
|
for (var i = 0; i < protoEl.attrNameAndValues.length; i++) {
|
|
var attrName = protoEl.attrNameAndValues[i][0];
|
|
var attrValue = protoEl.attrNameAndValues[i][1];
|
|
this.factory.setElementAttribute(this.renderer, renderNode, attrName, attrValue, this.renderStmts);
|
|
}
|
|
var appEl = null;
|
|
if (lang_1.isPresent(protoEl.appProtoEl)) {
|
|
appEl = this.factory.createAppElement(protoEl.appProtoEl, this.view, renderNode, parent.appEl, null, this.appStmts);
|
|
this.appElements.push(appEl);
|
|
}
|
|
this._addRenderNode(renderNode, appEl, ast.ngContentIndex, parent);
|
|
var newParent = new ParentElement(renderNode, lang_1.isPresent(appEl) ? appEl : parent.appEl, component);
|
|
template_ast_1.templateVisitAll(this, ast.children, newParent);
|
|
if (lang_1.isPresent(appEl) && lang_1.isPresent(component)) {
|
|
this.factory.createAndSetComponentView(this.renderer, this.viewManager, this.view, appEl, component, newParent.contentNodesByNgContentIndex, this.appStmts);
|
|
}
|
|
return null;
|
|
};
|
|
ViewBuilderVisitor.prototype.visitEmbeddedTemplate = function(ast, parent) {
|
|
var renderNode = this.factory.createTemplateAnchor(this.renderer, this._getParentRenderNode(ast.ngContentIndex, parent), this.renderStmts);
|
|
var elementIndex = this.elementCount++;
|
|
var protoEl = this.protoView.protoElements[elementIndex];
|
|
var embeddedViewFactory = this.factory.createViewFactory(ast.children, protoEl.embeddedTemplateIndex, this.targetStatements);
|
|
var appEl = this.factory.createAppElement(protoEl.appProtoEl, this.view, renderNode, parent.appEl, embeddedViewFactory, this.appStmts);
|
|
this._addRenderNode(renderNode, appEl, ast.ngContentIndex, parent);
|
|
this.appElements.push(appEl);
|
|
return null;
|
|
};
|
|
ViewBuilderVisitor.prototype.visitVariable = function(ast, ctx) {
|
|
return null;
|
|
};
|
|
ViewBuilderVisitor.prototype.visitAttr = function(ast, ctx) {
|
|
return null;
|
|
};
|
|
ViewBuilderVisitor.prototype.visitDirective = function(ast, ctx) {
|
|
return null;
|
|
};
|
|
ViewBuilderVisitor.prototype.visitEvent = function(ast, ctx) {
|
|
return null;
|
|
};
|
|
ViewBuilderVisitor.prototype.visitDirectiveProperty = function(ast, context) {
|
|
return null;
|
|
};
|
|
ViewBuilderVisitor.prototype.visitElementProperty = function(ast, context) {
|
|
return null;
|
|
};
|
|
return ViewBuilderVisitor;
|
|
})();
|
|
function codeGenEventHandler(view, boundElementIndex, eventName) {
|
|
return util_1.codeGenValueFn(['event'], view.expression + ".triggerEventHandlers(" + util_1.escapeValue(eventName) + ", event, " + boundElementIndex + ")");
|
|
}
|
|
function codeGenViewFactoryName(component, embeddedTemplateIndex) {
|
|
return "viewFactory_" + component.type.name + embeddedTemplateIndex;
|
|
}
|
|
function codeGenViewEncapsulation(value) {
|
|
if (lang_1.IS_DART) {
|
|
return "" + proto_view_compiler_1.METADATA_MODULE_REF + value;
|
|
} else {
|
|
return "" + value;
|
|
}
|
|
}
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/compiler/html_lexer", ["angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/compiler/parse_util", "angular2/src/compiler/html_tags"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var parse_util_1 = require("angular2/src/compiler/parse_util");
|
|
var html_tags_1 = require("angular2/src/compiler/html_tags");
|
|
(function(HtmlTokenType) {
|
|
HtmlTokenType[HtmlTokenType["TAG_OPEN_START"] = 0] = "TAG_OPEN_START";
|
|
HtmlTokenType[HtmlTokenType["TAG_OPEN_END"] = 1] = "TAG_OPEN_END";
|
|
HtmlTokenType[HtmlTokenType["TAG_OPEN_END_VOID"] = 2] = "TAG_OPEN_END_VOID";
|
|
HtmlTokenType[HtmlTokenType["TAG_CLOSE"] = 3] = "TAG_CLOSE";
|
|
HtmlTokenType[HtmlTokenType["TEXT"] = 4] = "TEXT";
|
|
HtmlTokenType[HtmlTokenType["ESCAPABLE_RAW_TEXT"] = 5] = "ESCAPABLE_RAW_TEXT";
|
|
HtmlTokenType[HtmlTokenType["RAW_TEXT"] = 6] = "RAW_TEXT";
|
|
HtmlTokenType[HtmlTokenType["COMMENT_START"] = 7] = "COMMENT_START";
|
|
HtmlTokenType[HtmlTokenType["COMMENT_END"] = 8] = "COMMENT_END";
|
|
HtmlTokenType[HtmlTokenType["CDATA_START"] = 9] = "CDATA_START";
|
|
HtmlTokenType[HtmlTokenType["CDATA_END"] = 10] = "CDATA_END";
|
|
HtmlTokenType[HtmlTokenType["ATTR_NAME"] = 11] = "ATTR_NAME";
|
|
HtmlTokenType[HtmlTokenType["ATTR_VALUE"] = 12] = "ATTR_VALUE";
|
|
HtmlTokenType[HtmlTokenType["DOC_TYPE"] = 13] = "DOC_TYPE";
|
|
HtmlTokenType[HtmlTokenType["EOF"] = 14] = "EOF";
|
|
})(exports.HtmlTokenType || (exports.HtmlTokenType = {}));
|
|
var HtmlTokenType = exports.HtmlTokenType;
|
|
var HtmlToken = (function() {
|
|
function HtmlToken(type, parts, sourceSpan) {
|
|
this.type = type;
|
|
this.parts = parts;
|
|
this.sourceSpan = sourceSpan;
|
|
}
|
|
return HtmlToken;
|
|
})();
|
|
exports.HtmlToken = HtmlToken;
|
|
var HtmlTokenError = (function(_super) {
|
|
__extends(HtmlTokenError, _super);
|
|
function HtmlTokenError(errorMsg, tokenType, span) {
|
|
_super.call(this, span, errorMsg);
|
|
this.tokenType = tokenType;
|
|
}
|
|
return HtmlTokenError;
|
|
})(parse_util_1.ParseError);
|
|
exports.HtmlTokenError = HtmlTokenError;
|
|
var HtmlTokenizeResult = (function() {
|
|
function HtmlTokenizeResult(tokens, errors) {
|
|
this.tokens = tokens;
|
|
this.errors = errors;
|
|
}
|
|
return HtmlTokenizeResult;
|
|
})();
|
|
exports.HtmlTokenizeResult = HtmlTokenizeResult;
|
|
function tokenizeHtml(sourceContent, sourceUrl) {
|
|
return new _HtmlTokenizer(new parse_util_1.ParseSourceFile(sourceContent, sourceUrl)).tokenize();
|
|
}
|
|
exports.tokenizeHtml = tokenizeHtml;
|
|
var $EOF = 0;
|
|
var $TAB = 9;
|
|
var $LF = 10;
|
|
var $FF = 12;
|
|
var $CR = 13;
|
|
var $SPACE = 32;
|
|
var $BANG = 33;
|
|
var $DQ = 34;
|
|
var $HASH = 35;
|
|
var $$ = 36;
|
|
var $AMPERSAND = 38;
|
|
var $SQ = 39;
|
|
var $MINUS = 45;
|
|
var $SLASH = 47;
|
|
var $0 = 48;
|
|
var $SEMICOLON = 59;
|
|
var $9 = 57;
|
|
var $COLON = 58;
|
|
var $LT = 60;
|
|
var $EQ = 61;
|
|
var $GT = 62;
|
|
var $QUESTION = 63;
|
|
var $LBRACKET = 91;
|
|
var $RBRACKET = 93;
|
|
var $A = 65;
|
|
var $F = 70;
|
|
var $X = 88;
|
|
var $Z = 90;
|
|
var $a = 97;
|
|
var $f = 102;
|
|
var $z = 122;
|
|
var $x = 120;
|
|
var $NBSP = 160;
|
|
var CR_OR_CRLF_REGEXP = /\r\n?/g;
|
|
function unexpectedCharacterErrorMsg(charCode) {
|
|
var char = charCode === $EOF ? 'EOF' : lang_1.StringWrapper.fromCharCode(charCode);
|
|
return "Unexpected character \"" + char + "\"";
|
|
}
|
|
function unknownEntityErrorMsg(entitySrc) {
|
|
return "Unknown entity \"" + entitySrc + "\" - use the \"&#<decimal>;\" or \"&#x<hex>;\" syntax";
|
|
}
|
|
var ControlFlowError = (function() {
|
|
function ControlFlowError(error) {
|
|
this.error = error;
|
|
}
|
|
return ControlFlowError;
|
|
})();
|
|
var _HtmlTokenizer = (function() {
|
|
function _HtmlTokenizer(file) {
|
|
this.file = file;
|
|
this.peek = -1;
|
|
this.index = -1;
|
|
this.line = 0;
|
|
this.column = -1;
|
|
this.tokens = [];
|
|
this.errors = [];
|
|
this.input = file.content;
|
|
this.length = file.content.length;
|
|
this._advance();
|
|
}
|
|
_HtmlTokenizer.prototype._processCarriageReturns = function(content) {
|
|
return lang_1.StringWrapper.replaceAll(content, CR_OR_CRLF_REGEXP, '\n');
|
|
};
|
|
_HtmlTokenizer.prototype.tokenize = function() {
|
|
while (this.peek !== $EOF) {
|
|
var start = this._getLocation();
|
|
try {
|
|
if (this._attemptCharCode($LT)) {
|
|
if (this._attemptCharCode($BANG)) {
|
|
if (this._attemptCharCode($LBRACKET)) {
|
|
this._consumeCdata(start);
|
|
} else if (this._attemptCharCode($MINUS)) {
|
|
this._consumeComment(start);
|
|
} else {
|
|
this._consumeDocType(start);
|
|
}
|
|
} else if (this._attemptCharCode($SLASH)) {
|
|
this._consumeTagClose(start);
|
|
} else {
|
|
this._consumeTagOpen(start);
|
|
}
|
|
} else {
|
|
this._consumeText();
|
|
}
|
|
} catch (e) {
|
|
if (e instanceof ControlFlowError) {
|
|
this.errors.push(e.error);
|
|
} else {
|
|
throw e;
|
|
}
|
|
}
|
|
}
|
|
this._beginToken(HtmlTokenType.EOF);
|
|
this._endToken([]);
|
|
return new HtmlTokenizeResult(mergeTextTokens(this.tokens), this.errors);
|
|
};
|
|
_HtmlTokenizer.prototype._getLocation = function() {
|
|
return new parse_util_1.ParseLocation(this.file, this.index, this.line, this.column);
|
|
};
|
|
_HtmlTokenizer.prototype._getSpan = function(start, end) {
|
|
if (lang_1.isBlank(start)) {
|
|
start = this._getLocation();
|
|
}
|
|
if (lang_1.isBlank(end)) {
|
|
end = this._getLocation();
|
|
}
|
|
return new parse_util_1.ParseSourceSpan(start, end);
|
|
};
|
|
_HtmlTokenizer.prototype._beginToken = function(type, start) {
|
|
if (start === void 0) {
|
|
start = null;
|
|
}
|
|
if (lang_1.isBlank(start)) {
|
|
start = this._getLocation();
|
|
}
|
|
this.currentTokenStart = start;
|
|
this.currentTokenType = type;
|
|
};
|
|
_HtmlTokenizer.prototype._endToken = function(parts, end) {
|
|
if (end === void 0) {
|
|
end = null;
|
|
}
|
|
if (lang_1.isBlank(end)) {
|
|
end = this._getLocation();
|
|
}
|
|
var token = new HtmlToken(this.currentTokenType, parts, new parse_util_1.ParseSourceSpan(this.currentTokenStart, end));
|
|
this.tokens.push(token);
|
|
this.currentTokenStart = null;
|
|
this.currentTokenType = null;
|
|
return token;
|
|
};
|
|
_HtmlTokenizer.prototype._createError = function(msg, span) {
|
|
var error = new HtmlTokenError(msg, this.currentTokenType, span);
|
|
this.currentTokenStart = null;
|
|
this.currentTokenType = null;
|
|
return new ControlFlowError(error);
|
|
};
|
|
_HtmlTokenizer.prototype._advance = function() {
|
|
if (this.index >= this.length) {
|
|
throw this._createError(unexpectedCharacterErrorMsg($EOF), this._getSpan());
|
|
}
|
|
if (this.peek === $LF) {
|
|
this.line++;
|
|
this.column = 0;
|
|
} else if (this.peek !== $LF && this.peek !== $CR) {
|
|
this.column++;
|
|
}
|
|
this.index++;
|
|
this.peek = this.index >= this.length ? $EOF : lang_1.StringWrapper.charCodeAt(this.input, this.index);
|
|
};
|
|
_HtmlTokenizer.prototype._attemptCharCode = function(charCode) {
|
|
if (this.peek === charCode) {
|
|
this._advance();
|
|
return true;
|
|
}
|
|
return false;
|
|
};
|
|
_HtmlTokenizer.prototype._attemptCharCodeCaseInsensitive = function(charCode) {
|
|
if (compareCharCodeCaseInsensitive(this.peek, charCode)) {
|
|
this._advance();
|
|
return true;
|
|
}
|
|
return false;
|
|
};
|
|
_HtmlTokenizer.prototype._requireCharCode = function(charCode) {
|
|
var location = this._getLocation();
|
|
if (!this._attemptCharCode(charCode)) {
|
|
throw this._createError(unexpectedCharacterErrorMsg(this.peek), this._getSpan(location, location));
|
|
}
|
|
};
|
|
_HtmlTokenizer.prototype._attemptStr = function(chars) {
|
|
for (var i = 0; i < chars.length; i++) {
|
|
if (!this._attemptCharCode(lang_1.StringWrapper.charCodeAt(chars, i))) {
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
};
|
|
_HtmlTokenizer.prototype._attemptStrCaseInsensitive = function(chars) {
|
|
for (var i = 0; i < chars.length; i++) {
|
|
if (!this._attemptCharCodeCaseInsensitive(lang_1.StringWrapper.charCodeAt(chars, i))) {
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
};
|
|
_HtmlTokenizer.prototype._requireStr = function(chars) {
|
|
var location = this._getLocation();
|
|
if (!this._attemptStr(chars)) {
|
|
throw this._createError(unexpectedCharacterErrorMsg(this.peek), this._getSpan(location));
|
|
}
|
|
};
|
|
_HtmlTokenizer.prototype._attemptCharCodeUntilFn = function(predicate) {
|
|
while (!predicate(this.peek)) {
|
|
this._advance();
|
|
}
|
|
};
|
|
_HtmlTokenizer.prototype._requireCharCodeUntilFn = function(predicate, len) {
|
|
var start = this._getLocation();
|
|
this._attemptCharCodeUntilFn(predicate);
|
|
if (this.index - start.offset < len) {
|
|
throw this._createError(unexpectedCharacterErrorMsg(this.peek), this._getSpan(start, start));
|
|
}
|
|
};
|
|
_HtmlTokenizer.prototype._attemptUntilChar = function(char) {
|
|
while (this.peek !== char) {
|
|
this._advance();
|
|
}
|
|
};
|
|
_HtmlTokenizer.prototype._readChar = function(decodeEntities) {
|
|
if (decodeEntities && this.peek === $AMPERSAND) {
|
|
return this._decodeEntity();
|
|
} else {
|
|
var index = this.index;
|
|
this._advance();
|
|
return this.input[index];
|
|
}
|
|
};
|
|
_HtmlTokenizer.prototype._decodeEntity = function() {
|
|
var start = this._getLocation();
|
|
this._advance();
|
|
if (this._attemptCharCode($HASH)) {
|
|
var isHex = this._attemptCharCode($x) || this._attemptCharCode($X);
|
|
var numberStart = this._getLocation().offset;
|
|
this._attemptCharCodeUntilFn(isDigitEntityEnd);
|
|
if (this.peek != $SEMICOLON) {
|
|
throw this._createError(unexpectedCharacterErrorMsg(this.peek), this._getSpan());
|
|
}
|
|
this._advance();
|
|
var strNum = this.input.substring(numberStart, this.index - 1);
|
|
try {
|
|
var charCode = lang_1.NumberWrapper.parseInt(strNum, isHex ? 16 : 10);
|
|
return lang_1.StringWrapper.fromCharCode(charCode);
|
|
} catch (e) {
|
|
var entity = this.input.substring(start.offset + 1, this.index - 1);
|
|
throw this._createError(unknownEntityErrorMsg(entity), this._getSpan(start));
|
|
}
|
|
} else {
|
|
var startPosition = this._savePosition();
|
|
this._attemptCharCodeUntilFn(isNamedEntityEnd);
|
|
if (this.peek != $SEMICOLON) {
|
|
this._restorePosition(startPosition);
|
|
return '&';
|
|
}
|
|
this._advance();
|
|
var name_1 = this.input.substring(start.offset + 1, this.index - 1);
|
|
var char = html_tags_1.NAMED_ENTITIES[name_1];
|
|
if (lang_1.isBlank(char)) {
|
|
throw this._createError(unknownEntityErrorMsg(name_1), this._getSpan(start));
|
|
}
|
|
return char;
|
|
}
|
|
};
|
|
_HtmlTokenizer.prototype._consumeRawText = function(decodeEntities, firstCharOfEnd, attemptEndRest) {
|
|
var tagCloseStart;
|
|
var textStart = this._getLocation();
|
|
this._beginToken(decodeEntities ? HtmlTokenType.ESCAPABLE_RAW_TEXT : HtmlTokenType.RAW_TEXT, textStart);
|
|
var parts = [];
|
|
while (true) {
|
|
tagCloseStart = this._getLocation();
|
|
if (this._attemptCharCode(firstCharOfEnd) && attemptEndRest()) {
|
|
break;
|
|
}
|
|
if (this.index > tagCloseStart.offset) {
|
|
parts.push(this.input.substring(tagCloseStart.offset, this.index));
|
|
}
|
|
while (this.peek !== firstCharOfEnd) {
|
|
parts.push(this._readChar(decodeEntities));
|
|
}
|
|
}
|
|
return this._endToken([this._processCarriageReturns(parts.join(''))], tagCloseStart);
|
|
};
|
|
_HtmlTokenizer.prototype._consumeComment = function(start) {
|
|
var _this = this;
|
|
this._beginToken(HtmlTokenType.COMMENT_START, start);
|
|
this._requireCharCode($MINUS);
|
|
this._endToken([]);
|
|
var textToken = this._consumeRawText(false, $MINUS, function() {
|
|
return _this._attemptStr('->');
|
|
});
|
|
this._beginToken(HtmlTokenType.COMMENT_END, textToken.sourceSpan.end);
|
|
this._endToken([]);
|
|
};
|
|
_HtmlTokenizer.prototype._consumeCdata = function(start) {
|
|
var _this = this;
|
|
this._beginToken(HtmlTokenType.CDATA_START, start);
|
|
this._requireStr('CDATA[');
|
|
this._endToken([]);
|
|
var textToken = this._consumeRawText(false, $RBRACKET, function() {
|
|
return _this._attemptStr(']>');
|
|
});
|
|
this._beginToken(HtmlTokenType.CDATA_END, textToken.sourceSpan.end);
|
|
this._endToken([]);
|
|
};
|
|
_HtmlTokenizer.prototype._consumeDocType = function(start) {
|
|
this._beginToken(HtmlTokenType.DOC_TYPE, start);
|
|
this._attemptUntilChar($GT);
|
|
this._advance();
|
|
this._endToken([this.input.substring(start.offset + 2, this.index - 1)]);
|
|
};
|
|
_HtmlTokenizer.prototype._consumePrefixAndName = function() {
|
|
var nameOrPrefixStart = this.index;
|
|
var prefix = null;
|
|
while (this.peek !== $COLON && !isPrefixEnd(this.peek)) {
|
|
this._advance();
|
|
}
|
|
var nameStart;
|
|
if (this.peek === $COLON) {
|
|
this._advance();
|
|
prefix = this.input.substring(nameOrPrefixStart, this.index - 1);
|
|
nameStart = this.index;
|
|
} else {
|
|
nameStart = nameOrPrefixStart;
|
|
}
|
|
this._requireCharCodeUntilFn(isNameEnd, this.index === nameStart ? 1 : 0);
|
|
var name = this.input.substring(nameStart, this.index);
|
|
return [prefix, name];
|
|
};
|
|
_HtmlTokenizer.prototype._consumeTagOpen = function(start) {
|
|
var savedPos = this._savePosition();
|
|
var lowercaseTagName;
|
|
try {
|
|
if (!isAsciiLetter(this.peek)) {
|
|
throw this._createError(unexpectedCharacterErrorMsg(this.peek), this._getSpan());
|
|
}
|
|
var nameStart = this.index;
|
|
this._consumeTagOpenStart(start);
|
|
lowercaseTagName = this.input.substring(nameStart, this.index).toLowerCase();
|
|
this._attemptCharCodeUntilFn(isNotWhitespace);
|
|
while (this.peek !== $SLASH && this.peek !== $GT) {
|
|
this._consumeAttributeName();
|
|
this._attemptCharCodeUntilFn(isNotWhitespace);
|
|
if (this._attemptCharCode($EQ)) {
|
|
this._attemptCharCodeUntilFn(isNotWhitespace);
|
|
this._consumeAttributeValue();
|
|
}
|
|
this._attemptCharCodeUntilFn(isNotWhitespace);
|
|
}
|
|
this._consumeTagOpenEnd();
|
|
} catch (e) {
|
|
if (e instanceof ControlFlowError) {
|
|
this._restorePosition(savedPos);
|
|
this._beginToken(HtmlTokenType.TEXT, start);
|
|
this._endToken(['<']);
|
|
return ;
|
|
}
|
|
throw e;
|
|
}
|
|
var contentTokenType = html_tags_1.getHtmlTagDefinition(lowercaseTagName).contentType;
|
|
if (contentTokenType === html_tags_1.HtmlTagContentType.RAW_TEXT) {
|
|
this._consumeRawTextWithTagClose(lowercaseTagName, false);
|
|
} else if (contentTokenType === html_tags_1.HtmlTagContentType.ESCAPABLE_RAW_TEXT) {
|
|
this._consumeRawTextWithTagClose(lowercaseTagName, true);
|
|
}
|
|
};
|
|
_HtmlTokenizer.prototype._consumeRawTextWithTagClose = function(lowercaseTagName, decodeEntities) {
|
|
var _this = this;
|
|
var textToken = this._consumeRawText(decodeEntities, $LT, function() {
|
|
if (!_this._attemptCharCode($SLASH))
|
|
return false;
|
|
_this._attemptCharCodeUntilFn(isNotWhitespace);
|
|
if (!_this._attemptStrCaseInsensitive(lowercaseTagName))
|
|
return false;
|
|
_this._attemptCharCodeUntilFn(isNotWhitespace);
|
|
if (!_this._attemptCharCode($GT))
|
|
return false;
|
|
return true;
|
|
});
|
|
this._beginToken(HtmlTokenType.TAG_CLOSE, textToken.sourceSpan.end);
|
|
this._endToken([null, lowercaseTagName]);
|
|
};
|
|
_HtmlTokenizer.prototype._consumeTagOpenStart = function(start) {
|
|
this._beginToken(HtmlTokenType.TAG_OPEN_START, start);
|
|
var parts = this._consumePrefixAndName();
|
|
this._endToken(parts);
|
|
};
|
|
_HtmlTokenizer.prototype._consumeAttributeName = function() {
|
|
this._beginToken(HtmlTokenType.ATTR_NAME);
|
|
var prefixAndName = this._consumePrefixAndName();
|
|
this._endToken(prefixAndName);
|
|
};
|
|
_HtmlTokenizer.prototype._consumeAttributeValue = function() {
|
|
this._beginToken(HtmlTokenType.ATTR_VALUE);
|
|
var value;
|
|
if (this.peek === $SQ || this.peek === $DQ) {
|
|
var quoteChar = this.peek;
|
|
this._advance();
|
|
var parts = [];
|
|
while (this.peek !== quoteChar) {
|
|
parts.push(this._readChar(true));
|
|
}
|
|
value = parts.join('');
|
|
this._advance();
|
|
} else {
|
|
var valueStart = this.index;
|
|
this._requireCharCodeUntilFn(isNameEnd, 1);
|
|
value = this.input.substring(valueStart, this.index);
|
|
}
|
|
this._endToken([this._processCarriageReturns(value)]);
|
|
};
|
|
_HtmlTokenizer.prototype._consumeTagOpenEnd = function() {
|
|
var tokenType = this._attemptCharCode($SLASH) ? HtmlTokenType.TAG_OPEN_END_VOID : HtmlTokenType.TAG_OPEN_END;
|
|
this._beginToken(tokenType);
|
|
this._requireCharCode($GT);
|
|
this._endToken([]);
|
|
};
|
|
_HtmlTokenizer.prototype._consumeTagClose = function(start) {
|
|
this._beginToken(HtmlTokenType.TAG_CLOSE, start);
|
|
this._attemptCharCodeUntilFn(isNotWhitespace);
|
|
var prefixAndName;
|
|
prefixAndName = this._consumePrefixAndName();
|
|
this._attemptCharCodeUntilFn(isNotWhitespace);
|
|
this._requireCharCode($GT);
|
|
this._endToken(prefixAndName);
|
|
};
|
|
_HtmlTokenizer.prototype._consumeText = function() {
|
|
var start = this._getLocation();
|
|
this._beginToken(HtmlTokenType.TEXT, start);
|
|
var parts = [this._readChar(true)];
|
|
while (!isTextEnd(this.peek)) {
|
|
parts.push(this._readChar(true));
|
|
}
|
|
this._endToken([this._processCarriageReturns(parts.join(''))]);
|
|
};
|
|
_HtmlTokenizer.prototype._savePosition = function() {
|
|
return [this.peek, this.index, this.column, this.line, this.tokens.length];
|
|
};
|
|
_HtmlTokenizer.prototype._restorePosition = function(position) {
|
|
this.peek = position[0];
|
|
this.index = position[1];
|
|
this.column = position[2];
|
|
this.line = position[3];
|
|
var nbTokens = position[4];
|
|
if (nbTokens < this.tokens.length) {
|
|
this.tokens = collection_1.ListWrapper.slice(this.tokens, 0, nbTokens);
|
|
}
|
|
};
|
|
return _HtmlTokenizer;
|
|
})();
|
|
function isNotWhitespace(code) {
|
|
return !isWhitespace(code) || code === $EOF;
|
|
}
|
|
function isWhitespace(code) {
|
|
return (code >= $TAB && code <= $SPACE) || (code === $NBSP);
|
|
}
|
|
function isNameEnd(code) {
|
|
return isWhitespace(code) || code === $GT || code === $SLASH || code === $SQ || code === $DQ || code === $EQ;
|
|
}
|
|
function isPrefixEnd(code) {
|
|
return (code < $a || $z < code) && (code < $A || $Z < code) && (code < $0 || code > $9);
|
|
}
|
|
function isDigitEntityEnd(code) {
|
|
return code == $SEMICOLON || code == $EOF || !isAsciiHexDigit(code);
|
|
}
|
|
function isNamedEntityEnd(code) {
|
|
return code == $SEMICOLON || code == $EOF || !isAsciiLetter(code);
|
|
}
|
|
function isTextEnd(code) {
|
|
return code === $LT || code === $EOF;
|
|
}
|
|
function isAsciiLetter(code) {
|
|
return code >= $a && code <= $z || code >= $A && code <= $Z;
|
|
}
|
|
function isAsciiHexDigit(code) {
|
|
return code >= $a && code <= $f || code >= $A && code <= $F || code >= $0 && code <= $9;
|
|
}
|
|
function compareCharCodeCaseInsensitive(code1, code2) {
|
|
return toUpperCaseCharCode(code1) == toUpperCaseCharCode(code2);
|
|
}
|
|
function toUpperCaseCharCode(code) {
|
|
return code >= $a && code <= $z ? code - $a + $A : code;
|
|
}
|
|
function mergeTextTokens(srcTokens) {
|
|
var dstTokens = [];
|
|
var lastDstToken;
|
|
for (var i = 0; i < srcTokens.length; i++) {
|
|
var token = srcTokens[i];
|
|
if (lang_1.isPresent(lastDstToken) && lastDstToken.type == HtmlTokenType.TEXT && token.type == HtmlTokenType.TEXT) {
|
|
lastDstToken.parts[0] += token.parts[0];
|
|
lastDstToken.sourceSpan.end = token.sourceSpan.end;
|
|
} else {
|
|
lastDstToken = token;
|
|
dstTokens.push(lastDstToken);
|
|
}
|
|
}
|
|
return dstTokens;
|
|
}
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/compiler/runtime_metadata", ["angular2/src/core/di", "angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/compiler/directive_metadata", "angular2/src/core/metadata/directives", "angular2/src/core/linker/directive_resolver", "angular2/src/core/linker/pipe_resolver", "angular2/src/core/linker/view_resolver", "angular2/src/core/linker/directive_lifecycle_reflector", "angular2/src/core/linker/interfaces", "angular2/src/core/reflection/reflection", "angular2/src/core/di", "angular2/src/core/platform_directives_and_pipes", "angular2/src/compiler/util", "angular2/src/compiler/assertions", "angular2/src/compiler/url_resolver"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var __param = (this && this.__param) || function(paramIndex, decorator) {
|
|
return function(target, key) {
|
|
decorator(target, key, paramIndex);
|
|
};
|
|
};
|
|
var di_1 = require("angular2/src/core/di");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var cpl = require("angular2/src/compiler/directive_metadata");
|
|
var md = require("angular2/src/core/metadata/directives");
|
|
var directive_resolver_1 = require("angular2/src/core/linker/directive_resolver");
|
|
var pipe_resolver_1 = require("angular2/src/core/linker/pipe_resolver");
|
|
var view_resolver_1 = require("angular2/src/core/linker/view_resolver");
|
|
var directive_lifecycle_reflector_1 = require("angular2/src/core/linker/directive_lifecycle_reflector");
|
|
var interfaces_1 = require("angular2/src/core/linker/interfaces");
|
|
var reflection_1 = require("angular2/src/core/reflection/reflection");
|
|
var di_2 = require("angular2/src/core/di");
|
|
var platform_directives_and_pipes_1 = require("angular2/src/core/platform_directives_and_pipes");
|
|
var util_1 = require("angular2/src/compiler/util");
|
|
var assertions_1 = require("angular2/src/compiler/assertions");
|
|
var url_resolver_1 = require("angular2/src/compiler/url_resolver");
|
|
var RuntimeMetadataResolver = (function() {
|
|
function RuntimeMetadataResolver(_directiveResolver, _pipeResolver, _viewResolver, _platformDirectives, _platformPipes) {
|
|
this._directiveResolver = _directiveResolver;
|
|
this._pipeResolver = _pipeResolver;
|
|
this._viewResolver = _viewResolver;
|
|
this._platformDirectives = _platformDirectives;
|
|
this._platformPipes = _platformPipes;
|
|
this._directiveCache = new Map();
|
|
this._pipeCache = new Map();
|
|
this._anonymousTypes = new Map();
|
|
this._anonymousTypeIndex = 0;
|
|
}
|
|
RuntimeMetadataResolver.prototype.sanitizeName = function(obj) {
|
|
var result = lang_1.stringify(obj);
|
|
if (result.indexOf('(') < 0) {
|
|
return result;
|
|
}
|
|
var found = this._anonymousTypes.get(obj);
|
|
if (!found) {
|
|
this._anonymousTypes.set(obj, this._anonymousTypeIndex++);
|
|
found = this._anonymousTypes.get(obj);
|
|
}
|
|
return "anonymous_type_" + found + "_";
|
|
};
|
|
RuntimeMetadataResolver.prototype.getDirectiveMetadata = function(directiveType) {
|
|
var meta = this._directiveCache.get(directiveType);
|
|
if (lang_1.isBlank(meta)) {
|
|
var dirMeta = this._directiveResolver.resolve(directiveType);
|
|
var moduleUrl = null;
|
|
var templateMeta = null;
|
|
var changeDetectionStrategy = null;
|
|
if (dirMeta instanceof md.ComponentMetadata) {
|
|
assertions_1.assertArrayOfStrings('styles', dirMeta.styles);
|
|
var cmpMeta = dirMeta;
|
|
moduleUrl = calcModuleUrl(directiveType, cmpMeta);
|
|
var viewMeta = this._viewResolver.resolve(directiveType);
|
|
assertions_1.assertArrayOfStrings('styles', viewMeta.styles);
|
|
templateMeta = new cpl.CompileTemplateMetadata({
|
|
encapsulation: viewMeta.encapsulation,
|
|
template: viewMeta.template,
|
|
templateUrl: viewMeta.templateUrl,
|
|
styles: viewMeta.styles,
|
|
styleUrls: viewMeta.styleUrls
|
|
});
|
|
changeDetectionStrategy = cmpMeta.changeDetection;
|
|
}
|
|
meta = cpl.CompileDirectiveMetadata.create({
|
|
selector: dirMeta.selector,
|
|
exportAs: dirMeta.exportAs,
|
|
isComponent: lang_1.isPresent(templateMeta),
|
|
dynamicLoadable: true,
|
|
type: new cpl.CompileTypeMetadata({
|
|
name: this.sanitizeName(directiveType),
|
|
moduleUrl: moduleUrl,
|
|
runtime: directiveType
|
|
}),
|
|
template: templateMeta,
|
|
changeDetection: changeDetectionStrategy,
|
|
inputs: dirMeta.inputs,
|
|
outputs: dirMeta.outputs,
|
|
host: dirMeta.host,
|
|
lifecycleHooks: interfaces_1.LIFECYCLE_HOOKS_VALUES.filter(function(hook) {
|
|
return directive_lifecycle_reflector_1.hasLifecycleHook(hook, directiveType);
|
|
})
|
|
});
|
|
this._directiveCache.set(directiveType, meta);
|
|
}
|
|
return meta;
|
|
};
|
|
RuntimeMetadataResolver.prototype.getPipeMetadata = function(pipeType) {
|
|
var meta = this._pipeCache.get(pipeType);
|
|
if (lang_1.isBlank(meta)) {
|
|
var pipeMeta = this._pipeResolver.resolve(pipeType);
|
|
var moduleUrl = reflection_1.reflector.importUri(pipeType);
|
|
meta = new cpl.CompilePipeMetadata({
|
|
type: new cpl.CompileTypeMetadata({
|
|
name: this.sanitizeName(pipeType),
|
|
moduleUrl: moduleUrl,
|
|
runtime: pipeType
|
|
}),
|
|
name: pipeMeta.name,
|
|
pure: pipeMeta.pure
|
|
});
|
|
this._pipeCache.set(pipeType, meta);
|
|
}
|
|
return meta;
|
|
};
|
|
RuntimeMetadataResolver.prototype.getViewDirectivesMetadata = function(component) {
|
|
var _this = this;
|
|
var view = this._viewResolver.resolve(component);
|
|
var directives = flattenDirectives(view, this._platformDirectives);
|
|
for (var i = 0; i < directives.length; i++) {
|
|
if (!isValidType(directives[i])) {
|
|
throw new exceptions_1.BaseException("Unexpected directive value '" + lang_1.stringify(directives[i]) + "' on the View of component '" + lang_1.stringify(component) + "'");
|
|
}
|
|
}
|
|
return directives.map(function(type) {
|
|
return _this.getDirectiveMetadata(type);
|
|
});
|
|
};
|
|
RuntimeMetadataResolver.prototype.getViewPipesMetadata = function(component) {
|
|
var _this = this;
|
|
var view = this._viewResolver.resolve(component);
|
|
var pipes = flattenPipes(view, this._platformPipes);
|
|
for (var i = 0; i < pipes.length; i++) {
|
|
if (!isValidType(pipes[i])) {
|
|
throw new exceptions_1.BaseException("Unexpected piped value '" + lang_1.stringify(pipes[i]) + "' on the View of component '" + lang_1.stringify(component) + "'");
|
|
}
|
|
}
|
|
return pipes.map(function(type) {
|
|
return _this.getPipeMetadata(type);
|
|
});
|
|
};
|
|
RuntimeMetadataResolver = __decorate([di_2.Injectable(), __param(3, di_2.Optional()), __param(3, di_2.Inject(platform_directives_and_pipes_1.PLATFORM_DIRECTIVES)), __param(4, di_2.Optional()), __param(4, di_2.Inject(platform_directives_and_pipes_1.PLATFORM_PIPES)), __metadata('design:paramtypes', [directive_resolver_1.DirectiveResolver, pipe_resolver_1.PipeResolver, view_resolver_1.ViewResolver, Array, Array])], RuntimeMetadataResolver);
|
|
return RuntimeMetadataResolver;
|
|
})();
|
|
exports.RuntimeMetadataResolver = RuntimeMetadataResolver;
|
|
function flattenDirectives(view, platformDirectives) {
|
|
var directives = [];
|
|
if (lang_1.isPresent(platformDirectives)) {
|
|
flattenArray(platformDirectives, directives);
|
|
}
|
|
if (lang_1.isPresent(view.directives)) {
|
|
flattenArray(view.directives, directives);
|
|
}
|
|
return directives;
|
|
}
|
|
function flattenPipes(view, platformPipes) {
|
|
var pipes = [];
|
|
if (lang_1.isPresent(platformPipes)) {
|
|
flattenArray(platformPipes, pipes);
|
|
}
|
|
if (lang_1.isPresent(view.pipes)) {
|
|
flattenArray(view.pipes, pipes);
|
|
}
|
|
return pipes;
|
|
}
|
|
function flattenArray(tree, out) {
|
|
for (var i = 0; i < tree.length; i++) {
|
|
var item = di_1.resolveForwardRef(tree[i]);
|
|
if (lang_1.isArray(item)) {
|
|
flattenArray(item, out);
|
|
} else {
|
|
out.push(item);
|
|
}
|
|
}
|
|
}
|
|
function isValidType(value) {
|
|
return lang_1.isPresent(value) && (value instanceof lang_1.Type);
|
|
}
|
|
function calcModuleUrl(type, cmpMetadata) {
|
|
var moduleId = cmpMetadata.moduleId;
|
|
if (lang_1.isPresent(moduleId)) {
|
|
var scheme = url_resolver_1.getUrlScheme(moduleId);
|
|
return lang_1.isPresent(scheme) && scheme.length > 0 ? moduleId : "package:" + moduleId + util_1.MODULE_SUFFIX;
|
|
} else {
|
|
return reflection_1.reflector.importUri(type);
|
|
}
|
|
}
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/router/rules/rules", ["angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/facade/promise", "angular2/src/facade/collection", "angular2/src/router/url_parser", "angular2/src/router/instruction"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var promise_1 = require("angular2/src/facade/promise");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var url_parser_1 = require("angular2/src/router/url_parser");
|
|
var instruction_1 = require("angular2/src/router/instruction");
|
|
var RouteMatch = (function() {
|
|
function RouteMatch() {}
|
|
return RouteMatch;
|
|
})();
|
|
exports.RouteMatch = RouteMatch;
|
|
var PathMatch = (function(_super) {
|
|
__extends(PathMatch, _super);
|
|
function PathMatch(instruction, remaining, remainingAux) {
|
|
_super.call(this);
|
|
this.instruction = instruction;
|
|
this.remaining = remaining;
|
|
this.remainingAux = remainingAux;
|
|
}
|
|
return PathMatch;
|
|
})(RouteMatch);
|
|
exports.PathMatch = PathMatch;
|
|
var RedirectMatch = (function(_super) {
|
|
__extends(RedirectMatch, _super);
|
|
function RedirectMatch(redirectTo, specificity) {
|
|
_super.call(this);
|
|
this.redirectTo = redirectTo;
|
|
this.specificity = specificity;
|
|
}
|
|
return RedirectMatch;
|
|
})(RouteMatch);
|
|
exports.RedirectMatch = RedirectMatch;
|
|
var RedirectRule = (function() {
|
|
function RedirectRule(_pathRecognizer, redirectTo) {
|
|
this._pathRecognizer = _pathRecognizer;
|
|
this.redirectTo = redirectTo;
|
|
this.hash = this._pathRecognizer.hash;
|
|
}
|
|
Object.defineProperty(RedirectRule.prototype, "path", {
|
|
get: function() {
|
|
return this._pathRecognizer.toString();
|
|
},
|
|
set: function(val) {
|
|
throw new exceptions_1.BaseException('you cannot set the path of a RedirectRule directly');
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
RedirectRule.prototype.recognize = function(beginningSegment) {
|
|
var match = null;
|
|
if (lang_1.isPresent(this._pathRecognizer.matchUrl(beginningSegment))) {
|
|
match = new RedirectMatch(this.redirectTo, this._pathRecognizer.specificity);
|
|
}
|
|
return promise_1.PromiseWrapper.resolve(match);
|
|
};
|
|
RedirectRule.prototype.generate = function(params) {
|
|
throw new exceptions_1.BaseException("Tried to generate a redirect.");
|
|
};
|
|
return RedirectRule;
|
|
})();
|
|
exports.RedirectRule = RedirectRule;
|
|
var RouteRule = (function() {
|
|
function RouteRule(_routePath, handler) {
|
|
this._routePath = _routePath;
|
|
this.handler = handler;
|
|
this._cache = new collection_1.Map();
|
|
this.specificity = this._routePath.specificity;
|
|
this.hash = this._routePath.hash;
|
|
this.terminal = this._routePath.terminal;
|
|
}
|
|
Object.defineProperty(RouteRule.prototype, "path", {
|
|
get: function() {
|
|
return this._routePath.toString();
|
|
},
|
|
set: function(val) {
|
|
throw new exceptions_1.BaseException('you cannot set the path of a RouteRule directly');
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
RouteRule.prototype.recognize = function(beginningSegment) {
|
|
var _this = this;
|
|
var res = this._routePath.matchUrl(beginningSegment);
|
|
if (lang_1.isBlank(res)) {
|
|
return null;
|
|
}
|
|
return this.handler.resolveComponentType().then(function(_) {
|
|
var componentInstruction = _this._getInstruction(res.urlPath, res.urlParams, res.allParams);
|
|
return new PathMatch(componentInstruction, res.rest, res.auxiliary);
|
|
});
|
|
};
|
|
RouteRule.prototype.generate = function(params) {
|
|
var generated = this._routePath.generateUrl(params);
|
|
var urlPath = generated.urlPath;
|
|
var urlParams = generated.urlParams;
|
|
return this._getInstruction(urlPath, url_parser_1.convertUrlParamsToArray(urlParams), params);
|
|
};
|
|
RouteRule.prototype.generateComponentPathValues = function(params) {
|
|
return this._routePath.generateUrl(params);
|
|
};
|
|
RouteRule.prototype._getInstruction = function(urlPath, urlParams, params) {
|
|
if (lang_1.isBlank(this.handler.componentType)) {
|
|
throw new exceptions_1.BaseException("Tried to get instruction before the type was loaded.");
|
|
}
|
|
var hashKey = urlPath + '?' + urlParams.join('&');
|
|
if (this._cache.has(hashKey)) {
|
|
return this._cache.get(hashKey);
|
|
}
|
|
var instruction = new instruction_1.ComponentInstruction(urlPath, urlParams, this.handler.data, this.handler.componentType, this.terminal, this.specificity, params);
|
|
this._cache.set(hashKey, instruction);
|
|
return instruction;
|
|
};
|
|
return RouteRule;
|
|
})();
|
|
exports.RouteRule = RouteRule;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/router/rules/route_paths/param_route_path", ["angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/facade/collection", "angular2/src/router/utils", "angular2/src/router/url_parser", "angular2/src/router/rules/route_paths/route_path"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var utils_1 = require("angular2/src/router/utils");
|
|
var url_parser_1 = require("angular2/src/router/url_parser");
|
|
var route_path_1 = require("angular2/src/router/rules/route_paths/route_path");
|
|
var ContinuationPathSegment = (function() {
|
|
function ContinuationPathSegment() {
|
|
this.name = '';
|
|
this.specificity = '';
|
|
this.hash = '...';
|
|
}
|
|
ContinuationPathSegment.prototype.generate = function(params) {
|
|
return '';
|
|
};
|
|
ContinuationPathSegment.prototype.match = function(path) {
|
|
return true;
|
|
};
|
|
return ContinuationPathSegment;
|
|
})();
|
|
var StaticPathSegment = (function() {
|
|
function StaticPathSegment(path) {
|
|
this.path = path;
|
|
this.name = '';
|
|
this.specificity = '2';
|
|
this.hash = path;
|
|
}
|
|
StaticPathSegment.prototype.match = function(path) {
|
|
return path == this.path;
|
|
};
|
|
StaticPathSegment.prototype.generate = function(params) {
|
|
return this.path;
|
|
};
|
|
return StaticPathSegment;
|
|
})();
|
|
var DynamicPathSegment = (function() {
|
|
function DynamicPathSegment(name) {
|
|
this.name = name;
|
|
this.specificity = '1';
|
|
this.hash = ':';
|
|
}
|
|
DynamicPathSegment.prototype.match = function(path) {
|
|
return path.length > 0;
|
|
};
|
|
DynamicPathSegment.prototype.generate = function(params) {
|
|
if (!collection_1.StringMapWrapper.contains(params.map, this.name)) {
|
|
throw new exceptions_1.BaseException("Route generator for '" + this.name + "' was not included in parameters passed.");
|
|
}
|
|
return encodeDynamicSegment(utils_1.normalizeString(params.get(this.name)));
|
|
};
|
|
DynamicPathSegment.paramMatcher = /^:([^\/]+)$/g;
|
|
return DynamicPathSegment;
|
|
})();
|
|
var StarPathSegment = (function() {
|
|
function StarPathSegment(name) {
|
|
this.name = name;
|
|
this.specificity = '0';
|
|
this.hash = '*';
|
|
}
|
|
StarPathSegment.prototype.match = function(path) {
|
|
return true;
|
|
};
|
|
StarPathSegment.prototype.generate = function(params) {
|
|
return utils_1.normalizeString(params.get(this.name));
|
|
};
|
|
StarPathSegment.wildcardMatcher = /^\*([^\/]+)$/g;
|
|
return StarPathSegment;
|
|
})();
|
|
var ParamRoutePath = (function() {
|
|
function ParamRoutePath(routePath) {
|
|
this.routePath = routePath;
|
|
this.terminal = true;
|
|
this._assertValidPath(routePath);
|
|
this._parsePathString(routePath);
|
|
this.specificity = this._calculateSpecificity();
|
|
this.hash = this._calculateHash();
|
|
var lastSegment = this._segments[this._segments.length - 1];
|
|
this.terminal = !(lastSegment instanceof ContinuationPathSegment);
|
|
}
|
|
ParamRoutePath.prototype.matchUrl = function(url) {
|
|
var nextUrlSegment = url;
|
|
var currentUrlSegment;
|
|
var positionalParams = {};
|
|
var captured = [];
|
|
for (var i = 0; i < this._segments.length; i += 1) {
|
|
var pathSegment = this._segments[i];
|
|
currentUrlSegment = nextUrlSegment;
|
|
if (pathSegment instanceof ContinuationPathSegment) {
|
|
break;
|
|
}
|
|
if (lang_1.isPresent(currentUrlSegment)) {
|
|
if (pathSegment instanceof StarPathSegment) {
|
|
positionalParams[pathSegment.name] = currentUrlSegment.toString();
|
|
captured.push(currentUrlSegment.toString());
|
|
nextUrlSegment = null;
|
|
break;
|
|
}
|
|
captured.push(currentUrlSegment.path);
|
|
if (pathSegment instanceof DynamicPathSegment) {
|
|
positionalParams[pathSegment.name] = decodeDynamicSegment(currentUrlSegment.path);
|
|
} else if (!pathSegment.match(currentUrlSegment.path)) {
|
|
return null;
|
|
}
|
|
nextUrlSegment = currentUrlSegment.child;
|
|
} else if (!pathSegment.match('')) {
|
|
return null;
|
|
}
|
|
}
|
|
if (this.terminal && lang_1.isPresent(nextUrlSegment)) {
|
|
return null;
|
|
}
|
|
var urlPath = captured.join('/');
|
|
var auxiliary = [];
|
|
var urlParams = [];
|
|
var allParams = positionalParams;
|
|
if (lang_1.isPresent(currentUrlSegment)) {
|
|
var paramsSegment = url instanceof url_parser_1.RootUrl ? url : currentUrlSegment;
|
|
if (lang_1.isPresent(paramsSegment.params)) {
|
|
allParams = collection_1.StringMapWrapper.merge(paramsSegment.params, positionalParams);
|
|
urlParams = url_parser_1.convertUrlParamsToArray(paramsSegment.params);
|
|
} else {
|
|
allParams = positionalParams;
|
|
}
|
|
auxiliary = currentUrlSegment.auxiliary;
|
|
}
|
|
return new route_path_1.MatchedUrl(urlPath, urlParams, allParams, auxiliary, nextUrlSegment);
|
|
};
|
|
ParamRoutePath.prototype.generateUrl = function(params) {
|
|
var paramTokens = new utils_1.TouchMap(params);
|
|
var path = [];
|
|
for (var i = 0; i < this._segments.length; i++) {
|
|
var segment = this._segments[i];
|
|
if (!(segment instanceof ContinuationPathSegment)) {
|
|
path.push(segment.generate(paramTokens));
|
|
}
|
|
}
|
|
var urlPath = path.join('/');
|
|
var nonPositionalParams = paramTokens.getUnused();
|
|
var urlParams = nonPositionalParams;
|
|
return new route_path_1.GeneratedUrl(urlPath, urlParams);
|
|
};
|
|
ParamRoutePath.prototype.toString = function() {
|
|
return this.routePath;
|
|
};
|
|
ParamRoutePath.prototype._parsePathString = function(routePath) {
|
|
if (routePath.startsWith("/")) {
|
|
routePath = routePath.substring(1);
|
|
}
|
|
var segmentStrings = routePath.split('/');
|
|
this._segments = [];
|
|
var limit = segmentStrings.length - 1;
|
|
for (var i = 0; i <= limit; i++) {
|
|
var segment = segmentStrings[i],
|
|
match;
|
|
if (lang_1.isPresent(match = lang_1.RegExpWrapper.firstMatch(DynamicPathSegment.paramMatcher, segment))) {
|
|
this._segments.push(new DynamicPathSegment(match[1]));
|
|
} else if (lang_1.isPresent(match = lang_1.RegExpWrapper.firstMatch(StarPathSegment.wildcardMatcher, segment))) {
|
|
this._segments.push(new StarPathSegment(match[1]));
|
|
} else if (segment == '...') {
|
|
if (i < limit) {
|
|
throw new exceptions_1.BaseException("Unexpected \"...\" before the end of the path for \"" + routePath + "\".");
|
|
}
|
|
this._segments.push(new ContinuationPathSegment());
|
|
} else {
|
|
this._segments.push(new StaticPathSegment(segment));
|
|
}
|
|
}
|
|
};
|
|
ParamRoutePath.prototype._calculateSpecificity = function() {
|
|
var i,
|
|
length = this._segments.length,
|
|
specificity;
|
|
if (length == 0) {
|
|
specificity += '2';
|
|
} else {
|
|
specificity = '';
|
|
for (i = 0; i < length; i++) {
|
|
specificity += this._segments[i].specificity;
|
|
}
|
|
}
|
|
return specificity;
|
|
};
|
|
ParamRoutePath.prototype._calculateHash = function() {
|
|
var i,
|
|
length = this._segments.length;
|
|
var hashParts = [];
|
|
for (i = 0; i < length; i++) {
|
|
hashParts.push(this._segments[i].hash);
|
|
}
|
|
return hashParts.join('/');
|
|
};
|
|
ParamRoutePath.prototype._assertValidPath = function(path) {
|
|
if (lang_1.StringWrapper.contains(path, '#')) {
|
|
throw new exceptions_1.BaseException("Path \"" + path + "\" should not include \"#\". Use \"HashLocationStrategy\" instead.");
|
|
}
|
|
var illegalCharacter = lang_1.RegExpWrapper.firstMatch(ParamRoutePath.RESERVED_CHARS, path);
|
|
if (lang_1.isPresent(illegalCharacter)) {
|
|
throw new exceptions_1.BaseException("Path \"" + path + "\" contains \"" + illegalCharacter[0] + "\" which is not allowed in a route config.");
|
|
}
|
|
};
|
|
ParamRoutePath.RESERVED_CHARS = lang_1.RegExpWrapper.create('//|\\(|\\)|;|\\?|=');
|
|
return ParamRoutePath;
|
|
})();
|
|
exports.ParamRoutePath = ParamRoutePath;
|
|
var REGEXP_PERCENT = /%/g;
|
|
var REGEXP_SLASH = /\//g;
|
|
var REGEXP_OPEN_PARENT = /\(/g;
|
|
var REGEXP_CLOSE_PARENT = /\)/g;
|
|
var REGEXP_SEMICOLON = /;/g;
|
|
function encodeDynamicSegment(value) {
|
|
if (lang_1.isBlank(value)) {
|
|
return null;
|
|
}
|
|
value = lang_1.StringWrapper.replaceAll(value, REGEXP_PERCENT, '%25');
|
|
value = lang_1.StringWrapper.replaceAll(value, REGEXP_SLASH, '%2F');
|
|
value = lang_1.StringWrapper.replaceAll(value, REGEXP_OPEN_PARENT, '%28');
|
|
value = lang_1.StringWrapper.replaceAll(value, REGEXP_CLOSE_PARENT, '%29');
|
|
value = lang_1.StringWrapper.replaceAll(value, REGEXP_SEMICOLON, '%3B');
|
|
return value;
|
|
}
|
|
var REGEXP_ENC_SEMICOLON = /%3B/ig;
|
|
var REGEXP_ENC_CLOSE_PARENT = /%29/ig;
|
|
var REGEXP_ENC_OPEN_PARENT = /%28/ig;
|
|
var REGEXP_ENC_SLASH = /%2F/ig;
|
|
var REGEXP_ENC_PERCENT = /%25/ig;
|
|
function decodeDynamicSegment(value) {
|
|
if (lang_1.isBlank(value)) {
|
|
return null;
|
|
}
|
|
value = lang_1.StringWrapper.replaceAll(value, REGEXP_ENC_SEMICOLON, ';');
|
|
value = lang_1.StringWrapper.replaceAll(value, REGEXP_ENC_CLOSE_PARENT, ')');
|
|
value = lang_1.StringWrapper.replaceAll(value, REGEXP_ENC_OPEN_PARENT, '(');
|
|
value = lang_1.StringWrapper.replaceAll(value, REGEXP_ENC_SLASH, '/');
|
|
value = lang_1.StringWrapper.replaceAll(value, REGEXP_ENC_PERCENT, '%');
|
|
return value;
|
|
}
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/router/route_config/route_config_normalizer", ["angular2/src/router/route_config/route_config_decorator", "angular2/src/facade/lang", "angular2/src/facade/exceptions"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var route_config_decorator_1 = require("angular2/src/router/route_config/route_config_decorator");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
function normalizeRouteConfig(config, registry) {
|
|
if (config instanceof route_config_decorator_1.AsyncRoute) {
|
|
var wrappedLoader = wrapLoaderToReconfigureRegistry(config.loader, registry);
|
|
return new route_config_decorator_1.AsyncRoute({
|
|
path: config.path,
|
|
loader: wrappedLoader,
|
|
name: config.name,
|
|
data: config.data,
|
|
useAsDefault: config.useAsDefault
|
|
});
|
|
}
|
|
if (config instanceof route_config_decorator_1.Route || config instanceof route_config_decorator_1.Redirect || config instanceof route_config_decorator_1.AuxRoute) {
|
|
return config;
|
|
}
|
|
if ((+!!config.component) + (+!!config.redirectTo) + (+!!config.loader) != 1) {
|
|
throw new exceptions_1.BaseException("Route config should contain exactly one \"component\", \"loader\", or \"redirectTo\" property.");
|
|
}
|
|
if (config.as && config.name) {
|
|
throw new exceptions_1.BaseException("Route config should contain exactly one \"as\" or \"name\" property.");
|
|
}
|
|
if (config.as) {
|
|
config.name = config.as;
|
|
}
|
|
if (config.loader) {
|
|
var wrappedLoader = wrapLoaderToReconfigureRegistry(config.loader, registry);
|
|
return new route_config_decorator_1.AsyncRoute({
|
|
path: config.path,
|
|
loader: wrappedLoader,
|
|
name: config.name,
|
|
data: config.data,
|
|
useAsDefault: config.useAsDefault
|
|
});
|
|
}
|
|
if (config.aux) {
|
|
return new route_config_decorator_1.AuxRoute({
|
|
path: config.aux,
|
|
component: config.component,
|
|
name: config.name
|
|
});
|
|
}
|
|
if (config.component) {
|
|
if (typeof config.component == 'object') {
|
|
var componentDefinitionObject = config.component;
|
|
if (componentDefinitionObject.type == 'constructor') {
|
|
return new route_config_decorator_1.Route({
|
|
path: config.path,
|
|
component: componentDefinitionObject.constructor,
|
|
name: config.name,
|
|
data: config.data,
|
|
useAsDefault: config.useAsDefault
|
|
});
|
|
} else if (componentDefinitionObject.type == 'loader') {
|
|
return new route_config_decorator_1.AsyncRoute({
|
|
path: config.path,
|
|
loader: componentDefinitionObject.loader,
|
|
name: config.name,
|
|
data: config.data,
|
|
useAsDefault: config.useAsDefault
|
|
});
|
|
} else {
|
|
throw new exceptions_1.BaseException("Invalid component type \"" + componentDefinitionObject.type + "\". Valid types are \"constructor\" and \"loader\".");
|
|
}
|
|
}
|
|
return new route_config_decorator_1.Route(config);
|
|
}
|
|
if (config.redirectTo) {
|
|
return new route_config_decorator_1.Redirect({
|
|
path: config.path,
|
|
redirectTo: config.redirectTo
|
|
});
|
|
}
|
|
return config;
|
|
}
|
|
exports.normalizeRouteConfig = normalizeRouteConfig;
|
|
function wrapLoaderToReconfigureRegistry(loader, registry) {
|
|
return function() {
|
|
return loader().then(function(componentType) {
|
|
registry.configFromComponent(componentType);
|
|
return componentType;
|
|
});
|
|
};
|
|
}
|
|
function assertComponentExists(component, path) {
|
|
if (!lang_1.isType(component)) {
|
|
throw new exceptions_1.BaseException("Component for route \"" + path + "\" is not defined, or is not a class.");
|
|
}
|
|
}
|
|
exports.assertComponentExists = assertComponentExists;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/router/lifecycle/route_lifecycle_reflector", ["angular2/src/facade/lang", "angular2/src/router/lifecycle/lifecycle_annotations_impl", "angular2/src/core/reflection/reflection"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var lifecycle_annotations_impl_1 = require("angular2/src/router/lifecycle/lifecycle_annotations_impl");
|
|
var reflection_1 = require("angular2/src/core/reflection/reflection");
|
|
function hasLifecycleHook(e, type) {
|
|
if (!(type instanceof lang_1.Type))
|
|
return false;
|
|
return e.name in type.prototype;
|
|
}
|
|
exports.hasLifecycleHook = hasLifecycleHook;
|
|
function getCanActivateHook(type) {
|
|
var annotations = reflection_1.reflector.annotations(type);
|
|
for (var i = 0; i < annotations.length; i += 1) {
|
|
var annotation = annotations[i];
|
|
if (annotation instanceof lifecycle_annotations_impl_1.CanActivate) {
|
|
return annotation.fn;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
exports.getCanActivateHook = getCanActivateHook;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("rxjs/Subscription", ["rxjs/util/isArray", "rxjs/util/isObject", "rxjs/util/isFunction", "rxjs/util/tryCatch", "rxjs/util/errorObject"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
"use strict";
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var isArray_1 = require("rxjs/util/isArray");
|
|
var isObject_1 = require("rxjs/util/isObject");
|
|
var isFunction_1 = require("rxjs/util/isFunction");
|
|
var tryCatch_1 = require("rxjs/util/tryCatch");
|
|
var errorObject_1 = require("rxjs/util/errorObject");
|
|
var Subscription = (function() {
|
|
function Subscription(_unsubscribe) {
|
|
this.isUnsubscribed = false;
|
|
if (_unsubscribe) {
|
|
this._unsubscribe = _unsubscribe;
|
|
}
|
|
}
|
|
Subscription.prototype.unsubscribe = function() {
|
|
var hasErrors = false;
|
|
var errors;
|
|
if (this.isUnsubscribed) {
|
|
return ;
|
|
}
|
|
this.isUnsubscribed = true;
|
|
var _a = this,
|
|
_unsubscribe = _a._unsubscribe,
|
|
_subscriptions = _a._subscriptions;
|
|
this._subscriptions = null;
|
|
if (isFunction_1.isFunction(_unsubscribe)) {
|
|
var trial = tryCatch_1.tryCatch(_unsubscribe).call(this);
|
|
if (trial === errorObject_1.errorObject) {
|
|
hasErrors = true;
|
|
(errors = errors || []).push(errorObject_1.errorObject.e);
|
|
}
|
|
}
|
|
if (isArray_1.isArray(_subscriptions)) {
|
|
var index = -1;
|
|
var len = _subscriptions.length;
|
|
while (++index < len) {
|
|
var sub = _subscriptions[index];
|
|
if (isObject_1.isObject(sub)) {
|
|
var trial = tryCatch_1.tryCatch(sub.unsubscribe).call(sub);
|
|
if (trial === errorObject_1.errorObject) {
|
|
hasErrors = true;
|
|
errors = errors || [];
|
|
var err = errorObject_1.errorObject.e;
|
|
if (err instanceof UnsubscriptionError) {
|
|
errors = errors.concat(err.errors);
|
|
} else {
|
|
errors.push(err);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (hasErrors) {
|
|
throw new UnsubscriptionError(errors);
|
|
}
|
|
};
|
|
Subscription.prototype.add = function(subscription) {
|
|
if (!subscription || (subscription === this) || (subscription === Subscription.EMPTY)) {
|
|
return ;
|
|
}
|
|
var sub = subscription;
|
|
switch (typeof subscription) {
|
|
case 'function':
|
|
sub = new Subscription(subscription);
|
|
case 'object':
|
|
if (sub.isUnsubscribed || typeof sub.unsubscribe !== 'function') {
|
|
break;
|
|
} else if (this.isUnsubscribed) {
|
|
sub.unsubscribe();
|
|
} else {
|
|
(this._subscriptions || (this._subscriptions = [])).push(sub);
|
|
}
|
|
break;
|
|
default:
|
|
throw new Error('Unrecognized subscription ' + subscription + ' added to Subscription.');
|
|
}
|
|
};
|
|
Subscription.prototype.remove = function(subscription) {
|
|
if (subscription == null || (subscription === this) || (subscription === Subscription.EMPTY)) {
|
|
return ;
|
|
}
|
|
var subscriptions = this._subscriptions;
|
|
if (subscriptions) {
|
|
var subscriptionIndex = subscriptions.indexOf(subscription);
|
|
if (subscriptionIndex !== -1) {
|
|
subscriptions.splice(subscriptionIndex, 1);
|
|
}
|
|
}
|
|
};
|
|
Subscription.EMPTY = (function(empty) {
|
|
empty.isUnsubscribed = true;
|
|
return empty;
|
|
}(new Subscription()));
|
|
return Subscription;
|
|
}());
|
|
exports.Subscription = Subscription;
|
|
var UnsubscriptionError = (function(_super) {
|
|
__extends(UnsubscriptionError, _super);
|
|
function UnsubscriptionError(errors) {
|
|
_super.call(this, 'unsubscriptoin error(s)');
|
|
this.errors = errors;
|
|
this.name = 'UnsubscriptionError';
|
|
}
|
|
return UnsubscriptionError;
|
|
}(Error));
|
|
exports.UnsubscriptionError = UnsubscriptionError;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/reflection/reflection", ["angular2/src/core/reflection/reflector", "angular2/src/core/reflection/reflector", "angular2/src/core/reflection/reflection_capabilities"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var reflector_1 = require("angular2/src/core/reflection/reflector");
|
|
var reflector_2 = require("angular2/src/core/reflection/reflector");
|
|
exports.Reflector = reflector_2.Reflector;
|
|
exports.ReflectionInfo = reflector_2.ReflectionInfo;
|
|
var reflection_capabilities_1 = require("angular2/src/core/reflection/reflection_capabilities");
|
|
exports.reflector = new reflector_1.Reflector(new reflection_capabilities_1.ReflectionCapabilities());
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/change_detection/abstract_change_detector", ["angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/core/change_detection/change_detection_util", "angular2/src/core/change_detection/change_detector_ref", "angular2/src/core/change_detection/exceptions", "angular2/src/core/change_detection/parser/locals", "angular2/src/core/change_detection/constants", "angular2/src/core/profile/profile", "angular2/src/facade/async"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var change_detection_util_1 = require("angular2/src/core/change_detection/change_detection_util");
|
|
var change_detector_ref_1 = require("angular2/src/core/change_detection/change_detector_ref");
|
|
var exceptions_1 = require("angular2/src/core/change_detection/exceptions");
|
|
var locals_1 = require("angular2/src/core/change_detection/parser/locals");
|
|
var constants_1 = require("angular2/src/core/change_detection/constants");
|
|
var profile_1 = require("angular2/src/core/profile/profile");
|
|
var async_1 = require("angular2/src/facade/async");
|
|
var _scope_check = profile_1.wtfCreateScope("ChangeDetector#check(ascii id, bool throwOnChange)");
|
|
var _Context = (function() {
|
|
function _Context(element, componentElement, context, locals, injector, expression) {
|
|
this.element = element;
|
|
this.componentElement = componentElement;
|
|
this.context = context;
|
|
this.locals = locals;
|
|
this.injector = injector;
|
|
this.expression = expression;
|
|
}
|
|
return _Context;
|
|
})();
|
|
var AbstractChangeDetector = (function() {
|
|
function AbstractChangeDetector(id, numberOfPropertyProtoRecords, bindingTargets, directiveIndices, strategy) {
|
|
this.id = id;
|
|
this.numberOfPropertyProtoRecords = numberOfPropertyProtoRecords;
|
|
this.bindingTargets = bindingTargets;
|
|
this.directiveIndices = directiveIndices;
|
|
this.strategy = strategy;
|
|
this.contentChildren = [];
|
|
this.viewChildren = [];
|
|
this.state = constants_1.ChangeDetectorState.NeverChecked;
|
|
this.locals = null;
|
|
this.mode = null;
|
|
this.pipes = null;
|
|
this.ref = new change_detector_ref_1.ChangeDetectorRef_(this);
|
|
}
|
|
AbstractChangeDetector.prototype.addContentChild = function(cd) {
|
|
this.contentChildren.push(cd);
|
|
cd.parent = this;
|
|
};
|
|
AbstractChangeDetector.prototype.removeContentChild = function(cd) {
|
|
collection_1.ListWrapper.remove(this.contentChildren, cd);
|
|
};
|
|
AbstractChangeDetector.prototype.addViewChild = function(cd) {
|
|
this.viewChildren.push(cd);
|
|
cd.parent = this;
|
|
};
|
|
AbstractChangeDetector.prototype.removeViewChild = function(cd) {
|
|
collection_1.ListWrapper.remove(this.viewChildren, cd);
|
|
};
|
|
AbstractChangeDetector.prototype.remove = function() {
|
|
this.parent.removeContentChild(this);
|
|
};
|
|
AbstractChangeDetector.prototype.handleEvent = function(eventName, elIndex, event) {
|
|
if (!this.hydrated()) {
|
|
this.throwDehydratedError(this.id + " -> " + eventName);
|
|
}
|
|
try {
|
|
var locals = new Map();
|
|
locals.set('$event', event);
|
|
var res = !this.handleEventInternal(eventName, elIndex, new locals_1.Locals(this.locals, locals));
|
|
this.markPathToRootAsCheckOnce();
|
|
return res;
|
|
} catch (e) {
|
|
var c = this.dispatcher.getDebugContext(null, elIndex, null);
|
|
var context = lang_1.isPresent(c) ? new exceptions_1.EventEvaluationErrorContext(c.element, c.componentElement, c.context, c.locals, c.injector) : null;
|
|
throw new exceptions_1.EventEvaluationError(eventName, e, e.stack, context);
|
|
}
|
|
};
|
|
AbstractChangeDetector.prototype.handleEventInternal = function(eventName, elIndex, locals) {
|
|
return false;
|
|
};
|
|
AbstractChangeDetector.prototype.detectChanges = function() {
|
|
this.runDetectChanges(false);
|
|
};
|
|
AbstractChangeDetector.prototype.checkNoChanges = function() {
|
|
if (lang_1.assertionsEnabled()) {
|
|
this.runDetectChanges(true);
|
|
}
|
|
};
|
|
AbstractChangeDetector.prototype.runDetectChanges = function(throwOnChange) {
|
|
if (this.mode === constants_1.ChangeDetectionStrategy.Detached || this.mode === constants_1.ChangeDetectionStrategy.Checked || this.state === constants_1.ChangeDetectorState.Errored)
|
|
return ;
|
|
var s = _scope_check(this.id, throwOnChange);
|
|
this.detectChangesInRecords(throwOnChange);
|
|
this._detectChangesContentChildren(throwOnChange);
|
|
if (!throwOnChange)
|
|
this.afterContentLifecycleCallbacks();
|
|
this._detectChangesInViewChildren(throwOnChange);
|
|
if (!throwOnChange)
|
|
this.afterViewLifecycleCallbacks();
|
|
if (this.mode === constants_1.ChangeDetectionStrategy.CheckOnce)
|
|
this.mode = constants_1.ChangeDetectionStrategy.Checked;
|
|
this.state = constants_1.ChangeDetectorState.CheckedBefore;
|
|
profile_1.wtfLeave(s);
|
|
};
|
|
AbstractChangeDetector.prototype.detectChangesInRecords = function(throwOnChange) {
|
|
if (!this.hydrated()) {
|
|
this.throwDehydratedError(this.id);
|
|
}
|
|
try {
|
|
this.detectChangesInRecordsInternal(throwOnChange);
|
|
} catch (e) {
|
|
if (!(e instanceof exceptions_1.ExpressionChangedAfterItHasBeenCheckedException)) {
|
|
this.state = constants_1.ChangeDetectorState.Errored;
|
|
}
|
|
this._throwError(e, e.stack);
|
|
}
|
|
};
|
|
AbstractChangeDetector.prototype.detectChangesInRecordsInternal = function(throwOnChange) {};
|
|
AbstractChangeDetector.prototype.hydrate = function(context, locals, dispatcher, pipes) {
|
|
this.dispatcher = dispatcher;
|
|
this.mode = change_detection_util_1.ChangeDetectionUtil.changeDetectionMode(this.strategy);
|
|
this.context = context;
|
|
this.locals = locals;
|
|
this.pipes = pipes;
|
|
this.hydrateDirectives(dispatcher);
|
|
this.state = constants_1.ChangeDetectorState.NeverChecked;
|
|
};
|
|
AbstractChangeDetector.prototype.hydrateDirectives = function(dispatcher) {};
|
|
AbstractChangeDetector.prototype.dehydrate = function() {
|
|
this.dehydrateDirectives(true);
|
|
this._unsubscribeFromOutputs();
|
|
this.dispatcher = null;
|
|
this.context = null;
|
|
this.locals = null;
|
|
this.pipes = null;
|
|
};
|
|
AbstractChangeDetector.prototype.dehydrateDirectives = function(destroyPipes) {};
|
|
AbstractChangeDetector.prototype.hydrated = function() {
|
|
return lang_1.isPresent(this.context);
|
|
};
|
|
AbstractChangeDetector.prototype.destroyRecursive = function() {
|
|
this.dispatcher.notifyOnDestroy();
|
|
this.dehydrate();
|
|
var children = this.contentChildren;
|
|
for (var i = 0; i < children.length; i++) {
|
|
children[i].destroyRecursive();
|
|
}
|
|
children = this.viewChildren;
|
|
for (var i = 0; i < children.length; i++) {
|
|
children[i].destroyRecursive();
|
|
}
|
|
};
|
|
AbstractChangeDetector.prototype.afterContentLifecycleCallbacks = function() {
|
|
this.dispatcher.notifyAfterContentChecked();
|
|
this.afterContentLifecycleCallbacksInternal();
|
|
};
|
|
AbstractChangeDetector.prototype.afterContentLifecycleCallbacksInternal = function() {};
|
|
AbstractChangeDetector.prototype.afterViewLifecycleCallbacks = function() {
|
|
this.dispatcher.notifyAfterViewChecked();
|
|
this.afterViewLifecycleCallbacksInternal();
|
|
};
|
|
AbstractChangeDetector.prototype.afterViewLifecycleCallbacksInternal = function() {};
|
|
AbstractChangeDetector.prototype._detectChangesContentChildren = function(throwOnChange) {
|
|
var c = this.contentChildren;
|
|
for (var i = 0; i < c.length; ++i) {
|
|
c[i].runDetectChanges(throwOnChange);
|
|
}
|
|
};
|
|
AbstractChangeDetector.prototype._detectChangesInViewChildren = function(throwOnChange) {
|
|
var c = this.viewChildren;
|
|
for (var i = 0; i < c.length; ++i) {
|
|
c[i].runDetectChanges(throwOnChange);
|
|
}
|
|
};
|
|
AbstractChangeDetector.prototype.markAsCheckOnce = function() {
|
|
this.mode = constants_1.ChangeDetectionStrategy.CheckOnce;
|
|
};
|
|
AbstractChangeDetector.prototype.markPathToRootAsCheckOnce = function() {
|
|
var c = this;
|
|
while (lang_1.isPresent(c) && c.mode !== constants_1.ChangeDetectionStrategy.Detached) {
|
|
if (c.mode === constants_1.ChangeDetectionStrategy.Checked)
|
|
c.mode = constants_1.ChangeDetectionStrategy.CheckOnce;
|
|
c = c.parent;
|
|
}
|
|
};
|
|
AbstractChangeDetector.prototype._unsubscribeFromOutputs = function() {
|
|
if (lang_1.isPresent(this.outputSubscriptions)) {
|
|
for (var i = 0; i < this.outputSubscriptions.length; ++i) {
|
|
async_1.ObservableWrapper.dispose(this.outputSubscriptions[i]);
|
|
this.outputSubscriptions[i] = null;
|
|
}
|
|
}
|
|
};
|
|
AbstractChangeDetector.prototype.getDirectiveFor = function(directives, index) {
|
|
return directives.getDirectiveFor(this.directiveIndices[index]);
|
|
};
|
|
AbstractChangeDetector.prototype.getDetectorFor = function(directives, index) {
|
|
return directives.getDetectorFor(this.directiveIndices[index]);
|
|
};
|
|
AbstractChangeDetector.prototype.notifyDispatcher = function(value) {
|
|
this.dispatcher.notifyOnBinding(this._currentBinding(), value);
|
|
};
|
|
AbstractChangeDetector.prototype.logBindingUpdate = function(value) {
|
|
this.dispatcher.logBindingUpdate(this._currentBinding(), value);
|
|
};
|
|
AbstractChangeDetector.prototype.addChange = function(changes, oldValue, newValue) {
|
|
if (lang_1.isBlank(changes)) {
|
|
changes = {};
|
|
}
|
|
changes[this._currentBinding().name] = change_detection_util_1.ChangeDetectionUtil.simpleChange(oldValue, newValue);
|
|
return changes;
|
|
};
|
|
AbstractChangeDetector.prototype._throwError = function(exception, stack) {
|
|
var error;
|
|
try {
|
|
var c = this.dispatcher.getDebugContext(null, this._currentBinding().elementIndex, null);
|
|
var context = lang_1.isPresent(c) ? new _Context(c.element, c.componentElement, c.context, c.locals, c.injector, this._currentBinding().debug) : null;
|
|
error = new exceptions_1.ChangeDetectionError(this._currentBinding().debug, exception, stack, context);
|
|
} catch (e) {
|
|
error = new exceptions_1.ChangeDetectionError(null, exception, stack, null);
|
|
}
|
|
throw error;
|
|
};
|
|
AbstractChangeDetector.prototype.throwOnChangeError = function(oldValue, newValue) {
|
|
throw new exceptions_1.ExpressionChangedAfterItHasBeenCheckedException(this._currentBinding().debug, oldValue, newValue, null);
|
|
};
|
|
AbstractChangeDetector.prototype.throwDehydratedError = function(detail) {
|
|
throw new exceptions_1.DehydratedException(detail);
|
|
};
|
|
AbstractChangeDetector.prototype._currentBinding = function() {
|
|
return this.bindingTargets[this.propertyBindingIndex];
|
|
};
|
|
return AbstractChangeDetector;
|
|
})();
|
|
exports.AbstractChangeDetector = AbstractChangeDetector;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/change_detection/change_detection_jit_generator", ["angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/facade/collection", "angular2/src/core/change_detection/abstract_change_detector", "angular2/src/core/change_detection/change_detection_util", "angular2/src/core/change_detection/proto_record", "angular2/src/core/change_detection/codegen_name_util", "angular2/src/core/change_detection/codegen_logic_util", "angular2/src/core/change_detection/codegen_facade", "angular2/src/core/change_detection/constants", "angular2/src/core/change_detection/proto_change_detector"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var abstract_change_detector_1 = require("angular2/src/core/change_detection/abstract_change_detector");
|
|
var change_detection_util_1 = require("angular2/src/core/change_detection/change_detection_util");
|
|
var proto_record_1 = require("angular2/src/core/change_detection/proto_record");
|
|
var codegen_name_util_1 = require("angular2/src/core/change_detection/codegen_name_util");
|
|
var codegen_logic_util_1 = require("angular2/src/core/change_detection/codegen_logic_util");
|
|
var codegen_facade_1 = require("angular2/src/core/change_detection/codegen_facade");
|
|
var constants_1 = require("angular2/src/core/change_detection/constants");
|
|
var proto_change_detector_1 = require("angular2/src/core/change_detection/proto_change_detector");
|
|
var IS_CHANGED_LOCAL = "isChanged";
|
|
var CHANGES_LOCAL = "changes";
|
|
var ChangeDetectorJITGenerator = (function() {
|
|
function ChangeDetectorJITGenerator(definition, changeDetectionUtilVarName, abstractChangeDetectorVarName, changeDetectorStateVarName) {
|
|
this.changeDetectionUtilVarName = changeDetectionUtilVarName;
|
|
this.abstractChangeDetectorVarName = abstractChangeDetectorVarName;
|
|
this.changeDetectorStateVarName = changeDetectorStateVarName;
|
|
var propertyBindingRecords = proto_change_detector_1.createPropertyRecords(definition);
|
|
var eventBindingRecords = proto_change_detector_1.createEventRecords(definition);
|
|
var propertyBindingTargets = definition.bindingRecords.map(function(b) {
|
|
return b.target;
|
|
});
|
|
this.id = definition.id;
|
|
this.changeDetectionStrategy = definition.strategy;
|
|
this.genConfig = definition.genConfig;
|
|
this.records = propertyBindingRecords;
|
|
this.propertyBindingTargets = propertyBindingTargets;
|
|
this.eventBindings = eventBindingRecords;
|
|
this.directiveRecords = definition.directiveRecords;
|
|
this._names = new codegen_name_util_1.CodegenNameUtil(this.records, this.eventBindings, this.directiveRecords, this.changeDetectionUtilVarName);
|
|
this._logic = new codegen_logic_util_1.CodegenLogicUtil(this._names, this.changeDetectionUtilVarName, this.changeDetectorStateVarName);
|
|
this.typeName = codegen_name_util_1.sanitizeName("ChangeDetector_" + this.id);
|
|
}
|
|
ChangeDetectorJITGenerator.prototype.generate = function() {
|
|
var factorySource = "\n " + this.generateSource() + "\n return function() {\n return new " + this.typeName + "();\n }\n ";
|
|
return new Function(this.abstractChangeDetectorVarName, this.changeDetectionUtilVarName, this.changeDetectorStateVarName, factorySource)(abstract_change_detector_1.AbstractChangeDetector, change_detection_util_1.ChangeDetectionUtil, constants_1.ChangeDetectorState);
|
|
};
|
|
ChangeDetectorJITGenerator.prototype.generateSource = function() {
|
|
return "\n var " + this.typeName + " = function " + this.typeName + "() {\n " + this.abstractChangeDetectorVarName + ".call(\n this, " + JSON.stringify(this.id) + ", " + this.records.length + ",\n " + this.typeName + ".gen_propertyBindingTargets, " + this.typeName + ".gen_directiveIndices,\n " + codegen_facade_1.codify(this.changeDetectionStrategy) + ");\n this.dehydrateDirectives(false);\n }\n\n " + this.typeName + ".prototype = Object.create(" + this.abstractChangeDetectorVarName + ".prototype);\n\n " + this.typeName + ".prototype.detectChangesInRecordsInternal = function(throwOnChange) {\n " + this._names.genInitLocals() + "\n var " + IS_CHANGED_LOCAL + " = false;\n var " + CHANGES_LOCAL + " = null;\n\n " + this._genAllRecords(this.records) + "\n }\n\n " + this._maybeGenHandleEventInternal() + "\n\n " + this._maybeGenAfterContentLifecycleCallbacks() + "\n\n " + this._maybeGenAfterViewLifecycleCallbacks() + "\n\n " + this._maybeGenHydrateDirectives() + "\n\n " + this._maybeGenDehydrateDirectives() + "\n\n " + this._genPropertyBindingTargets() + "\n\n " + this._genDirectiveIndices() + "\n ";
|
|
};
|
|
ChangeDetectorJITGenerator.prototype._genPropertyBindingTargets = function() {
|
|
var targets = this._logic.genPropertyBindingTargets(this.propertyBindingTargets, this.genConfig.genDebugInfo);
|
|
return this.typeName + ".gen_propertyBindingTargets = " + targets + ";";
|
|
};
|
|
ChangeDetectorJITGenerator.prototype._genDirectiveIndices = function() {
|
|
var indices = this._logic.genDirectiveIndices(this.directiveRecords);
|
|
return this.typeName + ".gen_directiveIndices = " + indices + ";";
|
|
};
|
|
ChangeDetectorJITGenerator.prototype._maybeGenHandleEventInternal = function() {
|
|
var _this = this;
|
|
if (this.eventBindings.length > 0) {
|
|
var handlers = this.eventBindings.map(function(eb) {
|
|
return _this._genEventBinding(eb);
|
|
}).join("\n");
|
|
return "\n " + this.typeName + ".prototype.handleEventInternal = function(eventName, elIndex, locals) {\n var " + this._names.getPreventDefaultAccesor() + " = false;\n " + this._names.genInitEventLocals() + "\n " + handlers + "\n return " + this._names.getPreventDefaultAccesor() + ";\n }\n ";
|
|
} else {
|
|
return '';
|
|
}
|
|
};
|
|
ChangeDetectorJITGenerator.prototype._genEventBinding = function(eb) {
|
|
var _this = this;
|
|
var codes = [];
|
|
this._endOfBlockIdxs = [];
|
|
collection_1.ListWrapper.forEachWithIndex(eb.records, function(r, i) {
|
|
var code;
|
|
if (r.isConditionalSkipRecord()) {
|
|
code = _this._genConditionalSkip(r, _this._names.getEventLocalName(eb, i));
|
|
} else if (r.isUnconditionalSkipRecord()) {
|
|
code = _this._genUnconditionalSkip(r);
|
|
} else {
|
|
code = _this._genEventBindingEval(eb, r);
|
|
}
|
|
code += _this._genEndOfSkipBlock(i);
|
|
codes.push(code);
|
|
});
|
|
return "\n if (eventName === \"" + eb.eventName + "\" && elIndex === " + eb.elIndex + ") {\n " + codes.join("\n") + "\n }";
|
|
};
|
|
ChangeDetectorJITGenerator.prototype._genEventBindingEval = function(eb, r) {
|
|
if (r.lastInBinding) {
|
|
var evalRecord = this._logic.genEventBindingEvalValue(eb, r);
|
|
var markPath = this._genMarkPathToRootAsCheckOnce(r);
|
|
var prevDefault = this._genUpdatePreventDefault(eb, r);
|
|
return markPath + "\n" + evalRecord + "\n" + prevDefault;
|
|
} else {
|
|
return this._logic.genEventBindingEvalValue(eb, r);
|
|
}
|
|
};
|
|
ChangeDetectorJITGenerator.prototype._genMarkPathToRootAsCheckOnce = function(r) {
|
|
var br = r.bindingRecord;
|
|
if (br.isDefaultChangeDetection()) {
|
|
return "";
|
|
} else {
|
|
return this._names.getDetectorName(br.directiveRecord.directiveIndex) + ".markPathToRootAsCheckOnce();";
|
|
}
|
|
};
|
|
ChangeDetectorJITGenerator.prototype._genUpdatePreventDefault = function(eb, r) {
|
|
var local = this._names.getEventLocalName(eb, r.selfIndex);
|
|
return "if (" + local + " === false) { " + this._names.getPreventDefaultAccesor() + " = true};";
|
|
};
|
|
ChangeDetectorJITGenerator.prototype._maybeGenDehydrateDirectives = function() {
|
|
var destroyPipesCode = this._names.genPipeOnDestroy();
|
|
var destroyDirectivesCode = this._logic.genDirectivesOnDestroy(this.directiveRecords);
|
|
var dehydrateFieldsCode = this._names.genDehydrateFields();
|
|
if (!destroyPipesCode && !destroyDirectivesCode && !dehydrateFieldsCode)
|
|
return '';
|
|
return this.typeName + ".prototype.dehydrateDirectives = function(destroyPipes) {\n if (destroyPipes) {\n " + destroyPipesCode + "\n " + destroyDirectivesCode + "\n }\n " + dehydrateFieldsCode + "\n }";
|
|
};
|
|
ChangeDetectorJITGenerator.prototype._maybeGenHydrateDirectives = function() {
|
|
var hydrateDirectivesCode = this._logic.genHydrateDirectives(this.directiveRecords);
|
|
var hydrateDetectorsCode = this._logic.genHydrateDetectors(this.directiveRecords);
|
|
if (!hydrateDirectivesCode && !hydrateDetectorsCode)
|
|
return '';
|
|
return this.typeName + ".prototype.hydrateDirectives = function(directives) {\n " + hydrateDirectivesCode + "\n " + hydrateDetectorsCode + "\n }";
|
|
};
|
|
ChangeDetectorJITGenerator.prototype._maybeGenAfterContentLifecycleCallbacks = function() {
|
|
var notifications = this._logic.genContentLifecycleCallbacks(this.directiveRecords);
|
|
if (notifications.length > 0) {
|
|
var directiveNotifications = notifications.join("\n");
|
|
return "\n " + this.typeName + ".prototype.afterContentLifecycleCallbacksInternal = function() {\n " + directiveNotifications + "\n }\n ";
|
|
} else {
|
|
return '';
|
|
}
|
|
};
|
|
ChangeDetectorJITGenerator.prototype._maybeGenAfterViewLifecycleCallbacks = function() {
|
|
var notifications = this._logic.genViewLifecycleCallbacks(this.directiveRecords);
|
|
if (notifications.length > 0) {
|
|
var directiveNotifications = notifications.join("\n");
|
|
return "\n " + this.typeName + ".prototype.afterViewLifecycleCallbacksInternal = function() {\n " + directiveNotifications + "\n }\n ";
|
|
} else {
|
|
return '';
|
|
}
|
|
};
|
|
ChangeDetectorJITGenerator.prototype._genAllRecords = function(rs) {
|
|
var codes = [];
|
|
this._endOfBlockIdxs = [];
|
|
for (var i = 0; i < rs.length; i++) {
|
|
var code = void 0;
|
|
var r = rs[i];
|
|
if (r.isLifeCycleRecord()) {
|
|
code = this._genDirectiveLifecycle(r);
|
|
} else if (r.isPipeRecord()) {
|
|
code = this._genPipeCheck(r);
|
|
} else if (r.isConditionalSkipRecord()) {
|
|
code = this._genConditionalSkip(r, this._names.getLocalName(r.contextIndex));
|
|
} else if (r.isUnconditionalSkipRecord()) {
|
|
code = this._genUnconditionalSkip(r);
|
|
} else {
|
|
code = this._genReferenceCheck(r);
|
|
}
|
|
code = "\n " + this._maybeFirstInBinding(r) + "\n " + code + "\n " + this._maybeGenLastInDirective(r) + "\n " + this._genEndOfSkipBlock(i) + "\n ";
|
|
codes.push(code);
|
|
}
|
|
return codes.join("\n");
|
|
};
|
|
ChangeDetectorJITGenerator.prototype._genConditionalSkip = function(r, condition) {
|
|
var maybeNegate = r.mode === proto_record_1.RecordType.SkipRecordsIf ? '!' : '';
|
|
this._endOfBlockIdxs.push(r.fixedArgs[0] - 1);
|
|
return "if (" + maybeNegate + condition + ") {";
|
|
};
|
|
ChangeDetectorJITGenerator.prototype._genUnconditionalSkip = function(r) {
|
|
this._endOfBlockIdxs.pop();
|
|
this._endOfBlockIdxs.push(r.fixedArgs[0] - 1);
|
|
return "} else {";
|
|
};
|
|
ChangeDetectorJITGenerator.prototype._genEndOfSkipBlock = function(protoIndex) {
|
|
if (!collection_1.ListWrapper.isEmpty(this._endOfBlockIdxs)) {
|
|
var endOfBlock = collection_1.ListWrapper.last(this._endOfBlockIdxs);
|
|
if (protoIndex === endOfBlock) {
|
|
this._endOfBlockIdxs.pop();
|
|
return '}';
|
|
}
|
|
}
|
|
return '';
|
|
};
|
|
ChangeDetectorJITGenerator.prototype._genDirectiveLifecycle = function(r) {
|
|
if (r.name === "DoCheck") {
|
|
return this._genOnCheck(r);
|
|
} else if (r.name === "OnInit") {
|
|
return this._genOnInit(r);
|
|
} else if (r.name === "OnChanges") {
|
|
return this._genOnChange(r);
|
|
} else {
|
|
throw new exceptions_1.BaseException("Unknown lifecycle event '" + r.name + "'");
|
|
}
|
|
};
|
|
ChangeDetectorJITGenerator.prototype._genPipeCheck = function(r) {
|
|
var _this = this;
|
|
var context = this._names.getLocalName(r.contextIndex);
|
|
var argString = r.args.map(function(arg) {
|
|
return _this._names.getLocalName(arg);
|
|
}).join(", ");
|
|
var oldValue = this._names.getFieldName(r.selfIndex);
|
|
var newValue = this._names.getLocalName(r.selfIndex);
|
|
var pipe = this._names.getPipeName(r.selfIndex);
|
|
var pipeName = r.name;
|
|
var init = "\n if (" + pipe + " === " + this.changeDetectionUtilVarName + ".uninitialized) {\n " + pipe + " = " + this._names.getPipesAccessorName() + ".get('" + pipeName + "');\n }\n ";
|
|
var read = newValue + " = " + pipe + ".pipe.transform(" + context + ", [" + argString + "]);";
|
|
var contexOrArgCheck = r.args.map(function(a) {
|
|
return _this._names.getChangeName(a);
|
|
});
|
|
contexOrArgCheck.push(this._names.getChangeName(r.contextIndex));
|
|
var condition = "!" + pipe + ".pure || (" + contexOrArgCheck.join(" || ") + ")";
|
|
var check = "\n " + this._genThrowOnChangeCheck(oldValue, newValue) + "\n if (" + this.changeDetectionUtilVarName + ".looseNotIdentical(" + oldValue + ", " + newValue + ")) {\n " + newValue + " = " + this.changeDetectionUtilVarName + ".unwrapValue(" + newValue + ")\n " + this._genChangeMarker(r) + "\n " + this._genUpdateDirectiveOrElement(r) + "\n " + this._genAddToChanges(r) + "\n " + oldValue + " = " + newValue + ";\n }\n ";
|
|
var genCode = r.shouldBeChecked() ? "" + read + check : read;
|
|
if (r.isUsedByOtherRecord()) {
|
|
return init + " if (" + condition + ") { " + genCode + " } else { " + newValue + " = " + oldValue + "; }";
|
|
} else {
|
|
return init + " if (" + condition + ") { " + genCode + " }";
|
|
}
|
|
};
|
|
ChangeDetectorJITGenerator.prototype._genReferenceCheck = function(r) {
|
|
var _this = this;
|
|
var oldValue = this._names.getFieldName(r.selfIndex);
|
|
var newValue = this._names.getLocalName(r.selfIndex);
|
|
var read = "\n " + this._logic.genPropertyBindingEvalValue(r) + "\n ";
|
|
var check = "\n " + this._genThrowOnChangeCheck(oldValue, newValue) + "\n if (" + this.changeDetectionUtilVarName + ".looseNotIdentical(" + oldValue + ", " + newValue + ")) {\n " + this._genChangeMarker(r) + "\n " + this._genUpdateDirectiveOrElement(r) + "\n " + this._genAddToChanges(r) + "\n " + oldValue + " = " + newValue + ";\n }\n ";
|
|
var genCode = r.shouldBeChecked() ? "" + read + check : read;
|
|
if (r.isPureFunction()) {
|
|
var condition = r.args.map(function(a) {
|
|
return _this._names.getChangeName(a);
|
|
}).join(" || ");
|
|
if (r.isUsedByOtherRecord()) {
|
|
return "if (" + condition + ") { " + genCode + " } else { " + newValue + " = " + oldValue + "; }";
|
|
} else {
|
|
return "if (" + condition + ") { " + genCode + " }";
|
|
}
|
|
} else {
|
|
return genCode;
|
|
}
|
|
};
|
|
ChangeDetectorJITGenerator.prototype._genChangeMarker = function(r) {
|
|
return r.argumentToPureFunction ? this._names.getChangeName(r.selfIndex) + " = true" : "";
|
|
};
|
|
ChangeDetectorJITGenerator.prototype._genUpdateDirectiveOrElement = function(r) {
|
|
if (!r.lastInBinding)
|
|
return "";
|
|
var newValue = this._names.getLocalName(r.selfIndex);
|
|
var notifyDebug = this.genConfig.logBindingUpdate ? "this.logBindingUpdate(" + newValue + ");" : "";
|
|
var br = r.bindingRecord;
|
|
if (br.target.isDirective()) {
|
|
var directiveProperty = this._names.getDirectiveName(br.directiveRecord.directiveIndex) + "." + br.target.name;
|
|
return "\n " + directiveProperty + " = " + newValue + ";\n " + notifyDebug + "\n " + IS_CHANGED_LOCAL + " = true;\n ";
|
|
} else {
|
|
return "\n this.notifyDispatcher(" + newValue + ");\n " + notifyDebug + "\n ";
|
|
}
|
|
};
|
|
ChangeDetectorJITGenerator.prototype._genThrowOnChangeCheck = function(oldValue, newValue) {
|
|
if (lang_1.assertionsEnabled()) {
|
|
return "\n if (throwOnChange && !" + this.changeDetectionUtilVarName + ".devModeEqual(" + oldValue + ", " + newValue + ")) {\n this.throwOnChangeError(" + oldValue + ", " + newValue + ");\n }\n ";
|
|
} else {
|
|
return '';
|
|
}
|
|
};
|
|
ChangeDetectorJITGenerator.prototype._genAddToChanges = function(r) {
|
|
var newValue = this._names.getLocalName(r.selfIndex);
|
|
var oldValue = this._names.getFieldName(r.selfIndex);
|
|
if (!r.bindingRecord.callOnChanges())
|
|
return "";
|
|
return CHANGES_LOCAL + " = this.addChange(" + CHANGES_LOCAL + ", " + oldValue + ", " + newValue + ");";
|
|
};
|
|
ChangeDetectorJITGenerator.prototype._maybeFirstInBinding = function(r) {
|
|
var prev = change_detection_util_1.ChangeDetectionUtil.protoByIndex(this.records, r.selfIndex - 1);
|
|
var firstInBinding = lang_1.isBlank(prev) || prev.bindingRecord !== r.bindingRecord;
|
|
return firstInBinding && !r.bindingRecord.isDirectiveLifecycle() ? this._names.getPropertyBindingIndex() + " = " + r.propertyBindingIndex + ";" : '';
|
|
};
|
|
ChangeDetectorJITGenerator.prototype._maybeGenLastInDirective = function(r) {
|
|
if (!r.lastInDirective)
|
|
return "";
|
|
return "\n " + CHANGES_LOCAL + " = null;\n " + this._genNotifyOnPushDetectors(r) + "\n " + IS_CHANGED_LOCAL + " = false;\n ";
|
|
};
|
|
ChangeDetectorJITGenerator.prototype._genOnCheck = function(r) {
|
|
var br = r.bindingRecord;
|
|
return "if (!throwOnChange) " + this._names.getDirectiveName(br.directiveRecord.directiveIndex) + ".ngDoCheck();";
|
|
};
|
|
ChangeDetectorJITGenerator.prototype._genOnInit = function(r) {
|
|
var br = r.bindingRecord;
|
|
return "if (!throwOnChange && " + this._names.getStateName() + " === " + this.changeDetectorStateVarName + ".NeverChecked) " + this._names.getDirectiveName(br.directiveRecord.directiveIndex) + ".ngOnInit();";
|
|
};
|
|
ChangeDetectorJITGenerator.prototype._genOnChange = function(r) {
|
|
var br = r.bindingRecord;
|
|
return "if (!throwOnChange && " + CHANGES_LOCAL + ") " + this._names.getDirectiveName(br.directiveRecord.directiveIndex) + ".ngOnChanges(" + CHANGES_LOCAL + ");";
|
|
};
|
|
ChangeDetectorJITGenerator.prototype._genNotifyOnPushDetectors = function(r) {
|
|
var br = r.bindingRecord;
|
|
if (!r.lastInDirective || br.isDefaultChangeDetection())
|
|
return "";
|
|
var retVal = "\n if(" + IS_CHANGED_LOCAL + ") {\n " + this._names.getDetectorName(br.directiveRecord.directiveIndex) + ".markAsCheckOnce();\n }\n ";
|
|
return retVal;
|
|
};
|
|
return ChangeDetectorJITGenerator;
|
|
})();
|
|
exports.ChangeDetectorJITGenerator = ChangeDetectorJITGenerator;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/linker/view", ["angular2/src/facade/collection", "angular2/src/core/change_detection/change_detection", "angular2/src/core/change_detection/interfaces", "angular2/src/core/linker/element", "angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/core/render/api", "angular2/src/core/linker/view_ref", "angular2/src/core/pipes/pipes", "angular2/src/core/render/util", "angular2/src/core/change_detection/interfaces", "angular2/src/core/pipes/pipes", "angular2/src/core/linker/view_type"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var change_detection_1 = require("angular2/src/core/change_detection/change_detection");
|
|
var interfaces_1 = require("angular2/src/core/change_detection/interfaces");
|
|
var element_1 = require("angular2/src/core/linker/element");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var api_1 = require("angular2/src/core/render/api");
|
|
var view_ref_1 = require("angular2/src/core/linker/view_ref");
|
|
var pipes_1 = require("angular2/src/core/pipes/pipes");
|
|
var util_1 = require("angular2/src/core/render/util");
|
|
var interfaces_2 = require("angular2/src/core/change_detection/interfaces");
|
|
exports.DebugContext = interfaces_2.DebugContext;
|
|
var pipes_2 = require("angular2/src/core/pipes/pipes");
|
|
var view_type_1 = require("angular2/src/core/linker/view_type");
|
|
var REFLECT_PREFIX = 'ng-reflect-';
|
|
var EMPTY_CONTEXT = lang_1.CONST_EXPR(new Object());
|
|
var AppView = (function() {
|
|
function AppView(proto, renderer, viewManager, projectableNodes, containerAppElement, imperativelyCreatedProviders, rootInjector, changeDetector) {
|
|
this.proto = proto;
|
|
this.renderer = renderer;
|
|
this.viewManager = viewManager;
|
|
this.projectableNodes = projectableNodes;
|
|
this.containerAppElement = containerAppElement;
|
|
this.changeDetector = changeDetector;
|
|
this.context = null;
|
|
this.destroyed = false;
|
|
this.ref = new view_ref_1.ViewRef_(this);
|
|
var injectorWithHostBoundary = element_1.AppElement.getViewParentInjector(this.proto.type, containerAppElement, imperativelyCreatedProviders, rootInjector);
|
|
this.parentInjector = injectorWithHostBoundary.injector;
|
|
this.hostInjectorBoundary = injectorWithHostBoundary.hostInjectorBoundary;
|
|
var pipes;
|
|
var context;
|
|
switch (proto.type) {
|
|
case view_type_1.ViewType.COMPONENT:
|
|
pipes = new pipes_2.Pipes(proto.protoPipes, containerAppElement.getInjector());
|
|
context = containerAppElement.getComponent();
|
|
break;
|
|
case view_type_1.ViewType.EMBEDDED:
|
|
pipes = containerAppElement.parentView.pipes;
|
|
context = containerAppElement.parentView.context;
|
|
break;
|
|
case view_type_1.ViewType.HOST:
|
|
pipes = null;
|
|
context = EMPTY_CONTEXT;
|
|
break;
|
|
}
|
|
this.pipes = pipes;
|
|
this.context = context;
|
|
}
|
|
AppView.prototype.init = function(rootNodesOrAppElements, allNodes, disposables, appElements) {
|
|
this.rootNodesOrAppElements = rootNodesOrAppElements;
|
|
this.allNodes = allNodes;
|
|
this.disposables = disposables;
|
|
this.appElements = appElements;
|
|
var localsMap = new collection_1.Map();
|
|
collection_1.StringMapWrapper.forEach(this.proto.templateVariableBindings, function(templateName, _) {
|
|
localsMap.set(templateName, null);
|
|
});
|
|
for (var i = 0; i < appElements.length; i++) {
|
|
var appEl = appElements[i];
|
|
var providerTokens = [];
|
|
if (lang_1.isPresent(appEl.proto.protoInjector)) {
|
|
for (var j = 0; j < appEl.proto.protoInjector.numberOfProviders; j++) {
|
|
providerTokens.push(appEl.proto.protoInjector.getProviderAtIndex(j).key.token);
|
|
}
|
|
}
|
|
collection_1.StringMapWrapper.forEach(appEl.proto.directiveVariableBindings, function(directiveIndex, name) {
|
|
if (lang_1.isBlank(directiveIndex)) {
|
|
localsMap.set(name, appEl.nativeElement);
|
|
} else {
|
|
localsMap.set(name, appEl.getDirectiveAtIndex(directiveIndex));
|
|
}
|
|
});
|
|
this.renderer.setElementDebugInfo(appEl.nativeElement, new api_1.RenderDebugInfo(appEl.getInjector(), appEl.getComponent(), providerTokens, localsMap));
|
|
}
|
|
var parentLocals = null;
|
|
if (this.proto.type !== view_type_1.ViewType.COMPONENT) {
|
|
parentLocals = lang_1.isPresent(this.containerAppElement) ? this.containerAppElement.parentView.locals : null;
|
|
}
|
|
if (this.proto.type === view_type_1.ViewType.COMPONENT) {
|
|
this.containerAppElement.attachComponentView(this);
|
|
this.containerAppElement.parentView.changeDetector.addViewChild(this.changeDetector);
|
|
}
|
|
this.locals = new change_detection_1.Locals(parentLocals, localsMap);
|
|
this.changeDetector.hydrate(this.context, this.locals, this, this.pipes);
|
|
this.viewManager.onViewCreated(this);
|
|
};
|
|
AppView.prototype.destroy = function() {
|
|
if (this.destroyed) {
|
|
throw new exceptions_1.BaseException('This view has already been destroyed!');
|
|
}
|
|
this.changeDetector.destroyRecursive();
|
|
};
|
|
AppView.prototype.notifyOnDestroy = function() {
|
|
this.destroyed = true;
|
|
var hostElement = this.proto.type === view_type_1.ViewType.COMPONENT ? this.containerAppElement.nativeElement : null;
|
|
this.renderer.destroyView(hostElement, this.allNodes);
|
|
for (var i = 0; i < this.disposables.length; i++) {
|
|
this.disposables[i]();
|
|
}
|
|
this.viewManager.onViewDestroyed(this);
|
|
};
|
|
Object.defineProperty(AppView.prototype, "changeDetectorRef", {
|
|
get: function() {
|
|
return this.changeDetector.ref;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(AppView.prototype, "flatRootNodes", {
|
|
get: function() {
|
|
return flattenNestedViewRenderNodes(this.rootNodesOrAppElements);
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
AppView.prototype.hasLocal = function(contextName) {
|
|
return collection_1.StringMapWrapper.contains(this.proto.templateVariableBindings, contextName);
|
|
};
|
|
AppView.prototype.setLocal = function(contextName, value) {
|
|
if (!this.hasLocal(contextName)) {
|
|
return ;
|
|
}
|
|
var templateName = this.proto.templateVariableBindings[contextName];
|
|
this.locals.set(templateName, value);
|
|
};
|
|
AppView.prototype.notifyOnBinding = function(b, currentValue) {
|
|
if (b.isTextNode()) {
|
|
this.renderer.setText(this.allNodes[b.elementIndex], currentValue);
|
|
} else {
|
|
var nativeElement = this.appElements[b.elementIndex].nativeElement;
|
|
if (b.isElementProperty()) {
|
|
this.renderer.setElementProperty(nativeElement, b.name, currentValue);
|
|
} else if (b.isElementAttribute()) {
|
|
this.renderer.setElementAttribute(nativeElement, b.name, lang_1.isPresent(currentValue) ? "" + currentValue : null);
|
|
} else if (b.isElementClass()) {
|
|
this.renderer.setElementClass(nativeElement, b.name, currentValue);
|
|
} else if (b.isElementStyle()) {
|
|
var unit = lang_1.isPresent(b.unit) ? b.unit : '';
|
|
this.renderer.setElementStyle(nativeElement, b.name, lang_1.isPresent(currentValue) ? "" + currentValue + unit : null);
|
|
} else {
|
|
throw new exceptions_1.BaseException('Unsupported directive record');
|
|
}
|
|
}
|
|
};
|
|
AppView.prototype.logBindingUpdate = function(b, value) {
|
|
if (b.isDirective() || b.isElementProperty()) {
|
|
var nativeElement = this.appElements[b.elementIndex].nativeElement;
|
|
this.renderer.setBindingDebugInfo(nativeElement, "" + REFLECT_PREFIX + util_1.camelCaseToDashCase(b.name), "" + value);
|
|
}
|
|
};
|
|
AppView.prototype.notifyAfterContentChecked = function() {
|
|
var count = this.appElements.length;
|
|
for (var i = count - 1; i >= 0; i--) {
|
|
this.appElements[i].ngAfterContentChecked();
|
|
}
|
|
};
|
|
AppView.prototype.notifyAfterViewChecked = function() {
|
|
var count = this.appElements.length;
|
|
for (var i = count - 1; i >= 0; i--) {
|
|
this.appElements[i].ngAfterViewChecked();
|
|
}
|
|
};
|
|
AppView.prototype.getDebugContext = function(appElement, elementIndex, directiveIndex) {
|
|
try {
|
|
if (lang_1.isBlank(appElement) && elementIndex < this.appElements.length) {
|
|
appElement = this.appElements[elementIndex];
|
|
}
|
|
var container = this.containerAppElement;
|
|
var element = lang_1.isPresent(appElement) ? appElement.nativeElement : null;
|
|
var componentElement = lang_1.isPresent(container) ? container.nativeElement : null;
|
|
var directive = lang_1.isPresent(directiveIndex) ? appElement.getDirectiveAtIndex(directiveIndex) : null;
|
|
var injector = lang_1.isPresent(appElement) ? appElement.getInjector() : null;
|
|
return new interfaces_1.DebugContext(element, componentElement, directive, this.context, _localsToStringMap(this.locals), injector);
|
|
} catch (e) {
|
|
return null;
|
|
}
|
|
};
|
|
AppView.prototype.getDirectiveFor = function(directive) {
|
|
return this.appElements[directive.elementIndex].getDirectiveAtIndex(directive.directiveIndex);
|
|
};
|
|
AppView.prototype.getDetectorFor = function(directive) {
|
|
var componentView = this.appElements[directive.elementIndex].componentView;
|
|
return lang_1.isPresent(componentView) ? componentView.changeDetector : null;
|
|
};
|
|
AppView.prototype.triggerEventHandlers = function(eventName, eventObj, boundElementIndex) {
|
|
return this.changeDetector.handleEvent(eventName, boundElementIndex, eventObj);
|
|
};
|
|
return AppView;
|
|
})();
|
|
exports.AppView = AppView;
|
|
function _localsToStringMap(locals) {
|
|
var res = {};
|
|
var c = locals;
|
|
while (lang_1.isPresent(c)) {
|
|
res = collection_1.StringMapWrapper.merge(res, collection_1.MapWrapper.toStringMap(c.current));
|
|
c = c.parent;
|
|
}
|
|
return res;
|
|
}
|
|
var AppProtoView = (function() {
|
|
function AppProtoView(type, protoPipes, templateVariableBindings) {
|
|
this.type = type;
|
|
this.protoPipes = protoPipes;
|
|
this.templateVariableBindings = templateVariableBindings;
|
|
}
|
|
AppProtoView.create = function(metadataCache, type, pipes, templateVariableBindings) {
|
|
var protoPipes = null;
|
|
if (lang_1.isPresent(pipes) && pipes.length > 0) {
|
|
var boundPipes = collection_1.ListWrapper.createFixedSize(pipes.length);
|
|
for (var i = 0; i < pipes.length; i++) {
|
|
boundPipes[i] = metadataCache.getResolvedPipeMetadata(pipes[i]);
|
|
}
|
|
protoPipes = pipes_1.ProtoPipes.fromProviders(boundPipes);
|
|
}
|
|
return new AppProtoView(type, protoPipes, templateVariableBindings);
|
|
};
|
|
return AppProtoView;
|
|
})();
|
|
exports.AppProtoView = AppProtoView;
|
|
var HostViewFactory = (function() {
|
|
function HostViewFactory(selector, viewFactory) {
|
|
this.selector = selector;
|
|
this.viewFactory = viewFactory;
|
|
}
|
|
HostViewFactory = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [String, Function])], HostViewFactory);
|
|
return HostViewFactory;
|
|
})();
|
|
exports.HostViewFactory = HostViewFactory;
|
|
function flattenNestedViewRenderNodes(nodes) {
|
|
return _flattenNestedViewRenderNodes(nodes, []);
|
|
}
|
|
exports.flattenNestedViewRenderNodes = flattenNestedViewRenderNodes;
|
|
function _flattenNestedViewRenderNodes(nodes, renderNodes) {
|
|
for (var i = 0; i < nodes.length; i++) {
|
|
var node = nodes[i];
|
|
if (node instanceof element_1.AppElement) {
|
|
var appEl = node;
|
|
renderNodes.push(appEl.nativeElement);
|
|
if (lang_1.isPresent(appEl.nestedViews)) {
|
|
for (var k = 0; k < appEl.nestedViews.length; k++) {
|
|
_flattenNestedViewRenderNodes(appEl.nestedViews[k].rootNodesOrAppElements, renderNodes);
|
|
}
|
|
}
|
|
} else {
|
|
renderNodes.push(node);
|
|
}
|
|
}
|
|
return renderNodes;
|
|
}
|
|
function findLastRenderNode(node) {
|
|
var lastNode;
|
|
if (node instanceof element_1.AppElement) {
|
|
var appEl = node;
|
|
lastNode = appEl.nativeElement;
|
|
if (lang_1.isPresent(appEl.nestedViews)) {
|
|
for (var i = appEl.nestedViews.length - 1; i >= 0; i--) {
|
|
var nestedView = appEl.nestedViews[i];
|
|
if (nestedView.rootNodesOrAppElements.length > 0) {
|
|
lastNode = findLastRenderNode(nestedView.rootNodesOrAppElements[nestedView.rootNodesOrAppElements.length - 1]);
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
lastNode = node;
|
|
}
|
|
return lastNode;
|
|
}
|
|
exports.findLastRenderNode = findLastRenderNode;
|
|
function checkSlotCount(componentName, expectedSlotCount, projectableNodes) {
|
|
var givenSlotCount = lang_1.isPresent(projectableNodes) ? projectableNodes.length : 0;
|
|
if (givenSlotCount < expectedSlotCount) {
|
|
throw new exceptions_1.BaseException(("The component " + componentName + " has " + expectedSlotCount + " <ng-content> elements,") + (" but only " + givenSlotCount + " slots were provided."));
|
|
}
|
|
}
|
|
exports.checkSlotCount = checkSlotCount;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/application_common_providers", ["angular2/src/facade/lang", "angular2/src/core/di", "angular2/src/core/application_tokens", "angular2/src/core/change_detection/change_detection", "angular2/src/core/linker/resolved_metadata_cache", "angular2/src/core/linker/view_manager", "angular2/src/core/linker/view_manager", "angular2/src/core/linker/view_resolver", "angular2/src/core/linker/directive_resolver", "angular2/src/core/linker/pipe_resolver", "angular2/src/core/linker/compiler", "angular2/src/core/linker/compiler", "angular2/src/core/linker/dynamic_component_loader", "angular2/src/core/linker/dynamic_component_loader"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var di_1 = require("angular2/src/core/di");
|
|
var application_tokens_1 = require("angular2/src/core/application_tokens");
|
|
var change_detection_1 = require("angular2/src/core/change_detection/change_detection");
|
|
var resolved_metadata_cache_1 = require("angular2/src/core/linker/resolved_metadata_cache");
|
|
var view_manager_1 = require("angular2/src/core/linker/view_manager");
|
|
var view_manager_2 = require("angular2/src/core/linker/view_manager");
|
|
var view_resolver_1 = require("angular2/src/core/linker/view_resolver");
|
|
var directive_resolver_1 = require("angular2/src/core/linker/directive_resolver");
|
|
var pipe_resolver_1 = require("angular2/src/core/linker/pipe_resolver");
|
|
var compiler_1 = require("angular2/src/core/linker/compiler");
|
|
var compiler_2 = require("angular2/src/core/linker/compiler");
|
|
var dynamic_component_loader_1 = require("angular2/src/core/linker/dynamic_component_loader");
|
|
var dynamic_component_loader_2 = require("angular2/src/core/linker/dynamic_component_loader");
|
|
exports.APPLICATION_COMMON_PROVIDERS = lang_1.CONST_EXPR([new di_1.Provider(compiler_1.Compiler, {useClass: compiler_2.Compiler_}), application_tokens_1.APP_ID_RANDOM_PROVIDER, resolved_metadata_cache_1.ResolvedMetadataCache, new di_1.Provider(view_manager_1.AppViewManager, {useClass: view_manager_2.AppViewManager_}), view_resolver_1.ViewResolver, new di_1.Provider(change_detection_1.IterableDiffers, {useValue: change_detection_1.defaultIterableDiffers}), new di_1.Provider(change_detection_1.KeyValueDiffers, {useValue: change_detection_1.defaultKeyValueDiffers}), directive_resolver_1.DirectiveResolver, pipe_resolver_1.PipeResolver, new di_1.Provider(dynamic_component_loader_1.DynamicComponentLoader, {useClass: dynamic_component_loader_2.DynamicComponentLoader_})]);
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/forms/directives/ng_control_name", ["angular2/src/facade/lang", "angular2/src/facade/async", "angular2/core", "angular2/src/common/forms/directives/control_container", "angular2/src/common/forms/directives/ng_control", "angular2/src/common/forms/directives/control_value_accessor", "angular2/src/common/forms/directives/shared", "angular2/src/common/forms/validators"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var __param = (this && this.__param) || function(paramIndex, decorator) {
|
|
return function(target, key) {
|
|
decorator(target, key, paramIndex);
|
|
};
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var async_1 = require("angular2/src/facade/async");
|
|
var core_1 = require("angular2/core");
|
|
var control_container_1 = require("angular2/src/common/forms/directives/control_container");
|
|
var ng_control_1 = require("angular2/src/common/forms/directives/ng_control");
|
|
var control_value_accessor_1 = require("angular2/src/common/forms/directives/control_value_accessor");
|
|
var shared_1 = require("angular2/src/common/forms/directives/shared");
|
|
var validators_1 = require("angular2/src/common/forms/validators");
|
|
var controlNameBinding = lang_1.CONST_EXPR(new core_1.Provider(ng_control_1.NgControl, {useExisting: core_1.forwardRef(function() {
|
|
return NgControlName;
|
|
})}));
|
|
var NgControlName = (function(_super) {
|
|
__extends(NgControlName, _super);
|
|
function NgControlName(_parent, _validators, _asyncValidators, valueAccessors) {
|
|
_super.call(this);
|
|
this._parent = _parent;
|
|
this._validators = _validators;
|
|
this._asyncValidators = _asyncValidators;
|
|
this.update = new async_1.EventEmitter();
|
|
this._added = false;
|
|
this.valueAccessor = shared_1.selectValueAccessor(this, valueAccessors);
|
|
}
|
|
NgControlName.prototype.ngOnChanges = function(changes) {
|
|
if (!this._added) {
|
|
this.formDirective.addControl(this);
|
|
this._added = true;
|
|
}
|
|
if (shared_1.isPropertyUpdated(changes, this.viewModel)) {
|
|
this.viewModel = this.model;
|
|
this.formDirective.updateModel(this, this.model);
|
|
}
|
|
};
|
|
NgControlName.prototype.ngOnDestroy = function() {
|
|
this.formDirective.removeControl(this);
|
|
};
|
|
NgControlName.prototype.viewToModelUpdate = function(newValue) {
|
|
this.viewModel = newValue;
|
|
async_1.ObservableWrapper.callEmit(this.update, newValue);
|
|
};
|
|
Object.defineProperty(NgControlName.prototype, "path", {
|
|
get: function() {
|
|
return shared_1.controlPath(this.name, this._parent);
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(NgControlName.prototype, "formDirective", {
|
|
get: function() {
|
|
return this._parent.formDirective;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(NgControlName.prototype, "validator", {
|
|
get: function() {
|
|
return shared_1.composeValidators(this._validators);
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(NgControlName.prototype, "asyncValidator", {
|
|
get: function() {
|
|
return shared_1.composeAsyncValidators(this._asyncValidators);
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(NgControlName.prototype, "control", {
|
|
get: function() {
|
|
return this.formDirective.getControl(this);
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
NgControlName = __decorate([core_1.Directive({
|
|
selector: '[ngControl]',
|
|
bindings: [controlNameBinding],
|
|
inputs: ['name: ngControl', 'model: ngModel'],
|
|
outputs: ['update: ngModelChange'],
|
|
exportAs: 'ngForm'
|
|
}), __param(0, core_1.Host()), __param(0, core_1.SkipSelf()), __param(1, core_1.Optional()), __param(1, core_1.Self()), __param(1, core_1.Inject(validators_1.NG_VALIDATORS)), __param(2, core_1.Optional()), __param(2, core_1.Self()), __param(2, core_1.Inject(validators_1.NG_ASYNC_VALIDATORS)), __param(3, core_1.Optional()), __param(3, core_1.Self()), __param(3, core_1.Inject(control_value_accessor_1.NG_VALUE_ACCESSOR)), __metadata('design:paramtypes', [control_container_1.ControlContainer, Array, Array, Array])], NgControlName);
|
|
return NgControlName;
|
|
})(ng_control_1.NgControl);
|
|
exports.NgControlName = NgControlName;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/web_workers/shared/client_message_broker", ["angular2/src/web_workers/shared/message_bus", "angular2/src/facade/lang", "angular2/src/facade/async", "angular2/src/facade/collection", "angular2/src/web_workers/shared/serializer", "angular2/src/core/di", "angular2/src/facade/lang", "angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var message_bus_1 = require("angular2/src/web_workers/shared/message_bus");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var async_1 = require("angular2/src/facade/async");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var serializer_1 = require("angular2/src/web_workers/shared/serializer");
|
|
var di_1 = require("angular2/src/core/di");
|
|
var lang_2 = require("angular2/src/facade/lang");
|
|
var lang_3 = require("angular2/src/facade/lang");
|
|
exports.Type = lang_3.Type;
|
|
var ClientMessageBrokerFactory = (function() {
|
|
function ClientMessageBrokerFactory() {}
|
|
return ClientMessageBrokerFactory;
|
|
})();
|
|
exports.ClientMessageBrokerFactory = ClientMessageBrokerFactory;
|
|
var ClientMessageBrokerFactory_ = (function(_super) {
|
|
__extends(ClientMessageBrokerFactory_, _super);
|
|
function ClientMessageBrokerFactory_(_messageBus, _serializer) {
|
|
_super.call(this);
|
|
this._messageBus = _messageBus;
|
|
this._serializer = _serializer;
|
|
}
|
|
ClientMessageBrokerFactory_.prototype.createMessageBroker = function(channel, runInZone) {
|
|
if (runInZone === void 0) {
|
|
runInZone = true;
|
|
}
|
|
this._messageBus.initChannel(channel, runInZone);
|
|
return new ClientMessageBroker_(this._messageBus, this._serializer, channel);
|
|
};
|
|
ClientMessageBrokerFactory_ = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [message_bus_1.MessageBus, serializer_1.Serializer])], ClientMessageBrokerFactory_);
|
|
return ClientMessageBrokerFactory_;
|
|
})(ClientMessageBrokerFactory);
|
|
exports.ClientMessageBrokerFactory_ = ClientMessageBrokerFactory_;
|
|
var ClientMessageBroker = (function() {
|
|
function ClientMessageBroker() {}
|
|
return ClientMessageBroker;
|
|
})();
|
|
exports.ClientMessageBroker = ClientMessageBroker;
|
|
var ClientMessageBroker_ = (function(_super) {
|
|
__extends(ClientMessageBroker_, _super);
|
|
function ClientMessageBroker_(messageBus, _serializer, channel) {
|
|
var _this = this;
|
|
_super.call(this);
|
|
this.channel = channel;
|
|
this._pending = new Map();
|
|
this._sink = messageBus.to(channel);
|
|
this._serializer = _serializer;
|
|
var source = messageBus.from(channel);
|
|
async_1.ObservableWrapper.subscribe(source, function(message) {
|
|
return _this._handleMessage(message);
|
|
});
|
|
}
|
|
ClientMessageBroker_.prototype._generateMessageId = function(name) {
|
|
var time = lang_1.stringify(lang_1.DateWrapper.toMillis(lang_1.DateWrapper.now()));
|
|
var iteration = 0;
|
|
var id = name + time + lang_1.stringify(iteration);
|
|
while (lang_1.isPresent(this._pending[id])) {
|
|
id = "" + name + time + iteration;
|
|
iteration++;
|
|
}
|
|
return id;
|
|
};
|
|
ClientMessageBroker_.prototype.runOnService = function(args, returnType) {
|
|
var _this = this;
|
|
var fnArgs = [];
|
|
if (lang_1.isPresent(args.args)) {
|
|
args.args.forEach(function(argument) {
|
|
if (argument.type != null) {
|
|
fnArgs.push(_this._serializer.serialize(argument.value, argument.type));
|
|
} else {
|
|
fnArgs.push(argument.value);
|
|
}
|
|
});
|
|
}
|
|
var promise;
|
|
var id = null;
|
|
if (returnType != null) {
|
|
var completer = async_1.PromiseWrapper.completer();
|
|
id = this._generateMessageId(args.method);
|
|
this._pending.set(id, completer);
|
|
async_1.PromiseWrapper.catchError(completer.promise, function(err, stack) {
|
|
lang_1.print(err);
|
|
completer.reject(err, stack);
|
|
});
|
|
promise = async_1.PromiseWrapper.then(completer.promise, function(value) {
|
|
if (_this._serializer == null) {
|
|
return value;
|
|
} else {
|
|
return _this._serializer.deserialize(value, returnType);
|
|
}
|
|
});
|
|
} else {
|
|
promise = null;
|
|
}
|
|
var message = {
|
|
'method': args.method,
|
|
'args': fnArgs
|
|
};
|
|
if (id != null) {
|
|
message['id'] = id;
|
|
}
|
|
async_1.ObservableWrapper.callEmit(this._sink, message);
|
|
return promise;
|
|
};
|
|
ClientMessageBroker_.prototype._handleMessage = function(message) {
|
|
var data = new MessageData(message);
|
|
if (lang_2.StringWrapper.equals(data.type, "result") || lang_2.StringWrapper.equals(data.type, "error")) {
|
|
var id = data.id;
|
|
if (this._pending.has(id)) {
|
|
if (lang_2.StringWrapper.equals(data.type, "result")) {
|
|
this._pending.get(id).resolve(data.value);
|
|
} else {
|
|
this._pending.get(id).reject(data.value, null);
|
|
}
|
|
this._pending.delete(id);
|
|
}
|
|
}
|
|
};
|
|
return ClientMessageBroker_;
|
|
})(ClientMessageBroker);
|
|
exports.ClientMessageBroker_ = ClientMessageBroker_;
|
|
var MessageData = (function() {
|
|
function MessageData(data) {
|
|
this.type = collection_1.StringMapWrapper.get(data, "type");
|
|
this.id = this._getValueIfPresent(data, "id");
|
|
this.value = this._getValueIfPresent(data, "value");
|
|
}
|
|
MessageData.prototype._getValueIfPresent = function(data, key) {
|
|
if (collection_1.StringMapWrapper.contains(data, key)) {
|
|
return collection_1.StringMapWrapper.get(data, key);
|
|
} else {
|
|
return null;
|
|
}
|
|
};
|
|
return MessageData;
|
|
})();
|
|
var FnArg = (function() {
|
|
function FnArg(value, type) {
|
|
this.value = value;
|
|
this.type = type;
|
|
}
|
|
return FnArg;
|
|
})();
|
|
exports.FnArg = FnArg;
|
|
var UiArguments = (function() {
|
|
function UiArguments(method, args) {
|
|
this.method = method;
|
|
this.args = args;
|
|
}
|
|
return UiArguments;
|
|
})();
|
|
exports.UiArguments = UiArguments;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("parse5/lib/tokenization/tokenizer", ["parse5/lib/tokenization/preprocessor", "parse5/lib/common/unicode", "parse5/lib/tokenization/named_entity_trie"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
'use strict';
|
|
var Preprocessor = require("parse5/lib/tokenization/preprocessor"),
|
|
UNICODE = require("parse5/lib/common/unicode"),
|
|
NAMED_ENTITY_TRIE = require("parse5/lib/tokenization/named_entity_trie");
|
|
var $ = UNICODE.CODE_POINTS,
|
|
$$ = UNICODE.CODE_POINT_SEQUENCES;
|
|
var NUMERIC_ENTITY_REPLACEMENTS = {
|
|
0x00: 0xFFFD,
|
|
0x0D: 0x000D,
|
|
0x80: 0x20AC,
|
|
0x81: 0x0081,
|
|
0x82: 0x201A,
|
|
0x83: 0x0192,
|
|
0x84: 0x201E,
|
|
0x85: 0x2026,
|
|
0x86: 0x2020,
|
|
0x87: 0x2021,
|
|
0x88: 0x02C6,
|
|
0x89: 0x2030,
|
|
0x8A: 0x0160,
|
|
0x8B: 0x2039,
|
|
0x8C: 0x0152,
|
|
0x8D: 0x008D,
|
|
0x8E: 0x017D,
|
|
0x8F: 0x008F,
|
|
0x90: 0x0090,
|
|
0x91: 0x2018,
|
|
0x92: 0x2019,
|
|
0x93: 0x201C,
|
|
0x94: 0x201D,
|
|
0x95: 0x2022,
|
|
0x96: 0x2013,
|
|
0x97: 0x2014,
|
|
0x98: 0x02DC,
|
|
0x99: 0x2122,
|
|
0x9A: 0x0161,
|
|
0x9B: 0x203A,
|
|
0x9C: 0x0153,
|
|
0x9D: 0x009D,
|
|
0x9E: 0x017E,
|
|
0x9F: 0x0178
|
|
};
|
|
var DATA_STATE = 'DATA_STATE',
|
|
CHARACTER_REFERENCE_IN_DATA_STATE = 'CHARACTER_REFERENCE_IN_DATA_STATE',
|
|
RCDATA_STATE = 'RCDATA_STATE',
|
|
CHARACTER_REFERENCE_IN_RCDATA_STATE = 'CHARACTER_REFERENCE_IN_RCDATA_STATE',
|
|
RAWTEXT_STATE = 'RAWTEXT_STATE',
|
|
SCRIPT_DATA_STATE = 'SCRIPT_DATA_STATE',
|
|
PLAINTEXT_STATE = 'PLAINTEXT_STATE',
|
|
TAG_OPEN_STATE = 'TAG_OPEN_STATE',
|
|
END_TAG_OPEN_STATE = 'END_TAG_OPEN_STATE',
|
|
TAG_NAME_STATE = 'TAG_NAME_STATE',
|
|
RCDATA_LESS_THAN_SIGN_STATE = 'RCDATA_LESS_THAN_SIGN_STATE',
|
|
RCDATA_END_TAG_OPEN_STATE = 'RCDATA_END_TAG_OPEN_STATE',
|
|
RCDATA_END_TAG_NAME_STATE = 'RCDATA_END_TAG_NAME_STATE',
|
|
RAWTEXT_LESS_THAN_SIGN_STATE = 'RAWTEXT_LESS_THAN_SIGN_STATE',
|
|
RAWTEXT_END_TAG_OPEN_STATE = 'RAWTEXT_END_TAG_OPEN_STATE',
|
|
RAWTEXT_END_TAG_NAME_STATE = 'RAWTEXT_END_TAG_NAME_STATE',
|
|
SCRIPT_DATA_LESS_THAN_SIGN_STATE = 'SCRIPT_DATA_LESS_THAN_SIGN_STATE',
|
|
SCRIPT_DATA_END_TAG_OPEN_STATE = 'SCRIPT_DATA_END_TAG_OPEN_STATE',
|
|
SCRIPT_DATA_END_TAG_NAME_STATE = 'SCRIPT_DATA_END_TAG_NAME_STATE',
|
|
SCRIPT_DATA_ESCAPE_START_STATE = 'SCRIPT_DATA_ESCAPE_START_STATE',
|
|
SCRIPT_DATA_ESCAPE_START_DASH_STATE = 'SCRIPT_DATA_ESCAPE_START_DASH_STATE',
|
|
SCRIPT_DATA_ESCAPED_STATE = 'SCRIPT_DATA_ESCAPED_STATE',
|
|
SCRIPT_DATA_ESCAPED_DASH_STATE = 'SCRIPT_DATA_ESCAPED_DASH_STATE',
|
|
SCRIPT_DATA_ESCAPED_DASH_DASH_STATE = 'SCRIPT_DATA_ESCAPED_DASH_DASH_STATE',
|
|
SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE = 'SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE',
|
|
SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE = 'SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE',
|
|
SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE = 'SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE',
|
|
SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE',
|
|
SCRIPT_DATA_DOUBLE_ESCAPED_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPED_STATE',
|
|
SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE',
|
|
SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE',
|
|
SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE',
|
|
SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE',
|
|
BEFORE_ATTRIBUTE_NAME_STATE = 'BEFORE_ATTRIBUTE_NAME_STATE',
|
|
ATTRIBUTE_NAME_STATE = 'ATTRIBUTE_NAME_STATE',
|
|
AFTER_ATTRIBUTE_NAME_STATE = 'AFTER_ATTRIBUTE_NAME_STATE',
|
|
BEFORE_ATTRIBUTE_VALUE_STATE = 'BEFORE_ATTRIBUTE_VALUE_STATE',
|
|
ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE = 'ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE',
|
|
ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE = 'ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE',
|
|
ATTRIBUTE_VALUE_UNQUOTED_STATE = 'ATTRIBUTE_VALUE_UNQUOTED_STATE',
|
|
CHARACTER_REFERENCE_IN_ATTRIBUTE_VALUE_STATE = 'CHARACTER_REFERENCE_IN_ATTRIBUTE_VALUE_STATE',
|
|
AFTER_ATTRIBUTE_VALUE_QUOTED_STATE = 'AFTER_ATTRIBUTE_VALUE_QUOTED_STATE',
|
|
SELF_CLOSING_START_TAG_STATE = 'SELF_CLOSING_START_TAG_STATE',
|
|
BOGUS_COMMENT_STATE = 'BOGUS_COMMENT_STATE',
|
|
MARKUP_DECLARATION_OPEN_STATE = 'MARKUP_DECLARATION_OPEN_STATE',
|
|
COMMENT_START_STATE = 'COMMENT_START_STATE',
|
|
COMMENT_START_DASH_STATE = 'COMMENT_START_DASH_STATE',
|
|
COMMENT_STATE = 'COMMENT_STATE',
|
|
COMMENT_END_DASH_STATE = 'COMMENT_END_DASH_STATE',
|
|
COMMENT_END_STATE = 'COMMENT_END_STATE',
|
|
COMMENT_END_BANG_STATE = 'COMMENT_END_BANG_STATE',
|
|
DOCTYPE_STATE = 'DOCTYPE_STATE',
|
|
BEFORE_DOCTYPE_NAME_STATE = 'BEFORE_DOCTYPE_NAME_STATE',
|
|
DOCTYPE_NAME_STATE = 'DOCTYPE_NAME_STATE',
|
|
AFTER_DOCTYPE_NAME_STATE = 'AFTER_DOCTYPE_NAME_STATE',
|
|
AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE = 'AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE',
|
|
BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE = 'BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE',
|
|
DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE = 'DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE',
|
|
DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE = 'DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE',
|
|
AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE = 'AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE',
|
|
BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE = 'BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE',
|
|
AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE = 'AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE',
|
|
BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE = 'BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE',
|
|
DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE = 'DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE',
|
|
DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE = 'DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE',
|
|
AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE = 'AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE',
|
|
BOGUS_DOCTYPE_STATE = 'BOGUS_DOCTYPE_STATE',
|
|
CDATA_SECTION_STATE = 'CDATA_SECTION_STATE';
|
|
function isWhitespace(cp) {
|
|
return cp === $.SPACE || cp === $.LINE_FEED || cp === $.TABULATION || cp === $.FORM_FEED;
|
|
}
|
|
function isAsciiDigit(cp) {
|
|
return cp >= $.DIGIT_0 && cp <= $.DIGIT_9;
|
|
}
|
|
function isAsciiUpper(cp) {
|
|
return cp >= $.LATIN_CAPITAL_A && cp <= $.LATIN_CAPITAL_Z;
|
|
}
|
|
function isAsciiLower(cp) {
|
|
return cp >= $.LATIN_SMALL_A && cp <= $.LATIN_SMALL_Z;
|
|
}
|
|
function isAsciiAlphaNumeric(cp) {
|
|
return isAsciiDigit(cp) || isAsciiUpper(cp) || isAsciiLower(cp);
|
|
}
|
|
function isDigit(cp, isHex) {
|
|
return isAsciiDigit(cp) || (isHex && ((cp >= $.LATIN_CAPITAL_A && cp <= $.LATIN_CAPITAL_F) || (cp >= $.LATIN_SMALL_A && cp <= $.LATIN_SMALL_F)));
|
|
}
|
|
function isReservedCodePoint(cp) {
|
|
return cp >= 0xD800 && cp <= 0xDFFF || cp > 0x10FFFF;
|
|
}
|
|
function toAsciiLowerCodePoint(cp) {
|
|
return cp + 0x0020;
|
|
}
|
|
function toChar(cp) {
|
|
if (cp <= 0xFFFF)
|
|
return String.fromCharCode(cp);
|
|
cp -= 0x10000;
|
|
return String.fromCharCode(cp >>> 10 & 0x3FF | 0xD800) + String.fromCharCode(0xDC00 | cp & 0x3FF);
|
|
}
|
|
function toAsciiLowerChar(cp) {
|
|
return String.fromCharCode(toAsciiLowerCodePoint(cp));
|
|
}
|
|
var Tokenizer = module.exports = function(html) {
|
|
this.preprocessor = new Preprocessor(html);
|
|
this.tokenQueue = [];
|
|
this.allowCDATA = false;
|
|
this.state = DATA_STATE;
|
|
this.returnState = '';
|
|
this.consumptionPos = 0;
|
|
this.tempBuff = [];
|
|
this.additionalAllowedCp = void 0;
|
|
this.lastStartTagName = '';
|
|
this.currentCharacterToken = null;
|
|
this.currentToken = null;
|
|
this.currentAttr = null;
|
|
};
|
|
Tokenizer.CHARACTER_TOKEN = 'CHARACTER_TOKEN';
|
|
Tokenizer.NULL_CHARACTER_TOKEN = 'NULL_CHARACTER_TOKEN';
|
|
Tokenizer.WHITESPACE_CHARACTER_TOKEN = 'WHITESPACE_CHARACTER_TOKEN';
|
|
Tokenizer.START_TAG_TOKEN = 'START_TAG_TOKEN';
|
|
Tokenizer.END_TAG_TOKEN = 'END_TAG_TOKEN';
|
|
Tokenizer.COMMENT_TOKEN = 'COMMENT_TOKEN';
|
|
Tokenizer.DOCTYPE_TOKEN = 'DOCTYPE_TOKEN';
|
|
Tokenizer.EOF_TOKEN = 'EOF_TOKEN';
|
|
Tokenizer.DATA_STATE = DATA_STATE;
|
|
Tokenizer.RCDATA_STATE = RCDATA_STATE;
|
|
Tokenizer.RAWTEXT_STATE = RAWTEXT_STATE;
|
|
Tokenizer.SCRIPT_DATA_STATE = SCRIPT_DATA_STATE;
|
|
Tokenizer.PLAINTEXT_STATE = PLAINTEXT_STATE;
|
|
Tokenizer.getTokenAttr = function(token, attrName) {
|
|
for (var i = token.attrs.length - 1; i >= 0; i--) {
|
|
if (token.attrs[i].name === attrName)
|
|
return token.attrs[i].value;
|
|
}
|
|
return null;
|
|
};
|
|
Tokenizer.prototype.getNextToken = function() {
|
|
while (!this.tokenQueue.length)
|
|
this[this.state](this._consume());
|
|
return this.tokenQueue.shift();
|
|
};
|
|
Tokenizer.prototype._consume = function() {
|
|
this.consumptionPos++;
|
|
return this.preprocessor.advanceAndPeekCodePoint();
|
|
};
|
|
Tokenizer.prototype._unconsume = function() {
|
|
this.consumptionPos--;
|
|
this.preprocessor.retreat();
|
|
};
|
|
Tokenizer.prototype._unconsumeSeveral = function(count) {
|
|
while (count--)
|
|
this._unconsume();
|
|
};
|
|
Tokenizer.prototype._reconsumeInState = function(state) {
|
|
this.state = state;
|
|
this._unconsume();
|
|
};
|
|
Tokenizer.prototype._consumeSubsequentIfMatch = function(pattern, startCp, caseSensitive) {
|
|
var rollbackPos = this.consumptionPos,
|
|
isMatch = true,
|
|
patternLength = pattern.length,
|
|
patternPos = 0,
|
|
cp = startCp,
|
|
patternCp = void 0;
|
|
for (; patternPos < patternLength; patternPos++) {
|
|
if (patternPos > 0)
|
|
cp = this._consume();
|
|
if (cp === $.EOF) {
|
|
isMatch = false;
|
|
break;
|
|
}
|
|
patternCp = pattern[patternPos];
|
|
if (cp !== patternCp && (caseSensitive || cp !== toAsciiLowerCodePoint(patternCp))) {
|
|
isMatch = false;
|
|
break;
|
|
}
|
|
}
|
|
if (!isMatch)
|
|
this._unconsumeSeveral(this.consumptionPos - rollbackPos);
|
|
return isMatch;
|
|
};
|
|
Tokenizer.prototype._lookahead = function() {
|
|
var cp = this.preprocessor.advanceAndPeekCodePoint();
|
|
this.preprocessor.retreat();
|
|
return cp;
|
|
};
|
|
Tokenizer.prototype.isTempBufferEqualToScriptString = function() {
|
|
if (this.tempBuff.length !== $$.SCRIPT_STRING.length)
|
|
return false;
|
|
for (var i = 0; i < this.tempBuff.length; i++) {
|
|
if (this.tempBuff[i] !== $$.SCRIPT_STRING[i])
|
|
return false;
|
|
}
|
|
return true;
|
|
};
|
|
Tokenizer.prototype.buildStartTagToken = function(tagName) {
|
|
return {
|
|
type: Tokenizer.START_TAG_TOKEN,
|
|
tagName: tagName,
|
|
selfClosing: false,
|
|
attrs: []
|
|
};
|
|
};
|
|
Tokenizer.prototype.buildEndTagToken = function(tagName) {
|
|
return {
|
|
type: Tokenizer.END_TAG_TOKEN,
|
|
tagName: tagName,
|
|
ignored: false,
|
|
attrs: []
|
|
};
|
|
};
|
|
Tokenizer.prototype._createStartTagToken = function(tagNameFirstCh) {
|
|
this.currentToken = this.buildStartTagToken(tagNameFirstCh);
|
|
};
|
|
Tokenizer.prototype._createEndTagToken = function(tagNameFirstCh) {
|
|
this.currentToken = this.buildEndTagToken(tagNameFirstCh);
|
|
};
|
|
Tokenizer.prototype._createCommentToken = function() {
|
|
this.currentToken = {
|
|
type: Tokenizer.COMMENT_TOKEN,
|
|
data: ''
|
|
};
|
|
};
|
|
Tokenizer.prototype._createDoctypeToken = function(doctypeNameFirstCh) {
|
|
this.currentToken = {
|
|
type: Tokenizer.DOCTYPE_TOKEN,
|
|
name: doctypeNameFirstCh || '',
|
|
forceQuirks: false,
|
|
publicId: null,
|
|
systemId: null
|
|
};
|
|
};
|
|
Tokenizer.prototype._createAttr = function(attrNameFirstCh) {
|
|
this.currentAttr = {
|
|
name: attrNameFirstCh,
|
|
value: ''
|
|
};
|
|
};
|
|
Tokenizer.prototype._isDuplicateAttr = function() {
|
|
return Tokenizer.getTokenAttr(this.currentToken, this.currentAttr.name) !== null;
|
|
};
|
|
Tokenizer.prototype._leaveAttrName = function(toState) {
|
|
this.state = toState;
|
|
if (!this._isDuplicateAttr())
|
|
this.currentToken.attrs.push(this.currentAttr);
|
|
};
|
|
Tokenizer.prototype._isAppropriateEndTagToken = function() {
|
|
return this.lastStartTagName === this.currentToken.tagName;
|
|
};
|
|
Tokenizer.prototype._emitCurrentToken = function() {
|
|
this._emitCurrentCharacterToken();
|
|
if (this.currentToken.type === Tokenizer.START_TAG_TOKEN)
|
|
this.lastStartTagName = this.currentToken.tagName;
|
|
this.tokenQueue.push(this.currentToken);
|
|
this.currentToken = null;
|
|
};
|
|
Tokenizer.prototype._emitCurrentCharacterToken = function() {
|
|
if (this.currentCharacterToken) {
|
|
this.tokenQueue.push(this.currentCharacterToken);
|
|
this.currentCharacterToken = null;
|
|
}
|
|
};
|
|
Tokenizer.prototype._emitEOFToken = function() {
|
|
this._emitCurrentCharacterToken();
|
|
this.tokenQueue.push({type: Tokenizer.EOF_TOKEN});
|
|
};
|
|
Tokenizer.prototype._appendCharToCurrentCharacterToken = function(type, ch) {
|
|
if (this.currentCharacterToken && this.currentCharacterToken.type !== type)
|
|
this._emitCurrentCharacterToken();
|
|
if (this.currentCharacterToken)
|
|
this.currentCharacterToken.chars += ch;
|
|
else {
|
|
this.currentCharacterToken = {
|
|
type: type,
|
|
chars: ch
|
|
};
|
|
}
|
|
};
|
|
Tokenizer.prototype._emitCodePoint = function(cp) {
|
|
var type = Tokenizer.CHARACTER_TOKEN;
|
|
if (isWhitespace(cp))
|
|
type = Tokenizer.WHITESPACE_CHARACTER_TOKEN;
|
|
else if (cp === $.NULL)
|
|
type = Tokenizer.NULL_CHARACTER_TOKEN;
|
|
this._appendCharToCurrentCharacterToken(type, toChar(cp));
|
|
};
|
|
Tokenizer.prototype._emitSeveralCodePoints = function(codePoints) {
|
|
for (var i = 0; i < codePoints.length; i++)
|
|
this._emitCodePoint(codePoints[i]);
|
|
};
|
|
Tokenizer.prototype._emitChar = function(ch) {
|
|
this._appendCharToCurrentCharacterToken(Tokenizer.CHARACTER_TOKEN, ch);
|
|
};
|
|
Tokenizer.prototype._consumeNumericEntity = function(isHex) {
|
|
var digits = '',
|
|
nextCp = void 0;
|
|
do {
|
|
digits += toChar(this._consume());
|
|
nextCp = this._lookahead();
|
|
} while (nextCp !== $.EOF && isDigit(nextCp, isHex));
|
|
if (this._lookahead() === $.SEMICOLON)
|
|
this._consume();
|
|
var referencedCp = parseInt(digits, isHex ? 16 : 10),
|
|
replacement = NUMERIC_ENTITY_REPLACEMENTS[referencedCp];
|
|
if (replacement)
|
|
return replacement;
|
|
if (isReservedCodePoint(referencedCp))
|
|
return $.REPLACEMENT_CHARACTER;
|
|
return referencedCp;
|
|
};
|
|
Tokenizer.prototype._consumeNamedEntity = function(startCp, inAttr) {
|
|
var referencedCodePoints = null,
|
|
entityCodePointsCount = 0,
|
|
cp = startCp,
|
|
leaf = NAMED_ENTITY_TRIE[cp],
|
|
consumedCount = 1,
|
|
semicolonTerminated = false;
|
|
for (; leaf && cp !== $.EOF; cp = this._consume(), consumedCount++, leaf = leaf.l && leaf.l[cp]) {
|
|
if (leaf.c) {
|
|
referencedCodePoints = leaf.c;
|
|
entityCodePointsCount = consumedCount;
|
|
if (cp === $.SEMICOLON) {
|
|
semicolonTerminated = true;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
if (referencedCodePoints) {
|
|
if (!semicolonTerminated) {
|
|
this._unconsumeSeveral(consumedCount - entityCodePointsCount);
|
|
if (inAttr) {
|
|
var nextCp = this._lookahead();
|
|
if (nextCp === $.EQUALS_SIGN || isAsciiAlphaNumeric(nextCp)) {
|
|
this._unconsumeSeveral(entityCodePointsCount);
|
|
return null;
|
|
}
|
|
}
|
|
}
|
|
return referencedCodePoints;
|
|
}
|
|
this._unconsumeSeveral(consumedCount);
|
|
return null;
|
|
};
|
|
Tokenizer.prototype._consumeCharacterReference = function(startCp, inAttr) {
|
|
if (isWhitespace(startCp) || startCp === $.GREATER_THAN_SIGN || startCp === $.AMPERSAND || startCp === this.additionalAllowedCp || startCp === $.EOF) {
|
|
this._unconsume();
|
|
return null;
|
|
} else if (startCp === $.NUMBER_SIGN) {
|
|
var isHex = false,
|
|
nextCp = this._lookahead();
|
|
if (nextCp === $.LATIN_SMALL_X || nextCp === $.LATIN_CAPITAL_X) {
|
|
this._consume();
|
|
isHex = true;
|
|
}
|
|
nextCp = this._lookahead();
|
|
if (nextCp !== $.EOF && isDigit(nextCp, isHex))
|
|
return [this._consumeNumericEntity(isHex)];
|
|
else {
|
|
this._unconsumeSeveral(isHex ? 2 : 1);
|
|
return null;
|
|
}
|
|
} else
|
|
return this._consumeNamedEntity(startCp, inAttr);
|
|
};
|
|
var _ = Tokenizer.prototype;
|
|
_[DATA_STATE] = function dataState(cp) {
|
|
if (cp === $.AMPERSAND)
|
|
this.state = CHARACTER_REFERENCE_IN_DATA_STATE;
|
|
else if (cp === $.LESS_THAN_SIGN)
|
|
this.state = TAG_OPEN_STATE;
|
|
else if (cp === $.NULL)
|
|
this._emitCodePoint(cp);
|
|
else if (cp === $.EOF)
|
|
this._emitEOFToken();
|
|
else
|
|
this._emitCodePoint(cp);
|
|
};
|
|
_[CHARACTER_REFERENCE_IN_DATA_STATE] = function characterReferenceInDataState(cp) {
|
|
this.state = DATA_STATE;
|
|
this.additionalAllowedCp = void 0;
|
|
var referencedCodePoints = this._consumeCharacterReference(cp, false);
|
|
if (referencedCodePoints)
|
|
this._emitSeveralCodePoints(referencedCodePoints);
|
|
else
|
|
this._emitChar('&');
|
|
};
|
|
_[RCDATA_STATE] = function rcdataState(cp) {
|
|
if (cp === $.AMPERSAND)
|
|
this.state = CHARACTER_REFERENCE_IN_RCDATA_STATE;
|
|
else if (cp === $.LESS_THAN_SIGN)
|
|
this.state = RCDATA_LESS_THAN_SIGN_STATE;
|
|
else if (cp === $.NULL)
|
|
this._emitChar(UNICODE.REPLACEMENT_CHARACTER);
|
|
else if (cp === $.EOF)
|
|
this._emitEOFToken();
|
|
else
|
|
this._emitCodePoint(cp);
|
|
};
|
|
_[CHARACTER_REFERENCE_IN_RCDATA_STATE] = function characterReferenceInRcdataState(cp) {
|
|
this.state = RCDATA_STATE;
|
|
this.additionalAllowedCp = void 0;
|
|
var referencedCodePoints = this._consumeCharacterReference(cp, false);
|
|
if (referencedCodePoints)
|
|
this._emitSeveralCodePoints(referencedCodePoints);
|
|
else
|
|
this._emitChar('&');
|
|
};
|
|
_[RAWTEXT_STATE] = function rawtextState(cp) {
|
|
if (cp === $.LESS_THAN_SIGN)
|
|
this.state = RAWTEXT_LESS_THAN_SIGN_STATE;
|
|
else if (cp === $.NULL)
|
|
this._emitChar(UNICODE.REPLACEMENT_CHARACTER);
|
|
else if (cp === $.EOF)
|
|
this._emitEOFToken();
|
|
else
|
|
this._emitCodePoint(cp);
|
|
};
|
|
_[SCRIPT_DATA_STATE] = function scriptDataState(cp) {
|
|
if (cp === $.LESS_THAN_SIGN)
|
|
this.state = SCRIPT_DATA_LESS_THAN_SIGN_STATE;
|
|
else if (cp === $.NULL)
|
|
this._emitChar(UNICODE.REPLACEMENT_CHARACTER);
|
|
else if (cp === $.EOF)
|
|
this._emitEOFToken();
|
|
else
|
|
this._emitCodePoint(cp);
|
|
};
|
|
_[PLAINTEXT_STATE] = function plaintextState(cp) {
|
|
if (cp === $.NULL)
|
|
this._emitChar(UNICODE.REPLACEMENT_CHARACTER);
|
|
else if (cp === $.EOF)
|
|
this._emitEOFToken();
|
|
else
|
|
this._emitCodePoint(cp);
|
|
};
|
|
_[TAG_OPEN_STATE] = function tagOpenState(cp) {
|
|
if (cp === $.EXCLAMATION_MARK)
|
|
this.state = MARKUP_DECLARATION_OPEN_STATE;
|
|
else if (cp === $.SOLIDUS)
|
|
this.state = END_TAG_OPEN_STATE;
|
|
else if (isAsciiUpper(cp)) {
|
|
this._createStartTagToken(toAsciiLowerChar(cp));
|
|
this.state = TAG_NAME_STATE;
|
|
} else if (isAsciiLower(cp)) {
|
|
this._createStartTagToken(toChar(cp));
|
|
this.state = TAG_NAME_STATE;
|
|
} else if (cp === $.QUESTION_MARK) {
|
|
this[BOGUS_COMMENT_STATE](cp);
|
|
} else {
|
|
this._emitChar('<');
|
|
this._reconsumeInState(DATA_STATE);
|
|
}
|
|
};
|
|
_[END_TAG_OPEN_STATE] = function endTagOpenState(cp) {
|
|
if (isAsciiUpper(cp)) {
|
|
this._createEndTagToken(toAsciiLowerChar(cp));
|
|
this.state = TAG_NAME_STATE;
|
|
} else if (isAsciiLower(cp)) {
|
|
this._createEndTagToken(toChar(cp));
|
|
this.state = TAG_NAME_STATE;
|
|
} else if (cp === $.GREATER_THAN_SIGN)
|
|
this.state = DATA_STATE;
|
|
else if (cp === $.EOF) {
|
|
this._reconsumeInState(DATA_STATE);
|
|
this._emitChar('<');
|
|
this._emitChar('/');
|
|
} else {
|
|
this[BOGUS_COMMENT_STATE](cp);
|
|
}
|
|
};
|
|
_[TAG_NAME_STATE] = function tagNameState(cp) {
|
|
if (isWhitespace(cp))
|
|
this.state = BEFORE_ATTRIBUTE_NAME_STATE;
|
|
else if (cp === $.SOLIDUS)
|
|
this.state = SELF_CLOSING_START_TAG_STATE;
|
|
else if (cp === $.GREATER_THAN_SIGN) {
|
|
this.state = DATA_STATE;
|
|
this._emitCurrentToken();
|
|
} else if (isAsciiUpper(cp))
|
|
this.currentToken.tagName += toAsciiLowerChar(cp);
|
|
else if (cp === $.NULL)
|
|
this.currentToken.tagName += UNICODE.REPLACEMENT_CHARACTER;
|
|
else if (cp === $.EOF)
|
|
this._reconsumeInState(DATA_STATE);
|
|
else
|
|
this.currentToken.tagName += toChar(cp);
|
|
};
|
|
_[RCDATA_LESS_THAN_SIGN_STATE] = function rcdataLessThanSignState(cp) {
|
|
if (cp === $.SOLIDUS) {
|
|
this.tempBuff = [];
|
|
this.state = RCDATA_END_TAG_OPEN_STATE;
|
|
} else {
|
|
this._emitChar('<');
|
|
this._reconsumeInState(RCDATA_STATE);
|
|
}
|
|
};
|
|
_[RCDATA_END_TAG_OPEN_STATE] = function rcdataEndTagOpenState(cp) {
|
|
if (isAsciiUpper(cp)) {
|
|
this._createEndTagToken(toAsciiLowerChar(cp));
|
|
this.tempBuff.push(cp);
|
|
this.state = RCDATA_END_TAG_NAME_STATE;
|
|
} else if (isAsciiLower(cp)) {
|
|
this._createEndTagToken(toChar(cp));
|
|
this.tempBuff.push(cp);
|
|
this.state = RCDATA_END_TAG_NAME_STATE;
|
|
} else {
|
|
this._emitChar('<');
|
|
this._emitChar('/');
|
|
this._reconsumeInState(RCDATA_STATE);
|
|
}
|
|
};
|
|
_[RCDATA_END_TAG_NAME_STATE] = function rcdataEndTagNameState(cp) {
|
|
if (isAsciiUpper(cp)) {
|
|
this.currentToken.tagName += toAsciiLowerChar(cp);
|
|
this.tempBuff.push(cp);
|
|
} else if (isAsciiLower(cp)) {
|
|
this.currentToken.tagName += toChar(cp);
|
|
this.tempBuff.push(cp);
|
|
} else {
|
|
if (this._isAppropriateEndTagToken()) {
|
|
if (isWhitespace(cp)) {
|
|
this.state = BEFORE_ATTRIBUTE_NAME_STATE;
|
|
return ;
|
|
}
|
|
if (cp === $.SOLIDUS) {
|
|
this.state = SELF_CLOSING_START_TAG_STATE;
|
|
return ;
|
|
}
|
|
if (cp === $.GREATER_THAN_SIGN) {
|
|
this.state = DATA_STATE;
|
|
this._emitCurrentToken();
|
|
return ;
|
|
}
|
|
}
|
|
this._emitChar('<');
|
|
this._emitChar('/');
|
|
this._emitSeveralCodePoints(this.tempBuff);
|
|
this._reconsumeInState(RCDATA_STATE);
|
|
}
|
|
};
|
|
_[RAWTEXT_LESS_THAN_SIGN_STATE] = function rawtextLessThanSignState(cp) {
|
|
if (cp === $.SOLIDUS) {
|
|
this.tempBuff = [];
|
|
this.state = RAWTEXT_END_TAG_OPEN_STATE;
|
|
} else {
|
|
this._emitChar('<');
|
|
this._reconsumeInState(RAWTEXT_STATE);
|
|
}
|
|
};
|
|
_[RAWTEXT_END_TAG_OPEN_STATE] = function rawtextEndTagOpenState(cp) {
|
|
if (isAsciiUpper(cp)) {
|
|
this._createEndTagToken(toAsciiLowerChar(cp));
|
|
this.tempBuff.push(cp);
|
|
this.state = RAWTEXT_END_TAG_NAME_STATE;
|
|
} else if (isAsciiLower(cp)) {
|
|
this._createEndTagToken(toChar(cp));
|
|
this.tempBuff.push(cp);
|
|
this.state = RAWTEXT_END_TAG_NAME_STATE;
|
|
} else {
|
|
this._emitChar('<');
|
|
this._emitChar('/');
|
|
this._reconsumeInState(RAWTEXT_STATE);
|
|
}
|
|
};
|
|
_[RAWTEXT_END_TAG_NAME_STATE] = function rawtextEndTagNameState(cp) {
|
|
if (isAsciiUpper(cp)) {
|
|
this.currentToken.tagName += toAsciiLowerChar(cp);
|
|
this.tempBuff.push(cp);
|
|
} else if (isAsciiLower(cp)) {
|
|
this.currentToken.tagName += toChar(cp);
|
|
this.tempBuff.push(cp);
|
|
} else {
|
|
if (this._isAppropriateEndTagToken()) {
|
|
if (isWhitespace(cp)) {
|
|
this.state = BEFORE_ATTRIBUTE_NAME_STATE;
|
|
return ;
|
|
}
|
|
if (cp === $.SOLIDUS) {
|
|
this.state = SELF_CLOSING_START_TAG_STATE;
|
|
return ;
|
|
}
|
|
if (cp === $.GREATER_THAN_SIGN) {
|
|
this._emitCurrentToken();
|
|
this.state = DATA_STATE;
|
|
return ;
|
|
}
|
|
}
|
|
this._emitChar('<');
|
|
this._emitChar('/');
|
|
this._emitSeveralCodePoints(this.tempBuff);
|
|
this._reconsumeInState(RAWTEXT_STATE);
|
|
}
|
|
};
|
|
_[SCRIPT_DATA_LESS_THAN_SIGN_STATE] = function scriptDataLessThanSignState(cp) {
|
|
if (cp === $.SOLIDUS) {
|
|
this.tempBuff = [];
|
|
this.state = SCRIPT_DATA_END_TAG_OPEN_STATE;
|
|
} else if (cp === $.EXCLAMATION_MARK) {
|
|
this.state = SCRIPT_DATA_ESCAPE_START_STATE;
|
|
this._emitChar('<');
|
|
this._emitChar('!');
|
|
} else {
|
|
this._emitChar('<');
|
|
this._reconsumeInState(SCRIPT_DATA_STATE);
|
|
}
|
|
};
|
|
_[SCRIPT_DATA_END_TAG_OPEN_STATE] = function scriptDataEndTagOpenState(cp) {
|
|
if (isAsciiUpper(cp)) {
|
|
this._createEndTagToken(toAsciiLowerChar(cp));
|
|
this.tempBuff.push(cp);
|
|
this.state = SCRIPT_DATA_END_TAG_NAME_STATE;
|
|
} else if (isAsciiLower(cp)) {
|
|
this._createEndTagToken(toChar(cp));
|
|
this.tempBuff.push(cp);
|
|
this.state = SCRIPT_DATA_END_TAG_NAME_STATE;
|
|
} else {
|
|
this._emitChar('<');
|
|
this._emitChar('/');
|
|
this._reconsumeInState(SCRIPT_DATA_STATE);
|
|
}
|
|
};
|
|
_[SCRIPT_DATA_END_TAG_NAME_STATE] = function scriptDataEndTagNameState(cp) {
|
|
if (isAsciiUpper(cp)) {
|
|
this.currentToken.tagName += toAsciiLowerChar(cp);
|
|
this.tempBuff.push(cp);
|
|
} else if (isAsciiLower(cp)) {
|
|
this.currentToken.tagName += toChar(cp);
|
|
this.tempBuff.push(cp);
|
|
} else {
|
|
if (this._isAppropriateEndTagToken()) {
|
|
if (isWhitespace(cp)) {
|
|
this.state = BEFORE_ATTRIBUTE_NAME_STATE;
|
|
return ;
|
|
} else if (cp === $.SOLIDUS) {
|
|
this.state = SELF_CLOSING_START_TAG_STATE;
|
|
return ;
|
|
} else if (cp === $.GREATER_THAN_SIGN) {
|
|
this._emitCurrentToken();
|
|
this.state = DATA_STATE;
|
|
return ;
|
|
}
|
|
}
|
|
this._emitChar('<');
|
|
this._emitChar('/');
|
|
this._emitSeveralCodePoints(this.tempBuff);
|
|
this._reconsumeInState(SCRIPT_DATA_STATE);
|
|
}
|
|
};
|
|
_[SCRIPT_DATA_ESCAPE_START_STATE] = function scriptDataEscapeStartState(cp) {
|
|
if (cp === $.HYPHEN_MINUS) {
|
|
this.state = SCRIPT_DATA_ESCAPE_START_DASH_STATE;
|
|
this._emitChar('-');
|
|
} else
|
|
this._reconsumeInState(SCRIPT_DATA_STATE);
|
|
};
|
|
_[SCRIPT_DATA_ESCAPE_START_DASH_STATE] = function scriptDataEscapeStartDashState(cp) {
|
|
if (cp === $.HYPHEN_MINUS) {
|
|
this.state = SCRIPT_DATA_ESCAPED_DASH_DASH_STATE;
|
|
this._emitChar('-');
|
|
} else
|
|
this._reconsumeInState(SCRIPT_DATA_STATE);
|
|
};
|
|
_[SCRIPT_DATA_ESCAPED_STATE] = function scriptDataEscapedState(cp) {
|
|
if (cp === $.HYPHEN_MINUS) {
|
|
this.state = SCRIPT_DATA_ESCAPED_DASH_STATE;
|
|
this._emitChar('-');
|
|
} else if (cp === $.LESS_THAN_SIGN)
|
|
this.state = SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE;
|
|
else if (cp === $.NULL)
|
|
this._emitChar(UNICODE.REPLACEMENT_CHARACTER);
|
|
else if (cp === $.EOF)
|
|
this._reconsumeInState(DATA_STATE);
|
|
else
|
|
this._emitCodePoint(cp);
|
|
};
|
|
_[SCRIPT_DATA_ESCAPED_DASH_STATE] = function scriptDataEscapedDashState(cp) {
|
|
if (cp === $.HYPHEN_MINUS) {
|
|
this.state = SCRIPT_DATA_ESCAPED_DASH_DASH_STATE;
|
|
this._emitChar('-');
|
|
} else if (cp === $.LESS_THAN_SIGN)
|
|
this.state = SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE;
|
|
else if (cp === $.NULL) {
|
|
this.state = SCRIPT_DATA_ESCAPED_STATE;
|
|
this._emitChar(UNICODE.REPLACEMENT_CHARACTER);
|
|
} else if (cp === $.EOF)
|
|
this._reconsumeInState(DATA_STATE);
|
|
else {
|
|
this.state = SCRIPT_DATA_ESCAPED_STATE;
|
|
this._emitCodePoint(cp);
|
|
}
|
|
};
|
|
_[SCRIPT_DATA_ESCAPED_DASH_DASH_STATE] = function scriptDataEscapedDashDashState(cp) {
|
|
if (cp === $.HYPHEN_MINUS)
|
|
this._emitChar('-');
|
|
else if (cp === $.LESS_THAN_SIGN)
|
|
this.state = SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE;
|
|
else if (cp === $.GREATER_THAN_SIGN) {
|
|
this.state = SCRIPT_DATA_STATE;
|
|
this._emitChar('>');
|
|
} else if (cp === $.NULL) {
|
|
this.state = SCRIPT_DATA_ESCAPED_STATE;
|
|
this._emitChar(UNICODE.REPLACEMENT_CHARACTER);
|
|
} else if (cp === $.EOF)
|
|
this._reconsumeInState(DATA_STATE);
|
|
else {
|
|
this.state = SCRIPT_DATA_ESCAPED_STATE;
|
|
this._emitCodePoint(cp);
|
|
}
|
|
};
|
|
_[SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE] = function scriptDataEscapedLessThanSignState(cp) {
|
|
if (cp === $.SOLIDUS) {
|
|
this.tempBuff = [];
|
|
this.state = SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE;
|
|
} else if (isAsciiUpper(cp)) {
|
|
this.tempBuff = [];
|
|
this.tempBuff.push(toAsciiLowerCodePoint(cp));
|
|
this.state = SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE;
|
|
this._emitChar('<');
|
|
this._emitCodePoint(cp);
|
|
} else if (isAsciiLower(cp)) {
|
|
this.tempBuff = [];
|
|
this.tempBuff.push(cp);
|
|
this.state = SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE;
|
|
this._emitChar('<');
|
|
this._emitCodePoint(cp);
|
|
} else {
|
|
this._emitChar('<');
|
|
this._reconsumeInState(SCRIPT_DATA_ESCAPED_STATE);
|
|
}
|
|
};
|
|
_[SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE] = function scriptDataEscapedEndTagOpenState(cp) {
|
|
if (isAsciiUpper(cp)) {
|
|
this._createEndTagToken(toAsciiLowerChar(cp));
|
|
this.tempBuff.push(cp);
|
|
this.state = SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE;
|
|
} else if (isAsciiLower(cp)) {
|
|
this._createEndTagToken(toChar(cp));
|
|
this.tempBuff.push(cp);
|
|
this.state = SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE;
|
|
} else {
|
|
this._emitChar('<');
|
|
this._emitChar('/');
|
|
this._reconsumeInState(SCRIPT_DATA_ESCAPED_STATE);
|
|
}
|
|
};
|
|
_[SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE] = function scriptDataEscapedEndTagNameState(cp) {
|
|
if (isAsciiUpper(cp)) {
|
|
this.currentToken.tagName += toAsciiLowerChar(cp);
|
|
this.tempBuff.push(cp);
|
|
} else if (isAsciiLower(cp)) {
|
|
this.currentToken.tagName += toChar(cp);
|
|
this.tempBuff.push(cp);
|
|
} else {
|
|
if (this._isAppropriateEndTagToken()) {
|
|
if (isWhitespace(cp)) {
|
|
this.state = BEFORE_ATTRIBUTE_NAME_STATE;
|
|
return ;
|
|
}
|
|
if (cp === $.SOLIDUS) {
|
|
this.state = SELF_CLOSING_START_TAG_STATE;
|
|
return ;
|
|
}
|
|
if (cp === $.GREATER_THAN_SIGN) {
|
|
this._emitCurrentToken();
|
|
this.state = DATA_STATE;
|
|
return ;
|
|
}
|
|
}
|
|
this._emitChar('<');
|
|
this._emitChar('/');
|
|
this._emitSeveralCodePoints(this.tempBuff);
|
|
this._reconsumeInState(SCRIPT_DATA_ESCAPED_STATE);
|
|
}
|
|
};
|
|
_[SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE] = function scriptDataDoubleEscapeStartState(cp) {
|
|
if (isWhitespace(cp) || cp === $.SOLIDUS || cp === $.GREATER_THAN_SIGN) {
|
|
this.state = this.isTempBufferEqualToScriptString() ? SCRIPT_DATA_DOUBLE_ESCAPED_STATE : SCRIPT_DATA_ESCAPED_STATE;
|
|
this._emitCodePoint(cp);
|
|
} else if (isAsciiUpper(cp)) {
|
|
this.tempBuff.push(toAsciiLowerCodePoint(cp));
|
|
this._emitCodePoint(cp);
|
|
} else if (isAsciiLower(cp)) {
|
|
this.tempBuff.push(cp);
|
|
this._emitCodePoint(cp);
|
|
} else
|
|
this._reconsumeInState(SCRIPT_DATA_ESCAPED_STATE);
|
|
};
|
|
_[SCRIPT_DATA_DOUBLE_ESCAPED_STATE] = function scriptDataDoubleEscapedState(cp) {
|
|
if (cp === $.HYPHEN_MINUS) {
|
|
this.state = SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE;
|
|
this._emitChar('-');
|
|
} else if (cp === $.LESS_THAN_SIGN) {
|
|
this.state = SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE;
|
|
this._emitChar('<');
|
|
} else if (cp === $.NULL)
|
|
this._emitChar(UNICODE.REPLACEMENT_CHARACTER);
|
|
else if (cp === $.EOF)
|
|
this._reconsumeInState(DATA_STATE);
|
|
else
|
|
this._emitCodePoint(cp);
|
|
};
|
|
_[SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE] = function scriptDataDoubleEscapedDashState(cp) {
|
|
if (cp === $.HYPHEN_MINUS) {
|
|
this.state = SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE;
|
|
this._emitChar('-');
|
|
} else if (cp === $.LESS_THAN_SIGN) {
|
|
this.state = SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE;
|
|
this._emitChar('<');
|
|
} else if (cp === $.NULL) {
|
|
this.state = SCRIPT_DATA_DOUBLE_ESCAPED_STATE;
|
|
this._emitChar(UNICODE.REPLACEMENT_CHARACTER);
|
|
} else if (cp === $.EOF)
|
|
this._reconsumeInState(DATA_STATE);
|
|
else {
|
|
this.state = SCRIPT_DATA_DOUBLE_ESCAPED_STATE;
|
|
this._emitCodePoint(cp);
|
|
}
|
|
};
|
|
_[SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE] = function scriptDataDoubleEscapedDashDashState(cp) {
|
|
if (cp === $.HYPHEN_MINUS)
|
|
this._emitChar('-');
|
|
else if (cp === $.LESS_THAN_SIGN) {
|
|
this.state = SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE;
|
|
this._emitChar('<');
|
|
} else if (cp === $.GREATER_THAN_SIGN) {
|
|
this.state = SCRIPT_DATA_STATE;
|
|
this._emitChar('>');
|
|
} else if (cp === $.NULL) {
|
|
this.state = SCRIPT_DATA_DOUBLE_ESCAPED_STATE;
|
|
this._emitChar(UNICODE.REPLACEMENT_CHARACTER);
|
|
} else if (cp === $.EOF)
|
|
this._reconsumeInState(DATA_STATE);
|
|
else {
|
|
this.state = SCRIPT_DATA_DOUBLE_ESCAPED_STATE;
|
|
this._emitCodePoint(cp);
|
|
}
|
|
};
|
|
_[SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE] = function scriptDataDoubleEscapedLessThanSignState(cp) {
|
|
if (cp === $.SOLIDUS) {
|
|
this.tempBuff = [];
|
|
this.state = SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE;
|
|
this._emitChar('/');
|
|
} else
|
|
this._reconsumeInState(SCRIPT_DATA_DOUBLE_ESCAPED_STATE);
|
|
};
|
|
_[SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE] = function scriptDataDoubleEscapeEndState(cp) {
|
|
if (isWhitespace(cp) || cp === $.SOLIDUS || cp === $.GREATER_THAN_SIGN) {
|
|
this.state = this.isTempBufferEqualToScriptString() ? SCRIPT_DATA_ESCAPED_STATE : SCRIPT_DATA_DOUBLE_ESCAPED_STATE;
|
|
this._emitCodePoint(cp);
|
|
} else if (isAsciiUpper(cp)) {
|
|
this.tempBuff.push(toAsciiLowerCodePoint(cp));
|
|
this._emitCodePoint(cp);
|
|
} else if (isAsciiLower(cp)) {
|
|
this.tempBuff.push(cp);
|
|
this._emitCodePoint(cp);
|
|
} else
|
|
this._reconsumeInState(SCRIPT_DATA_DOUBLE_ESCAPED_STATE);
|
|
};
|
|
_[BEFORE_ATTRIBUTE_NAME_STATE] = function beforeAttributeNameState(cp) {
|
|
if (isWhitespace(cp))
|
|
return ;
|
|
if (cp === $.SOLIDUS)
|
|
this.state = SELF_CLOSING_START_TAG_STATE;
|
|
else if (cp === $.GREATER_THAN_SIGN) {
|
|
this.state = DATA_STATE;
|
|
this._emitCurrentToken();
|
|
} else if (isAsciiUpper(cp)) {
|
|
this._createAttr(toAsciiLowerChar(cp));
|
|
this.state = ATTRIBUTE_NAME_STATE;
|
|
} else if (cp === $.NULL) {
|
|
this._createAttr(UNICODE.REPLACEMENT_CHARACTER);
|
|
this.state = ATTRIBUTE_NAME_STATE;
|
|
} else if (cp === $.QUOTATION_MARK || cp === $.APOSTROPHE || cp === $.LESS_THAN_SIGN || cp === $.EQUALS_SIGN) {
|
|
this._createAttr(toChar(cp));
|
|
this.state = ATTRIBUTE_NAME_STATE;
|
|
} else if (cp === $.EOF)
|
|
this._reconsumeInState(DATA_STATE);
|
|
else {
|
|
this._createAttr(toChar(cp));
|
|
this.state = ATTRIBUTE_NAME_STATE;
|
|
}
|
|
};
|
|
_[ATTRIBUTE_NAME_STATE] = function attributeNameState(cp) {
|
|
if (isWhitespace(cp))
|
|
this._leaveAttrName(AFTER_ATTRIBUTE_NAME_STATE);
|
|
else if (cp === $.SOLIDUS)
|
|
this._leaveAttrName(SELF_CLOSING_START_TAG_STATE);
|
|
else if (cp === $.EQUALS_SIGN)
|
|
this._leaveAttrName(BEFORE_ATTRIBUTE_VALUE_STATE);
|
|
else if (cp === $.GREATER_THAN_SIGN) {
|
|
this._leaveAttrName(DATA_STATE);
|
|
this._emitCurrentToken();
|
|
} else if (isAsciiUpper(cp))
|
|
this.currentAttr.name += toAsciiLowerChar(cp);
|
|
else if (cp === $.QUOTATION_MARK || cp === $.APOSTROPHE || cp === $.LESS_THAN_SIGN)
|
|
this.currentAttr.name += toChar(cp);
|
|
else if (cp === $.NULL)
|
|
this.currentAttr.name += UNICODE.REPLACEMENT_CHARACTER;
|
|
else if (cp === $.EOF)
|
|
this._reconsumeInState(DATA_STATE);
|
|
else
|
|
this.currentAttr.name += toChar(cp);
|
|
};
|
|
_[AFTER_ATTRIBUTE_NAME_STATE] = function afterAttributeNameState(cp) {
|
|
if (isWhitespace(cp))
|
|
return ;
|
|
if (cp === $.SOLIDUS)
|
|
this.state = SELF_CLOSING_START_TAG_STATE;
|
|
else if (cp === $.EQUALS_SIGN)
|
|
this.state = BEFORE_ATTRIBUTE_VALUE_STATE;
|
|
else if (cp === $.GREATER_THAN_SIGN) {
|
|
this.state = DATA_STATE;
|
|
this._emitCurrentToken();
|
|
} else if (isAsciiUpper(cp)) {
|
|
this._createAttr(toAsciiLowerChar(cp));
|
|
this.state = ATTRIBUTE_NAME_STATE;
|
|
} else if (cp === $.NULL) {
|
|
this._createAttr(UNICODE.REPLACEMENT_CHARACTER);
|
|
this.state = ATTRIBUTE_NAME_STATE;
|
|
} else if (cp === $.QUOTATION_MARK || cp === $.APOSTROPHE || cp === $.LESS_THAN_SIGN) {
|
|
this._createAttr(toChar(cp));
|
|
this.state = ATTRIBUTE_NAME_STATE;
|
|
} else if (cp === $.EOF)
|
|
this._reconsumeInState(DATA_STATE);
|
|
else {
|
|
this._createAttr(toChar(cp));
|
|
this.state = ATTRIBUTE_NAME_STATE;
|
|
}
|
|
};
|
|
_[BEFORE_ATTRIBUTE_VALUE_STATE] = function beforeAttributeValueState(cp) {
|
|
if (isWhitespace(cp))
|
|
return ;
|
|
if (cp === $.QUOTATION_MARK)
|
|
this.state = ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE;
|
|
else if (cp === $.AMPERSAND)
|
|
this._reconsumeInState(ATTRIBUTE_VALUE_UNQUOTED_STATE);
|
|
else if (cp === $.APOSTROPHE)
|
|
this.state = ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE;
|
|
else if (cp === $.NULL) {
|
|
this.currentAttr.value += UNICODE.REPLACEMENT_CHARACTER;
|
|
this.state = ATTRIBUTE_VALUE_UNQUOTED_STATE;
|
|
} else if (cp === $.GREATER_THAN_SIGN) {
|
|
this.state = DATA_STATE;
|
|
this._emitCurrentToken();
|
|
} else if (cp === $.LESS_THAN_SIGN || cp === $.EQUALS_SIGN || cp === $.GRAVE_ACCENT) {
|
|
this.currentAttr.value += toChar(cp);
|
|
this.state = ATTRIBUTE_VALUE_UNQUOTED_STATE;
|
|
} else if (cp === $.EOF)
|
|
this._reconsumeInState(DATA_STATE);
|
|
else {
|
|
this.currentAttr.value += toChar(cp);
|
|
this.state = ATTRIBUTE_VALUE_UNQUOTED_STATE;
|
|
}
|
|
};
|
|
_[ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE] = function attributeValueDoubleQuotedState(cp) {
|
|
if (cp === $.QUOTATION_MARK)
|
|
this.state = AFTER_ATTRIBUTE_VALUE_QUOTED_STATE;
|
|
else if (cp === $.AMPERSAND) {
|
|
this.additionalAllowedCp = $.QUOTATION_MARK;
|
|
this.returnState = this.state;
|
|
this.state = CHARACTER_REFERENCE_IN_ATTRIBUTE_VALUE_STATE;
|
|
} else if (cp === $.NULL)
|
|
this.currentAttr.value += UNICODE.REPLACEMENT_CHARACTER;
|
|
else if (cp === $.EOF)
|
|
this._reconsumeInState(DATA_STATE);
|
|
else
|
|
this.currentAttr.value += toChar(cp);
|
|
};
|
|
_[ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE] = function attributeValueSingleQuotedState(cp) {
|
|
if (cp === $.APOSTROPHE)
|
|
this.state = AFTER_ATTRIBUTE_VALUE_QUOTED_STATE;
|
|
else if (cp === $.AMPERSAND) {
|
|
this.additionalAllowedCp = $.APOSTROPHE;
|
|
this.returnState = this.state;
|
|
this.state = CHARACTER_REFERENCE_IN_ATTRIBUTE_VALUE_STATE;
|
|
} else if (cp === $.NULL)
|
|
this.currentAttr.value += UNICODE.REPLACEMENT_CHARACTER;
|
|
else if (cp === $.EOF)
|
|
this._reconsumeInState(DATA_STATE);
|
|
else
|
|
this.currentAttr.value += toChar(cp);
|
|
};
|
|
_[ATTRIBUTE_VALUE_UNQUOTED_STATE] = function attributeValueUnquotedState(cp) {
|
|
if (isWhitespace(cp))
|
|
this.state = BEFORE_ATTRIBUTE_NAME_STATE;
|
|
else if (cp === $.AMPERSAND) {
|
|
this.additionalAllowedCp = $.GREATER_THAN_SIGN;
|
|
this.returnState = this.state;
|
|
this.state = CHARACTER_REFERENCE_IN_ATTRIBUTE_VALUE_STATE;
|
|
} else if (cp === $.GREATER_THAN_SIGN) {
|
|
this.state = DATA_STATE;
|
|
this._emitCurrentToken();
|
|
} else if (cp === $.NULL)
|
|
this.currentAttr.value += UNICODE.REPLACEMENT_CHARACTER;
|
|
else if (cp === $.QUOTATION_MARK || cp === $.APOSTROPHE || cp === $.LESS_THAN_SIGN || cp === $.EQUALS_SIGN || cp === $.GRAVE_ACCENT) {
|
|
this.currentAttr.value += toChar(cp);
|
|
} else if (cp === $.EOF)
|
|
this._reconsumeInState(DATA_STATE);
|
|
else
|
|
this.currentAttr.value += toChar(cp);
|
|
};
|
|
_[CHARACTER_REFERENCE_IN_ATTRIBUTE_VALUE_STATE] = function characterReferenceInAttributeValueState(cp) {
|
|
var referencedCodePoints = this._consumeCharacterReference(cp, true);
|
|
if (referencedCodePoints) {
|
|
for (var i = 0; i < referencedCodePoints.length; i++)
|
|
this.currentAttr.value += toChar(referencedCodePoints[i]);
|
|
} else
|
|
this.currentAttr.value += '&';
|
|
this.state = this.returnState;
|
|
};
|
|
_[AFTER_ATTRIBUTE_VALUE_QUOTED_STATE] = function afterAttributeValueQuotedState(cp) {
|
|
if (isWhitespace(cp))
|
|
this.state = BEFORE_ATTRIBUTE_NAME_STATE;
|
|
else if (cp === $.SOLIDUS)
|
|
this.state = SELF_CLOSING_START_TAG_STATE;
|
|
else if (cp === $.GREATER_THAN_SIGN) {
|
|
this.state = DATA_STATE;
|
|
this._emitCurrentToken();
|
|
} else if (cp === $.EOF)
|
|
this._reconsumeInState(DATA_STATE);
|
|
else
|
|
this._reconsumeInState(BEFORE_ATTRIBUTE_NAME_STATE);
|
|
};
|
|
_[SELF_CLOSING_START_TAG_STATE] = function selfClosingStartTagState(cp) {
|
|
if (cp === $.GREATER_THAN_SIGN) {
|
|
this.currentToken.selfClosing = true;
|
|
this.state = DATA_STATE;
|
|
this._emitCurrentToken();
|
|
} else if (cp === $.EOF)
|
|
this._reconsumeInState(DATA_STATE);
|
|
else
|
|
this._reconsumeInState(BEFORE_ATTRIBUTE_NAME_STATE);
|
|
};
|
|
_[BOGUS_COMMENT_STATE] = function bogusCommentState(cp) {
|
|
this._createCommentToken();
|
|
while (true) {
|
|
if (cp === $.GREATER_THAN_SIGN) {
|
|
this.state = DATA_STATE;
|
|
break;
|
|
} else if (cp === $.EOF) {
|
|
this._reconsumeInState(DATA_STATE);
|
|
break;
|
|
} else {
|
|
this.currentToken.data += cp === $.NULL ? UNICODE.REPLACEMENT_CHARACTER : toChar(cp);
|
|
cp = this._consume();
|
|
}
|
|
}
|
|
this._emitCurrentToken();
|
|
};
|
|
_[MARKUP_DECLARATION_OPEN_STATE] = function markupDeclarationOpenState(cp) {
|
|
if (this._consumeSubsequentIfMatch($$.DASH_DASH_STRING, cp, true)) {
|
|
this._createCommentToken();
|
|
this.state = COMMENT_START_STATE;
|
|
} else if (this._consumeSubsequentIfMatch($$.DOCTYPE_STRING, cp, false))
|
|
this.state = DOCTYPE_STATE;
|
|
else if (this.allowCDATA && this._consumeSubsequentIfMatch($$.CDATA_START_STRING, cp, true))
|
|
this.state = CDATA_SECTION_STATE;
|
|
else {
|
|
this[BOGUS_COMMENT_STATE](cp);
|
|
}
|
|
};
|
|
_[COMMENT_START_STATE] = function commentStartState(cp) {
|
|
if (cp === $.HYPHEN_MINUS)
|
|
this.state = COMMENT_START_DASH_STATE;
|
|
else if (cp === $.NULL) {
|
|
this.currentToken.data += UNICODE.REPLACEMENT_CHARACTER;
|
|
this.state = COMMENT_STATE;
|
|
} else if (cp === $.GREATER_THAN_SIGN) {
|
|
this.state = DATA_STATE;
|
|
this._emitCurrentToken();
|
|
} else if (cp === $.EOF) {
|
|
this._emitCurrentToken();
|
|
this._reconsumeInState(DATA_STATE);
|
|
} else {
|
|
this.currentToken.data += toChar(cp);
|
|
this.state = COMMENT_STATE;
|
|
}
|
|
};
|
|
_[COMMENT_START_DASH_STATE] = function commentStartDashState(cp) {
|
|
if (cp === $.HYPHEN_MINUS)
|
|
this.state = COMMENT_END_STATE;
|
|
else if (cp === $.NULL) {
|
|
this.currentToken.data += '-';
|
|
this.currentToken.data += UNICODE.REPLACEMENT_CHARACTER;
|
|
this.state = COMMENT_STATE;
|
|
} else if (cp === $.GREATER_THAN_SIGN) {
|
|
this.state = DATA_STATE;
|
|
this._emitCurrentToken();
|
|
} else if (cp === $.EOF) {
|
|
this._emitCurrentToken();
|
|
this._reconsumeInState(DATA_STATE);
|
|
} else {
|
|
this.currentToken.data += '-';
|
|
this.currentToken.data += toChar(cp);
|
|
this.state = COMMENT_STATE;
|
|
}
|
|
};
|
|
_[COMMENT_STATE] = function commentState(cp) {
|
|
if (cp === $.HYPHEN_MINUS)
|
|
this.state = COMMENT_END_DASH_STATE;
|
|
else if (cp === $.NULL)
|
|
this.currentToken.data += UNICODE.REPLACEMENT_CHARACTER;
|
|
else if (cp === $.EOF) {
|
|
this._emitCurrentToken();
|
|
this._reconsumeInState(DATA_STATE);
|
|
} else
|
|
this.currentToken.data += toChar(cp);
|
|
};
|
|
_[COMMENT_END_DASH_STATE] = function commentEndDashState(cp) {
|
|
if (cp === $.HYPHEN_MINUS)
|
|
this.state = COMMENT_END_STATE;
|
|
else if (cp === $.NULL) {
|
|
this.currentToken.data += '-';
|
|
this.currentToken.data += UNICODE.REPLACEMENT_CHARACTER;
|
|
this.state = COMMENT_STATE;
|
|
} else if (cp === $.EOF) {
|
|
this._emitCurrentToken();
|
|
this._reconsumeInState(DATA_STATE);
|
|
} else {
|
|
this.currentToken.data += '-';
|
|
this.currentToken.data += toChar(cp);
|
|
this.state = COMMENT_STATE;
|
|
}
|
|
};
|
|
_[COMMENT_END_STATE] = function commentEndState(cp) {
|
|
if (cp === $.GREATER_THAN_SIGN) {
|
|
this.state = DATA_STATE;
|
|
this._emitCurrentToken();
|
|
} else if (cp === $.EXCLAMATION_MARK)
|
|
this.state = COMMENT_END_BANG_STATE;
|
|
else if (cp === $.HYPHEN_MINUS)
|
|
this.currentToken.data += '-';
|
|
else if (cp === $.NULL) {
|
|
this.currentToken.data += '--';
|
|
this.currentToken.data += UNICODE.REPLACEMENT_CHARACTER;
|
|
this.state = COMMENT_STATE;
|
|
} else if (cp === $.EOF) {
|
|
this._reconsumeInState(DATA_STATE);
|
|
this._emitCurrentToken();
|
|
} else {
|
|
this.currentToken.data += '--';
|
|
this.currentToken.data += toChar(cp);
|
|
this.state = COMMENT_STATE;
|
|
}
|
|
};
|
|
_[COMMENT_END_BANG_STATE] = function commentEndBangState(cp) {
|
|
if (cp === $.HYPHEN_MINUS) {
|
|
this.currentToken.data += '--!';
|
|
this.state = COMMENT_END_DASH_STATE;
|
|
} else if (cp === $.GREATER_THAN_SIGN) {
|
|
this.state = DATA_STATE;
|
|
this._emitCurrentToken();
|
|
} else if (cp === $.NULL) {
|
|
this.currentToken.data += '--!';
|
|
this.currentToken.data += UNICODE.REPLACEMENT_CHARACTER;
|
|
this.state = COMMENT_STATE;
|
|
} else if (cp === $.EOF) {
|
|
this._emitCurrentToken();
|
|
this._reconsumeInState(DATA_STATE);
|
|
} else {
|
|
this.currentToken.data += '--!';
|
|
this.currentToken.data += toChar(cp);
|
|
this.state = COMMENT_STATE;
|
|
}
|
|
};
|
|
_[DOCTYPE_STATE] = function doctypeState(cp) {
|
|
if (isWhitespace(cp))
|
|
this.state = BEFORE_DOCTYPE_NAME_STATE;
|
|
else if (cp === $.EOF) {
|
|
this._createDoctypeToken();
|
|
this.currentToken.forceQuirks = true;
|
|
this._emitCurrentToken();
|
|
this._reconsumeInState(DATA_STATE);
|
|
} else
|
|
this._reconsumeInState(BEFORE_DOCTYPE_NAME_STATE);
|
|
};
|
|
_[BEFORE_DOCTYPE_NAME_STATE] = function beforeDoctypeNameState(cp) {
|
|
if (isWhitespace(cp))
|
|
return ;
|
|
if (isAsciiUpper(cp)) {
|
|
this._createDoctypeToken(toAsciiLowerChar(cp));
|
|
this.state = DOCTYPE_NAME_STATE;
|
|
} else if (cp === $.GREATER_THAN_SIGN) {
|
|
this._createDoctypeToken();
|
|
this.currentToken.forceQuirks = true;
|
|
this._emitCurrentToken();
|
|
this.state = DATA_STATE;
|
|
} else if (cp === $.EOF) {
|
|
this._createDoctypeToken();
|
|
this.currentToken.forceQuirks = true;
|
|
this._emitCurrentToken();
|
|
this._reconsumeInState(DATA_STATE);
|
|
} else if (cp === $.NULL) {
|
|
this._createDoctypeToken(UNICODE.REPLACEMENT_CHARACTER);
|
|
this.state = DOCTYPE_NAME_STATE;
|
|
} else {
|
|
this._createDoctypeToken(toChar(cp));
|
|
this.state = DOCTYPE_NAME_STATE;
|
|
}
|
|
};
|
|
_[DOCTYPE_NAME_STATE] = function doctypeNameState(cp) {
|
|
if (isWhitespace(cp))
|
|
this.state = AFTER_DOCTYPE_NAME_STATE;
|
|
else if (cp === $.GREATER_THAN_SIGN) {
|
|
this._emitCurrentToken();
|
|
this.state = DATA_STATE;
|
|
} else if (isAsciiUpper(cp))
|
|
this.currentToken.name += toAsciiLowerChar(cp);
|
|
else if (cp === $.NULL)
|
|
this.currentToken.name += UNICODE.REPLACEMENT_CHARACTER;
|
|
else if (cp === $.EOF) {
|
|
this.currentToken.forceQuirks = true;
|
|
this._emitCurrentToken();
|
|
this._reconsumeInState(DATA_STATE);
|
|
} else
|
|
this.currentToken.name += toChar(cp);
|
|
};
|
|
_[AFTER_DOCTYPE_NAME_STATE] = function afterDoctypeNameState(cp) {
|
|
if (isWhitespace(cp))
|
|
return ;
|
|
if (cp === $.GREATER_THAN_SIGN) {
|
|
this.state = DATA_STATE;
|
|
this._emitCurrentToken();
|
|
} else if (cp === $.EOF) {
|
|
this.currentToken.forceQuirks = true;
|
|
this._emitCurrentToken();
|
|
this._reconsumeInState(DATA_STATE);
|
|
} else if (this._consumeSubsequentIfMatch($$.PUBLIC_STRING, cp, false))
|
|
this.state = AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE;
|
|
else if (this._consumeSubsequentIfMatch($$.SYSTEM_STRING, cp, false))
|
|
this.state = AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE;
|
|
else {
|
|
this.currentToken.forceQuirks = true;
|
|
this.state = BOGUS_DOCTYPE_STATE;
|
|
}
|
|
};
|
|
_[AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE] = function afterDoctypePublicKeywordState(cp) {
|
|
if (isWhitespace(cp))
|
|
this.state = BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE;
|
|
else if (cp === $.QUOTATION_MARK) {
|
|
this.currentToken.publicId = '';
|
|
this.state = DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE;
|
|
} else if (cp === $.APOSTROPHE) {
|
|
this.currentToken.publicId = '';
|
|
this.state = DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE;
|
|
} else if (cp === $.GREATER_THAN_SIGN) {
|
|
this.currentToken.forceQuirks = true;
|
|
this._emitCurrentToken();
|
|
this.state = DATA_STATE;
|
|
} else if (cp === $.EOF) {
|
|
this.currentToken.forceQuirks = true;
|
|
this._emitCurrentToken();
|
|
this._reconsumeInState(DATA_STATE);
|
|
} else {
|
|
this.currentToken.forceQuirks = true;
|
|
this.state = BOGUS_DOCTYPE_STATE;
|
|
}
|
|
};
|
|
_[BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE] = function beforeDoctypePublicIdentifierState(cp) {
|
|
if (isWhitespace(cp))
|
|
return ;
|
|
if (cp === $.QUOTATION_MARK) {
|
|
this.currentToken.publicId = '';
|
|
this.state = DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE;
|
|
} else if (cp === $.APOSTROPHE) {
|
|
this.currentToken.publicId = '';
|
|
this.state = DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE;
|
|
} else if (cp === $.GREATER_THAN_SIGN) {
|
|
this.currentToken.forceQuirks = true;
|
|
this._emitCurrentToken();
|
|
this.state = DATA_STATE;
|
|
} else if (cp === $.EOF) {
|
|
this.currentToken.forceQuirks = true;
|
|
this._emitCurrentToken();
|
|
this._reconsumeInState(DATA_STATE);
|
|
} else {
|
|
this.currentToken.forceQuirks = true;
|
|
this.state = BOGUS_DOCTYPE_STATE;
|
|
}
|
|
};
|
|
_[DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE] = function doctypePublicIdentifierDoubleQuotedState(cp) {
|
|
if (cp === $.QUOTATION_MARK)
|
|
this.state = AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE;
|
|
else if (cp === $.NULL)
|
|
this.currentToken.publicId += UNICODE.REPLACEMENT_CHARACTER;
|
|
else if (cp === $.GREATER_THAN_SIGN) {
|
|
this.currentToken.forceQuirks = true;
|
|
this._emitCurrentToken();
|
|
this.state = DATA_STATE;
|
|
} else if (cp === $.EOF) {
|
|
this.currentToken.forceQuirks = true;
|
|
this._emitCurrentToken();
|
|
this._reconsumeInState(DATA_STATE);
|
|
} else
|
|
this.currentToken.publicId += toChar(cp);
|
|
};
|
|
_[DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE] = function doctypePublicIdentifierSingleQuotedState(cp) {
|
|
if (cp === $.APOSTROPHE)
|
|
this.state = AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE;
|
|
else if (cp === $.NULL)
|
|
this.currentToken.publicId += UNICODE.REPLACEMENT_CHARACTER;
|
|
else if (cp === $.GREATER_THAN_SIGN) {
|
|
this.currentToken.forceQuirks = true;
|
|
this._emitCurrentToken();
|
|
this.state = DATA_STATE;
|
|
} else if (cp === $.EOF) {
|
|
this.currentToken.forceQuirks = true;
|
|
this._emitCurrentToken();
|
|
this._reconsumeInState(DATA_STATE);
|
|
} else
|
|
this.currentToken.publicId += toChar(cp);
|
|
};
|
|
_[AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE] = function afterDoctypePublicIdentifierState(cp) {
|
|
if (isWhitespace(cp))
|
|
this.state = BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE;
|
|
else if (cp === $.GREATER_THAN_SIGN) {
|
|
this._emitCurrentToken();
|
|
this.state = DATA_STATE;
|
|
} else if (cp === $.QUOTATION_MARK) {
|
|
this.currentToken.systemId = '';
|
|
this.state = DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE;
|
|
} else if (cp === $.APOSTROPHE) {
|
|
this.currentToken.systemId = '';
|
|
this.state = DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE;
|
|
} else if (cp === $.EOF) {
|
|
this.currentToken.forceQuirks = true;
|
|
this._emitCurrentToken();
|
|
this._reconsumeInState(DATA_STATE);
|
|
} else {
|
|
this.currentToken.forceQuirks = true;
|
|
this.state = BOGUS_DOCTYPE_STATE;
|
|
}
|
|
};
|
|
_[BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE] = function betweenDoctypePublicAndSystemIdentifiersState(cp) {
|
|
if (isWhitespace(cp))
|
|
return ;
|
|
if (cp === $.GREATER_THAN_SIGN) {
|
|
this._emitCurrentToken();
|
|
this.state = DATA_STATE;
|
|
} else if (cp === $.QUOTATION_MARK) {
|
|
this.currentToken.systemId = '';
|
|
this.state = DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE;
|
|
} else if (cp === $.APOSTROPHE) {
|
|
this.currentToken.systemId = '';
|
|
this.state = DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE;
|
|
} else if (cp === $.EOF) {
|
|
this.currentToken.forceQuirks = true;
|
|
this._emitCurrentToken();
|
|
this._reconsumeInState(DATA_STATE);
|
|
} else {
|
|
this.currentToken.forceQuirks = true;
|
|
this.state = BOGUS_DOCTYPE_STATE;
|
|
}
|
|
};
|
|
_[AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE] = function afterDoctypeSystemKeywordState(cp) {
|
|
if (isWhitespace(cp))
|
|
this.state = BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE;
|
|
else if (cp === $.QUOTATION_MARK) {
|
|
this.currentToken.systemId = '';
|
|
this.state = DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE;
|
|
} else if (cp === $.APOSTROPHE) {
|
|
this.currentToken.systemId = '';
|
|
this.state = DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE;
|
|
} else if (cp === $.GREATER_THAN_SIGN) {
|
|
this.currentToken.forceQuirks = true;
|
|
this._emitCurrentToken();
|
|
this.state = DATA_STATE;
|
|
} else if (cp === $.EOF) {
|
|
this.currentToken.forceQuirks = true;
|
|
this._emitCurrentToken();
|
|
this._reconsumeInState(DATA_STATE);
|
|
} else {
|
|
this.currentToken.forceQuirks = true;
|
|
this.state = BOGUS_DOCTYPE_STATE;
|
|
}
|
|
};
|
|
_[BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE] = function beforeDoctypeSystemIdentifierState(cp) {
|
|
if (isWhitespace(cp))
|
|
return ;
|
|
if (cp === $.QUOTATION_MARK) {
|
|
this.currentToken.systemId = '';
|
|
this.state = DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE;
|
|
} else if (cp === $.APOSTROPHE) {
|
|
this.currentToken.systemId = '';
|
|
this.state = DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE;
|
|
} else if (cp === $.GREATER_THAN_SIGN) {
|
|
this.currentToken.forceQuirks = true;
|
|
this._emitCurrentToken();
|
|
this.state = DATA_STATE;
|
|
} else if (cp === $.EOF) {
|
|
this.currentToken.forceQuirks = true;
|
|
this._emitCurrentToken();
|
|
this._reconsumeInState(DATA_STATE);
|
|
} else {
|
|
this.currentToken.forceQuirks = true;
|
|
this.state = BOGUS_DOCTYPE_STATE;
|
|
}
|
|
};
|
|
_[DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE] = function doctypeSystemIdentifierDoubleQuotedState(cp) {
|
|
if (cp === $.QUOTATION_MARK)
|
|
this.state = AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE;
|
|
else if (cp === $.GREATER_THAN_SIGN) {
|
|
this.currentToken.forceQuirks = true;
|
|
this._emitCurrentToken();
|
|
this.state = DATA_STATE;
|
|
} else if (cp === $.NULL)
|
|
this.currentToken.systemId += UNICODE.REPLACEMENT_CHARACTER;
|
|
else if (cp === $.EOF) {
|
|
this.currentToken.forceQuirks = true;
|
|
this._emitCurrentToken();
|
|
this._reconsumeInState(DATA_STATE);
|
|
} else
|
|
this.currentToken.systemId += toChar(cp);
|
|
};
|
|
_[DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE] = function doctypeSystemIdentifierSingleQuotedState(cp) {
|
|
if (cp === $.APOSTROPHE)
|
|
this.state = AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE;
|
|
else if (cp === $.GREATER_THAN_SIGN) {
|
|
this.currentToken.forceQuirks = true;
|
|
this._emitCurrentToken();
|
|
this.state = DATA_STATE;
|
|
} else if (cp === $.NULL)
|
|
this.currentToken.systemId += UNICODE.REPLACEMENT_CHARACTER;
|
|
else if (cp === $.EOF) {
|
|
this.currentToken.forceQuirks = true;
|
|
this._emitCurrentToken();
|
|
this._reconsumeInState(DATA_STATE);
|
|
} else
|
|
this.currentToken.systemId += toChar(cp);
|
|
};
|
|
_[AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE] = function afterDoctypeSystemIdentifierState(cp) {
|
|
if (isWhitespace(cp))
|
|
return ;
|
|
if (cp === $.GREATER_THAN_SIGN) {
|
|
this._emitCurrentToken();
|
|
this.state = DATA_STATE;
|
|
} else if (cp === $.EOF) {
|
|
this.currentToken.forceQuirks = true;
|
|
this._emitCurrentToken();
|
|
this._reconsumeInState(DATA_STATE);
|
|
} else
|
|
this.state = BOGUS_DOCTYPE_STATE;
|
|
};
|
|
_[BOGUS_DOCTYPE_STATE] = function bogusDoctypeState(cp) {
|
|
if (cp === $.GREATER_THAN_SIGN) {
|
|
this._emitCurrentToken();
|
|
this.state = DATA_STATE;
|
|
} else if (cp === $.EOF) {
|
|
this._emitCurrentToken();
|
|
this._reconsumeInState(DATA_STATE);
|
|
}
|
|
};
|
|
_[CDATA_SECTION_STATE] = function cdataSectionState(cp) {
|
|
while (true) {
|
|
if (cp === $.EOF) {
|
|
this._reconsumeInState(DATA_STATE);
|
|
break;
|
|
} else if (this._consumeSubsequentIfMatch($$.CDATA_END_STRING, cp, true)) {
|
|
this.state = DATA_STATE;
|
|
break;
|
|
} else {
|
|
this._emitCodePoint(cp);
|
|
cp = this._consume();
|
|
}
|
|
}
|
|
};
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/animate/css_animation_builder", ["angular2/src/animate/css_animation_options", "angular2/src/animate/animation"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var css_animation_options_1 = require("angular2/src/animate/css_animation_options");
|
|
var animation_1 = require("angular2/src/animate/animation");
|
|
var CssAnimationBuilder = (function() {
|
|
function CssAnimationBuilder(browserDetails) {
|
|
this.browserDetails = browserDetails;
|
|
this.data = new css_animation_options_1.CssAnimationOptions();
|
|
}
|
|
CssAnimationBuilder.prototype.addAnimationClass = function(className) {
|
|
this.data.animationClasses.push(className);
|
|
return this;
|
|
};
|
|
CssAnimationBuilder.prototype.addClass = function(className) {
|
|
this.data.classesToAdd.push(className);
|
|
return this;
|
|
};
|
|
CssAnimationBuilder.prototype.removeClass = function(className) {
|
|
this.data.classesToRemove.push(className);
|
|
return this;
|
|
};
|
|
CssAnimationBuilder.prototype.setDuration = function(duration) {
|
|
this.data.duration = duration;
|
|
return this;
|
|
};
|
|
CssAnimationBuilder.prototype.setDelay = function(delay) {
|
|
this.data.delay = delay;
|
|
return this;
|
|
};
|
|
CssAnimationBuilder.prototype.setStyles = function(from, to) {
|
|
return this.setFromStyles(from).setToStyles(to);
|
|
};
|
|
CssAnimationBuilder.prototype.setFromStyles = function(from) {
|
|
this.data.fromStyles = from;
|
|
return this;
|
|
};
|
|
CssAnimationBuilder.prototype.setToStyles = function(to) {
|
|
this.data.toStyles = to;
|
|
return this;
|
|
};
|
|
CssAnimationBuilder.prototype.start = function(element) {
|
|
return new animation_1.Animation(element, this.data, this.browserDetails);
|
|
};
|
|
return CssAnimationBuilder;
|
|
})();
|
|
exports.CssAnimationBuilder = CssAnimationBuilder;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/compiler/html_parser", ["angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/compiler/html_ast", "angular2/src/core/di", "angular2/src/compiler/html_lexer", "angular2/src/compiler/parse_util", "angular2/src/compiler/html_tags"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var html_ast_1 = require("angular2/src/compiler/html_ast");
|
|
var di_1 = require("angular2/src/core/di");
|
|
var html_lexer_1 = require("angular2/src/compiler/html_lexer");
|
|
var parse_util_1 = require("angular2/src/compiler/parse_util");
|
|
var html_tags_1 = require("angular2/src/compiler/html_tags");
|
|
var HtmlTreeError = (function(_super) {
|
|
__extends(HtmlTreeError, _super);
|
|
function HtmlTreeError(elementName, span, msg) {
|
|
_super.call(this, span, msg);
|
|
this.elementName = elementName;
|
|
}
|
|
HtmlTreeError.create = function(elementName, span, msg) {
|
|
return new HtmlTreeError(elementName, span, msg);
|
|
};
|
|
return HtmlTreeError;
|
|
})(parse_util_1.ParseError);
|
|
exports.HtmlTreeError = HtmlTreeError;
|
|
var HtmlParseTreeResult = (function() {
|
|
function HtmlParseTreeResult(rootNodes, errors) {
|
|
this.rootNodes = rootNodes;
|
|
this.errors = errors;
|
|
}
|
|
return HtmlParseTreeResult;
|
|
})();
|
|
exports.HtmlParseTreeResult = HtmlParseTreeResult;
|
|
var HtmlParser = (function() {
|
|
function HtmlParser() {}
|
|
HtmlParser.prototype.parse = function(sourceContent, sourceUrl) {
|
|
var tokensAndErrors = html_lexer_1.tokenizeHtml(sourceContent, sourceUrl);
|
|
var treeAndErrors = new TreeBuilder(tokensAndErrors.tokens).build();
|
|
return new HtmlParseTreeResult(treeAndErrors.rootNodes, tokensAndErrors.errors.concat(treeAndErrors.errors));
|
|
};
|
|
HtmlParser = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [])], HtmlParser);
|
|
return HtmlParser;
|
|
})();
|
|
exports.HtmlParser = HtmlParser;
|
|
var TreeBuilder = (function() {
|
|
function TreeBuilder(tokens) {
|
|
this.tokens = tokens;
|
|
this.index = -1;
|
|
this.rootNodes = [];
|
|
this.errors = [];
|
|
this.elementStack = [];
|
|
this._advance();
|
|
}
|
|
TreeBuilder.prototype.build = function() {
|
|
while (this.peek.type !== html_lexer_1.HtmlTokenType.EOF) {
|
|
if (this.peek.type === html_lexer_1.HtmlTokenType.TAG_OPEN_START) {
|
|
this._consumeStartTag(this._advance());
|
|
} else if (this.peek.type === html_lexer_1.HtmlTokenType.TAG_CLOSE) {
|
|
this._consumeEndTag(this._advance());
|
|
} else if (this.peek.type === html_lexer_1.HtmlTokenType.CDATA_START) {
|
|
this._closeVoidElement();
|
|
this._consumeCdata(this._advance());
|
|
} else if (this.peek.type === html_lexer_1.HtmlTokenType.COMMENT_START) {
|
|
this._closeVoidElement();
|
|
this._consumeComment(this._advance());
|
|
} else if (this.peek.type === html_lexer_1.HtmlTokenType.TEXT || this.peek.type === html_lexer_1.HtmlTokenType.RAW_TEXT || this.peek.type === html_lexer_1.HtmlTokenType.ESCAPABLE_RAW_TEXT) {
|
|
this._closeVoidElement();
|
|
this._consumeText(this._advance());
|
|
} else {
|
|
this._advance();
|
|
}
|
|
}
|
|
return new HtmlParseTreeResult(this.rootNodes, this.errors);
|
|
};
|
|
TreeBuilder.prototype._advance = function() {
|
|
var prev = this.peek;
|
|
if (this.index < this.tokens.length - 1) {
|
|
this.index++;
|
|
}
|
|
this.peek = this.tokens[this.index];
|
|
return prev;
|
|
};
|
|
TreeBuilder.prototype._advanceIf = function(type) {
|
|
if (this.peek.type === type) {
|
|
return this._advance();
|
|
}
|
|
return null;
|
|
};
|
|
TreeBuilder.prototype._consumeCdata = function(startToken) {
|
|
this._consumeText(this._advance());
|
|
this._advanceIf(html_lexer_1.HtmlTokenType.CDATA_END);
|
|
};
|
|
TreeBuilder.prototype._consumeComment = function(token) {
|
|
var text = this._advanceIf(html_lexer_1.HtmlTokenType.RAW_TEXT);
|
|
this._advanceIf(html_lexer_1.HtmlTokenType.COMMENT_END);
|
|
var value = lang_1.isPresent(text) ? text.parts[0].trim() : null;
|
|
this._addToParent(new html_ast_1.HtmlCommentAst(value, token.sourceSpan));
|
|
};
|
|
TreeBuilder.prototype._consumeText = function(token) {
|
|
var text = token.parts[0];
|
|
if (text.length > 0 && text[0] == '\n') {
|
|
var parent_1 = this._getParentElement();
|
|
if (lang_1.isPresent(parent_1) && parent_1.children.length == 0 && html_tags_1.getHtmlTagDefinition(parent_1.name).ignoreFirstLf) {
|
|
text = text.substring(1);
|
|
}
|
|
}
|
|
if (text.length > 0) {
|
|
this._addToParent(new html_ast_1.HtmlTextAst(text, token.sourceSpan));
|
|
}
|
|
};
|
|
TreeBuilder.prototype._closeVoidElement = function() {
|
|
if (this.elementStack.length > 0) {
|
|
var el = collection_1.ListWrapper.last(this.elementStack);
|
|
if (html_tags_1.getHtmlTagDefinition(el.name).isVoid) {
|
|
this.elementStack.pop();
|
|
}
|
|
}
|
|
};
|
|
TreeBuilder.prototype._consumeStartTag = function(startTagToken) {
|
|
var prefix = startTagToken.parts[0];
|
|
var name = startTagToken.parts[1];
|
|
var attrs = [];
|
|
while (this.peek.type === html_lexer_1.HtmlTokenType.ATTR_NAME) {
|
|
attrs.push(this._consumeAttr(this._advance()));
|
|
}
|
|
var fullName = getElementFullName(prefix, name, this._getParentElement());
|
|
var selfClosing = false;
|
|
if (this.peek.type === html_lexer_1.HtmlTokenType.TAG_OPEN_END_VOID) {
|
|
this._advance();
|
|
selfClosing = true;
|
|
if (html_tags_1.getNsPrefix(fullName) == null && !html_tags_1.getHtmlTagDefinition(fullName).isVoid) {
|
|
this.errors.push(HtmlTreeError.create(fullName, startTagToken.sourceSpan, "Only void and foreign elements can be self closed \"" + startTagToken.parts[1] + "\""));
|
|
}
|
|
} else if (this.peek.type === html_lexer_1.HtmlTokenType.TAG_OPEN_END) {
|
|
this._advance();
|
|
selfClosing = false;
|
|
}
|
|
var end = this.peek.sourceSpan.start;
|
|
var span = new parse_util_1.ParseSourceSpan(startTagToken.sourceSpan.start, end);
|
|
var el = new html_ast_1.HtmlElementAst(fullName, attrs, [], span, span, null);
|
|
this._pushElement(el);
|
|
if (selfClosing) {
|
|
this._popElement(fullName);
|
|
el.endSourceSpan = span;
|
|
}
|
|
};
|
|
TreeBuilder.prototype._pushElement = function(el) {
|
|
if (this.elementStack.length > 0) {
|
|
var parentEl = collection_1.ListWrapper.last(this.elementStack);
|
|
if (html_tags_1.getHtmlTagDefinition(parentEl.name).isClosedByChild(el.name)) {
|
|
this.elementStack.pop();
|
|
}
|
|
}
|
|
var tagDef = html_tags_1.getHtmlTagDefinition(el.name);
|
|
var parentEl = this._getParentElement();
|
|
if (tagDef.requireExtraParent(lang_1.isPresent(parentEl) ? parentEl.name : null)) {
|
|
var newParent = new html_ast_1.HtmlElementAst(tagDef.parentToAdd, [], [el], el.sourceSpan, el.startSourceSpan, el.endSourceSpan);
|
|
this._addToParent(newParent);
|
|
this.elementStack.push(newParent);
|
|
this.elementStack.push(el);
|
|
} else {
|
|
this._addToParent(el);
|
|
this.elementStack.push(el);
|
|
}
|
|
};
|
|
TreeBuilder.prototype._consumeEndTag = function(endTagToken) {
|
|
var fullName = getElementFullName(endTagToken.parts[0], endTagToken.parts[1], this._getParentElement());
|
|
this._getParentElement().endSourceSpan = endTagToken.sourceSpan;
|
|
if (html_tags_1.getHtmlTagDefinition(fullName).isVoid) {
|
|
this.errors.push(HtmlTreeError.create(fullName, endTagToken.sourceSpan, "Void elements do not have end tags \"" + endTagToken.parts[1] + "\""));
|
|
} else if (!this._popElement(fullName)) {
|
|
this.errors.push(HtmlTreeError.create(fullName, endTagToken.sourceSpan, "Unexpected closing tag \"" + endTagToken.parts[1] + "\""));
|
|
}
|
|
};
|
|
TreeBuilder.prototype._popElement = function(fullName) {
|
|
for (var stackIndex = this.elementStack.length - 1; stackIndex >= 0; stackIndex--) {
|
|
var el = this.elementStack[stackIndex];
|
|
if (el.name == fullName) {
|
|
collection_1.ListWrapper.splice(this.elementStack, stackIndex, this.elementStack.length - stackIndex);
|
|
return true;
|
|
}
|
|
if (!html_tags_1.getHtmlTagDefinition(el.name).closedByParent) {
|
|
return false;
|
|
}
|
|
}
|
|
return false;
|
|
};
|
|
TreeBuilder.prototype._consumeAttr = function(attrName) {
|
|
var fullName = html_tags_1.mergeNsAndName(attrName.parts[0], attrName.parts[1]);
|
|
var end = attrName.sourceSpan.end;
|
|
var value = '';
|
|
if (this.peek.type === html_lexer_1.HtmlTokenType.ATTR_VALUE) {
|
|
var valueToken = this._advance();
|
|
value = valueToken.parts[0];
|
|
end = valueToken.sourceSpan.end;
|
|
}
|
|
return new html_ast_1.HtmlAttrAst(fullName, value, new parse_util_1.ParseSourceSpan(attrName.sourceSpan.start, end));
|
|
};
|
|
TreeBuilder.prototype._getParentElement = function() {
|
|
return this.elementStack.length > 0 ? collection_1.ListWrapper.last(this.elementStack) : null;
|
|
};
|
|
TreeBuilder.prototype._addToParent = function(node) {
|
|
var parent = this._getParentElement();
|
|
if (lang_1.isPresent(parent)) {
|
|
parent.children.push(node);
|
|
} else {
|
|
this.rootNodes.push(node);
|
|
}
|
|
};
|
|
return TreeBuilder;
|
|
})();
|
|
function getElementFullName(prefix, localName, parentElement) {
|
|
if (lang_1.isBlank(prefix)) {
|
|
prefix = html_tags_1.getHtmlTagDefinition(localName).implicitNamespacePrefix;
|
|
if (lang_1.isBlank(prefix) && lang_1.isPresent(parentElement)) {
|
|
prefix = html_tags_1.getNsPrefix(parentElement.name);
|
|
}
|
|
}
|
|
return html_tags_1.mergeNsAndName(prefix, localName);
|
|
}
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/router/rules/rule_set", ["angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/facade/collection", "angular2/src/facade/async", "angular2/src/router/rules/rules", "angular2/src/router/route_config/route_config_impl", "angular2/src/router/rules/route_handlers/async_route_handler", "angular2/src/router/rules/route_handlers/sync_route_handler", "angular2/src/router/rules/route_paths/param_route_path", "angular2/src/router/rules/route_paths/regex_route_path"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var async_1 = require("angular2/src/facade/async");
|
|
var rules_1 = require("angular2/src/router/rules/rules");
|
|
var route_config_impl_1 = require("angular2/src/router/route_config/route_config_impl");
|
|
var async_route_handler_1 = require("angular2/src/router/rules/route_handlers/async_route_handler");
|
|
var sync_route_handler_1 = require("angular2/src/router/rules/route_handlers/sync_route_handler");
|
|
var param_route_path_1 = require("angular2/src/router/rules/route_paths/param_route_path");
|
|
var regex_route_path_1 = require("angular2/src/router/rules/route_paths/regex_route_path");
|
|
var RuleSet = (function() {
|
|
function RuleSet() {
|
|
this.rulesByName = new collection_1.Map();
|
|
this.auxRulesByName = new collection_1.Map();
|
|
this.auxRulesByPath = new collection_1.Map();
|
|
this.rules = [];
|
|
this.defaultRule = null;
|
|
}
|
|
RuleSet.prototype.config = function(config) {
|
|
var handler;
|
|
if (lang_1.isPresent(config.name) && config.name[0].toUpperCase() != config.name[0]) {
|
|
var suggestedName = config.name[0].toUpperCase() + config.name.substring(1);
|
|
throw new exceptions_1.BaseException("Route \"" + config.path + "\" with name \"" + config.name + "\" does not begin with an uppercase letter. Route names should be CamelCase like \"" + suggestedName + "\".");
|
|
}
|
|
if (config instanceof route_config_impl_1.AuxRoute) {
|
|
handler = new sync_route_handler_1.SyncRouteHandler(config.component, config.data);
|
|
var routePath_1 = this._getRoutePath(config);
|
|
var auxRule = new rules_1.RouteRule(routePath_1, handler);
|
|
this.auxRulesByPath.set(routePath_1.toString(), auxRule);
|
|
if (lang_1.isPresent(config.name)) {
|
|
this.auxRulesByName.set(config.name, auxRule);
|
|
}
|
|
return auxRule.terminal;
|
|
}
|
|
var useAsDefault = false;
|
|
if (config instanceof route_config_impl_1.Redirect) {
|
|
var routePath_2 = this._getRoutePath(config);
|
|
var redirector = new rules_1.RedirectRule(routePath_2, config.redirectTo);
|
|
this._assertNoHashCollision(redirector.hash, config.path);
|
|
this.rules.push(redirector);
|
|
return true;
|
|
}
|
|
if (config instanceof route_config_impl_1.Route) {
|
|
handler = new sync_route_handler_1.SyncRouteHandler(config.component, config.data);
|
|
useAsDefault = lang_1.isPresent(config.useAsDefault) && config.useAsDefault;
|
|
} else if (config instanceof route_config_impl_1.AsyncRoute) {
|
|
handler = new async_route_handler_1.AsyncRouteHandler(config.loader, config.data);
|
|
useAsDefault = lang_1.isPresent(config.useAsDefault) && config.useAsDefault;
|
|
}
|
|
var routePath = this._getRoutePath(config);
|
|
var newRule = new rules_1.RouteRule(routePath, handler);
|
|
this._assertNoHashCollision(newRule.hash, config.path);
|
|
if (useAsDefault) {
|
|
if (lang_1.isPresent(this.defaultRule)) {
|
|
throw new exceptions_1.BaseException("Only one route can be default");
|
|
}
|
|
this.defaultRule = newRule;
|
|
}
|
|
this.rules.push(newRule);
|
|
if (lang_1.isPresent(config.name)) {
|
|
this.rulesByName.set(config.name, newRule);
|
|
}
|
|
return newRule.terminal;
|
|
};
|
|
RuleSet.prototype.recognize = function(urlParse) {
|
|
var solutions = [];
|
|
this.rules.forEach(function(routeRecognizer) {
|
|
var pathMatch = routeRecognizer.recognize(urlParse);
|
|
if (lang_1.isPresent(pathMatch)) {
|
|
solutions.push(pathMatch);
|
|
}
|
|
});
|
|
if (solutions.length == 0 && lang_1.isPresent(urlParse) && urlParse.auxiliary.length > 0) {
|
|
return [async_1.PromiseWrapper.resolve(new rules_1.PathMatch(null, null, urlParse.auxiliary))];
|
|
}
|
|
return solutions;
|
|
};
|
|
RuleSet.prototype.recognizeAuxiliary = function(urlParse) {
|
|
var routeRecognizer = this.auxRulesByPath.get(urlParse.path);
|
|
if (lang_1.isPresent(routeRecognizer)) {
|
|
return [routeRecognizer.recognize(urlParse)];
|
|
}
|
|
return [async_1.PromiseWrapper.resolve(null)];
|
|
};
|
|
RuleSet.prototype.hasRoute = function(name) {
|
|
return this.rulesByName.has(name);
|
|
};
|
|
RuleSet.prototype.componentLoaded = function(name) {
|
|
return this.hasRoute(name) && lang_1.isPresent(this.rulesByName.get(name).handler.componentType);
|
|
};
|
|
RuleSet.prototype.loadComponent = function(name) {
|
|
return this.rulesByName.get(name).handler.resolveComponentType();
|
|
};
|
|
RuleSet.prototype.generate = function(name, params) {
|
|
var rule = this.rulesByName.get(name);
|
|
if (lang_1.isBlank(rule)) {
|
|
return null;
|
|
}
|
|
return rule.generate(params);
|
|
};
|
|
RuleSet.prototype.generateAuxiliary = function(name, params) {
|
|
var rule = this.auxRulesByName.get(name);
|
|
if (lang_1.isBlank(rule)) {
|
|
return null;
|
|
}
|
|
return rule.generate(params);
|
|
};
|
|
RuleSet.prototype._assertNoHashCollision = function(hash, path) {
|
|
this.rules.forEach(function(rule) {
|
|
if (hash == rule.hash) {
|
|
throw new exceptions_1.BaseException("Configuration '" + path + "' conflicts with existing route '" + rule.path + "'");
|
|
}
|
|
});
|
|
};
|
|
RuleSet.prototype._getRoutePath = function(config) {
|
|
if (lang_1.isPresent(config.regex)) {
|
|
if (lang_1.isFunction(config.serializer)) {
|
|
return new regex_route_path_1.RegexRoutePath(config.regex, config.serializer);
|
|
} else {
|
|
throw new exceptions_1.BaseException("Route provides a regex property, '" + config.regex + "', but no serializer property");
|
|
}
|
|
}
|
|
if (lang_1.isPresent(config.path)) {
|
|
var path = (config instanceof route_config_impl_1.AuxRoute && config.path.startsWith('/')) ? config.path.substring(1) : config.path;
|
|
return new param_route_path_1.ParamRoutePath(path);
|
|
}
|
|
throw new exceptions_1.BaseException('Route must provide either a path or regex property');
|
|
};
|
|
return RuleSet;
|
|
})();
|
|
exports.RuleSet = RuleSet;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("rxjs/Subscriber", ["rxjs/util/isFunction", "rxjs/Subscription", "rxjs/symbol/rxSubscriber", "rxjs/Observer"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
"use strict";
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var isFunction_1 = require("rxjs/util/isFunction");
|
|
var Subscription_1 = require("rxjs/Subscription");
|
|
var rxSubscriber_1 = require("rxjs/symbol/rxSubscriber");
|
|
var Observer_1 = require("rxjs/Observer");
|
|
var Subscriber = (function(_super) {
|
|
__extends(Subscriber, _super);
|
|
function Subscriber(destinationOrNext, error, complete) {
|
|
_super.call(this);
|
|
this.syncErrorValue = null;
|
|
this.syncErrorThrown = false;
|
|
this.syncErrorThrowable = false;
|
|
this.isStopped = false;
|
|
switch (arguments.length) {
|
|
case 0:
|
|
this.destination = Observer_1.empty;
|
|
break;
|
|
case 1:
|
|
if (!destinationOrNext) {
|
|
this.destination = Observer_1.empty;
|
|
break;
|
|
}
|
|
if (typeof destinationOrNext === 'object') {
|
|
if (destinationOrNext instanceof Subscriber) {
|
|
this.destination = destinationOrNext;
|
|
} else {
|
|
this.syncErrorThrowable = true;
|
|
this.destination = new SafeSubscriber(this, destinationOrNext);
|
|
}
|
|
break;
|
|
}
|
|
default:
|
|
this.syncErrorThrowable = true;
|
|
this.destination = new SafeSubscriber(this, destinationOrNext, error, complete);
|
|
break;
|
|
}
|
|
}
|
|
Subscriber.create = function(next, error, complete) {
|
|
var subscriber = new Subscriber(next, error, complete);
|
|
subscriber.syncErrorThrowable = false;
|
|
return subscriber;
|
|
};
|
|
Subscriber.prototype.next = function(value) {
|
|
if (!this.isStopped) {
|
|
this._next(value);
|
|
}
|
|
};
|
|
Subscriber.prototype.error = function(err) {
|
|
if (!this.isStopped) {
|
|
this.isStopped = true;
|
|
this._error(err);
|
|
}
|
|
};
|
|
Subscriber.prototype.complete = function() {
|
|
if (!this.isStopped) {
|
|
this.isStopped = true;
|
|
this._complete();
|
|
}
|
|
};
|
|
Subscriber.prototype.unsubscribe = function() {
|
|
if (this.isUnsubscribed) {
|
|
return ;
|
|
}
|
|
this.isStopped = true;
|
|
_super.prototype.unsubscribe.call(this);
|
|
};
|
|
Subscriber.prototype._next = function(value) {
|
|
this.destination.next(value);
|
|
};
|
|
Subscriber.prototype._error = function(err) {
|
|
this.destination.error(err);
|
|
this.unsubscribe();
|
|
};
|
|
Subscriber.prototype._complete = function() {
|
|
this.destination.complete();
|
|
this.unsubscribe();
|
|
};
|
|
Subscriber.prototype[rxSubscriber_1.rxSubscriber] = function() {
|
|
return this;
|
|
};
|
|
return Subscriber;
|
|
}(Subscription_1.Subscription));
|
|
exports.Subscriber = Subscriber;
|
|
var SafeSubscriber = (function(_super) {
|
|
__extends(SafeSubscriber, _super);
|
|
function SafeSubscriber(_parent, observerOrNext, error, complete) {
|
|
_super.call(this);
|
|
this._parent = _parent;
|
|
var next;
|
|
var context = this;
|
|
if (isFunction_1.isFunction(observerOrNext)) {
|
|
next = observerOrNext;
|
|
} else if (observerOrNext) {
|
|
context = observerOrNext;
|
|
next = observerOrNext.next;
|
|
error = observerOrNext.error;
|
|
complete = observerOrNext.complete;
|
|
}
|
|
this._context = context;
|
|
this._next = next;
|
|
this._error = error;
|
|
this._complete = complete;
|
|
}
|
|
SafeSubscriber.prototype.next = function(value) {
|
|
if (!this.isStopped && this._next) {
|
|
var _parent = this._parent;
|
|
if (!_parent.syncErrorThrowable) {
|
|
this.__tryOrUnsub(this._next, value);
|
|
} else if (this.__tryOrSetError(_parent, this._next, value)) {
|
|
this.unsubscribe();
|
|
}
|
|
}
|
|
};
|
|
SafeSubscriber.prototype.error = function(err) {
|
|
if (!this.isStopped) {
|
|
var _parent = this._parent;
|
|
if (this._error) {
|
|
if (!_parent.syncErrorThrowable) {
|
|
this.__tryOrUnsub(this._error, err);
|
|
this.unsubscribe();
|
|
} else {
|
|
this.__tryOrSetError(_parent, this._error, err);
|
|
this.unsubscribe();
|
|
}
|
|
} else if (!_parent.syncErrorThrowable) {
|
|
this.unsubscribe();
|
|
throw err;
|
|
} else {
|
|
_parent.syncErrorValue = err;
|
|
_parent.syncErrorThrown = true;
|
|
this.unsubscribe();
|
|
}
|
|
}
|
|
};
|
|
SafeSubscriber.prototype.complete = function() {
|
|
if (!this.isStopped) {
|
|
var _parent = this._parent;
|
|
if (this._complete) {
|
|
if (!_parent.syncErrorThrowable) {
|
|
this.__tryOrUnsub(this._complete);
|
|
this.unsubscribe();
|
|
} else {
|
|
this.__tryOrSetError(_parent, this._complete);
|
|
this.unsubscribe();
|
|
}
|
|
} else {
|
|
this.unsubscribe();
|
|
}
|
|
}
|
|
};
|
|
SafeSubscriber.prototype.__tryOrUnsub = function(fn, value) {
|
|
try {
|
|
fn.call(this._context, value);
|
|
} catch (err) {
|
|
this.unsubscribe();
|
|
throw err;
|
|
}
|
|
};
|
|
SafeSubscriber.prototype.__tryOrSetError = function(parent, fn, value) {
|
|
try {
|
|
fn.call(this._context, value);
|
|
} catch (err) {
|
|
parent.syncErrorValue = err;
|
|
parent.syncErrorThrown = true;
|
|
return true;
|
|
}
|
|
return false;
|
|
};
|
|
SafeSubscriber.prototype._unsubscribe = function() {
|
|
var _parent = this._parent;
|
|
this._context = null;
|
|
this._parent = null;
|
|
_parent.unsubscribe();
|
|
};
|
|
return SafeSubscriber;
|
|
}(Subscriber));
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/di/provider", ["angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/facade/collection", "angular2/src/core/reflection/reflection", "angular2/src/core/di/key", "angular2/src/core/di/metadata", "angular2/src/core/di/exceptions", "angular2/src/core/di/forward_ref"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var reflection_1 = require("angular2/src/core/reflection/reflection");
|
|
var key_1 = require("angular2/src/core/di/key");
|
|
var metadata_1 = require("angular2/src/core/di/metadata");
|
|
var exceptions_2 = require("angular2/src/core/di/exceptions");
|
|
var forward_ref_1 = require("angular2/src/core/di/forward_ref");
|
|
var Dependency = (function() {
|
|
function Dependency(key, optional, lowerBoundVisibility, upperBoundVisibility, properties) {
|
|
this.key = key;
|
|
this.optional = optional;
|
|
this.lowerBoundVisibility = lowerBoundVisibility;
|
|
this.upperBoundVisibility = upperBoundVisibility;
|
|
this.properties = properties;
|
|
}
|
|
Dependency.fromKey = function(key) {
|
|
return new Dependency(key, false, null, null, []);
|
|
};
|
|
return Dependency;
|
|
})();
|
|
exports.Dependency = Dependency;
|
|
var _EMPTY_LIST = lang_1.CONST_EXPR([]);
|
|
var Provider = (function() {
|
|
function Provider(token, _a) {
|
|
var useClass = _a.useClass,
|
|
useValue = _a.useValue,
|
|
useExisting = _a.useExisting,
|
|
useFactory = _a.useFactory,
|
|
deps = _a.deps,
|
|
multi = _a.multi;
|
|
this.token = token;
|
|
this.useClass = useClass;
|
|
this.useValue = useValue;
|
|
this.useExisting = useExisting;
|
|
this.useFactory = useFactory;
|
|
this.dependencies = deps;
|
|
this._multi = multi;
|
|
}
|
|
Object.defineProperty(Provider.prototype, "multi", {
|
|
get: function() {
|
|
return lang_1.normalizeBool(this._multi);
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Provider = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [Object, Object])], Provider);
|
|
return Provider;
|
|
})();
|
|
exports.Provider = Provider;
|
|
var Binding = (function(_super) {
|
|
__extends(Binding, _super);
|
|
function Binding(token, _a) {
|
|
var toClass = _a.toClass,
|
|
toValue = _a.toValue,
|
|
toAlias = _a.toAlias,
|
|
toFactory = _a.toFactory,
|
|
deps = _a.deps,
|
|
multi = _a.multi;
|
|
_super.call(this, token, {
|
|
useClass: toClass,
|
|
useValue: toValue,
|
|
useExisting: toAlias,
|
|
useFactory: toFactory,
|
|
deps: deps,
|
|
multi: multi
|
|
});
|
|
}
|
|
Object.defineProperty(Binding.prototype, "toClass", {
|
|
get: function() {
|
|
return this.useClass;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(Binding.prototype, "toAlias", {
|
|
get: function() {
|
|
return this.useExisting;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(Binding.prototype, "toFactory", {
|
|
get: function() {
|
|
return this.useFactory;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(Binding.prototype, "toValue", {
|
|
get: function() {
|
|
return this.useValue;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Binding = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [Object, Object])], Binding);
|
|
return Binding;
|
|
})(Provider);
|
|
exports.Binding = Binding;
|
|
var ResolvedProvider_ = (function() {
|
|
function ResolvedProvider_(key, resolvedFactories, multiProvider) {
|
|
this.key = key;
|
|
this.resolvedFactories = resolvedFactories;
|
|
this.multiProvider = multiProvider;
|
|
}
|
|
Object.defineProperty(ResolvedProvider_.prototype, "resolvedFactory", {
|
|
get: function() {
|
|
return this.resolvedFactories[0];
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
return ResolvedProvider_;
|
|
})();
|
|
exports.ResolvedProvider_ = ResolvedProvider_;
|
|
var ResolvedFactory = (function() {
|
|
function ResolvedFactory(factory, dependencies) {
|
|
this.factory = factory;
|
|
this.dependencies = dependencies;
|
|
}
|
|
return ResolvedFactory;
|
|
})();
|
|
exports.ResolvedFactory = ResolvedFactory;
|
|
function bind(token) {
|
|
return new ProviderBuilder(token);
|
|
}
|
|
exports.bind = bind;
|
|
function provide(token, _a) {
|
|
var useClass = _a.useClass,
|
|
useValue = _a.useValue,
|
|
useExisting = _a.useExisting,
|
|
useFactory = _a.useFactory,
|
|
deps = _a.deps,
|
|
multi = _a.multi;
|
|
return new Provider(token, {
|
|
useClass: useClass,
|
|
useValue: useValue,
|
|
useExisting: useExisting,
|
|
useFactory: useFactory,
|
|
deps: deps,
|
|
multi: multi
|
|
});
|
|
}
|
|
exports.provide = provide;
|
|
var ProviderBuilder = (function() {
|
|
function ProviderBuilder(token) {
|
|
this.token = token;
|
|
}
|
|
ProviderBuilder.prototype.toClass = function(type) {
|
|
if (!lang_1.isType(type)) {
|
|
throw new exceptions_1.BaseException("Trying to create a class provider but \"" + lang_1.stringify(type) + "\" is not a class!");
|
|
}
|
|
return new Provider(this.token, {useClass: type});
|
|
};
|
|
ProviderBuilder.prototype.toValue = function(value) {
|
|
return new Provider(this.token, {useValue: value});
|
|
};
|
|
ProviderBuilder.prototype.toAlias = function(aliasToken) {
|
|
if (lang_1.isBlank(aliasToken)) {
|
|
throw new exceptions_1.BaseException("Can not alias " + lang_1.stringify(this.token) + " to a blank value!");
|
|
}
|
|
return new Provider(this.token, {useExisting: aliasToken});
|
|
};
|
|
ProviderBuilder.prototype.toFactory = function(factory, dependencies) {
|
|
if (!lang_1.isFunction(factory)) {
|
|
throw new exceptions_1.BaseException("Trying to create a factory provider but \"" + lang_1.stringify(factory) + "\" is not a function!");
|
|
}
|
|
return new Provider(this.token, {
|
|
useFactory: factory,
|
|
deps: dependencies
|
|
});
|
|
};
|
|
return ProviderBuilder;
|
|
})();
|
|
exports.ProviderBuilder = ProviderBuilder;
|
|
function resolveFactory(provider) {
|
|
var factoryFn;
|
|
var resolvedDeps;
|
|
if (lang_1.isPresent(provider.useClass)) {
|
|
var useClass = forward_ref_1.resolveForwardRef(provider.useClass);
|
|
factoryFn = reflection_1.reflector.factory(useClass);
|
|
resolvedDeps = _dependenciesFor(useClass);
|
|
} else if (lang_1.isPresent(provider.useExisting)) {
|
|
factoryFn = function(aliasInstance) {
|
|
return aliasInstance;
|
|
};
|
|
resolvedDeps = [Dependency.fromKey(key_1.Key.get(provider.useExisting))];
|
|
} else if (lang_1.isPresent(provider.useFactory)) {
|
|
factoryFn = provider.useFactory;
|
|
resolvedDeps = _constructDependencies(provider.useFactory, provider.dependencies);
|
|
} else {
|
|
factoryFn = function() {
|
|
return provider.useValue;
|
|
};
|
|
resolvedDeps = _EMPTY_LIST;
|
|
}
|
|
return new ResolvedFactory(factoryFn, resolvedDeps);
|
|
}
|
|
exports.resolveFactory = resolveFactory;
|
|
function resolveProvider(provider) {
|
|
return new ResolvedProvider_(key_1.Key.get(provider.token), [resolveFactory(provider)], provider.multi);
|
|
}
|
|
exports.resolveProvider = resolveProvider;
|
|
function resolveProviders(providers) {
|
|
var normalized = _normalizeProviders(providers, []);
|
|
var resolved = normalized.map(resolveProvider);
|
|
return collection_1.MapWrapper.values(mergeResolvedProviders(resolved, new Map()));
|
|
}
|
|
exports.resolveProviders = resolveProviders;
|
|
function mergeResolvedProviders(providers, normalizedProvidersMap) {
|
|
for (var i = 0; i < providers.length; i++) {
|
|
var provider = providers[i];
|
|
var existing = normalizedProvidersMap.get(provider.key.id);
|
|
if (lang_1.isPresent(existing)) {
|
|
if (provider.multiProvider !== existing.multiProvider) {
|
|
throw new exceptions_2.MixingMultiProvidersWithRegularProvidersError(existing, provider);
|
|
}
|
|
if (provider.multiProvider) {
|
|
for (var j = 0; j < provider.resolvedFactories.length; j++) {
|
|
existing.resolvedFactories.push(provider.resolvedFactories[j]);
|
|
}
|
|
} else {
|
|
normalizedProvidersMap.set(provider.key.id, provider);
|
|
}
|
|
} else {
|
|
var resolvedProvider;
|
|
if (provider.multiProvider) {
|
|
resolvedProvider = new ResolvedProvider_(provider.key, collection_1.ListWrapper.clone(provider.resolvedFactories), provider.multiProvider);
|
|
} else {
|
|
resolvedProvider = provider;
|
|
}
|
|
normalizedProvidersMap.set(provider.key.id, resolvedProvider);
|
|
}
|
|
}
|
|
return normalizedProvidersMap;
|
|
}
|
|
exports.mergeResolvedProviders = mergeResolvedProviders;
|
|
function _normalizeProviders(providers, res) {
|
|
providers.forEach(function(b) {
|
|
if (b instanceof lang_1.Type) {
|
|
res.push(provide(b, {useClass: b}));
|
|
} else if (b instanceof Provider) {
|
|
res.push(b);
|
|
} else if (b instanceof Array) {
|
|
_normalizeProviders(b, res);
|
|
} else if (b instanceof ProviderBuilder) {
|
|
throw new exceptions_2.InvalidProviderError(b.token);
|
|
} else {
|
|
throw new exceptions_2.InvalidProviderError(b);
|
|
}
|
|
});
|
|
return res;
|
|
}
|
|
function _constructDependencies(factoryFunction, dependencies) {
|
|
if (lang_1.isBlank(dependencies)) {
|
|
return _dependenciesFor(factoryFunction);
|
|
} else {
|
|
var params = dependencies.map(function(t) {
|
|
return [t];
|
|
});
|
|
return dependencies.map(function(t) {
|
|
return _extractToken(factoryFunction, t, params);
|
|
});
|
|
}
|
|
}
|
|
function _dependenciesFor(typeOrFunc) {
|
|
var params = reflection_1.reflector.parameters(typeOrFunc);
|
|
if (lang_1.isBlank(params))
|
|
return [];
|
|
if (params.some(lang_1.isBlank)) {
|
|
throw new exceptions_2.NoAnnotationError(typeOrFunc, params);
|
|
}
|
|
return params.map(function(p) {
|
|
return _extractToken(typeOrFunc, p, params);
|
|
});
|
|
}
|
|
function _extractToken(typeOrFunc, metadata, params) {
|
|
var depProps = [];
|
|
var token = null;
|
|
var optional = false;
|
|
if (!lang_1.isArray(metadata)) {
|
|
if (metadata instanceof metadata_1.InjectMetadata) {
|
|
return _createDependency(metadata.token, optional, null, null, depProps);
|
|
} else {
|
|
return _createDependency(metadata, optional, null, null, depProps);
|
|
}
|
|
}
|
|
var lowerBoundVisibility = null;
|
|
var upperBoundVisibility = null;
|
|
for (var i = 0; i < metadata.length; ++i) {
|
|
var paramMetadata = metadata[i];
|
|
if (paramMetadata instanceof lang_1.Type) {
|
|
token = paramMetadata;
|
|
} else if (paramMetadata instanceof metadata_1.InjectMetadata) {
|
|
token = paramMetadata.token;
|
|
} else if (paramMetadata instanceof metadata_1.OptionalMetadata) {
|
|
optional = true;
|
|
} else if (paramMetadata instanceof metadata_1.SelfMetadata) {
|
|
upperBoundVisibility = paramMetadata;
|
|
} else if (paramMetadata instanceof metadata_1.HostMetadata) {
|
|
upperBoundVisibility = paramMetadata;
|
|
} else if (paramMetadata instanceof metadata_1.SkipSelfMetadata) {
|
|
lowerBoundVisibility = paramMetadata;
|
|
} else if (paramMetadata instanceof metadata_1.DependencyMetadata) {
|
|
if (lang_1.isPresent(paramMetadata.token)) {
|
|
token = paramMetadata.token;
|
|
}
|
|
depProps.push(paramMetadata);
|
|
}
|
|
}
|
|
token = forward_ref_1.resolveForwardRef(token);
|
|
if (lang_1.isPresent(token)) {
|
|
return _createDependency(token, optional, lowerBoundVisibility, upperBoundVisibility, depProps);
|
|
} else {
|
|
throw new exceptions_2.NoAnnotationError(typeOrFunc, params);
|
|
}
|
|
}
|
|
function _createDependency(token, optional, lowerBoundVisibility, upperBoundVisibility, depProps) {
|
|
return new Dependency(key_1.Key.get(token), optional, lowerBoundVisibility, upperBoundVisibility, depProps);
|
|
}
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/change_detection/dynamic_change_detector", ["angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/facade/collection", "angular2/src/core/change_detection/abstract_change_detector", "angular2/src/core/change_detection/change_detection_util", "angular2/src/core/change_detection/constants", "angular2/src/core/change_detection/proto_record", "angular2/src/core/reflection/reflection", "angular2/src/facade/async"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var abstract_change_detector_1 = require("angular2/src/core/change_detection/abstract_change_detector");
|
|
var change_detection_util_1 = require("angular2/src/core/change_detection/change_detection_util");
|
|
var constants_1 = require("angular2/src/core/change_detection/constants");
|
|
var proto_record_1 = require("angular2/src/core/change_detection/proto_record");
|
|
var reflection_1 = require("angular2/src/core/reflection/reflection");
|
|
var async_1 = require("angular2/src/facade/async");
|
|
var DynamicChangeDetector = (function(_super) {
|
|
__extends(DynamicChangeDetector, _super);
|
|
function DynamicChangeDetector(id, numberOfPropertyProtoRecords, propertyBindingTargets, directiveIndices, strategy, _records, _eventBindings, _directiveRecords, _genConfig) {
|
|
_super.call(this, id, numberOfPropertyProtoRecords, propertyBindingTargets, directiveIndices, strategy);
|
|
this._records = _records;
|
|
this._eventBindings = _eventBindings;
|
|
this._directiveRecords = _directiveRecords;
|
|
this._genConfig = _genConfig;
|
|
var len = _records.length + 1;
|
|
this.values = collection_1.ListWrapper.createFixedSize(len);
|
|
this.localPipes = collection_1.ListWrapper.createFixedSize(len);
|
|
this.prevContexts = collection_1.ListWrapper.createFixedSize(len);
|
|
this.changes = collection_1.ListWrapper.createFixedSize(len);
|
|
this.dehydrateDirectives(false);
|
|
}
|
|
DynamicChangeDetector.prototype.handleEventInternal = function(eventName, elIndex, locals) {
|
|
var _this = this;
|
|
var preventDefault = false;
|
|
this._matchingEventBindings(eventName, elIndex).forEach(function(rec) {
|
|
var res = _this._processEventBinding(rec, locals);
|
|
if (res === false) {
|
|
preventDefault = true;
|
|
}
|
|
});
|
|
return preventDefault;
|
|
};
|
|
DynamicChangeDetector.prototype._processEventBinding = function(eb, locals) {
|
|
var values = collection_1.ListWrapper.createFixedSize(eb.records.length);
|
|
values[0] = this.values[0];
|
|
for (var protoIdx = 0; protoIdx < eb.records.length; ++protoIdx) {
|
|
var proto = eb.records[protoIdx];
|
|
if (proto.isSkipRecord()) {
|
|
protoIdx += this._computeSkipLength(protoIdx, proto, values);
|
|
} else {
|
|
if (proto.lastInBinding) {
|
|
this._markPathAsCheckOnce(proto);
|
|
}
|
|
var res = this._calculateCurrValue(proto, values, locals);
|
|
if (proto.lastInBinding) {
|
|
return res;
|
|
} else {
|
|
this._writeSelf(proto, res, values);
|
|
}
|
|
}
|
|
}
|
|
throw new exceptions_1.BaseException("Cannot be reached");
|
|
};
|
|
DynamicChangeDetector.prototype._computeSkipLength = function(protoIndex, proto, values) {
|
|
if (proto.mode === proto_record_1.RecordType.SkipRecords) {
|
|
return proto.fixedArgs[0] - protoIndex - 1;
|
|
}
|
|
if (proto.mode === proto_record_1.RecordType.SkipRecordsIf) {
|
|
var condition = this._readContext(proto, values);
|
|
return condition ? proto.fixedArgs[0] - protoIndex - 1 : 0;
|
|
}
|
|
if (proto.mode === proto_record_1.RecordType.SkipRecordsIfNot) {
|
|
var condition = this._readContext(proto, values);
|
|
return condition ? 0 : proto.fixedArgs[0] - protoIndex - 1;
|
|
}
|
|
throw new exceptions_1.BaseException("Cannot be reached");
|
|
};
|
|
DynamicChangeDetector.prototype._markPathAsCheckOnce = function(proto) {
|
|
if (!proto.bindingRecord.isDefaultChangeDetection()) {
|
|
var dir = proto.bindingRecord.directiveRecord;
|
|
this._getDetectorFor(dir.directiveIndex).markPathToRootAsCheckOnce();
|
|
}
|
|
};
|
|
DynamicChangeDetector.prototype._matchingEventBindings = function(eventName, elIndex) {
|
|
return this._eventBindings.filter(function(eb) {
|
|
return eb.eventName == eventName && eb.elIndex === elIndex;
|
|
});
|
|
};
|
|
DynamicChangeDetector.prototype.hydrateDirectives = function(dispatcher) {
|
|
var _this = this;
|
|
this.values[0] = this.context;
|
|
this.dispatcher = dispatcher;
|
|
this.outputSubscriptions = [];
|
|
for (var i = 0; i < this._directiveRecords.length; ++i) {
|
|
var r = this._directiveRecords[i];
|
|
if (lang_1.isPresent(r.outputs)) {
|
|
r.outputs.forEach(function(output) {
|
|
var eventHandler = _this._createEventHandler(r.directiveIndex.elementIndex, output[1]);
|
|
var directive = _this._getDirectiveFor(r.directiveIndex);
|
|
var getter = reflection_1.reflector.getter(output[0]);
|
|
_this.outputSubscriptions.push(async_1.ObservableWrapper.subscribe(getter(directive), eventHandler));
|
|
});
|
|
}
|
|
}
|
|
};
|
|
DynamicChangeDetector.prototype._createEventHandler = function(boundElementIndex, eventName) {
|
|
var _this = this;
|
|
return function(event) {
|
|
return _this.handleEvent(eventName, boundElementIndex, event);
|
|
};
|
|
};
|
|
DynamicChangeDetector.prototype.dehydrateDirectives = function(destroyPipes) {
|
|
if (destroyPipes) {
|
|
this._destroyPipes();
|
|
this._destroyDirectives();
|
|
}
|
|
this.values[0] = null;
|
|
collection_1.ListWrapper.fill(this.values, change_detection_util_1.ChangeDetectionUtil.uninitialized, 1);
|
|
collection_1.ListWrapper.fill(this.changes, false);
|
|
collection_1.ListWrapper.fill(this.localPipes, null);
|
|
collection_1.ListWrapper.fill(this.prevContexts, change_detection_util_1.ChangeDetectionUtil.uninitialized);
|
|
};
|
|
DynamicChangeDetector.prototype._destroyPipes = function() {
|
|
for (var i = 0; i < this.localPipes.length; ++i) {
|
|
if (lang_1.isPresent(this.localPipes[i])) {
|
|
change_detection_util_1.ChangeDetectionUtil.callPipeOnDestroy(this.localPipes[i]);
|
|
}
|
|
}
|
|
};
|
|
DynamicChangeDetector.prototype._destroyDirectives = function() {
|
|
for (var i = 0; i < this._directiveRecords.length; ++i) {
|
|
var record = this._directiveRecords[i];
|
|
if (record.callOnDestroy) {
|
|
this._getDirectiveFor(record.directiveIndex).ngOnDestroy();
|
|
}
|
|
}
|
|
};
|
|
DynamicChangeDetector.prototype.checkNoChanges = function() {
|
|
this.runDetectChanges(true);
|
|
};
|
|
DynamicChangeDetector.prototype.detectChangesInRecordsInternal = function(throwOnChange) {
|
|
var protos = this._records;
|
|
var changes = null;
|
|
var isChanged = false;
|
|
for (var protoIdx = 0; protoIdx < protos.length; ++protoIdx) {
|
|
var proto = protos[protoIdx];
|
|
var bindingRecord = proto.bindingRecord;
|
|
var directiveRecord = bindingRecord.directiveRecord;
|
|
if (this._firstInBinding(proto)) {
|
|
this.propertyBindingIndex = proto.propertyBindingIndex;
|
|
}
|
|
if (proto.isLifeCycleRecord()) {
|
|
if (proto.name === "DoCheck" && !throwOnChange) {
|
|
this._getDirectiveFor(directiveRecord.directiveIndex).ngDoCheck();
|
|
} else if (proto.name === "OnInit" && !throwOnChange && this.state == constants_1.ChangeDetectorState.NeverChecked) {
|
|
this._getDirectiveFor(directiveRecord.directiveIndex).ngOnInit();
|
|
} else if (proto.name === "OnChanges" && lang_1.isPresent(changes) && !throwOnChange) {
|
|
this._getDirectiveFor(directiveRecord.directiveIndex).ngOnChanges(changes);
|
|
}
|
|
} else if (proto.isSkipRecord()) {
|
|
protoIdx += this._computeSkipLength(protoIdx, proto, this.values);
|
|
} else {
|
|
var change = this._check(proto, throwOnChange, this.values, this.locals);
|
|
if (lang_1.isPresent(change)) {
|
|
this._updateDirectiveOrElement(change, bindingRecord);
|
|
isChanged = true;
|
|
changes = this._addChange(bindingRecord, change, changes);
|
|
}
|
|
}
|
|
if (proto.lastInDirective) {
|
|
changes = null;
|
|
if (isChanged && !bindingRecord.isDefaultChangeDetection()) {
|
|
this._getDetectorFor(directiveRecord.directiveIndex).markAsCheckOnce();
|
|
}
|
|
isChanged = false;
|
|
}
|
|
}
|
|
};
|
|
DynamicChangeDetector.prototype._firstInBinding = function(r) {
|
|
var prev = change_detection_util_1.ChangeDetectionUtil.protoByIndex(this._records, r.selfIndex - 1);
|
|
return lang_1.isBlank(prev) || prev.bindingRecord !== r.bindingRecord;
|
|
};
|
|
DynamicChangeDetector.prototype.afterContentLifecycleCallbacksInternal = function() {
|
|
var dirs = this._directiveRecords;
|
|
for (var i = dirs.length - 1; i >= 0; --i) {
|
|
var dir = dirs[i];
|
|
if (dir.callAfterContentInit && this.state == constants_1.ChangeDetectorState.NeverChecked) {
|
|
this._getDirectiveFor(dir.directiveIndex).ngAfterContentInit();
|
|
}
|
|
if (dir.callAfterContentChecked) {
|
|
this._getDirectiveFor(dir.directiveIndex).ngAfterContentChecked();
|
|
}
|
|
}
|
|
};
|
|
DynamicChangeDetector.prototype.afterViewLifecycleCallbacksInternal = function() {
|
|
var dirs = this._directiveRecords;
|
|
for (var i = dirs.length - 1; i >= 0; --i) {
|
|
var dir = dirs[i];
|
|
if (dir.callAfterViewInit && this.state == constants_1.ChangeDetectorState.NeverChecked) {
|
|
this._getDirectiveFor(dir.directiveIndex).ngAfterViewInit();
|
|
}
|
|
if (dir.callAfterViewChecked) {
|
|
this._getDirectiveFor(dir.directiveIndex).ngAfterViewChecked();
|
|
}
|
|
}
|
|
};
|
|
DynamicChangeDetector.prototype._updateDirectiveOrElement = function(change, bindingRecord) {
|
|
if (lang_1.isBlank(bindingRecord.directiveRecord)) {
|
|
_super.prototype.notifyDispatcher.call(this, change.currentValue);
|
|
} else {
|
|
var directiveIndex = bindingRecord.directiveRecord.directiveIndex;
|
|
bindingRecord.setter(this._getDirectiveFor(directiveIndex), change.currentValue);
|
|
}
|
|
if (this._genConfig.logBindingUpdate) {
|
|
_super.prototype.logBindingUpdate.call(this, change.currentValue);
|
|
}
|
|
};
|
|
DynamicChangeDetector.prototype._addChange = function(bindingRecord, change, changes) {
|
|
if (bindingRecord.callOnChanges()) {
|
|
return _super.prototype.addChange.call(this, changes, change.previousValue, change.currentValue);
|
|
} else {
|
|
return changes;
|
|
}
|
|
};
|
|
DynamicChangeDetector.prototype._getDirectiveFor = function(directiveIndex) {
|
|
return this.dispatcher.getDirectiveFor(directiveIndex);
|
|
};
|
|
DynamicChangeDetector.prototype._getDetectorFor = function(directiveIndex) {
|
|
return this.dispatcher.getDetectorFor(directiveIndex);
|
|
};
|
|
DynamicChangeDetector.prototype._check = function(proto, throwOnChange, values, locals) {
|
|
if (proto.isPipeRecord()) {
|
|
return this._pipeCheck(proto, throwOnChange, values);
|
|
} else {
|
|
return this._referenceCheck(proto, throwOnChange, values, locals);
|
|
}
|
|
};
|
|
DynamicChangeDetector.prototype._referenceCheck = function(proto, throwOnChange, values, locals) {
|
|
if (this._pureFuncAndArgsDidNotChange(proto)) {
|
|
this._setChanged(proto, false);
|
|
return null;
|
|
}
|
|
var currValue = this._calculateCurrValue(proto, values, locals);
|
|
if (proto.shouldBeChecked()) {
|
|
var prevValue = this._readSelf(proto, values);
|
|
var detectedChange = throwOnChange ? !change_detection_util_1.ChangeDetectionUtil.devModeEqual(prevValue, currValue) : change_detection_util_1.ChangeDetectionUtil.looseNotIdentical(prevValue, currValue);
|
|
if (detectedChange) {
|
|
if (proto.lastInBinding) {
|
|
var change = change_detection_util_1.ChangeDetectionUtil.simpleChange(prevValue, currValue);
|
|
if (throwOnChange)
|
|
this.throwOnChangeError(prevValue, currValue);
|
|
this._writeSelf(proto, currValue, values);
|
|
this._setChanged(proto, true);
|
|
return change;
|
|
} else {
|
|
this._writeSelf(proto, currValue, values);
|
|
this._setChanged(proto, true);
|
|
return null;
|
|
}
|
|
} else {
|
|
this._setChanged(proto, false);
|
|
return null;
|
|
}
|
|
} else {
|
|
this._writeSelf(proto, currValue, values);
|
|
this._setChanged(proto, true);
|
|
return null;
|
|
}
|
|
};
|
|
DynamicChangeDetector.prototype._calculateCurrValue = function(proto, values, locals) {
|
|
switch (proto.mode) {
|
|
case proto_record_1.RecordType.Self:
|
|
return this._readContext(proto, values);
|
|
case proto_record_1.RecordType.Const:
|
|
return proto.funcOrValue;
|
|
case proto_record_1.RecordType.PropertyRead:
|
|
var context = this._readContext(proto, values);
|
|
return proto.funcOrValue(context);
|
|
case proto_record_1.RecordType.SafeProperty:
|
|
var context = this._readContext(proto, values);
|
|
return lang_1.isBlank(context) ? null : proto.funcOrValue(context);
|
|
case proto_record_1.RecordType.PropertyWrite:
|
|
var context = this._readContext(proto, values);
|
|
var value = this._readArgs(proto, values)[0];
|
|
proto.funcOrValue(context, value);
|
|
return value;
|
|
case proto_record_1.RecordType.KeyedWrite:
|
|
var context = this._readContext(proto, values);
|
|
var key = this._readArgs(proto, values)[0];
|
|
var value = this._readArgs(proto, values)[1];
|
|
context[key] = value;
|
|
return value;
|
|
case proto_record_1.RecordType.Local:
|
|
return locals.get(proto.name);
|
|
case proto_record_1.RecordType.InvokeMethod:
|
|
var context = this._readContext(proto, values);
|
|
var args = this._readArgs(proto, values);
|
|
return proto.funcOrValue(context, args);
|
|
case proto_record_1.RecordType.SafeMethodInvoke:
|
|
var context = this._readContext(proto, values);
|
|
if (lang_1.isBlank(context)) {
|
|
return null;
|
|
}
|
|
var args = this._readArgs(proto, values);
|
|
return proto.funcOrValue(context, args);
|
|
case proto_record_1.RecordType.KeyedRead:
|
|
var arg = this._readArgs(proto, values)[0];
|
|
return this._readContext(proto, values)[arg];
|
|
case proto_record_1.RecordType.Chain:
|
|
var args = this._readArgs(proto, values);
|
|
return args[args.length - 1];
|
|
case proto_record_1.RecordType.InvokeClosure:
|
|
return lang_1.FunctionWrapper.apply(this._readContext(proto, values), this._readArgs(proto, values));
|
|
case proto_record_1.RecordType.Interpolate:
|
|
case proto_record_1.RecordType.PrimitiveOp:
|
|
case proto_record_1.RecordType.CollectionLiteral:
|
|
return lang_1.FunctionWrapper.apply(proto.funcOrValue, this._readArgs(proto, values));
|
|
default:
|
|
throw new exceptions_1.BaseException("Unknown operation " + proto.mode);
|
|
}
|
|
};
|
|
DynamicChangeDetector.prototype._pipeCheck = function(proto, throwOnChange, values) {
|
|
var context = this._readContext(proto, values);
|
|
var selectedPipe = this._pipeFor(proto, context);
|
|
if (!selectedPipe.pure || this._argsOrContextChanged(proto)) {
|
|
var args = this._readArgs(proto, values);
|
|
var currValue = selectedPipe.pipe.transform(context, args);
|
|
if (proto.shouldBeChecked()) {
|
|
var prevValue = this._readSelf(proto, values);
|
|
var detectedChange = throwOnChange ? !change_detection_util_1.ChangeDetectionUtil.devModeEqual(prevValue, currValue) : change_detection_util_1.ChangeDetectionUtil.looseNotIdentical(prevValue, currValue);
|
|
if (detectedChange) {
|
|
currValue = change_detection_util_1.ChangeDetectionUtil.unwrapValue(currValue);
|
|
if (proto.lastInBinding) {
|
|
var change = change_detection_util_1.ChangeDetectionUtil.simpleChange(prevValue, currValue);
|
|
if (throwOnChange)
|
|
this.throwOnChangeError(prevValue, currValue);
|
|
this._writeSelf(proto, currValue, values);
|
|
this._setChanged(proto, true);
|
|
return change;
|
|
} else {
|
|
this._writeSelf(proto, currValue, values);
|
|
this._setChanged(proto, true);
|
|
return null;
|
|
}
|
|
} else {
|
|
this._setChanged(proto, false);
|
|
return null;
|
|
}
|
|
} else {
|
|
this._writeSelf(proto, currValue, values);
|
|
this._setChanged(proto, true);
|
|
return null;
|
|
}
|
|
}
|
|
};
|
|
DynamicChangeDetector.prototype._pipeFor = function(proto, context) {
|
|
var storedPipe = this._readPipe(proto);
|
|
if (lang_1.isPresent(storedPipe))
|
|
return storedPipe;
|
|
var pipe = this.pipes.get(proto.name);
|
|
this._writePipe(proto, pipe);
|
|
return pipe;
|
|
};
|
|
DynamicChangeDetector.prototype._readContext = function(proto, values) {
|
|
if (proto.contextIndex == -1) {
|
|
return this._getDirectiveFor(proto.directiveIndex);
|
|
}
|
|
return values[proto.contextIndex];
|
|
};
|
|
DynamicChangeDetector.prototype._readSelf = function(proto, values) {
|
|
return values[proto.selfIndex];
|
|
};
|
|
DynamicChangeDetector.prototype._writeSelf = function(proto, value, values) {
|
|
values[proto.selfIndex] = value;
|
|
};
|
|
DynamicChangeDetector.prototype._readPipe = function(proto) {
|
|
return this.localPipes[proto.selfIndex];
|
|
};
|
|
DynamicChangeDetector.prototype._writePipe = function(proto, value) {
|
|
this.localPipes[proto.selfIndex] = value;
|
|
};
|
|
DynamicChangeDetector.prototype._setChanged = function(proto, value) {
|
|
if (proto.argumentToPureFunction)
|
|
this.changes[proto.selfIndex] = value;
|
|
};
|
|
DynamicChangeDetector.prototype._pureFuncAndArgsDidNotChange = function(proto) {
|
|
return proto.isPureFunction() && !this._argsChanged(proto);
|
|
};
|
|
DynamicChangeDetector.prototype._argsChanged = function(proto) {
|
|
var args = proto.args;
|
|
for (var i = 0; i < args.length; ++i) {
|
|
if (this.changes[args[i]]) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
};
|
|
DynamicChangeDetector.prototype._argsOrContextChanged = function(proto) {
|
|
return this._argsChanged(proto) || this.changes[proto.contextIndex];
|
|
};
|
|
DynamicChangeDetector.prototype._readArgs = function(proto, values) {
|
|
var res = collection_1.ListWrapper.createFixedSize(proto.args.length);
|
|
var args = proto.args;
|
|
for (var i = 0; i < args.length; ++i) {
|
|
res[i] = values[args[i]];
|
|
}
|
|
return res;
|
|
};
|
|
return DynamicChangeDetector;
|
|
})(abstract_change_detector_1.AbstractChangeDetector);
|
|
exports.DynamicChangeDetector = DynamicChangeDetector;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/change_detection/jit_proto_change_detector", ["angular2/src/core/change_detection/change_detection_jit_generator"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var change_detection_jit_generator_1 = require("angular2/src/core/change_detection/change_detection_jit_generator");
|
|
var JitProtoChangeDetector = (function() {
|
|
function JitProtoChangeDetector(definition) {
|
|
this.definition = definition;
|
|
this._factory = this._createFactory(definition);
|
|
}
|
|
JitProtoChangeDetector.isSupported = function() {
|
|
return true;
|
|
};
|
|
JitProtoChangeDetector.prototype.instantiate = function() {
|
|
return this._factory();
|
|
};
|
|
JitProtoChangeDetector.prototype._createFactory = function(definition) {
|
|
return new change_detection_jit_generator_1.ChangeDetectorJITGenerator(definition, 'util', 'AbstractChangeDetector', 'ChangeDetectorStatus').generate();
|
|
};
|
|
return JitProtoChangeDetector;
|
|
})();
|
|
exports.JitProtoChangeDetector = JitProtoChangeDetector;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/linker/compiler", ["angular2/src/core/di", "angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/facade/async", "angular2/src/core/reflection/reflection", "angular2/src/core/linker/view", "angular2/src/core/linker/view_ref"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var di_1 = require("angular2/src/core/di");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var async_1 = require("angular2/src/facade/async");
|
|
var reflection_1 = require("angular2/src/core/reflection/reflection");
|
|
var view_1 = require("angular2/src/core/linker/view");
|
|
var view_ref_1 = require("angular2/src/core/linker/view_ref");
|
|
var Compiler = (function() {
|
|
function Compiler() {}
|
|
return Compiler;
|
|
})();
|
|
exports.Compiler = Compiler;
|
|
function isHostViewFactory(type) {
|
|
return type instanceof view_1.HostViewFactory;
|
|
}
|
|
var Compiler_ = (function(_super) {
|
|
__extends(Compiler_, _super);
|
|
function Compiler_() {
|
|
_super.apply(this, arguments);
|
|
}
|
|
Compiler_.prototype.compileInHost = function(componentType) {
|
|
var metadatas = reflection_1.reflector.annotations(componentType);
|
|
var hostViewFactory = metadatas.find(isHostViewFactory);
|
|
if (lang_1.isBlank(hostViewFactory)) {
|
|
throw new exceptions_1.BaseException("No precompiled component " + lang_1.stringify(componentType) + " found");
|
|
}
|
|
return async_1.PromiseWrapper.resolve(new view_ref_1.HostViewFactoryRef_(hostViewFactory));
|
|
};
|
|
Compiler_.prototype.clearCache = function() {};
|
|
Compiler_ = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [])], Compiler_);
|
|
return Compiler_;
|
|
})(Compiler);
|
|
exports.Compiler_ = Compiler_;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/forms", ["angular2/src/common/forms/model", "angular2/src/common/forms/directives/abstract_control_directive", "angular2/src/common/forms/directives/control_container", "angular2/src/common/forms/directives/ng_control_name", "angular2/src/common/forms/directives/ng_form_control", "angular2/src/common/forms/directives/ng_model", "angular2/src/common/forms/directives/ng_control", "angular2/src/common/forms/directives/ng_control_group", "angular2/src/common/forms/directives/ng_form_model", "angular2/src/common/forms/directives/ng_form", "angular2/src/common/forms/directives/control_value_accessor", "angular2/src/common/forms/directives/default_value_accessor", "angular2/src/common/forms/directives/ng_control_status", "angular2/src/common/forms/directives/checkbox_value_accessor", "angular2/src/common/forms/directives/select_control_value_accessor", "angular2/src/common/forms/directives", "angular2/src/common/forms/validators", "angular2/src/common/forms/directives/validators", "angular2/src/common/forms/form_builder", "angular2/src/common/forms/form_builder", "angular2/src/common/forms/directives/radio_control_value_accessor", "angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var model_1 = require("angular2/src/common/forms/model");
|
|
exports.AbstractControl = model_1.AbstractControl;
|
|
exports.Control = model_1.Control;
|
|
exports.ControlGroup = model_1.ControlGroup;
|
|
exports.ControlArray = model_1.ControlArray;
|
|
var abstract_control_directive_1 = require("angular2/src/common/forms/directives/abstract_control_directive");
|
|
exports.AbstractControlDirective = abstract_control_directive_1.AbstractControlDirective;
|
|
var control_container_1 = require("angular2/src/common/forms/directives/control_container");
|
|
exports.ControlContainer = control_container_1.ControlContainer;
|
|
var ng_control_name_1 = require("angular2/src/common/forms/directives/ng_control_name");
|
|
exports.NgControlName = ng_control_name_1.NgControlName;
|
|
var ng_form_control_1 = require("angular2/src/common/forms/directives/ng_form_control");
|
|
exports.NgFormControl = ng_form_control_1.NgFormControl;
|
|
var ng_model_1 = require("angular2/src/common/forms/directives/ng_model");
|
|
exports.NgModel = ng_model_1.NgModel;
|
|
var ng_control_1 = require("angular2/src/common/forms/directives/ng_control");
|
|
exports.NgControl = ng_control_1.NgControl;
|
|
var ng_control_group_1 = require("angular2/src/common/forms/directives/ng_control_group");
|
|
exports.NgControlGroup = ng_control_group_1.NgControlGroup;
|
|
var ng_form_model_1 = require("angular2/src/common/forms/directives/ng_form_model");
|
|
exports.NgFormModel = ng_form_model_1.NgFormModel;
|
|
var ng_form_1 = require("angular2/src/common/forms/directives/ng_form");
|
|
exports.NgForm = ng_form_1.NgForm;
|
|
var control_value_accessor_1 = require("angular2/src/common/forms/directives/control_value_accessor");
|
|
exports.NG_VALUE_ACCESSOR = control_value_accessor_1.NG_VALUE_ACCESSOR;
|
|
var default_value_accessor_1 = require("angular2/src/common/forms/directives/default_value_accessor");
|
|
exports.DefaultValueAccessor = default_value_accessor_1.DefaultValueAccessor;
|
|
var ng_control_status_1 = require("angular2/src/common/forms/directives/ng_control_status");
|
|
exports.NgControlStatus = ng_control_status_1.NgControlStatus;
|
|
var checkbox_value_accessor_1 = require("angular2/src/common/forms/directives/checkbox_value_accessor");
|
|
exports.CheckboxControlValueAccessor = checkbox_value_accessor_1.CheckboxControlValueAccessor;
|
|
var select_control_value_accessor_1 = require("angular2/src/common/forms/directives/select_control_value_accessor");
|
|
exports.NgSelectOption = select_control_value_accessor_1.NgSelectOption;
|
|
exports.SelectControlValueAccessor = select_control_value_accessor_1.SelectControlValueAccessor;
|
|
var directives_1 = require("angular2/src/common/forms/directives");
|
|
exports.FORM_DIRECTIVES = directives_1.FORM_DIRECTIVES;
|
|
exports.RadioButtonState = directives_1.RadioButtonState;
|
|
var validators_1 = require("angular2/src/common/forms/validators");
|
|
exports.NG_VALIDATORS = validators_1.NG_VALIDATORS;
|
|
exports.NG_ASYNC_VALIDATORS = validators_1.NG_ASYNC_VALIDATORS;
|
|
exports.Validators = validators_1.Validators;
|
|
var validators_2 = require("angular2/src/common/forms/directives/validators");
|
|
exports.RequiredValidator = validators_2.RequiredValidator;
|
|
exports.MinLengthValidator = validators_2.MinLengthValidator;
|
|
exports.MaxLengthValidator = validators_2.MaxLengthValidator;
|
|
exports.PatternValidator = validators_2.PatternValidator;
|
|
var form_builder_1 = require("angular2/src/common/forms/form_builder");
|
|
exports.FormBuilder = form_builder_1.FormBuilder;
|
|
var form_builder_2 = require("angular2/src/common/forms/form_builder");
|
|
var radio_control_value_accessor_1 = require("angular2/src/common/forms/directives/radio_control_value_accessor");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
exports.FORM_PROVIDERS = lang_1.CONST_EXPR([form_builder_2.FormBuilder, radio_control_value_accessor_1.RadioControlRegistry]);
|
|
exports.FORM_BINDINGS = exports.FORM_PROVIDERS;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/web_workers/worker/xhr_impl", ["angular2/src/core/di", "angular2/src/compiler/xhr", "angular2/src/web_workers/shared/client_message_broker", "angular2/src/web_workers/shared/messaging_api"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var di_1 = require("angular2/src/core/di");
|
|
var xhr_1 = require("angular2/src/compiler/xhr");
|
|
var client_message_broker_1 = require("angular2/src/web_workers/shared/client_message_broker");
|
|
var messaging_api_1 = require("angular2/src/web_workers/shared/messaging_api");
|
|
var WebWorkerXHRImpl = (function(_super) {
|
|
__extends(WebWorkerXHRImpl, _super);
|
|
function WebWorkerXHRImpl(messageBrokerFactory) {
|
|
_super.call(this);
|
|
this._messageBroker = messageBrokerFactory.createMessageBroker(messaging_api_1.XHR_CHANNEL);
|
|
}
|
|
WebWorkerXHRImpl.prototype.get = function(url) {
|
|
var fnArgs = [new client_message_broker_1.FnArg(url, null)];
|
|
var args = new client_message_broker_1.UiArguments("get", fnArgs);
|
|
return this._messageBroker.runOnService(args, String);
|
|
};
|
|
WebWorkerXHRImpl = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [client_message_broker_1.ClientMessageBrokerFactory])], WebWorkerXHRImpl);
|
|
return WebWorkerXHRImpl;
|
|
})(xhr_1.XHR);
|
|
exports.WebWorkerXHRImpl = WebWorkerXHRImpl;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("parse5/lib/tree_construction/parser", ["parse5/lib/tokenization/tokenizer", "parse5/lib/tree_construction/open_element_stack", "parse5/lib/tree_construction/formatting_element_list", "parse5/lib/tree_construction/doctype", "parse5/lib/tree_adapters/default", "parse5/lib/common/foreign_content", "parse5/lib/common/unicode", "parse5/lib/common/html"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
'use strict';
|
|
var Tokenizer = require("parse5/lib/tokenization/tokenizer"),
|
|
OpenElementStack = require("parse5/lib/tree_construction/open_element_stack"),
|
|
FormattingElementList = require("parse5/lib/tree_construction/formatting_element_list"),
|
|
Doctype = require("parse5/lib/tree_construction/doctype"),
|
|
DefaultTreeAdapter = require("parse5/lib/tree_adapters/default"),
|
|
ForeignContent = require("parse5/lib/common/foreign_content"),
|
|
UNICODE = require("parse5/lib/common/unicode"),
|
|
HTML = require("parse5/lib/common/html");
|
|
var $ = HTML.TAG_NAMES,
|
|
NS = HTML.NAMESPACES,
|
|
ATTRS = HTML.ATTRS;
|
|
var SEARCHABLE_INDEX_DEFAULT_PROMPT = 'This is a searchable index. Enter search keywords: ',
|
|
SEARCHABLE_INDEX_INPUT_NAME = 'isindex',
|
|
HIDDEN_INPUT_TYPE = 'hidden';
|
|
var AA_OUTER_LOOP_ITER = 8,
|
|
AA_INNER_LOOP_ITER = 3;
|
|
var INITIAL_MODE = 'INITIAL_MODE',
|
|
BEFORE_HTML_MODE = 'BEFORE_HTML_MODE',
|
|
BEFORE_HEAD_MODE = 'BEFORE_HEAD_MODE',
|
|
IN_HEAD_MODE = 'IN_HEAD_MODE',
|
|
AFTER_HEAD_MODE = 'AFTER_HEAD_MODE',
|
|
IN_BODY_MODE = 'IN_BODY_MODE',
|
|
TEXT_MODE = 'TEXT_MODE',
|
|
IN_TABLE_MODE = 'IN_TABLE_MODE',
|
|
IN_TABLE_TEXT_MODE = 'IN_TABLE_TEXT_MODE',
|
|
IN_CAPTION_MODE = 'IN_CAPTION_MODE',
|
|
IN_COLUMN_GROUP_MODE = 'IN_COLUMN_GROUP_MODE',
|
|
IN_TABLE_BODY_MODE = 'IN_TABLE_BODY_MODE',
|
|
IN_ROW_MODE = 'IN_ROW_MODE',
|
|
IN_CELL_MODE = 'IN_CELL_MODE',
|
|
IN_SELECT_MODE = 'IN_SELECT_MODE',
|
|
IN_SELECT_IN_TABLE_MODE = 'IN_SELECT_IN_TABLE_MODE',
|
|
IN_TEMPLATE_MODE = 'IN_TEMPLATE_MODE',
|
|
AFTER_BODY_MODE = 'AFTER_BODY_MODE',
|
|
IN_FRAMESET_MODE = 'IN_FRAMESET_MODE',
|
|
AFTER_FRAMESET_MODE = 'AFTER_FRAMESET_MODE',
|
|
AFTER_AFTER_BODY_MODE = 'AFTER_AFTER_BODY_MODE',
|
|
AFTER_AFTER_FRAMESET_MODE = 'AFTER_AFTER_FRAMESET_MODE';
|
|
var INSERTION_MODE_RESET_MAP = {};
|
|
INSERTION_MODE_RESET_MAP[$.TR] = IN_ROW_MODE;
|
|
INSERTION_MODE_RESET_MAP[$.TBODY] = INSERTION_MODE_RESET_MAP[$.THEAD] = INSERTION_MODE_RESET_MAP[$.TFOOT] = IN_TABLE_BODY_MODE;
|
|
INSERTION_MODE_RESET_MAP[$.CAPTION] = IN_CAPTION_MODE;
|
|
INSERTION_MODE_RESET_MAP[$.COLGROUP] = IN_COLUMN_GROUP_MODE;
|
|
INSERTION_MODE_RESET_MAP[$.TABLE] = IN_TABLE_MODE;
|
|
INSERTION_MODE_RESET_MAP[$.BODY] = IN_BODY_MODE;
|
|
INSERTION_MODE_RESET_MAP[$.FRAMESET] = IN_FRAMESET_MODE;
|
|
var TEMPLATE_INSERTION_MODE_SWITCH_MAP = {};
|
|
TEMPLATE_INSERTION_MODE_SWITCH_MAP[$.CAPTION] = TEMPLATE_INSERTION_MODE_SWITCH_MAP[$.COLGROUP] = TEMPLATE_INSERTION_MODE_SWITCH_MAP[$.TBODY] = TEMPLATE_INSERTION_MODE_SWITCH_MAP[$.TFOOT] = TEMPLATE_INSERTION_MODE_SWITCH_MAP[$.THEAD] = IN_TABLE_MODE;
|
|
TEMPLATE_INSERTION_MODE_SWITCH_MAP[$.COL] = IN_COLUMN_GROUP_MODE;
|
|
TEMPLATE_INSERTION_MODE_SWITCH_MAP[$.TR] = IN_TABLE_BODY_MODE;
|
|
TEMPLATE_INSERTION_MODE_SWITCH_MAP[$.TD] = TEMPLATE_INSERTION_MODE_SWITCH_MAP[$.TH] = IN_ROW_MODE;
|
|
var _ = {};
|
|
_[INITIAL_MODE] = {};
|
|
_[INITIAL_MODE][Tokenizer.CHARACTER_TOKEN] = _[INITIAL_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = tokenInInitialMode;
|
|
_[INITIAL_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = ignoreToken;
|
|
_[INITIAL_MODE][Tokenizer.COMMENT_TOKEN] = appendComment;
|
|
_[INITIAL_MODE][Tokenizer.DOCTYPE_TOKEN] = doctypeInInitialMode;
|
|
_[INITIAL_MODE][Tokenizer.START_TAG_TOKEN] = _[INITIAL_MODE][Tokenizer.END_TAG_TOKEN] = _[INITIAL_MODE][Tokenizer.EOF_TOKEN] = tokenInInitialMode;
|
|
_[BEFORE_HTML_MODE] = {};
|
|
_[BEFORE_HTML_MODE][Tokenizer.CHARACTER_TOKEN] = _[BEFORE_HTML_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = tokenBeforeHtml;
|
|
_[BEFORE_HTML_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = ignoreToken;
|
|
_[BEFORE_HTML_MODE][Tokenizer.COMMENT_TOKEN] = appendComment;
|
|
_[BEFORE_HTML_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
|
|
_[BEFORE_HTML_MODE][Tokenizer.START_TAG_TOKEN] = startTagBeforeHtml;
|
|
_[BEFORE_HTML_MODE][Tokenizer.END_TAG_TOKEN] = endTagBeforeHtml;
|
|
_[BEFORE_HTML_MODE][Tokenizer.EOF_TOKEN] = tokenBeforeHtml;
|
|
_[BEFORE_HEAD_MODE] = {};
|
|
_[BEFORE_HEAD_MODE][Tokenizer.CHARACTER_TOKEN] = _[BEFORE_HEAD_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = tokenBeforeHead;
|
|
_[BEFORE_HEAD_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = ignoreToken;
|
|
_[BEFORE_HEAD_MODE][Tokenizer.COMMENT_TOKEN] = appendComment;
|
|
_[BEFORE_HEAD_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
|
|
_[BEFORE_HEAD_MODE][Tokenizer.START_TAG_TOKEN] = startTagBeforeHead;
|
|
_[BEFORE_HEAD_MODE][Tokenizer.END_TAG_TOKEN] = endTagBeforeHead;
|
|
_[BEFORE_HEAD_MODE][Tokenizer.EOF_TOKEN] = tokenBeforeHead;
|
|
_[IN_HEAD_MODE] = {};
|
|
_[IN_HEAD_MODE][Tokenizer.CHARACTER_TOKEN] = _[IN_HEAD_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = tokenInHead;
|
|
_[IN_HEAD_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = insertCharacters;
|
|
_[IN_HEAD_MODE][Tokenizer.COMMENT_TOKEN] = appendComment;
|
|
_[IN_HEAD_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
|
|
_[IN_HEAD_MODE][Tokenizer.START_TAG_TOKEN] = startTagInHead;
|
|
_[IN_HEAD_MODE][Tokenizer.END_TAG_TOKEN] = endTagInHead;
|
|
_[IN_HEAD_MODE][Tokenizer.EOF_TOKEN] = tokenInHead;
|
|
_[AFTER_HEAD_MODE] = {};
|
|
_[AFTER_HEAD_MODE][Tokenizer.CHARACTER_TOKEN] = _[AFTER_HEAD_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = tokenAfterHead;
|
|
_[AFTER_HEAD_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = insertCharacters;
|
|
_[AFTER_HEAD_MODE][Tokenizer.COMMENT_TOKEN] = appendComment;
|
|
_[AFTER_HEAD_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
|
|
_[AFTER_HEAD_MODE][Tokenizer.START_TAG_TOKEN] = startTagAfterHead;
|
|
_[AFTER_HEAD_MODE][Tokenizer.END_TAG_TOKEN] = endTagAfterHead;
|
|
_[AFTER_HEAD_MODE][Tokenizer.EOF_TOKEN] = tokenAfterHead;
|
|
_[IN_BODY_MODE] = {};
|
|
_[IN_BODY_MODE][Tokenizer.CHARACTER_TOKEN] = characterInBody;
|
|
_[IN_BODY_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken;
|
|
_[IN_BODY_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = whitespaceCharacterInBody;
|
|
_[IN_BODY_MODE][Tokenizer.COMMENT_TOKEN] = appendComment;
|
|
_[IN_BODY_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
|
|
_[IN_BODY_MODE][Tokenizer.START_TAG_TOKEN] = startTagInBody;
|
|
_[IN_BODY_MODE][Tokenizer.END_TAG_TOKEN] = endTagInBody;
|
|
_[IN_BODY_MODE][Tokenizer.EOF_TOKEN] = eofInBody;
|
|
_[TEXT_MODE] = {};
|
|
_[TEXT_MODE][Tokenizer.CHARACTER_TOKEN] = _[TEXT_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = _[TEXT_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = insertCharacters;
|
|
_[TEXT_MODE][Tokenizer.COMMENT_TOKEN] = _[TEXT_MODE][Tokenizer.DOCTYPE_TOKEN] = _[TEXT_MODE][Tokenizer.START_TAG_TOKEN] = ignoreToken;
|
|
_[TEXT_MODE][Tokenizer.END_TAG_TOKEN] = endTagInText;
|
|
_[TEXT_MODE][Tokenizer.EOF_TOKEN] = eofInText;
|
|
_[IN_TABLE_MODE] = {};
|
|
_[IN_TABLE_MODE][Tokenizer.CHARACTER_TOKEN] = _[IN_TABLE_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = _[IN_TABLE_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = characterInTable;
|
|
_[IN_TABLE_MODE][Tokenizer.COMMENT_TOKEN] = appendComment;
|
|
_[IN_TABLE_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
|
|
_[IN_TABLE_MODE][Tokenizer.START_TAG_TOKEN] = startTagInTable;
|
|
_[IN_TABLE_MODE][Tokenizer.END_TAG_TOKEN] = endTagInTable;
|
|
_[IN_TABLE_MODE][Tokenizer.EOF_TOKEN] = eofInBody;
|
|
_[IN_TABLE_TEXT_MODE] = {};
|
|
_[IN_TABLE_TEXT_MODE][Tokenizer.CHARACTER_TOKEN] = characterInTableText;
|
|
_[IN_TABLE_TEXT_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken;
|
|
_[IN_TABLE_TEXT_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = whitespaceCharacterInTableText;
|
|
_[IN_TABLE_TEXT_MODE][Tokenizer.COMMENT_TOKEN] = _[IN_TABLE_TEXT_MODE][Tokenizer.DOCTYPE_TOKEN] = _[IN_TABLE_TEXT_MODE][Tokenizer.START_TAG_TOKEN] = _[IN_TABLE_TEXT_MODE][Tokenizer.END_TAG_TOKEN] = _[IN_TABLE_TEXT_MODE][Tokenizer.EOF_TOKEN] = tokenInTableText;
|
|
_[IN_CAPTION_MODE] = {};
|
|
_[IN_CAPTION_MODE][Tokenizer.CHARACTER_TOKEN] = characterInBody;
|
|
_[IN_CAPTION_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken;
|
|
_[IN_CAPTION_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = whitespaceCharacterInBody;
|
|
_[IN_CAPTION_MODE][Tokenizer.COMMENT_TOKEN] = appendComment;
|
|
_[IN_CAPTION_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
|
|
_[IN_CAPTION_MODE][Tokenizer.START_TAG_TOKEN] = startTagInCaption;
|
|
_[IN_CAPTION_MODE][Tokenizer.END_TAG_TOKEN] = endTagInCaption;
|
|
_[IN_CAPTION_MODE][Tokenizer.EOF_TOKEN] = eofInBody;
|
|
_[IN_COLUMN_GROUP_MODE] = {};
|
|
_[IN_COLUMN_GROUP_MODE][Tokenizer.CHARACTER_TOKEN] = _[IN_COLUMN_GROUP_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = tokenInColumnGroup;
|
|
_[IN_COLUMN_GROUP_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = insertCharacters;
|
|
_[IN_COLUMN_GROUP_MODE][Tokenizer.COMMENT_TOKEN] = appendComment;
|
|
_[IN_COLUMN_GROUP_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
|
|
_[IN_COLUMN_GROUP_MODE][Tokenizer.START_TAG_TOKEN] = startTagInColumnGroup;
|
|
_[IN_COLUMN_GROUP_MODE][Tokenizer.END_TAG_TOKEN] = endTagInColumnGroup;
|
|
_[IN_COLUMN_GROUP_MODE][Tokenizer.EOF_TOKEN] = eofInBody;
|
|
_[IN_TABLE_BODY_MODE] = {};
|
|
_[IN_TABLE_BODY_MODE][Tokenizer.CHARACTER_TOKEN] = _[IN_TABLE_BODY_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = _[IN_TABLE_BODY_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = characterInTable;
|
|
_[IN_TABLE_BODY_MODE][Tokenizer.COMMENT_TOKEN] = appendComment;
|
|
_[IN_TABLE_BODY_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
|
|
_[IN_TABLE_BODY_MODE][Tokenizer.START_TAG_TOKEN] = startTagInTableBody;
|
|
_[IN_TABLE_BODY_MODE][Tokenizer.END_TAG_TOKEN] = endTagInTableBody;
|
|
_[IN_TABLE_BODY_MODE][Tokenizer.EOF_TOKEN] = eofInBody;
|
|
_[IN_ROW_MODE] = {};
|
|
_[IN_ROW_MODE][Tokenizer.CHARACTER_TOKEN] = _[IN_ROW_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = _[IN_ROW_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = characterInTable;
|
|
_[IN_ROW_MODE][Tokenizer.COMMENT_TOKEN] = appendComment;
|
|
_[IN_ROW_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
|
|
_[IN_ROW_MODE][Tokenizer.START_TAG_TOKEN] = startTagInRow;
|
|
_[IN_ROW_MODE][Tokenizer.END_TAG_TOKEN] = endTagInRow;
|
|
_[IN_ROW_MODE][Tokenizer.EOF_TOKEN] = eofInBody;
|
|
_[IN_CELL_MODE] = {};
|
|
_[IN_CELL_MODE][Tokenizer.CHARACTER_TOKEN] = characterInBody;
|
|
_[IN_CELL_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken;
|
|
_[IN_CELL_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = whitespaceCharacterInBody;
|
|
_[IN_CELL_MODE][Tokenizer.COMMENT_TOKEN] = appendComment;
|
|
_[IN_CELL_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
|
|
_[IN_CELL_MODE][Tokenizer.START_TAG_TOKEN] = startTagInCell;
|
|
_[IN_CELL_MODE][Tokenizer.END_TAG_TOKEN] = endTagInCell;
|
|
_[IN_CELL_MODE][Tokenizer.EOF_TOKEN] = eofInBody;
|
|
_[IN_SELECT_MODE] = {};
|
|
_[IN_SELECT_MODE][Tokenizer.CHARACTER_TOKEN] = insertCharacters;
|
|
_[IN_SELECT_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken;
|
|
_[IN_SELECT_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = insertCharacters;
|
|
_[IN_SELECT_MODE][Tokenizer.COMMENT_TOKEN] = appendComment;
|
|
_[IN_SELECT_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
|
|
_[IN_SELECT_MODE][Tokenizer.START_TAG_TOKEN] = startTagInSelect;
|
|
_[IN_SELECT_MODE][Tokenizer.END_TAG_TOKEN] = endTagInSelect;
|
|
_[IN_SELECT_MODE][Tokenizer.EOF_TOKEN] = eofInBody;
|
|
_[IN_SELECT_IN_TABLE_MODE] = {};
|
|
_[IN_SELECT_IN_TABLE_MODE][Tokenizer.CHARACTER_TOKEN] = insertCharacters;
|
|
_[IN_SELECT_IN_TABLE_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken;
|
|
_[IN_SELECT_IN_TABLE_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = insertCharacters;
|
|
_[IN_SELECT_IN_TABLE_MODE][Tokenizer.COMMENT_TOKEN] = appendComment;
|
|
_[IN_SELECT_IN_TABLE_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
|
|
_[IN_SELECT_IN_TABLE_MODE][Tokenizer.START_TAG_TOKEN] = startTagInSelectInTable;
|
|
_[IN_SELECT_IN_TABLE_MODE][Tokenizer.END_TAG_TOKEN] = endTagInSelectInTable;
|
|
_[IN_SELECT_IN_TABLE_MODE][Tokenizer.EOF_TOKEN] = eofInBody;
|
|
_[IN_TEMPLATE_MODE] = {};
|
|
_[IN_TEMPLATE_MODE][Tokenizer.CHARACTER_TOKEN] = characterInBody;
|
|
_[IN_TEMPLATE_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken;
|
|
_[IN_TEMPLATE_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = whitespaceCharacterInBody;
|
|
_[IN_TEMPLATE_MODE][Tokenizer.COMMENT_TOKEN] = appendComment;
|
|
_[IN_TEMPLATE_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
|
|
_[IN_TEMPLATE_MODE][Tokenizer.START_TAG_TOKEN] = startTagInTemplate;
|
|
_[IN_TEMPLATE_MODE][Tokenizer.END_TAG_TOKEN] = endTagInTemplate;
|
|
_[IN_TEMPLATE_MODE][Tokenizer.EOF_TOKEN] = eofInTemplate;
|
|
_[AFTER_BODY_MODE] = {};
|
|
_[AFTER_BODY_MODE][Tokenizer.CHARACTER_TOKEN] = _[AFTER_BODY_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = tokenAfterBody;
|
|
_[AFTER_BODY_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = whitespaceCharacterInBody;
|
|
_[AFTER_BODY_MODE][Tokenizer.COMMENT_TOKEN] = appendCommentToRootHtmlElement;
|
|
_[AFTER_BODY_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
|
|
_[AFTER_BODY_MODE][Tokenizer.START_TAG_TOKEN] = startTagAfterBody;
|
|
_[AFTER_BODY_MODE][Tokenizer.END_TAG_TOKEN] = endTagAfterBody;
|
|
_[AFTER_BODY_MODE][Tokenizer.EOF_TOKEN] = stopParsing;
|
|
_[IN_FRAMESET_MODE] = {};
|
|
_[IN_FRAMESET_MODE][Tokenizer.CHARACTER_TOKEN] = _[IN_FRAMESET_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken;
|
|
_[IN_FRAMESET_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = insertCharacters;
|
|
_[IN_FRAMESET_MODE][Tokenizer.COMMENT_TOKEN] = appendComment;
|
|
_[IN_FRAMESET_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
|
|
_[IN_FRAMESET_MODE][Tokenizer.START_TAG_TOKEN] = startTagInFrameset;
|
|
_[IN_FRAMESET_MODE][Tokenizer.END_TAG_TOKEN] = endTagInFrameset;
|
|
_[IN_FRAMESET_MODE][Tokenizer.EOF_TOKEN] = stopParsing;
|
|
_[AFTER_FRAMESET_MODE] = {};
|
|
_[AFTER_FRAMESET_MODE][Tokenizer.CHARACTER_TOKEN] = _[AFTER_FRAMESET_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken;
|
|
_[AFTER_FRAMESET_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = insertCharacters;
|
|
_[AFTER_FRAMESET_MODE][Tokenizer.COMMENT_TOKEN] = appendComment;
|
|
_[AFTER_FRAMESET_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
|
|
_[AFTER_FRAMESET_MODE][Tokenizer.START_TAG_TOKEN] = startTagAfterFrameset;
|
|
_[AFTER_FRAMESET_MODE][Tokenizer.END_TAG_TOKEN] = endTagAfterFrameset;
|
|
_[AFTER_FRAMESET_MODE][Tokenizer.EOF_TOKEN] = stopParsing;
|
|
_[AFTER_AFTER_BODY_MODE] = {};
|
|
_[AFTER_AFTER_BODY_MODE][Tokenizer.CHARACTER_TOKEN] = tokenAfterAfterBody;
|
|
_[AFTER_AFTER_BODY_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = tokenAfterAfterBody;
|
|
_[AFTER_AFTER_BODY_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = whitespaceCharacterInBody;
|
|
_[AFTER_AFTER_BODY_MODE][Tokenizer.COMMENT_TOKEN] = appendCommentToDocument;
|
|
_[AFTER_AFTER_BODY_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
|
|
_[AFTER_AFTER_BODY_MODE][Tokenizer.START_TAG_TOKEN] = startTagAfterAfterBody;
|
|
_[AFTER_AFTER_BODY_MODE][Tokenizer.END_TAG_TOKEN] = tokenAfterAfterBody;
|
|
_[AFTER_AFTER_BODY_MODE][Tokenizer.EOF_TOKEN] = stopParsing;
|
|
_[AFTER_AFTER_FRAMESET_MODE] = {};
|
|
_[AFTER_AFTER_FRAMESET_MODE][Tokenizer.CHARACTER_TOKEN] = _[AFTER_AFTER_FRAMESET_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken;
|
|
_[AFTER_AFTER_FRAMESET_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = whitespaceCharacterInBody;
|
|
_[AFTER_AFTER_FRAMESET_MODE][Tokenizer.COMMENT_TOKEN] = appendCommentToDocument;
|
|
_[AFTER_AFTER_FRAMESET_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
|
|
_[AFTER_AFTER_FRAMESET_MODE][Tokenizer.START_TAG_TOKEN] = startTagAfterAfterFrameset;
|
|
_[AFTER_AFTER_FRAMESET_MODE][Tokenizer.END_TAG_TOKEN] = ignoreToken;
|
|
_[AFTER_AFTER_FRAMESET_MODE][Tokenizer.EOF_TOKEN] = stopParsing;
|
|
function getSearchableIndexFormAttrs(isindexStartTagToken) {
|
|
var indexAction = Tokenizer.getTokenAttr(isindexStartTagToken, ATTRS.ACTION),
|
|
attrs = [];
|
|
if (indexAction !== null) {
|
|
attrs.push({
|
|
name: ATTRS.ACTION,
|
|
value: indexAction
|
|
});
|
|
}
|
|
return attrs;
|
|
}
|
|
function getSearchableIndexLabelText(isindexStartTagToken) {
|
|
var indexPrompt = Tokenizer.getTokenAttr(isindexStartTagToken, ATTRS.PROMPT);
|
|
return indexPrompt === null ? SEARCHABLE_INDEX_DEFAULT_PROMPT : indexPrompt;
|
|
}
|
|
function getSearchableIndexInputAttrs(isindexStartTagToken) {
|
|
var isindexAttrs = isindexStartTagToken.attrs,
|
|
inputAttrs = [];
|
|
for (var i = 0; i < isindexAttrs.length; i++) {
|
|
var name = isindexAttrs[i].name;
|
|
if (name !== ATTRS.NAME && name !== ATTRS.ACTION && name !== ATTRS.PROMPT)
|
|
inputAttrs.push(isindexAttrs[i]);
|
|
}
|
|
inputAttrs.push({
|
|
name: ATTRS.NAME,
|
|
value: SEARCHABLE_INDEX_INPUT_NAME
|
|
});
|
|
return inputAttrs;
|
|
}
|
|
var Parser = module.exports = function(treeAdapter) {
|
|
this.treeAdapter = treeAdapter || DefaultTreeAdapter;
|
|
this.scriptHandler = null;
|
|
};
|
|
Parser.prototype.parse = function(html) {
|
|
var document = this.treeAdapter.createDocument();
|
|
this._reset(html, document, null);
|
|
this._runParsingLoop();
|
|
return document;
|
|
};
|
|
Parser.prototype.parseFragment = function(html, fragmentContext) {
|
|
if (!fragmentContext)
|
|
fragmentContext = this.treeAdapter.createElement($.TEMPLATE, NS.HTML, []);
|
|
var documentMock = this.treeAdapter.createElement('documentmock', NS.HTML, []);
|
|
this._reset(html, documentMock, fragmentContext);
|
|
if (this.treeAdapter.getTagName(fragmentContext) === $.TEMPLATE)
|
|
this._pushTmplInsertionMode(IN_TEMPLATE_MODE);
|
|
this._initTokenizerForFragmentParsing();
|
|
this._insertFakeRootElement();
|
|
this._resetInsertionMode();
|
|
this._findFormInFragmentContext();
|
|
this._runParsingLoop();
|
|
var rootElement = this.treeAdapter.getFirstChild(documentMock),
|
|
fragment = this.treeAdapter.createDocumentFragment();
|
|
this._adoptNodes(rootElement, fragment);
|
|
return fragment;
|
|
};
|
|
Parser.prototype._reset = function(html, document, fragmentContext) {
|
|
this.tokenizer = new Tokenizer(html);
|
|
this.stopped = false;
|
|
this.insertionMode = INITIAL_MODE;
|
|
this.originalInsertionMode = '';
|
|
this.document = document;
|
|
this.fragmentContext = fragmentContext;
|
|
this.headElement = null;
|
|
this.formElement = null;
|
|
this.openElements = new OpenElementStack(this.document, this.treeAdapter);
|
|
this.activeFormattingElements = new FormattingElementList(this.treeAdapter);
|
|
this.tmplInsertionModeStack = [];
|
|
this.tmplInsertionModeStackTop = -1;
|
|
this.currentTmplInsertionMode = null;
|
|
this.pendingCharacterTokens = [];
|
|
this.hasNonWhitespacePendingCharacterToken = false;
|
|
this.framesetOk = true;
|
|
this.skipNextNewLine = false;
|
|
this.fosterParentingEnabled = false;
|
|
};
|
|
Parser.prototype._iterateParsingLoop = function() {
|
|
this._setupTokenizerCDATAMode();
|
|
var token = this.tokenizer.getNextToken();
|
|
if (this.skipNextNewLine) {
|
|
this.skipNextNewLine = false;
|
|
if (token.type === Tokenizer.WHITESPACE_CHARACTER_TOKEN && token.chars[0] === '\n') {
|
|
if (token.chars.length === 1)
|
|
return ;
|
|
token.chars = token.chars.substr(1);
|
|
}
|
|
}
|
|
if (this._shouldProcessTokenInForeignContent(token))
|
|
this._processTokenInForeignContent(token);
|
|
else
|
|
this._processToken(token);
|
|
};
|
|
Parser.prototype._runParsingLoop = function() {
|
|
while (!this.stopped)
|
|
this._iterateParsingLoop();
|
|
};
|
|
Parser.prototype._setupTokenizerCDATAMode = function() {
|
|
var current = this._getAdjustedCurrentElement();
|
|
this.tokenizer.allowCDATA = current && current !== this.document && this.treeAdapter.getNamespaceURI(current) !== NS.HTML && (!this._isHtmlIntegrationPoint(current)) && (!this._isMathMLTextIntegrationPoint(current));
|
|
};
|
|
Parser.prototype._switchToTextParsing = function(currentToken, nextTokenizerState) {
|
|
this._insertElement(currentToken, NS.HTML);
|
|
this.tokenizer.state = nextTokenizerState;
|
|
this.originalInsertionMode = this.insertionMode;
|
|
this.insertionMode = TEXT_MODE;
|
|
};
|
|
Parser.prototype._getAdjustedCurrentElement = function() {
|
|
return this.openElements.stackTop === 0 && this.fragmentContext ? this.fragmentContext : this.openElements.current;
|
|
};
|
|
Parser.prototype._findFormInFragmentContext = function() {
|
|
var node = this.fragmentContext;
|
|
do {
|
|
if (this.treeAdapter.getTagName(node) === $.FORM) {
|
|
this.formElement = node;
|
|
break;
|
|
}
|
|
node = this.treeAdapter.getParentNode(node);
|
|
} while (node);
|
|
};
|
|
Parser.prototype._initTokenizerForFragmentParsing = function() {
|
|
var tn = this.treeAdapter.getTagName(this.fragmentContext);
|
|
if (tn === $.TITLE || tn === $.TEXTAREA)
|
|
this.tokenizer.state = Tokenizer.RCDATA_STATE;
|
|
else if (tn === $.STYLE || tn === $.XMP || tn === $.IFRAME || tn === $.NOEMBED || tn === $.NOFRAMES || tn === $.NOSCRIPT) {
|
|
this.tokenizer.state = Tokenizer.RAWTEXT_STATE;
|
|
} else if (tn === $.SCRIPT)
|
|
this.tokenizer.state = Tokenizer.SCRIPT_DATA_STATE;
|
|
else if (tn === $.PLAINTEXT)
|
|
this.tokenizer.state = Tokenizer.PLAINTEXT_STATE;
|
|
};
|
|
Parser.prototype._setDocumentType = function(token) {
|
|
this.treeAdapter.setDocumentType(this.document, token.name, token.publicId, token.systemId);
|
|
};
|
|
Parser.prototype._attachElementToTree = function(element) {
|
|
if (this.fosterParentingEnabled && this._isElementCausesFosterParenting(this.openElements.current))
|
|
this._fosterParentElement(element);
|
|
else {
|
|
var parent = this.openElements.currentTmplContent || this.openElements.current;
|
|
this.treeAdapter.appendChild(parent, element);
|
|
}
|
|
};
|
|
Parser.prototype._appendElement = function(token, namespaceURI) {
|
|
var element = this.treeAdapter.createElement(token.tagName, namespaceURI, token.attrs);
|
|
this._attachElementToTree(element);
|
|
};
|
|
Parser.prototype._insertElement = function(token, namespaceURI) {
|
|
var element = this.treeAdapter.createElement(token.tagName, namespaceURI, token.attrs);
|
|
this._attachElementToTree(element);
|
|
this.openElements.push(element);
|
|
};
|
|
Parser.prototype._insertTemplate = function(token) {
|
|
var tmpl = this.treeAdapter.createElement(token.tagName, NS.HTML, token.attrs),
|
|
content = this.treeAdapter.createDocumentFragment();
|
|
this.treeAdapter.appendChild(tmpl, content);
|
|
this._attachElementToTree(tmpl);
|
|
this.openElements.push(tmpl);
|
|
};
|
|
Parser.prototype._insertFakeRootElement = function() {
|
|
var element = this.treeAdapter.createElement($.HTML, NS.HTML, []);
|
|
this.treeAdapter.appendChild(this.openElements.current, element);
|
|
this.openElements.push(element);
|
|
};
|
|
Parser.prototype._appendCommentNode = function(token, parent) {
|
|
var commentNode = this.treeAdapter.createCommentNode(token.data);
|
|
this.treeAdapter.appendChild(parent, commentNode);
|
|
};
|
|
Parser.prototype._insertCharacters = function(token) {
|
|
if (this.fosterParentingEnabled && this._isElementCausesFosterParenting(this.openElements.current))
|
|
this._fosterParentText(token.chars);
|
|
else {
|
|
var parent = this.openElements.currentTmplContent || this.openElements.current;
|
|
this.treeAdapter.insertText(parent, token.chars);
|
|
}
|
|
};
|
|
Parser.prototype._adoptNodes = function(donor, recipient) {
|
|
while (true) {
|
|
var child = this.treeAdapter.getFirstChild(donor);
|
|
if (!child)
|
|
break;
|
|
this.treeAdapter.detachNode(child);
|
|
this.treeAdapter.appendChild(recipient, child);
|
|
}
|
|
};
|
|
Parser.prototype._shouldProcessTokenInForeignContent = function(token) {
|
|
var current = this._getAdjustedCurrentElement();
|
|
if (!current || current === this.document)
|
|
return false;
|
|
var ns = this.treeAdapter.getNamespaceURI(current);
|
|
if (ns === NS.HTML)
|
|
return false;
|
|
if (this.treeAdapter.getTagName(current) === $.ANNOTATION_XML && ns === NS.MATHML && token.type === Tokenizer.START_TAG_TOKEN && token.tagName === $.SVG) {
|
|
return false;
|
|
}
|
|
var isCharacterToken = token.type === Tokenizer.CHARACTER_TOKEN || token.type === Tokenizer.NULL_CHARACTER_TOKEN || token.type === Tokenizer.WHITESPACE_CHARACTER_TOKEN,
|
|
isMathMLTextStartTag = token.type === Tokenizer.START_TAG_TOKEN && token.tagName !== $.MGLYPH && token.tagName !== $.MALIGNMARK;
|
|
if ((isMathMLTextStartTag || isCharacterToken) && this._isMathMLTextIntegrationPoint(current))
|
|
return false;
|
|
if ((token.type === Tokenizer.START_TAG_TOKEN || isCharacterToken) && this._isHtmlIntegrationPoint(current))
|
|
return false;
|
|
return token.type !== Tokenizer.EOF_TOKEN;
|
|
};
|
|
Parser.prototype._processToken = function(token) {
|
|
_[this.insertionMode][token.type](this, token);
|
|
};
|
|
Parser.prototype._processTokenInBodyMode = function(token) {
|
|
_[IN_BODY_MODE][token.type](this, token);
|
|
};
|
|
Parser.prototype._processTokenInForeignContent = function(token) {
|
|
if (token.type === Tokenizer.CHARACTER_TOKEN)
|
|
characterInForeignContent(this, token);
|
|
else if (token.type === Tokenizer.NULL_CHARACTER_TOKEN)
|
|
nullCharacterInForeignContent(this, token);
|
|
else if (token.type === Tokenizer.WHITESPACE_CHARACTER_TOKEN)
|
|
insertCharacters(this, token);
|
|
else if (token.type === Tokenizer.COMMENT_TOKEN)
|
|
appendComment(this, token);
|
|
else if (token.type === Tokenizer.START_TAG_TOKEN)
|
|
startTagInForeignContent(this, token);
|
|
else if (token.type === Tokenizer.END_TAG_TOKEN)
|
|
endTagInForeignContent(this, token);
|
|
};
|
|
Parser.prototype._processFakeStartTagWithAttrs = function(tagName, attrs) {
|
|
var fakeToken = this.tokenizer.buildStartTagToken(tagName);
|
|
fakeToken.attrs = attrs;
|
|
this._processToken(fakeToken);
|
|
};
|
|
Parser.prototype._processFakeStartTag = function(tagName) {
|
|
var fakeToken = this.tokenizer.buildStartTagToken(tagName);
|
|
this._processToken(fakeToken);
|
|
return fakeToken;
|
|
};
|
|
Parser.prototype._processFakeEndTag = function(tagName) {
|
|
var fakeToken = this.tokenizer.buildEndTagToken(tagName);
|
|
this._processToken(fakeToken);
|
|
return fakeToken;
|
|
};
|
|
Parser.prototype._isMathMLTextIntegrationPoint = function(element) {
|
|
var tn = this.treeAdapter.getTagName(element),
|
|
ns = this.treeAdapter.getNamespaceURI(element);
|
|
return ForeignContent.isMathMLTextIntegrationPoint(tn, ns);
|
|
};
|
|
Parser.prototype._isHtmlIntegrationPoint = function(element) {
|
|
var tn = this.treeAdapter.getTagName(element),
|
|
ns = this.treeAdapter.getNamespaceURI(element),
|
|
attrs = this.treeAdapter.getAttrList(element);
|
|
return ForeignContent.isHtmlIntegrationPoint(tn, ns, attrs);
|
|
};
|
|
Parser.prototype._reconstructActiveFormattingElements = function() {
|
|
var listLength = this.activeFormattingElements.length;
|
|
if (listLength) {
|
|
var unopenIdx = listLength,
|
|
entry = null;
|
|
do {
|
|
unopenIdx--;
|
|
entry = this.activeFormattingElements.entries[unopenIdx];
|
|
if (entry.type === FormattingElementList.MARKER_ENTRY || this.openElements.contains(entry.element)) {
|
|
unopenIdx++;
|
|
break;
|
|
}
|
|
} while (unopenIdx > 0);
|
|
for (var i = unopenIdx; i < listLength; i++) {
|
|
entry = this.activeFormattingElements.entries[i];
|
|
this._insertElement(entry.token, this.treeAdapter.getNamespaceURI(entry.element));
|
|
entry.element = this.openElements.current;
|
|
}
|
|
}
|
|
};
|
|
Parser.prototype._closeTableCell = function() {
|
|
if (this.openElements.hasInTableScope($.TD))
|
|
this._processFakeEndTag($.TD);
|
|
else
|
|
this._processFakeEndTag($.TH);
|
|
};
|
|
Parser.prototype._closePElement = function() {
|
|
this.openElements.generateImpliedEndTagsWithExclusion($.P);
|
|
this.openElements.popUntilTagNamePopped($.P);
|
|
};
|
|
Parser.prototype._resetInsertionMode = function() {
|
|
for (var i = this.openElements.stackTop,
|
|
last = false; i >= 0; i--) {
|
|
var element = this.openElements.items[i];
|
|
if (i === 0) {
|
|
last = true;
|
|
if (this.fragmentContext)
|
|
element = this.fragmentContext;
|
|
}
|
|
var tn = this.treeAdapter.getTagName(element),
|
|
newInsertionMode = INSERTION_MODE_RESET_MAP[tn];
|
|
if (newInsertionMode) {
|
|
this.insertionMode = newInsertionMode;
|
|
break;
|
|
} else if (!last && (tn === $.TD || tn === $.TH)) {
|
|
this.insertionMode = IN_CELL_MODE;
|
|
break;
|
|
} else if (!last && tn === $.HEAD) {
|
|
this.insertionMode = IN_HEAD_MODE;
|
|
break;
|
|
} else if (tn === $.SELECT) {
|
|
this._resetInsertionModeForSelect(i);
|
|
break;
|
|
} else if (tn === $.TEMPLATE) {
|
|
this.insertionMode = this.currentTmplInsertionMode;
|
|
break;
|
|
} else if (tn === $.HTML) {
|
|
this.insertionMode = this.headElement ? AFTER_HEAD_MODE : BEFORE_HEAD_MODE;
|
|
break;
|
|
} else if (last) {
|
|
this.insertionMode = IN_BODY_MODE;
|
|
break;
|
|
}
|
|
}
|
|
};
|
|
Parser.prototype._resetInsertionModeForSelect = function(selectIdx) {
|
|
if (selectIdx > 0) {
|
|
for (var i = selectIdx - 1; i > 0; i--) {
|
|
var ancestor = this.openElements.items[i],
|
|
tn = this.treeAdapter.getTagName(ancestor);
|
|
if (tn === $.TEMPLATE)
|
|
break;
|
|
else if (tn === $.TABLE) {
|
|
this.insertionMode = IN_SELECT_IN_TABLE_MODE;
|
|
return ;
|
|
}
|
|
}
|
|
}
|
|
this.insertionMode = IN_SELECT_MODE;
|
|
};
|
|
Parser.prototype._pushTmplInsertionMode = function(mode) {
|
|
this.tmplInsertionModeStack.push(mode);
|
|
this.tmplInsertionModeStackTop++;
|
|
this.currentTmplInsertionMode = mode;
|
|
};
|
|
Parser.prototype._popTmplInsertionMode = function() {
|
|
this.tmplInsertionModeStack.pop();
|
|
this.tmplInsertionModeStackTop--;
|
|
this.currentTmplInsertionMode = this.tmplInsertionModeStack[this.tmplInsertionModeStackTop];
|
|
};
|
|
Parser.prototype._isElementCausesFosterParenting = function(element) {
|
|
var tn = this.treeAdapter.getTagName(element);
|
|
return tn === $.TABLE || tn === $.TBODY || tn === $.TFOOT || tn == $.THEAD || tn === $.TR;
|
|
};
|
|
Parser.prototype._findFosterParentingLocation = function() {
|
|
var location = {
|
|
parent: null,
|
|
beforeElement: null
|
|
};
|
|
for (var i = this.openElements.stackTop; i >= 0; i--) {
|
|
var openElement = this.openElements.items[i],
|
|
tn = this.treeAdapter.getTagName(openElement),
|
|
ns = this.treeAdapter.getNamespaceURI(openElement);
|
|
if (tn === $.TEMPLATE && ns === NS.HTML) {
|
|
location.parent = this.treeAdapter.getChildNodes(openElement)[0];
|
|
break;
|
|
} else if (tn === $.TABLE) {
|
|
location.parent = this.treeAdapter.getParentNode(openElement);
|
|
if (location.parent)
|
|
location.beforeElement = openElement;
|
|
else
|
|
location.parent = this.openElements.items[i - 1];
|
|
break;
|
|
}
|
|
}
|
|
if (!location.parent)
|
|
location.parent = this.openElements.items[0];
|
|
return location;
|
|
};
|
|
Parser.prototype._fosterParentElement = function(element) {
|
|
var location = this._findFosterParentingLocation();
|
|
if (location.beforeElement)
|
|
this.treeAdapter.insertBefore(location.parent, element, location.beforeElement);
|
|
else
|
|
this.treeAdapter.appendChild(location.parent, element);
|
|
};
|
|
Parser.prototype._fosterParentText = function(chars) {
|
|
var location = this._findFosterParentingLocation();
|
|
if (location.beforeElement)
|
|
this.treeAdapter.insertTextBefore(location.parent, chars, location.beforeElement);
|
|
else
|
|
this.treeAdapter.insertText(location.parent, chars);
|
|
};
|
|
Parser.prototype._isSpecialElement = function(element) {
|
|
var tn = this.treeAdapter.getTagName(element),
|
|
ns = this.treeAdapter.getNamespaceURI(element);
|
|
return HTML.SPECIAL_ELEMENTS[ns][tn];
|
|
};
|
|
function aaObtainFormattingElementEntry(p, token) {
|
|
var formattingElementEntry = p.activeFormattingElements.getElementEntryInScopeWithTagName(token.tagName);
|
|
if (formattingElementEntry) {
|
|
if (!p.openElements.contains(formattingElementEntry.element)) {
|
|
p.activeFormattingElements.removeEntry(formattingElementEntry);
|
|
formattingElementEntry = null;
|
|
} else if (!p.openElements.hasInScope(token.tagName))
|
|
formattingElementEntry = null;
|
|
} else
|
|
genericEndTagInBody(p, token);
|
|
return formattingElementEntry;
|
|
}
|
|
function aaObtainFurthestBlock(p, formattingElementEntry) {
|
|
var furthestBlock = null;
|
|
for (var i = p.openElements.stackTop; i >= 0; i--) {
|
|
var element = p.openElements.items[i];
|
|
if (element === formattingElementEntry.element)
|
|
break;
|
|
if (p._isSpecialElement(element))
|
|
furthestBlock = element;
|
|
}
|
|
if (!furthestBlock) {
|
|
p.openElements.popUntilElementPopped(formattingElementEntry.element);
|
|
p.activeFormattingElements.removeEntry(formattingElementEntry);
|
|
}
|
|
return furthestBlock;
|
|
}
|
|
function aaInnerLoop(p, furthestBlock, formattingElement) {
|
|
var element = null,
|
|
lastElement = furthestBlock,
|
|
nextElement = p.openElements.getCommonAncestor(furthestBlock);
|
|
for (var i = 0; i < AA_INNER_LOOP_ITER; i++) {
|
|
element = nextElement;
|
|
nextElement = p.openElements.getCommonAncestor(element);
|
|
var elementEntry = p.activeFormattingElements.getElementEntry(element);
|
|
if (!elementEntry) {
|
|
p.openElements.remove(element);
|
|
continue;
|
|
}
|
|
if (element === formattingElement)
|
|
break;
|
|
element = aaRecreateElementFromEntry(p, elementEntry);
|
|
if (lastElement === furthestBlock)
|
|
p.activeFormattingElements.bookmark = elementEntry;
|
|
p.treeAdapter.detachNode(lastElement);
|
|
p.treeAdapter.appendChild(element, lastElement);
|
|
lastElement = element;
|
|
}
|
|
return lastElement;
|
|
}
|
|
function aaRecreateElementFromEntry(p, elementEntry) {
|
|
var ns = p.treeAdapter.getNamespaceURI(elementEntry.element),
|
|
newElement = p.treeAdapter.createElement(elementEntry.token.tagName, ns, elementEntry.token.attrs);
|
|
p.openElements.replace(elementEntry.element, newElement);
|
|
elementEntry.element = newElement;
|
|
return newElement;
|
|
}
|
|
function aaInsertLastNodeInCommonAncestor(p, commonAncestor, lastElement) {
|
|
if (p._isElementCausesFosterParenting(commonAncestor))
|
|
p._fosterParentElement(lastElement);
|
|
else {
|
|
var tn = p.treeAdapter.getTagName(commonAncestor),
|
|
ns = p.treeAdapter.getNamespaceURI(commonAncestor);
|
|
if (tn === $.TEMPLATE && ns === NS.HTML)
|
|
commonAncestor = p.treeAdapter.getChildNodes(commonAncestor)[0];
|
|
p.treeAdapter.appendChild(commonAncestor, lastElement);
|
|
}
|
|
}
|
|
function aaReplaceFormattingElement(p, furthestBlock, formattingElementEntry) {
|
|
var ns = p.treeAdapter.getNamespaceURI(formattingElementEntry.element),
|
|
token = formattingElementEntry.token,
|
|
newElement = p.treeAdapter.createElement(token.tagName, ns, token.attrs);
|
|
p._adoptNodes(furthestBlock, newElement);
|
|
p.treeAdapter.appendChild(furthestBlock, newElement);
|
|
p.activeFormattingElements.insertElementAfterBookmark(newElement, formattingElementEntry.token);
|
|
p.activeFormattingElements.removeEntry(formattingElementEntry);
|
|
p.openElements.remove(formattingElementEntry.element);
|
|
p.openElements.insertAfter(furthestBlock, newElement);
|
|
}
|
|
function callAdoptionAgency(p, token) {
|
|
for (var i = 0; i < AA_OUTER_LOOP_ITER; i++) {
|
|
var formattingElementEntry = aaObtainFormattingElementEntry(p, token, formattingElementEntry);
|
|
if (!formattingElementEntry)
|
|
break;
|
|
var furthestBlock = aaObtainFurthestBlock(p, formattingElementEntry);
|
|
if (!furthestBlock)
|
|
break;
|
|
p.activeFormattingElements.bookmark = formattingElementEntry;
|
|
var lastElement = aaInnerLoop(p, furthestBlock, formattingElementEntry.element),
|
|
commonAncestor = p.openElements.getCommonAncestor(formattingElementEntry.element);
|
|
p.treeAdapter.detachNode(lastElement);
|
|
aaInsertLastNodeInCommonAncestor(p, commonAncestor, lastElement);
|
|
aaReplaceFormattingElement(p, furthestBlock, formattingElementEntry);
|
|
}
|
|
}
|
|
function ignoreToken(p, token) {}
|
|
function appendComment(p, token) {
|
|
p._appendCommentNode(token, p.openElements.currentTmplContent || p.openElements.current);
|
|
}
|
|
function appendCommentToRootHtmlElement(p, token) {
|
|
p._appendCommentNode(token, p.openElements.items[0]);
|
|
}
|
|
function appendCommentToDocument(p, token) {
|
|
p._appendCommentNode(token, p.document);
|
|
}
|
|
function insertCharacters(p, token) {
|
|
p._insertCharacters(token);
|
|
}
|
|
function stopParsing(p, token) {
|
|
p.stopped = true;
|
|
}
|
|
function doctypeInInitialMode(p, token) {
|
|
p._setDocumentType(token);
|
|
if (token.forceQuirks || Doctype.isQuirks(token.name, token.publicId, token.systemId))
|
|
p.treeAdapter.setQuirksMode(p.document);
|
|
p.insertionMode = BEFORE_HTML_MODE;
|
|
}
|
|
function tokenInInitialMode(p, token) {
|
|
p.treeAdapter.setQuirksMode(p.document);
|
|
p.insertionMode = BEFORE_HTML_MODE;
|
|
p._processToken(token);
|
|
}
|
|
function startTagBeforeHtml(p, token) {
|
|
if (token.tagName === $.HTML) {
|
|
p._insertElement(token, NS.HTML);
|
|
p.insertionMode = BEFORE_HEAD_MODE;
|
|
} else
|
|
tokenBeforeHtml(p, token);
|
|
}
|
|
function endTagBeforeHtml(p, token) {
|
|
var tn = token.tagName;
|
|
if (tn === $.HTML || tn === $.HEAD || tn === $.BODY || tn === $.BR)
|
|
tokenBeforeHtml(p, token);
|
|
}
|
|
function tokenBeforeHtml(p, token) {
|
|
p._insertFakeRootElement();
|
|
p.insertionMode = BEFORE_HEAD_MODE;
|
|
p._processToken(token);
|
|
}
|
|
function startTagBeforeHead(p, token) {
|
|
var tn = token.tagName;
|
|
if (tn === $.HTML)
|
|
startTagInBody(p, token);
|
|
else if (tn === $.HEAD) {
|
|
p._insertElement(token, NS.HTML);
|
|
p.headElement = p.openElements.current;
|
|
p.insertionMode = IN_HEAD_MODE;
|
|
} else
|
|
tokenBeforeHead(p, token);
|
|
}
|
|
function endTagBeforeHead(p, token) {
|
|
var tn = token.tagName;
|
|
if (tn === $.HEAD || tn === $.BODY || tn === $.HTML || tn === $.BR)
|
|
tokenBeforeHead(p, token);
|
|
}
|
|
function tokenBeforeHead(p, token) {
|
|
p._processFakeStartTag($.HEAD);
|
|
p._processToken(token);
|
|
}
|
|
function startTagInHead(p, token) {
|
|
var tn = token.tagName;
|
|
if (tn === $.HTML)
|
|
startTagInBody(p, token);
|
|
else if (tn === $.BASE || tn === $.BASEFONT || tn === $.BGSOUND || tn === $.COMMAND || tn === $.LINK || tn === $.META) {
|
|
p._appendElement(token, NS.HTML);
|
|
} else if (tn === $.TITLE)
|
|
p._switchToTextParsing(token, Tokenizer.RCDATA_STATE);
|
|
else if (tn === $.NOSCRIPT || tn === $.NOFRAMES || tn === $.STYLE)
|
|
p._switchToTextParsing(token, Tokenizer.RAWTEXT_STATE);
|
|
else if (tn === $.SCRIPT) {
|
|
p._insertElement(token, NS.HTML);
|
|
p.tokenizer.state = Tokenizer.SCRIPT_DATA_STATE;
|
|
p.originalInsertionMode = p.insertionMode;
|
|
p.insertionMode = TEXT_MODE;
|
|
} else if (tn === $.TEMPLATE) {
|
|
p._insertTemplate(token, NS.HTML);
|
|
p.activeFormattingElements.insertMarker();
|
|
p.framesetOk = false;
|
|
p.insertionMode = IN_TEMPLATE_MODE;
|
|
p._pushTmplInsertionMode(IN_TEMPLATE_MODE);
|
|
} else if (tn !== $.HEAD)
|
|
tokenInHead(p, token);
|
|
}
|
|
function endTagInHead(p, token) {
|
|
var tn = token.tagName;
|
|
if (tn === $.HEAD) {
|
|
p.openElements.pop();
|
|
p.insertionMode = AFTER_HEAD_MODE;
|
|
} else if (tn === $.BODY || tn === $.BR || tn === $.HTML)
|
|
tokenInHead(p, token);
|
|
else if (tn === $.TEMPLATE && p.openElements.tmplCount > 0) {
|
|
p.openElements.generateImpliedEndTags();
|
|
p.openElements.popUntilTemplatePopped();
|
|
p.activeFormattingElements.clearToLastMarker();
|
|
p._popTmplInsertionMode();
|
|
p._resetInsertionMode();
|
|
}
|
|
}
|
|
function tokenInHead(p, token) {
|
|
p._processFakeEndTag($.HEAD);
|
|
p._processToken(token);
|
|
}
|
|
function startTagAfterHead(p, token) {
|
|
var tn = token.tagName;
|
|
if (tn === $.HTML)
|
|
startTagInBody(p, token);
|
|
else if (tn === $.BODY) {
|
|
p._insertElement(token, NS.HTML);
|
|
p.framesetOk = false;
|
|
p.insertionMode = IN_BODY_MODE;
|
|
} else if (tn === $.FRAMESET) {
|
|
p._insertElement(token, NS.HTML);
|
|
p.insertionMode = IN_FRAMESET_MODE;
|
|
} else if (tn === $.BASE || tn === $.BASEFONT || tn === $.BGSOUND || tn === $.LINK || tn === $.META || tn === $.NOFRAMES || tn === $.SCRIPT || tn === $.STYLE || tn === $.TEMPLATE || tn === $.TITLE) {
|
|
p.openElements.push(p.headElement);
|
|
startTagInHead(p, token);
|
|
p.openElements.remove(p.headElement);
|
|
} else if (tn !== $.HEAD)
|
|
tokenAfterHead(p, token);
|
|
}
|
|
function endTagAfterHead(p, token) {
|
|
var tn = token.tagName;
|
|
if (tn === $.BODY || tn === $.HTML || tn === $.BR)
|
|
tokenAfterHead(p, token);
|
|
else if (tn === $.TEMPLATE)
|
|
endTagInHead(p, token);
|
|
}
|
|
function tokenAfterHead(p, token) {
|
|
p._processFakeStartTag($.BODY);
|
|
p.framesetOk = true;
|
|
p._processToken(token);
|
|
}
|
|
function whitespaceCharacterInBody(p, token) {
|
|
p._reconstructActiveFormattingElements();
|
|
p._insertCharacters(token);
|
|
}
|
|
function characterInBody(p, token) {
|
|
p._reconstructActiveFormattingElements();
|
|
p._insertCharacters(token);
|
|
p.framesetOk = false;
|
|
}
|
|
function htmlStartTagInBody(p, token) {
|
|
if (p.openElements.tmplCount === 0)
|
|
p.treeAdapter.adoptAttributes(p.openElements.items[0], token.attrs);
|
|
}
|
|
function bodyStartTagInBody(p, token) {
|
|
var bodyElement = p.openElements.tryPeekProperlyNestedBodyElement();
|
|
if (bodyElement && p.openElements.tmplCount === 0) {
|
|
p.framesetOk = false;
|
|
p.treeAdapter.adoptAttributes(bodyElement, token.attrs);
|
|
}
|
|
}
|
|
function framesetStartTagInBody(p, token) {
|
|
var bodyElement = p.openElements.tryPeekProperlyNestedBodyElement();
|
|
if (p.framesetOk && bodyElement) {
|
|
p.treeAdapter.detachNode(bodyElement);
|
|
p.openElements.popAllUpToHtmlElement();
|
|
p._insertElement(token, NS.HTML);
|
|
p.insertionMode = IN_FRAMESET_MODE;
|
|
}
|
|
}
|
|
function addressStartTagInBody(p, token) {
|
|
if (p.openElements.hasInButtonScope($.P))
|
|
p._closePElement();
|
|
p._insertElement(token, NS.HTML);
|
|
}
|
|
function numberedHeaderStartTagInBody(p, token) {
|
|
if (p.openElements.hasInButtonScope($.P))
|
|
p._closePElement();
|
|
var tn = p.openElements.currentTagName;
|
|
if (tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6)
|
|
p.openElements.pop();
|
|
p._insertElement(token, NS.HTML);
|
|
}
|
|
function preStartTagInBody(p, token) {
|
|
if (p.openElements.hasInButtonScope($.P))
|
|
p._closePElement();
|
|
p._insertElement(token, NS.HTML);
|
|
p.skipNextNewLine = true;
|
|
p.framesetOk = false;
|
|
}
|
|
function formStartTagInBody(p, token) {
|
|
var inTemplate = p.openElements.tmplCount > 0;
|
|
if (!p.formElement || inTemplate) {
|
|
if (p.openElements.hasInButtonScope($.P))
|
|
p._closePElement();
|
|
p._insertElement(token, NS.HTML);
|
|
if (!inTemplate)
|
|
p.formElement = p.openElements.current;
|
|
}
|
|
}
|
|
function listItemStartTagInBody(p, token) {
|
|
p.framesetOk = false;
|
|
for (var i = p.openElements.stackTop; i >= 0; i--) {
|
|
var element = p.openElements.items[i],
|
|
tn = p.treeAdapter.getTagName(element);
|
|
if ((token.tagName === $.LI && tn === $.LI) || ((token.tagName === $.DD || token.tagName === $.DT) && (tn === $.DD || tn == $.DT))) {
|
|
p._processFakeEndTag(tn);
|
|
break;
|
|
}
|
|
if (tn !== $.ADDRESS && tn !== $.DIV && tn !== $.P && p._isSpecialElement(element))
|
|
break;
|
|
}
|
|
if (p.openElements.hasInButtonScope($.P))
|
|
p._closePElement();
|
|
p._insertElement(token, NS.HTML);
|
|
}
|
|
function plaintextStartTagInBody(p, token) {
|
|
if (p.openElements.hasInButtonScope($.P))
|
|
p._closePElement();
|
|
p._insertElement(token, NS.HTML);
|
|
p.tokenizer.state = Tokenizer.PLAINTEXT_STATE;
|
|
}
|
|
function buttonStartTagInBody(p, token) {
|
|
if (p.openElements.hasInScope($.BUTTON)) {
|
|
p._processFakeEndTag($.BUTTON);
|
|
buttonStartTagInBody(p, token);
|
|
} else {
|
|
p._reconstructActiveFormattingElements();
|
|
p._insertElement(token, NS.HTML);
|
|
p.framesetOk = false;
|
|
}
|
|
}
|
|
function aStartTagInBody(p, token) {
|
|
var activeElementEntry = p.activeFormattingElements.getElementEntryInScopeWithTagName($.A);
|
|
if (activeElementEntry) {
|
|
p._processFakeEndTag($.A);
|
|
p.openElements.remove(activeElementEntry.element);
|
|
p.activeFormattingElements.removeEntry(activeElementEntry);
|
|
}
|
|
p._reconstructActiveFormattingElements();
|
|
p._insertElement(token, NS.HTML);
|
|
p.activeFormattingElements.pushElement(p.openElements.current, token);
|
|
}
|
|
function bStartTagInBody(p, token) {
|
|
p._reconstructActiveFormattingElements();
|
|
p._insertElement(token, NS.HTML);
|
|
p.activeFormattingElements.pushElement(p.openElements.current, token);
|
|
}
|
|
function nobrStartTagInBody(p, token) {
|
|
p._reconstructActiveFormattingElements();
|
|
if (p.openElements.hasInScope($.NOBR)) {
|
|
p._processFakeEndTag($.NOBR);
|
|
p._reconstructActiveFormattingElements();
|
|
}
|
|
p._insertElement(token, NS.HTML);
|
|
p.activeFormattingElements.pushElement(p.openElements.current, token);
|
|
}
|
|
function appletStartTagInBody(p, token) {
|
|
p._reconstructActiveFormattingElements();
|
|
p._insertElement(token, NS.HTML);
|
|
p.activeFormattingElements.insertMarker();
|
|
p.framesetOk = false;
|
|
}
|
|
function tableStartTagInBody(p, token) {
|
|
if (!p.treeAdapter.isQuirksMode(p.document) && p.openElements.hasInButtonScope($.P))
|
|
p._closePElement();
|
|
p._insertElement(token, NS.HTML);
|
|
p.framesetOk = false;
|
|
p.insertionMode = IN_TABLE_MODE;
|
|
}
|
|
function areaStartTagInBody(p, token) {
|
|
p._reconstructActiveFormattingElements();
|
|
p._appendElement(token, NS.HTML);
|
|
p.framesetOk = false;
|
|
}
|
|
function inputStartTagInBody(p, token) {
|
|
p._reconstructActiveFormattingElements();
|
|
p._appendElement(token, NS.HTML);
|
|
var inputType = Tokenizer.getTokenAttr(token, ATTRS.TYPE);
|
|
if (!inputType || inputType.toLowerCase() !== HIDDEN_INPUT_TYPE)
|
|
p.framesetOk = false;
|
|
}
|
|
function paramStartTagInBody(p, token) {
|
|
p._appendElement(token, NS.HTML);
|
|
}
|
|
function hrStartTagInBody(p, token) {
|
|
if (p.openElements.hasInButtonScope($.P))
|
|
p._closePElement();
|
|
p._appendElement(token, NS.HTML);
|
|
p.framesetOk = false;
|
|
}
|
|
function imageStartTagInBody(p, token) {
|
|
token.tagName = $.IMG;
|
|
areaStartTagInBody(p, token);
|
|
}
|
|
function isindexStartTagInBody(p, token) {
|
|
if (!p.formElement || p.openElements.tmplCount > 0) {
|
|
p._processFakeStartTagWithAttrs($.FORM, getSearchableIndexFormAttrs(token));
|
|
p._processFakeStartTag($.HR);
|
|
p._processFakeStartTag($.LABEL);
|
|
p.treeAdapter.insertText(p.openElements.current, getSearchableIndexLabelText(token));
|
|
p._processFakeStartTagWithAttrs($.INPUT, getSearchableIndexInputAttrs(token));
|
|
p._processFakeEndTag($.LABEL);
|
|
p._processFakeStartTag($.HR);
|
|
p._processFakeEndTag($.FORM);
|
|
}
|
|
}
|
|
function textareaStartTagInBody(p, token) {
|
|
p._insertElement(token, NS.HTML);
|
|
p.skipNextNewLine = true;
|
|
p.tokenizer.state = Tokenizer.RCDATA_STATE;
|
|
p.originalInsertionMode = p.insertionMode;
|
|
p.framesetOk = false;
|
|
p.insertionMode = TEXT_MODE;
|
|
}
|
|
function xmpStartTagInBody(p, token) {
|
|
if (p.openElements.hasInButtonScope($.P))
|
|
p._closePElement();
|
|
p._reconstructActiveFormattingElements();
|
|
p.framesetOk = false;
|
|
p._switchToTextParsing(token, Tokenizer.RAWTEXT_STATE);
|
|
}
|
|
function iframeStartTagInBody(p, token) {
|
|
p.framesetOk = false;
|
|
p._switchToTextParsing(token, Tokenizer.RAWTEXT_STATE);
|
|
}
|
|
function noembedStartTagInBody(p, token) {
|
|
p._switchToTextParsing(token, Tokenizer.RAWTEXT_STATE);
|
|
}
|
|
function selectStartTagInBody(p, token) {
|
|
p._reconstructActiveFormattingElements();
|
|
p._insertElement(token, NS.HTML);
|
|
p.framesetOk = false;
|
|
if (p.insertionMode === IN_TABLE_MODE || p.insertionMode === IN_CAPTION_MODE || p.insertionMode === IN_TABLE_BODY_MODE || p.insertionMode === IN_ROW_MODE || p.insertionMode === IN_CELL_MODE) {
|
|
p.insertionMode = IN_SELECT_IN_TABLE_MODE;
|
|
} else
|
|
p.insertionMode = IN_SELECT_MODE;
|
|
}
|
|
function optgroupStartTagInBody(p, token) {
|
|
if (p.openElements.currentTagName === $.OPTION)
|
|
p._processFakeEndTag($.OPTION);
|
|
p._reconstructActiveFormattingElements();
|
|
p._insertElement(token, NS.HTML);
|
|
}
|
|
function rpStartTagInBody(p, token) {
|
|
if (p.openElements.hasInScope($.RUBY))
|
|
p.openElements.generateImpliedEndTags();
|
|
p._insertElement(token, NS.HTML);
|
|
}
|
|
function menuitemStartTagInBody(p, token) {
|
|
p._appendElement(token, NS.HTML);
|
|
}
|
|
function mathStartTagInBody(p, token) {
|
|
p._reconstructActiveFormattingElements();
|
|
ForeignContent.adjustTokenMathMLAttrs(token);
|
|
ForeignContent.adjustTokenXMLAttrs(token);
|
|
if (token.selfClosing)
|
|
p._appendElement(token, NS.MATHML);
|
|
else
|
|
p._insertElement(token, NS.MATHML);
|
|
}
|
|
function svgStartTagInBody(p, token) {
|
|
p._reconstructActiveFormattingElements();
|
|
ForeignContent.adjustTokenSVGAttrs(token);
|
|
ForeignContent.adjustTokenXMLAttrs(token);
|
|
if (token.selfClosing)
|
|
p._appendElement(token, NS.SVG);
|
|
else
|
|
p._insertElement(token, NS.SVG);
|
|
}
|
|
function genericStartTagInBody(p, token) {
|
|
p._reconstructActiveFormattingElements();
|
|
p._insertElement(token, NS.HTML);
|
|
}
|
|
function startTagInBody(p, token) {
|
|
var tn = token.tagName;
|
|
switch (tn.length) {
|
|
case 1:
|
|
if (tn === $.I || tn === $.S || tn === $.B || tn === $.U)
|
|
bStartTagInBody(p, token);
|
|
else if (tn === $.P)
|
|
addressStartTagInBody(p, token);
|
|
else if (tn === $.A)
|
|
aStartTagInBody(p, token);
|
|
else
|
|
genericStartTagInBody(p, token);
|
|
break;
|
|
case 2:
|
|
if (tn === $.DL || tn === $.OL || tn === $.UL)
|
|
addressStartTagInBody(p, token);
|
|
else if (tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6)
|
|
numberedHeaderStartTagInBody(p, token);
|
|
else if (tn === $.LI || tn === $.DD || tn === $.DT)
|
|
listItemStartTagInBody(p, token);
|
|
else if (tn === $.EM || tn === $.TT)
|
|
bStartTagInBody(p, token);
|
|
else if (tn === $.BR)
|
|
areaStartTagInBody(p, token);
|
|
else if (tn === $.HR)
|
|
hrStartTagInBody(p, token);
|
|
else if (tn === $.RP || tn === $.RT)
|
|
rpStartTagInBody(p, token);
|
|
else if (tn !== $.TH && tn !== $.TD && tn !== $.TR)
|
|
genericStartTagInBody(p, token);
|
|
break;
|
|
case 3:
|
|
if (tn === $.DIV || tn === $.DIR || tn === $.NAV)
|
|
addressStartTagInBody(p, token);
|
|
else if (tn === $.PRE)
|
|
preStartTagInBody(p, token);
|
|
else if (tn === $.BIG)
|
|
bStartTagInBody(p, token);
|
|
else if (tn === $.IMG || tn === $.WBR)
|
|
areaStartTagInBody(p, token);
|
|
else if (tn === $.XMP)
|
|
xmpStartTagInBody(p, token);
|
|
else if (tn === $.SVG)
|
|
svgStartTagInBody(p, token);
|
|
else if (tn !== $.COL)
|
|
genericStartTagInBody(p, token);
|
|
break;
|
|
case 4:
|
|
if (tn === $.HTML)
|
|
htmlStartTagInBody(p, token);
|
|
else if (tn === $.BASE || tn === $.LINK || tn === $.META)
|
|
startTagInHead(p, token);
|
|
else if (tn === $.BODY)
|
|
bodyStartTagInBody(p, token);
|
|
else if (tn === $.MAIN || tn === $.MENU)
|
|
addressStartTagInBody(p, token);
|
|
else if (tn === $.FORM)
|
|
formStartTagInBody(p, token);
|
|
else if (tn === $.CODE || tn === $.FONT)
|
|
bStartTagInBody(p, token);
|
|
else if (tn === $.NOBR)
|
|
nobrStartTagInBody(p, token);
|
|
else if (tn === $.AREA)
|
|
areaStartTagInBody(p, token);
|
|
else if (tn === $.MATH)
|
|
mathStartTagInBody(p, token);
|
|
else if (tn !== $.HEAD)
|
|
genericStartTagInBody(p, token);
|
|
break;
|
|
case 5:
|
|
if (tn === $.STYLE || tn === $.TITLE)
|
|
startTagInHead(p, token);
|
|
else if (tn === $.ASIDE)
|
|
addressStartTagInBody(p, token);
|
|
else if (tn === $.SMALL)
|
|
bStartTagInBody(p, token);
|
|
else if (tn === $.TABLE)
|
|
tableStartTagInBody(p, token);
|
|
else if (tn === $.EMBED)
|
|
areaStartTagInBody(p, token);
|
|
else if (tn === $.INPUT)
|
|
inputStartTagInBody(p, token);
|
|
else if (tn === $.PARAM || tn === $.TRACK)
|
|
paramStartTagInBody(p, token);
|
|
else if (tn === $.IMAGE)
|
|
imageStartTagInBody(p, token);
|
|
else if (tn !== $.FRAME && tn !== $.TBODY && tn !== $.TFOOT && tn !== $.THEAD)
|
|
genericStartTagInBody(p, token);
|
|
break;
|
|
case 6:
|
|
if (tn === $.SCRIPT)
|
|
startTagInHead(p, token);
|
|
else if (tn === $.CENTER || tn === $.FIGURE || tn === $.FOOTER || tn === $.HEADER || tn === $.HGROUP)
|
|
addressStartTagInBody(p, token);
|
|
else if (tn === $.BUTTON)
|
|
buttonStartTagInBody(p, token);
|
|
else if (tn === $.STRIKE || tn === $.STRONG)
|
|
bStartTagInBody(p, token);
|
|
else if (tn === $.APPLET || tn === $.OBJECT)
|
|
appletStartTagInBody(p, token);
|
|
else if (tn === $.KEYGEN)
|
|
areaStartTagInBody(p, token);
|
|
else if (tn === $.SOURCE)
|
|
paramStartTagInBody(p, token);
|
|
else if (tn === $.IFRAME)
|
|
iframeStartTagInBody(p, token);
|
|
else if (tn === $.SELECT)
|
|
selectStartTagInBody(p, token);
|
|
else if (tn === $.OPTION)
|
|
optgroupStartTagInBody(p, token);
|
|
else
|
|
genericStartTagInBody(p, token);
|
|
break;
|
|
case 7:
|
|
if (tn === $.BGSOUND || tn === $.COMMAND)
|
|
startTagInHead(p, token);
|
|
else if (tn === $.DETAILS || tn === $.ADDRESS || tn === $.ARTICLE || tn === $.SECTION || tn === $.SUMMARY)
|
|
addressStartTagInBody(p, token);
|
|
else if (tn === $.LISTING)
|
|
preStartTagInBody(p, token);
|
|
else if (tn === $.MARQUEE)
|
|
appletStartTagInBody(p, token);
|
|
else if (tn === $.ISINDEX)
|
|
isindexStartTagInBody(p, token);
|
|
else if (tn === $.NOEMBED)
|
|
noembedStartTagInBody(p, token);
|
|
else if (tn !== $.CAPTION)
|
|
genericStartTagInBody(p, token);
|
|
break;
|
|
case 8:
|
|
if (tn === $.BASEFONT || tn === $.MENUITEM)
|
|
menuitemStartTagInBody(p, token);
|
|
else if (tn === $.FRAMESET)
|
|
framesetStartTagInBody(p, token);
|
|
else if (tn === $.FIELDSET)
|
|
addressStartTagInBody(p, token);
|
|
else if (tn === $.TEXTAREA)
|
|
textareaStartTagInBody(p, token);
|
|
else if (tn === $.TEMPLATE)
|
|
startTagInHead(p, token);
|
|
else if (tn === $.NOSCRIPT)
|
|
noembedStartTagInBody(p, token);
|
|
else if (tn === $.OPTGROUP)
|
|
optgroupStartTagInBody(p, token);
|
|
else if (tn !== $.COLGROUP)
|
|
genericStartTagInBody(p, token);
|
|
break;
|
|
case 9:
|
|
if (tn === $.PLAINTEXT)
|
|
plaintextStartTagInBody(p, token);
|
|
else
|
|
genericStartTagInBody(p, token);
|
|
break;
|
|
case 10:
|
|
if (tn === $.BLOCKQUOTE || tn === $.FIGCAPTION)
|
|
addressStartTagInBody(p, token);
|
|
else
|
|
genericStartTagInBody(p, token);
|
|
break;
|
|
default:
|
|
genericStartTagInBody(p, token);
|
|
}
|
|
}
|
|
function bodyEndTagInBody(p, token) {
|
|
if (p.openElements.hasInScope($.BODY))
|
|
p.insertionMode = AFTER_BODY_MODE;
|
|
else
|
|
token.ignored = true;
|
|
}
|
|
function htmlEndTagInBody(p, token) {
|
|
var fakeToken = p._processFakeEndTag($.BODY);
|
|
if (!fakeToken.ignored)
|
|
p._processToken(token);
|
|
}
|
|
function addressEndTagInBody(p, token) {
|
|
var tn = token.tagName;
|
|
if (p.openElements.hasInScope(tn)) {
|
|
p.openElements.generateImpliedEndTags();
|
|
p.openElements.popUntilTagNamePopped(tn);
|
|
}
|
|
}
|
|
function formEndTagInBody(p, token) {
|
|
var inTemplate = p.openElements.tmplCount > 0,
|
|
formElement = p.formElement;
|
|
if (!inTemplate)
|
|
p.formElement = null;
|
|
if ((formElement || inTemplate) && p.openElements.hasInScope($.FORM)) {
|
|
p.openElements.generateImpliedEndTags();
|
|
if (inTemplate)
|
|
p.openElements.popUntilTagNamePopped($.FORM);
|
|
else
|
|
p.openElements.remove(formElement);
|
|
}
|
|
}
|
|
function pEndTagInBody(p, token) {
|
|
if (p.openElements.hasInButtonScope($.P)) {
|
|
p.openElements.generateImpliedEndTagsWithExclusion($.P);
|
|
p.openElements.popUntilTagNamePopped($.P);
|
|
} else {
|
|
p._processFakeStartTag($.P);
|
|
p._processToken(token);
|
|
}
|
|
}
|
|
function liEndTagInBody(p, token) {
|
|
if (p.openElements.hasInListItemScope($.LI)) {
|
|
p.openElements.generateImpliedEndTagsWithExclusion($.LI);
|
|
p.openElements.popUntilTagNamePopped($.LI);
|
|
}
|
|
}
|
|
function ddEndTagInBody(p, token) {
|
|
var tn = token.tagName;
|
|
if (p.openElements.hasInScope(tn)) {
|
|
p.openElements.generateImpliedEndTagsWithExclusion(tn);
|
|
p.openElements.popUntilTagNamePopped(tn);
|
|
}
|
|
}
|
|
function numberedHeaderEndTagInBody(p, token) {
|
|
if (p.openElements.hasNumberedHeaderInScope()) {
|
|
p.openElements.generateImpliedEndTags();
|
|
p.openElements.popUntilNumberedHeaderPopped();
|
|
}
|
|
}
|
|
function appletEndTagInBody(p, token) {
|
|
var tn = token.tagName;
|
|
if (p.openElements.hasInScope(tn)) {
|
|
p.openElements.generateImpliedEndTags();
|
|
p.openElements.popUntilTagNamePopped(tn);
|
|
p.activeFormattingElements.clearToLastMarker();
|
|
}
|
|
}
|
|
function brEndTagInBody(p, token) {
|
|
p._processFakeStartTag($.BR);
|
|
}
|
|
function genericEndTagInBody(p, token) {
|
|
var tn = token.tagName;
|
|
for (var i = p.openElements.stackTop; i > 0; i--) {
|
|
var element = p.openElements.items[i];
|
|
if (p.treeAdapter.getTagName(element) === tn) {
|
|
p.openElements.generateImpliedEndTagsWithExclusion(tn);
|
|
p.openElements.popUntilElementPopped(element);
|
|
break;
|
|
}
|
|
if (p._isSpecialElement(element))
|
|
break;
|
|
}
|
|
}
|
|
function endTagInBody(p, token) {
|
|
var tn = token.tagName;
|
|
switch (tn.length) {
|
|
case 1:
|
|
if (tn === $.A || tn === $.B || tn === $.I || tn === $.S || tn == $.U)
|
|
callAdoptionAgency(p, token);
|
|
else if (tn === $.P)
|
|
pEndTagInBody(p, token);
|
|
else
|
|
genericEndTagInBody(p, token);
|
|
break;
|
|
case 2:
|
|
if (tn == $.DL || tn === $.UL || tn === $.OL)
|
|
addressEndTagInBody(p, token);
|
|
else if (tn === $.LI)
|
|
liEndTagInBody(p, token);
|
|
else if (tn === $.DD || tn === $.DT)
|
|
ddEndTagInBody(p, token);
|
|
else if (tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6)
|
|
numberedHeaderEndTagInBody(p, token);
|
|
else if (tn === $.BR)
|
|
brEndTagInBody(p, token);
|
|
else if (tn === $.EM || tn === $.TT)
|
|
callAdoptionAgency(p, token);
|
|
else
|
|
genericEndTagInBody(p, token);
|
|
break;
|
|
case 3:
|
|
if (tn === $.BIG)
|
|
callAdoptionAgency(p, token);
|
|
else if (tn === $.DIR || tn === $.DIV || tn === $.NAV)
|
|
addressEndTagInBody(p, token);
|
|
else
|
|
genericEndTagInBody(p, token);
|
|
break;
|
|
case 4:
|
|
if (tn === $.BODY)
|
|
bodyEndTagInBody(p, token);
|
|
else if (tn === $.HTML)
|
|
htmlEndTagInBody(p, token);
|
|
else if (tn === $.FORM)
|
|
formEndTagInBody(p, token);
|
|
else if (tn === $.CODE || tn === $.FONT || tn === $.NOBR)
|
|
callAdoptionAgency(p, token);
|
|
else if (tn === $.MAIN || tn === $.MENU)
|
|
addressEndTagInBody(p, token);
|
|
else
|
|
genericEndTagInBody(p, token);
|
|
break;
|
|
case 5:
|
|
if (tn === $.ASIDE)
|
|
addressEndTagInBody(p, token);
|
|
else if (tn === $.SMALL)
|
|
callAdoptionAgency(p, token);
|
|
else
|
|
genericEndTagInBody(p, token);
|
|
break;
|
|
case 6:
|
|
if (tn === $.CENTER || tn === $.FIGURE || tn === $.FOOTER || tn === $.HEADER || tn === $.HGROUP)
|
|
addressEndTagInBody(p, token);
|
|
else if (tn === $.APPLET || tn === $.OBJECT)
|
|
appletEndTagInBody(p, token);
|
|
else if (tn == $.STRIKE || tn === $.STRONG)
|
|
callAdoptionAgency(p, token);
|
|
else
|
|
genericEndTagInBody(p, token);
|
|
break;
|
|
case 7:
|
|
if (tn === $.ADDRESS || tn === $.ARTICLE || tn === $.DETAILS || tn === $.SECTION || tn === $.SUMMARY)
|
|
addressEndTagInBody(p, token);
|
|
else if (tn === $.MARQUEE)
|
|
appletEndTagInBody(p, token);
|
|
else
|
|
genericEndTagInBody(p, token);
|
|
break;
|
|
case 8:
|
|
if (tn === $.FIELDSET)
|
|
addressEndTagInBody(p, token);
|
|
else if (tn === $.TEMPLATE)
|
|
endTagInHead(p, token);
|
|
else
|
|
genericEndTagInBody(p, token);
|
|
break;
|
|
case 10:
|
|
if (tn === $.BLOCKQUOTE || tn === $.FIGCAPTION)
|
|
addressEndTagInBody(p, token);
|
|
else
|
|
genericEndTagInBody(p, token);
|
|
break;
|
|
default:
|
|
genericEndTagInBody(p, token);
|
|
}
|
|
}
|
|
function eofInBody(p, token) {
|
|
if (p.tmplInsertionModeStackTop > -1)
|
|
eofInTemplate(p, token);
|
|
else
|
|
p.stopped = true;
|
|
}
|
|
function endTagInText(p, token) {
|
|
if (!p.fragmentContext && p.scriptHandler && token.tagName === $.SCRIPT)
|
|
p.scriptHandler(p.document, p.openElements.current);
|
|
p.openElements.pop();
|
|
p.insertionMode = p.originalInsertionMode;
|
|
}
|
|
function eofInText(p, token) {
|
|
p.openElements.pop();
|
|
p.insertionMode = p.originalInsertionMode;
|
|
p._processToken(token);
|
|
}
|
|
function characterInTable(p, token) {
|
|
var curTn = p.openElements.currentTagName;
|
|
if (curTn === $.TABLE || curTn === $.TBODY || curTn === $.TFOOT || curTn === $.THEAD || curTn === $.TR) {
|
|
p.pendingCharacterTokens = [];
|
|
p.hasNonWhitespacePendingCharacterToken = false;
|
|
p.originalInsertionMode = p.insertionMode;
|
|
p.insertionMode = IN_TABLE_TEXT_MODE;
|
|
p._processToken(token);
|
|
} else
|
|
tokenInTable(p, token);
|
|
}
|
|
function captionStartTagInTable(p, token) {
|
|
p.openElements.clearBackToTableContext();
|
|
p.activeFormattingElements.insertMarker();
|
|
p._insertElement(token, NS.HTML);
|
|
p.insertionMode = IN_CAPTION_MODE;
|
|
}
|
|
function colgroupStartTagInTable(p, token) {
|
|
p.openElements.clearBackToTableContext();
|
|
p._insertElement(token, NS.HTML);
|
|
p.insertionMode = IN_COLUMN_GROUP_MODE;
|
|
}
|
|
function colStartTagInTable(p, token) {
|
|
p._processFakeStartTag($.COLGROUP);
|
|
p._processToken(token);
|
|
}
|
|
function tbodyStartTagInTable(p, token) {
|
|
p.openElements.clearBackToTableContext();
|
|
p._insertElement(token, NS.HTML);
|
|
p.insertionMode = IN_TABLE_BODY_MODE;
|
|
}
|
|
function tdStartTagInTable(p, token) {
|
|
p._processFakeStartTag($.TBODY);
|
|
p._processToken(token);
|
|
}
|
|
function tableStartTagInTable(p, token) {
|
|
var fakeToken = p._processFakeEndTag($.TABLE);
|
|
if (!fakeToken.ignored)
|
|
p._processToken(token);
|
|
}
|
|
function inputStartTagInTable(p, token) {
|
|
var inputType = Tokenizer.getTokenAttr(token, ATTRS.TYPE);
|
|
if (inputType && inputType.toLowerCase() === HIDDEN_INPUT_TYPE)
|
|
p._appendElement(token, NS.HTML);
|
|
else
|
|
tokenInTable(p, token);
|
|
}
|
|
function formStartTagInTable(p, token) {
|
|
if (!p.formElement && p.openElements.tmplCount === 0) {
|
|
p._insertElement(token, NS.HTML);
|
|
p.formElement = p.openElements.current;
|
|
p.openElements.pop();
|
|
}
|
|
}
|
|
function startTagInTable(p, token) {
|
|
var tn = token.tagName;
|
|
switch (tn.length) {
|
|
case 2:
|
|
if (tn === $.TD || tn === $.TH || tn === $.TR)
|
|
tdStartTagInTable(p, token);
|
|
else
|
|
tokenInTable(p, token);
|
|
break;
|
|
case 3:
|
|
if (tn === $.COL)
|
|
colStartTagInTable(p, token);
|
|
else
|
|
tokenInTable(p, token);
|
|
break;
|
|
case 4:
|
|
if (tn === $.FORM)
|
|
formStartTagInTable(p, token);
|
|
else
|
|
tokenInTable(p, token);
|
|
break;
|
|
case 5:
|
|
if (tn === $.TABLE)
|
|
tableStartTagInTable(p, token);
|
|
else if (tn === $.STYLE)
|
|
startTagInHead(p, token);
|
|
else if (tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD)
|
|
tbodyStartTagInTable(p, token);
|
|
else if (tn === $.INPUT)
|
|
inputStartTagInTable(p, token);
|
|
else
|
|
tokenInTable(p, token);
|
|
break;
|
|
case 6:
|
|
if (tn === $.SCRIPT)
|
|
startTagInHead(p, token);
|
|
else
|
|
tokenInTable(p, token);
|
|
break;
|
|
case 7:
|
|
if (tn === $.CAPTION)
|
|
captionStartTagInTable(p, token);
|
|
else
|
|
tokenInTable(p, token);
|
|
break;
|
|
case 8:
|
|
if (tn === $.COLGROUP)
|
|
colgroupStartTagInTable(p, token);
|
|
else if (tn === $.TEMPLATE)
|
|
startTagInHead(p, token);
|
|
else
|
|
tokenInTable(p, token);
|
|
break;
|
|
default:
|
|
tokenInTable(p, token);
|
|
}
|
|
}
|
|
function endTagInTable(p, token) {
|
|
var tn = token.tagName;
|
|
if (tn === $.TABLE) {
|
|
if (p.openElements.hasInTableScope($.TABLE)) {
|
|
p.openElements.popUntilTagNamePopped($.TABLE);
|
|
p._resetInsertionMode();
|
|
} else
|
|
token.ignored = true;
|
|
} else if (tn === $.TEMPLATE)
|
|
endTagInHead(p, token);
|
|
else if (tn !== $.BODY && tn !== $.CAPTION && tn !== $.COL && tn !== $.COLGROUP && tn !== $.HTML && tn !== $.TBODY && tn !== $.TD && tn !== $.TFOOT && tn !== $.TH && tn !== $.THEAD && tn !== $.TR) {
|
|
tokenInTable(p, token);
|
|
}
|
|
}
|
|
function tokenInTable(p, token) {
|
|
var savedFosterParentingState = p.fosterParentingEnabled;
|
|
p.fosterParentingEnabled = true;
|
|
p._processTokenInBodyMode(token);
|
|
p.fosterParentingEnabled = savedFosterParentingState;
|
|
}
|
|
function whitespaceCharacterInTableText(p, token) {
|
|
p.pendingCharacterTokens.push(token);
|
|
}
|
|
function characterInTableText(p, token) {
|
|
p.pendingCharacterTokens.push(token);
|
|
p.hasNonWhitespacePendingCharacterToken = true;
|
|
}
|
|
function tokenInTableText(p, token) {
|
|
if (p.hasNonWhitespacePendingCharacterToken) {
|
|
for (var i = 0; i < p.pendingCharacterTokens.length; i++)
|
|
tokenInTable(p, p.pendingCharacterTokens[i]);
|
|
} else {
|
|
for (var i = 0; i < p.pendingCharacterTokens.length; i++)
|
|
p._insertCharacters(p.pendingCharacterTokens[i]);
|
|
}
|
|
p.insertionMode = p.originalInsertionMode;
|
|
p._processToken(token);
|
|
}
|
|
function startTagInCaption(p, token) {
|
|
var tn = token.tagName;
|
|
if (tn === $.CAPTION || tn === $.COL || tn === $.COLGROUP || tn === $.TBODY || tn === $.TD || tn === $.TFOOT || tn === $.TH || tn === $.THEAD || tn === $.TR) {
|
|
var fakeToken = p._processFakeEndTag($.CAPTION);
|
|
if (!fakeToken.ignored)
|
|
p._processToken(token);
|
|
} else
|
|
startTagInBody(p, token);
|
|
}
|
|
function endTagInCaption(p, token) {
|
|
var tn = token.tagName;
|
|
if (tn === $.CAPTION) {
|
|
if (p.openElements.hasInTableScope($.CAPTION)) {
|
|
p.openElements.generateImpliedEndTags();
|
|
p.openElements.popUntilTagNamePopped($.CAPTION);
|
|
p.activeFormattingElements.clearToLastMarker();
|
|
p.insertionMode = IN_TABLE_MODE;
|
|
} else
|
|
token.ignored = true;
|
|
} else if (tn === $.TABLE) {
|
|
var fakeToken = p._processFakeEndTag($.CAPTION);
|
|
if (!fakeToken.ignored)
|
|
p._processToken(token);
|
|
} else if (tn !== $.BODY && tn !== $.COL && tn !== $.COLGROUP && tn !== $.HTML && tn !== $.TBODY && tn !== $.TD && tn !== $.TFOOT && tn !== $.TH && tn !== $.THEAD && tn !== $.TR) {
|
|
endTagInBody(p, token);
|
|
}
|
|
}
|
|
function startTagInColumnGroup(p, token) {
|
|
var tn = token.tagName;
|
|
if (tn === $.HTML)
|
|
startTagInBody(p, token);
|
|
else if (tn === $.COL)
|
|
p._appendElement(token, NS.HTML);
|
|
else if (tn === $.TEMPLATE)
|
|
startTagInHead(p, token);
|
|
else
|
|
tokenInColumnGroup(p, token);
|
|
}
|
|
function endTagInColumnGroup(p, token) {
|
|
var tn = token.tagName;
|
|
if (tn === $.COLGROUP) {
|
|
if (p.openElements.currentTagName !== $.COLGROUP)
|
|
token.ignored = true;
|
|
else {
|
|
p.openElements.pop();
|
|
p.insertionMode = IN_TABLE_MODE;
|
|
}
|
|
} else if (tn === $.TEMPLATE)
|
|
endTagInHead(p, token);
|
|
else if (tn !== $.COL)
|
|
tokenInColumnGroup(p, token);
|
|
}
|
|
function tokenInColumnGroup(p, token) {
|
|
var fakeToken = p._processFakeEndTag($.COLGROUP);
|
|
if (!fakeToken.ignored)
|
|
p._processToken(token);
|
|
}
|
|
function startTagInTableBody(p, token) {
|
|
var tn = token.tagName;
|
|
if (tn === $.TR) {
|
|
p.openElements.clearBackToTableBodyContext();
|
|
p._insertElement(token, NS.HTML);
|
|
p.insertionMode = IN_ROW_MODE;
|
|
} else if (tn === $.TH || tn === $.TD) {
|
|
p._processFakeStartTag($.TR);
|
|
p._processToken(token);
|
|
} else if (tn === $.CAPTION || tn === $.COL || tn === $.COLGROUP || tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD) {
|
|
if (p.openElements.hasTableBodyContextInTableScope()) {
|
|
p.openElements.clearBackToTableBodyContext();
|
|
p._processFakeEndTag(p.openElements.currentTagName);
|
|
p._processToken(token);
|
|
}
|
|
} else
|
|
startTagInTable(p, token);
|
|
}
|
|
function endTagInTableBody(p, token) {
|
|
var tn = token.tagName;
|
|
if (tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD) {
|
|
if (p.openElements.hasInTableScope(tn)) {
|
|
p.openElements.clearBackToTableBodyContext();
|
|
p.openElements.pop();
|
|
p.insertionMode = IN_TABLE_MODE;
|
|
}
|
|
} else if (tn === $.TABLE) {
|
|
if (p.openElements.hasTableBodyContextInTableScope()) {
|
|
p.openElements.clearBackToTableBodyContext();
|
|
p._processFakeEndTag(p.openElements.currentTagName);
|
|
p._processToken(token);
|
|
}
|
|
} else if (tn !== $.BODY && tn !== $.CAPTION && tn !== $.COL && tn !== $.COLGROUP || tn !== $.HTML && tn !== $.TD && tn !== $.TH && tn !== $.TR) {
|
|
endTagInTable(p, token);
|
|
}
|
|
}
|
|
function startTagInRow(p, token) {
|
|
var tn = token.tagName;
|
|
if (tn === $.TH || tn === $.TD) {
|
|
p.openElements.clearBackToTableRowContext();
|
|
p._insertElement(token, NS.HTML);
|
|
p.insertionMode = IN_CELL_MODE;
|
|
p.activeFormattingElements.insertMarker();
|
|
} else if (tn === $.CAPTION || tn === $.COL || tn === $.COLGROUP || tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD || tn === $.TR) {
|
|
var fakeToken = p._processFakeEndTag($.TR);
|
|
if (!fakeToken.ignored)
|
|
p._processToken(token);
|
|
} else
|
|
startTagInTable(p, token);
|
|
}
|
|
function endTagInRow(p, token) {
|
|
var tn = token.tagName;
|
|
if (tn === $.TR) {
|
|
if (p.openElements.hasInTableScope($.TR)) {
|
|
p.openElements.clearBackToTableRowContext();
|
|
p.openElements.pop();
|
|
p.insertionMode = IN_TABLE_BODY_MODE;
|
|
} else
|
|
token.ignored = true;
|
|
} else if (tn === $.TABLE) {
|
|
var fakeToken = p._processFakeEndTag($.TR);
|
|
if (!fakeToken.ignored)
|
|
p._processToken(token);
|
|
} else if (tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD) {
|
|
if (p.openElements.hasInTableScope(tn)) {
|
|
p._processFakeEndTag($.TR);
|
|
p._processToken(token);
|
|
}
|
|
} else if (tn !== $.BODY && tn !== $.CAPTION && tn !== $.COL && tn !== $.COLGROUP || tn !== $.HTML && tn !== $.TD && tn !== $.TH) {
|
|
endTagInTable(p, token);
|
|
}
|
|
}
|
|
function startTagInCell(p, token) {
|
|
var tn = token.tagName;
|
|
if (tn === $.CAPTION || tn === $.COL || tn === $.COLGROUP || tn === $.TBODY || tn === $.TD || tn === $.TFOOT || tn === $.TH || tn === $.THEAD || tn === $.TR) {
|
|
if (p.openElements.hasInTableScope($.TD) || p.openElements.hasInTableScope($.TH)) {
|
|
p._closeTableCell();
|
|
p._processToken(token);
|
|
}
|
|
} else
|
|
startTagInBody(p, token);
|
|
}
|
|
function endTagInCell(p, token) {
|
|
var tn = token.tagName;
|
|
if (tn === $.TD || tn === $.TH) {
|
|
if (p.openElements.hasInTableScope(tn)) {
|
|
p.openElements.generateImpliedEndTags();
|
|
p.openElements.popUntilTagNamePopped(tn);
|
|
p.activeFormattingElements.clearToLastMarker();
|
|
p.insertionMode = IN_ROW_MODE;
|
|
}
|
|
} else if (tn === $.TABLE || tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD || tn === $.TR) {
|
|
if (p.openElements.hasInTableScope(tn)) {
|
|
p._closeTableCell();
|
|
p._processToken(token);
|
|
}
|
|
} else if (tn !== $.BODY && tn !== $.CAPTION && tn !== $.COL && tn !== $.COLGROUP && tn !== $.HTML)
|
|
endTagInBody(p, token);
|
|
}
|
|
function startTagInSelect(p, token) {
|
|
var tn = token.tagName;
|
|
if (tn === $.HTML)
|
|
startTagInBody(p, token);
|
|
else if (tn === $.OPTION) {
|
|
if (p.openElements.currentTagName === $.OPTION)
|
|
p._processFakeEndTag($.OPTION);
|
|
p._insertElement(token, NS.HTML);
|
|
} else if (tn === $.OPTGROUP) {
|
|
if (p.openElements.currentTagName === $.OPTION)
|
|
p._processFakeEndTag($.OPTION);
|
|
if (p.openElements.currentTagName === $.OPTGROUP)
|
|
p._processFakeEndTag($.OPTGROUP);
|
|
p._insertElement(token, NS.HTML);
|
|
} else if (tn === $.SELECT)
|
|
p._processFakeEndTag($.SELECT);
|
|
else if (tn === $.INPUT || tn === $.KEYGEN || tn === $.TEXTAREA) {
|
|
if (p.openElements.hasInSelectScope($.SELECT)) {
|
|
p._processFakeEndTag($.SELECT);
|
|
p._processToken(token);
|
|
}
|
|
} else if (tn === $.SCRIPT || tn === $.TEMPLATE)
|
|
startTagInHead(p, token);
|
|
}
|
|
function endTagInSelect(p, token) {
|
|
var tn = token.tagName;
|
|
if (tn === $.OPTGROUP) {
|
|
var prevOpenElement = p.openElements.items[p.openElements.stackTop - 1],
|
|
prevOpenElementTn = prevOpenElement && p.treeAdapter.getTagName(prevOpenElement);
|
|
if (p.openElements.currentTagName === $.OPTION && prevOpenElementTn === $.OPTGROUP)
|
|
p._processFakeEndTag($.OPTION);
|
|
if (p.openElements.currentTagName === $.OPTGROUP)
|
|
p.openElements.pop();
|
|
} else if (tn === $.OPTION) {
|
|
if (p.openElements.currentTagName === $.OPTION)
|
|
p.openElements.pop();
|
|
} else if (tn === $.SELECT && p.openElements.hasInSelectScope($.SELECT)) {
|
|
p.openElements.popUntilTagNamePopped($.SELECT);
|
|
p._resetInsertionMode();
|
|
} else if (tn === $.TEMPLATE)
|
|
endTagInHead(p, token);
|
|
}
|
|
function startTagInSelectInTable(p, token) {
|
|
var tn = token.tagName;
|
|
if (tn === $.CAPTION || tn === $.TABLE || tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD || tn === $.TR || tn === $.TD || tn === $.TH) {
|
|
p._processFakeEndTag($.SELECT);
|
|
p._processToken(token);
|
|
} else
|
|
startTagInSelect(p, token);
|
|
}
|
|
function endTagInSelectInTable(p, token) {
|
|
var tn = token.tagName;
|
|
if (tn === $.CAPTION || tn === $.TABLE || tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD || tn === $.TR || tn === $.TD || tn === $.TH) {
|
|
if (p.openElements.hasInTableScope(tn)) {
|
|
p._processFakeEndTag($.SELECT);
|
|
p._processToken(token);
|
|
}
|
|
} else
|
|
endTagInSelect(p, token);
|
|
}
|
|
function startTagInTemplate(p, token) {
|
|
var tn = token.tagName;
|
|
if (tn === $.BASE || tn === $.BASEFONT || tn === $.BGSOUND || tn === $.LINK || tn === $.META || tn === $.NOFRAMES || tn === $.SCRIPT || tn === $.STYLE || tn === $.TEMPLATE || tn === $.TITLE) {
|
|
startTagInHead(p, token);
|
|
} else {
|
|
var newInsertionMode = TEMPLATE_INSERTION_MODE_SWITCH_MAP[tn] || IN_BODY_MODE;
|
|
p._popTmplInsertionMode();
|
|
p._pushTmplInsertionMode(newInsertionMode);
|
|
p.insertionMode = newInsertionMode;
|
|
p._processToken(token);
|
|
}
|
|
}
|
|
function endTagInTemplate(p, token) {
|
|
if (token.tagName === $.TEMPLATE)
|
|
endTagInHead(p, token);
|
|
}
|
|
function eofInTemplate(p, token) {
|
|
if (p.openElements.tmplCount > 0) {
|
|
p.openElements.popUntilTemplatePopped();
|
|
p.activeFormattingElements.clearToLastMarker();
|
|
p._popTmplInsertionMode();
|
|
p._resetInsertionMode();
|
|
p._processToken(token);
|
|
} else
|
|
p.stopped = true;
|
|
}
|
|
function startTagAfterBody(p, token) {
|
|
if (token.tagName === $.HTML)
|
|
startTagInBody(p, token);
|
|
else
|
|
tokenAfterBody(p, token);
|
|
}
|
|
function endTagAfterBody(p, token) {
|
|
if (token.tagName === $.HTML) {
|
|
if (!p.fragmentContext)
|
|
p.insertionMode = AFTER_AFTER_BODY_MODE;
|
|
} else
|
|
tokenAfterBody(p, token);
|
|
}
|
|
function tokenAfterBody(p, token) {
|
|
p.insertionMode = IN_BODY_MODE;
|
|
p._processToken(token);
|
|
}
|
|
function startTagInFrameset(p, token) {
|
|
var tn = token.tagName;
|
|
if (tn === $.HTML)
|
|
startTagInBody(p, token);
|
|
else if (tn === $.FRAMESET)
|
|
p._insertElement(token, NS.HTML);
|
|
else if (tn === $.FRAME)
|
|
p._appendElement(token, NS.HTML);
|
|
else if (tn === $.NOFRAMES)
|
|
startTagInHead(p, token);
|
|
}
|
|
function endTagInFrameset(p, token) {
|
|
if (token.tagName === $.FRAMESET && !p.openElements.isRootHtmlElementCurrent()) {
|
|
p.openElements.pop();
|
|
if (!p.fragmentContext && p.openElements.currentTagName !== $.FRAMESET)
|
|
p.insertionMode = AFTER_FRAMESET_MODE;
|
|
}
|
|
}
|
|
function startTagAfterFrameset(p, token) {
|
|
var tn = token.tagName;
|
|
if (tn === $.HTML)
|
|
startTagInBody(p, token);
|
|
else if (tn === $.NOFRAMES)
|
|
startTagInHead(p, token);
|
|
}
|
|
function endTagAfterFrameset(p, token) {
|
|
if (token.tagName === $.HTML)
|
|
p.insertionMode = AFTER_AFTER_FRAMESET_MODE;
|
|
}
|
|
function startTagAfterAfterBody(p, token) {
|
|
if (token.tagName === $.HTML)
|
|
startTagInBody(p, token);
|
|
else
|
|
tokenAfterAfterBody(p, token);
|
|
}
|
|
function tokenAfterAfterBody(p, token) {
|
|
p.insertionMode = IN_BODY_MODE;
|
|
p._processToken(token);
|
|
}
|
|
function startTagAfterAfterFrameset(p, token) {
|
|
var tn = token.tagName;
|
|
if (tn === $.HTML)
|
|
startTagInBody(p, token);
|
|
else if (tn === $.NOFRAMES)
|
|
startTagInHead(p, token);
|
|
}
|
|
function nullCharacterInForeignContent(p, token) {
|
|
token.chars = UNICODE.REPLACEMENT_CHARACTER;
|
|
p._insertCharacters(token);
|
|
}
|
|
function characterInForeignContent(p, token) {
|
|
p._insertCharacters(token);
|
|
p.framesetOk = false;
|
|
}
|
|
function startTagInForeignContent(p, token) {
|
|
if (ForeignContent.causesExit(token) && !p.fragmentContext) {
|
|
while (p.treeAdapter.getNamespaceURI(p.openElements.current) !== NS.HTML && (!p._isMathMLTextIntegrationPoint(p.openElements.current)) && (!p._isHtmlIntegrationPoint(p.openElements.current))) {
|
|
p.openElements.pop();
|
|
}
|
|
p._processToken(token);
|
|
} else {
|
|
var current = p._getAdjustedCurrentElement(),
|
|
currentNs = p.treeAdapter.getNamespaceURI(current);
|
|
if (currentNs === NS.MATHML)
|
|
ForeignContent.adjustTokenMathMLAttrs(token);
|
|
else if (currentNs === NS.SVG) {
|
|
ForeignContent.adjustTokenSVGTagName(token);
|
|
ForeignContent.adjustTokenSVGAttrs(token);
|
|
}
|
|
ForeignContent.adjustTokenXMLAttrs(token);
|
|
if (token.selfClosing)
|
|
p._appendElement(token, currentNs);
|
|
else
|
|
p._insertElement(token, currentNs);
|
|
}
|
|
}
|
|
function endTagInForeignContent(p, token) {
|
|
for (var i = p.openElements.stackTop; i > 0; i--) {
|
|
var element = p.openElements.items[i];
|
|
if (p.treeAdapter.getNamespaceURI(element) === NS.HTML) {
|
|
p._processToken(token);
|
|
break;
|
|
}
|
|
if (p.treeAdapter.getTagName(element).toLowerCase() === token.tagName) {
|
|
p.openElements.popUntilElementPopped(element);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/animate/animation_builder", ["angular2/src/core/di", "angular2/src/animate/css_animation_builder", "angular2/src/animate/browser_details"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var di_1 = require("angular2/src/core/di");
|
|
var css_animation_builder_1 = require("angular2/src/animate/css_animation_builder");
|
|
var browser_details_1 = require("angular2/src/animate/browser_details");
|
|
var AnimationBuilder = (function() {
|
|
function AnimationBuilder(browserDetails) {
|
|
this.browserDetails = browserDetails;
|
|
}
|
|
AnimationBuilder.prototype.css = function() {
|
|
return new css_animation_builder_1.CssAnimationBuilder(this.browserDetails);
|
|
};
|
|
AnimationBuilder = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [browser_details_1.BrowserDetails])], AnimationBuilder);
|
|
return AnimationBuilder;
|
|
})();
|
|
exports.AnimationBuilder = AnimationBuilder;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/compiler/template_parser", ["angular2/src/facade/collection", "angular2/src/facade/lang", "angular2/core", "angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/core/change_detection/change_detection", "angular2/src/compiler/html_parser", "angular2/src/compiler/html_tags", "angular2/src/compiler/parse_util", "angular2/src/core/change_detection/parser/ast", "angular2/src/compiler/template_ast", "angular2/src/compiler/selector", "angular2/src/compiler/schema/element_schema_registry", "angular2/src/compiler/template_preparser", "angular2/src/compiler/style_url_resolver", "angular2/src/compiler/html_ast", "angular2/src/compiler/util"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var __param = (this && this.__param) || function(paramIndex, decorator) {
|
|
return function(target, key) {
|
|
decorator(target, key, paramIndex);
|
|
};
|
|
};
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var core_1 = require("angular2/core");
|
|
var lang_2 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var change_detection_1 = require("angular2/src/core/change_detection/change_detection");
|
|
var html_parser_1 = require("angular2/src/compiler/html_parser");
|
|
var html_tags_1 = require("angular2/src/compiler/html_tags");
|
|
var parse_util_1 = require("angular2/src/compiler/parse_util");
|
|
var ast_1 = require("angular2/src/core/change_detection/parser/ast");
|
|
var template_ast_1 = require("angular2/src/compiler/template_ast");
|
|
var selector_1 = require("angular2/src/compiler/selector");
|
|
var element_schema_registry_1 = require("angular2/src/compiler/schema/element_schema_registry");
|
|
var template_preparser_1 = require("angular2/src/compiler/template_preparser");
|
|
var style_url_resolver_1 = require("angular2/src/compiler/style_url_resolver");
|
|
var html_ast_1 = require("angular2/src/compiler/html_ast");
|
|
var util_1 = require("angular2/src/compiler/util");
|
|
var BIND_NAME_REGEXP = /^(?:(?:(?:(bind-)|(var-|#)|(on-)|(bindon-))(.+))|\[\(([^\)]+)\)\]|\[([^\]]+)\]|\(([^\)]+)\))$/g;
|
|
var TEMPLATE_ELEMENT = 'template';
|
|
var TEMPLATE_ATTR = 'template';
|
|
var TEMPLATE_ATTR_PREFIX = '*';
|
|
var CLASS_ATTR = 'class';
|
|
var PROPERTY_PARTS_SEPARATOR = '.';
|
|
var ATTRIBUTE_PREFIX = 'attr';
|
|
var CLASS_PREFIX = 'class';
|
|
var STYLE_PREFIX = 'style';
|
|
var TEXT_CSS_SELECTOR = selector_1.CssSelector.parse('*')[0];
|
|
exports.TEMPLATE_TRANSFORMS = lang_2.CONST_EXPR(new core_1.OpaqueToken('TemplateTransforms'));
|
|
var TemplateParseError = (function(_super) {
|
|
__extends(TemplateParseError, _super);
|
|
function TemplateParseError(message, span) {
|
|
_super.call(this, span, message);
|
|
}
|
|
return TemplateParseError;
|
|
})(parse_util_1.ParseError);
|
|
exports.TemplateParseError = TemplateParseError;
|
|
var TemplateParser = (function() {
|
|
function TemplateParser(_exprParser, _schemaRegistry, _htmlParser, transforms) {
|
|
this._exprParser = _exprParser;
|
|
this._schemaRegistry = _schemaRegistry;
|
|
this._htmlParser = _htmlParser;
|
|
this.transforms = transforms;
|
|
}
|
|
TemplateParser.prototype.parse = function(template, directives, pipes, templateUrl) {
|
|
var parseVisitor = new TemplateParseVisitor(directives, pipes, this._exprParser, this._schemaRegistry);
|
|
var htmlAstWithErrors = this._htmlParser.parse(template, templateUrl);
|
|
var result = html_ast_1.htmlVisitAll(parseVisitor, htmlAstWithErrors.rootNodes, EMPTY_COMPONENT);
|
|
var errors = htmlAstWithErrors.errors.concat(parseVisitor.errors);
|
|
if (errors.length > 0) {
|
|
var errorString = errors.join('\n');
|
|
throw new exceptions_1.BaseException("Template parse errors:\n" + errorString);
|
|
}
|
|
if (lang_1.isPresent(this.transforms)) {
|
|
this.transforms.forEach(function(transform) {
|
|
result = template_ast_1.templateVisitAll(transform, result);
|
|
});
|
|
}
|
|
return result;
|
|
};
|
|
TemplateParser = __decorate([core_1.Injectable(), __param(3, core_1.Optional()), __param(3, core_1.Inject(exports.TEMPLATE_TRANSFORMS)), __metadata('design:paramtypes', [change_detection_1.Parser, element_schema_registry_1.ElementSchemaRegistry, html_parser_1.HtmlParser, Array])], TemplateParser);
|
|
return TemplateParser;
|
|
})();
|
|
exports.TemplateParser = TemplateParser;
|
|
var TemplateParseVisitor = (function() {
|
|
function TemplateParseVisitor(directives, pipes, _exprParser, _schemaRegistry) {
|
|
var _this = this;
|
|
this._exprParser = _exprParser;
|
|
this._schemaRegistry = _schemaRegistry;
|
|
this.errors = [];
|
|
this.directivesIndex = new Map();
|
|
this.ngContentCount = 0;
|
|
this.selectorMatcher = new selector_1.SelectorMatcher();
|
|
collection_1.ListWrapper.forEachWithIndex(directives, function(directive, index) {
|
|
var selector = selector_1.CssSelector.parse(directive.selector);
|
|
_this.selectorMatcher.addSelectables(selector, directive);
|
|
_this.directivesIndex.set(directive, index);
|
|
});
|
|
this.pipesByName = new Map();
|
|
pipes.forEach(function(pipe) {
|
|
return _this.pipesByName.set(pipe.name, pipe);
|
|
});
|
|
}
|
|
TemplateParseVisitor.prototype._reportError = function(message, sourceSpan) {
|
|
this.errors.push(new TemplateParseError(message, sourceSpan));
|
|
};
|
|
TemplateParseVisitor.prototype._parseInterpolation = function(value, sourceSpan) {
|
|
var sourceInfo = sourceSpan.start.toString();
|
|
try {
|
|
var ast = this._exprParser.parseInterpolation(value, sourceInfo);
|
|
this._checkPipes(ast, sourceSpan);
|
|
return ast;
|
|
} catch (e) {
|
|
this._reportError("" + e, sourceSpan);
|
|
return this._exprParser.wrapLiteralPrimitive('ERROR', sourceInfo);
|
|
}
|
|
};
|
|
TemplateParseVisitor.prototype._parseAction = function(value, sourceSpan) {
|
|
var sourceInfo = sourceSpan.start.toString();
|
|
try {
|
|
var ast = this._exprParser.parseAction(value, sourceInfo);
|
|
this._checkPipes(ast, sourceSpan);
|
|
return ast;
|
|
} catch (e) {
|
|
this._reportError("" + e, sourceSpan);
|
|
return this._exprParser.wrapLiteralPrimitive('ERROR', sourceInfo);
|
|
}
|
|
};
|
|
TemplateParseVisitor.prototype._parseBinding = function(value, sourceSpan) {
|
|
var sourceInfo = sourceSpan.start.toString();
|
|
try {
|
|
var ast = this._exprParser.parseBinding(value, sourceInfo);
|
|
this._checkPipes(ast, sourceSpan);
|
|
return ast;
|
|
} catch (e) {
|
|
this._reportError("" + e, sourceSpan);
|
|
return this._exprParser.wrapLiteralPrimitive('ERROR', sourceInfo);
|
|
}
|
|
};
|
|
TemplateParseVisitor.prototype._parseTemplateBindings = function(value, sourceSpan) {
|
|
var _this = this;
|
|
var sourceInfo = sourceSpan.start.toString();
|
|
try {
|
|
var bindings = this._exprParser.parseTemplateBindings(value, sourceInfo);
|
|
bindings.forEach(function(binding) {
|
|
if (lang_1.isPresent(binding.expression)) {
|
|
_this._checkPipes(binding.expression, sourceSpan);
|
|
}
|
|
});
|
|
return bindings;
|
|
} catch (e) {
|
|
this._reportError("" + e, sourceSpan);
|
|
return [];
|
|
}
|
|
};
|
|
TemplateParseVisitor.prototype._checkPipes = function(ast, sourceSpan) {
|
|
var _this = this;
|
|
if (lang_1.isPresent(ast)) {
|
|
var collector = new PipeCollector();
|
|
ast.visit(collector);
|
|
collector.pipes.forEach(function(pipeName) {
|
|
if (!_this.pipesByName.has(pipeName)) {
|
|
_this._reportError("The pipe '" + pipeName + "' could not be found", sourceSpan);
|
|
}
|
|
});
|
|
}
|
|
};
|
|
TemplateParseVisitor.prototype.visitText = function(ast, component) {
|
|
var ngContentIndex = component.findNgContentIndex(TEXT_CSS_SELECTOR);
|
|
var expr = this._parseInterpolation(ast.value, ast.sourceSpan);
|
|
if (lang_1.isPresent(expr)) {
|
|
return new template_ast_1.BoundTextAst(expr, ngContentIndex, ast.sourceSpan);
|
|
} else {
|
|
return new template_ast_1.TextAst(ast.value, ngContentIndex, ast.sourceSpan);
|
|
}
|
|
};
|
|
TemplateParseVisitor.prototype.visitAttr = function(ast, contex) {
|
|
return new template_ast_1.AttrAst(ast.name, ast.value, ast.sourceSpan);
|
|
};
|
|
TemplateParseVisitor.prototype.visitComment = function(ast, context) {
|
|
return null;
|
|
};
|
|
TemplateParseVisitor.prototype.visitElement = function(element, component) {
|
|
var _this = this;
|
|
var nodeName = element.name;
|
|
var preparsedElement = template_preparser_1.preparseElement(element);
|
|
if (preparsedElement.type === template_preparser_1.PreparsedElementType.SCRIPT || preparsedElement.type === template_preparser_1.PreparsedElementType.STYLE) {
|
|
return null;
|
|
}
|
|
if (preparsedElement.type === template_preparser_1.PreparsedElementType.STYLESHEET && style_url_resolver_1.isStyleUrlResolvable(preparsedElement.hrefAttr)) {
|
|
return null;
|
|
}
|
|
var matchableAttrs = [];
|
|
var elementOrDirectiveProps = [];
|
|
var vars = [];
|
|
var events = [];
|
|
var templateElementOrDirectiveProps = [];
|
|
var templateVars = [];
|
|
var templateMatchableAttrs = [];
|
|
var hasInlineTemplates = false;
|
|
var attrs = [];
|
|
element.attrs.forEach(function(attr) {
|
|
var hasBinding = _this._parseAttr(attr, matchableAttrs, elementOrDirectiveProps, events, vars);
|
|
var hasTemplateBinding = _this._parseInlineTemplateBinding(attr, templateMatchableAttrs, templateElementOrDirectiveProps, templateVars);
|
|
if (!hasBinding && !hasTemplateBinding) {
|
|
attrs.push(_this.visitAttr(attr, null));
|
|
matchableAttrs.push([attr.name, attr.value]);
|
|
}
|
|
if (hasTemplateBinding) {
|
|
hasInlineTemplates = true;
|
|
}
|
|
});
|
|
var lcElName = html_tags_1.splitNsName(nodeName.toLowerCase())[1];
|
|
var isTemplateElement = lcElName == TEMPLATE_ELEMENT;
|
|
var elementCssSelector = createElementCssSelector(nodeName, matchableAttrs);
|
|
var directives = this._createDirectiveAsts(element.name, this._parseDirectives(this.selectorMatcher, elementCssSelector), elementOrDirectiveProps, isTemplateElement ? [] : vars, element.sourceSpan);
|
|
var elementProps = this._createElementPropertyAsts(element.name, elementOrDirectiveProps, directives);
|
|
var children = html_ast_1.htmlVisitAll(preparsedElement.nonBindable ? NON_BINDABLE_VISITOR : this, element.children, Component.create(directives));
|
|
var projectionSelector = lang_1.isPresent(preparsedElement.projectAs) ? selector_1.CssSelector.parse(preparsedElement.projectAs)[0] : elementCssSelector;
|
|
var ngContentIndex = component.findNgContentIndex(projectionSelector);
|
|
var parsedElement;
|
|
if (preparsedElement.type === template_preparser_1.PreparsedElementType.NG_CONTENT) {
|
|
if (lang_1.isPresent(element.children) && element.children.length > 0) {
|
|
this._reportError("<ng-content> element cannot have content. <ng-content> must be immediately followed by </ng-content>", element.sourceSpan);
|
|
}
|
|
parsedElement = new template_ast_1.NgContentAst(this.ngContentCount++, hasInlineTemplates ? null : ngContentIndex, element.sourceSpan);
|
|
} else if (isTemplateElement) {
|
|
this._assertAllEventsPublishedByDirectives(directives, events);
|
|
this._assertNoComponentsNorElementBindingsOnTemplate(directives, elementProps, element.sourceSpan);
|
|
parsedElement = new template_ast_1.EmbeddedTemplateAst(attrs, events, vars, directives, children, hasInlineTemplates ? null : ngContentIndex, element.sourceSpan);
|
|
} else {
|
|
this._assertOnlyOneComponent(directives, element.sourceSpan);
|
|
var elementExportAsVars = vars.filter(function(varAst) {
|
|
return varAst.value.length === 0;
|
|
});
|
|
var ngContentIndex_1 = hasInlineTemplates ? null : component.findNgContentIndex(projectionSelector);
|
|
parsedElement = new template_ast_1.ElementAst(nodeName, attrs, elementProps, events, elementExportAsVars, directives, children, hasInlineTemplates ? null : ngContentIndex_1, element.sourceSpan);
|
|
}
|
|
if (hasInlineTemplates) {
|
|
var templateCssSelector = createElementCssSelector(TEMPLATE_ELEMENT, templateMatchableAttrs);
|
|
var templateDirectives = this._createDirectiveAsts(element.name, this._parseDirectives(this.selectorMatcher, templateCssSelector), templateElementOrDirectiveProps, [], element.sourceSpan);
|
|
var templateElementProps = this._createElementPropertyAsts(element.name, templateElementOrDirectiveProps, templateDirectives);
|
|
this._assertNoComponentsNorElementBindingsOnTemplate(templateDirectives, templateElementProps, element.sourceSpan);
|
|
parsedElement = new template_ast_1.EmbeddedTemplateAst([], [], templateVars, templateDirectives, [parsedElement], ngContentIndex, element.sourceSpan);
|
|
}
|
|
return parsedElement;
|
|
};
|
|
TemplateParseVisitor.prototype._parseInlineTemplateBinding = function(attr, targetMatchableAttrs, targetProps, targetVars) {
|
|
var templateBindingsSource = null;
|
|
if (attr.name == TEMPLATE_ATTR) {
|
|
templateBindingsSource = attr.value;
|
|
} else if (attr.name.startsWith(TEMPLATE_ATTR_PREFIX)) {
|
|
var key = attr.name.substring(TEMPLATE_ATTR_PREFIX.length);
|
|
templateBindingsSource = (attr.value.length == 0) ? key : key + ' ' + attr.value;
|
|
}
|
|
if (lang_1.isPresent(templateBindingsSource)) {
|
|
var bindings = this._parseTemplateBindings(templateBindingsSource, attr.sourceSpan);
|
|
for (var i = 0; i < bindings.length; i++) {
|
|
var binding = bindings[i];
|
|
if (binding.keyIsVar) {
|
|
targetVars.push(new template_ast_1.VariableAst(binding.key, binding.name, attr.sourceSpan));
|
|
targetMatchableAttrs.push([binding.key, binding.name]);
|
|
} else if (lang_1.isPresent(binding.expression)) {
|
|
this._parsePropertyAst(binding.key, binding.expression, attr.sourceSpan, targetMatchableAttrs, targetProps);
|
|
} else {
|
|
targetMatchableAttrs.push([binding.key, '']);
|
|
this._parseLiteralAttr(binding.key, null, attr.sourceSpan, targetProps);
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
return false;
|
|
};
|
|
TemplateParseVisitor.prototype._parseAttr = function(attr, targetMatchableAttrs, targetProps, targetEvents, targetVars) {
|
|
var attrName = this._normalizeAttributeName(attr.name);
|
|
var attrValue = attr.value;
|
|
var bindParts = lang_1.RegExpWrapper.firstMatch(BIND_NAME_REGEXP, attrName);
|
|
var hasBinding = false;
|
|
if (lang_1.isPresent(bindParts)) {
|
|
hasBinding = true;
|
|
if (lang_1.isPresent(bindParts[1])) {
|
|
this._parseProperty(bindParts[5], attrValue, attr.sourceSpan, targetMatchableAttrs, targetProps);
|
|
} else if (lang_1.isPresent(bindParts[2])) {
|
|
var identifier = bindParts[5];
|
|
this._parseVariable(identifier, attrValue, attr.sourceSpan, targetVars);
|
|
} else if (lang_1.isPresent(bindParts[3])) {
|
|
this._parseEvent(bindParts[5], attrValue, attr.sourceSpan, targetMatchableAttrs, targetEvents);
|
|
} else if (lang_1.isPresent(bindParts[4])) {
|
|
this._parseProperty(bindParts[5], attrValue, attr.sourceSpan, targetMatchableAttrs, targetProps);
|
|
this._parseAssignmentEvent(bindParts[5], attrValue, attr.sourceSpan, targetMatchableAttrs, targetEvents);
|
|
} else if (lang_1.isPresent(bindParts[6])) {
|
|
this._parseProperty(bindParts[6], attrValue, attr.sourceSpan, targetMatchableAttrs, targetProps);
|
|
this._parseAssignmentEvent(bindParts[6], attrValue, attr.sourceSpan, targetMatchableAttrs, targetEvents);
|
|
} else if (lang_1.isPresent(bindParts[7])) {
|
|
this._parseProperty(bindParts[7], attrValue, attr.sourceSpan, targetMatchableAttrs, targetProps);
|
|
} else if (lang_1.isPresent(bindParts[8])) {
|
|
this._parseEvent(bindParts[8], attrValue, attr.sourceSpan, targetMatchableAttrs, targetEvents);
|
|
}
|
|
} else {
|
|
hasBinding = this._parsePropertyInterpolation(attrName, attrValue, attr.sourceSpan, targetMatchableAttrs, targetProps);
|
|
}
|
|
if (!hasBinding) {
|
|
this._parseLiteralAttr(attrName, attrValue, attr.sourceSpan, targetProps);
|
|
}
|
|
return hasBinding;
|
|
};
|
|
TemplateParseVisitor.prototype._normalizeAttributeName = function(attrName) {
|
|
return attrName.toLowerCase().startsWith('data-') ? attrName.substring(5) : attrName;
|
|
};
|
|
TemplateParseVisitor.prototype._parseVariable = function(identifier, value, sourceSpan, targetVars) {
|
|
if (identifier.indexOf('-') > -1) {
|
|
this._reportError("\"-\" is not allowed in variable names", sourceSpan);
|
|
}
|
|
targetVars.push(new template_ast_1.VariableAst(identifier, value, sourceSpan));
|
|
};
|
|
TemplateParseVisitor.prototype._parseProperty = function(name, expression, sourceSpan, targetMatchableAttrs, targetProps) {
|
|
this._parsePropertyAst(name, this._parseBinding(expression, sourceSpan), sourceSpan, targetMatchableAttrs, targetProps);
|
|
};
|
|
TemplateParseVisitor.prototype._parsePropertyInterpolation = function(name, value, sourceSpan, targetMatchableAttrs, targetProps) {
|
|
var expr = this._parseInterpolation(value, sourceSpan);
|
|
if (lang_1.isPresent(expr)) {
|
|
this._parsePropertyAst(name, expr, sourceSpan, targetMatchableAttrs, targetProps);
|
|
return true;
|
|
}
|
|
return false;
|
|
};
|
|
TemplateParseVisitor.prototype._parsePropertyAst = function(name, ast, sourceSpan, targetMatchableAttrs, targetProps) {
|
|
targetMatchableAttrs.push([name, ast.source]);
|
|
targetProps.push(new BoundElementOrDirectiveProperty(name, ast, false, sourceSpan));
|
|
};
|
|
TemplateParseVisitor.prototype._parseAssignmentEvent = function(name, expression, sourceSpan, targetMatchableAttrs, targetEvents) {
|
|
this._parseEvent(name + "Change", expression + "=$event", sourceSpan, targetMatchableAttrs, targetEvents);
|
|
};
|
|
TemplateParseVisitor.prototype._parseEvent = function(name, expression, sourceSpan, targetMatchableAttrs, targetEvents) {
|
|
var parts = util_1.splitAtColon(name, [null, name]);
|
|
var target = parts[0];
|
|
var eventName = parts[1];
|
|
var ast = this._parseAction(expression, sourceSpan);
|
|
targetMatchableAttrs.push([name, ast.source]);
|
|
targetEvents.push(new template_ast_1.BoundEventAst(eventName, target, ast, sourceSpan));
|
|
};
|
|
TemplateParseVisitor.prototype._parseLiteralAttr = function(name, value, sourceSpan, targetProps) {
|
|
targetProps.push(new BoundElementOrDirectiveProperty(name, this._exprParser.wrapLiteralPrimitive(value, ''), true, sourceSpan));
|
|
};
|
|
TemplateParseVisitor.prototype._parseDirectives = function(selectorMatcher, elementCssSelector) {
|
|
var _this = this;
|
|
var directives = [];
|
|
selectorMatcher.match(elementCssSelector, function(selector, directive) {
|
|
directives.push(directive);
|
|
});
|
|
collection_1.ListWrapper.sort(directives, function(dir1, dir2) {
|
|
var dir1Comp = dir1.isComponent;
|
|
var dir2Comp = dir2.isComponent;
|
|
if (dir1Comp && !dir2Comp) {
|
|
return -1;
|
|
} else if (!dir1Comp && dir2Comp) {
|
|
return 1;
|
|
} else {
|
|
return _this.directivesIndex.get(dir1) - _this.directivesIndex.get(dir2);
|
|
}
|
|
});
|
|
return directives;
|
|
};
|
|
TemplateParseVisitor.prototype._createDirectiveAsts = function(elementName, directives, props, possibleExportAsVars, sourceSpan) {
|
|
var _this = this;
|
|
var matchedVariables = new Set();
|
|
var directiveAsts = directives.map(function(directive) {
|
|
var hostProperties = [];
|
|
var hostEvents = [];
|
|
var directiveProperties = [];
|
|
_this._createDirectiveHostPropertyAsts(elementName, directive.hostProperties, sourceSpan, hostProperties);
|
|
_this._createDirectiveHostEventAsts(directive.hostListeners, sourceSpan, hostEvents);
|
|
_this._createDirectivePropertyAsts(directive.inputs, props, directiveProperties);
|
|
var exportAsVars = [];
|
|
possibleExportAsVars.forEach(function(varAst) {
|
|
if ((varAst.value.length === 0 && directive.isComponent) || (directive.exportAs == varAst.value)) {
|
|
exportAsVars.push(varAst);
|
|
matchedVariables.add(varAst.name);
|
|
}
|
|
});
|
|
return new template_ast_1.DirectiveAst(directive, directiveProperties, hostProperties, hostEvents, exportAsVars, sourceSpan);
|
|
});
|
|
possibleExportAsVars.forEach(function(varAst) {
|
|
if (varAst.value.length > 0 && !collection_1.SetWrapper.has(matchedVariables, varAst.name)) {
|
|
_this._reportError("There is no directive with \"exportAs\" set to \"" + varAst.value + "\"", varAst.sourceSpan);
|
|
}
|
|
});
|
|
return directiveAsts;
|
|
};
|
|
TemplateParseVisitor.prototype._createDirectiveHostPropertyAsts = function(elementName, hostProps, sourceSpan, targetPropertyAsts) {
|
|
var _this = this;
|
|
if (lang_1.isPresent(hostProps)) {
|
|
collection_1.StringMapWrapper.forEach(hostProps, function(expression, propName) {
|
|
var exprAst = _this._parseBinding(expression, sourceSpan);
|
|
targetPropertyAsts.push(_this._createElementPropertyAst(elementName, propName, exprAst, sourceSpan));
|
|
});
|
|
}
|
|
};
|
|
TemplateParseVisitor.prototype._createDirectiveHostEventAsts = function(hostListeners, sourceSpan, targetEventAsts) {
|
|
var _this = this;
|
|
if (lang_1.isPresent(hostListeners)) {
|
|
collection_1.StringMapWrapper.forEach(hostListeners, function(expression, propName) {
|
|
_this._parseEvent(propName, expression, sourceSpan, [], targetEventAsts);
|
|
});
|
|
}
|
|
};
|
|
TemplateParseVisitor.prototype._createDirectivePropertyAsts = function(directiveProperties, boundProps, targetBoundDirectiveProps) {
|
|
if (lang_1.isPresent(directiveProperties)) {
|
|
var boundPropsByName = new Map();
|
|
boundProps.forEach(function(boundProp) {
|
|
var prevValue = boundPropsByName.get(boundProp.name);
|
|
if (lang_1.isBlank(prevValue) || prevValue.isLiteral) {
|
|
boundPropsByName.set(boundProp.name, boundProp);
|
|
}
|
|
});
|
|
collection_1.StringMapWrapper.forEach(directiveProperties, function(elProp, dirProp) {
|
|
var boundProp = boundPropsByName.get(elProp);
|
|
if (lang_1.isPresent(boundProp)) {
|
|
targetBoundDirectiveProps.push(new template_ast_1.BoundDirectivePropertyAst(dirProp, boundProp.name, boundProp.expression, boundProp.sourceSpan));
|
|
}
|
|
});
|
|
}
|
|
};
|
|
TemplateParseVisitor.prototype._createElementPropertyAsts = function(elementName, props, directives) {
|
|
var _this = this;
|
|
var boundElementProps = [];
|
|
var boundDirectivePropsIndex = new Map();
|
|
directives.forEach(function(directive) {
|
|
directive.inputs.forEach(function(prop) {
|
|
boundDirectivePropsIndex.set(prop.templateName, prop);
|
|
});
|
|
});
|
|
props.forEach(function(prop) {
|
|
if (!prop.isLiteral && lang_1.isBlank(boundDirectivePropsIndex.get(prop.name))) {
|
|
boundElementProps.push(_this._createElementPropertyAst(elementName, prop.name, prop.expression, prop.sourceSpan));
|
|
}
|
|
});
|
|
return boundElementProps;
|
|
};
|
|
TemplateParseVisitor.prototype._createElementPropertyAst = function(elementName, name, ast, sourceSpan) {
|
|
var unit = null;
|
|
var bindingType;
|
|
var boundPropertyName;
|
|
var parts = name.split(PROPERTY_PARTS_SEPARATOR);
|
|
if (parts.length === 1) {
|
|
boundPropertyName = this._schemaRegistry.getMappedPropName(parts[0]);
|
|
bindingType = template_ast_1.PropertyBindingType.Property;
|
|
if (!this._schemaRegistry.hasProperty(elementName, boundPropertyName)) {
|
|
this._reportError("Can't bind to '" + boundPropertyName + "' since it isn't a known native property", sourceSpan);
|
|
}
|
|
} else {
|
|
if (parts[0] == ATTRIBUTE_PREFIX) {
|
|
boundPropertyName = parts[1];
|
|
var nsSeparatorIdx = boundPropertyName.indexOf(':');
|
|
if (nsSeparatorIdx > -1) {
|
|
var ns = boundPropertyName.substring(0, nsSeparatorIdx);
|
|
var name_1 = boundPropertyName.substring(nsSeparatorIdx + 1);
|
|
boundPropertyName = html_tags_1.mergeNsAndName(ns, name_1);
|
|
}
|
|
bindingType = template_ast_1.PropertyBindingType.Attribute;
|
|
} else if (parts[0] == CLASS_PREFIX) {
|
|
boundPropertyName = parts[1];
|
|
bindingType = template_ast_1.PropertyBindingType.Class;
|
|
} else if (parts[0] == STYLE_PREFIX) {
|
|
unit = parts.length > 2 ? parts[2] : null;
|
|
boundPropertyName = parts[1];
|
|
bindingType = template_ast_1.PropertyBindingType.Style;
|
|
} else {
|
|
this._reportError("Invalid property name '" + name + "'", sourceSpan);
|
|
bindingType = null;
|
|
}
|
|
}
|
|
return new template_ast_1.BoundElementPropertyAst(boundPropertyName, bindingType, ast, unit, sourceSpan);
|
|
};
|
|
TemplateParseVisitor.prototype._findComponentDirectiveNames = function(directives) {
|
|
var componentTypeNames = [];
|
|
directives.forEach(function(directive) {
|
|
var typeName = directive.directive.type.name;
|
|
if (directive.directive.isComponent) {
|
|
componentTypeNames.push(typeName);
|
|
}
|
|
});
|
|
return componentTypeNames;
|
|
};
|
|
TemplateParseVisitor.prototype._assertOnlyOneComponent = function(directives, sourceSpan) {
|
|
var componentTypeNames = this._findComponentDirectiveNames(directives);
|
|
if (componentTypeNames.length > 1) {
|
|
this._reportError("More than one component: " + componentTypeNames.join(','), sourceSpan);
|
|
}
|
|
};
|
|
TemplateParseVisitor.prototype._assertNoComponentsNorElementBindingsOnTemplate = function(directives, elementProps, sourceSpan) {
|
|
var _this = this;
|
|
var componentTypeNames = this._findComponentDirectiveNames(directives);
|
|
if (componentTypeNames.length > 0) {
|
|
this._reportError("Components on an embedded template: " + componentTypeNames.join(','), sourceSpan);
|
|
}
|
|
elementProps.forEach(function(prop) {
|
|
_this._reportError("Property binding " + prop.name + " not used by any directive on an embedded template", sourceSpan);
|
|
});
|
|
};
|
|
TemplateParseVisitor.prototype._assertAllEventsPublishedByDirectives = function(directives, events) {
|
|
var _this = this;
|
|
var allDirectiveEvents = new Set();
|
|
directives.forEach(function(directive) {
|
|
collection_1.StringMapWrapper.forEach(directive.directive.outputs, function(eventName, _) {
|
|
allDirectiveEvents.add(eventName);
|
|
});
|
|
});
|
|
events.forEach(function(event) {
|
|
if (lang_1.isPresent(event.target) || !collection_1.SetWrapper.has(allDirectiveEvents, event.name)) {
|
|
_this._reportError("Event binding " + event.fullName + " not emitted by any directive on an embedded template", event.sourceSpan);
|
|
}
|
|
});
|
|
};
|
|
return TemplateParseVisitor;
|
|
})();
|
|
var NonBindableVisitor = (function() {
|
|
function NonBindableVisitor() {}
|
|
NonBindableVisitor.prototype.visitElement = function(ast, component) {
|
|
var preparsedElement = template_preparser_1.preparseElement(ast);
|
|
if (preparsedElement.type === template_preparser_1.PreparsedElementType.SCRIPT || preparsedElement.type === template_preparser_1.PreparsedElementType.STYLE || preparsedElement.type === template_preparser_1.PreparsedElementType.STYLESHEET) {
|
|
return null;
|
|
}
|
|
var attrNameAndValues = ast.attrs.map(function(attrAst) {
|
|
return [attrAst.name, attrAst.value];
|
|
});
|
|
var selector = createElementCssSelector(ast.name, attrNameAndValues);
|
|
var ngContentIndex = component.findNgContentIndex(selector);
|
|
var children = html_ast_1.htmlVisitAll(this, ast.children, EMPTY_COMPONENT);
|
|
return new template_ast_1.ElementAst(ast.name, html_ast_1.htmlVisitAll(this, ast.attrs), [], [], [], [], children, ngContentIndex, ast.sourceSpan);
|
|
};
|
|
NonBindableVisitor.prototype.visitComment = function(ast, context) {
|
|
return null;
|
|
};
|
|
NonBindableVisitor.prototype.visitAttr = function(ast, context) {
|
|
return new template_ast_1.AttrAst(ast.name, ast.value, ast.sourceSpan);
|
|
};
|
|
NonBindableVisitor.prototype.visitText = function(ast, component) {
|
|
var ngContentIndex = component.findNgContentIndex(TEXT_CSS_SELECTOR);
|
|
return new template_ast_1.TextAst(ast.value, ngContentIndex, ast.sourceSpan);
|
|
};
|
|
return NonBindableVisitor;
|
|
})();
|
|
var BoundElementOrDirectiveProperty = (function() {
|
|
function BoundElementOrDirectiveProperty(name, expression, isLiteral, sourceSpan) {
|
|
this.name = name;
|
|
this.expression = expression;
|
|
this.isLiteral = isLiteral;
|
|
this.sourceSpan = sourceSpan;
|
|
}
|
|
return BoundElementOrDirectiveProperty;
|
|
})();
|
|
function splitClasses(classAttrValue) {
|
|
return lang_1.StringWrapper.split(classAttrValue.trim(), /\s+/g);
|
|
}
|
|
exports.splitClasses = splitClasses;
|
|
var Component = (function() {
|
|
function Component(ngContentIndexMatcher, wildcardNgContentIndex) {
|
|
this.ngContentIndexMatcher = ngContentIndexMatcher;
|
|
this.wildcardNgContentIndex = wildcardNgContentIndex;
|
|
}
|
|
Component.create = function(directives) {
|
|
if (directives.length === 0 || !directives[0].directive.isComponent) {
|
|
return EMPTY_COMPONENT;
|
|
}
|
|
var matcher = new selector_1.SelectorMatcher();
|
|
var ngContentSelectors = directives[0].directive.template.ngContentSelectors;
|
|
var wildcardNgContentIndex = null;
|
|
for (var i = 0; i < ngContentSelectors.length; i++) {
|
|
var selector = ngContentSelectors[i];
|
|
if (lang_1.StringWrapper.equals(selector, '*')) {
|
|
wildcardNgContentIndex = i;
|
|
} else {
|
|
matcher.addSelectables(selector_1.CssSelector.parse(ngContentSelectors[i]), i);
|
|
}
|
|
}
|
|
return new Component(matcher, wildcardNgContentIndex);
|
|
};
|
|
Component.prototype.findNgContentIndex = function(selector) {
|
|
var ngContentIndices = [];
|
|
this.ngContentIndexMatcher.match(selector, function(selector, ngContentIndex) {
|
|
ngContentIndices.push(ngContentIndex);
|
|
});
|
|
collection_1.ListWrapper.sort(ngContentIndices);
|
|
if (lang_1.isPresent(this.wildcardNgContentIndex)) {
|
|
ngContentIndices.push(this.wildcardNgContentIndex);
|
|
}
|
|
return ngContentIndices.length > 0 ? ngContentIndices[0] : null;
|
|
};
|
|
return Component;
|
|
})();
|
|
function createElementCssSelector(elementName, matchableAttrs) {
|
|
var cssSelector = new selector_1.CssSelector();
|
|
var elNameNoNs = html_tags_1.splitNsName(elementName)[1];
|
|
cssSelector.setElement(elNameNoNs);
|
|
for (var i = 0; i < matchableAttrs.length; i++) {
|
|
var attrName = matchableAttrs[i][0];
|
|
var attrNameNoNs = html_tags_1.splitNsName(attrName)[1];
|
|
var attrValue = matchableAttrs[i][1];
|
|
cssSelector.addAttribute(attrNameNoNs, attrValue);
|
|
if (attrName.toLowerCase() == CLASS_ATTR) {
|
|
var classes = splitClasses(attrValue);
|
|
classes.forEach(function(className) {
|
|
return cssSelector.addClassName(className);
|
|
});
|
|
}
|
|
}
|
|
return cssSelector;
|
|
}
|
|
var EMPTY_COMPONENT = new Component(new selector_1.SelectorMatcher(), null);
|
|
var NON_BINDABLE_VISITOR = new NonBindableVisitor();
|
|
var PipeCollector = (function(_super) {
|
|
__extends(PipeCollector, _super);
|
|
function PipeCollector() {
|
|
_super.apply(this, arguments);
|
|
this.pipes = new Set();
|
|
}
|
|
PipeCollector.prototype.visitPipe = function(ast) {
|
|
this.pipes.add(ast.name);
|
|
ast.exp.visit(this);
|
|
this.visitAll(ast.args);
|
|
return null;
|
|
};
|
|
return PipeCollector;
|
|
})(ast_1.RecursiveAstVisitor);
|
|
exports.PipeCollector = PipeCollector;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/router/route_registry", ["angular2/src/facade/collection", "angular2/src/facade/async", "angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/core/reflection/reflection", "angular2/core", "angular2/src/router/route_config/route_config_impl", "angular2/src/router/rules/rules", "angular2/src/router/rules/rule_set", "angular2/src/router/instruction", "angular2/src/router/route_config/route_config_normalizer", "angular2/src/router/url_parser"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var __param = (this && this.__param) || function(paramIndex, decorator) {
|
|
return function(target, key) {
|
|
decorator(target, key, paramIndex);
|
|
};
|
|
};
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var async_1 = require("angular2/src/facade/async");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var reflection_1 = require("angular2/src/core/reflection/reflection");
|
|
var core_1 = require("angular2/core");
|
|
var route_config_impl_1 = require("angular2/src/router/route_config/route_config_impl");
|
|
var rules_1 = require("angular2/src/router/rules/rules");
|
|
var rule_set_1 = require("angular2/src/router/rules/rule_set");
|
|
var instruction_1 = require("angular2/src/router/instruction");
|
|
var route_config_normalizer_1 = require("angular2/src/router/route_config/route_config_normalizer");
|
|
var url_parser_1 = require("angular2/src/router/url_parser");
|
|
var _resolveToNull = async_1.PromiseWrapper.resolve(null);
|
|
exports.ROUTER_PRIMARY_COMPONENT = lang_1.CONST_EXPR(new core_1.OpaqueToken('RouterPrimaryComponent'));
|
|
var RouteRegistry = (function() {
|
|
function RouteRegistry(_rootComponent) {
|
|
this._rootComponent = _rootComponent;
|
|
this._rules = new collection_1.Map();
|
|
}
|
|
RouteRegistry.prototype.config = function(parentComponent, config) {
|
|
config = route_config_normalizer_1.normalizeRouteConfig(config, this);
|
|
if (config instanceof route_config_impl_1.Route) {
|
|
route_config_normalizer_1.assertComponentExists(config.component, config.path);
|
|
} else if (config instanceof route_config_impl_1.AuxRoute) {
|
|
route_config_normalizer_1.assertComponentExists(config.component, config.path);
|
|
}
|
|
var rules = this._rules.get(parentComponent);
|
|
if (lang_1.isBlank(rules)) {
|
|
rules = new rule_set_1.RuleSet();
|
|
this._rules.set(parentComponent, rules);
|
|
}
|
|
var terminal = rules.config(config);
|
|
if (config instanceof route_config_impl_1.Route) {
|
|
if (terminal) {
|
|
assertTerminalComponent(config.component, config.path);
|
|
} else {
|
|
this.configFromComponent(config.component);
|
|
}
|
|
}
|
|
};
|
|
RouteRegistry.prototype.configFromComponent = function(component) {
|
|
var _this = this;
|
|
if (!lang_1.isType(component)) {
|
|
return ;
|
|
}
|
|
if (this._rules.has(component)) {
|
|
return ;
|
|
}
|
|
var annotations = reflection_1.reflector.annotations(component);
|
|
if (lang_1.isPresent(annotations)) {
|
|
for (var i = 0; i < annotations.length; i++) {
|
|
var annotation = annotations[i];
|
|
if (annotation instanceof route_config_impl_1.RouteConfig) {
|
|
var routeCfgs = annotation.configs;
|
|
routeCfgs.forEach(function(config) {
|
|
return _this.config(component, config);
|
|
});
|
|
}
|
|
}
|
|
}
|
|
};
|
|
RouteRegistry.prototype.recognize = function(url, ancestorInstructions) {
|
|
var parsedUrl = url_parser_1.parser.parse(url);
|
|
return this._recognize(parsedUrl, []);
|
|
};
|
|
RouteRegistry.prototype._recognize = function(parsedUrl, ancestorInstructions, _aux) {
|
|
var _this = this;
|
|
if (_aux === void 0) {
|
|
_aux = false;
|
|
}
|
|
var parentInstruction = collection_1.ListWrapper.last(ancestorInstructions);
|
|
var parentComponent = lang_1.isPresent(parentInstruction) ? parentInstruction.component.componentType : this._rootComponent;
|
|
var rules = this._rules.get(parentComponent);
|
|
if (lang_1.isBlank(rules)) {
|
|
return _resolveToNull;
|
|
}
|
|
var possibleMatches = _aux ? rules.recognizeAuxiliary(parsedUrl) : rules.recognize(parsedUrl);
|
|
var matchPromises = possibleMatches.map(function(candidate) {
|
|
return candidate.then(function(candidate) {
|
|
if (candidate instanceof rules_1.PathMatch) {
|
|
var auxParentInstructions = ancestorInstructions.length > 0 ? [collection_1.ListWrapper.last(ancestorInstructions)] : [];
|
|
var auxInstructions = _this._auxRoutesToUnresolved(candidate.remainingAux, auxParentInstructions);
|
|
var instruction = new instruction_1.ResolvedInstruction(candidate.instruction, null, auxInstructions);
|
|
if (lang_1.isBlank(candidate.instruction) || candidate.instruction.terminal) {
|
|
return instruction;
|
|
}
|
|
var newAncestorInstructions = ancestorInstructions.concat([instruction]);
|
|
return _this._recognize(candidate.remaining, newAncestorInstructions).then(function(childInstruction) {
|
|
if (lang_1.isBlank(childInstruction)) {
|
|
return null;
|
|
}
|
|
if (childInstruction instanceof instruction_1.RedirectInstruction) {
|
|
return childInstruction;
|
|
}
|
|
instruction.child = childInstruction;
|
|
return instruction;
|
|
});
|
|
}
|
|
if (candidate instanceof rules_1.RedirectMatch) {
|
|
var instruction = _this.generate(candidate.redirectTo, ancestorInstructions.concat([null]));
|
|
return new instruction_1.RedirectInstruction(instruction.component, instruction.child, instruction.auxInstruction, candidate.specificity);
|
|
}
|
|
});
|
|
});
|
|
if ((lang_1.isBlank(parsedUrl) || parsedUrl.path == '') && possibleMatches.length == 0) {
|
|
return async_1.PromiseWrapper.resolve(this.generateDefault(parentComponent));
|
|
}
|
|
return async_1.PromiseWrapper.all(matchPromises).then(mostSpecific);
|
|
};
|
|
RouteRegistry.prototype._auxRoutesToUnresolved = function(auxRoutes, parentInstructions) {
|
|
var _this = this;
|
|
var unresolvedAuxInstructions = {};
|
|
auxRoutes.forEach(function(auxUrl) {
|
|
unresolvedAuxInstructions[auxUrl.path] = new instruction_1.UnresolvedInstruction(function() {
|
|
return _this._recognize(auxUrl, parentInstructions, true);
|
|
});
|
|
});
|
|
return unresolvedAuxInstructions;
|
|
};
|
|
RouteRegistry.prototype.generate = function(linkParams, ancestorInstructions, _aux) {
|
|
if (_aux === void 0) {
|
|
_aux = false;
|
|
}
|
|
var params = splitAndFlattenLinkParams(linkParams);
|
|
var prevInstruction;
|
|
if (collection_1.ListWrapper.first(params) == '') {
|
|
params.shift();
|
|
prevInstruction = collection_1.ListWrapper.first(ancestorInstructions);
|
|
ancestorInstructions = [];
|
|
} else {
|
|
prevInstruction = ancestorInstructions.length > 0 ? ancestorInstructions.pop() : null;
|
|
if (collection_1.ListWrapper.first(params) == '.') {
|
|
params.shift();
|
|
} else if (collection_1.ListWrapper.first(params) == '..') {
|
|
while (collection_1.ListWrapper.first(params) == '..') {
|
|
if (ancestorInstructions.length <= 0) {
|
|
throw new exceptions_1.BaseException("Link \"" + collection_1.ListWrapper.toJSON(linkParams) + "\" has too many \"../\" segments.");
|
|
}
|
|
prevInstruction = ancestorInstructions.pop();
|
|
params = collection_1.ListWrapper.slice(params, 1);
|
|
}
|
|
} else {
|
|
var routeName = collection_1.ListWrapper.first(params);
|
|
var parentComponentType = this._rootComponent;
|
|
var grandparentComponentType = null;
|
|
if (ancestorInstructions.length > 1) {
|
|
var parentComponentInstruction = ancestorInstructions[ancestorInstructions.length - 1];
|
|
var grandComponentInstruction = ancestorInstructions[ancestorInstructions.length - 2];
|
|
parentComponentType = parentComponentInstruction.component.componentType;
|
|
grandparentComponentType = grandComponentInstruction.component.componentType;
|
|
} else if (ancestorInstructions.length == 1) {
|
|
parentComponentType = ancestorInstructions[0].component.componentType;
|
|
grandparentComponentType = this._rootComponent;
|
|
}
|
|
var childRouteExists = this.hasRoute(routeName, parentComponentType);
|
|
var parentRouteExists = lang_1.isPresent(grandparentComponentType) && this.hasRoute(routeName, grandparentComponentType);
|
|
if (parentRouteExists && childRouteExists) {
|
|
var msg = "Link \"" + collection_1.ListWrapper.toJSON(linkParams) + "\" is ambiguous, use \"./\" or \"../\" to disambiguate.";
|
|
throw new exceptions_1.BaseException(msg);
|
|
}
|
|
if (parentRouteExists) {
|
|
prevInstruction = ancestorInstructions.pop();
|
|
}
|
|
}
|
|
}
|
|
if (params[params.length - 1] == '') {
|
|
params.pop();
|
|
}
|
|
if (params.length > 0 && params[0] == '') {
|
|
params.shift();
|
|
}
|
|
if (params.length < 1) {
|
|
var msg = "Link \"" + collection_1.ListWrapper.toJSON(linkParams) + "\" must include a route name.";
|
|
throw new exceptions_1.BaseException(msg);
|
|
}
|
|
var generatedInstruction = this._generate(params, ancestorInstructions, prevInstruction, _aux, linkParams);
|
|
for (var i = ancestorInstructions.length - 1; i >= 0; i--) {
|
|
var ancestorInstruction = ancestorInstructions[i];
|
|
if (lang_1.isBlank(ancestorInstruction)) {
|
|
break;
|
|
}
|
|
generatedInstruction = ancestorInstruction.replaceChild(generatedInstruction);
|
|
}
|
|
return generatedInstruction;
|
|
};
|
|
RouteRegistry.prototype._generate = function(linkParams, ancestorInstructions, prevInstruction, _aux, _originalLink) {
|
|
var _this = this;
|
|
if (_aux === void 0) {
|
|
_aux = false;
|
|
}
|
|
var parentComponentType = this._rootComponent;
|
|
var componentInstruction = null;
|
|
var auxInstructions = {};
|
|
var parentInstruction = collection_1.ListWrapper.last(ancestorInstructions);
|
|
if (lang_1.isPresent(parentInstruction) && lang_1.isPresent(parentInstruction.component)) {
|
|
parentComponentType = parentInstruction.component.componentType;
|
|
}
|
|
if (linkParams.length == 0) {
|
|
var defaultInstruction = this.generateDefault(parentComponentType);
|
|
if (lang_1.isBlank(defaultInstruction)) {
|
|
throw new exceptions_1.BaseException("Link \"" + collection_1.ListWrapper.toJSON(_originalLink) + "\" does not resolve to a terminal instruction.");
|
|
}
|
|
return defaultInstruction;
|
|
}
|
|
if (lang_1.isPresent(prevInstruction) && !_aux) {
|
|
auxInstructions = collection_1.StringMapWrapper.merge(prevInstruction.auxInstruction, auxInstructions);
|
|
componentInstruction = prevInstruction.component;
|
|
}
|
|
var rules = this._rules.get(parentComponentType);
|
|
if (lang_1.isBlank(rules)) {
|
|
throw new exceptions_1.BaseException("Component \"" + lang_1.getTypeNameForDebugging(parentComponentType) + "\" has no route config.");
|
|
}
|
|
var linkParamIndex = 0;
|
|
var routeParams = {};
|
|
if (linkParamIndex < linkParams.length && lang_1.isString(linkParams[linkParamIndex])) {
|
|
var routeName = linkParams[linkParamIndex];
|
|
if (routeName == '' || routeName == '.' || routeName == '..') {
|
|
throw new exceptions_1.BaseException("\"" + routeName + "/\" is only allowed at the beginning of a link DSL.");
|
|
}
|
|
linkParamIndex += 1;
|
|
if (linkParamIndex < linkParams.length) {
|
|
var linkParam = linkParams[linkParamIndex];
|
|
if (lang_1.isStringMap(linkParam) && !lang_1.isArray(linkParam)) {
|
|
routeParams = linkParam;
|
|
linkParamIndex += 1;
|
|
}
|
|
}
|
|
var routeRecognizer = (_aux ? rules.auxRulesByName : rules.rulesByName).get(routeName);
|
|
if (lang_1.isBlank(routeRecognizer)) {
|
|
throw new exceptions_1.BaseException("Component \"" + lang_1.getTypeNameForDebugging(parentComponentType) + "\" has no route named \"" + routeName + "\".");
|
|
}
|
|
if (lang_1.isBlank(routeRecognizer.handler.componentType)) {
|
|
var generatedUrl = routeRecognizer.generateComponentPathValues(routeParams);
|
|
return new instruction_1.UnresolvedInstruction(function() {
|
|
return routeRecognizer.handler.resolveComponentType().then(function(_) {
|
|
return _this._generate(linkParams, ancestorInstructions, prevInstruction, _aux, _originalLink);
|
|
});
|
|
}, generatedUrl.urlPath, url_parser_1.convertUrlParamsToArray(generatedUrl.urlParams));
|
|
}
|
|
componentInstruction = _aux ? rules.generateAuxiliary(routeName, routeParams) : rules.generate(routeName, routeParams);
|
|
}
|
|
while (linkParamIndex < linkParams.length && lang_1.isArray(linkParams[linkParamIndex])) {
|
|
var auxParentInstruction = [parentInstruction];
|
|
var auxInstruction = this._generate(linkParams[linkParamIndex], auxParentInstruction, null, true, _originalLink);
|
|
auxInstructions[auxInstruction.component.urlPath] = auxInstruction;
|
|
linkParamIndex += 1;
|
|
}
|
|
var instruction = new instruction_1.ResolvedInstruction(componentInstruction, null, auxInstructions);
|
|
if (lang_1.isPresent(componentInstruction) && lang_1.isPresent(componentInstruction.componentType)) {
|
|
var childInstruction = null;
|
|
if (componentInstruction.terminal) {
|
|
if (linkParamIndex >= linkParams.length) {}
|
|
} else {
|
|
var childAncestorComponents = ancestorInstructions.concat([instruction]);
|
|
var remainingLinkParams = linkParams.slice(linkParamIndex);
|
|
childInstruction = this._generate(remainingLinkParams, childAncestorComponents, null, false, _originalLink);
|
|
}
|
|
instruction.child = childInstruction;
|
|
}
|
|
return instruction;
|
|
};
|
|
RouteRegistry.prototype.hasRoute = function(name, parentComponent) {
|
|
var rules = this._rules.get(parentComponent);
|
|
if (lang_1.isBlank(rules)) {
|
|
return false;
|
|
}
|
|
return rules.hasRoute(name);
|
|
};
|
|
RouteRegistry.prototype.generateDefault = function(componentCursor) {
|
|
var _this = this;
|
|
if (lang_1.isBlank(componentCursor)) {
|
|
return null;
|
|
}
|
|
var rules = this._rules.get(componentCursor);
|
|
if (lang_1.isBlank(rules) || lang_1.isBlank(rules.defaultRule)) {
|
|
return null;
|
|
}
|
|
var defaultChild = null;
|
|
if (lang_1.isPresent(rules.defaultRule.handler.componentType)) {
|
|
var componentInstruction = rules.defaultRule.generate({});
|
|
if (!rules.defaultRule.terminal) {
|
|
defaultChild = this.generateDefault(rules.defaultRule.handler.componentType);
|
|
}
|
|
return new instruction_1.DefaultInstruction(componentInstruction, defaultChild);
|
|
}
|
|
return new instruction_1.UnresolvedInstruction(function() {
|
|
return rules.defaultRule.handler.resolveComponentType().then(function(_) {
|
|
return _this.generateDefault(componentCursor);
|
|
});
|
|
});
|
|
};
|
|
RouteRegistry = __decorate([core_1.Injectable(), __param(0, core_1.Inject(exports.ROUTER_PRIMARY_COMPONENT)), __metadata('design:paramtypes', [lang_1.Type])], RouteRegistry);
|
|
return RouteRegistry;
|
|
})();
|
|
exports.RouteRegistry = RouteRegistry;
|
|
function splitAndFlattenLinkParams(linkParams) {
|
|
var accumulation = [];
|
|
linkParams.forEach(function(item) {
|
|
if (lang_1.isString(item)) {
|
|
var strItem = item;
|
|
accumulation = accumulation.concat(strItem.split('/'));
|
|
} else {
|
|
accumulation.push(item);
|
|
}
|
|
});
|
|
return accumulation;
|
|
}
|
|
function mostSpecific(instructions) {
|
|
instructions = instructions.filter(function(instruction) {
|
|
return lang_1.isPresent(instruction);
|
|
});
|
|
if (instructions.length == 0) {
|
|
return null;
|
|
}
|
|
if (instructions.length == 1) {
|
|
return instructions[0];
|
|
}
|
|
var first = instructions[0];
|
|
var rest = instructions.slice(1);
|
|
return rest.reduce(function(instruction, contender) {
|
|
if (compareSpecificityStrings(contender.specificity, instruction.specificity) == -1) {
|
|
return contender;
|
|
}
|
|
return instruction;
|
|
}, first);
|
|
}
|
|
function compareSpecificityStrings(a, b) {
|
|
var l = lang_1.Math.min(a.length, b.length);
|
|
for (var i = 0; i < l; i += 1) {
|
|
var ai = lang_1.StringWrapper.charCodeAt(a, i);
|
|
var bi = lang_1.StringWrapper.charCodeAt(b, i);
|
|
var difference = bi - ai;
|
|
if (difference != 0) {
|
|
return difference;
|
|
}
|
|
}
|
|
return a.length - b.length;
|
|
}
|
|
function assertTerminalComponent(component, path) {
|
|
if (!lang_1.isType(component)) {
|
|
return ;
|
|
}
|
|
var annotations = reflection_1.reflector.annotations(component);
|
|
if (lang_1.isPresent(annotations)) {
|
|
for (var i = 0; i < annotations.length; i++) {
|
|
var annotation = annotations[i];
|
|
if (annotation instanceof route_config_impl_1.RouteConfig) {
|
|
throw new exceptions_1.BaseException("Child routes are not allowed for \"" + path + "\". Use \"...\" on the parent's route path.");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("rxjs/util/toSubscriber", ["rxjs/Subscriber", "rxjs/symbol/rxSubscriber"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
"use strict";
|
|
var Subscriber_1 = require("rxjs/Subscriber");
|
|
var rxSubscriber_1 = require("rxjs/symbol/rxSubscriber");
|
|
function toSubscriber(nextOrObserver, error, complete) {
|
|
if (nextOrObserver && typeof nextOrObserver === 'object') {
|
|
if (nextOrObserver instanceof Subscriber_1.Subscriber) {
|
|
return nextOrObserver;
|
|
} else if (typeof nextOrObserver[rxSubscriber_1.rxSubscriber] === 'function') {
|
|
return nextOrObserver[rxSubscriber_1.rxSubscriber]();
|
|
}
|
|
}
|
|
return new Subscriber_1.Subscriber(nextOrObserver, error, complete);
|
|
}
|
|
exports.toSubscriber = toSubscriber;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/di/injector", ["angular2/src/facade/collection", "angular2/src/core/di/provider", "angular2/src/core/di/exceptions", "angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/core/di/key", "angular2/src/core/di/metadata"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var provider_1 = require("angular2/src/core/di/provider");
|
|
var exceptions_1 = require("angular2/src/core/di/exceptions");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_2 = require("angular2/src/facade/exceptions");
|
|
var key_1 = require("angular2/src/core/di/key");
|
|
var metadata_1 = require("angular2/src/core/di/metadata");
|
|
var _MAX_CONSTRUCTION_COUNTER = 10;
|
|
exports.UNDEFINED = lang_1.CONST_EXPR(new Object());
|
|
(function(Visibility) {
|
|
Visibility[Visibility["Public"] = 0] = "Public";
|
|
Visibility[Visibility["Private"] = 1] = "Private";
|
|
Visibility[Visibility["PublicAndPrivate"] = 2] = "PublicAndPrivate";
|
|
})(exports.Visibility || (exports.Visibility = {}));
|
|
var Visibility = exports.Visibility;
|
|
function canSee(src, dst) {
|
|
return (src === dst) || (dst === Visibility.PublicAndPrivate || src === Visibility.PublicAndPrivate);
|
|
}
|
|
var ProtoInjectorInlineStrategy = (function() {
|
|
function ProtoInjectorInlineStrategy(protoEI, bwv) {
|
|
this.provider0 = null;
|
|
this.provider1 = null;
|
|
this.provider2 = null;
|
|
this.provider3 = null;
|
|
this.provider4 = null;
|
|
this.provider5 = null;
|
|
this.provider6 = null;
|
|
this.provider7 = null;
|
|
this.provider8 = null;
|
|
this.provider9 = null;
|
|
this.keyId0 = null;
|
|
this.keyId1 = null;
|
|
this.keyId2 = null;
|
|
this.keyId3 = null;
|
|
this.keyId4 = null;
|
|
this.keyId5 = null;
|
|
this.keyId6 = null;
|
|
this.keyId7 = null;
|
|
this.keyId8 = null;
|
|
this.keyId9 = null;
|
|
this.visibility0 = null;
|
|
this.visibility1 = null;
|
|
this.visibility2 = null;
|
|
this.visibility3 = null;
|
|
this.visibility4 = null;
|
|
this.visibility5 = null;
|
|
this.visibility6 = null;
|
|
this.visibility7 = null;
|
|
this.visibility8 = null;
|
|
this.visibility9 = null;
|
|
var length = bwv.length;
|
|
if (length > 0) {
|
|
this.provider0 = bwv[0].provider;
|
|
this.keyId0 = bwv[0].getKeyId();
|
|
this.visibility0 = bwv[0].visibility;
|
|
}
|
|
if (length > 1) {
|
|
this.provider1 = bwv[1].provider;
|
|
this.keyId1 = bwv[1].getKeyId();
|
|
this.visibility1 = bwv[1].visibility;
|
|
}
|
|
if (length > 2) {
|
|
this.provider2 = bwv[2].provider;
|
|
this.keyId2 = bwv[2].getKeyId();
|
|
this.visibility2 = bwv[2].visibility;
|
|
}
|
|
if (length > 3) {
|
|
this.provider3 = bwv[3].provider;
|
|
this.keyId3 = bwv[3].getKeyId();
|
|
this.visibility3 = bwv[3].visibility;
|
|
}
|
|
if (length > 4) {
|
|
this.provider4 = bwv[4].provider;
|
|
this.keyId4 = bwv[4].getKeyId();
|
|
this.visibility4 = bwv[4].visibility;
|
|
}
|
|
if (length > 5) {
|
|
this.provider5 = bwv[5].provider;
|
|
this.keyId5 = bwv[5].getKeyId();
|
|
this.visibility5 = bwv[5].visibility;
|
|
}
|
|
if (length > 6) {
|
|
this.provider6 = bwv[6].provider;
|
|
this.keyId6 = bwv[6].getKeyId();
|
|
this.visibility6 = bwv[6].visibility;
|
|
}
|
|
if (length > 7) {
|
|
this.provider7 = bwv[7].provider;
|
|
this.keyId7 = bwv[7].getKeyId();
|
|
this.visibility7 = bwv[7].visibility;
|
|
}
|
|
if (length > 8) {
|
|
this.provider8 = bwv[8].provider;
|
|
this.keyId8 = bwv[8].getKeyId();
|
|
this.visibility8 = bwv[8].visibility;
|
|
}
|
|
if (length > 9) {
|
|
this.provider9 = bwv[9].provider;
|
|
this.keyId9 = bwv[9].getKeyId();
|
|
this.visibility9 = bwv[9].visibility;
|
|
}
|
|
}
|
|
ProtoInjectorInlineStrategy.prototype.getProviderAtIndex = function(index) {
|
|
if (index == 0)
|
|
return this.provider0;
|
|
if (index == 1)
|
|
return this.provider1;
|
|
if (index == 2)
|
|
return this.provider2;
|
|
if (index == 3)
|
|
return this.provider3;
|
|
if (index == 4)
|
|
return this.provider4;
|
|
if (index == 5)
|
|
return this.provider5;
|
|
if (index == 6)
|
|
return this.provider6;
|
|
if (index == 7)
|
|
return this.provider7;
|
|
if (index == 8)
|
|
return this.provider8;
|
|
if (index == 9)
|
|
return this.provider9;
|
|
throw new exceptions_1.OutOfBoundsError(index);
|
|
};
|
|
ProtoInjectorInlineStrategy.prototype.createInjectorStrategy = function(injector) {
|
|
return new InjectorInlineStrategy(injector, this);
|
|
};
|
|
return ProtoInjectorInlineStrategy;
|
|
})();
|
|
exports.ProtoInjectorInlineStrategy = ProtoInjectorInlineStrategy;
|
|
var ProtoInjectorDynamicStrategy = (function() {
|
|
function ProtoInjectorDynamicStrategy(protoInj, bwv) {
|
|
var len = bwv.length;
|
|
this.providers = collection_1.ListWrapper.createFixedSize(len);
|
|
this.keyIds = collection_1.ListWrapper.createFixedSize(len);
|
|
this.visibilities = collection_1.ListWrapper.createFixedSize(len);
|
|
for (var i = 0; i < len; i++) {
|
|
this.providers[i] = bwv[i].provider;
|
|
this.keyIds[i] = bwv[i].getKeyId();
|
|
this.visibilities[i] = bwv[i].visibility;
|
|
}
|
|
}
|
|
ProtoInjectorDynamicStrategy.prototype.getProviderAtIndex = function(index) {
|
|
if (index < 0 || index >= this.providers.length) {
|
|
throw new exceptions_1.OutOfBoundsError(index);
|
|
}
|
|
return this.providers[index];
|
|
};
|
|
ProtoInjectorDynamicStrategy.prototype.createInjectorStrategy = function(ei) {
|
|
return new InjectorDynamicStrategy(this, ei);
|
|
};
|
|
return ProtoInjectorDynamicStrategy;
|
|
})();
|
|
exports.ProtoInjectorDynamicStrategy = ProtoInjectorDynamicStrategy;
|
|
var ProtoInjector = (function() {
|
|
function ProtoInjector(bwv) {
|
|
this.numberOfProviders = bwv.length;
|
|
this._strategy = bwv.length > _MAX_CONSTRUCTION_COUNTER ? new ProtoInjectorDynamicStrategy(this, bwv) : new ProtoInjectorInlineStrategy(this, bwv);
|
|
}
|
|
ProtoInjector.fromResolvedProviders = function(providers) {
|
|
var bd = providers.map(function(b) {
|
|
return new ProviderWithVisibility(b, Visibility.Public);
|
|
});
|
|
return new ProtoInjector(bd);
|
|
};
|
|
ProtoInjector.prototype.getProviderAtIndex = function(index) {
|
|
return this._strategy.getProviderAtIndex(index);
|
|
};
|
|
return ProtoInjector;
|
|
})();
|
|
exports.ProtoInjector = ProtoInjector;
|
|
var InjectorInlineStrategy = (function() {
|
|
function InjectorInlineStrategy(injector, protoStrategy) {
|
|
this.injector = injector;
|
|
this.protoStrategy = protoStrategy;
|
|
this.obj0 = exports.UNDEFINED;
|
|
this.obj1 = exports.UNDEFINED;
|
|
this.obj2 = exports.UNDEFINED;
|
|
this.obj3 = exports.UNDEFINED;
|
|
this.obj4 = exports.UNDEFINED;
|
|
this.obj5 = exports.UNDEFINED;
|
|
this.obj6 = exports.UNDEFINED;
|
|
this.obj7 = exports.UNDEFINED;
|
|
this.obj8 = exports.UNDEFINED;
|
|
this.obj9 = exports.UNDEFINED;
|
|
}
|
|
InjectorInlineStrategy.prototype.resetConstructionCounter = function() {
|
|
this.injector._constructionCounter = 0;
|
|
};
|
|
InjectorInlineStrategy.prototype.instantiateProvider = function(provider, visibility) {
|
|
return this.injector._new(provider, visibility);
|
|
};
|
|
InjectorInlineStrategy.prototype.getObjByKeyId = function(keyId, visibility) {
|
|
var p = this.protoStrategy;
|
|
var inj = this.injector;
|
|
if (p.keyId0 === keyId && canSee(p.visibility0, visibility)) {
|
|
if (this.obj0 === exports.UNDEFINED) {
|
|
this.obj0 = inj._new(p.provider0, p.visibility0);
|
|
}
|
|
return this.obj0;
|
|
}
|
|
if (p.keyId1 === keyId && canSee(p.visibility1, visibility)) {
|
|
if (this.obj1 === exports.UNDEFINED) {
|
|
this.obj1 = inj._new(p.provider1, p.visibility1);
|
|
}
|
|
return this.obj1;
|
|
}
|
|
if (p.keyId2 === keyId && canSee(p.visibility2, visibility)) {
|
|
if (this.obj2 === exports.UNDEFINED) {
|
|
this.obj2 = inj._new(p.provider2, p.visibility2);
|
|
}
|
|
return this.obj2;
|
|
}
|
|
if (p.keyId3 === keyId && canSee(p.visibility3, visibility)) {
|
|
if (this.obj3 === exports.UNDEFINED) {
|
|
this.obj3 = inj._new(p.provider3, p.visibility3);
|
|
}
|
|
return this.obj3;
|
|
}
|
|
if (p.keyId4 === keyId && canSee(p.visibility4, visibility)) {
|
|
if (this.obj4 === exports.UNDEFINED) {
|
|
this.obj4 = inj._new(p.provider4, p.visibility4);
|
|
}
|
|
return this.obj4;
|
|
}
|
|
if (p.keyId5 === keyId && canSee(p.visibility5, visibility)) {
|
|
if (this.obj5 === exports.UNDEFINED) {
|
|
this.obj5 = inj._new(p.provider5, p.visibility5);
|
|
}
|
|
return this.obj5;
|
|
}
|
|
if (p.keyId6 === keyId && canSee(p.visibility6, visibility)) {
|
|
if (this.obj6 === exports.UNDEFINED) {
|
|
this.obj6 = inj._new(p.provider6, p.visibility6);
|
|
}
|
|
return this.obj6;
|
|
}
|
|
if (p.keyId7 === keyId && canSee(p.visibility7, visibility)) {
|
|
if (this.obj7 === exports.UNDEFINED) {
|
|
this.obj7 = inj._new(p.provider7, p.visibility7);
|
|
}
|
|
return this.obj7;
|
|
}
|
|
if (p.keyId8 === keyId && canSee(p.visibility8, visibility)) {
|
|
if (this.obj8 === exports.UNDEFINED) {
|
|
this.obj8 = inj._new(p.provider8, p.visibility8);
|
|
}
|
|
return this.obj8;
|
|
}
|
|
if (p.keyId9 === keyId && canSee(p.visibility9, visibility)) {
|
|
if (this.obj9 === exports.UNDEFINED) {
|
|
this.obj9 = inj._new(p.provider9, p.visibility9);
|
|
}
|
|
return this.obj9;
|
|
}
|
|
return exports.UNDEFINED;
|
|
};
|
|
InjectorInlineStrategy.prototype.getObjAtIndex = function(index) {
|
|
if (index == 0)
|
|
return this.obj0;
|
|
if (index == 1)
|
|
return this.obj1;
|
|
if (index == 2)
|
|
return this.obj2;
|
|
if (index == 3)
|
|
return this.obj3;
|
|
if (index == 4)
|
|
return this.obj4;
|
|
if (index == 5)
|
|
return this.obj5;
|
|
if (index == 6)
|
|
return this.obj6;
|
|
if (index == 7)
|
|
return this.obj7;
|
|
if (index == 8)
|
|
return this.obj8;
|
|
if (index == 9)
|
|
return this.obj9;
|
|
throw new exceptions_1.OutOfBoundsError(index);
|
|
};
|
|
InjectorInlineStrategy.prototype.getMaxNumberOfObjects = function() {
|
|
return _MAX_CONSTRUCTION_COUNTER;
|
|
};
|
|
return InjectorInlineStrategy;
|
|
})();
|
|
exports.InjectorInlineStrategy = InjectorInlineStrategy;
|
|
var InjectorDynamicStrategy = (function() {
|
|
function InjectorDynamicStrategy(protoStrategy, injector) {
|
|
this.protoStrategy = protoStrategy;
|
|
this.injector = injector;
|
|
this.objs = collection_1.ListWrapper.createFixedSize(protoStrategy.providers.length);
|
|
collection_1.ListWrapper.fill(this.objs, exports.UNDEFINED);
|
|
}
|
|
InjectorDynamicStrategy.prototype.resetConstructionCounter = function() {
|
|
this.injector._constructionCounter = 0;
|
|
};
|
|
InjectorDynamicStrategy.prototype.instantiateProvider = function(provider, visibility) {
|
|
return this.injector._new(provider, visibility);
|
|
};
|
|
InjectorDynamicStrategy.prototype.getObjByKeyId = function(keyId, visibility) {
|
|
var p = this.protoStrategy;
|
|
for (var i = 0; i < p.keyIds.length; i++) {
|
|
if (p.keyIds[i] === keyId && canSee(p.visibilities[i], visibility)) {
|
|
if (this.objs[i] === exports.UNDEFINED) {
|
|
this.objs[i] = this.injector._new(p.providers[i], p.visibilities[i]);
|
|
}
|
|
return this.objs[i];
|
|
}
|
|
}
|
|
return exports.UNDEFINED;
|
|
};
|
|
InjectorDynamicStrategy.prototype.getObjAtIndex = function(index) {
|
|
if (index < 0 || index >= this.objs.length) {
|
|
throw new exceptions_1.OutOfBoundsError(index);
|
|
}
|
|
return this.objs[index];
|
|
};
|
|
InjectorDynamicStrategy.prototype.getMaxNumberOfObjects = function() {
|
|
return this.objs.length;
|
|
};
|
|
return InjectorDynamicStrategy;
|
|
})();
|
|
exports.InjectorDynamicStrategy = InjectorDynamicStrategy;
|
|
var ProviderWithVisibility = (function() {
|
|
function ProviderWithVisibility(provider, visibility) {
|
|
this.provider = provider;
|
|
this.visibility = visibility;
|
|
}
|
|
;
|
|
ProviderWithVisibility.prototype.getKeyId = function() {
|
|
return this.provider.key.id;
|
|
};
|
|
return ProviderWithVisibility;
|
|
})();
|
|
exports.ProviderWithVisibility = ProviderWithVisibility;
|
|
var Injector = (function() {
|
|
function Injector(_proto, _parent, _isHostBoundary, _depProvider, _debugContext) {
|
|
if (_parent === void 0) {
|
|
_parent = null;
|
|
}
|
|
if (_isHostBoundary === void 0) {
|
|
_isHostBoundary = false;
|
|
}
|
|
if (_depProvider === void 0) {
|
|
_depProvider = null;
|
|
}
|
|
if (_debugContext === void 0) {
|
|
_debugContext = null;
|
|
}
|
|
this._isHostBoundary = _isHostBoundary;
|
|
this._depProvider = _depProvider;
|
|
this._debugContext = _debugContext;
|
|
this._constructionCounter = 0;
|
|
this._proto = _proto;
|
|
this._parent = _parent;
|
|
this._strategy = _proto._strategy.createInjectorStrategy(this);
|
|
}
|
|
Injector.resolve = function(providers) {
|
|
return provider_1.resolveProviders(providers);
|
|
};
|
|
Injector.resolveAndCreate = function(providers) {
|
|
var resolvedProviders = Injector.resolve(providers);
|
|
return Injector.fromResolvedProviders(resolvedProviders);
|
|
};
|
|
Injector.fromResolvedProviders = function(providers) {
|
|
return new Injector(ProtoInjector.fromResolvedProviders(providers));
|
|
};
|
|
Injector.fromResolvedBindings = function(providers) {
|
|
return Injector.fromResolvedProviders(providers);
|
|
};
|
|
Object.defineProperty(Injector.prototype, "hostBoundary", {
|
|
get: function() {
|
|
return this._isHostBoundary;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Injector.prototype.debugContext = function() {
|
|
return this._debugContext();
|
|
};
|
|
Injector.prototype.get = function(token) {
|
|
return this._getByKey(key_1.Key.get(token), null, null, false, Visibility.PublicAndPrivate);
|
|
};
|
|
Injector.prototype.getOptional = function(token) {
|
|
return this._getByKey(key_1.Key.get(token), null, null, true, Visibility.PublicAndPrivate);
|
|
};
|
|
Injector.prototype.getAt = function(index) {
|
|
return this._strategy.getObjAtIndex(index);
|
|
};
|
|
Object.defineProperty(Injector.prototype, "parent", {
|
|
get: function() {
|
|
return this._parent;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(Injector.prototype, "internalStrategy", {
|
|
get: function() {
|
|
return this._strategy;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Injector.prototype.resolveAndCreateChild = function(providers) {
|
|
var resolvedProviders = Injector.resolve(providers);
|
|
return this.createChildFromResolved(resolvedProviders);
|
|
};
|
|
Injector.prototype.createChildFromResolved = function(providers) {
|
|
var bd = providers.map(function(b) {
|
|
return new ProviderWithVisibility(b, Visibility.Public);
|
|
});
|
|
var proto = new ProtoInjector(bd);
|
|
var inj = new Injector(proto);
|
|
inj._parent = this;
|
|
return inj;
|
|
};
|
|
Injector.prototype.resolveAndInstantiate = function(provider) {
|
|
return this.instantiateResolved(Injector.resolve([provider])[0]);
|
|
};
|
|
Injector.prototype.instantiateResolved = function(provider) {
|
|
return this._instantiateProvider(provider, Visibility.PublicAndPrivate);
|
|
};
|
|
Injector.prototype._new = function(provider, visibility) {
|
|
if (this._constructionCounter++ > this._strategy.getMaxNumberOfObjects()) {
|
|
throw new exceptions_1.CyclicDependencyError(this, provider.key);
|
|
}
|
|
return this._instantiateProvider(provider, visibility);
|
|
};
|
|
Injector.prototype._instantiateProvider = function(provider, visibility) {
|
|
if (provider.multiProvider) {
|
|
var res = collection_1.ListWrapper.createFixedSize(provider.resolvedFactories.length);
|
|
for (var i = 0; i < provider.resolvedFactories.length; ++i) {
|
|
res[i] = this._instantiate(provider, provider.resolvedFactories[i], visibility);
|
|
}
|
|
return res;
|
|
} else {
|
|
return this._instantiate(provider, provider.resolvedFactories[0], visibility);
|
|
}
|
|
};
|
|
Injector.prototype._instantiate = function(provider, resolvedFactory, visibility) {
|
|
var factory = resolvedFactory.factory;
|
|
var deps = resolvedFactory.dependencies;
|
|
var length = deps.length;
|
|
var d0;
|
|
var d1;
|
|
var d2;
|
|
var d3;
|
|
var d4;
|
|
var d5;
|
|
var d6;
|
|
var d7;
|
|
var d8;
|
|
var d9;
|
|
var d10;
|
|
var d11;
|
|
var d12;
|
|
var d13;
|
|
var d14;
|
|
var d15;
|
|
var d16;
|
|
var d17;
|
|
var d18;
|
|
var d19;
|
|
try {
|
|
d0 = length > 0 ? this._getByDependency(provider, deps[0], visibility) : null;
|
|
d1 = length > 1 ? this._getByDependency(provider, deps[1], visibility) : null;
|
|
d2 = length > 2 ? this._getByDependency(provider, deps[2], visibility) : null;
|
|
d3 = length > 3 ? this._getByDependency(provider, deps[3], visibility) : null;
|
|
d4 = length > 4 ? this._getByDependency(provider, deps[4], visibility) : null;
|
|
d5 = length > 5 ? this._getByDependency(provider, deps[5], visibility) : null;
|
|
d6 = length > 6 ? this._getByDependency(provider, deps[6], visibility) : null;
|
|
d7 = length > 7 ? this._getByDependency(provider, deps[7], visibility) : null;
|
|
d8 = length > 8 ? this._getByDependency(provider, deps[8], visibility) : null;
|
|
d9 = length > 9 ? this._getByDependency(provider, deps[9], visibility) : null;
|
|
d10 = length > 10 ? this._getByDependency(provider, deps[10], visibility) : null;
|
|
d11 = length > 11 ? this._getByDependency(provider, deps[11], visibility) : null;
|
|
d12 = length > 12 ? this._getByDependency(provider, deps[12], visibility) : null;
|
|
d13 = length > 13 ? this._getByDependency(provider, deps[13], visibility) : null;
|
|
d14 = length > 14 ? this._getByDependency(provider, deps[14], visibility) : null;
|
|
d15 = length > 15 ? this._getByDependency(provider, deps[15], visibility) : null;
|
|
d16 = length > 16 ? this._getByDependency(provider, deps[16], visibility) : null;
|
|
d17 = length > 17 ? this._getByDependency(provider, deps[17], visibility) : null;
|
|
d18 = length > 18 ? this._getByDependency(provider, deps[18], visibility) : null;
|
|
d19 = length > 19 ? this._getByDependency(provider, deps[19], visibility) : null;
|
|
} catch (e) {
|
|
if (e instanceof exceptions_1.AbstractProviderError || e instanceof exceptions_1.InstantiationError) {
|
|
e.addKey(this, provider.key);
|
|
}
|
|
throw e;
|
|
}
|
|
var obj;
|
|
try {
|
|
switch (length) {
|
|
case 0:
|
|
obj = factory();
|
|
break;
|
|
case 1:
|
|
obj = factory(d0);
|
|
break;
|
|
case 2:
|
|
obj = factory(d0, d1);
|
|
break;
|
|
case 3:
|
|
obj = factory(d0, d1, d2);
|
|
break;
|
|
case 4:
|
|
obj = factory(d0, d1, d2, d3);
|
|
break;
|
|
case 5:
|
|
obj = factory(d0, d1, d2, d3, d4);
|
|
break;
|
|
case 6:
|
|
obj = factory(d0, d1, d2, d3, d4, d5);
|
|
break;
|
|
case 7:
|
|
obj = factory(d0, d1, d2, d3, d4, d5, d6);
|
|
break;
|
|
case 8:
|
|
obj = factory(d0, d1, d2, d3, d4, d5, d6, d7);
|
|
break;
|
|
case 9:
|
|
obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8);
|
|
break;
|
|
case 10:
|
|
obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9);
|
|
break;
|
|
case 11:
|
|
obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10);
|
|
break;
|
|
case 12:
|
|
obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11);
|
|
break;
|
|
case 13:
|
|
obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12);
|
|
break;
|
|
case 14:
|
|
obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13);
|
|
break;
|
|
case 15:
|
|
obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14);
|
|
break;
|
|
case 16:
|
|
obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15);
|
|
break;
|
|
case 17:
|
|
obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15, d16);
|
|
break;
|
|
case 18:
|
|
obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15, d16, d17);
|
|
break;
|
|
case 19:
|
|
obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15, d16, d17, d18);
|
|
break;
|
|
case 20:
|
|
obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15, d16, d17, d18, d19);
|
|
break;
|
|
default:
|
|
throw new exceptions_2.BaseException("Cannot instantiate '" + provider.key.displayName + "' because it has more than 20 dependencies");
|
|
}
|
|
} catch (e) {
|
|
throw new exceptions_1.InstantiationError(this, e, e.stack, provider.key);
|
|
}
|
|
return obj;
|
|
};
|
|
Injector.prototype._getByDependency = function(provider, dep, providerVisibility) {
|
|
var special = lang_1.isPresent(this._depProvider) ? this._depProvider.getDependency(this, provider, dep) : exports.UNDEFINED;
|
|
if (special !== exports.UNDEFINED) {
|
|
return special;
|
|
} else {
|
|
return this._getByKey(dep.key, dep.lowerBoundVisibility, dep.upperBoundVisibility, dep.optional, providerVisibility);
|
|
}
|
|
};
|
|
Injector.prototype._getByKey = function(key, lowerBoundVisibility, upperBoundVisibility, optional, providerVisibility) {
|
|
if (key === INJECTOR_KEY) {
|
|
return this;
|
|
}
|
|
if (upperBoundVisibility instanceof metadata_1.SelfMetadata) {
|
|
return this._getByKeySelf(key, optional, providerVisibility);
|
|
} else if (upperBoundVisibility instanceof metadata_1.HostMetadata) {
|
|
return this._getByKeyHost(key, optional, providerVisibility, lowerBoundVisibility);
|
|
} else {
|
|
return this._getByKeyDefault(key, optional, providerVisibility, lowerBoundVisibility);
|
|
}
|
|
};
|
|
Injector.prototype._throwOrNull = function(key, optional) {
|
|
if (optional) {
|
|
return null;
|
|
} else {
|
|
throw new exceptions_1.NoProviderError(this, key);
|
|
}
|
|
};
|
|
Injector.prototype._getByKeySelf = function(key, optional, providerVisibility) {
|
|
var obj = this._strategy.getObjByKeyId(key.id, providerVisibility);
|
|
return (obj !== exports.UNDEFINED) ? obj : this._throwOrNull(key, optional);
|
|
};
|
|
Injector.prototype._getByKeyHost = function(key, optional, providerVisibility, lowerBoundVisibility) {
|
|
var inj = this;
|
|
if (lowerBoundVisibility instanceof metadata_1.SkipSelfMetadata) {
|
|
if (inj._isHostBoundary) {
|
|
return this._getPrivateDependency(key, optional, inj);
|
|
} else {
|
|
inj = inj._parent;
|
|
}
|
|
}
|
|
while (inj != null) {
|
|
var obj = inj._strategy.getObjByKeyId(key.id, providerVisibility);
|
|
if (obj !== exports.UNDEFINED)
|
|
return obj;
|
|
if (lang_1.isPresent(inj._parent) && inj._isHostBoundary) {
|
|
return this._getPrivateDependency(key, optional, inj);
|
|
} else {
|
|
inj = inj._parent;
|
|
}
|
|
}
|
|
return this._throwOrNull(key, optional);
|
|
};
|
|
Injector.prototype._getPrivateDependency = function(key, optional, inj) {
|
|
var obj = inj._parent._strategy.getObjByKeyId(key.id, Visibility.Private);
|
|
return (obj !== exports.UNDEFINED) ? obj : this._throwOrNull(key, optional);
|
|
};
|
|
Injector.prototype._getByKeyDefault = function(key, optional, providerVisibility, lowerBoundVisibility) {
|
|
var inj = this;
|
|
if (lowerBoundVisibility instanceof metadata_1.SkipSelfMetadata) {
|
|
providerVisibility = inj._isHostBoundary ? Visibility.PublicAndPrivate : Visibility.Public;
|
|
inj = inj._parent;
|
|
}
|
|
while (inj != null) {
|
|
var obj = inj._strategy.getObjByKeyId(key.id, providerVisibility);
|
|
if (obj !== exports.UNDEFINED)
|
|
return obj;
|
|
providerVisibility = inj._isHostBoundary ? Visibility.PublicAndPrivate : Visibility.Public;
|
|
inj = inj._parent;
|
|
}
|
|
return this._throwOrNull(key, optional);
|
|
};
|
|
Object.defineProperty(Injector.prototype, "displayName", {
|
|
get: function() {
|
|
return "Injector(providers: [" + _mapProviders(this, function(b) {
|
|
return (" \"" + b.key.displayName + "\" ");
|
|
}).join(", ") + "])";
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Injector.prototype.toString = function() {
|
|
return this.displayName;
|
|
};
|
|
return Injector;
|
|
})();
|
|
exports.Injector = Injector;
|
|
var INJECTOR_KEY = key_1.Key.get(Injector);
|
|
function _mapProviders(injector, fn) {
|
|
var res = [];
|
|
for (var i = 0; i < injector._proto.numberOfProviders; ++i) {
|
|
res.push(fn(injector._proto.getProviderAtIndex(i)));
|
|
}
|
|
return res;
|
|
}
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/change_detection/proto_change_detector", ["angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/facade/collection", "angular2/src/core/change_detection/parser/ast", "angular2/src/core/change_detection/change_detection_util", "angular2/src/core/change_detection/dynamic_change_detector", "angular2/src/core/change_detection/directive_record", "angular2/src/core/change_detection/event_binding", "angular2/src/core/change_detection/coalesce", "angular2/src/core/change_detection/proto_record"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var ast_1 = require("angular2/src/core/change_detection/parser/ast");
|
|
var change_detection_util_1 = require("angular2/src/core/change_detection/change_detection_util");
|
|
var dynamic_change_detector_1 = require("angular2/src/core/change_detection/dynamic_change_detector");
|
|
var directive_record_1 = require("angular2/src/core/change_detection/directive_record");
|
|
var event_binding_1 = require("angular2/src/core/change_detection/event_binding");
|
|
var coalesce_1 = require("angular2/src/core/change_detection/coalesce");
|
|
var proto_record_1 = require("angular2/src/core/change_detection/proto_record");
|
|
var DynamicProtoChangeDetector = (function() {
|
|
function DynamicProtoChangeDetector(_definition) {
|
|
this._definition = _definition;
|
|
this._propertyBindingRecords = createPropertyRecords(_definition);
|
|
this._eventBindingRecords = createEventRecords(_definition);
|
|
this._propertyBindingTargets = this._definition.bindingRecords.map(function(b) {
|
|
return b.target;
|
|
});
|
|
this._directiveIndices = this._definition.directiveRecords.map(function(d) {
|
|
return d.directiveIndex;
|
|
});
|
|
}
|
|
DynamicProtoChangeDetector.prototype.instantiate = function() {
|
|
return new dynamic_change_detector_1.DynamicChangeDetector(this._definition.id, this._propertyBindingRecords.length, this._propertyBindingTargets, this._directiveIndices, this._definition.strategy, this._propertyBindingRecords, this._eventBindingRecords, this._definition.directiveRecords, this._definition.genConfig);
|
|
};
|
|
return DynamicProtoChangeDetector;
|
|
})();
|
|
exports.DynamicProtoChangeDetector = DynamicProtoChangeDetector;
|
|
function createPropertyRecords(definition) {
|
|
var recordBuilder = new ProtoRecordBuilder();
|
|
collection_1.ListWrapper.forEachWithIndex(definition.bindingRecords, function(b, index) {
|
|
return recordBuilder.add(b, definition.variableNames, index);
|
|
});
|
|
return coalesce_1.coalesce(recordBuilder.records);
|
|
}
|
|
exports.createPropertyRecords = createPropertyRecords;
|
|
function createEventRecords(definition) {
|
|
var varNames = collection_1.ListWrapper.concat(['$event'], definition.variableNames);
|
|
return definition.eventRecords.map(function(er) {
|
|
var records = _ConvertAstIntoProtoRecords.create(er, varNames);
|
|
var dirIndex = er.implicitReceiver instanceof directive_record_1.DirectiveIndex ? er.implicitReceiver : null;
|
|
return new event_binding_1.EventBinding(er.target.name, er.target.elementIndex, dirIndex, records);
|
|
});
|
|
}
|
|
exports.createEventRecords = createEventRecords;
|
|
var ProtoRecordBuilder = (function() {
|
|
function ProtoRecordBuilder() {
|
|
this.records = [];
|
|
}
|
|
ProtoRecordBuilder.prototype.add = function(b, variableNames, bindingIndex) {
|
|
var oldLast = collection_1.ListWrapper.last(this.records);
|
|
if (lang_1.isPresent(oldLast) && oldLast.bindingRecord.directiveRecord == b.directiveRecord) {
|
|
oldLast.lastInDirective = false;
|
|
}
|
|
var numberOfRecordsBefore = this.records.length;
|
|
this._appendRecords(b, variableNames, bindingIndex);
|
|
var newLast = collection_1.ListWrapper.last(this.records);
|
|
if (lang_1.isPresent(newLast) && newLast !== oldLast) {
|
|
newLast.lastInBinding = true;
|
|
newLast.lastInDirective = true;
|
|
this._setArgumentToPureFunction(numberOfRecordsBefore);
|
|
}
|
|
};
|
|
ProtoRecordBuilder.prototype._setArgumentToPureFunction = function(startIndex) {
|
|
var _this = this;
|
|
for (var i = startIndex; i < this.records.length; ++i) {
|
|
var rec = this.records[i];
|
|
if (rec.isPureFunction()) {
|
|
rec.args.forEach(function(recordIndex) {
|
|
return _this.records[recordIndex - 1].argumentToPureFunction = true;
|
|
});
|
|
}
|
|
if (rec.mode === proto_record_1.RecordType.Pipe) {
|
|
rec.args.forEach(function(recordIndex) {
|
|
return _this.records[recordIndex - 1].argumentToPureFunction = true;
|
|
});
|
|
this.records[rec.contextIndex - 1].argumentToPureFunction = true;
|
|
}
|
|
}
|
|
};
|
|
ProtoRecordBuilder.prototype._appendRecords = function(b, variableNames, bindingIndex) {
|
|
if (b.isDirectiveLifecycle()) {
|
|
this.records.push(new proto_record_1.ProtoRecord(proto_record_1.RecordType.DirectiveLifecycle, b.lifecycleEvent, null, [], [], -1, null, this.records.length + 1, b, false, false, false, false, null));
|
|
} else {
|
|
_ConvertAstIntoProtoRecords.append(this.records, b, variableNames, bindingIndex);
|
|
}
|
|
};
|
|
return ProtoRecordBuilder;
|
|
})();
|
|
exports.ProtoRecordBuilder = ProtoRecordBuilder;
|
|
var _ConvertAstIntoProtoRecords = (function() {
|
|
function _ConvertAstIntoProtoRecords(_records, _bindingRecord, _variableNames, _bindingIndex) {
|
|
this._records = _records;
|
|
this._bindingRecord = _bindingRecord;
|
|
this._variableNames = _variableNames;
|
|
this._bindingIndex = _bindingIndex;
|
|
}
|
|
_ConvertAstIntoProtoRecords.append = function(records, b, variableNames, bindingIndex) {
|
|
var c = new _ConvertAstIntoProtoRecords(records, b, variableNames, bindingIndex);
|
|
b.ast.visit(c);
|
|
};
|
|
_ConvertAstIntoProtoRecords.create = function(b, variableNames) {
|
|
var rec = [];
|
|
_ConvertAstIntoProtoRecords.append(rec, b, variableNames, null);
|
|
rec[rec.length - 1].lastInBinding = true;
|
|
return rec;
|
|
};
|
|
_ConvertAstIntoProtoRecords.prototype.visitImplicitReceiver = function(ast) {
|
|
return this._bindingRecord.implicitReceiver;
|
|
};
|
|
_ConvertAstIntoProtoRecords.prototype.visitInterpolation = function(ast) {
|
|
var args = this._visitAll(ast.expressions);
|
|
return this._addRecord(proto_record_1.RecordType.Interpolate, "interpolate", _interpolationFn(ast.strings), args, ast.strings, 0);
|
|
};
|
|
_ConvertAstIntoProtoRecords.prototype.visitLiteralPrimitive = function(ast) {
|
|
return this._addRecord(proto_record_1.RecordType.Const, "literal", ast.value, [], null, 0);
|
|
};
|
|
_ConvertAstIntoProtoRecords.prototype.visitPropertyRead = function(ast) {
|
|
var receiver = ast.receiver.visit(this);
|
|
if (lang_1.isPresent(this._variableNames) && collection_1.ListWrapper.contains(this._variableNames, ast.name) && ast.receiver instanceof ast_1.ImplicitReceiver) {
|
|
return this._addRecord(proto_record_1.RecordType.Local, ast.name, ast.name, [], null, receiver);
|
|
} else {
|
|
return this._addRecord(proto_record_1.RecordType.PropertyRead, ast.name, ast.getter, [], null, receiver);
|
|
}
|
|
};
|
|
_ConvertAstIntoProtoRecords.prototype.visitPropertyWrite = function(ast) {
|
|
if (lang_1.isPresent(this._variableNames) && collection_1.ListWrapper.contains(this._variableNames, ast.name) && ast.receiver instanceof ast_1.ImplicitReceiver) {
|
|
throw new exceptions_1.BaseException("Cannot reassign a variable binding " + ast.name);
|
|
} else {
|
|
var receiver = ast.receiver.visit(this);
|
|
var value = ast.value.visit(this);
|
|
return this._addRecord(proto_record_1.RecordType.PropertyWrite, ast.name, ast.setter, [value], null, receiver);
|
|
}
|
|
};
|
|
_ConvertAstIntoProtoRecords.prototype.visitKeyedWrite = function(ast) {
|
|
var obj = ast.obj.visit(this);
|
|
var key = ast.key.visit(this);
|
|
var value = ast.value.visit(this);
|
|
return this._addRecord(proto_record_1.RecordType.KeyedWrite, null, null, [key, value], null, obj);
|
|
};
|
|
_ConvertAstIntoProtoRecords.prototype.visitSafePropertyRead = function(ast) {
|
|
var receiver = ast.receiver.visit(this);
|
|
return this._addRecord(proto_record_1.RecordType.SafeProperty, ast.name, ast.getter, [], null, receiver);
|
|
};
|
|
_ConvertAstIntoProtoRecords.prototype.visitMethodCall = function(ast) {
|
|
var receiver = ast.receiver.visit(this);
|
|
var args = this._visitAll(ast.args);
|
|
if (lang_1.isPresent(this._variableNames) && collection_1.ListWrapper.contains(this._variableNames, ast.name)) {
|
|
var target = this._addRecord(proto_record_1.RecordType.Local, ast.name, ast.name, [], null, receiver);
|
|
return this._addRecord(proto_record_1.RecordType.InvokeClosure, "closure", null, args, null, target);
|
|
} else {
|
|
return this._addRecord(proto_record_1.RecordType.InvokeMethod, ast.name, ast.fn, args, null, receiver);
|
|
}
|
|
};
|
|
_ConvertAstIntoProtoRecords.prototype.visitSafeMethodCall = function(ast) {
|
|
var receiver = ast.receiver.visit(this);
|
|
var args = this._visitAll(ast.args);
|
|
return this._addRecord(proto_record_1.RecordType.SafeMethodInvoke, ast.name, ast.fn, args, null, receiver);
|
|
};
|
|
_ConvertAstIntoProtoRecords.prototype.visitFunctionCall = function(ast) {
|
|
var target = ast.target.visit(this);
|
|
var args = this._visitAll(ast.args);
|
|
return this._addRecord(proto_record_1.RecordType.InvokeClosure, "closure", null, args, null, target);
|
|
};
|
|
_ConvertAstIntoProtoRecords.prototype.visitLiteralArray = function(ast) {
|
|
var primitiveName = "arrayFn" + ast.expressions.length;
|
|
return this._addRecord(proto_record_1.RecordType.CollectionLiteral, primitiveName, _arrayFn(ast.expressions.length), this._visitAll(ast.expressions), null, 0);
|
|
};
|
|
_ConvertAstIntoProtoRecords.prototype.visitLiteralMap = function(ast) {
|
|
return this._addRecord(proto_record_1.RecordType.CollectionLiteral, _mapPrimitiveName(ast.keys), change_detection_util_1.ChangeDetectionUtil.mapFn(ast.keys), this._visitAll(ast.values), null, 0);
|
|
};
|
|
_ConvertAstIntoProtoRecords.prototype.visitBinary = function(ast) {
|
|
var left = ast.left.visit(this);
|
|
switch (ast.operation) {
|
|
case '&&':
|
|
var branchEnd = [null];
|
|
this._addRecord(proto_record_1.RecordType.SkipRecordsIfNot, "SkipRecordsIfNot", null, [], branchEnd, left);
|
|
var right = ast.right.visit(this);
|
|
branchEnd[0] = right;
|
|
return this._addRecord(proto_record_1.RecordType.PrimitiveOp, "cond", change_detection_util_1.ChangeDetectionUtil.cond, [left, right, left], null, 0);
|
|
case '||':
|
|
var branchEnd = [null];
|
|
this._addRecord(proto_record_1.RecordType.SkipRecordsIf, "SkipRecordsIf", null, [], branchEnd, left);
|
|
var right = ast.right.visit(this);
|
|
branchEnd[0] = right;
|
|
return this._addRecord(proto_record_1.RecordType.PrimitiveOp, "cond", change_detection_util_1.ChangeDetectionUtil.cond, [left, left, right], null, 0);
|
|
default:
|
|
var right = ast.right.visit(this);
|
|
return this._addRecord(proto_record_1.RecordType.PrimitiveOp, _operationToPrimitiveName(ast.operation), _operationToFunction(ast.operation), [left, right], null, 0);
|
|
}
|
|
};
|
|
_ConvertAstIntoProtoRecords.prototype.visitPrefixNot = function(ast) {
|
|
var exp = ast.expression.visit(this);
|
|
return this._addRecord(proto_record_1.RecordType.PrimitiveOp, "operation_negate", change_detection_util_1.ChangeDetectionUtil.operation_negate, [exp], null, 0);
|
|
};
|
|
_ConvertAstIntoProtoRecords.prototype.visitConditional = function(ast) {
|
|
var condition = ast.condition.visit(this);
|
|
var startOfFalseBranch = [null];
|
|
var endOfFalseBranch = [null];
|
|
this._addRecord(proto_record_1.RecordType.SkipRecordsIfNot, "SkipRecordsIfNot", null, [], startOfFalseBranch, condition);
|
|
var whenTrue = ast.trueExp.visit(this);
|
|
var skip = this._addRecord(proto_record_1.RecordType.SkipRecords, "SkipRecords", null, [], endOfFalseBranch, 0);
|
|
var whenFalse = ast.falseExp.visit(this);
|
|
startOfFalseBranch[0] = skip;
|
|
endOfFalseBranch[0] = whenFalse;
|
|
return this._addRecord(proto_record_1.RecordType.PrimitiveOp, "cond", change_detection_util_1.ChangeDetectionUtil.cond, [condition, whenTrue, whenFalse], null, 0);
|
|
};
|
|
_ConvertAstIntoProtoRecords.prototype.visitPipe = function(ast) {
|
|
var value = ast.exp.visit(this);
|
|
var args = this._visitAll(ast.args);
|
|
return this._addRecord(proto_record_1.RecordType.Pipe, ast.name, ast.name, args, null, value);
|
|
};
|
|
_ConvertAstIntoProtoRecords.prototype.visitKeyedRead = function(ast) {
|
|
var obj = ast.obj.visit(this);
|
|
var key = ast.key.visit(this);
|
|
return this._addRecord(proto_record_1.RecordType.KeyedRead, "keyedAccess", change_detection_util_1.ChangeDetectionUtil.keyedAccess, [key], null, obj);
|
|
};
|
|
_ConvertAstIntoProtoRecords.prototype.visitChain = function(ast) {
|
|
var _this = this;
|
|
var args = ast.expressions.map(function(e) {
|
|
return e.visit(_this);
|
|
});
|
|
return this._addRecord(proto_record_1.RecordType.Chain, "chain", null, args, null, 0);
|
|
};
|
|
_ConvertAstIntoProtoRecords.prototype.visitQuote = function(ast) {
|
|
throw new exceptions_1.BaseException(("Caught uninterpreted expression at " + ast.location + ": " + ast.uninterpretedExpression + ". ") + ("Expression prefix " + ast.prefix + " did not match a template transformer to interpret the expression."));
|
|
};
|
|
_ConvertAstIntoProtoRecords.prototype._visitAll = function(asts) {
|
|
var res = collection_1.ListWrapper.createFixedSize(asts.length);
|
|
for (var i = 0; i < asts.length; ++i) {
|
|
res[i] = asts[i].visit(this);
|
|
}
|
|
return res;
|
|
};
|
|
_ConvertAstIntoProtoRecords.prototype._addRecord = function(type, name, funcOrValue, args, fixedArgs, context) {
|
|
var selfIndex = this._records.length + 1;
|
|
if (context instanceof directive_record_1.DirectiveIndex) {
|
|
this._records.push(new proto_record_1.ProtoRecord(type, name, funcOrValue, args, fixedArgs, -1, context, selfIndex, this._bindingRecord, false, false, false, false, this._bindingIndex));
|
|
} else {
|
|
this._records.push(new proto_record_1.ProtoRecord(type, name, funcOrValue, args, fixedArgs, context, null, selfIndex, this._bindingRecord, false, false, false, false, this._bindingIndex));
|
|
}
|
|
return selfIndex;
|
|
};
|
|
return _ConvertAstIntoProtoRecords;
|
|
})();
|
|
function _arrayFn(length) {
|
|
switch (length) {
|
|
case 0:
|
|
return change_detection_util_1.ChangeDetectionUtil.arrayFn0;
|
|
case 1:
|
|
return change_detection_util_1.ChangeDetectionUtil.arrayFn1;
|
|
case 2:
|
|
return change_detection_util_1.ChangeDetectionUtil.arrayFn2;
|
|
case 3:
|
|
return change_detection_util_1.ChangeDetectionUtil.arrayFn3;
|
|
case 4:
|
|
return change_detection_util_1.ChangeDetectionUtil.arrayFn4;
|
|
case 5:
|
|
return change_detection_util_1.ChangeDetectionUtil.arrayFn5;
|
|
case 6:
|
|
return change_detection_util_1.ChangeDetectionUtil.arrayFn6;
|
|
case 7:
|
|
return change_detection_util_1.ChangeDetectionUtil.arrayFn7;
|
|
case 8:
|
|
return change_detection_util_1.ChangeDetectionUtil.arrayFn8;
|
|
case 9:
|
|
return change_detection_util_1.ChangeDetectionUtil.arrayFn9;
|
|
default:
|
|
throw new exceptions_1.BaseException("Does not support literal maps with more than 9 elements");
|
|
}
|
|
}
|
|
function _mapPrimitiveName(keys) {
|
|
var stringifiedKeys = keys.map(function(k) {
|
|
return lang_1.isString(k) ? "\"" + k + "\"" : "" + k;
|
|
}).join(', ');
|
|
return "mapFn([" + stringifiedKeys + "])";
|
|
}
|
|
function _operationToPrimitiveName(operation) {
|
|
switch (operation) {
|
|
case '+':
|
|
return "operation_add";
|
|
case '-':
|
|
return "operation_subtract";
|
|
case '*':
|
|
return "operation_multiply";
|
|
case '/':
|
|
return "operation_divide";
|
|
case '%':
|
|
return "operation_remainder";
|
|
case '==':
|
|
return "operation_equals";
|
|
case '!=':
|
|
return "operation_not_equals";
|
|
case '===':
|
|
return "operation_identical";
|
|
case '!==':
|
|
return "operation_not_identical";
|
|
case '<':
|
|
return "operation_less_then";
|
|
case '>':
|
|
return "operation_greater_then";
|
|
case '<=':
|
|
return "operation_less_or_equals_then";
|
|
case '>=':
|
|
return "operation_greater_or_equals_then";
|
|
default:
|
|
throw new exceptions_1.BaseException("Unsupported operation " + operation);
|
|
}
|
|
}
|
|
function _operationToFunction(operation) {
|
|
switch (operation) {
|
|
case '+':
|
|
return change_detection_util_1.ChangeDetectionUtil.operation_add;
|
|
case '-':
|
|
return change_detection_util_1.ChangeDetectionUtil.operation_subtract;
|
|
case '*':
|
|
return change_detection_util_1.ChangeDetectionUtil.operation_multiply;
|
|
case '/':
|
|
return change_detection_util_1.ChangeDetectionUtil.operation_divide;
|
|
case '%':
|
|
return change_detection_util_1.ChangeDetectionUtil.operation_remainder;
|
|
case '==':
|
|
return change_detection_util_1.ChangeDetectionUtil.operation_equals;
|
|
case '!=':
|
|
return change_detection_util_1.ChangeDetectionUtil.operation_not_equals;
|
|
case '===':
|
|
return change_detection_util_1.ChangeDetectionUtil.operation_identical;
|
|
case '!==':
|
|
return change_detection_util_1.ChangeDetectionUtil.operation_not_identical;
|
|
case '<':
|
|
return change_detection_util_1.ChangeDetectionUtil.operation_less_then;
|
|
case '>':
|
|
return change_detection_util_1.ChangeDetectionUtil.operation_greater_then;
|
|
case '<=':
|
|
return change_detection_util_1.ChangeDetectionUtil.operation_less_or_equals_then;
|
|
case '>=':
|
|
return change_detection_util_1.ChangeDetectionUtil.operation_greater_or_equals_then;
|
|
default:
|
|
throw new exceptions_1.BaseException("Unsupported operation " + operation);
|
|
}
|
|
}
|
|
function s(v) {
|
|
return lang_1.isPresent(v) ? "" + v : '';
|
|
}
|
|
function _interpolationFn(strings) {
|
|
var length = strings.length;
|
|
var c0 = length > 0 ? strings[0] : null;
|
|
var c1 = length > 1 ? strings[1] : null;
|
|
var c2 = length > 2 ? strings[2] : null;
|
|
var c3 = length > 3 ? strings[3] : null;
|
|
var c4 = length > 4 ? strings[4] : null;
|
|
var c5 = length > 5 ? strings[5] : null;
|
|
var c6 = length > 6 ? strings[6] : null;
|
|
var c7 = length > 7 ? strings[7] : null;
|
|
var c8 = length > 8 ? strings[8] : null;
|
|
var c9 = length > 9 ? strings[9] : null;
|
|
switch (length - 1) {
|
|
case 1:
|
|
return function(a1) {
|
|
return c0 + s(a1) + c1;
|
|
};
|
|
case 2:
|
|
return function(a1, a2) {
|
|
return c0 + s(a1) + c1 + s(a2) + c2;
|
|
};
|
|
case 3:
|
|
return function(a1, a2, a3) {
|
|
return c0 + s(a1) + c1 + s(a2) + c2 + s(a3) + c3;
|
|
};
|
|
case 4:
|
|
return function(a1, a2, a3, a4) {
|
|
return c0 + s(a1) + c1 + s(a2) + c2 + s(a3) + c3 + s(a4) + c4;
|
|
};
|
|
case 5:
|
|
return function(a1, a2, a3, a4, a5) {
|
|
return c0 + s(a1) + c1 + s(a2) + c2 + s(a3) + c3 + s(a4) + c4 + s(a5) + c5;
|
|
};
|
|
case 6:
|
|
return function(a1, a2, a3, a4, a5, a6) {
|
|
return c0 + s(a1) + c1 + s(a2) + c2 + s(a3) + c3 + s(a4) + c4 + s(a5) + c5 + s(a6) + c6;
|
|
};
|
|
case 7:
|
|
return function(a1, a2, a3, a4, a5, a6, a7) {
|
|
return c0 + s(a1) + c1 + s(a2) + c2 + s(a3) + c3 + s(a4) + c4 + s(a5) + c5 + s(a6) + c6 + s(a7) + c7;
|
|
};
|
|
case 8:
|
|
return function(a1, a2, a3, a4, a5, a6, a7, a8) {
|
|
return c0 + s(a1) + c1 + s(a2) + c2 + s(a3) + c3 + s(a4) + c4 + s(a5) + c5 + s(a6) + c6 + s(a7) + c7 + s(a8) + c8;
|
|
};
|
|
case 9:
|
|
return function(a1, a2, a3, a4, a5, a6, a7, a8, a9) {
|
|
return c0 + s(a1) + c1 + s(a2) + c2 + s(a3) + c3 + s(a4) + c4 + s(a5) + c5 + s(a6) + c6 + s(a7) + c7 + s(a8) + c8 + s(a9) + c9;
|
|
};
|
|
default:
|
|
throw new exceptions_1.BaseException("Does not support more than 9 expressions");
|
|
}
|
|
}
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/linker/dynamic_component_loader", ["angular2/src/core/di", "angular2/src/core/linker/compiler", "angular2/src/facade/lang", "angular2/src/core/linker/view_manager"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var di_1 = require("angular2/src/core/di");
|
|
var compiler_1 = require("angular2/src/core/linker/compiler");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var view_manager_1 = require("angular2/src/core/linker/view_manager");
|
|
var ComponentRef = (function() {
|
|
function ComponentRef() {}
|
|
Object.defineProperty(ComponentRef.prototype, "hostView", {
|
|
get: function() {
|
|
return this.location.internalElement.parentView.ref;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(ComponentRef.prototype, "hostComponent", {
|
|
get: function() {
|
|
return this.instance;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
return ComponentRef;
|
|
})();
|
|
exports.ComponentRef = ComponentRef;
|
|
var ComponentRef_ = (function(_super) {
|
|
__extends(ComponentRef_, _super);
|
|
function ComponentRef_(location, instance, componentType, injector, _dispose) {
|
|
_super.call(this);
|
|
this._dispose = _dispose;
|
|
this.location = location;
|
|
this.instance = instance;
|
|
this.componentType = componentType;
|
|
this.injector = injector;
|
|
}
|
|
Object.defineProperty(ComponentRef_.prototype, "hostComponentType", {
|
|
get: function() {
|
|
return this.componentType;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
ComponentRef_.prototype.dispose = function() {
|
|
this._dispose();
|
|
};
|
|
return ComponentRef_;
|
|
})(ComponentRef);
|
|
exports.ComponentRef_ = ComponentRef_;
|
|
var DynamicComponentLoader = (function() {
|
|
function DynamicComponentLoader() {}
|
|
return DynamicComponentLoader;
|
|
})();
|
|
exports.DynamicComponentLoader = DynamicComponentLoader;
|
|
var DynamicComponentLoader_ = (function(_super) {
|
|
__extends(DynamicComponentLoader_, _super);
|
|
function DynamicComponentLoader_(_compiler, _viewManager) {
|
|
_super.call(this);
|
|
this._compiler = _compiler;
|
|
this._viewManager = _viewManager;
|
|
}
|
|
DynamicComponentLoader_.prototype.loadAsRoot = function(type, overrideSelector, injector, onDispose, projectableNodes) {
|
|
var _this = this;
|
|
return this._compiler.compileInHost(type).then(function(hostProtoViewRef) {
|
|
var hostViewRef = _this._viewManager.createRootHostView(hostProtoViewRef, overrideSelector, injector, projectableNodes);
|
|
var newLocation = _this._viewManager.getHostElement(hostViewRef);
|
|
var component = _this._viewManager.getComponent(newLocation);
|
|
var dispose = function() {
|
|
if (lang_1.isPresent(onDispose)) {
|
|
onDispose();
|
|
}
|
|
_this._viewManager.destroyRootHostView(hostViewRef);
|
|
};
|
|
return new ComponentRef_(newLocation, component, type, injector, dispose);
|
|
});
|
|
};
|
|
DynamicComponentLoader_.prototype.loadIntoLocation = function(type, hostLocation, anchorName, providers, projectableNodes) {
|
|
if (providers === void 0) {
|
|
providers = null;
|
|
}
|
|
if (projectableNodes === void 0) {
|
|
projectableNodes = null;
|
|
}
|
|
return this.loadNextToLocation(type, this._viewManager.getNamedElementInComponentView(hostLocation, anchorName), providers, projectableNodes);
|
|
};
|
|
DynamicComponentLoader_.prototype.loadNextToLocation = function(type, location, providers, projectableNodes) {
|
|
var _this = this;
|
|
if (providers === void 0) {
|
|
providers = null;
|
|
}
|
|
if (projectableNodes === void 0) {
|
|
projectableNodes = null;
|
|
}
|
|
return this._compiler.compileInHost(type).then(function(hostProtoViewRef) {
|
|
var viewContainer = _this._viewManager.getViewContainer(location);
|
|
var hostViewRef = viewContainer.createHostView(hostProtoViewRef, viewContainer.length, providers, projectableNodes);
|
|
var newLocation = _this._viewManager.getHostElement(hostViewRef);
|
|
var component = _this._viewManager.getComponent(newLocation);
|
|
var dispose = function() {
|
|
var index = viewContainer.indexOf(hostViewRef);
|
|
if (!hostViewRef.destroyed && index !== -1) {
|
|
viewContainer.remove(index);
|
|
}
|
|
};
|
|
return new ComponentRef_(newLocation, component, type, null, dispose);
|
|
});
|
|
};
|
|
DynamicComponentLoader_ = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [compiler_1.Compiler, view_manager_1.AppViewManager])], DynamicComponentLoader_);
|
|
return DynamicComponentLoader_;
|
|
})(DynamicComponentLoader);
|
|
exports.DynamicComponentLoader_ = DynamicComponentLoader_;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/platform/worker_app_common", ["angular2/src/compiler/xhr", "angular2/src/web_workers/worker/xhr_impl", "angular2/src/web_workers/worker/renderer", "angular2/src/facade/lang", "angular2/src/core/render/api", "angular2/core", "angular2/common", "angular2/src/web_workers/shared/client_message_broker", "angular2/src/web_workers/shared/service_message_broker", "angular2/src/web_workers/shared/serializer", "angular2/src/web_workers/shared/api", "angular2/src/core/di", "angular2/src/web_workers/shared/render_store"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var xhr_1 = require("angular2/src/compiler/xhr");
|
|
var xhr_impl_1 = require("angular2/src/web_workers/worker/xhr_impl");
|
|
var renderer_1 = require("angular2/src/web_workers/worker/renderer");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var api_1 = require("angular2/src/core/render/api");
|
|
var core_1 = require("angular2/core");
|
|
var common_1 = require("angular2/common");
|
|
var client_message_broker_1 = require("angular2/src/web_workers/shared/client_message_broker");
|
|
var service_message_broker_1 = require("angular2/src/web_workers/shared/service_message_broker");
|
|
var serializer_1 = require("angular2/src/web_workers/shared/serializer");
|
|
var api_2 = require("angular2/src/web_workers/shared/api");
|
|
var di_1 = require("angular2/src/core/di");
|
|
var render_store_1 = require("angular2/src/web_workers/shared/render_store");
|
|
var PrintLogger = (function() {
|
|
function PrintLogger() {
|
|
this.log = lang_1.print;
|
|
this.logError = lang_1.print;
|
|
this.logGroup = lang_1.print;
|
|
}
|
|
PrintLogger.prototype.logGroupEnd = function() {};
|
|
return PrintLogger;
|
|
})();
|
|
exports.WORKER_APP_PLATFORM = lang_1.CONST_EXPR([core_1.PLATFORM_COMMON_PROVIDERS]);
|
|
exports.WORKER_APP_APPLICATION_COMMON = lang_1.CONST_EXPR([core_1.APPLICATION_COMMON_PROVIDERS, common_1.FORM_PROVIDERS, serializer_1.Serializer, new di_1.Provider(core_1.PLATFORM_PIPES, {
|
|
useValue: common_1.COMMON_PIPES,
|
|
multi: true
|
|
}), new di_1.Provider(core_1.PLATFORM_DIRECTIVES, {
|
|
useValue: common_1.COMMON_DIRECTIVES,
|
|
multi: true
|
|
}), new di_1.Provider(client_message_broker_1.ClientMessageBrokerFactory, {useClass: client_message_broker_1.ClientMessageBrokerFactory_}), new di_1.Provider(service_message_broker_1.ServiceMessageBrokerFactory, {useClass: service_message_broker_1.ServiceMessageBrokerFactory_}), renderer_1.WebWorkerRootRenderer, new di_1.Provider(api_1.RootRenderer, {useExisting: renderer_1.WebWorkerRootRenderer}), new di_1.Provider(api_2.ON_WEB_WORKER, {useValue: true}), render_store_1.RenderStore, new di_1.Provider(core_1.ExceptionHandler, {
|
|
useFactory: _exceptionHandler,
|
|
deps: []
|
|
}), xhr_impl_1.WebWorkerXHRImpl, new di_1.Provider(xhr_1.XHR, {useExisting: xhr_impl_1.WebWorkerXHRImpl})]);
|
|
function _exceptionHandler() {
|
|
return new core_1.ExceptionHandler(new PrintLogger());
|
|
}
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("parse5/index", ["parse5/lib/tree_construction/parser", "parse5/lib/simple_api/simple_api_parser", "parse5/lib/serialization/serializer", "parse5/lib/jsdom/jsdom_parser", "parse5/lib/tree_adapters/default", "parse5/lib/tree_adapters/htmlparser2"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
'use strict';
|
|
exports.Parser = require("parse5/lib/tree_construction/parser");
|
|
exports.SimpleApiParser = require("parse5/lib/simple_api/simple_api_parser");
|
|
exports.TreeSerializer = exports.Serializer = require("parse5/lib/serialization/serializer");
|
|
exports.JsDomParser = require("parse5/lib/jsdom/jsdom_parser");
|
|
exports.TreeAdapters = {
|
|
default: require("parse5/lib/tree_adapters/default"),
|
|
htmlparser2: require("parse5/lib/tree_adapters/htmlparser2")
|
|
};
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/platform/dom/dom_renderer", ["angular2/src/core/di", "angular2/src/animate/animation_builder", "angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/platform/dom/shared_styles_host", "angular2/src/platform/dom/events/event_manager", "angular2/src/platform/dom/dom_tokens", "angular2/src/core/metadata", "angular2/src/platform/dom/dom_adapter", "angular2/src/platform/dom/util"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var __param = (this && this.__param) || function(paramIndex, decorator) {
|
|
return function(target, key) {
|
|
decorator(target, key, paramIndex);
|
|
};
|
|
};
|
|
var di_1 = require("angular2/src/core/di");
|
|
var animation_builder_1 = require("angular2/src/animate/animation_builder");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var shared_styles_host_1 = require("angular2/src/platform/dom/shared_styles_host");
|
|
var event_manager_1 = require("angular2/src/platform/dom/events/event_manager");
|
|
var dom_tokens_1 = require("angular2/src/platform/dom/dom_tokens");
|
|
var metadata_1 = require("angular2/src/core/metadata");
|
|
var dom_adapter_1 = require("angular2/src/platform/dom/dom_adapter");
|
|
var util_1 = require("angular2/src/platform/dom/util");
|
|
var NAMESPACE_URIS = lang_1.CONST_EXPR({
|
|
'xlink': 'http://www.w3.org/1999/xlink',
|
|
'svg': 'http://www.w3.org/2000/svg'
|
|
});
|
|
var TEMPLATE_COMMENT_TEXT = 'template bindings={}';
|
|
var TEMPLATE_BINDINGS_EXP = /^template bindings=(.*)$/g;
|
|
var DomRootRenderer = (function() {
|
|
function DomRootRenderer(document, eventManager, sharedStylesHost, animate) {
|
|
this.document = document;
|
|
this.eventManager = eventManager;
|
|
this.sharedStylesHost = sharedStylesHost;
|
|
this.animate = animate;
|
|
this._registeredComponents = new Map();
|
|
}
|
|
DomRootRenderer.prototype.renderComponent = function(componentProto) {
|
|
var renderer = this._registeredComponents.get(componentProto.id);
|
|
if (lang_1.isBlank(renderer)) {
|
|
renderer = new DomRenderer(this, componentProto);
|
|
this._registeredComponents.set(componentProto.id, renderer);
|
|
}
|
|
return renderer;
|
|
};
|
|
return DomRootRenderer;
|
|
})();
|
|
exports.DomRootRenderer = DomRootRenderer;
|
|
var DomRootRenderer_ = (function(_super) {
|
|
__extends(DomRootRenderer_, _super);
|
|
function DomRootRenderer_(_document, _eventManager, sharedStylesHost, animate) {
|
|
_super.call(this, _document, _eventManager, sharedStylesHost, animate);
|
|
}
|
|
DomRootRenderer_ = __decorate([di_1.Injectable(), __param(0, di_1.Inject(dom_tokens_1.DOCUMENT)), __metadata('design:paramtypes', [Object, event_manager_1.EventManager, shared_styles_host_1.DomSharedStylesHost, animation_builder_1.AnimationBuilder])], DomRootRenderer_);
|
|
return DomRootRenderer_;
|
|
})(DomRootRenderer);
|
|
exports.DomRootRenderer_ = DomRootRenderer_;
|
|
var DomRenderer = (function() {
|
|
function DomRenderer(_rootRenderer, componentProto) {
|
|
this._rootRenderer = _rootRenderer;
|
|
this.componentProto = componentProto;
|
|
this._styles = _flattenStyles(componentProto.id, componentProto.styles, []);
|
|
if (componentProto.encapsulation !== metadata_1.ViewEncapsulation.Native) {
|
|
this._rootRenderer.sharedStylesHost.addStyles(this._styles);
|
|
}
|
|
if (this.componentProto.encapsulation === metadata_1.ViewEncapsulation.Emulated) {
|
|
this._contentAttr = _shimContentAttribute(componentProto.id);
|
|
this._hostAttr = _shimHostAttribute(componentProto.id);
|
|
} else {
|
|
this._contentAttr = null;
|
|
this._hostAttr = null;
|
|
}
|
|
}
|
|
DomRenderer.prototype.renderComponent = function(componentProto) {
|
|
return this._rootRenderer.renderComponent(componentProto);
|
|
};
|
|
DomRenderer.prototype.selectRootElement = function(selector) {
|
|
var el = dom_adapter_1.DOM.querySelector(this._rootRenderer.document, selector);
|
|
if (lang_1.isBlank(el)) {
|
|
throw new exceptions_1.BaseException("The selector \"" + selector + "\" did not match any elements");
|
|
}
|
|
dom_adapter_1.DOM.clearNodes(el);
|
|
return el;
|
|
};
|
|
DomRenderer.prototype.createElement = function(parent, name) {
|
|
var nsAndName = splitNamespace(name);
|
|
var el = lang_1.isPresent(nsAndName[0]) ? dom_adapter_1.DOM.createElementNS(NAMESPACE_URIS[nsAndName[0]], nsAndName[1]) : dom_adapter_1.DOM.createElement(nsAndName[1]);
|
|
if (lang_1.isPresent(this._contentAttr)) {
|
|
dom_adapter_1.DOM.setAttribute(el, this._contentAttr, '');
|
|
}
|
|
if (lang_1.isPresent(parent)) {
|
|
dom_adapter_1.DOM.appendChild(parent, el);
|
|
}
|
|
return el;
|
|
};
|
|
DomRenderer.prototype.createViewRoot = function(hostElement) {
|
|
var nodesParent;
|
|
if (this.componentProto.encapsulation === metadata_1.ViewEncapsulation.Native) {
|
|
nodesParent = dom_adapter_1.DOM.createShadowRoot(hostElement);
|
|
this._rootRenderer.sharedStylesHost.addHost(nodesParent);
|
|
for (var i = 0; i < this._styles.length; i++) {
|
|
dom_adapter_1.DOM.appendChild(nodesParent, dom_adapter_1.DOM.createStyleElement(this._styles[i]));
|
|
}
|
|
} else {
|
|
if (lang_1.isPresent(this._hostAttr)) {
|
|
dom_adapter_1.DOM.setAttribute(hostElement, this._hostAttr, '');
|
|
}
|
|
nodesParent = hostElement;
|
|
}
|
|
return nodesParent;
|
|
};
|
|
DomRenderer.prototype.createTemplateAnchor = function(parentElement) {
|
|
var comment = dom_adapter_1.DOM.createComment(TEMPLATE_COMMENT_TEXT);
|
|
if (lang_1.isPresent(parentElement)) {
|
|
dom_adapter_1.DOM.appendChild(parentElement, comment);
|
|
}
|
|
return comment;
|
|
};
|
|
DomRenderer.prototype.createText = function(parentElement, value) {
|
|
var node = dom_adapter_1.DOM.createTextNode(value);
|
|
if (lang_1.isPresent(parentElement)) {
|
|
dom_adapter_1.DOM.appendChild(parentElement, node);
|
|
}
|
|
return node;
|
|
};
|
|
DomRenderer.prototype.projectNodes = function(parentElement, nodes) {
|
|
if (lang_1.isBlank(parentElement))
|
|
return ;
|
|
appendNodes(parentElement, nodes);
|
|
};
|
|
DomRenderer.prototype.attachViewAfter = function(node, viewRootNodes) {
|
|
moveNodesAfterSibling(node, viewRootNodes);
|
|
for (var i = 0; i < viewRootNodes.length; i++)
|
|
this.animateNodeEnter(viewRootNodes[i]);
|
|
};
|
|
DomRenderer.prototype.detachView = function(viewRootNodes) {
|
|
for (var i = 0; i < viewRootNodes.length; i++) {
|
|
var node = viewRootNodes[i];
|
|
dom_adapter_1.DOM.remove(node);
|
|
this.animateNodeLeave(node);
|
|
}
|
|
};
|
|
DomRenderer.prototype.destroyView = function(hostElement, viewAllNodes) {
|
|
if (this.componentProto.encapsulation === metadata_1.ViewEncapsulation.Native && lang_1.isPresent(hostElement)) {
|
|
this._rootRenderer.sharedStylesHost.removeHost(dom_adapter_1.DOM.getShadowRoot(hostElement));
|
|
}
|
|
};
|
|
DomRenderer.prototype.listen = function(renderElement, name, callback) {
|
|
return this._rootRenderer.eventManager.addEventListener(renderElement, name, decoratePreventDefault(callback));
|
|
};
|
|
DomRenderer.prototype.listenGlobal = function(target, name, callback) {
|
|
return this._rootRenderer.eventManager.addGlobalEventListener(target, name, decoratePreventDefault(callback));
|
|
};
|
|
DomRenderer.prototype.setElementProperty = function(renderElement, propertyName, propertyValue) {
|
|
dom_adapter_1.DOM.setProperty(renderElement, propertyName, propertyValue);
|
|
};
|
|
DomRenderer.prototype.setElementAttribute = function(renderElement, attributeName, attributeValue) {
|
|
var attrNs;
|
|
var nsAndName = splitNamespace(attributeName);
|
|
if (lang_1.isPresent(nsAndName[0])) {
|
|
attributeName = nsAndName[0] + ':' + nsAndName[1];
|
|
attrNs = NAMESPACE_URIS[nsAndName[0]];
|
|
}
|
|
if (lang_1.isPresent(attributeValue)) {
|
|
if (lang_1.isPresent(attrNs)) {
|
|
dom_adapter_1.DOM.setAttributeNS(renderElement, attrNs, attributeName, attributeValue);
|
|
} else {
|
|
dom_adapter_1.DOM.setAttribute(renderElement, attributeName, attributeValue);
|
|
}
|
|
} else {
|
|
if (lang_1.isPresent(attrNs)) {
|
|
dom_adapter_1.DOM.removeAttributeNS(renderElement, attrNs, nsAndName[1]);
|
|
} else {
|
|
dom_adapter_1.DOM.removeAttribute(renderElement, attributeName);
|
|
}
|
|
}
|
|
};
|
|
DomRenderer.prototype.setBindingDebugInfo = function(renderElement, propertyName, propertyValue) {
|
|
var dashCasedPropertyName = util_1.camelCaseToDashCase(propertyName);
|
|
if (dom_adapter_1.DOM.isCommentNode(renderElement)) {
|
|
var existingBindings = lang_1.RegExpWrapper.firstMatch(TEMPLATE_BINDINGS_EXP, lang_1.StringWrapper.replaceAll(dom_adapter_1.DOM.getText(renderElement), /\n/g, ''));
|
|
var parsedBindings = lang_1.Json.parse(existingBindings[1]);
|
|
parsedBindings[dashCasedPropertyName] = propertyValue;
|
|
dom_adapter_1.DOM.setText(renderElement, lang_1.StringWrapper.replace(TEMPLATE_COMMENT_TEXT, '{}', lang_1.Json.stringify(parsedBindings)));
|
|
} else {
|
|
this.setElementAttribute(renderElement, propertyName, propertyValue);
|
|
}
|
|
};
|
|
DomRenderer.prototype.setElementDebugInfo = function(renderElement, info) {};
|
|
DomRenderer.prototype.setElementClass = function(renderElement, className, isAdd) {
|
|
if (isAdd) {
|
|
dom_adapter_1.DOM.addClass(renderElement, className);
|
|
} else {
|
|
dom_adapter_1.DOM.removeClass(renderElement, className);
|
|
}
|
|
};
|
|
DomRenderer.prototype.setElementStyle = function(renderElement, styleName, styleValue) {
|
|
if (lang_1.isPresent(styleValue)) {
|
|
dom_adapter_1.DOM.setStyle(renderElement, styleName, lang_1.stringify(styleValue));
|
|
} else {
|
|
dom_adapter_1.DOM.removeStyle(renderElement, styleName);
|
|
}
|
|
};
|
|
DomRenderer.prototype.invokeElementMethod = function(renderElement, methodName, args) {
|
|
dom_adapter_1.DOM.invoke(renderElement, methodName, args);
|
|
};
|
|
DomRenderer.prototype.setText = function(renderNode, text) {
|
|
dom_adapter_1.DOM.setText(renderNode, text);
|
|
};
|
|
DomRenderer.prototype.animateNodeEnter = function(node) {
|
|
if (dom_adapter_1.DOM.isElementNode(node) && dom_adapter_1.DOM.hasClass(node, 'ng-animate')) {
|
|
dom_adapter_1.DOM.addClass(node, 'ng-enter');
|
|
this._rootRenderer.animate.css().addAnimationClass('ng-enter-active').start(node).onComplete(function() {
|
|
dom_adapter_1.DOM.removeClass(node, 'ng-enter');
|
|
});
|
|
}
|
|
};
|
|
DomRenderer.prototype.animateNodeLeave = function(node) {
|
|
if (dom_adapter_1.DOM.isElementNode(node) && dom_adapter_1.DOM.hasClass(node, 'ng-animate')) {
|
|
dom_adapter_1.DOM.addClass(node, 'ng-leave');
|
|
this._rootRenderer.animate.css().addAnimationClass('ng-leave-active').start(node).onComplete(function() {
|
|
dom_adapter_1.DOM.removeClass(node, 'ng-leave');
|
|
dom_adapter_1.DOM.remove(node);
|
|
});
|
|
} else {
|
|
dom_adapter_1.DOM.remove(node);
|
|
}
|
|
};
|
|
return DomRenderer;
|
|
})();
|
|
exports.DomRenderer = DomRenderer;
|
|
function moveNodesAfterSibling(sibling, nodes) {
|
|
var parent = dom_adapter_1.DOM.parentElement(sibling);
|
|
if (nodes.length > 0 && lang_1.isPresent(parent)) {
|
|
var nextSibling = dom_adapter_1.DOM.nextSibling(sibling);
|
|
if (lang_1.isPresent(nextSibling)) {
|
|
for (var i = 0; i < nodes.length; i++) {
|
|
dom_adapter_1.DOM.insertBefore(nextSibling, nodes[i]);
|
|
}
|
|
} else {
|
|
for (var i = 0; i < nodes.length; i++) {
|
|
dom_adapter_1.DOM.appendChild(parent, nodes[i]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
function appendNodes(parent, nodes) {
|
|
for (var i = 0; i < nodes.length; i++) {
|
|
dom_adapter_1.DOM.appendChild(parent, nodes[i]);
|
|
}
|
|
}
|
|
function decoratePreventDefault(eventHandler) {
|
|
return function(event) {
|
|
var allowDefaultBehavior = eventHandler(event);
|
|
if (allowDefaultBehavior === false) {
|
|
dom_adapter_1.DOM.preventDefault(event);
|
|
}
|
|
};
|
|
}
|
|
var COMPONENT_REGEX = /%COMP%/g;
|
|
exports.COMPONENT_VARIABLE = '%COMP%';
|
|
exports.HOST_ATTR = "_nghost-" + exports.COMPONENT_VARIABLE;
|
|
exports.CONTENT_ATTR = "_ngcontent-" + exports.COMPONENT_VARIABLE;
|
|
function _shimContentAttribute(componentShortId) {
|
|
return lang_1.StringWrapper.replaceAll(exports.CONTENT_ATTR, COMPONENT_REGEX, componentShortId);
|
|
}
|
|
function _shimHostAttribute(componentShortId) {
|
|
return lang_1.StringWrapper.replaceAll(exports.HOST_ATTR, COMPONENT_REGEX, componentShortId);
|
|
}
|
|
function _flattenStyles(compId, styles, target) {
|
|
for (var i = 0; i < styles.length; i++) {
|
|
var style = styles[i];
|
|
if (lang_1.isArray(style)) {
|
|
_flattenStyles(compId, style, target);
|
|
} else {
|
|
style = lang_1.StringWrapper.replaceAll(style, COMPONENT_REGEX, compId);
|
|
target.push(style);
|
|
}
|
|
}
|
|
return target;
|
|
}
|
|
var NS_PREFIX_RE = /^@([^:]+):(.+)/g;
|
|
function splitNamespace(name) {
|
|
if (name[0] != '@') {
|
|
return [null, name];
|
|
}
|
|
var match = lang_1.RegExpWrapper.firstMatch(NS_PREFIX_RE, name);
|
|
return [match[1], match[2]];
|
|
}
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/compiler/template_compiler", ["angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/facade/collection", "angular2/src/facade/async", "angular2/src/compiler/directive_metadata", "angular2/src/compiler/template_ast", "angular2/src/core/di", "angular2/src/compiler/source_module", "angular2/src/compiler/change_detector_compiler", "angular2/src/compiler/style_compiler", "angular2/src/compiler/view_compiler", "angular2/src/compiler/proto_view_compiler", "angular2/src/compiler/template_parser", "angular2/src/compiler/template_normalizer", "angular2/src/compiler/runtime_metadata", "angular2/src/core/linker/view", "angular2/src/core/change_detection/change_detection", "angular2/src/core/linker/resolved_metadata_cache", "angular2/src/compiler/util"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var async_1 = require("angular2/src/facade/async");
|
|
var directive_metadata_1 = require("angular2/src/compiler/directive_metadata");
|
|
var template_ast_1 = require("angular2/src/compiler/template_ast");
|
|
var di_1 = require("angular2/src/core/di");
|
|
var source_module_1 = require("angular2/src/compiler/source_module");
|
|
var change_detector_compiler_1 = require("angular2/src/compiler/change_detector_compiler");
|
|
var style_compiler_1 = require("angular2/src/compiler/style_compiler");
|
|
var view_compiler_1 = require("angular2/src/compiler/view_compiler");
|
|
var proto_view_compiler_1 = require("angular2/src/compiler/proto_view_compiler");
|
|
var template_parser_1 = require("angular2/src/compiler/template_parser");
|
|
var template_normalizer_1 = require("angular2/src/compiler/template_normalizer");
|
|
var runtime_metadata_1 = require("angular2/src/compiler/runtime_metadata");
|
|
var view_1 = require("angular2/src/core/linker/view");
|
|
var change_detection_1 = require("angular2/src/core/change_detection/change_detection");
|
|
var resolved_metadata_cache_1 = require("angular2/src/core/linker/resolved_metadata_cache");
|
|
var util_1 = require("angular2/src/compiler/util");
|
|
exports.METADATA_CACHE_MODULE_REF = source_module_1.moduleRef('package:angular2/src/core/linker/resolved_metadata_cache' + util_1.MODULE_SUFFIX);
|
|
var TemplateCompiler = (function() {
|
|
function TemplateCompiler(_runtimeMetadataResolver, _templateNormalizer, _templateParser, _styleCompiler, _cdCompiler, _protoViewCompiler, _viewCompiler, _resolvedMetadataCache, _genConfig) {
|
|
this._runtimeMetadataResolver = _runtimeMetadataResolver;
|
|
this._templateNormalizer = _templateNormalizer;
|
|
this._templateParser = _templateParser;
|
|
this._styleCompiler = _styleCompiler;
|
|
this._cdCompiler = _cdCompiler;
|
|
this._protoViewCompiler = _protoViewCompiler;
|
|
this._viewCompiler = _viewCompiler;
|
|
this._resolvedMetadataCache = _resolvedMetadataCache;
|
|
this._genConfig = _genConfig;
|
|
this._hostCacheKeys = new Map();
|
|
this._compiledTemplateCache = new Map();
|
|
this._compiledTemplateDone = new Map();
|
|
}
|
|
TemplateCompiler.prototype.normalizeDirectiveMetadata = function(directive) {
|
|
if (!directive.isComponent) {
|
|
return async_1.PromiseWrapper.resolve(directive);
|
|
}
|
|
return this._templateNormalizer.normalizeTemplate(directive.type, directive.template).then(function(normalizedTemplate) {
|
|
return new directive_metadata_1.CompileDirectiveMetadata({
|
|
type: directive.type,
|
|
isComponent: directive.isComponent,
|
|
dynamicLoadable: directive.dynamicLoadable,
|
|
selector: directive.selector,
|
|
exportAs: directive.exportAs,
|
|
changeDetection: directive.changeDetection,
|
|
inputs: directive.inputs,
|
|
outputs: directive.outputs,
|
|
hostListeners: directive.hostListeners,
|
|
hostProperties: directive.hostProperties,
|
|
hostAttributes: directive.hostAttributes,
|
|
lifecycleHooks: directive.lifecycleHooks,
|
|
providers: directive.providers,
|
|
template: normalizedTemplate
|
|
});
|
|
});
|
|
};
|
|
TemplateCompiler.prototype.compileHostComponentRuntime = function(type) {
|
|
var compMeta = this._runtimeMetadataResolver.getDirectiveMetadata(type);
|
|
var hostCacheKey = this._hostCacheKeys.get(type);
|
|
if (lang_1.isBlank(hostCacheKey)) {
|
|
hostCacheKey = new Object();
|
|
this._hostCacheKeys.set(type, hostCacheKey);
|
|
assertComponent(compMeta);
|
|
var hostMeta = directive_metadata_1.createHostComponentMeta(compMeta.type, compMeta.selector);
|
|
this._compileComponentRuntime(hostCacheKey, hostMeta, [compMeta], [], []);
|
|
}
|
|
return this._compiledTemplateDone.get(hostCacheKey).then(function(compiledTemplate) {
|
|
return new view_1.HostViewFactory(compMeta.selector, compiledTemplate.viewFactory);
|
|
});
|
|
};
|
|
TemplateCompiler.prototype.clearCache = function() {
|
|
this._styleCompiler.clearCache();
|
|
this._compiledTemplateCache.clear();
|
|
this._compiledTemplateDone.clear();
|
|
this._hostCacheKeys.clear();
|
|
};
|
|
TemplateCompiler.prototype.compileTemplatesCodeGen = function(components) {
|
|
var _this = this;
|
|
if (components.length === 0) {
|
|
throw new exceptions_1.BaseException('No components given');
|
|
}
|
|
var declarations = [];
|
|
components.forEach(function(componentWithDirs) {
|
|
var compMeta = componentWithDirs.component;
|
|
assertComponent(compMeta);
|
|
_this._compileComponentCodeGen(compMeta, componentWithDirs.directives, componentWithDirs.pipes, declarations);
|
|
if (compMeta.dynamicLoadable) {
|
|
var hostMeta = directive_metadata_1.createHostComponentMeta(compMeta.type, compMeta.selector);
|
|
var viewFactoryExpression = _this._compileComponentCodeGen(hostMeta, [compMeta], [], declarations);
|
|
var constructionKeyword = lang_1.IS_DART ? 'const' : 'new';
|
|
var compiledTemplateExpr = constructionKeyword + " " + proto_view_compiler_1.APP_VIEW_MODULE_REF + "HostViewFactory('" + compMeta.selector + "'," + viewFactoryExpression + ")";
|
|
var varName = codeGenHostViewFactoryName(compMeta.type);
|
|
declarations.push("" + util_1.codeGenExportVariable(varName) + compiledTemplateExpr + ";");
|
|
}
|
|
});
|
|
var moduleUrl = components[0].component.type.moduleUrl;
|
|
return new source_module_1.SourceModule("" + templateModuleUrl(moduleUrl), declarations.join('\n'));
|
|
};
|
|
TemplateCompiler.prototype.compileStylesheetCodeGen = function(stylesheetUrl, cssText) {
|
|
return this._styleCompiler.compileStylesheetCodeGen(stylesheetUrl, cssText);
|
|
};
|
|
TemplateCompiler.prototype._compileComponentRuntime = function(cacheKey, compMeta, viewDirectives, pipes, compilingComponentsPath) {
|
|
var _this = this;
|
|
var uniqViewDirectives = removeDuplicates(viewDirectives);
|
|
var uniqViewPipes = removeDuplicates(pipes);
|
|
var compiledTemplate = this._compiledTemplateCache.get(cacheKey);
|
|
var done = this._compiledTemplateDone.get(cacheKey);
|
|
if (lang_1.isBlank(compiledTemplate)) {
|
|
compiledTemplate = new CompiledTemplate();
|
|
this._compiledTemplateCache.set(cacheKey, compiledTemplate);
|
|
done = async_1.PromiseWrapper.all([this._styleCompiler.compileComponentRuntime(compMeta.template)].concat(uniqViewDirectives.map(function(dirMeta) {
|
|
return _this.normalizeDirectiveMetadata(dirMeta);
|
|
}))).then(function(stylesAndNormalizedViewDirMetas) {
|
|
var normalizedViewDirMetas = stylesAndNormalizedViewDirMetas.slice(1);
|
|
var styles = stylesAndNormalizedViewDirMetas[0];
|
|
var parsedTemplate = _this._templateParser.parse(compMeta.template.template, normalizedViewDirMetas, uniqViewPipes, compMeta.type.name);
|
|
var childPromises = [];
|
|
var usedDirectives = DirectiveCollector.findUsedDirectives(parsedTemplate);
|
|
usedDirectives.components.forEach(function(component) {
|
|
return _this._compileNestedComponentRuntime(component, compilingComponentsPath, childPromises);
|
|
});
|
|
return async_1.PromiseWrapper.all(childPromises).then(function(_) {
|
|
var filteredPipes = filterPipes(parsedTemplate, uniqViewPipes);
|
|
compiledTemplate.init(_this._createViewFactoryRuntime(compMeta, parsedTemplate, usedDirectives.directives, styles, filteredPipes));
|
|
return compiledTemplate;
|
|
});
|
|
});
|
|
this._compiledTemplateDone.set(cacheKey, done);
|
|
}
|
|
return compiledTemplate;
|
|
};
|
|
TemplateCompiler.prototype._compileNestedComponentRuntime = function(childComponentDir, parentCompilingComponentsPath, childPromises) {
|
|
var compilingComponentsPath = collection_1.ListWrapper.clone(parentCompilingComponentsPath);
|
|
var childCacheKey = childComponentDir.type.runtime;
|
|
var childViewDirectives = this._runtimeMetadataResolver.getViewDirectivesMetadata(childComponentDir.type.runtime);
|
|
var childViewPipes = this._runtimeMetadataResolver.getViewPipesMetadata(childComponentDir.type.runtime);
|
|
var childIsRecursive = collection_1.ListWrapper.contains(compilingComponentsPath, childCacheKey);
|
|
compilingComponentsPath.push(childCacheKey);
|
|
this._compileComponentRuntime(childCacheKey, childComponentDir, childViewDirectives, childViewPipes, compilingComponentsPath);
|
|
if (!childIsRecursive) {
|
|
childPromises.push(this._compiledTemplateDone.get(childCacheKey));
|
|
}
|
|
};
|
|
TemplateCompiler.prototype._createViewFactoryRuntime = function(compMeta, parsedTemplate, directives, styles, pipes) {
|
|
var _this = this;
|
|
if (lang_1.IS_DART || !this._genConfig.useJit) {
|
|
var changeDetectorFactories = this._cdCompiler.compileComponentRuntime(compMeta.type, compMeta.changeDetection, parsedTemplate);
|
|
var protoViews = this._protoViewCompiler.compileProtoViewRuntime(this._resolvedMetadataCache, compMeta, parsedTemplate, pipes);
|
|
return this._viewCompiler.compileComponentRuntime(compMeta, parsedTemplate, styles, protoViews.protoViews, changeDetectorFactories, function(compMeta) {
|
|
return _this._getNestedComponentViewFactory(compMeta);
|
|
});
|
|
} else {
|
|
var declarations = [];
|
|
var viewFactoryExpr = this._createViewFactoryCodeGen('resolvedMetadataCache', compMeta, new source_module_1.SourceExpression([], 'styles'), parsedTemplate, pipes, declarations);
|
|
var vars = {
|
|
'exports': {},
|
|
'styles': styles,
|
|
'resolvedMetadataCache': this._resolvedMetadataCache
|
|
};
|
|
directives.forEach(function(dirMeta) {
|
|
vars[dirMeta.type.name] = dirMeta.type.runtime;
|
|
if (dirMeta.isComponent && dirMeta.type.runtime !== compMeta.type.runtime) {
|
|
vars[("viewFactory_" + dirMeta.type.name + "0")] = _this._getNestedComponentViewFactory(dirMeta);
|
|
}
|
|
});
|
|
pipes.forEach(function(pipeMeta) {
|
|
return vars[pipeMeta.type.name] = pipeMeta.type.runtime;
|
|
});
|
|
var declarationsWithoutImports = source_module_1.SourceModule.getSourceWithoutImports(declarations.join('\n'));
|
|
return lang_1.evalExpression("viewFactory_" + compMeta.type.name, viewFactoryExpr, declarationsWithoutImports, mergeStringMaps([vars, change_detector_compiler_1.CHANGE_DETECTION_JIT_IMPORTS, proto_view_compiler_1.PROTO_VIEW_JIT_IMPORTS, view_compiler_1.VIEW_JIT_IMPORTS]));
|
|
}
|
|
};
|
|
TemplateCompiler.prototype._getNestedComponentViewFactory = function(compMeta) {
|
|
return this._compiledTemplateCache.get(compMeta.type.runtime).viewFactory;
|
|
};
|
|
TemplateCompiler.prototype._compileComponentCodeGen = function(compMeta, directives, pipes, targetDeclarations) {
|
|
var uniqueDirectives = removeDuplicates(directives);
|
|
var uniqPipes = removeDuplicates(pipes);
|
|
var styleExpr = this._styleCompiler.compileComponentCodeGen(compMeta.template);
|
|
var parsedTemplate = this._templateParser.parse(compMeta.template.template, uniqueDirectives, uniqPipes, compMeta.type.name);
|
|
var filteredPipes = filterPipes(parsedTemplate, uniqPipes);
|
|
return this._createViewFactoryCodeGen(exports.METADATA_CACHE_MODULE_REF + "CODEGEN_RESOLVED_METADATA_CACHE", compMeta, styleExpr, parsedTemplate, filteredPipes, targetDeclarations);
|
|
};
|
|
TemplateCompiler.prototype._createViewFactoryCodeGen = function(resolvedMetadataCacheExpr, compMeta, styleExpr, parsedTemplate, pipes, targetDeclarations) {
|
|
var changeDetectorsExprs = this._cdCompiler.compileComponentCodeGen(compMeta.type, compMeta.changeDetection, parsedTemplate);
|
|
var protoViewExprs = this._protoViewCompiler.compileProtoViewCodeGen(new util_1.Expression(resolvedMetadataCacheExpr), compMeta, parsedTemplate, pipes);
|
|
var viewFactoryExpr = this._viewCompiler.compileComponentCodeGen(compMeta, parsedTemplate, styleExpr, protoViewExprs.protoViews, changeDetectorsExprs, codeGenComponentViewFactoryName);
|
|
util_1.addAll(changeDetectorsExprs.declarations, targetDeclarations);
|
|
util_1.addAll(protoViewExprs.declarations, targetDeclarations);
|
|
util_1.addAll(viewFactoryExpr.declarations, targetDeclarations);
|
|
return viewFactoryExpr.expression;
|
|
};
|
|
TemplateCompiler = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [runtime_metadata_1.RuntimeMetadataResolver, template_normalizer_1.TemplateNormalizer, template_parser_1.TemplateParser, style_compiler_1.StyleCompiler, change_detector_compiler_1.ChangeDetectionCompiler, proto_view_compiler_1.ProtoViewCompiler, view_compiler_1.ViewCompiler, resolved_metadata_cache_1.ResolvedMetadataCache, change_detection_1.ChangeDetectorGenConfig])], TemplateCompiler);
|
|
return TemplateCompiler;
|
|
})();
|
|
exports.TemplateCompiler = TemplateCompiler;
|
|
var NormalizedComponentWithViewDirectives = (function() {
|
|
function NormalizedComponentWithViewDirectives(component, directives, pipes) {
|
|
this.component = component;
|
|
this.directives = directives;
|
|
this.pipes = pipes;
|
|
}
|
|
return NormalizedComponentWithViewDirectives;
|
|
})();
|
|
exports.NormalizedComponentWithViewDirectives = NormalizedComponentWithViewDirectives;
|
|
var CompiledTemplate = (function() {
|
|
function CompiledTemplate() {
|
|
this.viewFactory = null;
|
|
}
|
|
CompiledTemplate.prototype.init = function(viewFactory) {
|
|
this.viewFactory = viewFactory;
|
|
};
|
|
return CompiledTemplate;
|
|
})();
|
|
function assertComponent(meta) {
|
|
if (!meta.isComponent) {
|
|
throw new exceptions_1.BaseException("Could not compile '" + meta.type.name + "' because it is not a component.");
|
|
}
|
|
}
|
|
function templateModuleUrl(moduleUrl) {
|
|
var urlWithoutSuffix = moduleUrl.substring(0, moduleUrl.length - util_1.MODULE_SUFFIX.length);
|
|
return urlWithoutSuffix + ".template" + util_1.MODULE_SUFFIX;
|
|
}
|
|
function codeGenHostViewFactoryName(type) {
|
|
return "hostViewFactory_" + type.name;
|
|
}
|
|
function codeGenComponentViewFactoryName(nestedCompType) {
|
|
return source_module_1.moduleRef(templateModuleUrl(nestedCompType.type.moduleUrl)) + "viewFactory_" + nestedCompType.type.name + "0";
|
|
}
|
|
function mergeStringMaps(maps) {
|
|
var result = {};
|
|
maps.forEach(function(map) {
|
|
collection_1.StringMapWrapper.forEach(map, function(value, key) {
|
|
result[key] = value;
|
|
});
|
|
});
|
|
return result;
|
|
}
|
|
function removeDuplicates(items) {
|
|
var res = [];
|
|
items.forEach(function(item) {
|
|
var hasMatch = res.filter(function(r) {
|
|
return r.type.name == item.type.name && r.type.moduleUrl == item.type.moduleUrl && r.type.runtime == item.type.runtime;
|
|
}).length > 0;
|
|
if (!hasMatch) {
|
|
res.push(item);
|
|
}
|
|
});
|
|
return res;
|
|
}
|
|
var DirectiveCollector = (function() {
|
|
function DirectiveCollector() {
|
|
this.directives = [];
|
|
this.components = [];
|
|
}
|
|
DirectiveCollector.findUsedDirectives = function(parsedTemplate) {
|
|
var collector = new DirectiveCollector();
|
|
template_ast_1.templateVisitAll(collector, parsedTemplate);
|
|
return collector;
|
|
};
|
|
DirectiveCollector.prototype.visitBoundText = function(ast, context) {
|
|
return null;
|
|
};
|
|
DirectiveCollector.prototype.visitText = function(ast, context) {
|
|
return null;
|
|
};
|
|
DirectiveCollector.prototype.visitNgContent = function(ast, context) {
|
|
return null;
|
|
};
|
|
DirectiveCollector.prototype.visitElement = function(ast, context) {
|
|
template_ast_1.templateVisitAll(this, ast.directives);
|
|
template_ast_1.templateVisitAll(this, ast.children);
|
|
return null;
|
|
};
|
|
DirectiveCollector.prototype.visitEmbeddedTemplate = function(ast, context) {
|
|
template_ast_1.templateVisitAll(this, ast.directives);
|
|
template_ast_1.templateVisitAll(this, ast.children);
|
|
return null;
|
|
};
|
|
DirectiveCollector.prototype.visitVariable = function(ast, ctx) {
|
|
return null;
|
|
};
|
|
DirectiveCollector.prototype.visitAttr = function(ast, attrNameAndValues) {
|
|
return null;
|
|
};
|
|
DirectiveCollector.prototype.visitDirective = function(ast, ctx) {
|
|
if (ast.directive.isComponent) {
|
|
this.components.push(ast.directive);
|
|
}
|
|
this.directives.push(ast.directive);
|
|
return null;
|
|
};
|
|
DirectiveCollector.prototype.visitEvent = function(ast, eventTargetAndNames) {
|
|
return null;
|
|
};
|
|
DirectiveCollector.prototype.visitDirectiveProperty = function(ast, context) {
|
|
return null;
|
|
};
|
|
DirectiveCollector.prototype.visitElementProperty = function(ast, context) {
|
|
return null;
|
|
};
|
|
return DirectiveCollector;
|
|
})();
|
|
function filterPipes(template, allPipes) {
|
|
var visitor = new PipeVisitor();
|
|
template_ast_1.templateVisitAll(visitor, template);
|
|
return allPipes.filter(function(pipeMeta) {
|
|
return collection_1.SetWrapper.has(visitor.collector.pipes, pipeMeta.name);
|
|
});
|
|
}
|
|
var PipeVisitor = (function() {
|
|
function PipeVisitor() {
|
|
this.collector = new template_parser_1.PipeCollector();
|
|
}
|
|
PipeVisitor.prototype.visitBoundText = function(ast, context) {
|
|
ast.value.visit(this.collector);
|
|
return null;
|
|
};
|
|
PipeVisitor.prototype.visitText = function(ast, context) {
|
|
return null;
|
|
};
|
|
PipeVisitor.prototype.visitNgContent = function(ast, context) {
|
|
return null;
|
|
};
|
|
PipeVisitor.prototype.visitElement = function(ast, context) {
|
|
template_ast_1.templateVisitAll(this, ast.inputs);
|
|
template_ast_1.templateVisitAll(this, ast.outputs);
|
|
template_ast_1.templateVisitAll(this, ast.directives);
|
|
template_ast_1.templateVisitAll(this, ast.children);
|
|
return null;
|
|
};
|
|
PipeVisitor.prototype.visitEmbeddedTemplate = function(ast, context) {
|
|
template_ast_1.templateVisitAll(this, ast.outputs);
|
|
template_ast_1.templateVisitAll(this, ast.directives);
|
|
template_ast_1.templateVisitAll(this, ast.children);
|
|
return null;
|
|
};
|
|
PipeVisitor.prototype.visitVariable = function(ast, ctx) {
|
|
return null;
|
|
};
|
|
PipeVisitor.prototype.visitAttr = function(ast, attrNameAndValues) {
|
|
return null;
|
|
};
|
|
PipeVisitor.prototype.visitDirective = function(ast, ctx) {
|
|
template_ast_1.templateVisitAll(this, ast.inputs);
|
|
template_ast_1.templateVisitAll(this, ast.hostEvents);
|
|
template_ast_1.templateVisitAll(this, ast.hostProperties);
|
|
return null;
|
|
};
|
|
PipeVisitor.prototype.visitEvent = function(ast, eventTargetAndNames) {
|
|
ast.handler.visit(this.collector);
|
|
return null;
|
|
};
|
|
PipeVisitor.prototype.visitDirectiveProperty = function(ast, context) {
|
|
ast.value.visit(this.collector);
|
|
return null;
|
|
};
|
|
PipeVisitor.prototype.visitElementProperty = function(ast, context) {
|
|
ast.value.visit(this.collector);
|
|
return null;
|
|
};
|
|
return PipeVisitor;
|
|
})();
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/router/router", ["angular2/src/facade/async", "angular2/src/facade/collection", "angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/core", "angular2/src/router/route_registry", "angular2/src/router/location/location", "angular2/src/router/lifecycle/route_lifecycle_reflector"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var __param = (this && this.__param) || function(paramIndex, decorator) {
|
|
return function(target, key) {
|
|
decorator(target, key, paramIndex);
|
|
};
|
|
};
|
|
var async_1 = require("angular2/src/facade/async");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var core_1 = require("angular2/core");
|
|
var route_registry_1 = require("angular2/src/router/route_registry");
|
|
var location_1 = require("angular2/src/router/location/location");
|
|
var route_lifecycle_reflector_1 = require("angular2/src/router/lifecycle/route_lifecycle_reflector");
|
|
var _resolveToTrue = async_1.PromiseWrapper.resolve(true);
|
|
var _resolveToFalse = async_1.PromiseWrapper.resolve(false);
|
|
var Router = (function() {
|
|
function Router(registry, parent, hostComponent, root) {
|
|
this.registry = registry;
|
|
this.parent = parent;
|
|
this.hostComponent = hostComponent;
|
|
this.root = root;
|
|
this.navigating = false;
|
|
this.currentInstruction = null;
|
|
this._currentNavigation = _resolveToTrue;
|
|
this._outlet = null;
|
|
this._auxRouters = new collection_1.Map();
|
|
this._subject = new async_1.EventEmitter();
|
|
}
|
|
Router.prototype.childRouter = function(hostComponent) {
|
|
return this._childRouter = new ChildRouter(this, hostComponent);
|
|
};
|
|
Router.prototype.auxRouter = function(hostComponent) {
|
|
return new ChildRouter(this, hostComponent);
|
|
};
|
|
Router.prototype.registerPrimaryOutlet = function(outlet) {
|
|
if (lang_1.isPresent(outlet.name)) {
|
|
throw new exceptions_1.BaseException("registerPrimaryOutlet expects to be called with an unnamed outlet.");
|
|
}
|
|
if (lang_1.isPresent(this._outlet)) {
|
|
throw new exceptions_1.BaseException("Primary outlet is already registered.");
|
|
}
|
|
this._outlet = outlet;
|
|
if (lang_1.isPresent(this.currentInstruction)) {
|
|
return this.commit(this.currentInstruction, false);
|
|
}
|
|
return _resolveToTrue;
|
|
};
|
|
Router.prototype.unregisterPrimaryOutlet = function(outlet) {
|
|
if (lang_1.isPresent(outlet.name)) {
|
|
throw new exceptions_1.BaseException("registerPrimaryOutlet expects to be called with an unnamed outlet.");
|
|
}
|
|
this._outlet = null;
|
|
};
|
|
Router.prototype.registerAuxOutlet = function(outlet) {
|
|
var outletName = outlet.name;
|
|
if (lang_1.isBlank(outletName)) {
|
|
throw new exceptions_1.BaseException("registerAuxOutlet expects to be called with an outlet with a name.");
|
|
}
|
|
var router = this.auxRouter(this.hostComponent);
|
|
this._auxRouters.set(outletName, router);
|
|
router._outlet = outlet;
|
|
var auxInstruction;
|
|
if (lang_1.isPresent(this.currentInstruction) && lang_1.isPresent(auxInstruction = this.currentInstruction.auxInstruction[outletName])) {
|
|
return router.commit(auxInstruction);
|
|
}
|
|
return _resolveToTrue;
|
|
};
|
|
Router.prototype.isRouteActive = function(instruction) {
|
|
var router = this;
|
|
while (lang_1.isPresent(router.parent) && lang_1.isPresent(instruction.child)) {
|
|
router = router.parent;
|
|
instruction = instruction.child;
|
|
}
|
|
return lang_1.isPresent(this.currentInstruction) && this.currentInstruction.component == instruction.component;
|
|
};
|
|
Router.prototype.config = function(definitions) {
|
|
var _this = this;
|
|
definitions.forEach(function(routeDefinition) {
|
|
_this.registry.config(_this.hostComponent, routeDefinition);
|
|
});
|
|
return this.renavigate();
|
|
};
|
|
Router.prototype.navigate = function(linkParams) {
|
|
var instruction = this.generate(linkParams);
|
|
return this.navigateByInstruction(instruction, false);
|
|
};
|
|
Router.prototype.navigateByUrl = function(url, _skipLocationChange) {
|
|
var _this = this;
|
|
if (_skipLocationChange === void 0) {
|
|
_skipLocationChange = false;
|
|
}
|
|
return this._currentNavigation = this._currentNavigation.then(function(_) {
|
|
_this.lastNavigationAttempt = url;
|
|
_this._startNavigating();
|
|
return _this._afterPromiseFinishNavigating(_this.recognize(url).then(function(instruction) {
|
|
if (lang_1.isBlank(instruction)) {
|
|
return false;
|
|
}
|
|
return _this._navigate(instruction, _skipLocationChange);
|
|
}));
|
|
});
|
|
};
|
|
Router.prototype.navigateByInstruction = function(instruction, _skipLocationChange) {
|
|
var _this = this;
|
|
if (_skipLocationChange === void 0) {
|
|
_skipLocationChange = false;
|
|
}
|
|
if (lang_1.isBlank(instruction)) {
|
|
return _resolveToFalse;
|
|
}
|
|
return this._currentNavigation = this._currentNavigation.then(function(_) {
|
|
_this._startNavigating();
|
|
return _this._afterPromiseFinishNavigating(_this._navigate(instruction, _skipLocationChange));
|
|
});
|
|
};
|
|
Router.prototype._settleInstruction = function(instruction) {
|
|
var _this = this;
|
|
return instruction.resolveComponent().then(function(_) {
|
|
var unsettledInstructions = [];
|
|
if (lang_1.isPresent(instruction.component)) {
|
|
instruction.component.reuse = false;
|
|
}
|
|
if (lang_1.isPresent(instruction.child)) {
|
|
unsettledInstructions.push(_this._settleInstruction(instruction.child));
|
|
}
|
|
collection_1.StringMapWrapper.forEach(instruction.auxInstruction, function(instruction, _) {
|
|
unsettledInstructions.push(_this._settleInstruction(instruction));
|
|
});
|
|
return async_1.PromiseWrapper.all(unsettledInstructions);
|
|
});
|
|
};
|
|
Router.prototype._navigate = function(instruction, _skipLocationChange) {
|
|
var _this = this;
|
|
return this._settleInstruction(instruction).then(function(_) {
|
|
return _this._routerCanReuse(instruction);
|
|
}).then(function(_) {
|
|
return _this._canActivate(instruction);
|
|
}).then(function(result) {
|
|
if (!result) {
|
|
return false;
|
|
}
|
|
return _this._routerCanDeactivate(instruction).then(function(result) {
|
|
if (result) {
|
|
return _this.commit(instruction, _skipLocationChange).then(function(_) {
|
|
_this._emitNavigationFinish(instruction.toRootUrl());
|
|
return true;
|
|
});
|
|
}
|
|
});
|
|
});
|
|
};
|
|
Router.prototype._emitNavigationFinish = function(url) {
|
|
async_1.ObservableWrapper.callEmit(this._subject, url);
|
|
};
|
|
Router.prototype._emitNavigationFail = function(url) {
|
|
async_1.ObservableWrapper.callError(this._subject, url);
|
|
};
|
|
Router.prototype._afterPromiseFinishNavigating = function(promise) {
|
|
var _this = this;
|
|
return async_1.PromiseWrapper.catchError(promise.then(function(_) {
|
|
return _this._finishNavigating();
|
|
}), function(err) {
|
|
_this._finishNavigating();
|
|
throw err;
|
|
});
|
|
};
|
|
Router.prototype._routerCanReuse = function(instruction) {
|
|
var _this = this;
|
|
if (lang_1.isBlank(this._outlet)) {
|
|
return _resolveToFalse;
|
|
}
|
|
if (lang_1.isBlank(instruction.component)) {
|
|
return _resolveToTrue;
|
|
}
|
|
return this._outlet.routerCanReuse(instruction.component).then(function(result) {
|
|
instruction.component.reuse = result;
|
|
if (result && lang_1.isPresent(_this._childRouter) && lang_1.isPresent(instruction.child)) {
|
|
return _this._childRouter._routerCanReuse(instruction.child);
|
|
}
|
|
});
|
|
};
|
|
Router.prototype._canActivate = function(nextInstruction) {
|
|
return canActivateOne(nextInstruction, this.currentInstruction);
|
|
};
|
|
Router.prototype._routerCanDeactivate = function(instruction) {
|
|
var _this = this;
|
|
if (lang_1.isBlank(this._outlet)) {
|
|
return _resolveToTrue;
|
|
}
|
|
var next;
|
|
var childInstruction = null;
|
|
var reuse = false;
|
|
var componentInstruction = null;
|
|
if (lang_1.isPresent(instruction)) {
|
|
childInstruction = instruction.child;
|
|
componentInstruction = instruction.component;
|
|
reuse = lang_1.isBlank(instruction.component) || instruction.component.reuse;
|
|
}
|
|
if (reuse) {
|
|
next = _resolveToTrue;
|
|
} else {
|
|
next = this._outlet.routerCanDeactivate(componentInstruction);
|
|
}
|
|
return next.then(function(result) {
|
|
if (result == false) {
|
|
return false;
|
|
}
|
|
if (lang_1.isPresent(_this._childRouter)) {
|
|
return _this._childRouter._routerCanDeactivate(childInstruction);
|
|
}
|
|
return true;
|
|
});
|
|
};
|
|
Router.prototype.commit = function(instruction, _skipLocationChange) {
|
|
var _this = this;
|
|
if (_skipLocationChange === void 0) {
|
|
_skipLocationChange = false;
|
|
}
|
|
this.currentInstruction = instruction;
|
|
var next = _resolveToTrue;
|
|
if (lang_1.isPresent(this._outlet) && lang_1.isPresent(instruction.component)) {
|
|
var componentInstruction = instruction.component;
|
|
if (componentInstruction.reuse) {
|
|
next = this._outlet.reuse(componentInstruction);
|
|
} else {
|
|
next = this.deactivate(instruction).then(function(_) {
|
|
return _this._outlet.activate(componentInstruction);
|
|
});
|
|
}
|
|
if (lang_1.isPresent(instruction.child)) {
|
|
next = next.then(function(_) {
|
|
if (lang_1.isPresent(_this._childRouter)) {
|
|
return _this._childRouter.commit(instruction.child);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
var promises = [];
|
|
this._auxRouters.forEach(function(router, name) {
|
|
if (lang_1.isPresent(instruction.auxInstruction[name])) {
|
|
promises.push(router.commit(instruction.auxInstruction[name]));
|
|
}
|
|
});
|
|
return next.then(function(_) {
|
|
return async_1.PromiseWrapper.all(promises);
|
|
});
|
|
};
|
|
Router.prototype._startNavigating = function() {
|
|
this.navigating = true;
|
|
};
|
|
Router.prototype._finishNavigating = function() {
|
|
this.navigating = false;
|
|
};
|
|
Router.prototype.subscribe = function(onNext, onError) {
|
|
return async_1.ObservableWrapper.subscribe(this._subject, onNext, onError);
|
|
};
|
|
Router.prototype.deactivate = function(instruction) {
|
|
var _this = this;
|
|
var childInstruction = null;
|
|
var componentInstruction = null;
|
|
if (lang_1.isPresent(instruction)) {
|
|
childInstruction = instruction.child;
|
|
componentInstruction = instruction.component;
|
|
}
|
|
var next = _resolveToTrue;
|
|
if (lang_1.isPresent(this._childRouter)) {
|
|
next = this._childRouter.deactivate(childInstruction);
|
|
}
|
|
if (lang_1.isPresent(this._outlet)) {
|
|
next = next.then(function(_) {
|
|
return _this._outlet.deactivate(componentInstruction);
|
|
});
|
|
}
|
|
return next;
|
|
};
|
|
Router.prototype.recognize = function(url) {
|
|
var ancestorComponents = this._getAncestorInstructions();
|
|
return this.registry.recognize(url, ancestorComponents);
|
|
};
|
|
Router.prototype._getAncestorInstructions = function() {
|
|
var ancestorInstructions = [this.currentInstruction];
|
|
var ancestorRouter = this;
|
|
while (lang_1.isPresent(ancestorRouter = ancestorRouter.parent)) {
|
|
ancestorInstructions.unshift(ancestorRouter.currentInstruction);
|
|
}
|
|
return ancestorInstructions;
|
|
};
|
|
Router.prototype.renavigate = function() {
|
|
if (lang_1.isBlank(this.lastNavigationAttempt)) {
|
|
return this._currentNavigation;
|
|
}
|
|
return this.navigateByUrl(this.lastNavigationAttempt);
|
|
};
|
|
Router.prototype.generate = function(linkParams) {
|
|
var ancestorInstructions = this._getAncestorInstructions();
|
|
return this.registry.generate(linkParams, ancestorInstructions);
|
|
};
|
|
Router = __decorate([core_1.Injectable(), __metadata('design:paramtypes', [route_registry_1.RouteRegistry, Router, Object, Router])], Router);
|
|
return Router;
|
|
})();
|
|
exports.Router = Router;
|
|
var RootRouter = (function(_super) {
|
|
__extends(RootRouter, _super);
|
|
function RootRouter(registry, location, primaryComponent) {
|
|
var _this = this;
|
|
_super.call(this, registry, null, primaryComponent);
|
|
this.root = this;
|
|
this._location = location;
|
|
this._locationSub = this._location.subscribe(function(change) {
|
|
_this.recognize(change['url']).then(function(instruction) {
|
|
if (lang_1.isPresent(instruction)) {
|
|
_this.navigateByInstruction(instruction, lang_1.isPresent(change['pop'])).then(function(_) {
|
|
if (lang_1.isPresent(change['pop']) && change['type'] != 'hashchange') {
|
|
return ;
|
|
}
|
|
var emitPath = instruction.toUrlPath();
|
|
var emitQuery = instruction.toUrlQuery();
|
|
if (emitPath.length > 0 && emitPath[0] != '/') {
|
|
emitPath = '/' + emitPath;
|
|
}
|
|
if (change['type'] == 'hashchange') {
|
|
if (instruction.toRootUrl() != _this._location.path()) {
|
|
_this._location.replaceState(emitPath, emitQuery);
|
|
}
|
|
} else {
|
|
_this._location.go(emitPath, emitQuery);
|
|
}
|
|
});
|
|
} else {
|
|
_this._emitNavigationFail(change['url']);
|
|
}
|
|
});
|
|
});
|
|
this.registry.configFromComponent(primaryComponent);
|
|
this.navigateByUrl(location.path());
|
|
}
|
|
RootRouter.prototype.commit = function(instruction, _skipLocationChange) {
|
|
var _this = this;
|
|
if (_skipLocationChange === void 0) {
|
|
_skipLocationChange = false;
|
|
}
|
|
var emitPath = instruction.toUrlPath();
|
|
var emitQuery = instruction.toUrlQuery();
|
|
if (emitPath.length > 0 && emitPath[0] != '/') {
|
|
emitPath = '/' + emitPath;
|
|
}
|
|
var promise = _super.prototype.commit.call(this, instruction);
|
|
if (!_skipLocationChange) {
|
|
promise = promise.then(function(_) {
|
|
_this._location.go(emitPath, emitQuery);
|
|
});
|
|
}
|
|
return promise;
|
|
};
|
|
RootRouter.prototype.dispose = function() {
|
|
if (lang_1.isPresent(this._locationSub)) {
|
|
async_1.ObservableWrapper.dispose(this._locationSub);
|
|
this._locationSub = null;
|
|
}
|
|
};
|
|
RootRouter = __decorate([core_1.Injectable(), __param(2, core_1.Inject(route_registry_1.ROUTER_PRIMARY_COMPONENT)), __metadata('design:paramtypes', [route_registry_1.RouteRegistry, location_1.Location, lang_1.Type])], RootRouter);
|
|
return RootRouter;
|
|
})(Router);
|
|
exports.RootRouter = RootRouter;
|
|
var ChildRouter = (function(_super) {
|
|
__extends(ChildRouter, _super);
|
|
function ChildRouter(parent, hostComponent) {
|
|
_super.call(this, parent.registry, parent, hostComponent, parent.root);
|
|
this.parent = parent;
|
|
}
|
|
ChildRouter.prototype.navigateByUrl = function(url, _skipLocationChange) {
|
|
if (_skipLocationChange === void 0) {
|
|
_skipLocationChange = false;
|
|
}
|
|
return this.parent.navigateByUrl(url, _skipLocationChange);
|
|
};
|
|
ChildRouter.prototype.navigateByInstruction = function(instruction, _skipLocationChange) {
|
|
if (_skipLocationChange === void 0) {
|
|
_skipLocationChange = false;
|
|
}
|
|
return this.parent.navigateByInstruction(instruction, _skipLocationChange);
|
|
};
|
|
return ChildRouter;
|
|
})(Router);
|
|
function canActivateOne(nextInstruction, prevInstruction) {
|
|
var next = _resolveToTrue;
|
|
if (lang_1.isBlank(nextInstruction.component)) {
|
|
return next;
|
|
}
|
|
if (lang_1.isPresent(nextInstruction.child)) {
|
|
next = canActivateOne(nextInstruction.child, lang_1.isPresent(prevInstruction) ? prevInstruction.child : null);
|
|
}
|
|
return next.then(function(result) {
|
|
if (result == false) {
|
|
return false;
|
|
}
|
|
if (nextInstruction.component.reuse) {
|
|
return true;
|
|
}
|
|
var hook = route_lifecycle_reflector_1.getCanActivateHook(nextInstruction.component.componentType);
|
|
if (lang_1.isPresent(hook)) {
|
|
return hook(nextInstruction.component, lang_1.isPresent(prevInstruction) ? prevInstruction.component : null);
|
|
}
|
|
return true;
|
|
});
|
|
}
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("rxjs/Observable", ["rxjs/util/root", "rxjs/util/SymbolShim", "rxjs/util/toSubscriber", "rxjs/util/tryCatch", "rxjs/util/errorObject"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
"use strict";
|
|
var root_1 = require("rxjs/util/root");
|
|
var SymbolShim_1 = require("rxjs/util/SymbolShim");
|
|
var toSubscriber_1 = require("rxjs/util/toSubscriber");
|
|
var tryCatch_1 = require("rxjs/util/tryCatch");
|
|
var errorObject_1 = require("rxjs/util/errorObject");
|
|
var Observable = (function() {
|
|
function Observable(subscribe) {
|
|
this._isScalar = false;
|
|
if (subscribe) {
|
|
this._subscribe = subscribe;
|
|
}
|
|
}
|
|
Observable.prototype.lift = function(operator) {
|
|
var observable = new Observable();
|
|
observable.source = this;
|
|
observable.operator = operator;
|
|
return observable;
|
|
};
|
|
Observable.prototype.subscribe = function(observerOrNext, error, complete) {
|
|
var operator = this.operator;
|
|
var subscriber = toSubscriber_1.toSubscriber(observerOrNext, error, complete);
|
|
if (operator) {
|
|
subscriber.add(this._subscribe(operator.call(subscriber)));
|
|
} else {
|
|
subscriber.add(this._subscribe(subscriber));
|
|
}
|
|
if (subscriber.syncErrorThrowable) {
|
|
subscriber.syncErrorThrowable = false;
|
|
if (subscriber.syncErrorThrown) {
|
|
throw subscriber.syncErrorValue;
|
|
}
|
|
}
|
|
return subscriber;
|
|
};
|
|
Observable.prototype.forEach = function(next, thisArg, PromiseCtor) {
|
|
if (!PromiseCtor) {
|
|
if (root_1.root.Rx && root_1.root.Rx.config && root_1.root.Rx.config.Promise) {
|
|
PromiseCtor = root_1.root.Rx.config.Promise;
|
|
} else if (root_1.root.Promise) {
|
|
PromiseCtor = root_1.root.Promise;
|
|
}
|
|
}
|
|
if (!PromiseCtor) {
|
|
throw new Error('no Promise impl found');
|
|
}
|
|
var source = this;
|
|
return new PromiseCtor(function(resolve, reject) {
|
|
source.subscribe(function(value) {
|
|
var result = tryCatch_1.tryCatch(next).call(thisArg, value);
|
|
if (result === errorObject_1.errorObject) {
|
|
reject(errorObject_1.errorObject.e);
|
|
}
|
|
}, reject, resolve);
|
|
});
|
|
};
|
|
Observable.prototype._subscribe = function(subscriber) {
|
|
return this.source.subscribe(subscriber);
|
|
};
|
|
Observable.prototype[SymbolShim_1.SymbolShim.observable] = function() {
|
|
return this;
|
|
};
|
|
Observable.create = function(subscribe) {
|
|
return new Observable(subscribe);
|
|
};
|
|
return Observable;
|
|
}());
|
|
exports.Observable = Observable;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/di", ["angular2/src/core/di/metadata", "angular2/src/core/di/decorators", "angular2/src/core/di/forward_ref", "angular2/src/core/di/injector", "angular2/src/core/di/provider", "angular2/src/core/di/key", "angular2/src/core/di/exceptions", "angular2/src/core/di/opaque_token"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
function __export(m) {
|
|
for (var p in m)
|
|
if (!exports.hasOwnProperty(p))
|
|
exports[p] = m[p];
|
|
}
|
|
var metadata_1 = require("angular2/src/core/di/metadata");
|
|
exports.InjectMetadata = metadata_1.InjectMetadata;
|
|
exports.OptionalMetadata = metadata_1.OptionalMetadata;
|
|
exports.InjectableMetadata = metadata_1.InjectableMetadata;
|
|
exports.SelfMetadata = metadata_1.SelfMetadata;
|
|
exports.HostMetadata = metadata_1.HostMetadata;
|
|
exports.SkipSelfMetadata = metadata_1.SkipSelfMetadata;
|
|
exports.DependencyMetadata = metadata_1.DependencyMetadata;
|
|
__export(require("angular2/src/core/di/decorators"));
|
|
var forward_ref_1 = require("angular2/src/core/di/forward_ref");
|
|
exports.forwardRef = forward_ref_1.forwardRef;
|
|
exports.resolveForwardRef = forward_ref_1.resolveForwardRef;
|
|
var injector_1 = require("angular2/src/core/di/injector");
|
|
exports.Injector = injector_1.Injector;
|
|
var provider_1 = require("angular2/src/core/di/provider");
|
|
exports.Binding = provider_1.Binding;
|
|
exports.ProviderBuilder = provider_1.ProviderBuilder;
|
|
exports.ResolvedFactory = provider_1.ResolvedFactory;
|
|
exports.Dependency = provider_1.Dependency;
|
|
exports.bind = provider_1.bind;
|
|
exports.Provider = provider_1.Provider;
|
|
exports.provide = provider_1.provide;
|
|
var key_1 = require("angular2/src/core/di/key");
|
|
exports.Key = key_1.Key;
|
|
var exceptions_1 = require("angular2/src/core/di/exceptions");
|
|
exports.NoProviderError = exceptions_1.NoProviderError;
|
|
exports.AbstractProviderError = exceptions_1.AbstractProviderError;
|
|
exports.CyclicDependencyError = exceptions_1.CyclicDependencyError;
|
|
exports.InstantiationError = exceptions_1.InstantiationError;
|
|
exports.InvalidProviderError = exceptions_1.InvalidProviderError;
|
|
exports.NoAnnotationError = exceptions_1.NoAnnotationError;
|
|
exports.OutOfBoundsError = exceptions_1.OutOfBoundsError;
|
|
var opaque_token_1 = require("angular2/src/core/di/opaque_token");
|
|
exports.OpaqueToken = opaque_token_1.OpaqueToken;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/change_detection/change_detection", ["angular2/src/core/change_detection/differs/iterable_differs", "angular2/src/core/change_detection/differs/default_iterable_differ", "angular2/src/core/change_detection/differs/keyvalue_differs", "angular2/src/core/change_detection/differs/default_keyvalue_differ", "angular2/src/facade/lang", "angular2/src/core/change_detection/differs/default_keyvalue_differ", "angular2/src/core/change_detection/differs/default_iterable_differ", "angular2/src/core/change_detection/parser/ast", "angular2/src/core/change_detection/parser/lexer", "angular2/src/core/change_detection/parser/parser", "angular2/src/core/change_detection/parser/locals", "angular2/src/core/change_detection/exceptions", "angular2/src/core/change_detection/interfaces", "angular2/src/core/change_detection/constants", "angular2/src/core/change_detection/proto_change_detector", "angular2/src/core/change_detection/jit_proto_change_detector", "angular2/src/core/change_detection/binding_record", "angular2/src/core/change_detection/directive_record", "angular2/src/core/change_detection/dynamic_change_detector", "angular2/src/core/change_detection/change_detector_ref", "angular2/src/core/change_detection/differs/iterable_differs", "angular2/src/core/change_detection/differs/keyvalue_differs", "angular2/src/core/change_detection/change_detection_util"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var iterable_differs_1 = require("angular2/src/core/change_detection/differs/iterable_differs");
|
|
var default_iterable_differ_1 = require("angular2/src/core/change_detection/differs/default_iterable_differ");
|
|
var keyvalue_differs_1 = require("angular2/src/core/change_detection/differs/keyvalue_differs");
|
|
var default_keyvalue_differ_1 = require("angular2/src/core/change_detection/differs/default_keyvalue_differ");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var default_keyvalue_differ_2 = require("angular2/src/core/change_detection/differs/default_keyvalue_differ");
|
|
exports.DefaultKeyValueDifferFactory = default_keyvalue_differ_2.DefaultKeyValueDifferFactory;
|
|
exports.KeyValueChangeRecord = default_keyvalue_differ_2.KeyValueChangeRecord;
|
|
var default_iterable_differ_2 = require("angular2/src/core/change_detection/differs/default_iterable_differ");
|
|
exports.DefaultIterableDifferFactory = default_iterable_differ_2.DefaultIterableDifferFactory;
|
|
exports.CollectionChangeRecord = default_iterable_differ_2.CollectionChangeRecord;
|
|
var ast_1 = require("angular2/src/core/change_detection/parser/ast");
|
|
exports.ASTWithSource = ast_1.ASTWithSource;
|
|
exports.AST = ast_1.AST;
|
|
exports.AstTransformer = ast_1.AstTransformer;
|
|
exports.PropertyRead = ast_1.PropertyRead;
|
|
exports.LiteralArray = ast_1.LiteralArray;
|
|
exports.ImplicitReceiver = ast_1.ImplicitReceiver;
|
|
var lexer_1 = require("angular2/src/core/change_detection/parser/lexer");
|
|
exports.Lexer = lexer_1.Lexer;
|
|
var parser_1 = require("angular2/src/core/change_detection/parser/parser");
|
|
exports.Parser = parser_1.Parser;
|
|
var locals_1 = require("angular2/src/core/change_detection/parser/locals");
|
|
exports.Locals = locals_1.Locals;
|
|
var exceptions_1 = require("angular2/src/core/change_detection/exceptions");
|
|
exports.DehydratedException = exceptions_1.DehydratedException;
|
|
exports.ExpressionChangedAfterItHasBeenCheckedException = exceptions_1.ExpressionChangedAfterItHasBeenCheckedException;
|
|
exports.ChangeDetectionError = exceptions_1.ChangeDetectionError;
|
|
var interfaces_1 = require("angular2/src/core/change_detection/interfaces");
|
|
exports.ChangeDetectorDefinition = interfaces_1.ChangeDetectorDefinition;
|
|
exports.DebugContext = interfaces_1.DebugContext;
|
|
exports.ChangeDetectorGenConfig = interfaces_1.ChangeDetectorGenConfig;
|
|
var constants_1 = require("angular2/src/core/change_detection/constants");
|
|
exports.ChangeDetectionStrategy = constants_1.ChangeDetectionStrategy;
|
|
exports.CHANGE_DETECTION_STRATEGY_VALUES = constants_1.CHANGE_DETECTION_STRATEGY_VALUES;
|
|
var proto_change_detector_1 = require("angular2/src/core/change_detection/proto_change_detector");
|
|
exports.DynamicProtoChangeDetector = proto_change_detector_1.DynamicProtoChangeDetector;
|
|
var jit_proto_change_detector_1 = require("angular2/src/core/change_detection/jit_proto_change_detector");
|
|
exports.JitProtoChangeDetector = jit_proto_change_detector_1.JitProtoChangeDetector;
|
|
var binding_record_1 = require("angular2/src/core/change_detection/binding_record");
|
|
exports.BindingRecord = binding_record_1.BindingRecord;
|
|
exports.BindingTarget = binding_record_1.BindingTarget;
|
|
var directive_record_1 = require("angular2/src/core/change_detection/directive_record");
|
|
exports.DirectiveIndex = directive_record_1.DirectiveIndex;
|
|
exports.DirectiveRecord = directive_record_1.DirectiveRecord;
|
|
var dynamic_change_detector_1 = require("angular2/src/core/change_detection/dynamic_change_detector");
|
|
exports.DynamicChangeDetector = dynamic_change_detector_1.DynamicChangeDetector;
|
|
var change_detector_ref_1 = require("angular2/src/core/change_detection/change_detector_ref");
|
|
exports.ChangeDetectorRef = change_detector_ref_1.ChangeDetectorRef;
|
|
var iterable_differs_2 = require("angular2/src/core/change_detection/differs/iterable_differs");
|
|
exports.IterableDiffers = iterable_differs_2.IterableDiffers;
|
|
var keyvalue_differs_2 = require("angular2/src/core/change_detection/differs/keyvalue_differs");
|
|
exports.KeyValueDiffers = keyvalue_differs_2.KeyValueDiffers;
|
|
var change_detection_util_1 = require("angular2/src/core/change_detection/change_detection_util");
|
|
exports.WrappedValue = change_detection_util_1.WrappedValue;
|
|
exports.SimpleChange = change_detection_util_1.SimpleChange;
|
|
exports.keyValDiff = lang_1.CONST_EXPR([lang_1.CONST_EXPR(new default_keyvalue_differ_1.DefaultKeyValueDifferFactory())]);
|
|
exports.iterableDiff = lang_1.CONST_EXPR([lang_1.CONST_EXPR(new default_iterable_differ_1.DefaultIterableDifferFactory())]);
|
|
exports.defaultIterableDiffers = lang_1.CONST_EXPR(new iterable_differs_1.IterableDiffers(exports.iterableDiff));
|
|
exports.defaultKeyValueDiffers = lang_1.CONST_EXPR(new keyvalue_differs_1.KeyValueDiffers(exports.keyValDiff));
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/application_ref", ["angular2/src/core/zone/ng_zone", "angular2/src/facade/lang", "angular2/src/core/di", "angular2/src/core/application_tokens", "angular2/src/facade/async", "angular2/src/facade/collection", "angular2/src/core/testability/testability", "angular2/src/core/linker/dynamic_component_loader", "angular2/src/facade/exceptions", "angular2/src/core/console", "angular2/src/core/profile/profile", "angular2/src/facade/lang"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var ng_zone_1 = require("angular2/src/core/zone/ng_zone");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var di_1 = require("angular2/src/core/di");
|
|
var application_tokens_1 = require("angular2/src/core/application_tokens");
|
|
var async_1 = require("angular2/src/facade/async");
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var testability_1 = require("angular2/src/core/testability/testability");
|
|
var dynamic_component_loader_1 = require("angular2/src/core/linker/dynamic_component_loader");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var console_1 = require("angular2/src/core/console");
|
|
var profile_1 = require("angular2/src/core/profile/profile");
|
|
var lang_2 = require("angular2/src/facade/lang");
|
|
function _componentProviders(appComponentType) {
|
|
return [di_1.provide(application_tokens_1.APP_COMPONENT, {useValue: appComponentType}), di_1.provide(application_tokens_1.APP_COMPONENT_REF_PROMISE, {
|
|
useFactory: function(dynamicComponentLoader, appRef, injector) {
|
|
var ref;
|
|
return dynamicComponentLoader.loadAsRoot(appComponentType, null, injector, function() {
|
|
appRef._unloadComponent(ref);
|
|
}).then(function(componentRef) {
|
|
ref = componentRef;
|
|
var testability = injector.getOptional(testability_1.Testability);
|
|
if (lang_1.isPresent(testability)) {
|
|
injector.get(testability_1.TestabilityRegistry).registerApplication(componentRef.location.nativeElement, testability);
|
|
}
|
|
return componentRef;
|
|
});
|
|
},
|
|
deps: [dynamic_component_loader_1.DynamicComponentLoader, ApplicationRef, di_1.Injector]
|
|
}), di_1.provide(appComponentType, {
|
|
useFactory: function(p) {
|
|
return p.then(function(ref) {
|
|
return ref.instance;
|
|
});
|
|
},
|
|
deps: [application_tokens_1.APP_COMPONENT_REF_PROMISE]
|
|
})];
|
|
}
|
|
function createNgZone() {
|
|
return new ng_zone_1.NgZone({enableLongStackTrace: lang_1.assertionsEnabled()});
|
|
}
|
|
exports.createNgZone = createNgZone;
|
|
var _platform;
|
|
var _platformProviders;
|
|
function platform(providers) {
|
|
lang_2.lockMode();
|
|
if (lang_1.isPresent(_platform)) {
|
|
if (collection_1.ListWrapper.equals(_platformProviders, providers)) {
|
|
return _platform;
|
|
} else {
|
|
throw new exceptions_1.BaseException("platform cannot be initialized with different sets of providers.");
|
|
}
|
|
} else {
|
|
return _createPlatform(providers);
|
|
}
|
|
}
|
|
exports.platform = platform;
|
|
function disposePlatform() {
|
|
if (lang_1.isPresent(_platform)) {
|
|
_platform.dispose();
|
|
_platform = null;
|
|
}
|
|
}
|
|
exports.disposePlatform = disposePlatform;
|
|
function _createPlatform(providers) {
|
|
_platformProviders = providers;
|
|
var injector = di_1.Injector.resolveAndCreate(providers);
|
|
_platform = new PlatformRef_(injector, function() {
|
|
_platform = null;
|
|
_platformProviders = null;
|
|
});
|
|
_runPlatformInitializers(injector);
|
|
return _platform;
|
|
}
|
|
function _runPlatformInitializers(injector) {
|
|
var inits = injector.getOptional(application_tokens_1.PLATFORM_INITIALIZER);
|
|
if (lang_1.isPresent(inits))
|
|
inits.forEach(function(init) {
|
|
return init();
|
|
});
|
|
}
|
|
var PlatformRef = (function() {
|
|
function PlatformRef() {}
|
|
Object.defineProperty(PlatformRef.prototype, "injector", {
|
|
get: function() {
|
|
throw exceptions_1.unimplemented();
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
;
|
|
return PlatformRef;
|
|
})();
|
|
exports.PlatformRef = PlatformRef;
|
|
var PlatformRef_ = (function(_super) {
|
|
__extends(PlatformRef_, _super);
|
|
function PlatformRef_(_injector, _dispose) {
|
|
_super.call(this);
|
|
this._injector = _injector;
|
|
this._dispose = _dispose;
|
|
this._applications = [];
|
|
this._disposeListeners = [];
|
|
}
|
|
PlatformRef_.prototype.registerDisposeListener = function(dispose) {
|
|
this._disposeListeners.push(dispose);
|
|
};
|
|
Object.defineProperty(PlatformRef_.prototype, "injector", {
|
|
get: function() {
|
|
return this._injector;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
PlatformRef_.prototype.application = function(providers) {
|
|
var app = this._initApp(createNgZone(), providers);
|
|
if (async_1.PromiseWrapper.isPromise(app)) {
|
|
throw new exceptions_1.BaseException("Cannot use asyncronous app initializers with application. Use asyncApplication instead.");
|
|
}
|
|
return app;
|
|
};
|
|
PlatformRef_.prototype.asyncApplication = function(bindingFn, additionalProviders) {
|
|
var _this = this;
|
|
var zone = createNgZone();
|
|
var completer = async_1.PromiseWrapper.completer();
|
|
if (bindingFn === null) {
|
|
completer.resolve(this._initApp(zone, additionalProviders));
|
|
} else {
|
|
zone.run(function() {
|
|
async_1.PromiseWrapper.then(bindingFn(zone), function(providers) {
|
|
if (lang_1.isPresent(additionalProviders)) {
|
|
providers = collection_1.ListWrapper.concat(providers, additionalProviders);
|
|
}
|
|
var promise = _this._initApp(zone, providers);
|
|
completer.resolve(promise);
|
|
});
|
|
});
|
|
}
|
|
return completer.promise;
|
|
};
|
|
PlatformRef_.prototype._initApp = function(zone, providers) {
|
|
var _this = this;
|
|
var injector;
|
|
var app;
|
|
zone.run(function() {
|
|
providers = collection_1.ListWrapper.concat(providers, [di_1.provide(ng_zone_1.NgZone, {useValue: zone}), di_1.provide(ApplicationRef, {
|
|
useFactory: function() {
|
|
return app;
|
|
},
|
|
deps: []
|
|
})]);
|
|
var exceptionHandler;
|
|
try {
|
|
injector = _this.injector.resolveAndCreateChild(providers);
|
|
exceptionHandler = injector.get(exceptions_1.ExceptionHandler);
|
|
async_1.ObservableWrapper.subscribe(zone.onError, function(error) {
|
|
exceptionHandler.call(error.error, error.stackTrace);
|
|
});
|
|
} catch (e) {
|
|
if (lang_1.isPresent(exceptionHandler)) {
|
|
exceptionHandler.call(e, e.stack);
|
|
} else {
|
|
lang_1.print(e.toString());
|
|
}
|
|
}
|
|
});
|
|
app = new ApplicationRef_(this, zone, injector);
|
|
this._applications.push(app);
|
|
var promise = _runAppInitializers(injector);
|
|
if (promise !== null) {
|
|
return async_1.PromiseWrapper.then(promise, function(_) {
|
|
return app;
|
|
});
|
|
} else {
|
|
return app;
|
|
}
|
|
};
|
|
PlatformRef_.prototype.dispose = function() {
|
|
collection_1.ListWrapper.clone(this._applications).forEach(function(app) {
|
|
return app.dispose();
|
|
});
|
|
this._disposeListeners.forEach(function(dispose) {
|
|
return dispose();
|
|
});
|
|
this._dispose();
|
|
};
|
|
PlatformRef_.prototype._applicationDisposed = function(app) {
|
|
collection_1.ListWrapper.remove(this._applications, app);
|
|
};
|
|
return PlatformRef_;
|
|
})(PlatformRef);
|
|
exports.PlatformRef_ = PlatformRef_;
|
|
function _runAppInitializers(injector) {
|
|
var inits = injector.getOptional(application_tokens_1.APP_INITIALIZER);
|
|
var promises = [];
|
|
if (lang_1.isPresent(inits)) {
|
|
inits.forEach(function(init) {
|
|
var retVal = init();
|
|
if (async_1.PromiseWrapper.isPromise(retVal)) {
|
|
promises.push(retVal);
|
|
}
|
|
});
|
|
}
|
|
if (promises.length > 0) {
|
|
return async_1.PromiseWrapper.all(promises);
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
var ApplicationRef = (function() {
|
|
function ApplicationRef() {}
|
|
Object.defineProperty(ApplicationRef.prototype, "injector", {
|
|
get: function() {
|
|
return exceptions_1.unimplemented();
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
;
|
|
Object.defineProperty(ApplicationRef.prototype, "zone", {
|
|
get: function() {
|
|
return exceptions_1.unimplemented();
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
;
|
|
Object.defineProperty(ApplicationRef.prototype, "componentTypes", {
|
|
get: function() {
|
|
return exceptions_1.unimplemented();
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
;
|
|
return ApplicationRef;
|
|
})();
|
|
exports.ApplicationRef = ApplicationRef;
|
|
var ApplicationRef_ = (function(_super) {
|
|
__extends(ApplicationRef_, _super);
|
|
function ApplicationRef_(_platform, _zone, _injector) {
|
|
var _this = this;
|
|
_super.call(this);
|
|
this._platform = _platform;
|
|
this._zone = _zone;
|
|
this._injector = _injector;
|
|
this._bootstrapListeners = [];
|
|
this._disposeListeners = [];
|
|
this._rootComponents = [];
|
|
this._rootComponentTypes = [];
|
|
this._changeDetectorRefs = [];
|
|
this._runningTick = false;
|
|
this._enforceNoNewChanges = false;
|
|
if (lang_1.isPresent(this._zone)) {
|
|
async_1.ObservableWrapper.subscribe(this._zone.onMicrotaskEmpty, function(_) {
|
|
_this._zone.run(function() {
|
|
_this.tick();
|
|
});
|
|
});
|
|
}
|
|
this._enforceNoNewChanges = lang_1.assertionsEnabled();
|
|
}
|
|
ApplicationRef_.prototype.registerBootstrapListener = function(listener) {
|
|
this._bootstrapListeners.push(listener);
|
|
};
|
|
ApplicationRef_.prototype.registerDisposeListener = function(dispose) {
|
|
this._disposeListeners.push(dispose);
|
|
};
|
|
ApplicationRef_.prototype.registerChangeDetector = function(changeDetector) {
|
|
this._changeDetectorRefs.push(changeDetector);
|
|
};
|
|
ApplicationRef_.prototype.unregisterChangeDetector = function(changeDetector) {
|
|
collection_1.ListWrapper.remove(this._changeDetectorRefs, changeDetector);
|
|
};
|
|
ApplicationRef_.prototype.bootstrap = function(componentType, providers) {
|
|
var _this = this;
|
|
var completer = async_1.PromiseWrapper.completer();
|
|
this._zone.run(function() {
|
|
var componentProviders = _componentProviders(componentType);
|
|
if (lang_1.isPresent(providers)) {
|
|
componentProviders.push(providers);
|
|
}
|
|
var exceptionHandler = _this._injector.get(exceptions_1.ExceptionHandler);
|
|
_this._rootComponentTypes.push(componentType);
|
|
try {
|
|
var injector = _this._injector.resolveAndCreateChild(componentProviders);
|
|
var compRefToken = injector.get(application_tokens_1.APP_COMPONENT_REF_PROMISE);
|
|
var tick = function(componentRef) {
|
|
_this._loadComponent(componentRef);
|
|
completer.resolve(componentRef);
|
|
};
|
|
var tickResult = async_1.PromiseWrapper.then(compRefToken, tick);
|
|
async_1.PromiseWrapper.then(tickResult, null, function(err, stackTrace) {
|
|
completer.reject(err, stackTrace);
|
|
exceptionHandler.call(err, stackTrace);
|
|
});
|
|
} catch (e) {
|
|
exceptionHandler.call(e, e.stack);
|
|
completer.reject(e, e.stack);
|
|
}
|
|
});
|
|
return completer.promise.then(function(ref) {
|
|
var c = _this._injector.get(console_1.Console);
|
|
if (lang_1.assertionsEnabled()) {
|
|
c.log("Angular 2 is running in the development mode. Call enableProdMode() to enable the production mode.");
|
|
}
|
|
return ref;
|
|
});
|
|
};
|
|
ApplicationRef_.prototype._loadComponent = function(componentRef) {
|
|
var appChangeDetector = componentRef.location.internalElement.parentView.changeDetector;
|
|
this._changeDetectorRefs.push(appChangeDetector.ref);
|
|
this.tick();
|
|
this._rootComponents.push(componentRef);
|
|
this._bootstrapListeners.forEach(function(listener) {
|
|
return listener(componentRef);
|
|
});
|
|
};
|
|
ApplicationRef_.prototype._unloadComponent = function(componentRef) {
|
|
if (!collection_1.ListWrapper.contains(this._rootComponents, componentRef)) {
|
|
return ;
|
|
}
|
|
this.unregisterChangeDetector(componentRef.location.internalElement.parentView.changeDetector.ref);
|
|
collection_1.ListWrapper.remove(this._rootComponents, componentRef);
|
|
};
|
|
Object.defineProperty(ApplicationRef_.prototype, "injector", {
|
|
get: function() {
|
|
return this._injector;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(ApplicationRef_.prototype, "zone", {
|
|
get: function() {
|
|
return this._zone;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
ApplicationRef_.prototype.tick = function() {
|
|
if (this._runningTick) {
|
|
throw new exceptions_1.BaseException("ApplicationRef.tick is called recursively");
|
|
}
|
|
var s = ApplicationRef_._tickScope();
|
|
try {
|
|
this._runningTick = true;
|
|
this._changeDetectorRefs.forEach(function(detector) {
|
|
return detector.detectChanges();
|
|
});
|
|
if (this._enforceNoNewChanges) {
|
|
this._changeDetectorRefs.forEach(function(detector) {
|
|
return detector.checkNoChanges();
|
|
});
|
|
}
|
|
} finally {
|
|
this._runningTick = false;
|
|
profile_1.wtfLeave(s);
|
|
}
|
|
};
|
|
ApplicationRef_.prototype.dispose = function() {
|
|
collection_1.ListWrapper.clone(this._rootComponents).forEach(function(ref) {
|
|
return ref.dispose();
|
|
});
|
|
this._disposeListeners.forEach(function(dispose) {
|
|
return dispose();
|
|
});
|
|
this._platform._applicationDisposed(this);
|
|
};
|
|
Object.defineProperty(ApplicationRef_.prototype, "componentTypes", {
|
|
get: function() {
|
|
return this._rootComponentTypes;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
ApplicationRef_._tickScope = profile_1.wtfCreateScope('ApplicationRef#tick()');
|
|
return ApplicationRef_;
|
|
})(ApplicationRef);
|
|
exports.ApplicationRef_ = ApplicationRef_;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/platform/common_dom", ["angular2/src/platform/dom/dom_adapter", "angular2/src/platform/dom/dom_renderer", "angular2/src/platform/dom/dom_tokens", "angular2/src/platform/dom/shared_styles_host", "angular2/src/platform/dom/events/dom_events", "angular2/src/platform/dom/events/event_manager", "angular2/src/platform/dom/debug/by", "angular2/src/platform/dom/debug/ng_probe"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
function __export(m) {
|
|
for (var p in m)
|
|
if (!exports.hasOwnProperty(p))
|
|
exports[p] = m[p];
|
|
}
|
|
var dom_adapter_1 = require("angular2/src/platform/dom/dom_adapter");
|
|
exports.DOM = dom_adapter_1.DOM;
|
|
exports.setRootDomAdapter = dom_adapter_1.setRootDomAdapter;
|
|
exports.DomAdapter = dom_adapter_1.DomAdapter;
|
|
var dom_renderer_1 = require("angular2/src/platform/dom/dom_renderer");
|
|
exports.DomRenderer = dom_renderer_1.DomRenderer;
|
|
var dom_tokens_1 = require("angular2/src/platform/dom/dom_tokens");
|
|
exports.DOCUMENT = dom_tokens_1.DOCUMENT;
|
|
var shared_styles_host_1 = require("angular2/src/platform/dom/shared_styles_host");
|
|
exports.SharedStylesHost = shared_styles_host_1.SharedStylesHost;
|
|
exports.DomSharedStylesHost = shared_styles_host_1.DomSharedStylesHost;
|
|
var dom_events_1 = require("angular2/src/platform/dom/events/dom_events");
|
|
exports.DomEventsPlugin = dom_events_1.DomEventsPlugin;
|
|
var event_manager_1 = require("angular2/src/platform/dom/events/event_manager");
|
|
exports.EVENT_MANAGER_PLUGINS = event_manager_1.EVENT_MANAGER_PLUGINS;
|
|
exports.EventManager = event_manager_1.EventManager;
|
|
exports.EventManagerPlugin = event_manager_1.EventManagerPlugin;
|
|
__export(require("angular2/src/platform/dom/debug/by"));
|
|
__export(require("angular2/src/platform/dom/debug/ng_probe"));
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/compiler/runtime_compiler", ["angular2/src/core/linker/compiler", "angular2/src/core/linker/view_ref", "angular2/src/compiler/template_compiler", "angular2/src/core/di"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var compiler_1 = require("angular2/src/core/linker/compiler");
|
|
var view_ref_1 = require("angular2/src/core/linker/view_ref");
|
|
var template_compiler_1 = require("angular2/src/compiler/template_compiler");
|
|
var di_1 = require("angular2/src/core/di");
|
|
var RuntimeCompiler = (function(_super) {
|
|
__extends(RuntimeCompiler, _super);
|
|
function RuntimeCompiler() {
|
|
_super.apply(this, arguments);
|
|
}
|
|
return RuntimeCompiler;
|
|
})(compiler_1.Compiler);
|
|
exports.RuntimeCompiler = RuntimeCompiler;
|
|
var RuntimeCompiler_ = (function(_super) {
|
|
__extends(RuntimeCompiler_, _super);
|
|
function RuntimeCompiler_(_templateCompiler) {
|
|
_super.call(this);
|
|
this._templateCompiler = _templateCompiler;
|
|
}
|
|
RuntimeCompiler_.prototype.compileInHost = function(componentType) {
|
|
return this._templateCompiler.compileHostComponentRuntime(componentType).then(function(hostViewFactory) {
|
|
return new view_ref_1.HostViewFactoryRef_(hostViewFactory);
|
|
});
|
|
};
|
|
RuntimeCompiler_.prototype.clearCache = function() {
|
|
_super.prototype.clearCache.call(this);
|
|
this._templateCompiler.clearCache();
|
|
};
|
|
RuntimeCompiler_ = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [template_compiler_1.TemplateCompiler])], RuntimeCompiler_);
|
|
return RuntimeCompiler_;
|
|
})(compiler_1.Compiler_);
|
|
exports.RuntimeCompiler_ = RuntimeCompiler_;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/router/router_providers_common", ["angular2/src/router/location/location_strategy", "angular2/src/router/location/path_location_strategy", "angular2/src/router/router", "angular2/src/router/route_registry", "angular2/src/router/location/location", "angular2/src/facade/lang", "angular2/core", "angular2/src/facade/exceptions"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var location_strategy_1 = require("angular2/src/router/location/location_strategy");
|
|
var path_location_strategy_1 = require("angular2/src/router/location/path_location_strategy");
|
|
var router_1 = require("angular2/src/router/router");
|
|
var route_registry_1 = require("angular2/src/router/route_registry");
|
|
var location_1 = require("angular2/src/router/location/location");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var core_1 = require("angular2/core");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
exports.ROUTER_PROVIDERS_COMMON = lang_1.CONST_EXPR([route_registry_1.RouteRegistry, lang_1.CONST_EXPR(new core_1.Provider(location_strategy_1.LocationStrategy, {useClass: path_location_strategy_1.PathLocationStrategy})), location_1.Location, lang_1.CONST_EXPR(new core_1.Provider(router_1.Router, {
|
|
useFactory: routerFactory,
|
|
deps: lang_1.CONST_EXPR([route_registry_1.RouteRegistry, location_1.Location, route_registry_1.ROUTER_PRIMARY_COMPONENT, core_1.ApplicationRef])
|
|
})), lang_1.CONST_EXPR(new core_1.Provider(route_registry_1.ROUTER_PRIMARY_COMPONENT, {
|
|
useFactory: routerPrimaryComponentFactory,
|
|
deps: lang_1.CONST_EXPR([core_1.ApplicationRef])
|
|
}))]);
|
|
function routerFactory(registry, location, primaryComponent, appRef) {
|
|
var rootRouter = new router_1.RootRouter(registry, location, primaryComponent);
|
|
appRef.registerDisposeListener(function() {
|
|
return rootRouter.dispose();
|
|
});
|
|
return rootRouter;
|
|
}
|
|
function routerPrimaryComponentFactory(app) {
|
|
if (app.componentTypes.length == 0) {
|
|
throw new exceptions_1.BaseException("Bootstrap at least one component before injecting Router.");
|
|
}
|
|
return app.componentTypes[0];
|
|
}
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("rxjs/Subject", ["rxjs/Observable", "rxjs/Subscriber", "rxjs/Subscription", "rxjs/subject/SubjectSubscription", "rxjs/symbol/rxSubscriber", "rxjs/util/throwError", "rxjs/util/ObjectUnsubscribedError"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
"use strict";
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var Observable_1 = require("rxjs/Observable");
|
|
var Subscriber_1 = require("rxjs/Subscriber");
|
|
var Subscription_1 = require("rxjs/Subscription");
|
|
var SubjectSubscription_1 = require("rxjs/subject/SubjectSubscription");
|
|
var rxSubscriber_1 = require("rxjs/symbol/rxSubscriber");
|
|
var throwError_1 = require("rxjs/util/throwError");
|
|
var ObjectUnsubscribedError_1 = require("rxjs/util/ObjectUnsubscribedError");
|
|
var Subject = (function(_super) {
|
|
__extends(Subject, _super);
|
|
function Subject(destination, source) {
|
|
_super.call(this);
|
|
this.destination = destination;
|
|
this.source = source;
|
|
this.observers = [];
|
|
this.isUnsubscribed = false;
|
|
this.isStopped = false;
|
|
this.hasErrored = false;
|
|
this.dispatching = false;
|
|
this.hasCompleted = false;
|
|
}
|
|
Subject.prototype.lift = function(operator) {
|
|
var subject = new Subject(this.destination || this, this);
|
|
subject.operator = operator;
|
|
return subject;
|
|
};
|
|
Subject.prototype.add = function(subscription) {
|
|
Subscription_1.Subscription.prototype.add.call(this, subscription);
|
|
};
|
|
Subject.prototype.remove = function(subscription) {
|
|
Subscription_1.Subscription.prototype.remove.call(this, subscription);
|
|
};
|
|
Subject.prototype.unsubscribe = function() {
|
|
Subscription_1.Subscription.prototype.unsubscribe.call(this);
|
|
};
|
|
Subject.prototype._subscribe = function(subscriber) {
|
|
if (this.source) {
|
|
return this.source.subscribe(subscriber);
|
|
} else {
|
|
if (subscriber.isUnsubscribed) {
|
|
return ;
|
|
} else if (this.hasErrored) {
|
|
return subscriber.error(this.errorValue);
|
|
} else if (this.hasCompleted) {
|
|
return subscriber.complete();
|
|
}
|
|
this.throwIfUnsubscribed();
|
|
var subscription = new SubjectSubscription_1.SubjectSubscription(this, subscriber);
|
|
this.observers.push(subscriber);
|
|
return subscription;
|
|
}
|
|
};
|
|
Subject.prototype._unsubscribe = function() {
|
|
this.source = null;
|
|
this.isStopped = true;
|
|
this.observers = null;
|
|
this.destination = null;
|
|
};
|
|
Subject.prototype.next = function(value) {
|
|
this.throwIfUnsubscribed();
|
|
if (this.isStopped) {
|
|
return ;
|
|
}
|
|
this.dispatching = true;
|
|
this._next(value);
|
|
this.dispatching = false;
|
|
if (this.hasErrored) {
|
|
this._error(this.errorValue);
|
|
} else if (this.hasCompleted) {
|
|
this._complete();
|
|
}
|
|
};
|
|
Subject.prototype.error = function(err) {
|
|
this.throwIfUnsubscribed();
|
|
if (this.isStopped) {
|
|
return ;
|
|
}
|
|
this.isStopped = true;
|
|
this.hasErrored = true;
|
|
this.errorValue = err;
|
|
if (this.dispatching) {
|
|
return ;
|
|
}
|
|
this._error(err);
|
|
};
|
|
Subject.prototype.complete = function() {
|
|
this.throwIfUnsubscribed();
|
|
if (this.isStopped) {
|
|
return ;
|
|
}
|
|
this.isStopped = true;
|
|
this.hasCompleted = true;
|
|
if (this.dispatching) {
|
|
return ;
|
|
}
|
|
this._complete();
|
|
};
|
|
Subject.prototype.asObservable = function() {
|
|
var observable = new SubjectObservable(this);
|
|
return observable;
|
|
};
|
|
Subject.prototype._next = function(value) {
|
|
if (this.destination) {
|
|
this.destination.next(value);
|
|
} else {
|
|
this._finalNext(value);
|
|
}
|
|
};
|
|
Subject.prototype._finalNext = function(value) {
|
|
var index = -1;
|
|
var observers = this.observers.slice(0);
|
|
var len = observers.length;
|
|
while (++index < len) {
|
|
observers[index].next(value);
|
|
}
|
|
};
|
|
Subject.prototype._error = function(err) {
|
|
if (this.destination) {
|
|
this.destination.error(err);
|
|
} else {
|
|
this._finalError(err);
|
|
}
|
|
};
|
|
Subject.prototype._finalError = function(err) {
|
|
var index = -1;
|
|
var observers = this.observers;
|
|
this.observers = null;
|
|
this.isUnsubscribed = true;
|
|
if (observers) {
|
|
var len = observers.length;
|
|
while (++index < len) {
|
|
observers[index].error(err);
|
|
}
|
|
}
|
|
this.isUnsubscribed = false;
|
|
this.unsubscribe();
|
|
};
|
|
Subject.prototype._complete = function() {
|
|
if (this.destination) {
|
|
this.destination.complete();
|
|
} else {
|
|
this._finalComplete();
|
|
}
|
|
};
|
|
Subject.prototype._finalComplete = function() {
|
|
var index = -1;
|
|
var observers = this.observers;
|
|
this.observers = null;
|
|
this.isUnsubscribed = true;
|
|
if (observers) {
|
|
var len = observers.length;
|
|
while (++index < len) {
|
|
observers[index].complete();
|
|
}
|
|
}
|
|
this.isUnsubscribed = false;
|
|
this.unsubscribe();
|
|
};
|
|
Subject.prototype.throwIfUnsubscribed = function() {
|
|
if (this.isUnsubscribed) {
|
|
throwError_1.throwError(new ObjectUnsubscribedError_1.ObjectUnsubscribedError());
|
|
}
|
|
};
|
|
Subject.prototype[rxSubscriber_1.rxSubscriber] = function() {
|
|
return new Subscriber_1.Subscriber(this);
|
|
};
|
|
Subject.create = function(destination, source) {
|
|
return new Subject(destination, source);
|
|
};
|
|
return Subject;
|
|
}(Observable_1.Observable));
|
|
exports.Subject = Subject;
|
|
var SubjectObservable = (function(_super) {
|
|
__extends(SubjectObservable, _super);
|
|
function SubjectObservable(source) {
|
|
_super.call(this);
|
|
this.source = source;
|
|
}
|
|
return SubjectObservable;
|
|
}(Observable_1.Observable));
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/metadata/di", ["angular2/src/facade/lang", "angular2/src/core/di", "angular2/src/core/di/metadata"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var di_1 = require("angular2/src/core/di");
|
|
var metadata_1 = require("angular2/src/core/di/metadata");
|
|
var AttributeMetadata = (function(_super) {
|
|
__extends(AttributeMetadata, _super);
|
|
function AttributeMetadata(attributeName) {
|
|
_super.call(this);
|
|
this.attributeName = attributeName;
|
|
}
|
|
Object.defineProperty(AttributeMetadata.prototype, "token", {
|
|
get: function() {
|
|
return this;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
AttributeMetadata.prototype.toString = function() {
|
|
return "@Attribute(" + lang_1.stringify(this.attributeName) + ")";
|
|
};
|
|
AttributeMetadata = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [String])], AttributeMetadata);
|
|
return AttributeMetadata;
|
|
})(metadata_1.DependencyMetadata);
|
|
exports.AttributeMetadata = AttributeMetadata;
|
|
var QueryMetadata = (function(_super) {
|
|
__extends(QueryMetadata, _super);
|
|
function QueryMetadata(_selector, _a) {
|
|
var _b = _a === void 0 ? {} : _a,
|
|
_c = _b.descendants,
|
|
descendants = _c === void 0 ? false : _c,
|
|
_d = _b.first,
|
|
first = _d === void 0 ? false : _d;
|
|
_super.call(this);
|
|
this._selector = _selector;
|
|
this.descendants = descendants;
|
|
this.first = first;
|
|
}
|
|
Object.defineProperty(QueryMetadata.prototype, "isViewQuery", {
|
|
get: function() {
|
|
return false;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(QueryMetadata.prototype, "selector", {
|
|
get: function() {
|
|
return di_1.resolveForwardRef(this._selector);
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(QueryMetadata.prototype, "isVarBindingQuery", {
|
|
get: function() {
|
|
return lang_1.isString(this.selector);
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(QueryMetadata.prototype, "varBindings", {
|
|
get: function() {
|
|
return this.selector.split(',');
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
QueryMetadata.prototype.toString = function() {
|
|
return "@Query(" + lang_1.stringify(this.selector) + ")";
|
|
};
|
|
QueryMetadata = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [Object, Object])], QueryMetadata);
|
|
return QueryMetadata;
|
|
})(metadata_1.DependencyMetadata);
|
|
exports.QueryMetadata = QueryMetadata;
|
|
var ContentChildrenMetadata = (function(_super) {
|
|
__extends(ContentChildrenMetadata, _super);
|
|
function ContentChildrenMetadata(_selector, _a) {
|
|
var _b = (_a === void 0 ? {} : _a).descendants,
|
|
descendants = _b === void 0 ? false : _b;
|
|
_super.call(this, _selector, {descendants: descendants});
|
|
}
|
|
ContentChildrenMetadata = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [Object, Object])], ContentChildrenMetadata);
|
|
return ContentChildrenMetadata;
|
|
})(QueryMetadata);
|
|
exports.ContentChildrenMetadata = ContentChildrenMetadata;
|
|
var ContentChildMetadata = (function(_super) {
|
|
__extends(ContentChildMetadata, _super);
|
|
function ContentChildMetadata(_selector) {
|
|
_super.call(this, _selector, {
|
|
descendants: true,
|
|
first: true
|
|
});
|
|
}
|
|
ContentChildMetadata = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [Object])], ContentChildMetadata);
|
|
return ContentChildMetadata;
|
|
})(QueryMetadata);
|
|
exports.ContentChildMetadata = ContentChildMetadata;
|
|
var ViewQueryMetadata = (function(_super) {
|
|
__extends(ViewQueryMetadata, _super);
|
|
function ViewQueryMetadata(_selector, _a) {
|
|
var _b = _a === void 0 ? {} : _a,
|
|
_c = _b.descendants,
|
|
descendants = _c === void 0 ? false : _c,
|
|
_d = _b.first,
|
|
first = _d === void 0 ? false : _d;
|
|
_super.call(this, _selector, {
|
|
descendants: descendants,
|
|
first: first
|
|
});
|
|
}
|
|
Object.defineProperty(ViewQueryMetadata.prototype, "isViewQuery", {
|
|
get: function() {
|
|
return true;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
ViewQueryMetadata.prototype.toString = function() {
|
|
return "@ViewQuery(" + lang_1.stringify(this.selector) + ")";
|
|
};
|
|
ViewQueryMetadata = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [Object, Object])], ViewQueryMetadata);
|
|
return ViewQueryMetadata;
|
|
})(QueryMetadata);
|
|
exports.ViewQueryMetadata = ViewQueryMetadata;
|
|
var ViewChildrenMetadata = (function(_super) {
|
|
__extends(ViewChildrenMetadata, _super);
|
|
function ViewChildrenMetadata(_selector) {
|
|
_super.call(this, _selector, {descendants: true});
|
|
}
|
|
ViewChildrenMetadata = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [Object])], ViewChildrenMetadata);
|
|
return ViewChildrenMetadata;
|
|
})(ViewQueryMetadata);
|
|
exports.ViewChildrenMetadata = ViewChildrenMetadata;
|
|
var ViewChildMetadata = (function(_super) {
|
|
__extends(ViewChildMetadata, _super);
|
|
function ViewChildMetadata(_selector) {
|
|
_super.call(this, _selector, {
|
|
descendants: true,
|
|
first: true
|
|
});
|
|
}
|
|
ViewChildMetadata = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [Object])], ViewChildMetadata);
|
|
return ViewChildMetadata;
|
|
})(ViewQueryMetadata);
|
|
exports.ViewChildMetadata = ViewChildMetadata;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/change_detection", ["angular2/src/core/change_detection/change_detection"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var change_detection_1 = require("angular2/src/core/change_detection/change_detection");
|
|
exports.ChangeDetectionStrategy = change_detection_1.ChangeDetectionStrategy;
|
|
exports.ExpressionChangedAfterItHasBeenCheckedException = change_detection_1.ExpressionChangedAfterItHasBeenCheckedException;
|
|
exports.ChangeDetectionError = change_detection_1.ChangeDetectionError;
|
|
exports.ChangeDetectorRef = change_detection_1.ChangeDetectorRef;
|
|
exports.WrappedValue = change_detection_1.WrappedValue;
|
|
exports.SimpleChange = change_detection_1.SimpleChange;
|
|
exports.IterableDiffers = change_detection_1.IterableDiffers;
|
|
exports.KeyValueDiffers = change_detection_1.KeyValueDiffers;
|
|
exports.CollectionChangeRecord = change_detection_1.CollectionChangeRecord;
|
|
exports.KeyValueChangeRecord = change_detection_1.KeyValueChangeRecord;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/platform/server/parse5_adapter", ["parse5/index", "angular2/src/facade/collection", "angular2/platform/common_dom", "angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/compiler/selector", "angular2/src/compiler/xhr"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var parse5 = require("parse5/index");
|
|
var parser = new parse5.Parser(parse5.TreeAdapters.htmlparser2);
|
|
var serializer = new parse5.Serializer(parse5.TreeAdapters.htmlparser2);
|
|
var treeAdapter = parser.treeAdapter;
|
|
var collection_1 = require("angular2/src/facade/collection");
|
|
var common_dom_1 = require("angular2/platform/common_dom");
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var exceptions_1 = require("angular2/src/facade/exceptions");
|
|
var selector_1 = require("angular2/src/compiler/selector");
|
|
var xhr_1 = require("angular2/src/compiler/xhr");
|
|
var _attrToPropMap = {
|
|
'class': 'className',
|
|
'innerHtml': 'innerHTML',
|
|
'readonly': 'readOnly',
|
|
'tabindex': 'tabIndex'
|
|
};
|
|
var defDoc = null;
|
|
var mapProps = ['attribs', 'x-attribsNamespace', 'x-attribsPrefix'];
|
|
function _notImplemented(methodName) {
|
|
return new exceptions_1.BaseException('This method is not implemented in Parse5DomAdapter: ' + methodName);
|
|
}
|
|
var Parse5DomAdapter = (function(_super) {
|
|
__extends(Parse5DomAdapter, _super);
|
|
function Parse5DomAdapter() {
|
|
_super.apply(this, arguments);
|
|
}
|
|
Parse5DomAdapter.makeCurrent = function() {
|
|
common_dom_1.setRootDomAdapter(new Parse5DomAdapter());
|
|
};
|
|
Parse5DomAdapter.prototype.hasProperty = function(element, name) {
|
|
return _HTMLElementPropertyList.indexOf(name) > -1;
|
|
};
|
|
Parse5DomAdapter.prototype.setProperty = function(el, name, value) {
|
|
if (name === 'innerHTML') {
|
|
this.setInnerHTML(el, value);
|
|
} else if (name === 'className') {
|
|
el.attribs["class"] = el.className = value;
|
|
} else {
|
|
el[name] = value;
|
|
}
|
|
};
|
|
Parse5DomAdapter.prototype.getProperty = function(el, name) {
|
|
return el[name];
|
|
};
|
|
Parse5DomAdapter.prototype.logError = function(error) {
|
|
console.error(error);
|
|
};
|
|
Parse5DomAdapter.prototype.log = function(error) {
|
|
console.log(error);
|
|
};
|
|
Parse5DomAdapter.prototype.logGroup = function(error) {
|
|
console.error(error);
|
|
};
|
|
Parse5DomAdapter.prototype.logGroupEnd = function() {};
|
|
Parse5DomAdapter.prototype.getXHR = function() {
|
|
return xhr_1.XHR;
|
|
};
|
|
Object.defineProperty(Parse5DomAdapter.prototype, "attrToPropMap", {
|
|
get: function() {
|
|
return _attrToPropMap;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Parse5DomAdapter.prototype.query = function(selector) {
|
|
throw _notImplemented('query');
|
|
};
|
|
Parse5DomAdapter.prototype.querySelector = function(el, selector) {
|
|
return this.querySelectorAll(el, selector)[0];
|
|
};
|
|
Parse5DomAdapter.prototype.querySelectorAll = function(el, selector) {
|
|
var _this = this;
|
|
var res = [];
|
|
var _recursive = function(result, node, selector, matcher) {
|
|
var cNodes = node.childNodes;
|
|
if (cNodes && cNodes.length > 0) {
|
|
for (var i = 0; i < cNodes.length; i++) {
|
|
var childNode = cNodes[i];
|
|
if (_this.elementMatches(childNode, selector, matcher)) {
|
|
result.push(childNode);
|
|
}
|
|
_recursive(result, childNode, selector, matcher);
|
|
}
|
|
}
|
|
};
|
|
var matcher = new selector_1.SelectorMatcher();
|
|
matcher.addSelectables(selector_1.CssSelector.parse(selector));
|
|
_recursive(res, el, selector, matcher);
|
|
return res;
|
|
};
|
|
Parse5DomAdapter.prototype.elementMatches = function(node, selector, matcher) {
|
|
if (matcher === void 0) {
|
|
matcher = null;
|
|
}
|
|
if (this.isElementNode(node) && selector === '*') {
|
|
return true;
|
|
}
|
|
var result = false;
|
|
if (selector && selector.charAt(0) == "#") {
|
|
result = this.getAttribute(node, 'id') == selector.substring(1);
|
|
} else if (selector) {
|
|
var result = false;
|
|
if (matcher == null) {
|
|
matcher = new selector_1.SelectorMatcher();
|
|
matcher.addSelectables(selector_1.CssSelector.parse(selector));
|
|
}
|
|
var cssSelector = new selector_1.CssSelector();
|
|
cssSelector.setElement(this.tagName(node));
|
|
if (node.attribs) {
|
|
for (var attrName in node.attribs) {
|
|
cssSelector.addAttribute(attrName, node.attribs[attrName]);
|
|
}
|
|
}
|
|
var classList = this.classList(node);
|
|
for (var i = 0; i < classList.length; i++) {
|
|
cssSelector.addClassName(classList[i]);
|
|
}
|
|
matcher.match(cssSelector, function(selector, cb) {
|
|
result = true;
|
|
});
|
|
}
|
|
return result;
|
|
};
|
|
Parse5DomAdapter.prototype.on = function(el, evt, listener) {
|
|
var listenersMap = el._eventListenersMap;
|
|
if (lang_1.isBlank(listenersMap)) {
|
|
var listenersMap = collection_1.StringMapWrapper.create();
|
|
el._eventListenersMap = listenersMap;
|
|
}
|
|
var listeners = collection_1.StringMapWrapper.get(listenersMap, evt);
|
|
if (lang_1.isBlank(listeners)) {
|
|
listeners = [];
|
|
}
|
|
listeners.push(listener);
|
|
collection_1.StringMapWrapper.set(listenersMap, evt, listeners);
|
|
};
|
|
Parse5DomAdapter.prototype.onAndCancel = function(el, evt, listener) {
|
|
this.on(el, evt, listener);
|
|
return function() {
|
|
collection_1.ListWrapper.remove(collection_1.StringMapWrapper.get(el._eventListenersMap, evt), listener);
|
|
};
|
|
};
|
|
Parse5DomAdapter.prototype.dispatchEvent = function(el, evt) {
|
|
if (lang_1.isBlank(evt.target)) {
|
|
evt.target = el;
|
|
}
|
|
if (lang_1.isPresent(el._eventListenersMap)) {
|
|
var listeners = collection_1.StringMapWrapper.get(el._eventListenersMap, evt.type);
|
|
if (lang_1.isPresent(listeners)) {
|
|
for (var i = 0; i < listeners.length; i++) {
|
|
listeners[i](evt);
|
|
}
|
|
}
|
|
}
|
|
if (lang_1.isPresent(el.parent)) {
|
|
this.dispatchEvent(el.parent, evt);
|
|
}
|
|
if (lang_1.isPresent(el._window)) {
|
|
this.dispatchEvent(el._window, evt);
|
|
}
|
|
};
|
|
Parse5DomAdapter.prototype.createMouseEvent = function(eventType) {
|
|
return this.createEvent(eventType);
|
|
};
|
|
Parse5DomAdapter.prototype.createEvent = function(eventType) {
|
|
var evt = {
|
|
type: eventType,
|
|
defaultPrevented: false,
|
|
preventDefault: function() {
|
|
evt.defaultPrevented = true;
|
|
}
|
|
};
|
|
return evt;
|
|
};
|
|
Parse5DomAdapter.prototype.preventDefault = function(evt) {
|
|
evt.returnValue = false;
|
|
};
|
|
Parse5DomAdapter.prototype.isPrevented = function(evt) {
|
|
return lang_1.isPresent(evt.returnValue) && !evt.returnValue;
|
|
};
|
|
Parse5DomAdapter.prototype.getInnerHTML = function(el) {
|
|
return serializer.serialize(this.templateAwareRoot(el));
|
|
};
|
|
Parse5DomAdapter.prototype.getOuterHTML = function(el) {
|
|
serializer.html = '';
|
|
serializer._serializeElement(el);
|
|
return serializer.html;
|
|
};
|
|
Parse5DomAdapter.prototype.nodeName = function(node) {
|
|
return node.tagName;
|
|
};
|
|
Parse5DomAdapter.prototype.nodeValue = function(node) {
|
|
return node.nodeValue;
|
|
};
|
|
Parse5DomAdapter.prototype.type = function(node) {
|
|
throw _notImplemented('type');
|
|
};
|
|
Parse5DomAdapter.prototype.content = function(node) {
|
|
return node.childNodes[0];
|
|
};
|
|
Parse5DomAdapter.prototype.firstChild = function(el) {
|
|
return el.firstChild;
|
|
};
|
|
Parse5DomAdapter.prototype.nextSibling = function(el) {
|
|
return el.nextSibling;
|
|
};
|
|
Parse5DomAdapter.prototype.parentElement = function(el) {
|
|
return el.parent;
|
|
};
|
|
Parse5DomAdapter.prototype.childNodes = function(el) {
|
|
return el.childNodes;
|
|
};
|
|
Parse5DomAdapter.prototype.childNodesAsList = function(el) {
|
|
var childNodes = el.childNodes;
|
|
var res = collection_1.ListWrapper.createFixedSize(childNodes.length);
|
|
for (var i = 0; i < childNodes.length; i++) {
|
|
res[i] = childNodes[i];
|
|
}
|
|
return res;
|
|
};
|
|
Parse5DomAdapter.prototype.clearNodes = function(el) {
|
|
while (el.childNodes.length > 0) {
|
|
this.remove(el.childNodes[0]);
|
|
}
|
|
};
|
|
Parse5DomAdapter.prototype.appendChild = function(el, node) {
|
|
this.remove(node);
|
|
treeAdapter.appendChild(this.templateAwareRoot(el), node);
|
|
};
|
|
Parse5DomAdapter.prototype.removeChild = function(el, node) {
|
|
if (collection_1.ListWrapper.contains(el.childNodes, node)) {
|
|
this.remove(node);
|
|
}
|
|
};
|
|
Parse5DomAdapter.prototype.remove = function(el) {
|
|
var parent = el.parent;
|
|
if (parent) {
|
|
var index = parent.childNodes.indexOf(el);
|
|
parent.childNodes.splice(index, 1);
|
|
}
|
|
var prev = el.previousSibling;
|
|
var next = el.nextSibling;
|
|
if (prev) {
|
|
prev.next = next;
|
|
}
|
|
if (next) {
|
|
next.prev = prev;
|
|
}
|
|
el.prev = null;
|
|
el.next = null;
|
|
el.parent = null;
|
|
return el;
|
|
};
|
|
Parse5DomAdapter.prototype.insertBefore = function(el, node) {
|
|
this.remove(node);
|
|
treeAdapter.insertBefore(el.parent, node, el);
|
|
};
|
|
Parse5DomAdapter.prototype.insertAllBefore = function(el, nodes) {
|
|
var _this = this;
|
|
nodes.forEach(function(n) {
|
|
return _this.insertBefore(el, n);
|
|
});
|
|
};
|
|
Parse5DomAdapter.prototype.insertAfter = function(el, node) {
|
|
if (el.nextSibling) {
|
|
this.insertBefore(el.nextSibling, node);
|
|
} else {
|
|
this.appendChild(el.parent, node);
|
|
}
|
|
};
|
|
Parse5DomAdapter.prototype.setInnerHTML = function(el, value) {
|
|
this.clearNodes(el);
|
|
var content = parser.parseFragment(value);
|
|
for (var i = 0; i < content.childNodes.length; i++) {
|
|
treeAdapter.appendChild(el, content.childNodes[i]);
|
|
}
|
|
};
|
|
Parse5DomAdapter.prototype.getText = function(el, isRecursive) {
|
|
if (this.isTextNode(el)) {
|
|
return el.data;
|
|
} else if (this.isCommentNode(el)) {
|
|
return isRecursive ? '' : el.data;
|
|
} else if (lang_1.isBlank(el.childNodes) || el.childNodes.length == 0) {
|
|
return "";
|
|
} else {
|
|
var textContent = "";
|
|
for (var i = 0; i < el.childNodes.length; i++) {
|
|
textContent += this.getText(el.childNodes[i], true);
|
|
}
|
|
return textContent;
|
|
}
|
|
};
|
|
Parse5DomAdapter.prototype.setText = function(el, value) {
|
|
if (this.isTextNode(el) || this.isCommentNode(el)) {
|
|
el.data = value;
|
|
} else {
|
|
this.clearNodes(el);
|
|
if (value !== '')
|
|
treeAdapter.insertText(el, value);
|
|
}
|
|
};
|
|
Parse5DomAdapter.prototype.getValue = function(el) {
|
|
return el.value;
|
|
};
|
|
Parse5DomAdapter.prototype.setValue = function(el, value) {
|
|
el.value = value;
|
|
};
|
|
Parse5DomAdapter.prototype.getChecked = function(el) {
|
|
return el.checked;
|
|
};
|
|
Parse5DomAdapter.prototype.setChecked = function(el, value) {
|
|
el.checked = value;
|
|
};
|
|
Parse5DomAdapter.prototype.createComment = function(text) {
|
|
return treeAdapter.createCommentNode(text);
|
|
};
|
|
Parse5DomAdapter.prototype.createTemplate = function(html) {
|
|
var template = treeAdapter.createElement("template", 'http://www.w3.org/1999/xhtml', []);
|
|
var content = parser.parseFragment(html);
|
|
treeAdapter.appendChild(template, content);
|
|
return template;
|
|
};
|
|
Parse5DomAdapter.prototype.createElement = function(tagName) {
|
|
return treeAdapter.createElement(tagName, 'http://www.w3.org/1999/xhtml', []);
|
|
};
|
|
Parse5DomAdapter.prototype.createElementNS = function(ns, tagName) {
|
|
return treeAdapter.createElement(tagName, ns, []);
|
|
};
|
|
Parse5DomAdapter.prototype.createTextNode = function(text) {
|
|
var t = this.createComment(text);
|
|
t.type = 'text';
|
|
return t;
|
|
};
|
|
Parse5DomAdapter.prototype.createScriptTag = function(attrName, attrValue) {
|
|
return treeAdapter.createElement("script", 'http://www.w3.org/1999/xhtml', [{
|
|
name: attrName,
|
|
value: attrValue
|
|
}]);
|
|
};
|
|
Parse5DomAdapter.prototype.createStyleElement = function(css) {
|
|
var style = this.createElement('style');
|
|
this.setText(style, css);
|
|
return style;
|
|
};
|
|
Parse5DomAdapter.prototype.createShadowRoot = function(el) {
|
|
el.shadowRoot = treeAdapter.createDocumentFragment();
|
|
el.shadowRoot.parent = el;
|
|
return el.shadowRoot;
|
|
};
|
|
Parse5DomAdapter.prototype.getShadowRoot = function(el) {
|
|
return el.shadowRoot;
|
|
};
|
|
Parse5DomAdapter.prototype.getHost = function(el) {
|
|
return el.host;
|
|
};
|
|
Parse5DomAdapter.prototype.getDistributedNodes = function(el) {
|
|
throw _notImplemented('getDistributedNodes');
|
|
};
|
|
Parse5DomAdapter.prototype.clone = function(node) {
|
|
var _recursive = function(node) {
|
|
var nodeClone = Object.create(Object.getPrototypeOf(node));
|
|
for (var prop in node) {
|
|
var desc = Object.getOwnPropertyDescriptor(node, prop);
|
|
if (desc && 'value' in desc && typeof desc.value !== 'object') {
|
|
nodeClone[prop] = node[prop];
|
|
}
|
|
}
|
|
nodeClone.parent = null;
|
|
nodeClone.prev = null;
|
|
nodeClone.next = null;
|
|
nodeClone.children = null;
|
|
mapProps.forEach(function(mapName) {
|
|
if (lang_1.isPresent(node[mapName])) {
|
|
nodeClone[mapName] = {};
|
|
for (var prop in node[mapName]) {
|
|
nodeClone[mapName][prop] = node[mapName][prop];
|
|
}
|
|
}
|
|
});
|
|
var cNodes = node.children;
|
|
if (cNodes) {
|
|
var cNodesClone = new Array(cNodes.length);
|
|
for (var i = 0; i < cNodes.length; i++) {
|
|
var childNode = cNodes[i];
|
|
var childNodeClone = _recursive(childNode);
|
|
cNodesClone[i] = childNodeClone;
|
|
if (i > 0) {
|
|
childNodeClone.prev = cNodesClone[i - 1];
|
|
cNodesClone[i - 1].next = childNodeClone;
|
|
}
|
|
childNodeClone.parent = nodeClone;
|
|
}
|
|
nodeClone.children = cNodesClone;
|
|
}
|
|
return nodeClone;
|
|
};
|
|
return _recursive(node);
|
|
};
|
|
Parse5DomAdapter.prototype.getElementsByClassName = function(element, name) {
|
|
return this.querySelectorAll(element, "." + name);
|
|
};
|
|
Parse5DomAdapter.prototype.getElementsByTagName = function(element, name) {
|
|
throw _notImplemented('getElementsByTagName');
|
|
};
|
|
Parse5DomAdapter.prototype.classList = function(element) {
|
|
var classAttrValue = null;
|
|
var attributes = element.attribs;
|
|
if (attributes && attributes.hasOwnProperty("class")) {
|
|
classAttrValue = attributes["class"];
|
|
}
|
|
return classAttrValue ? classAttrValue.trim().split(/\s+/g) : [];
|
|
};
|
|
Parse5DomAdapter.prototype.addClass = function(element, className) {
|
|
var classList = this.classList(element);
|
|
var index = classList.indexOf(className);
|
|
if (index == -1) {
|
|
classList.push(className);
|
|
element.attribs["class"] = element.className = classList.join(" ");
|
|
}
|
|
};
|
|
Parse5DomAdapter.prototype.removeClass = function(element, className) {
|
|
var classList = this.classList(element);
|
|
var index = classList.indexOf(className);
|
|
if (index > -1) {
|
|
classList.splice(index, 1);
|
|
element.attribs["class"] = element.className = classList.join(" ");
|
|
}
|
|
};
|
|
Parse5DomAdapter.prototype.hasClass = function(element, className) {
|
|
return collection_1.ListWrapper.contains(this.classList(element), className);
|
|
};
|
|
Parse5DomAdapter.prototype.hasStyle = function(element, styleName, styleValue) {
|
|
if (styleValue === void 0) {
|
|
styleValue = null;
|
|
}
|
|
var value = this.getStyle(element, styleName) || '';
|
|
return styleValue ? value == styleValue : value.length > 0;
|
|
};
|
|
Parse5DomAdapter.prototype._readStyleAttribute = function(element) {
|
|
var styleMap = {};
|
|
var attributes = element.attribs;
|
|
if (attributes && attributes.hasOwnProperty("style")) {
|
|
var styleAttrValue = attributes["style"];
|
|
var styleList = styleAttrValue.split(/;+/g);
|
|
for (var i = 0; i < styleList.length; i++) {
|
|
if (styleList[i].length > 0) {
|
|
var elems = styleList[i].split(/:+/g);
|
|
styleMap[elems[0].trim()] = elems[1].trim();
|
|
}
|
|
}
|
|
}
|
|
return styleMap;
|
|
};
|
|
Parse5DomAdapter.prototype._writeStyleAttribute = function(element, styleMap) {
|
|
var styleAttrValue = "";
|
|
for (var key in styleMap) {
|
|
var newValue = styleMap[key];
|
|
if (newValue && newValue.length > 0) {
|
|
styleAttrValue += key + ":" + styleMap[key] + ";";
|
|
}
|
|
}
|
|
element.attribs["style"] = styleAttrValue;
|
|
};
|
|
Parse5DomAdapter.prototype.setStyle = function(element, styleName, styleValue) {
|
|
var styleMap = this._readStyleAttribute(element);
|
|
styleMap[styleName] = styleValue;
|
|
this._writeStyleAttribute(element, styleMap);
|
|
};
|
|
Parse5DomAdapter.prototype.removeStyle = function(element, styleName) {
|
|
this.setStyle(element, styleName, null);
|
|
};
|
|
Parse5DomAdapter.prototype.getStyle = function(element, styleName) {
|
|
var styleMap = this._readStyleAttribute(element);
|
|
return styleMap.hasOwnProperty(styleName) ? styleMap[styleName] : "";
|
|
};
|
|
Parse5DomAdapter.prototype.tagName = function(element) {
|
|
return element.tagName == "style" ? "STYLE" : element.tagName;
|
|
};
|
|
Parse5DomAdapter.prototype.attributeMap = function(element) {
|
|
var res = new Map();
|
|
var elAttrs = treeAdapter.getAttrList(element);
|
|
for (var i = 0; i < elAttrs.length; i++) {
|
|
var attrib = elAttrs[i];
|
|
res.set(attrib.name, attrib.value);
|
|
}
|
|
return res;
|
|
};
|
|
Parse5DomAdapter.prototype.hasAttribute = function(element, attribute) {
|
|
return element.attribs && element.attribs.hasOwnProperty(attribute);
|
|
};
|
|
Parse5DomAdapter.prototype.hasAttributeNS = function(element, ns, attribute) {
|
|
throw 'not implemented';
|
|
};
|
|
Parse5DomAdapter.prototype.getAttribute = function(element, attribute) {
|
|
return element.attribs && element.attribs.hasOwnProperty(attribute) ? element.attribs[attribute] : null;
|
|
};
|
|
Parse5DomAdapter.prototype.getAttributeNS = function(element, ns, attribute) {
|
|
throw 'not implemented';
|
|
};
|
|
Parse5DomAdapter.prototype.setAttribute = function(element, attribute, value) {
|
|
if (attribute) {
|
|
element.attribs[attribute] = value;
|
|
if (attribute === 'class') {
|
|
element.className = value;
|
|
}
|
|
}
|
|
};
|
|
Parse5DomAdapter.prototype.setAttributeNS = function(element, ns, attribute, value) {
|
|
throw 'not implemented';
|
|
};
|
|
Parse5DomAdapter.prototype.removeAttribute = function(element, attribute) {
|
|
if (attribute) {
|
|
collection_1.StringMapWrapper.delete(element.attribs, attribute);
|
|
}
|
|
};
|
|
Parse5DomAdapter.prototype.removeAttributeNS = function(element, ns, name) {
|
|
throw 'not implemented';
|
|
};
|
|
Parse5DomAdapter.prototype.templateAwareRoot = function(el) {
|
|
return this.isTemplateElement(el) ? this.content(el) : el;
|
|
};
|
|
Parse5DomAdapter.prototype.createHtmlDocument = function() {
|
|
var newDoc = treeAdapter.createDocument();
|
|
newDoc.title = "fake title";
|
|
var head = treeAdapter.createElement("head", null, []);
|
|
var body = treeAdapter.createElement("body", 'http://www.w3.org/1999/xhtml', []);
|
|
this.appendChild(newDoc, head);
|
|
this.appendChild(newDoc, body);
|
|
collection_1.StringMapWrapper.set(newDoc, "head", head);
|
|
collection_1.StringMapWrapper.set(newDoc, "body", body);
|
|
collection_1.StringMapWrapper.set(newDoc, "_window", collection_1.StringMapWrapper.create());
|
|
return newDoc;
|
|
};
|
|
Parse5DomAdapter.prototype.defaultDoc = function() {
|
|
if (defDoc === null) {
|
|
defDoc = this.createHtmlDocument();
|
|
}
|
|
return defDoc;
|
|
};
|
|
Parse5DomAdapter.prototype.getBoundingClientRect = function(el) {
|
|
return {
|
|
left: 0,
|
|
top: 0,
|
|
width: 0,
|
|
height: 0
|
|
};
|
|
};
|
|
Parse5DomAdapter.prototype.getTitle = function() {
|
|
return this.defaultDoc().title || "";
|
|
};
|
|
Parse5DomAdapter.prototype.setTitle = function(newTitle) {
|
|
this.defaultDoc().title = newTitle;
|
|
};
|
|
Parse5DomAdapter.prototype.isTemplateElement = function(el) {
|
|
return this.isElementNode(el) && this.tagName(el) === "template";
|
|
};
|
|
Parse5DomAdapter.prototype.isTextNode = function(node) {
|
|
return treeAdapter.isTextNode(node);
|
|
};
|
|
Parse5DomAdapter.prototype.isCommentNode = function(node) {
|
|
return treeAdapter.isCommentNode(node);
|
|
};
|
|
Parse5DomAdapter.prototype.isElementNode = function(node) {
|
|
return node ? treeAdapter.isElementNode(node) : false;
|
|
};
|
|
Parse5DomAdapter.prototype.hasShadowRoot = function(node) {
|
|
return lang_1.isPresent(node.shadowRoot);
|
|
};
|
|
Parse5DomAdapter.prototype.isShadowRoot = function(node) {
|
|
return this.getShadowRoot(node) == node;
|
|
};
|
|
Parse5DomAdapter.prototype.importIntoDoc = function(node) {
|
|
return this.clone(node);
|
|
};
|
|
Parse5DomAdapter.prototype.adoptNode = function(node) {
|
|
return node;
|
|
};
|
|
Parse5DomAdapter.prototype.getHref = function(el) {
|
|
return el.href;
|
|
};
|
|
Parse5DomAdapter.prototype.resolveAndSetHref = function(el, baseUrl, href) {
|
|
if (href == null) {
|
|
el.href = baseUrl;
|
|
} else {
|
|
el.href = baseUrl + '/../' + href;
|
|
}
|
|
};
|
|
Parse5DomAdapter.prototype._buildRules = function(parsedRules, css) {
|
|
var rules = [];
|
|
for (var i = 0; i < parsedRules.length; i++) {
|
|
var parsedRule = parsedRules[i];
|
|
var rule = collection_1.StringMapWrapper.create();
|
|
collection_1.StringMapWrapper.set(rule, "cssText", css);
|
|
collection_1.StringMapWrapper.set(rule, "style", {
|
|
content: "",
|
|
cssText: ""
|
|
});
|
|
if (parsedRule.type == "rule") {
|
|
collection_1.StringMapWrapper.set(rule, "type", 1);
|
|
collection_1.StringMapWrapper.set(rule, "selectorText", parsedRule.selectors.join(", ").replace(/\s{2,}/g, " ").replace(/\s*~\s*/g, " ~ ").replace(/\s*\+\s*/g, " + ").replace(/\s*>\s*/g, " > ").replace(/\[(\w+)=(\w+)\]/g, '[$1="$2"]'));
|
|
if (lang_1.isBlank(parsedRule.declarations)) {
|
|
continue;
|
|
}
|
|
for (var j = 0; j < parsedRule.declarations.length; j++) {
|
|
var declaration = parsedRule.declarations[j];
|
|
collection_1.StringMapWrapper.set(collection_1.StringMapWrapper.get(rule, "style"), declaration.property, declaration.value);
|
|
collection_1.StringMapWrapper.get(rule, "style").cssText += declaration.property + ": " + declaration.value + ";";
|
|
}
|
|
} else if (parsedRule.type == "media") {
|
|
collection_1.StringMapWrapper.set(rule, "type", 4);
|
|
collection_1.StringMapWrapper.set(rule, "media", {mediaText: parsedRule.media});
|
|
if (parsedRule.rules) {
|
|
collection_1.StringMapWrapper.set(rule, "cssRules", this._buildRules(parsedRule.rules));
|
|
}
|
|
}
|
|
rules.push(rule);
|
|
}
|
|
return rules;
|
|
};
|
|
Parse5DomAdapter.prototype.supportsDOMEvents = function() {
|
|
return false;
|
|
};
|
|
Parse5DomAdapter.prototype.supportsNativeShadowDOM = function() {
|
|
return false;
|
|
};
|
|
Parse5DomAdapter.prototype.getGlobalEventTarget = function(target) {
|
|
if (target == "window") {
|
|
return this.defaultDoc()._window;
|
|
} else if (target == "document") {
|
|
return this.defaultDoc();
|
|
} else if (target == "body") {
|
|
return this.defaultDoc().body;
|
|
}
|
|
};
|
|
Parse5DomAdapter.prototype.getBaseHref = function() {
|
|
throw 'not implemented';
|
|
};
|
|
Parse5DomAdapter.prototype.resetBaseElement = function() {
|
|
throw 'not implemented';
|
|
};
|
|
Parse5DomAdapter.prototype.getHistory = function() {
|
|
throw 'not implemented';
|
|
};
|
|
Parse5DomAdapter.prototype.getLocation = function() {
|
|
throw 'not implemented';
|
|
};
|
|
Parse5DomAdapter.prototype.getUserAgent = function() {
|
|
return "Fake user agent";
|
|
};
|
|
Parse5DomAdapter.prototype.getData = function(el, name) {
|
|
return this.getAttribute(el, 'data-' + name);
|
|
};
|
|
Parse5DomAdapter.prototype.getComputedStyle = function(el) {
|
|
throw 'not implemented';
|
|
};
|
|
Parse5DomAdapter.prototype.setData = function(el, name, value) {
|
|
this.setAttribute(el, 'data-' + name, value);
|
|
};
|
|
Parse5DomAdapter.prototype.setGlobalVar = function(path, value) {
|
|
lang_1.setValueOnPath(lang_1.global, path, value);
|
|
};
|
|
Parse5DomAdapter.prototype.requestAnimationFrame = function(callback) {
|
|
return setTimeout(callback, 0);
|
|
};
|
|
Parse5DomAdapter.prototype.cancelAnimationFrame = function(id) {
|
|
clearTimeout(id);
|
|
};
|
|
Parse5DomAdapter.prototype.performanceNow = function() {
|
|
return lang_1.DateWrapper.toMillis(lang_1.DateWrapper.now());
|
|
};
|
|
Parse5DomAdapter.prototype.getAnimationPrefix = function() {
|
|
return '';
|
|
};
|
|
Parse5DomAdapter.prototype.getTransitionEnd = function() {
|
|
return 'transitionend';
|
|
};
|
|
Parse5DomAdapter.prototype.supportsAnimation = function() {
|
|
return true;
|
|
};
|
|
Parse5DomAdapter.prototype.replaceChild = function(el, newNode, oldNode) {
|
|
throw new Error('not implemented');
|
|
};
|
|
Parse5DomAdapter.prototype.parse = function(templateHtml) {
|
|
throw new Error('not implemented');
|
|
};
|
|
Parse5DomAdapter.prototype.invoke = function(el, methodName, args) {
|
|
throw new Error('not implemented');
|
|
};
|
|
Parse5DomAdapter.prototype.getEventKey = function(event) {
|
|
throw new Error('not implemented');
|
|
};
|
|
return Parse5DomAdapter;
|
|
})(common_dom_1.DomAdapter);
|
|
exports.Parse5DomAdapter = Parse5DomAdapter;
|
|
var _HTMLElementPropertyList = ["webkitEntries", "incremental", "webkitdirectory", "selectionDirection", "selectionEnd", "selectionStart", "labels", "validationMessage", "validity", "willValidate", "width", "valueAsNumber", "valueAsDate", "value", "useMap", "defaultValue", "type", "step", "src", "size", "required", "readOnly", "placeholder", "pattern", "name", "multiple", "min", "minLength", "maxLength", "max", "list", "indeterminate", "height", "formTarget", "formNoValidate", "formMethod", "formEnctype", "formAction", "files", "form", "disabled", "dirName", "checked", "defaultChecked", "autofocus", "autocomplete", "alt", "align", "accept", "onautocompleteerror", "onautocomplete", "onwaiting", "onvolumechange", "ontoggle", "ontimeupdate", "onsuspend", "onsubmit", "onstalled", "onshow", "onselect", "onseeking", "onseeked", "onscroll", "onresize", "onreset", "onratechange", "onprogress", "onplaying", "onplay", "onpause", "onmousewheel", "onmouseup", "onmouseover", "onmouseout", "onmousemove", "onmouseleave", "onmouseenter", "onmousedown", "onloadstart", "onloadedmetadata", "onloadeddata", "onload", "onkeyup", "onkeypress", "onkeydown", "oninvalid", "oninput", "onfocus", "onerror", "onended", "onemptied", "ondurationchange", "ondrop", "ondragstart", "ondragover", "ondragleave", "ondragenter", "ondragend", "ondrag", "ondblclick", "oncuechange", "oncontextmenu", "onclose", "onclick", "onchange", "oncanplaythrough", "oncanplay", "oncancel", "onblur", "onabort", "spellcheck", "isContentEditable", "contentEditable", "outerText", "innerText", "accessKey", "hidden", "webkitdropzone", "draggable", "tabIndex", "dir", "translate", "lang", "title", "childElementCount", "lastElementChild", "firstElementChild", "children", "onwebkitfullscreenerror", "onwebkitfullscreenchange", "nextElementSibling", "previousElementSibling", "onwheel", "onselectstart", "onsearch", "onpaste", "oncut", "oncopy", "onbeforepaste", "onbeforecut", "onbeforecopy", "shadowRoot", "dataset", "classList", "className", "outerHTML", "innerHTML", "scrollHeight", "scrollWidth", "scrollTop", "scrollLeft", "clientHeight", "clientWidth", "clientTop", "clientLeft", "offsetParent", "offsetHeight", "offsetWidth", "offsetTop", "offsetLeft", "localName", "prefix", "namespaceURI", "id", "style", "attributes", "tagName", "parentElement", "textContent", "baseURI", "ownerDocument", "nextSibling", "previousSibling", "lastChild", "firstChild", "childNodes", "parentNode", "nodeType", "nodeValue", "nodeName", "closure_lm_714617", "__jsaction"];
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/compiler/compiler", ["angular2/src/compiler/runtime_compiler", "angular2/src/compiler/template_compiler", "angular2/src/compiler/directive_metadata", "angular2/src/compiler/source_module", "angular2/src/core/platform_directives_and_pipes", "angular2/src/compiler/template_ast", "angular2/src/compiler/template_parser", "angular2/src/facade/lang", "angular2/src/core/di", "angular2/src/compiler/template_parser", "angular2/src/compiler/html_parser", "angular2/src/compiler/template_normalizer", "angular2/src/compiler/runtime_metadata", "angular2/src/compiler/change_detector_compiler", "angular2/src/compiler/style_compiler", "angular2/src/compiler/view_compiler", "angular2/src/compiler/proto_view_compiler", "angular2/src/compiler/template_compiler", "angular2/src/core/change_detection/change_detection", "angular2/src/core/linker/compiler", "angular2/src/compiler/runtime_compiler", "angular2/src/compiler/schema/element_schema_registry", "angular2/src/compiler/schema/dom_element_schema_registry", "angular2/src/compiler/url_resolver", "angular2/src/core/change_detection/change_detection"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
function __export(m) {
|
|
for (var p in m)
|
|
if (!exports.hasOwnProperty(p))
|
|
exports[p] = m[p];
|
|
}
|
|
var runtime_compiler_1 = require("angular2/src/compiler/runtime_compiler");
|
|
var template_compiler_1 = require("angular2/src/compiler/template_compiler");
|
|
exports.TemplateCompiler = template_compiler_1.TemplateCompiler;
|
|
var directive_metadata_1 = require("angular2/src/compiler/directive_metadata");
|
|
exports.CompileDirectiveMetadata = directive_metadata_1.CompileDirectiveMetadata;
|
|
exports.CompileTypeMetadata = directive_metadata_1.CompileTypeMetadata;
|
|
exports.CompileTemplateMetadata = directive_metadata_1.CompileTemplateMetadata;
|
|
var source_module_1 = require("angular2/src/compiler/source_module");
|
|
exports.SourceModule = source_module_1.SourceModule;
|
|
exports.SourceWithImports = source_module_1.SourceWithImports;
|
|
var platform_directives_and_pipes_1 = require("angular2/src/core/platform_directives_and_pipes");
|
|
exports.PLATFORM_DIRECTIVES = platform_directives_and_pipes_1.PLATFORM_DIRECTIVES;
|
|
exports.PLATFORM_PIPES = platform_directives_and_pipes_1.PLATFORM_PIPES;
|
|
__export(require("angular2/src/compiler/template_ast"));
|
|
var template_parser_1 = require("angular2/src/compiler/template_parser");
|
|
exports.TEMPLATE_TRANSFORMS = template_parser_1.TEMPLATE_TRANSFORMS;
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var di_1 = require("angular2/src/core/di");
|
|
var template_parser_2 = require("angular2/src/compiler/template_parser");
|
|
var html_parser_1 = require("angular2/src/compiler/html_parser");
|
|
var template_normalizer_1 = require("angular2/src/compiler/template_normalizer");
|
|
var runtime_metadata_1 = require("angular2/src/compiler/runtime_metadata");
|
|
var change_detector_compiler_1 = require("angular2/src/compiler/change_detector_compiler");
|
|
var style_compiler_1 = require("angular2/src/compiler/style_compiler");
|
|
var view_compiler_1 = require("angular2/src/compiler/view_compiler");
|
|
var proto_view_compiler_1 = require("angular2/src/compiler/proto_view_compiler");
|
|
var template_compiler_2 = require("angular2/src/compiler/template_compiler");
|
|
var change_detection_1 = require("angular2/src/core/change_detection/change_detection");
|
|
var compiler_1 = require("angular2/src/core/linker/compiler");
|
|
var runtime_compiler_2 = require("angular2/src/compiler/runtime_compiler");
|
|
var element_schema_registry_1 = require("angular2/src/compiler/schema/element_schema_registry");
|
|
var dom_element_schema_registry_1 = require("angular2/src/compiler/schema/dom_element_schema_registry");
|
|
var url_resolver_1 = require("angular2/src/compiler/url_resolver");
|
|
var change_detection_2 = require("angular2/src/core/change_detection/change_detection");
|
|
function _createChangeDetectorGenConfig() {
|
|
return new change_detection_1.ChangeDetectorGenConfig(lang_1.assertionsEnabled(), false, true);
|
|
}
|
|
exports.COMPILER_PROVIDERS = lang_1.CONST_EXPR([change_detection_2.Lexer, change_detection_2.Parser, html_parser_1.HtmlParser, template_parser_2.TemplateParser, template_normalizer_1.TemplateNormalizer, runtime_metadata_1.RuntimeMetadataResolver, url_resolver_1.DEFAULT_PACKAGE_URL_PROVIDER, style_compiler_1.StyleCompiler, proto_view_compiler_1.ProtoViewCompiler, view_compiler_1.ViewCompiler, change_detector_compiler_1.ChangeDetectionCompiler, new di_1.Provider(change_detection_1.ChangeDetectorGenConfig, {
|
|
useFactory: _createChangeDetectorGenConfig,
|
|
deps: []
|
|
}), template_compiler_2.TemplateCompiler, new di_1.Provider(runtime_compiler_2.RuntimeCompiler, {useClass: runtime_compiler_1.RuntimeCompiler_}), new di_1.Provider(compiler_1.Compiler, {useExisting: runtime_compiler_2.RuntimeCompiler}), dom_element_schema_registry_1.DomElementSchemaRegistry, new di_1.Provider(element_schema_registry_1.ElementSchemaRegistry, {useExisting: dom_element_schema_registry_1.DomElementSchemaRegistry}), url_resolver_1.UrlResolver]);
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/web_workers/worker/router_providers", ["angular2/core", "angular2/src/router/location/platform_location", "angular2/src/web_workers/worker/platform_location", "angular2/src/router/router_providers_common"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var core_1 = require("angular2/core");
|
|
var platform_location_1 = require("angular2/src/router/location/platform_location");
|
|
var platform_location_2 = require("angular2/src/web_workers/worker/platform_location");
|
|
var router_providers_common_1 = require("angular2/src/router/router_providers_common");
|
|
exports.WORKER_APP_ROUTER = [router_providers_common_1.ROUTER_PROVIDERS_COMMON, new core_1.Provider(platform_location_1.PlatformLocation, {useClass: platform_location_2.WebWorkerPlatformLocation}), new core_1.Provider(core_1.APP_INITIALIZER, {
|
|
useFactory: function(platformLocation, zone) {
|
|
return function() {
|
|
return initRouter(platformLocation, zone);
|
|
};
|
|
},
|
|
multi: true,
|
|
deps: [platform_location_1.PlatformLocation, core_1.NgZone]
|
|
})];
|
|
function initRouter(platformLocation, zone) {
|
|
return zone.run(function() {
|
|
return platformLocation.init();
|
|
});
|
|
}
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/facade/async", ["angular2/src/facade/lang", "angular2/src/facade/promise", "rxjs/Subject", "rxjs/observable/PromiseObservable", "rxjs/operator/toPromise", "rxjs/Observable", "rxjs/Subject"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var promise_1 = require("angular2/src/facade/promise");
|
|
exports.PromiseWrapper = promise_1.PromiseWrapper;
|
|
exports.PromiseCompleter = promise_1.PromiseCompleter;
|
|
var Subject_1 = require("rxjs/Subject");
|
|
var PromiseObservable_1 = require("rxjs/observable/PromiseObservable");
|
|
var toPromise_1 = require("rxjs/operator/toPromise");
|
|
var Observable_1 = require("rxjs/Observable");
|
|
exports.Observable = Observable_1.Observable;
|
|
var Subject_2 = require("rxjs/Subject");
|
|
exports.Subject = Subject_2.Subject;
|
|
var TimerWrapper = (function() {
|
|
function TimerWrapper() {}
|
|
TimerWrapper.setTimeout = function(fn, millis) {
|
|
return lang_1.global.setTimeout(fn, millis);
|
|
};
|
|
TimerWrapper.clearTimeout = function(id) {
|
|
lang_1.global.clearTimeout(id);
|
|
};
|
|
TimerWrapper.setInterval = function(fn, millis) {
|
|
return lang_1.global.setInterval(fn, millis);
|
|
};
|
|
TimerWrapper.clearInterval = function(id) {
|
|
lang_1.global.clearInterval(id);
|
|
};
|
|
return TimerWrapper;
|
|
})();
|
|
exports.TimerWrapper = TimerWrapper;
|
|
var ObservableWrapper = (function() {
|
|
function ObservableWrapper() {}
|
|
ObservableWrapper.subscribe = function(emitter, onNext, onError, onComplete) {
|
|
if (onComplete === void 0) {
|
|
onComplete = function() {};
|
|
}
|
|
onError = (typeof onError === "function") && onError || lang_1.noop;
|
|
onComplete = (typeof onComplete === "function") && onComplete || lang_1.noop;
|
|
return emitter.subscribe({
|
|
next: onNext,
|
|
error: onError,
|
|
complete: onComplete
|
|
});
|
|
};
|
|
ObservableWrapper.isObservable = function(obs) {
|
|
return !!obs.subscribe;
|
|
};
|
|
ObservableWrapper.hasSubscribers = function(obs) {
|
|
return obs.observers.length > 0;
|
|
};
|
|
ObservableWrapper.dispose = function(subscription) {
|
|
subscription.unsubscribe();
|
|
};
|
|
ObservableWrapper.callNext = function(emitter, value) {
|
|
emitter.next(value);
|
|
};
|
|
ObservableWrapper.callEmit = function(emitter, value) {
|
|
emitter.emit(value);
|
|
};
|
|
ObservableWrapper.callError = function(emitter, error) {
|
|
emitter.error(error);
|
|
};
|
|
ObservableWrapper.callComplete = function(emitter) {
|
|
emitter.complete();
|
|
};
|
|
ObservableWrapper.fromPromise = function(promise) {
|
|
return PromiseObservable_1.PromiseObservable.create(promise);
|
|
};
|
|
ObservableWrapper.toPromise = function(obj) {
|
|
return toPromise_1.toPromise.call(obj);
|
|
};
|
|
return ObservableWrapper;
|
|
})();
|
|
exports.ObservableWrapper = ObservableWrapper;
|
|
var EventEmitter = (function(_super) {
|
|
__extends(EventEmitter, _super);
|
|
function EventEmitter(isAsync) {
|
|
if (isAsync === void 0) {
|
|
isAsync = true;
|
|
}
|
|
_super.call(this);
|
|
this._isAsync = isAsync;
|
|
}
|
|
EventEmitter.prototype.emit = function(value) {
|
|
_super.prototype.next.call(this, value);
|
|
};
|
|
EventEmitter.prototype.next = function(value) {
|
|
_super.prototype.next.call(this, value);
|
|
};
|
|
EventEmitter.prototype.subscribe = function(generatorOrNext, error, complete) {
|
|
var schedulerFn;
|
|
var errorFn = function(err) {
|
|
return null;
|
|
};
|
|
var completeFn = function() {
|
|
return null;
|
|
};
|
|
if (generatorOrNext && typeof generatorOrNext === 'object') {
|
|
schedulerFn = this._isAsync ? function(value) {
|
|
setTimeout(function() {
|
|
return generatorOrNext.next(value);
|
|
});
|
|
} : function(value) {
|
|
generatorOrNext.next(value);
|
|
};
|
|
if (generatorOrNext.error) {
|
|
errorFn = this._isAsync ? function(err) {
|
|
setTimeout(function() {
|
|
return generatorOrNext.error(err);
|
|
});
|
|
} : function(err) {
|
|
generatorOrNext.error(err);
|
|
};
|
|
}
|
|
if (generatorOrNext.complete) {
|
|
completeFn = this._isAsync ? function() {
|
|
setTimeout(function() {
|
|
return generatorOrNext.complete();
|
|
});
|
|
} : function() {
|
|
generatorOrNext.complete();
|
|
};
|
|
}
|
|
} else {
|
|
schedulerFn = this._isAsync ? function(value) {
|
|
setTimeout(function() {
|
|
return generatorOrNext(value);
|
|
});
|
|
} : function(value) {
|
|
generatorOrNext(value);
|
|
};
|
|
if (error) {
|
|
errorFn = this._isAsync ? function(err) {
|
|
setTimeout(function() {
|
|
return error(err);
|
|
});
|
|
} : function(err) {
|
|
error(err);
|
|
};
|
|
}
|
|
if (complete) {
|
|
completeFn = this._isAsync ? function() {
|
|
setTimeout(function() {
|
|
return complete();
|
|
});
|
|
} : function() {
|
|
complete();
|
|
};
|
|
}
|
|
}
|
|
return _super.prototype.subscribe.call(this, schedulerFn, errorFn, completeFn);
|
|
};
|
|
return EventEmitter;
|
|
})(Subject_1.Subject);
|
|
exports.EventEmitter = EventEmitter;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/metadata/directives", ["angular2/src/facade/lang", "angular2/src/core/di/metadata", "angular2/src/core/change_detection"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __extends = (this && this.__extends) || function(d, b) {
|
|
for (var p in b)
|
|
if (b.hasOwnProperty(p))
|
|
d[p] = b[p];
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var metadata_1 = require("angular2/src/core/di/metadata");
|
|
var change_detection_1 = require("angular2/src/core/change_detection");
|
|
var DirectiveMetadata = (function(_super) {
|
|
__extends(DirectiveMetadata, _super);
|
|
function DirectiveMetadata(_a) {
|
|
var _b = _a === void 0 ? {} : _a,
|
|
selector = _b.selector,
|
|
inputs = _b.inputs,
|
|
outputs = _b.outputs,
|
|
properties = _b.properties,
|
|
events = _b.events,
|
|
host = _b.host,
|
|
bindings = _b.bindings,
|
|
providers = _b.providers,
|
|
exportAs = _b.exportAs,
|
|
queries = _b.queries;
|
|
_super.call(this);
|
|
this.selector = selector;
|
|
this._inputs = inputs;
|
|
this._properties = properties;
|
|
this._outputs = outputs;
|
|
this._events = events;
|
|
this.host = host;
|
|
this.exportAs = exportAs;
|
|
this.queries = queries;
|
|
this._providers = providers;
|
|
this._bindings = bindings;
|
|
}
|
|
Object.defineProperty(DirectiveMetadata.prototype, "inputs", {
|
|
get: function() {
|
|
return lang_1.isPresent(this._properties) && this._properties.length > 0 ? this._properties : this._inputs;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(DirectiveMetadata.prototype, "properties", {
|
|
get: function() {
|
|
return this.inputs;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(DirectiveMetadata.prototype, "outputs", {
|
|
get: function() {
|
|
return lang_1.isPresent(this._events) && this._events.length > 0 ? this._events : this._outputs;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(DirectiveMetadata.prototype, "events", {
|
|
get: function() {
|
|
return this.outputs;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(DirectiveMetadata.prototype, "providers", {
|
|
get: function() {
|
|
return lang_1.isPresent(this._bindings) && this._bindings.length > 0 ? this._bindings : this._providers;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(DirectiveMetadata.prototype, "bindings", {
|
|
get: function() {
|
|
return this.providers;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
DirectiveMetadata = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [Object])], DirectiveMetadata);
|
|
return DirectiveMetadata;
|
|
})(metadata_1.InjectableMetadata);
|
|
exports.DirectiveMetadata = DirectiveMetadata;
|
|
var ComponentMetadata = (function(_super) {
|
|
__extends(ComponentMetadata, _super);
|
|
function ComponentMetadata(_a) {
|
|
var _b = _a === void 0 ? {} : _a,
|
|
selector = _b.selector,
|
|
inputs = _b.inputs,
|
|
outputs = _b.outputs,
|
|
properties = _b.properties,
|
|
events = _b.events,
|
|
host = _b.host,
|
|
exportAs = _b.exportAs,
|
|
moduleId = _b.moduleId,
|
|
bindings = _b.bindings,
|
|
providers = _b.providers,
|
|
viewBindings = _b.viewBindings,
|
|
viewProviders = _b.viewProviders,
|
|
_c = _b.changeDetection,
|
|
changeDetection = _c === void 0 ? change_detection_1.ChangeDetectionStrategy.Default : _c,
|
|
queries = _b.queries,
|
|
templateUrl = _b.templateUrl,
|
|
template = _b.template,
|
|
styleUrls = _b.styleUrls,
|
|
styles = _b.styles,
|
|
directives = _b.directives,
|
|
pipes = _b.pipes,
|
|
encapsulation = _b.encapsulation;
|
|
_super.call(this, {
|
|
selector: selector,
|
|
inputs: inputs,
|
|
outputs: outputs,
|
|
properties: properties,
|
|
events: events,
|
|
host: host,
|
|
exportAs: exportAs,
|
|
bindings: bindings,
|
|
providers: providers,
|
|
queries: queries
|
|
});
|
|
this.changeDetection = changeDetection;
|
|
this._viewProviders = viewProviders;
|
|
this._viewBindings = viewBindings;
|
|
this.templateUrl = templateUrl;
|
|
this.template = template;
|
|
this.styleUrls = styleUrls;
|
|
this.styles = styles;
|
|
this.directives = directives;
|
|
this.pipes = pipes;
|
|
this.encapsulation = encapsulation;
|
|
this.moduleId = moduleId;
|
|
}
|
|
Object.defineProperty(ComponentMetadata.prototype, "viewProviders", {
|
|
get: function() {
|
|
return lang_1.isPresent(this._viewBindings) && this._viewBindings.length > 0 ? this._viewBindings : this._viewProviders;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(ComponentMetadata.prototype, "viewBindings", {
|
|
get: function() {
|
|
return this.viewProviders;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
ComponentMetadata = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [Object])], ComponentMetadata);
|
|
return ComponentMetadata;
|
|
})(DirectiveMetadata);
|
|
exports.ComponentMetadata = ComponentMetadata;
|
|
var PipeMetadata = (function(_super) {
|
|
__extends(PipeMetadata, _super);
|
|
function PipeMetadata(_a) {
|
|
var name = _a.name,
|
|
pure = _a.pure;
|
|
_super.call(this);
|
|
this.name = name;
|
|
this._pure = pure;
|
|
}
|
|
Object.defineProperty(PipeMetadata.prototype, "pure", {
|
|
get: function() {
|
|
return lang_1.isPresent(this._pure) ? this._pure : true;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
PipeMetadata = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [Object])], PipeMetadata);
|
|
return PipeMetadata;
|
|
})(metadata_1.InjectableMetadata);
|
|
exports.PipeMetadata = PipeMetadata;
|
|
var InputMetadata = (function() {
|
|
function InputMetadata(bindingPropertyName) {
|
|
this.bindingPropertyName = bindingPropertyName;
|
|
}
|
|
InputMetadata = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [String])], InputMetadata);
|
|
return InputMetadata;
|
|
})();
|
|
exports.InputMetadata = InputMetadata;
|
|
var OutputMetadata = (function() {
|
|
function OutputMetadata(bindingPropertyName) {
|
|
this.bindingPropertyName = bindingPropertyName;
|
|
}
|
|
OutputMetadata = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [String])], OutputMetadata);
|
|
return OutputMetadata;
|
|
})();
|
|
exports.OutputMetadata = OutputMetadata;
|
|
var HostBindingMetadata = (function() {
|
|
function HostBindingMetadata(hostPropertyName) {
|
|
this.hostPropertyName = hostPropertyName;
|
|
}
|
|
HostBindingMetadata = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [String])], HostBindingMetadata);
|
|
return HostBindingMetadata;
|
|
})();
|
|
exports.HostBindingMetadata = HostBindingMetadata;
|
|
var HostListenerMetadata = (function() {
|
|
function HostListenerMetadata(eventName, args) {
|
|
this.eventName = eventName;
|
|
this.args = args;
|
|
}
|
|
HostListenerMetadata = __decorate([lang_1.CONST(), __metadata('design:paramtypes', [String, Array])], HostListenerMetadata);
|
|
return HostListenerMetadata;
|
|
})();
|
|
exports.HostListenerMetadata = HostListenerMetadata;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/platform/worker_app", ["angular2/src/core/zone/ng_zone", "angular2/src/core/di", "angular2/src/platform/server/parse5_adapter", "angular2/src/web_workers/shared/post_message_bus", "angular2/src/platform/worker_app_common", "angular2/core", "angular2/src/web_workers/shared/message_bus", "angular2/src/compiler/compiler"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var ng_zone_1 = require("angular2/src/core/zone/ng_zone");
|
|
var di_1 = require("angular2/src/core/di");
|
|
var parse5_adapter_1 = require("angular2/src/platform/server/parse5_adapter");
|
|
var post_message_bus_1 = require("angular2/src/web_workers/shared/post_message_bus");
|
|
var worker_app_common_1 = require("angular2/src/platform/worker_app_common");
|
|
var core_1 = require("angular2/core");
|
|
var message_bus_1 = require("angular2/src/web_workers/shared/message_bus");
|
|
var compiler_1 = require("angular2/src/compiler/compiler");
|
|
var _postMessage = {postMessage: function(message, transferrables) {
|
|
postMessage(message, transferrables);
|
|
}};
|
|
exports.WORKER_APP_APPLICATION = [worker_app_common_1.WORKER_APP_APPLICATION_COMMON, compiler_1.COMPILER_PROVIDERS, new di_1.Provider(message_bus_1.MessageBus, {
|
|
useFactory: createMessageBus,
|
|
deps: [ng_zone_1.NgZone]
|
|
}), new di_1.Provider(core_1.APP_INITIALIZER, {
|
|
useValue: setupWebWorker,
|
|
multi: true
|
|
})];
|
|
function createMessageBus(zone) {
|
|
var sink = new post_message_bus_1.PostMessageBusSink(_postMessage);
|
|
var source = new post_message_bus_1.PostMessageBusSource();
|
|
var bus = new post_message_bus_1.PostMessageBus(sink, source);
|
|
bus.attachToZone(zone);
|
|
return bus;
|
|
}
|
|
function setupWebWorker() {
|
|
parse5_adapter_1.Parse5DomAdapter.makeCurrent();
|
|
}
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/core/metadata", ["angular2/src/core/metadata/di", "angular2/src/core/metadata/directives", "angular2/src/core/metadata/view", "angular2/src/core/metadata/di", "angular2/src/core/metadata/directives", "angular2/src/core/metadata/view", "angular2/src/core/util/decorators"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var di_1 = require("angular2/src/core/metadata/di");
|
|
exports.QueryMetadata = di_1.QueryMetadata;
|
|
exports.ContentChildrenMetadata = di_1.ContentChildrenMetadata;
|
|
exports.ContentChildMetadata = di_1.ContentChildMetadata;
|
|
exports.ViewChildrenMetadata = di_1.ViewChildrenMetadata;
|
|
exports.ViewQueryMetadata = di_1.ViewQueryMetadata;
|
|
exports.ViewChildMetadata = di_1.ViewChildMetadata;
|
|
exports.AttributeMetadata = di_1.AttributeMetadata;
|
|
var directives_1 = require("angular2/src/core/metadata/directives");
|
|
exports.ComponentMetadata = directives_1.ComponentMetadata;
|
|
exports.DirectiveMetadata = directives_1.DirectiveMetadata;
|
|
exports.PipeMetadata = directives_1.PipeMetadata;
|
|
exports.InputMetadata = directives_1.InputMetadata;
|
|
exports.OutputMetadata = directives_1.OutputMetadata;
|
|
exports.HostBindingMetadata = directives_1.HostBindingMetadata;
|
|
exports.HostListenerMetadata = directives_1.HostListenerMetadata;
|
|
var view_1 = require("angular2/src/core/metadata/view");
|
|
exports.ViewMetadata = view_1.ViewMetadata;
|
|
exports.ViewEncapsulation = view_1.ViewEncapsulation;
|
|
var di_2 = require("angular2/src/core/metadata/di");
|
|
var directives_2 = require("angular2/src/core/metadata/directives");
|
|
var view_2 = require("angular2/src/core/metadata/view");
|
|
var decorators_1 = require("angular2/src/core/util/decorators");
|
|
exports.Component = decorators_1.makeDecorator(directives_2.ComponentMetadata, function(fn) {
|
|
return fn.View = View;
|
|
});
|
|
exports.Directive = decorators_1.makeDecorator(directives_2.DirectiveMetadata);
|
|
var View = decorators_1.makeDecorator(view_2.ViewMetadata, function(fn) {
|
|
return fn.View = View;
|
|
});
|
|
exports.Attribute = decorators_1.makeParamDecorator(di_2.AttributeMetadata);
|
|
exports.Query = decorators_1.makeParamDecorator(di_2.QueryMetadata);
|
|
exports.ContentChildren = decorators_1.makePropDecorator(di_2.ContentChildrenMetadata);
|
|
exports.ContentChild = decorators_1.makePropDecorator(di_2.ContentChildMetadata);
|
|
exports.ViewChildren = decorators_1.makePropDecorator(di_2.ViewChildrenMetadata);
|
|
exports.ViewChild = decorators_1.makePropDecorator(di_2.ViewChildMetadata);
|
|
exports.ViewQuery = decorators_1.makeParamDecorator(di_2.ViewQueryMetadata);
|
|
exports.Pipe = decorators_1.makeDecorator(directives_2.PipeMetadata);
|
|
exports.Input = decorators_1.makePropDecorator(directives_2.InputMetadata);
|
|
exports.Output = decorators_1.makePropDecorator(directives_2.OutputMetadata);
|
|
exports.HostBinding = decorators_1.makePropDecorator(directives_2.HostBindingMetadata);
|
|
exports.HostListener = decorators_1.makePropDecorator(directives_2.HostListenerMetadata);
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/platform/worker_app", ["angular2/src/platform/worker_app_common", "angular2/src/platform/worker_app", "angular2/src/web_workers/shared/client_message_broker", "angular2/src/web_workers/shared/service_message_broker", "angular2/src/web_workers/shared/serializer", "angular2/src/web_workers/shared/message_bus", "angular2/src/core/angular_entrypoint", "angular2/src/web_workers/worker/router_providers"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
function __export(m) {
|
|
for (var p in m)
|
|
if (!exports.hasOwnProperty(p))
|
|
exports[p] = m[p];
|
|
}
|
|
var worker_app_common_1 = require("angular2/src/platform/worker_app_common");
|
|
exports.WORKER_APP_PLATFORM = worker_app_common_1.WORKER_APP_PLATFORM;
|
|
exports.WORKER_APP_APPLICATION_COMMON = worker_app_common_1.WORKER_APP_APPLICATION_COMMON;
|
|
var worker_app_1 = require("angular2/src/platform/worker_app");
|
|
exports.WORKER_APP_APPLICATION = worker_app_1.WORKER_APP_APPLICATION;
|
|
var client_message_broker_1 = require("angular2/src/web_workers/shared/client_message_broker");
|
|
exports.ClientMessageBroker = client_message_broker_1.ClientMessageBroker;
|
|
exports.ClientMessageBrokerFactory = client_message_broker_1.ClientMessageBrokerFactory;
|
|
exports.FnArg = client_message_broker_1.FnArg;
|
|
exports.UiArguments = client_message_broker_1.UiArguments;
|
|
var service_message_broker_1 = require("angular2/src/web_workers/shared/service_message_broker");
|
|
exports.ReceivedMessage = service_message_broker_1.ReceivedMessage;
|
|
exports.ServiceMessageBroker = service_message_broker_1.ServiceMessageBroker;
|
|
exports.ServiceMessageBrokerFactory = service_message_broker_1.ServiceMessageBrokerFactory;
|
|
var serializer_1 = require("angular2/src/web_workers/shared/serializer");
|
|
exports.PRIMITIVE = serializer_1.PRIMITIVE;
|
|
__export(require("angular2/src/web_workers/shared/message_bus"));
|
|
var angular_entrypoint_1 = require("angular2/src/core/angular_entrypoint");
|
|
exports.AngularEntrypoint = angular_entrypoint_1.AngularEntrypoint;
|
|
var router_providers_1 = require("angular2/src/web_workers/worker/router_providers");
|
|
exports.WORKER_APP_ROUTER = router_providers_1.WORKER_APP_ROUTER;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/core", ["angular2/src/core/metadata", "angular2/src/core/util", "angular2/src/core/prod_mode", "angular2/src/core/di", "angular2/src/facade/facade", "angular2/src/facade/lang", "angular2/src/core/application_ref", "angular2/src/core/application_tokens", "angular2/src/core/zone", "angular2/src/core/render", "angular2/src/core/linker", "angular2/src/core/debug/debug_node", "angular2/src/core/testability/testability", "angular2/src/core/change_detection", "angular2/src/core/platform_directives_and_pipes", "angular2/src/core/platform_common_providers", "angular2/src/core/application_common_providers", "angular2/src/core/reflection/reflection"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
function __export(m) {
|
|
for (var p in m)
|
|
if (!exports.hasOwnProperty(p))
|
|
exports[p] = m[p];
|
|
}
|
|
__export(require("angular2/src/core/metadata"));
|
|
__export(require("angular2/src/core/util"));
|
|
__export(require("angular2/src/core/prod_mode"));
|
|
__export(require("angular2/src/core/di"));
|
|
__export(require("angular2/src/facade/facade"));
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
exports.enableProdMode = lang_1.enableProdMode;
|
|
var application_ref_1 = require("angular2/src/core/application_ref");
|
|
exports.platform = application_ref_1.platform;
|
|
exports.createNgZone = application_ref_1.createNgZone;
|
|
exports.PlatformRef = application_ref_1.PlatformRef;
|
|
exports.ApplicationRef = application_ref_1.ApplicationRef;
|
|
var application_tokens_1 = require("angular2/src/core/application_tokens");
|
|
exports.APP_ID = application_tokens_1.APP_ID;
|
|
exports.APP_COMPONENT = application_tokens_1.APP_COMPONENT;
|
|
exports.APP_INITIALIZER = application_tokens_1.APP_INITIALIZER;
|
|
exports.PACKAGE_ROOT_URL = application_tokens_1.PACKAGE_ROOT_URL;
|
|
exports.PLATFORM_INITIALIZER = application_tokens_1.PLATFORM_INITIALIZER;
|
|
__export(require("angular2/src/core/zone"));
|
|
__export(require("angular2/src/core/render"));
|
|
__export(require("angular2/src/core/linker"));
|
|
var debug_node_1 = require("angular2/src/core/debug/debug_node");
|
|
exports.DebugElement = debug_node_1.DebugElement;
|
|
exports.DebugNode = debug_node_1.DebugNode;
|
|
exports.asNativeElements = debug_node_1.asNativeElements;
|
|
__export(require("angular2/src/core/testability/testability"));
|
|
__export(require("angular2/src/core/change_detection"));
|
|
__export(require("angular2/src/core/platform_directives_and_pipes"));
|
|
__export(require("angular2/src/core/platform_common_providers"));
|
|
__export(require("angular2/src/core/application_common_providers"));
|
|
__export(require("angular2/src/core/reflection/reflection"));
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/pipes/async_pipe", ["angular2/src/facade/lang", "angular2/src/facade/async", "angular2/core", "angular2/src/common/pipes/invalid_pipe_argument_exception"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
|
|
var c = arguments.length,
|
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(k, v);
|
|
};
|
|
var lang_1 = require("angular2/src/facade/lang");
|
|
var async_1 = require("angular2/src/facade/async");
|
|
var core_1 = require("angular2/core");
|
|
var invalid_pipe_argument_exception_1 = require("angular2/src/common/pipes/invalid_pipe_argument_exception");
|
|
var ObservableStrategy = (function() {
|
|
function ObservableStrategy() {}
|
|
ObservableStrategy.prototype.createSubscription = function(async, updateLatestValue) {
|
|
return async_1.ObservableWrapper.subscribe(async, updateLatestValue, function(e) {
|
|
throw e;
|
|
});
|
|
};
|
|
ObservableStrategy.prototype.dispose = function(subscription) {
|
|
async_1.ObservableWrapper.dispose(subscription);
|
|
};
|
|
ObservableStrategy.prototype.onDestroy = function(subscription) {
|
|
async_1.ObservableWrapper.dispose(subscription);
|
|
};
|
|
return ObservableStrategy;
|
|
})();
|
|
var PromiseStrategy = (function() {
|
|
function PromiseStrategy() {}
|
|
PromiseStrategy.prototype.createSubscription = function(async, updateLatestValue) {
|
|
return async.then(updateLatestValue);
|
|
};
|
|
PromiseStrategy.prototype.dispose = function(subscription) {};
|
|
PromiseStrategy.prototype.onDestroy = function(subscription) {};
|
|
return PromiseStrategy;
|
|
})();
|
|
var _promiseStrategy = new PromiseStrategy();
|
|
var _observableStrategy = new ObservableStrategy();
|
|
var __unused;
|
|
var AsyncPipe = (function() {
|
|
function AsyncPipe(_ref) {
|
|
this._latestValue = null;
|
|
this._latestReturnedValue = null;
|
|
this._subscription = null;
|
|
this._obj = null;
|
|
this._strategy = null;
|
|
this._ref = _ref;
|
|
}
|
|
AsyncPipe.prototype.ngOnDestroy = function() {
|
|
if (lang_1.isPresent(this._subscription)) {
|
|
this._dispose();
|
|
}
|
|
};
|
|
AsyncPipe.prototype.transform = function(obj, args) {
|
|
if (lang_1.isBlank(this._obj)) {
|
|
if (lang_1.isPresent(obj)) {
|
|
this._subscribe(obj);
|
|
}
|
|
this._latestReturnedValue = this._latestValue;
|
|
return this._latestValue;
|
|
}
|
|
if (obj !== this._obj) {
|
|
this._dispose();
|
|
return this.transform(obj);
|
|
}
|
|
if (this._latestValue === this._latestReturnedValue) {
|
|
return this._latestReturnedValue;
|
|
} else {
|
|
this._latestReturnedValue = this._latestValue;
|
|
return core_1.WrappedValue.wrap(this._latestValue);
|
|
}
|
|
};
|
|
AsyncPipe.prototype._subscribe = function(obj) {
|
|
var _this = this;
|
|
this._obj = obj;
|
|
this._strategy = this._selectStrategy(obj);
|
|
this._subscription = this._strategy.createSubscription(obj, function(value) {
|
|
return _this._updateLatestValue(obj, value);
|
|
});
|
|
};
|
|
AsyncPipe.prototype._selectStrategy = function(obj) {
|
|
if (lang_1.isPromise(obj)) {
|
|
return _promiseStrategy;
|
|
} else if (async_1.ObservableWrapper.isObservable(obj)) {
|
|
return _observableStrategy;
|
|
} else {
|
|
throw new invalid_pipe_argument_exception_1.InvalidPipeArgumentException(AsyncPipe, obj);
|
|
}
|
|
};
|
|
AsyncPipe.prototype._dispose = function() {
|
|
this._strategy.dispose(this._subscription);
|
|
this._latestValue = null;
|
|
this._latestReturnedValue = null;
|
|
this._subscription = null;
|
|
this._obj = null;
|
|
};
|
|
AsyncPipe.prototype._updateLatestValue = function(async, value) {
|
|
if (async === this._obj) {
|
|
this._latestValue = value;
|
|
this._ref.markForCheck();
|
|
}
|
|
};
|
|
AsyncPipe = __decorate([core_1.Pipe({
|
|
name: 'async',
|
|
pure: false
|
|
}), core_1.Injectable(), __metadata('design:paramtypes', [core_1.ChangeDetectorRef])], AsyncPipe);
|
|
return AsyncPipe;
|
|
})();
|
|
exports.AsyncPipe = AsyncPipe;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/src/common/pipes", ["angular2/src/common/pipes/async_pipe", "angular2/src/common/pipes/date_pipe", "angular2/src/common/pipes/json_pipe", "angular2/src/common/pipes/slice_pipe", "angular2/src/common/pipes/lowercase_pipe", "angular2/src/common/pipes/number_pipe", "angular2/src/common/pipes/uppercase_pipe", "angular2/src/common/pipes/replace_pipe", "angular2/src/common/pipes/i18n_plural_pipe", "angular2/src/common/pipes/i18n_select_pipe", "angular2/src/common/pipes/common_pipes"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
var async_pipe_1 = require("angular2/src/common/pipes/async_pipe");
|
|
exports.AsyncPipe = async_pipe_1.AsyncPipe;
|
|
var date_pipe_1 = require("angular2/src/common/pipes/date_pipe");
|
|
exports.DatePipe = date_pipe_1.DatePipe;
|
|
var json_pipe_1 = require("angular2/src/common/pipes/json_pipe");
|
|
exports.JsonPipe = json_pipe_1.JsonPipe;
|
|
var slice_pipe_1 = require("angular2/src/common/pipes/slice_pipe");
|
|
exports.SlicePipe = slice_pipe_1.SlicePipe;
|
|
var lowercase_pipe_1 = require("angular2/src/common/pipes/lowercase_pipe");
|
|
exports.LowerCasePipe = lowercase_pipe_1.LowerCasePipe;
|
|
var number_pipe_1 = require("angular2/src/common/pipes/number_pipe");
|
|
exports.NumberPipe = number_pipe_1.NumberPipe;
|
|
exports.DecimalPipe = number_pipe_1.DecimalPipe;
|
|
exports.PercentPipe = number_pipe_1.PercentPipe;
|
|
exports.CurrencyPipe = number_pipe_1.CurrencyPipe;
|
|
var uppercase_pipe_1 = require("angular2/src/common/pipes/uppercase_pipe");
|
|
exports.UpperCasePipe = uppercase_pipe_1.UpperCasePipe;
|
|
var replace_pipe_1 = require("angular2/src/common/pipes/replace_pipe");
|
|
exports.ReplacePipe = replace_pipe_1.ReplacePipe;
|
|
var i18n_plural_pipe_1 = require("angular2/src/common/pipes/i18n_plural_pipe");
|
|
exports.I18nPluralPipe = i18n_plural_pipe_1.I18nPluralPipe;
|
|
var i18n_select_pipe_1 = require("angular2/src/common/pipes/i18n_select_pipe");
|
|
exports.I18nSelectPipe = i18n_select_pipe_1.I18nSelectPipe;
|
|
var common_pipes_1 = require("angular2/src/common/pipes/common_pipes");
|
|
exports.COMMON_PIPES = common_pipes_1.COMMON_PIPES;
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/common", ["angular2/src/common/pipes", "angular2/src/common/directives", "angular2/src/common/forms", "angular2/src/common/common_directives"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
function __export(m) {
|
|
for (var p in m)
|
|
if (!exports.hasOwnProperty(p))
|
|
exports[p] = m[p];
|
|
}
|
|
__export(require("angular2/src/common/pipes"));
|
|
__export(require("angular2/src/common/directives"));
|
|
__export(require("angular2/src/common/forms"));
|
|
__export(require("angular2/src/common/common_directives"));
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
System.register("angular2/web_worker/worker", ["angular2/common", "angular2/core", "angular2/platform/worker_app", "angular2/compiler", "angular2/instrumentation", "angular2/src/platform/worker_app"], true, function(require, exports, module) {
|
|
var global = System.global,
|
|
__define = global.define;
|
|
global.define = undefined;
|
|
function __export(m) {
|
|
for (var p in m)
|
|
if (!exports.hasOwnProperty(p))
|
|
exports[p] = m[p];
|
|
}
|
|
__export(require("angular2/common"));
|
|
__export(require("angular2/core"));
|
|
__export(require("angular2/platform/worker_app"));
|
|
var compiler_1 = require("angular2/compiler");
|
|
exports.UrlResolver = compiler_1.UrlResolver;
|
|
__export(require("angular2/instrumentation"));
|
|
__export(require("angular2/src/platform/worker_app"));
|
|
global.define = __define;
|
|
return module.exports;
|
|
});
|
|
|
|
//# sourceMappingURLDisabled=worker.dev.js.map |