1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var utils_1 = require("./utils");
|
4 | var ScopeChecker = (function () {
|
5 | function ScopeChecker(namespace, isolateModule) {
|
6 | this.namespace = namespace;
|
7 | this.isolateModule = isolateModule;
|
8 | this._namespace = namespace.filter(function (n) { return n.type !== 'selector'; });
|
9 | }
|
10 | |
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 | ScopeChecker.prototype.isDirectlyInScope = function (leaf) {
|
17 | var namespace = this.isolateModule.getNamespace(leaf);
|
18 | if (!namespace) {
|
19 | return false;
|
20 | }
|
21 | if (this._namespace.length > namespace.length ||
|
22 | !utils_1.isEqualNamespace(this._namespace, namespace.slice(0, this._namespace.length))) {
|
23 | return false;
|
24 | }
|
25 | for (var i = this._namespace.length; i < namespace.length; i++) {
|
26 | if (namespace[i].type === 'total') {
|
27 | return false;
|
28 | }
|
29 | }
|
30 | return true;
|
31 | };
|
32 | return ScopeChecker;
|
33 | }());
|
34 | exports.ScopeChecker = ScopeChecker;
|
35 |
|
\ | No newline at end of file |