@angular/compiler-cli 10.1.0-rc.0 → 10.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ngcc/src/execution/create_compile_function.js +6 -3
- package/ngcc/src/host/esm2015_host.d.ts +18 -0
- package/ngcc/src/host/esm2015_host.js +53 -31
- package/ngcc/src/main.js +9 -12
- package/ngcc/src/ngcc_options.d.ts +8 -7
- package/ngcc/src/ngcc_options.js +27 -3
- package/ngcc/src/packages/build_marker.d.ts +1 -1
- package/ngcc/src/packages/build_marker.js +1 -1
- package/ngcc/src/packages/entry_point_bundle.d.ts +12 -1
- package/ngcc/src/packages/entry_point_bundle.js +9 -6
- package/ngcc/src/packages/ngcc_compiler_host.d.ts +16 -1
- package/ngcc/src/packages/ngcc_compiler_host.js +35 -5
- package/ngcc/src/packages/source_file_cache.d.ts +97 -0
- package/ngcc/src/packages/source_file_cache.js +207 -0
- package/ngcc/src/rendering/renderer.js +9 -10
- package/package.json +2 -2
- package/src/ngtsc/annotations/src/component.d.ts +4 -1
- package/src/ngtsc/annotations/src/component.js +94 -122
- package/src/ngtsc/annotations/src/directive.d.ts +5 -1
- package/src/ngtsc/annotations/src/directive.js +21 -11
- package/src/ngtsc/annotations/src/typecheck_scopes.d.ts +56 -0
- package/src/ngtsc/annotations/src/typecheck_scopes.js +109 -0
- package/src/ngtsc/annotations/src/util.js +4 -2
- package/src/ngtsc/core/src/compiler.js +4 -3
- package/src/ngtsc/diagnostics/src/error_code.d.ts +4 -0
- package/src/ngtsc/diagnostics/src/error_code.js +5 -1
- package/src/ngtsc/file_system/src/invalid_file_system.d.ts +2 -2
- package/src/ngtsc/file_system/src/invalid_file_system.js +1 -1
- package/src/ngtsc/file_system/src/node_js_file_system.d.ts +2 -2
- package/src/ngtsc/file_system/src/node_js_file_system.js +1 -1
- package/src/ngtsc/file_system/src/types.d.ts +2 -2
- package/src/ngtsc/file_system/src/types.js +1 -1
- package/src/ngtsc/file_system/testing/src/mock_file_system.d.ts +3 -3
- package/src/ngtsc/file_system/testing/src/mock_file_system.js +2 -2
- package/src/ngtsc/indexer/src/template.js +10 -24
- package/src/ngtsc/metadata/index.d.ts +2 -0
- package/src/ngtsc/metadata/index.js +7 -3
- package/src/ngtsc/metadata/src/api.d.ts +13 -4
- package/src/ngtsc/metadata/src/api.js +1 -1
- package/src/ngtsc/metadata/src/dts.js +7 -4
- package/src/ngtsc/metadata/src/inheritance.d.ts +1 -1
- package/src/ngtsc/metadata/src/inheritance.js +10 -6
- package/src/ngtsc/metadata/src/property_mapping.d.ts +117 -0
- package/src/ngtsc/metadata/src/property_mapping.js +244 -0
- package/src/ngtsc/metadata/src/util.d.ts +2 -3
- package/src/ngtsc/metadata/src/util.js +9 -9
- package/src/ngtsc/modulewithproviders/src/scanner.js +2 -2
- package/src/ngtsc/reflection/src/host.d.ts +1 -1
- package/src/ngtsc/reflection/src/host.js +1 -1
- package/src/ngtsc/reflection/src/type_to_value.js +6 -2
- package/src/ngtsc/scope/src/local.d.ts +1 -0
- package/src/ngtsc/scope/src/local.js +2 -1
- package/src/ngtsc/translator/index.d.ts +1 -1
- package/src/ngtsc/translator/index.js +3 -2
- package/src/ngtsc/translator/src/translator.d.ts +8 -1
- package/src/ngtsc/translator/src/translator.js +185 -111
- package/src/ngtsc/typecheck/api/api.d.ts +3 -1
- package/src/ngtsc/typecheck/api/api.js +1 -1
- package/src/ngtsc/typecheck/diagnostics/index.d.ts +10 -0
- package/src/ngtsc/typecheck/diagnostics/index.js +23 -0
- package/src/ngtsc/typecheck/diagnostics/src/diagnostic.d.ts +33 -0
- package/src/ngtsc/typecheck/diagnostics/src/diagnostic.js +114 -0
- package/src/ngtsc/typecheck/diagnostics/src/id.d.ts +11 -0
- package/src/ngtsc/typecheck/diagnostics/src/id.js +37 -0
- package/src/ngtsc/typecheck/index.d.ts +0 -1
- package/src/ngtsc/typecheck/index.js +3 -5
- package/src/ngtsc/typecheck/src/checker.js +1 -1
- package/src/ngtsc/typecheck/src/context.d.ts +1 -1
- package/src/ngtsc/typecheck/src/context.js +3 -3
- package/src/ngtsc/typecheck/src/diagnostics.d.ts +1 -22
- package/src/ngtsc/typecheck/src/diagnostics.js +5 -96
- package/src/ngtsc/typecheck/src/dom.d.ts +2 -1
- package/src/ngtsc/typecheck/src/dom.js +3 -3
- package/src/ngtsc/typecheck/src/environment.js +4 -4
- package/src/ngtsc/typecheck/src/oob.d.ts +2 -1
- package/src/ngtsc/typecheck/src/oob.js +3 -3
- package/src/ngtsc/typecheck/src/source.js +5 -18
- package/src/ngtsc/typecheck/src/type_check_block.js +49 -95
- package/src/transformers/node_emitter.d.ts +2 -8
- package/src/transformers/node_emitter.js +54 -68
- package/src/transformers/node_emitter_transform.js +8 -8
- package/src/transformers/util.d.ts +6 -0
- package/src/transformers/util.js +11 -2
- package/src/version.js +1 -1
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
if (v !== undefined) module.exports = v;
|
|
12
12
|
}
|
|
13
13
|
else if (typeof define === "function" && define.amd) {
|
|
14
|
-
define("@angular/compiler-cli/src/ngtsc/metadata/src/dts", ["require", "exports", "tslib", "typescript", "@angular/compiler-cli/src/ngtsc/imports", "@angular/compiler-cli/src/ngtsc/reflection", "@angular/compiler-cli/src/ngtsc/metadata/src/util"], factory);
|
|
14
|
+
define("@angular/compiler-cli/src/ngtsc/metadata/src/dts", ["require", "exports", "tslib", "typescript", "@angular/compiler-cli/src/ngtsc/imports", "@angular/compiler-cli/src/ngtsc/reflection", "@angular/compiler-cli/src/ngtsc/metadata/src/property_mapping", "@angular/compiler-cli/src/ngtsc/metadata/src/util"], factory);
|
|
15
15
|
}
|
|
16
16
|
})(function (require, exports) {
|
|
17
17
|
"use strict";
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
var ts = require("typescript");
|
|
22
22
|
var imports_1 = require("@angular/compiler-cli/src/ngtsc/imports");
|
|
23
23
|
var reflection_1 = require("@angular/compiler-cli/src/ngtsc/reflection");
|
|
24
|
+
var property_mapping_1 = require("@angular/compiler-cli/src/ngtsc/metadata/src/property_mapping");
|
|
24
25
|
var util_1 = require("@angular/compiler-cli/src/ngtsc/metadata/src/util");
|
|
25
26
|
/**
|
|
26
27
|
* A `MetadataReader` that can read metadata from `.d.ts` files, which have static Ivy properties
|
|
@@ -79,8 +80,10 @@
|
|
|
79
80
|
// The type metadata was the wrong shape.
|
|
80
81
|
return null;
|
|
81
82
|
}
|
|
82
|
-
var inputs = util_1.readStringMapType(def.type.typeArguments[3]);
|
|
83
|
-
|
|
83
|
+
var inputs = property_mapping_1.ClassPropertyMapping.fromMappedObject(util_1.readStringMapType(def.type.typeArguments[3]));
|
|
84
|
+
var outputs = property_mapping_1.ClassPropertyMapping.fromMappedObject(util_1.readStringMapType(def.type.typeArguments[4]));
|
|
85
|
+
return tslib_1.__assign(tslib_1.__assign({ ref: ref, name: clazz.name.text, isComponent: def.name === 'ɵcmp', selector: util_1.readStringType(def.type.typeArguments[1]), exportAs: util_1.readStringArrayType(def.type.typeArguments[2]), inputs: inputs,
|
|
86
|
+
outputs: outputs, queries: util_1.readStringArrayType(def.type.typeArguments[5]) }, util_1.extractDirectiveTypeCheckMeta(clazz, inputs, this.reflector)), { baseClass: readBaseClass(clazz, this.checker, this.reflector) });
|
|
84
87
|
};
|
|
85
88
|
/**
|
|
86
89
|
* Read pipe metadata from a referenced class in a .d.ts file.
|
|
@@ -148,4 +151,4 @@
|
|
|
148
151
|
return null;
|
|
149
152
|
}
|
|
150
153
|
});
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL3NyYy9uZ3RzYy9tZXRhZGF0YS9zcmMvZHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7Ozs7SUFFSCwrQkFBaUM7SUFFakMsbUVBQXdDO0lBQ3hDLHlFQUEyRjtJQUczRiwwRUFBd0k7SUFFeEk7OztPQUdHO0lBQ0g7UUFDRSwyQkFBb0IsT0FBdUIsRUFBVSxTQUF5QjtZQUExRCxZQUFPLEdBQVAsT0FBTyxDQUFnQjtZQUFVLGNBQVMsR0FBVCxTQUFTLENBQWdCO1FBQUcsQ0FBQztRQUVsRjs7Ozs7V0FLRztRQUNILCtDQUFtQixHQUFuQixVQUFvQixHQUFnQztZQUNsRCxJQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQ3ZCLElBQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVEsQ0FBQztZQUN6RCx3RkFBd0Y7WUFDeEYsOERBQThEO1lBQzlELElBQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUM1RCxVQUFBLE1BQU0sSUFBSSxPQUFBLE1BQU0sQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQXpDLENBQXlDLENBQUMsQ0FBQztZQUN6RCxJQUFJLFdBQVcsS0FBSyxTQUFTLEVBQUU7Z0JBQzdCLE9BQU8sSUFBSSxDQUFDO2FBQ2I7aUJBQU07WUFDSCw4REFBOEQ7WUFDOUQsV0FBVyxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztnQkFDdEUsV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLEtBQUssU0FBUztnQkFDNUMsV0FBVyxD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LE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcblxuaW1wb3J0IHtSZWZlcmVuY2V9IGZyb20gJy4uLy4uL2ltcG9ydHMnO1xuaW1wb3J0IHtDbGFzc0RlY2xhcmF0aW9uLCBpc05hbWVkQ2xhc3NEZWNsYXJhdGlvbiwgUmVmbGVjdGlvbkhvc3R9IGZyb20gJy4uLy4uL3JlZmxlY3Rpb24nO1xuXG5pbXBvcnQge0RpcmVjdGl2ZU1ldGEsIE1ldGFkYXRhUmVhZGVyLCBOZ01vZHVsZU1ldGEsIFBpcGVNZXRhfSBmcm9tICcuL2FwaSc7XG5pbXBvcnQge2V4dHJhY3REaXJlY3RpdmVUeXBlQ2hlY2tNZXRhLCBleHRyYWN0UmVmZXJlbmNlc0Zyb21UeXBlLCByZWFkU3RyaW5nQXJyYXlUeXBlLCByZWFkU3RyaW5nTWFwVHlwZSwgcmVhZFN0cmluZ1R5cGV9IGZyb20gJy4vdXRpbCc7XG5cbi8qKlxuICogQSBgTWV0YWRhdGFSZWFkZXJgIHRoYXQgY2FuIHJlYWQgbWV0YWRhdGEgZnJvbSBgLmQudHNgIGZpbGVzLCB3aGljaCBoYXZlIHN0YXRpYyBJdnkgcHJvcGVydGllc1xuICogZnJvbSBhbiB1cHN0cmVhbSBjb21waWxhdGlvbiBhbHJlYWR5LlxuICovXG5leHBvcnQgY2xhc3MgRHRzTWV0YWRhdGFSZWFkZXIgaW1wbGVtZW50cyBNZXRhZGF0YVJlYWRlciB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hlY2tlcjogdHMuVHlwZUNoZWNrZXIsIHByaXZhdGUgcmVmbGVjdG9yOiBSZWZsZWN0aW9uSG9zdCkge31cblxuICAvKipcbiAgICogUmVhZCB0aGUgbWV0YWRhdGEgZnJvbSBhIGNsYXNzIHRoYXQgaGFzIGFscmVhZHkgYmVlbiBjb21waWxlZCBzb21laG93IChlaXRoZXIgaXQncyBpbiBhIC5kLnRzXG4gICAqIGZpbGUsIG9yIGluIGEgLnRzIGZpbGUgd2l0aCBhIGhhbmR3cml0dGVuIGRlZmluaXRpb24pLlxuICAgKlxuICAgKiBAcGFyYW0gcmVmIGBSZWZlcmVuY2VgIHRvIHRoZSBjbGFzcyBvZiBpbnRlcmVzdCwgd2l0aCB0aGUgY29udGV4dCBvZiBob3cgaXQgd2FzIG9idGFpbmVkLlxuICAgKi9cbiAgZ2V0TmdNb2R1bGVNZXRhZGF0YShyZWY6IFJlZmVyZW5jZTxDbGFzc0RlY2xhcmF0aW9uPik6IE5nTW9kdWxlTWV0YXxudWxsIHtcbiAgICBjb25zdCBjbGF6eiA9IHJlZi5ub2RlO1xuICAgIGNvbnN0IHJlc29sdXRpb25Db250ZXh0ID0gY2xhenouZ2V0U291cmNlRmlsZSgpLmZpbGVOYW1lO1xuICAgIC8vIFRoaXMgb3BlcmF0aW9uIGlzIGV4cGxpY2l0bHkgbm90IG1lbW9pemVkLCBhcyBpdCBkZXBlbmRzIG9uIGByZWYub3duZWRCeU1vZHVsZUd1ZXNzYC5cbiAgICAvLyBUT0RPKGFseGh1Yik6IGludmVzdGlnYXRlIGNhY2hpbmcgb2YgLmQudHMgbW9kdWxlIG1ldGFkYXRhLlxuICAgIGNvbnN0IG5nTW9kdWxlRGVmID0gdGhpcy5yZWZsZWN0b3IuZ2V0TWVtYmVyc09mQ2xhc3MoY2xhenopLmZpbmQoXG4gICAgICAgIG1lbWJlciA9PiBtZW1iZXIubmFtZSA9PT0gJ8m1bW9kJyAmJiBtZW1iZXIuaXNTdGF0aWMpO1xuICAgIGlmIChuZ01vZHVsZURlZiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgICAvLyBWYWxpZGF0ZSB0aGF0IHRoZSBzaGFwZSBvZiB0aGUgbmdNb2R1bGVEZWYgdHlwZSBpcyBjb3JyZWN0LlxuICAgICAgICBuZ01vZHVsZURlZi50eXBlID09PSBudWxsIHx8ICF0cy5pc1R5cGVSZWZlcmVuY2VOb2RlKG5nTW9kdWxlRGVmLnR5cGUpIHx8XG4gICAgICAgIG5nTW9kdWxlRGVmLnR5cGUudHlwZUFyZ3VtZW50cyA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgIG5nTW9kdWxlRGVmLnR5cGUudHlwZUFyZ3VtZW50cy5sZW5ndGggIT09IDQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8vIFJlYWQgdGhlIE1vZHVsZURhdGEgb3V0IG9mIHRoZSB0eXBlIGFyZ3VtZW50cy5cbiAgICBjb25zdCBbXywgZGVjbGFyYXRpb25NZXRhZGF0YSwgaW1wb3J0TWV0YWRhdGEsIGV4cG9ydE1ldGFkYXRhXSA9IG5nTW9kdWxlRGVmLnR5cGUudHlwZUFyZ3VtZW50cztcbiAgICByZXR1cm4ge1xuICAgICAgcmVmLFxuICAgICAgZGVjbGFyYXRpb25zOiBleHRyYWN0UmVmZXJlbmNlc0Zyb21UeXBlKFxuICAgICAgICAgIHRoaXMuY2hlY2tlciwgZGVjbGFyYXRpb25NZXRhZGF0YSwgcmVmLm93bmVkQnlNb2R1bGVHdWVzcywgcmVzb2x1dGlvbkNvbnRleHQpLFxuICAgICAgZXhwb3J0czogZXh0cmFjdFJlZmVyZW5jZXNGcm9tVHlwZShcbiAgICAgICAgICB0aGlzLmNoZWNrZXIsIGV4cG9ydE1ldGFkYXRhLCByZWYub3duZWRCeU1vZHVsZUd1ZXNzLCByZXNvbHV0aW9uQ29udGV4dCksXG4gICAgICBpbXBvcnRzOiBleHRyYWN0UmVmZXJlbmNlc0Zyb21UeXBlKFxuICAgICAgICAgIHRoaXMuY2hlY2tlciwgaW1wb3J0TWV0YWRhdGEsIHJlZi5vd25lZEJ5TW9kdWxlR3Vlc3MsIHJlc29sdXRpb25Db250ZXh0KSxcbiAgICAgIHNjaGVtYXM6IFtdLFxuICAgICAgcmF3RGVjbGFyYXRpb25zOiBudWxsLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmVhZCBkaXJlY3RpdmUgKG9yIGNvbXBvbmVudCkgbWV0YWRhdGEgZnJvbSBhIHJlZmVyZW5jZWQgY2xhc3MgaW4gYSAuZC50cyBmaWxlLlxuICAgKi9cbiAgZ2V0RGlyZWN0aXZlTWV0YWRhdGEocmVmOiBSZWZlcmVuY2U8Q2xhc3NEZWNsYXJhdGlvbj4pOiBEaXJlY3RpdmVNZXRhfG51bGwge1xuICAgIGNvbnN0IGNsYXp6ID0gcmVmLm5vZGU7XG4gICAgY29uc3QgZGVmID0gdGhpcy5yZWZsZWN0b3IuZ2V0TWVtYmVyc09mQ2xhc3MoY2xhenopLmZpbmQoXG4gICAgICAgIGZpZWxkID0+IGZpZWxkLmlzU3RhdGljICYmIChmaWVsZC5uYW1lID09PSAnybVjbXAnIHx8IGZpZWxkLm5hbWUgPT09ICfJtWRpcicpKTtcbiAgICBpZiAoZGVmID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIE5vIGRlZmluaXRpb24gY291bGQgYmUgZm91bmQuXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgICBkZWYudHlwZSA9PT0gbnVsbCB8fCAhdHMuaXNUeXBlUmVmZXJlbmNlTm9kZShkZWYudHlwZSkgfHxcbiAgICAgICAgZGVmLnR5cGUudHlwZUFyZ3VtZW50cyA9PT0gdW5kZWZpbmVkIHx8IGRlZi50eXBlLnR5cGVBcmd1bWVudHMubGVuZ3RoIDwgMikge1xuICAgICAgLy8gVGhlIHR5cGUgbWV0YWRhdGEgd2FzIHRoZSB3cm9uZyBzaGFwZS5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGlucHV0cyA9IHJlYWRTdHJpbmdNYXBUeXBlKGRlZi50eXBlLnR5cGVBcmd1bWVudHNbM10pO1xuICAgIHJldHVybiB7XG4gICAgICByZWYsXG4gICAgICBuYW1lOiBjbGF6ei5uYW1lLnRleHQsXG4gICAgICBpc0NvbXBvbmVudDogZGVmLm5hbWUgPT09ICfJtWNtcCcsXG4gICAgICBzZWxlY3RvcjogcmVhZFN0cmluZ1R5cGUoZGVmLnR5cGUudHlwZUFyZ3VtZW50c1sxXSksXG4gICAgICBleHBvcnRBczogcmVhZFN0cmluZ0FycmF5VHlwZShkZWYudHlwZS50eXBlQXJndW1lbnRzWzJdKSxcbiAgICAgIGlucHV0cyxcbiAgICAgIG91dHB1dHM6IHJlYWRTdHJpbmdNYXBUeXBlKGRlZi50eXBlLnR5cGVBcmd1bWVudHNbNF0pLFxuICAgICAgcXVlcmllczogcmVhZFN0cmluZ0FycmF5VHlwZShkZWYudHlwZS50eXBlQXJndW1lbnRzWzVdKSxcbiAgICAgIC4uLmV4dHJhY3REaXJlY3RpdmVUeXBlQ2hlY2tNZXRhKGNsYXp6LCBpbnB1dHMsIHRoaXMucmVmbGVjdG9yKSxcbiAgICAgIGJhc2VDbGFzczogcmVhZEJhc2VDbGFzcyhjbGF6eiwgdGhpcy5jaGVja2VyLCB0aGlzLnJlZmxlY3RvciksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkIHBpcGUgbWV0YWRhdGEgZnJvbSBhIHJlZmVyZW5jZWQgY2xhc3MgaW4gYSAuZC50cyBmaWxlLlxuICAgKi9cbiAgZ2V0UGlwZU1ldGFkYXRhKHJlZjogUmVmZXJlbmNlPENsYXNzRGVjbGFyYXRpb24+KTogUGlwZU1ldGF8bnVsbCB7XG4gICAgY29uc3QgZGVmID0gdGhpcy5yZWZsZWN0b3IuZ2V0TWVtYmVyc09mQ2xhc3MocmVmLm5vZGUpLmZpbmQoXG4gICAgICAgIGZpZWxkID0+IGZpZWxkLmlzU3RhdGljICYmIGZpZWxkLm5hbWUgPT09ICfJtXBpcGUnKTtcbiAgICBpZiAoZGVmID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIE5vIGRlZmluaXRpb24gY291bGQgYmUgZm91bmQuXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgICBkZWYudHlwZSA9PT0gbnVsbCB8fCAhdHMuaXNUeXBlUmVmZXJlbmNlTm9kZShkZWYudHlwZSkgfHxcbiAgICAgICAgZGVmLnR5cGUudHlwZUFyZ3VtZW50cyA9PT0gdW5kZWZpbmVkIHx8IGRlZi50eXBlLnR5cGVBcmd1bWVudHMubGVuZ3RoIDwgMikge1xuICAgICAgLy8gVGhlIHR5cGUgbWV0YWRhdGEgd2FzIHRoZSB3cm9uZyBzaGFwZS5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCB0eXBlID0gZGVmLnR5cGUudHlwZUFyZ3VtZW50c1sxXTtcbiAgICBpZiAoIXRzLmlzTGl0ZXJhbFR5cGVOb2RlKHR5cGUpIHx8ICF0cy5pc1N0cmluZ0xpdGVyYWwodHlwZS5saXRlcmFsKSkge1xuICAgICAgLy8gVGhlIHR5cGUgbWV0YWRhdGEgd2FzIHRoZSB3cm9uZyB0eXBlLlxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IG5hbWUgPSB0eXBlLmxpdGVyYWwudGV4dDtcbiAgICByZXR1cm4ge3JlZiwgbmFtZX07XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVhZEJhc2VDbGFzcyhjbGF6ejogQ2xhc3NEZWNsYXJhdGlvbiwgY2hlY2tlcjogdHMuVHlwZUNoZWNrZXIsIHJlZmxlY3RvcjogUmVmbGVjdGlvbkhvc3QpOlxuICAgIFJlZmVyZW5jZTxDbGFzc0RlY2xhcmF0aW9uPnwnZHluYW1pYyd8bnVsbCB7XG4gIGlmICghaXNOYW1lZENsYXNzRGVjbGFyYXRpb24oY2xhenopKSB7XG4gICAgLy8gVGVjaG5pY2FsbHkgdGhpcyBpcyBhbiBlcnJvciBpbiBhIC5kLnRzIGZpbGUsIGJ1dCBmb3IgdGhlIHB1cnBvc2VzIG9mIGZpbmRpbmcgdGhlIGJhc2UgY2xhc3NcbiAgICAvLyBpdCdzIGlnbm9yZWQuXG4gICAgcmV0dXJuIHJlZmxlY3Rvci5oYXNCYXNlQ2xhc3MoY2xhenopID8gJ2R5bmFtaWMnIDogbnVsbDtcbiAgfVxuXG4gIGlmIChjbGF6ei5oZXJpdGFnZUNsYXVzZXMgIT09IHVuZGVmaW5lZCkge1xuICAgIGZvciAoY29uc3QgY2xhdXNlIG9mIGNsYXp6Lmhlcml0YWdlQ2xhdXNlcykge1xuICAgICAgaWYgKGNsYXVzZS50b2tlbiA9PT0gdHMuU3ludGF4S2luZC5FeHRlbmRzS2V5d29yZCkge1xuICAgICAgICBjb25zdCBiYXNlRXhwciA9IGNsYXVzZS50eXBlc1swXS5leHByZXNzaW9uO1xuICAgICAgICBsZXQgc3ltYm9sID0gY2hlY2tlci5nZXRTeW1ib2xBdExvY2F0aW9uKGJhc2VFeHByKTtcbiAgICAgICAgaWYgKHN5bWJvbCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmV0dXJuICdkeW5hbWljJztcbiAgICAgICAgfSBlbHNlIGlmIChzeW1ib2wuZmxhZ3MgJiB0cy5TeW1ib2xGbGFncy5BbGlhcykge1xuICAgICAgICAgIHN5bWJvbCA9IGNoZWNrZXIuZ2V0QWxpYXNlZFN5bWJvbChzeW1ib2wpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzeW1ib2wudmFsdWVEZWNsYXJhdGlvbiAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICBpc05hbWVkQ2xhc3NEZWNsYXJhdGlvbihzeW1ib2wudmFsdWVEZWNsYXJhdGlvbikpIHtcbiAgICAgICAgICByZXR1cm4gbmV3IFJlZmVyZW5jZShzeW1ib2wudmFsdWVEZWNsYXJhdGlvbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuICdkeW5hbWljJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cbiJdfQ==
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL3NyYy9uZ3RzYy9tZXRhZGF0YS9zcmMvZHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7Ozs7SUFFSCwrQkFBaUM7SUFFakMsbUVBQXdDO0lBQ3hDLHlFQUEyRjtJQUczRixrR0FBd0Q7SUFDeEQsMEVBQXdJO0lBRXhJOzs7T0FHRztJQUNIO1FBQ0UsMkJBQW9CLE9BQXVCLEVBQVUsU0FBeUI7WUFBMUQsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7WUFBVSxjQUFTLEdBQVQsU0FBUyxDQUFnQjtRQUFHLENBQUM7UUFFbEY7Ozs7O1dBS0c7UUFDSCwrQ0FBbUIsR0FBbkIsVUFBb0IsR0FBZ0M7WUFDbEQsSUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztZQUN2QixJQUFNLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUM7WUFDekQsd0ZBQXdGO1lBQ3hGLDhEQUE4RDtZQUM5RCxJQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDNUQsVUFBQSxNQUFNLElBQUksT0FBQSxNQUFNLENBQUMsSUFBSSxLQUFLLE1BQU0sSUFBSSxNQUFNLENBQUMsUUFBUSxFQUF6QyxDQUF5QyxDQUFDLENBQUM7WUFDekQsSUFBSSxXQUFXLEtBQUssU0FBUyxFQUFFO2dCQUM3QixPQUFPLElBQUksQ0FBQzthQUNiO2lCQUFNO1lBQ0gsOERBQThEO1lBQzlELFdBQVcsQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7Z0JBQ3RFLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxLQUFLLFNBQVM7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TUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7eUJBQy9DOzZCQUFNOzRCQUNMLE9BQU8sU0FBUyxDQUFDO3lCQUNsQjtxQkFDRjtpQkFDRjs7Ozs7Ozs7O1NBQ0Y7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7UmVmZXJlbmNlfSBmcm9tICcuLi8uLi9pbXBvcnRzJztcbmltcG9ydCB7Q2xhc3NEZWNsYXJhdGlvbiwgaXNOYW1lZENsYXNzRGVjbGFyYXRpb24sIFJlZmxlY3Rpb25Ib3N0fSBmcm9tICcuLi8uLi9yZWZsZWN0aW9uJztcblxuaW1wb3J0IHtEaXJlY3RpdmVNZXRhLCBNZXRhZGF0YVJlYWRlciwgTmdNb2R1bGVNZXRhLCBQaXBlTWV0YX0gZnJvbSAnLi9hcGknO1xuaW1wb3J0IHtDbGFzc1Byb3BlcnR5TWFwcGluZ30gZnJvbSAnLi9wcm9wZXJ0eV9tYXBwaW5nJztcbmltcG9ydCB7ZXh0cmFjdERpcmVjdGl2ZVR5cGVDaGVja01ldGEsIGV4dHJhY3RSZWZlcmVuY2VzRnJvbVR5cGUsIHJlYWRTdHJpbmdBcnJheVR5cGUsIHJlYWRTdHJpbmdNYXBUeXBlLCByZWFkU3RyaW5nVHlwZX0gZnJvbSAnLi91dGlsJztcblxuLyoqXG4gKiBBIGBNZXRhZGF0YVJlYWRlcmAgdGhhdCBjYW4gcmVhZCBtZXRhZGF0YSBmcm9tIGAuZC50c2AgZmlsZXMsIHdoaWNoIGhhdmUgc3RhdGljIEl2eSBwcm9wZXJ0aWVzXG4gKiBmcm9tIGFuIHVwc3RyZWFtIGNvbXBpbGF0aW9uIGFscmVhZHkuXG4gKi9cbmV4cG9ydCBjbGFzcyBEdHNNZXRhZGF0YVJlYWRlciBpbXBsZW1lbnRzIE1ldGFkYXRhUmVhZGVyIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGVja2VyOiB0cy5UeXBlQ2hlY2tlciwgcHJpdmF0ZSByZWZsZWN0b3I6IFJlZmxlY3Rpb25Ib3N0KSB7fVxuXG4gIC8qKlxuICAgKiBSZWFkIHRoZSBtZXRhZGF0YSBmcm9tIGEgY2xhc3MgdGhhdCBoYXMgYWxyZWFkeSBiZWVuIGNvbXBpbGVkIHNvbWVob3cgKGVpdGhlciBpdCdzIGluIGEgLmQudHNcbiAgICogZmlsZSwgb3IgaW4gYSAudHMgZmlsZSB3aXRoIGEgaGFuZHdyaXR0ZW4gZGVmaW5pdGlvbikuXG4gICAqXG4gICAqIEBwYXJhbSByZWYgYFJlZmVyZW5jZWAgdG8gdGhlIGNsYXNzIG9mIGludGVyZXN0LCB3aXRoIHRoZSBjb250ZXh0IG9mIGhvdyBpdCB3YXMgb2J0YWluZWQuXG4gICAqL1xuICBnZXROZ01vZHVsZU1ldGFkYXRhKHJlZjogUmVmZXJlbmNlPENsYXNzRGVjbGFyYXRpb24+KTogTmdNb2R1bGVNZXRhfG51bGwge1xuICAgIGNvbnN0IGNsYXp6ID0gcmVmLm5vZGU7XG4gICAgY29uc3QgcmVzb2x1dGlvbkNvbnRleHQgPSBjbGF6ei5nZXRTb3VyY2VGaWxlKCkuZmlsZU5hbWU7XG4gICAgLy8gVGhpcyBvcGVyYXRpb24gaXMgZXhwbGljaXRseSBub3QgbWVtb2l6ZWQsIGFzIGl0IGRlcGVuZHMgb24gYHJlZi5vd25lZEJ5TW9kdWxlR3Vlc3NgLlxuICAgIC8vIFRPRE8oYWx4aHViKTogaW52ZXN0aWdhdGUgY2FjaGluZyBvZiAuZC50cyBtb2R1bGUgbWV0YWRhdGEuXG4gICAgY29uc3QgbmdNb2R1bGVEZWYgPSB0aGlzLnJlZmxlY3Rvci5nZXRNZW1iZXJzT2ZDbGFzcyhjbGF6eikuZmluZChcbiAgICAgICAgbWVtYmVyID0+IG1lbWJlci5uYW1lID09PSAnybVtb2QnICYmIG1lbWJlci5pc1N0YXRpYyk7XG4gICAgaWYgKG5nTW9kdWxlRGVmID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIC8vIFZhbGlkYXRlIHRoYXQgdGhlIHNoYXBlIG9mIHRoZSBuZ01vZHVsZURlZiB0eXBlIGlzIGNvcnJlY3QuXG4gICAgICAgIG5nTW9kdWxlRGVmLnR5cGUgPT09IG51bGwgfHwgIXRzLmlzVHlwZVJlZmVyZW5jZU5vZGUobmdNb2R1bGVEZWYudHlwZSkgfHxcbiAgICAgICAgbmdNb2R1bGVEZWYudHlwZS50eXBlQXJndW1lbnRzID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgbmdNb2R1bGVEZWYudHlwZS50eXBlQXJndW1lbnRzLmxlbmd0aCAhPT0gNCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy8gUmVhZCB0aGUgTW9kdWxlRGF0YSBvdXQgb2YgdGhlIHR5cGUgYXJndW1lbnRzLlxuICAgIGNvbnN0IFtfLCBkZWNsYXJhdGlvbk1ldGFkYXRhLCBpbXBvcnRNZXRhZGF0YSwgZXhwb3J0TWV0YWRhdGFdID0gbmdNb2R1bGVEZWYudHlwZS50eXBlQXJndW1lbnRzO1xuICAgIHJldHVybiB7XG4gICAgICByZWYsXG4gICAgICBkZWNsYXJhdGlvbnM6IGV4dHJhY3RSZWZlcmVuY2VzRnJvbVR5cGUoXG4gICAgICAgICAgdGhpcy5jaGVja2VyLCBkZWNsYXJhdGlvbk1ldGFkYXRhLCByZWYub3duZWRCeU1vZHVsZUd1ZXNzLCByZXNvbHV0aW9uQ29udGV4dCksXG4gICAgICBleHBvcnRzOiBleHRyYWN0UmVmZXJlbmNlc0Zyb21UeXBlKFxuICAgICAgICAgIHRoaXMuY2hlY2tlciwgZXhwb3J0TWV0YWRhdGEsIHJlZi5vd25lZEJ5TW9kdWxlR3Vlc3MsIHJlc29sdXRpb25Db250ZXh0KSxcbiAgICAgIGltcG9ydHM6IGV4dHJhY3RSZWZlcmVuY2VzRnJvbVR5cGUoXG4gICAgICAgICAgdGhpcy5jaGVja2VyLCBpbXBvcnRNZXRhZGF0YSwgcmVmLm93bmVkQnlNb2R1bGVHdWVzcywgcmVzb2x1dGlvbkNvbnRleHQpLFxuICAgICAgc2NoZW1hczogW10sXG4gICAgICByYXdEZWNsYXJhdGlvbnM6IG51bGwsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkIGRpcmVjdGl2ZSAob3IgY29tcG9uZW50KSBtZXRhZGF0YSBmcm9tIGEgcmVmZXJlbmNlZCBjbGFzcyBpbiBhIC5kLnRzIGZpbGUuXG4gICAqL1xuICBnZXREaXJlY3RpdmVNZXRhZGF0YShyZWY6IFJlZmVyZW5jZTxDbGFzc0RlY2xhcmF0aW9uPik6IERpcmVjdGl2ZU1ldGF8bnVsbCB7XG4gICAgY29uc3QgY2xhenogPSByZWYubm9kZTtcbiAgICBjb25zdCBkZWYgPSB0aGlzLnJlZmxlY3Rvci5nZXRNZW1iZXJzT2ZDbGFzcyhjbGF6eikuZmluZChcbiAgICAgICAgZmllbGQgPT4gZmllbGQuaXNTdGF0aWMgJiYgKGZpZWxkLm5hbWUgPT09ICfJtWNtcCcgfHwgZmllbGQubmFtZSA9PT0gJ8m1ZGlyJykpO1xuICAgIGlmIChkZWYgPT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gTm8gZGVmaW5pdGlvbiBjb3VsZCBiZSBmb3VuZC5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIGRlZi50eXBlID09PSBudWxsIHx8ICF0cy5pc1R5cGVSZWZlcmVuY2VOb2RlKGRlZi50eXBlKSB8fFxuICAgICAgICBkZWYudHlwZS50eXBlQXJndW1lbnRzID09PSB1bmRlZmluZWQgfHwgZGVmLnR5cGUudHlwZUFyZ3VtZW50cy5sZW5ndGggPCAyKSB7XG4gICAgICAvLyBUaGUgdHlwZSBtZXRhZGF0YSB3YXMgdGhlIHdyb25nIHNoYXBlLlxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgaW5wdXRzID1cbiAgICAgICAgQ2xhc3NQcm9wZXJ0eU1hcHBpbmcuZnJvbU1hcHBlZE9iamVjdChyZWFkU3RyaW5nTWFwVHlwZShkZWYudHlwZS50eXBlQXJndW1lbnRzWzNdKSk7XG4gICAgY29uc3Qgb3V0cHV0cyA9XG4gICAgICAgIENsYXNzUHJvcGVydHlNYXBwaW5nLmZyb21NYXBwZWRPYmplY3QocmVhZFN0cmluZ01hcFR5cGUoZGVmLnR5cGUudHlwZUFyZ3VtZW50c1s0XSkpO1xuICAgIHJldHVybiB7XG4gICAgICByZWYsXG4gICAgICBuYW1lOiBjbGF6ei5uYW1lLnRleHQsXG4gICAgICBpc0NvbXBvbmVudDogZGVmLm5hbWUgPT09ICfJtWNtcCcsXG4gICAgICBzZWxlY3RvcjogcmVhZFN0cmluZ1R5cGUoZGVmLnR5cGUudHlwZUFyZ3VtZW50c1sxXSksXG4gICAgICBleHBvcnRBczogcmVhZFN0cmluZ0FycmF5VHlwZShkZWYudHlwZS50eXBlQXJndW1lbnRzWzJdKSxcbiAgICAgIGlucHV0cyxcbiAgICAgIG91dHB1dHMsXG4gICAgICBxdWVyaWVzOiByZWFkU3RyaW5nQXJyYXlUeXBlKGRlZi50eXBlLnR5cGVBcmd1bWVudHNbNV0pLFxuICAgICAgLi4uZXh0cmFjdERpcmVjdGl2ZVR5cGVDaGVja01ldGEoY2xhenosIGlucHV0cywgdGhpcy5yZWZsZWN0b3IpLFxuICAgICAgYmFzZUNsYXNzOiByZWFkQmFzZUNsYXNzKGNsYXp6LCB0aGlzLmNoZWNrZXIsIHRoaXMucmVmbGVjdG9yKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFJlYWQgcGlwZSBtZXRhZGF0YSBmcm9tIGEgcmVmZXJlbmNlZCBjbGFzcyBpbiBhIC5kLnRzIGZpbGUuXG4gICAqL1xuICBnZXRQaXBlTWV0YWRhdGEocmVmOiBSZWZlcmVuY2U8Q2xhc3NEZWNsYXJhdGlvbj4pOiBQaXBlTWV0YXxudWxsIHtcbiAgICBjb25zdCBkZWYgPSB0aGlzLnJlZmxlY3Rvci5nZXRNZW1iZXJzT2ZDbGFzcyhyZWYubm9kZSkuZmluZChcbiAgICAgICAgZmllbGQgPT4gZmllbGQuaXNTdGF0aWMgJiYgZmllbGQubmFtZSA9PT0gJ8m1cGlwZScpO1xuICAgIGlmIChkZWYgPT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gTm8gZGVmaW5pdGlvbiBjb3VsZCBiZSBmb3VuZC5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIGRlZi50eXBlID09PSBudWxsIHx8ICF0cy5pc1R5cGVSZWZlcmVuY2VOb2RlKGRlZi50eXBlKSB8fFxuICAgICAgICBkZWYudHlwZS50eXBlQXJndW1lbnRzID09PSB1bmRlZmluZWQgfHwgZGVmLnR5cGUudHlwZUFyZ3VtZW50cy5sZW5ndGggPCAyKSB7XG4gICAgICAvLyBUaGUgdHlwZSBtZXRhZGF0YSB3YXMgdGhlIHdyb25nIHNoYXBlLlxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IHR5cGUgPSBkZWYudHlwZS50eXBlQXJndW1lbnRzWzFdO1xuICAgIGlmICghdHMuaXNMaXRlcmFsVHlwZU5vZGUodHlwZSkgfHwgIXRzLmlzU3RyaW5nTGl0ZXJhbCh0eXBlLmxpdGVyYWwpKSB7XG4gICAgICAvLyBUaGUgdHlwZSBtZXRhZGF0YSB3YXMgdGhlIHdyb25nIHR5cGUuXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgbmFtZSA9IHR5cGUubGl0ZXJhbC50ZXh0O1xuICAgIHJldHVybiB7cmVmLCBuYW1lfTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZWFkQmFzZUNsYXNzKGNsYXp6OiBDbGFzc0RlY2xhcmF0aW9uLCBjaGVja2VyOiB0cy5UeXBlQ2hlY2tlciwgcmVmbGVjdG9yOiBSZWZsZWN0aW9uSG9zdCk6XG4gICAgUmVmZXJlbmNlPENsYXNzRGVjbGFyYXRpb24+fCdkeW5hbWljJ3xudWxsIHtcbiAgaWYgKCFpc05hbWVkQ2xhc3NEZWNsYXJhdGlvbihjbGF6eikpIHtcbiAgICAvLyBUZWNobmljYWxseSB0aGlzIGlzIGFuIGVycm9yIGluIGEgLmQudHMgZmlsZSwgYnV0IGZvciB0aGUgcHVycG9zZXMgb2YgZmluZGluZyB0aGUgYmFzZSBjbGFzc1xuICAgIC8vIGl0J3MgaWdub3JlZC5cbiAgICByZXR1cm4gcmVmbGVjdG9yLmhhc0Jhc2VDbGFzcyhjbGF6eikgPyAnZHluYW1pYycgOiBudWxsO1xuICB9XG5cbiAgaWYgKGNsYXp6Lmhlcml0YWdlQ2xhdXNlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgZm9yIChjb25zdCBjbGF1c2Ugb2YgY2xhenouaGVyaXRhZ2VDbGF1c2VzKSB7XG4gICAgICBpZiAoY2xhdXNlLnRva2VuID09PSB0cy5TeW50YXhLaW5kLkV4dGVuZHNLZXl3b3JkKSB7XG4gICAgICAgIGNvbnN0IGJhc2VFeHByID0gY2xhdXNlLnR5cGVzWzBdLmV4cHJlc3Npb247XG4gICAgICAgIGxldCBzeW1ib2wgPSBjaGVja2VyLmdldFN5bWJvbEF0TG9jYXRpb24oYmFzZUV4cHIpO1xuICAgICAgICBpZiAoc3ltYm9sID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXR1cm4gJ2R5bmFtaWMnO1xuICAgICAgICB9IGVsc2UgaWYgKHN5bWJvbC5mbGFncyAmIHRzLlN5bWJvbEZsYWdzLkFsaWFzKSB7XG4gICAgICAgICAgc3ltYm9sID0gY2hlY2tlci5nZXRBbGlhc2VkU3ltYm9sKHN5bWJvbCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN5bWJvbC52YWx1ZURlY2xhcmF0aW9uICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgIGlzTmFtZWRDbGFzc0RlY2xhcmF0aW9uKHN5bWJvbC52YWx1ZURlY2xhcmF0aW9uKSkge1xuICAgICAgICAgIHJldHVybiBuZXcgUmVmZXJlbmNlKHN5bWJvbC52YWx1ZURlY2xhcmF0aW9uKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gJ2R5bmFtaWMnO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsO1xufVxuIl19
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
*/
|
|
8
8
|
/// <amd-module name="@angular/compiler-cli/src/ngtsc/metadata/src/inheritance" />
|
|
9
9
|
import { Reference } from '../../imports';
|
|
10
|
-
import { DirectiveMeta, MetadataReader } from '../../metadata';
|
|
11
10
|
import { ClassDeclaration } from '../../reflection';
|
|
11
|
+
import { DirectiveMeta, MetadataReader } from './api';
|
|
12
12
|
/**
|
|
13
13
|
* Given a reference to a directive, return a flattened version of its `DirectiveMeta` metadata
|
|
14
14
|
* which includes metadata from its entire inheritance chain.
|
|
@@ -11,13 +11,14 @@
|
|
|
11
11
|
if (v !== undefined) module.exports = v;
|
|
12
12
|
}
|
|
13
13
|
else if (typeof define === "function" && define.amd) {
|
|
14
|
-
define("@angular/compiler-cli/src/ngtsc/metadata/src/inheritance", ["require", "exports", "tslib"], factory);
|
|
14
|
+
define("@angular/compiler-cli/src/ngtsc/metadata/src/inheritance", ["require", "exports", "tslib", "@angular/compiler-cli/src/ngtsc/metadata/src/property_mapping"], factory);
|
|
15
15
|
}
|
|
16
16
|
})(function (require, exports) {
|
|
17
17
|
"use strict";
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
19
|
exports.flattenInheritedDirectiveMetadata = void 0;
|
|
20
20
|
var tslib_1 = require("tslib");
|
|
21
|
+
var property_mapping_1 = require("@angular/compiler-cli/src/ngtsc/metadata/src/property_mapping");
|
|
21
22
|
/**
|
|
22
23
|
* Given a reference to a directive, return a flattened version of its `DirectiveMeta` metadata
|
|
23
24
|
* which includes metadata from its entire inheritance chain.
|
|
@@ -31,13 +32,16 @@
|
|
|
31
32
|
if (topMeta === null) {
|
|
32
33
|
throw new Error("Metadata not found for directive: " + dir.debugName);
|
|
33
34
|
}
|
|
34
|
-
|
|
35
|
-
|
|
35
|
+
if (topMeta.baseClass === null) {
|
|
36
|
+
return topMeta;
|
|
37
|
+
}
|
|
36
38
|
var coercedInputFields = new Set();
|
|
37
39
|
var undeclaredInputFields = new Set();
|
|
38
40
|
var restrictedInputFields = new Set();
|
|
39
41
|
var stringLiteralInputFields = new Set();
|
|
40
42
|
var isDynamic = false;
|
|
43
|
+
var inputs = property_mapping_1.ClassPropertyMapping.empty();
|
|
44
|
+
var outputs = property_mapping_1.ClassPropertyMapping.empty();
|
|
41
45
|
var addMetadata = function (meta) {
|
|
42
46
|
var e_1, _a, e_2, _b, e_3, _c, e_4, _d;
|
|
43
47
|
if (meta.baseClass === 'dynamic') {
|
|
@@ -53,8 +57,8 @@
|
|
|
53
57
|
isDynamic = true;
|
|
54
58
|
}
|
|
55
59
|
}
|
|
56
|
-
inputs =
|
|
57
|
-
outputs =
|
|
60
|
+
inputs = property_mapping_1.ClassPropertyMapping.merge(inputs, meta.inputs);
|
|
61
|
+
outputs = property_mapping_1.ClassPropertyMapping.merge(outputs, meta.outputs);
|
|
58
62
|
try {
|
|
59
63
|
for (var _e = tslib_1.__values(meta.coercedInputFields), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
60
64
|
var coercedInputField = _f.value;
|
|
@@ -118,4 +122,4 @@
|
|
|
118
122
|
}
|
|
119
123
|
exports.flattenInheritedDirectiveMetadata = flattenInheritedDirectiveMetadata;
|
|
120
124
|
});
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5oZXJpdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL21ldGFkYXRhL3NyYy9pbmhlcml0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7O0lBTUgsa0dBQTJFO0lBRTNFOzs7Ozs7O09BT0c7SUFDSCxTQUFnQixpQ0FBaUMsQ0FDN0MsTUFBc0IsRUFBRSxHQUFnQztRQUMxRCxJQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakQsSUFBSSxPQUFPLEtBQUssSUFBSSxFQUFFO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXFDLEdBQUcsQ0FBQyxTQUFXLENBQUMsQ0FBQztTQUN2RTtRQUNELElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxJQUFJLEVBQUU7WUFDOUIsT0FBTyxPQUFPLENBQUM7U0FDaEI7UUFFRCxJQUFNLGtCQUFrQixHQUFHLElBQUksR0FBRyxFQUFxQixDQUFDO1FBQ3hELElBQU0scUJBQXFCLEdBQUcsSUFBSSxHQUFHLEVBQXFCLENBQUM7UUFDM0QsSUFBTSxxQkFBcUIsR0FBRyxJQUFJLEdBQUcsRUFBcUIsQ0FBQztRQUMzRCxJQUFNLHdCQUF3QixHQUFHLElBQUksR0FBRyxFQUFxQixDQUFDO1FBQzlELElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLE1BQU0sR0FBRyx1Q0FBb0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMxQyxJQUFJLE9BQU8sR0FBRyx1Q0FBb0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUUzQyxJQUFNLFdBQVcsR0FBRyxVQUFDLElBQW1COztZQUN0QyxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFO2dCQUNoQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2FBQ2xCO2lCQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLEVBQUU7Z0JBQ2xDLElBQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQzdELElBQUksUUFBUSxLQUFLLElBQUksRUFBRTtvQkFDckIsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUN2QjtxQkFBTTtvQkFDTCxzRUFBc0U7b0JBQ3RFLFNBQVMsR0FBRyxJQUFJLENBQUM7aUJBQ2xCO2FBQ0Y7WUFFRCxNQUFNLEdBQUcsdUNBQW9CLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDekQsT0FBTyxHQUFHLHVDQUFvQixDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDOztnQkFFNUQsS0FBZ0MsSUFBQSxLQUFBLGlCQUFBLElBQUksQ0FBQyxrQkFBa0IsQ0FBQSxnQkFBQSw0QkFBRTtvQkFBcEQsSUFBTSxpQkFBaUIsV0FBQTtvQkFDMUIsa0JBQWtCLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7aUJBQzNDOzs7Ozs7Ozs7O2dCQUNELEtBQW1DLElBQUEsS0FBQSxpQkFBQSxJQUFJLENBQUMscUJBQXFCLENBQUEsZ0JBQUEsNEJBQUU7b0JBQTFELElBQU0sb0JBQW9CLFdBQUE7b0JBQzdCLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO2lCQUNqRDs7Ozs7Ozs7OztnQkFDRCxLQUFtQyxJQUFBLEtBQUEsaUJBQUEsSUFBSSxDQUFDLHFCQUFxQixDQUFBLGdCQUFBLDRCQUFFO29CQUExRCxJQUFNLG9CQUFvQixXQUFBO29CQUM3QixxQkFBcUIsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztpQkFDakQ7Ozs7Ozs7Ozs7Z0JBQ0QsS0FBb0IsSUFBQSxLQUFBLGlCQUFBLElBQUksQ0FBQyx3QkFBd0IsQ0FBQSxnQkFBQSw0QkFBRTtvQkFBOUMsSUFBTSxLQUFLLFdBQUE7b0JBQ2Qsd0JBQXdCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUNyQzs7Ozs7Ozs7O1FBQ0gsQ0FBQyxDQUFDO1FBRUYsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXJCLDZDQUNLLE9BQU8sS0FDVixNQUFNLFFBQUE7WUFDTixPQUFPLFNBQUE7WUFDUCxrQkFBa0Isb0JBQUE7WUFDbEIscUJBQXFCLHVCQUFBO1lBQ3JCLHFCQUFxQix1QkFBQTtZQUNyQix3QkFBd0IsMEJBQUEsRUFDeEIsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQ3ZDO0lBQ0osQ0FBQztJQTVERCw4RUE0REMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtSZWZlcmVuY2V9IGZyb20gJy4uLy4uL2ltcG9ydHMnO1xuaW1wb3J0IHtDbGFzc0RlY2xhcmF0aW9ufSBmcm9tICcuLi8uLi9yZWZsZWN0aW9uJztcblxuaW1wb3J0IHtEaXJlY3RpdmVNZXRhLCBNZXRhZGF0YVJlYWRlcn0gZnJvbSAnLi9hcGknO1xuaW1wb3J0IHtDbGFzc1Byb3BlcnR5TWFwcGluZywgQ2xhc3NQcm9wZXJ0eU5hbWV9IGZyb20gJy4vcHJvcGVydHlfbWFwcGluZyc7XG5cbi8qKlxuICogR2l2ZW4gYSByZWZlcmVuY2UgdG8gYSBkaXJlY3RpdmUsIHJldHVybiBhIGZsYXR0ZW5lZCB2ZXJzaW9uIG9mIGl0cyBgRGlyZWN0aXZlTWV0YWAgbWV0YWRhdGFcbiAqIHdoaWNoIGluY2x1ZGVzIG1ldGFkYXRhIGZyb20gaXRzIGVudGlyZSBpbmhlcml0YW5jZSBjaGFpbi5cbiAqXG4gKiBUaGUgcmV0dXJuZWQgYERpcmVjdGl2ZU1ldGFgIHdpbGwgZWl0aGVyIGhhdmUgYGJhc2VDbGFzczogbnVsbGAgaWYgdGhlIGluaGVyaXRhbmNlIGNoYWluIGNvdWxkIGJlXG4gKiBmdWxseSByZXNvbHZlZCwgb3IgYGJhc2VDbGFzczogJ2R5bmFtaWMnYCBpZiB0aGUgaW5oZXJpdGFuY2UgY2hhaW4gY291bGQgbm90IGJlIGNvbXBsZXRlbHlcbiAqIGZvbGxvd2VkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmxhdHRlbkluaGVyaXRlZERpcmVjdGl2ZU1ldGFkYXRhKFxuICAgIHJlYWRlcjogTWV0YWRhdGFSZWFkZXIsIGRpcjogUmVmZXJlbmNlPENsYXNzRGVjbGFyYXRpb24+KTogRGlyZWN0aXZlTWV0YSB7XG4gIGNvbnN0IHRvcE1ldGEgPSByZWFkZXIuZ2V0RGlyZWN0aXZlTWV0YWRhdGEoZGlyKTtcbiAgaWYgKHRvcE1ldGEgPT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE1ldGFkYXRhIG5vdCBmb3VuZCBmb3IgZGlyZWN0aXZlOiAke2Rpci5kZWJ1Z05hbWV9YCk7XG4gIH1cbiAgaWYgKHRvcE1ldGEuYmFzZUNsYXNzID09PSBudWxsKSB7XG4gICAgcmV0dXJuIHRvcE1ldGE7XG4gIH1cblxuICBjb25zdCBjb2VyY2VkSW5wdXRGaWVsZHMgPSBuZXcgU2V0PENsYXNzUHJvcGVydHlOYW1lPigpO1xuICBjb25zdCB1bmRlY2xhcmVkSW5wdXRGaWVsZHMgPSBuZXcgU2V0PENsYXNzUHJvcGVydHlOYW1lPigpO1xuICBjb25zdCByZXN0cmljdGVkSW5wdXRGaWVsZHMgPSBuZXcgU2V0PENsYXNzUHJvcGVydHlOYW1lPigpO1xuICBjb25zdCBzdHJpbmdMaXRlcmFsSW5wdXRGaWVsZHMgPSBuZXcgU2V0PENsYXNzUHJvcGVydHlOYW1lPigpO1xuICBsZXQgaXNEeW5hbWljID0gZmFsc2U7XG4gIGxldCBpbnB1dHMgPSBDbGFzc1Byb3BlcnR5TWFwcGluZy5lbXB0eSgpO1xuICBsZXQgb3V0cHV0cyA9IENsYXNzUHJvcGVydHlNYXBwaW5nLmVtcHR5KCk7XG5cbiAgY29uc3QgYWRkTWV0YWRhdGEgPSAobWV0YTogRGlyZWN0aXZlTWV0YSk6IHZvaWQgPT4ge1xuICAgIGlmIChtZXRhLmJhc2VDbGFzcyA9PT0gJ2R5bmFtaWMnKSB7XG4gICAgICBpc0R5bmFtaWMgPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAobWV0YS5iYXNlQ2xhc3MgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGJhc2VNZXRhID0gcmVhZGVyLmdldERpcmVjdGl2ZU1ldGFkYXRhKG1ldGEuYmFzZUNsYXNzKTtcbiAgICAgIGlmIChiYXNlTWV0YSAhPT0gbnVsbCkge1xuICAgICAgICBhZGRNZXRhZGF0YShiYXNlTWV0YSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBNaXNzaW5nIG1ldGFkYXRhIGZvciB0aGUgYmFzZSBjbGFzcyBtZWFucyBpdCdzIGVmZmVjdGl2ZWx5IGR5bmFtaWMuXG4gICAgICAgIGlzRHluYW1pYyA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW5wdXRzID0gQ2xhc3NQcm9wZXJ0eU1hcHBpbmcubWVyZ2UoaW5wdXRzLCBtZXRhLmlucHV0cyk7XG4gICAgb3V0cHV0cyA9IENsYXNzUHJvcGVydHlNYXBwaW5nLm1lcmdlKG91dHB1dHMsIG1ldGEub3V0cHV0cyk7XG5cbiAgICBmb3IgKGNvbnN0IGNvZXJjZWRJbnB1dEZpZWxkIG9mIG1ldGEuY29lcmNlZElucHV0RmllbGRzKSB7XG4gICAgICBjb2VyY2VkSW5wdXRGaWVsZHMuYWRkKGNvZXJjZWRJbnB1dEZpZWxkKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCB1bmRlY2xhcmVkSW5wdXRGaWVsZCBvZiBtZXRhLnVuZGVjbGFyZWRJbnB1dEZpZWxkcykge1xuICAgICAgdW5kZWNsYXJlZElucHV0RmllbGRzLmFkZCh1bmRlY2xhcmVkSW5wdXRGaWVsZCk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgcmVzdHJpY3RlZElucHV0RmllbGQgb2YgbWV0YS5yZXN0cmljdGVkSW5wdXRGaWVsZHMpIHtcbiAgICAgIHJlc3RyaWN0ZWRJbnB1dEZpZWxkcy5hZGQocmVzdHJpY3RlZElucHV0RmllbGQpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIG1ldGEuc3RyaW5nTGl0ZXJhbElucHV0RmllbGRzKSB7XG4gICAgICBzdHJpbmdMaXRlcmFsSW5wdXRGaWVsZHMuYWRkKGZpZWxkKTtcbiAgICB9XG4gIH07XG5cbiAgYWRkTWV0YWRhdGEodG9wTWV0YSk7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi50b3BNZXRhLFxuICAgIGlucHV0cyxcbiAgICBvdXRwdXRzLFxuICAgIGNvZXJjZWRJbnB1dEZpZWxkcyxcbiAgICB1bmRlY2xhcmVkSW5wdXRGaWVsZHMsXG4gICAgcmVzdHJpY3RlZElucHV0RmllbGRzLFxuICAgIHN0cmluZ0xpdGVyYWxJbnB1dEZpZWxkcyxcbiAgICBiYXNlQ2xhc3M6IGlzRHluYW1pYyA/ICdkeW5hbWljJyA6IG51bGwsXG4gIH07XG59XG4iXX0=
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Google LLC All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
+
* found in the LICENSE file at https://angular.io/license
|
|
7
|
+
*/
|
|
8
|
+
/// <amd-module name="@angular/compiler-cli/src/ngtsc/metadata/src/property_mapping" />
|
|
9
|
+
import { InputOutputPropertySet } from '@angular/compiler';
|
|
10
|
+
/**
|
|
11
|
+
* The name of a class property that backs an input or output declared by a directive or component.
|
|
12
|
+
*
|
|
13
|
+
* This type exists for documentation only.
|
|
14
|
+
*/
|
|
15
|
+
export declare type ClassPropertyName = string;
|
|
16
|
+
/**
|
|
17
|
+
* The name by which an input or output of a directive or component is bound in an Angular template.
|
|
18
|
+
*
|
|
19
|
+
* This type exists for documentation only.
|
|
20
|
+
*/
|
|
21
|
+
export declare type BindingPropertyName = string;
|
|
22
|
+
/**
|
|
23
|
+
* An input or output of a directive that has both a named JavaScript class property on a component
|
|
24
|
+
* or directive class, as well as an Angular template property name used for binding.
|
|
25
|
+
*/
|
|
26
|
+
export interface InputOrOutput {
|
|
27
|
+
/**
|
|
28
|
+
* The name of the JavaScript property on the component or directive instance for this input or
|
|
29
|
+
* output.
|
|
30
|
+
*/
|
|
31
|
+
readonly classPropertyName: ClassPropertyName;
|
|
32
|
+
/**
|
|
33
|
+
* The property name used to bind this input or output in an Angular template.
|
|
34
|
+
*/
|
|
35
|
+
readonly bindingPropertyName: BindingPropertyName;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* A mapping of component property and template binding property names, for example containing the
|
|
39
|
+
* inputs of a particular directive or component.
|
|
40
|
+
*
|
|
41
|
+
* A single component property has exactly one input/output annotation (and therefore one binding
|
|
42
|
+
* property name) associated with it, but the same binding property name may be shared across many
|
|
43
|
+
* component property names.
|
|
44
|
+
*
|
|
45
|
+
* Allows bidirectional querying of the mapping - looking up all inputs/outputs with a given
|
|
46
|
+
* property name, or mapping from a specific class property to its binding property name.
|
|
47
|
+
*/
|
|
48
|
+
export declare class ClassPropertyMapping implements InputOutputPropertySet {
|
|
49
|
+
/**
|
|
50
|
+
* Mapping from class property names to the single `InputOrOutput` for that class property.
|
|
51
|
+
*/
|
|
52
|
+
private forwardMap;
|
|
53
|
+
/**
|
|
54
|
+
* Mapping from property names to one or more `InputOrOutput`s which share that name.
|
|
55
|
+
*/
|
|
56
|
+
private reverseMap;
|
|
57
|
+
private constructor();
|
|
58
|
+
/**
|
|
59
|
+
* Construct a `ClassPropertyMapping` with no entries.
|
|
60
|
+
*/
|
|
61
|
+
static empty(): ClassPropertyMapping;
|
|
62
|
+
/**
|
|
63
|
+
* Construct a `ClassPropertyMapping` from a primitive JS object which maps class property names
|
|
64
|
+
* to either binding property names or an array that contains both names, which is used in on-disk
|
|
65
|
+
* metadata formats (e.g. in .d.ts files).
|
|
66
|
+
*/
|
|
67
|
+
static fromMappedObject(obj: {
|
|
68
|
+
[classPropertyName: string]: BindingPropertyName | [ClassPropertyName, BindingPropertyName];
|
|
69
|
+
}): ClassPropertyMapping;
|
|
70
|
+
/**
|
|
71
|
+
* Merge two mappings into one, with class properties from `b` taking precedence over class
|
|
72
|
+
* properties from `a`.
|
|
73
|
+
*/
|
|
74
|
+
static merge(a: ClassPropertyMapping, b: ClassPropertyMapping): ClassPropertyMapping;
|
|
75
|
+
/**
|
|
76
|
+
* All class property names mapped in this mapping.
|
|
77
|
+
*/
|
|
78
|
+
get classPropertyNames(): ClassPropertyName[];
|
|
79
|
+
/**
|
|
80
|
+
* All binding property names mapped in this mapping.
|
|
81
|
+
*/
|
|
82
|
+
get propertyNames(): BindingPropertyName[];
|
|
83
|
+
/**
|
|
84
|
+
* Check whether a mapping for the given property name exists.
|
|
85
|
+
*/
|
|
86
|
+
hasBindingPropertyName(propertyName: BindingPropertyName): boolean;
|
|
87
|
+
/**
|
|
88
|
+
* Lookup all `InputOrOutput`s that use this `propertyName`.
|
|
89
|
+
*/
|
|
90
|
+
getByBindingPropertyName(propertyName: string): ReadonlyArray<InputOrOutput> | null;
|
|
91
|
+
/**
|
|
92
|
+
* Lookup the `InputOrOutput` associated with a `classPropertyName`.
|
|
93
|
+
*/
|
|
94
|
+
getByClassPropertyName(classPropertyName: string): InputOrOutput | null;
|
|
95
|
+
/**
|
|
96
|
+
* Convert this mapping to a primitive JS object which maps each class property directly to the
|
|
97
|
+
* binding property name associated with it.
|
|
98
|
+
*/
|
|
99
|
+
toDirectMappedObject(): {
|
|
100
|
+
[classPropertyName: string]: BindingPropertyName;
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* Convert this mapping to a primitive JS object which maps each class property either to itself
|
|
104
|
+
* (for cases where the binding property name is the same) or to an array which contains both
|
|
105
|
+
* names if they differ.
|
|
106
|
+
*
|
|
107
|
+
* This object format is used when mappings are serialized (for example into .d.ts files).
|
|
108
|
+
*/
|
|
109
|
+
toJointMappedObject(): {
|
|
110
|
+
[classPropertyName: string]: BindingPropertyName | [BindingPropertyName, ClassPropertyName];
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* Implement the iterator protocol and return entry objects which contain the class and binding
|
|
114
|
+
* property names (and are useful for destructuring).
|
|
115
|
+
*/
|
|
116
|
+
[Symbol.iterator](): IterableIterator<[ClassPropertyName, BindingPropertyName]>;
|
|
117
|
+
}
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Google LLC All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
+
* found in the LICENSE file at https://angular.io/license
|
|
7
|
+
*/
|
|
8
|
+
(function (factory) {
|
|
9
|
+
if (typeof module === "object" && typeof module.exports === "object") {
|
|
10
|
+
var v = factory(require, exports);
|
|
11
|
+
if (v !== undefined) module.exports = v;
|
|
12
|
+
}
|
|
13
|
+
else if (typeof define === "function" && define.amd) {
|
|
14
|
+
define("@angular/compiler-cli/src/ngtsc/metadata/src/property_mapping", ["require", "exports", "tslib"], factory);
|
|
15
|
+
}
|
|
16
|
+
})(function (require, exports) {
|
|
17
|
+
"use strict";
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.ClassPropertyMapping = void 0;
|
|
20
|
+
var tslib_1 = require("tslib");
|
|
21
|
+
/**
|
|
22
|
+
* A mapping of component property and template binding property names, for example containing the
|
|
23
|
+
* inputs of a particular directive or component.
|
|
24
|
+
*
|
|
25
|
+
* A single component property has exactly one input/output annotation (and therefore one binding
|
|
26
|
+
* property name) associated with it, but the same binding property name may be shared across many
|
|
27
|
+
* component property names.
|
|
28
|
+
*
|
|
29
|
+
* Allows bidirectional querying of the mapping - looking up all inputs/outputs with a given
|
|
30
|
+
* property name, or mapping from a specific class property to its binding property name.
|
|
31
|
+
*/
|
|
32
|
+
var ClassPropertyMapping = /** @class */ (function () {
|
|
33
|
+
function ClassPropertyMapping(forwardMap) {
|
|
34
|
+
this.forwardMap = forwardMap;
|
|
35
|
+
this.reverseMap = reverseMapFromForwardMap(forwardMap);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Construct a `ClassPropertyMapping` with no entries.
|
|
39
|
+
*/
|
|
40
|
+
ClassPropertyMapping.empty = function () {
|
|
41
|
+
return new ClassPropertyMapping(new Map());
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Construct a `ClassPropertyMapping` from a primitive JS object which maps class property names
|
|
45
|
+
* to either binding property names or an array that contains both names, which is used in on-disk
|
|
46
|
+
* metadata formats (e.g. in .d.ts files).
|
|
47
|
+
*/
|
|
48
|
+
ClassPropertyMapping.fromMappedObject = function (obj) {
|
|
49
|
+
var e_1, _a;
|
|
50
|
+
var forwardMap = new Map();
|
|
51
|
+
try {
|
|
52
|
+
for (var _b = tslib_1.__values(Object.keys(obj)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
53
|
+
var classPropertyName = _c.value;
|
|
54
|
+
var value = obj[classPropertyName];
|
|
55
|
+
var bindingPropertyName = Array.isArray(value) ? value[0] : value;
|
|
56
|
+
var inputOrOutput = { classPropertyName: classPropertyName, bindingPropertyName: bindingPropertyName };
|
|
57
|
+
forwardMap.set(classPropertyName, inputOrOutput);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
61
|
+
finally {
|
|
62
|
+
try {
|
|
63
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
64
|
+
}
|
|
65
|
+
finally { if (e_1) throw e_1.error; }
|
|
66
|
+
}
|
|
67
|
+
return new ClassPropertyMapping(forwardMap);
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Merge two mappings into one, with class properties from `b` taking precedence over class
|
|
71
|
+
* properties from `a`.
|
|
72
|
+
*/
|
|
73
|
+
ClassPropertyMapping.merge = function (a, b) {
|
|
74
|
+
var e_2, _a;
|
|
75
|
+
var forwardMap = new Map(a.forwardMap.entries());
|
|
76
|
+
try {
|
|
77
|
+
for (var _b = tslib_1.__values(b.forwardMap), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
78
|
+
var _d = tslib_1.__read(_c.value, 2), classPropertyName = _d[0], inputOrOutput = _d[1];
|
|
79
|
+
forwardMap.set(classPropertyName, inputOrOutput);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
83
|
+
finally {
|
|
84
|
+
try {
|
|
85
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
86
|
+
}
|
|
87
|
+
finally { if (e_2) throw e_2.error; }
|
|
88
|
+
}
|
|
89
|
+
return new ClassPropertyMapping(forwardMap);
|
|
90
|
+
};
|
|
91
|
+
Object.defineProperty(ClassPropertyMapping.prototype, "classPropertyNames", {
|
|
92
|
+
/**
|
|
93
|
+
* All class property names mapped in this mapping.
|
|
94
|
+
*/
|
|
95
|
+
get: function () {
|
|
96
|
+
return Array.from(this.forwardMap.keys());
|
|
97
|
+
},
|
|
98
|
+
enumerable: false,
|
|
99
|
+
configurable: true
|
|
100
|
+
});
|
|
101
|
+
Object.defineProperty(ClassPropertyMapping.prototype, "propertyNames", {
|
|
102
|
+
/**
|
|
103
|
+
* All binding property names mapped in this mapping.
|
|
104
|
+
*/
|
|
105
|
+
get: function () {
|
|
106
|
+
return Array.from(this.reverseMap.keys());
|
|
107
|
+
},
|
|
108
|
+
enumerable: false,
|
|
109
|
+
configurable: true
|
|
110
|
+
});
|
|
111
|
+
/**
|
|
112
|
+
* Check whether a mapping for the given property name exists.
|
|
113
|
+
*/
|
|
114
|
+
ClassPropertyMapping.prototype.hasBindingPropertyName = function (propertyName) {
|
|
115
|
+
return this.reverseMap.has(propertyName);
|
|
116
|
+
};
|
|
117
|
+
/**
|
|
118
|
+
* Lookup all `InputOrOutput`s that use this `propertyName`.
|
|
119
|
+
*/
|
|
120
|
+
ClassPropertyMapping.prototype.getByBindingPropertyName = function (propertyName) {
|
|
121
|
+
return this.reverseMap.has(propertyName) ? this.reverseMap.get(propertyName) : null;
|
|
122
|
+
};
|
|
123
|
+
/**
|
|
124
|
+
* Lookup the `InputOrOutput` associated with a `classPropertyName`.
|
|
125
|
+
*/
|
|
126
|
+
ClassPropertyMapping.prototype.getByClassPropertyName = function (classPropertyName) {
|
|
127
|
+
return this.forwardMap.has(classPropertyName) ? this.forwardMap.get(classPropertyName) : null;
|
|
128
|
+
};
|
|
129
|
+
/**
|
|
130
|
+
* Convert this mapping to a primitive JS object which maps each class property directly to the
|
|
131
|
+
* binding property name associated with it.
|
|
132
|
+
*/
|
|
133
|
+
ClassPropertyMapping.prototype.toDirectMappedObject = function () {
|
|
134
|
+
var e_3, _a;
|
|
135
|
+
var obj = {};
|
|
136
|
+
try {
|
|
137
|
+
for (var _b = tslib_1.__values(this.forwardMap), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
138
|
+
var _d = tslib_1.__read(_c.value, 2), classPropertyName = _d[0], inputOrOutput = _d[1];
|
|
139
|
+
obj[classPropertyName] = inputOrOutput.bindingPropertyName;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
143
|
+
finally {
|
|
144
|
+
try {
|
|
145
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
146
|
+
}
|
|
147
|
+
finally { if (e_3) throw e_3.error; }
|
|
148
|
+
}
|
|
149
|
+
return obj;
|
|
150
|
+
};
|
|
151
|
+
/**
|
|
152
|
+
* Convert this mapping to a primitive JS object which maps each class property either to itself
|
|
153
|
+
* (for cases where the binding property name is the same) or to an array which contains both
|
|
154
|
+
* names if they differ.
|
|
155
|
+
*
|
|
156
|
+
* This object format is used when mappings are serialized (for example into .d.ts files).
|
|
157
|
+
*/
|
|
158
|
+
ClassPropertyMapping.prototype.toJointMappedObject = function () {
|
|
159
|
+
var e_4, _a;
|
|
160
|
+
var obj = {};
|
|
161
|
+
try {
|
|
162
|
+
for (var _b = tslib_1.__values(this.forwardMap), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
163
|
+
var _d = tslib_1.__read(_c.value, 2), classPropertyName = _d[0], inputOrOutput = _d[1];
|
|
164
|
+
if (inputOrOutput.bindingPropertyName === classPropertyName) {
|
|
165
|
+
obj[classPropertyName] = inputOrOutput.bindingPropertyName;
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
obj[classPropertyName] = [inputOrOutput.bindingPropertyName, classPropertyName];
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
173
|
+
finally {
|
|
174
|
+
try {
|
|
175
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
176
|
+
}
|
|
177
|
+
finally { if (e_4) throw e_4.error; }
|
|
178
|
+
}
|
|
179
|
+
return obj;
|
|
180
|
+
};
|
|
181
|
+
/**
|
|
182
|
+
* Implement the iterator protocol and return entry objects which contain the class and binding
|
|
183
|
+
* property names (and are useful for destructuring).
|
|
184
|
+
*/
|
|
185
|
+
ClassPropertyMapping.prototype[Symbol.iterator] = function () {
|
|
186
|
+
var _a, _b, _c, classPropertyName, inputOrOutput, e_5_1;
|
|
187
|
+
var e_5, _d;
|
|
188
|
+
return tslib_1.__generator(this, function (_e) {
|
|
189
|
+
switch (_e.label) {
|
|
190
|
+
case 0:
|
|
191
|
+
_e.trys.push([0, 5, 6, 7]);
|
|
192
|
+
_a = tslib_1.__values(this.forwardMap.entries()), _b = _a.next();
|
|
193
|
+
_e.label = 1;
|
|
194
|
+
case 1:
|
|
195
|
+
if (!!_b.done) return [3 /*break*/, 4];
|
|
196
|
+
_c = tslib_1.__read(_b.value, 2), classPropertyName = _c[0], inputOrOutput = _c[1];
|
|
197
|
+
return [4 /*yield*/, [classPropertyName, inputOrOutput.bindingPropertyName]];
|
|
198
|
+
case 2:
|
|
199
|
+
_e.sent();
|
|
200
|
+
_e.label = 3;
|
|
201
|
+
case 3:
|
|
202
|
+
_b = _a.next();
|
|
203
|
+
return [3 /*break*/, 1];
|
|
204
|
+
case 4: return [3 /*break*/, 7];
|
|
205
|
+
case 5:
|
|
206
|
+
e_5_1 = _e.sent();
|
|
207
|
+
e_5 = { error: e_5_1 };
|
|
208
|
+
return [3 /*break*/, 7];
|
|
209
|
+
case 6:
|
|
210
|
+
try {
|
|
211
|
+
if (_b && !_b.done && (_d = _a.return)) _d.call(_a);
|
|
212
|
+
}
|
|
213
|
+
finally { if (e_5) throw e_5.error; }
|
|
214
|
+
return [7 /*endfinally*/];
|
|
215
|
+
case 7: return [2 /*return*/];
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
};
|
|
219
|
+
return ClassPropertyMapping;
|
|
220
|
+
}());
|
|
221
|
+
exports.ClassPropertyMapping = ClassPropertyMapping;
|
|
222
|
+
function reverseMapFromForwardMap(forwardMap) {
|
|
223
|
+
var e_6, _a;
|
|
224
|
+
var reverseMap = new Map();
|
|
225
|
+
try {
|
|
226
|
+
for (var forwardMap_1 = tslib_1.__values(forwardMap), forwardMap_1_1 = forwardMap_1.next(); !forwardMap_1_1.done; forwardMap_1_1 = forwardMap_1.next()) {
|
|
227
|
+
var _b = tslib_1.__read(forwardMap_1_1.value, 2), _ = _b[0], inputOrOutput = _b[1];
|
|
228
|
+
if (!reverseMap.has(inputOrOutput.bindingPropertyName)) {
|
|
229
|
+
reverseMap.set(inputOrOutput.bindingPropertyName, []);
|
|
230
|
+
}
|
|
231
|
+
reverseMap.get(inputOrOutput.bindingPropertyName).push(inputOrOutput);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
|
235
|
+
finally {
|
|
236
|
+
try {
|
|
237
|
+
if (forwardMap_1_1 && !forwardMap_1_1.done && (_a = forwardMap_1.return)) _a.call(forwardMap_1);
|
|
238
|
+
}
|
|
239
|
+
finally { if (e_6) throw e_6.error; }
|
|
240
|
+
}
|
|
241
|
+
return reverseMap;
|
|
242
|
+
}
|
|
243
|
+
});
|
|
244
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHlfbWFwcGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvbWV0YWRhdGEvc3JjL3Byb3BlcnR5X21hcHBpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7OztJQW1DSDs7Ozs7Ozs7OztPQVVHO0lBQ0g7UUFXRSw4QkFBb0IsVUFBaUQ7WUFDbkUsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7WUFDN0IsSUFBSSxDQUFDLFVBQVUsR0FBRyx3QkFBd0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBRUQ7O1dBRUc7UUFDSSwwQkFBSyxHQUFaO1lBQ0UsT0FBTyxJQUFJLG9CQUFvQixDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBRUQ7Ozs7V0FJRztRQUNJLHFDQUFnQixHQUF2QixVQUF3QixHQUV2Qjs7WUFDQyxJQUFNLFVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBb0MsQ0FBQzs7Z0JBRS9ELEtBQWdDLElBQUEsS0FBQSxpQkFBQSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBLGdCQUFBLDRCQUFFO29CQUE3QyxJQUFNLGlCQUFpQixXQUFBO29CQUMxQixJQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztvQkFDckMsSUFBTSxtQkFBbUIsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztvQkFDcEUsSUFBTSxhQUFhLEdBQWtCLEVBQUMsaUJBQWlCLG1CQUFBLEVBQUUsbUJBQW1CLHFCQUFBLEVBQUMsQ0FBQztvQkFDOUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIs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QWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7SW5wdXRPdXRwdXRQcm9wZXJ0eVNldH0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuXG4vKipcbiAqIFRoZSBuYW1lIG9mIGEgY2xhc3MgcHJvcGVydHkgdGhhdCBiYWNrcyBhbiBpbnB1dCBvciBvdXRwdXQgZGVjbGFyZWQgYnkgYSBkaXJlY3RpdmUgb3IgY29tcG9uZW50LlxuICpcbiAqIFRoaXMgdHlwZSBleGlzdHMgZm9yIGRvY3VtZW50YXRpb24gb25seS5cbiAqL1xuZXhwb3J0IHR5cGUgQ2xhc3NQcm9wZXJ0eU5hbWUgPSBzdHJpbmc7XG5cbi8qKlxuICogVGhlIG5hbWUgYnkgd2hpY2ggYW4gaW5wdXQgb3Igb3V0cHV0IG9mIGEgZGlyZWN0aXZlIG9yIGNvbXBvbmVudCBpcyBib3VuZCBpbiBhbiBBbmd1bGFyIHRlbXBsYXRlLlxuICpcbiAqIFRoaXMgdHlwZSBleGlzdHMgZm9yIGRvY3VtZW50YXRpb24gb25seS5cbiAqL1xuZXhwb3J0IHR5cGUgQmluZGluZ1Byb3BlcnR5TmFtZSA9IHN0cmluZztcblxuLyoqXG4gKiBBbiBpbnB1dCBvciBvdXRwdXQgb2YgYSBkaXJlY3RpdmUgdGhhdCBoYXMgYm90aCBhIG5hbWVkIEphdmFTY3JpcHQgY2xhc3MgcHJvcGVydHkgb24gYSBjb21wb25lbnRcbiAqIG9yIGRpcmVjdGl2ZSBjbGFzcywgYXMgd2VsbCBhcyBhbiBBbmd1bGFyIHRlbXBsYXRlIHByb3BlcnR5IG5hbWUgdXNlZCBmb3IgYmluZGluZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnB1dE9yT3V0cHV0IHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBKYXZhU2NyaXB0IHByb3BlcnR5IG9uIHRoZSBjb21wb25lbnQgb3IgZGlyZWN0aXZlIGluc3RhbmNlIGZvciB0aGlzIGlucHV0IG9yXG4gICAqIG91dHB1dC5cbiAgICovXG4gIHJlYWRvbmx5IGNsYXNzUHJvcGVydHlOYW1lOiBDbGFzc1Byb3BlcnR5TmFtZTtcblxuICAvKipcbiAgICogVGhlIHByb3BlcnR5IG5hbWUgdXNlZCB0byBiaW5kIHRoaXMgaW5wdXQgb3Igb3V0cHV0IGluIGFuIEFuZ3VsYXIgdGVtcGxhdGUuXG4gICAqL1xuICByZWFkb25seSBiaW5kaW5nUHJvcGVydHlOYW1lOiBCaW5kaW5nUHJvcGVydHlOYW1lO1xufVxuXG4vKipcbiAqIEEgbWFwcGluZyBvZiBjb21wb25lbnQgcHJvcGVydHkgYW5kIHRlbXBsYXRlIGJpbmRpbmcgcHJvcGVydHkgbmFtZXMsIGZvciBleGFtcGxlIGNvbnRhaW5pbmcgdGhlXG4gKiBpbnB1dHMgb2YgYSBwYXJ0aWN1bGFyIGRpcmVjdGl2ZSBvciBjb21wb25lbnQuXG4gKlxuICogQSBzaW5nbGUgY29tcG9uZW50IHByb3BlcnR5IGhhcyBleGFjdGx5IG9uZSBpbnB1dC9vdXRwdXQgYW5ub3RhdGlvbiAoYW5kIHRoZXJlZm9yZSBvbmUgYmluZGluZ1xuICogcHJvcGVydHkgbmFtZSkgYXNzb2NpYXRlZCB3aXRoIGl0LCBidXQgdGhlIHNhbWUgYmluZGluZyBwcm9wZXJ0eSBuYW1lIG1heSBiZSBzaGFyZWQgYWNyb3NzIG1hbnlcbiAqIGNvbXBvbmVudCBwcm9wZXJ0eSBuYW1lcy5cbiAqXG4gKiBBbGxvd3MgYmlkaXJlY3Rpb25hbCBxdWVyeWluZyBvZiB0aGUgbWFwcGluZyAtIGxvb2tpbmcgdXAgYWxsIGlucHV0cy9vdXRwdXRzIHdpdGggYSBnaXZlblxuICogcHJvcGVydHkgbmFtZSwgb3IgbWFwcGluZyBmcm9tIGEgc3BlY2lmaWMgY2xhc3MgcHJvcGVydHkgdG8gaXRzIGJpbmRpbmcgcHJvcGVydHkgbmFtZS5cbiAqL1xuZXhwb3J0IGNsYXNzIENsYXNzUHJvcGVydHlNYXBwaW5nIGltcGxlbWVudHMgSW5wdXRPdXRwdXRQcm9wZXJ0eVNldCB7XG4gIC8qKlxuICAgKiBNYXBwaW5nIGZyb20gY2xhc3MgcHJvcGVydHkgbmFtZXMgdG8gdGhlIHNpbmdsZSBgSW5wdXRPck91dHB1dGAgZm9yIHRoYXQgY2xhc3MgcHJvcGVydHkuXG4gICAqL1xuICBwcml2YXRlIGZvcndhcmRNYXA6IE1hcDxDbGFzc1Byb3BlcnR5TmFtZSwgSW5wdXRPck91dHB1dD47XG5cbiAgLyoqXG4gICAqIE1hcHBpbmcgZnJvbSBwcm9wZXJ0eSBuYW1lcyB0byBvbmUgb3IgbW9yZSBgSW5wdXRPck91dHB1dGBzIHdoaWNoIHNoYXJlIHRoYXQgbmFtZS5cbiAgICovXG4gIHByaXZhdGUgcmV2ZXJzZU1hcDogTWFwPEJpbmRpbmdQcm9wZXJ0eU5hbWUsIElucHV0T3JPdXRwdXRbXT47XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcihmb3J3YXJkTWFwOiBNYXA8Q2xhc3NQcm9wZXJ0eU5hbWUsIElucHV0T3JPdXRwdXQ+KSB7XG4gICAgdGhpcy5mb3J3YXJkTWFwID0gZm9yd2FyZE1hcDtcbiAgICB0aGlzLnJldmVyc2VNYXAgPSByZXZlcnNlTWFwRnJvbUZvcndhcmRNYXAoZm9yd2FyZE1hcCk7XG4gIH1cblxuICAvKipcbiAgICogQ29uc3RydWN0IGEgYENsYXNzUHJvcGVydHlNYXBwaW5nYCB3aXRoIG5vIGVudHJpZXMuXG4gICAqL1xuICBzdGF0aWMgZW1wdHkoKTogQ2xhc3NQcm9wZXJ0eU1hcHBpbmcge1xuICAgIHJldHVybiBuZXcgQ2xhc3NQcm9wZXJ0eU1hcHBpbmcobmV3IE1hcCgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3QgYSBgQ2xhc3NQcm9wZXJ0eU1hcHBpbmdgIGZyb20gYSBwcmltaXRpdmUgSlMgb2JqZWN0IHdoaWNoIG1hcHMgY2xhc3MgcHJvcGVydHkgbmFtZXNcbiAgICogdG8gZWl0aGVyIGJpbmRpbmcgcHJvcGVydHkgbmFtZXMgb3IgYW4gYXJyYXkgdGhhdCBjb250YWlucyBib3RoIG5hbWVzLCB3aGljaCBpcyB1c2VkIGluIG9uLWRpc2tcbiAgICogbWV0YWRhdGEgZm9ybWF0cyAoZS5nLiBpbiAuZC50cyBmaWxlcykuXG4gICAqL1xuICBzdGF0aWMgZnJvbU1hcHBlZE9iamVjdChvYmo6IHtcbiAgICBbY2xhc3NQcm9wZXJ0eU5hbWU6IHN0cmluZ106IEJpbmRpbmdQcm9wZXJ0eU5hbWV8W0NsYXNzUHJvcGVydHlOYW1lLCBCaW5kaW5nUHJvcGVydHlOYW1lXVxuICB9KTogQ2xhc3NQcm9wZXJ0eU1hcHBpbmcge1xuICAgIGNvbnN0IGZvcndhcmRNYXAgPSBuZXcgTWFwPENsYXNzUHJvcGVydHlOYW1lLCBJbnB1dE9yT3V0cHV0PigpO1xuXG4gICAgZm9yIChjb25zdCBjbGFzc1Byb3BlcnR5TmFtZSBvZiBPYmplY3Qua2V5cyhvYmopKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IG9ialtjbGFzc1Byb3BlcnR5TmFtZV07XG4gICAgICBjb25zdCBiaW5kaW5nUHJvcGVydHlOYW1lID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZVswXSA6IHZhbHVlO1xuICAgICAgY29uc3QgaW5wdXRPck91dHB1dDogSW5wdXRPck91dHB1dCA9IHtjbGFzc1Byb3BlcnR5TmFtZSwgYmluZGluZ1Byb3BlcnR5TmFtZX07XG4gICAgICBmb3J3YXJkTWFwLnNldChjbGFzc1Byb3BlcnR5TmFtZSwgaW5wdXRPck91dHB1dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBDbGFzc1Byb3BlcnR5TWFwcGluZyhmb3J3YXJkTWFwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXJnZSB0d28gbWFwcGluZ3MgaW50byBvbmUsIHdpdGggY2xhc3MgcHJvcGVydGllcyBmcm9tIGBiYCB0YWtpbmcgcHJlY2VkZW5jZSBvdmVyIGNsYXNzXG4gICAqIHByb3BlcnRpZXMgZnJvbSBgYWAuXG4gICAqL1xuICBzdGF0aWMgbWVyZ2UoYTogQ2xhc3NQcm9wZXJ0eU1hcHBpbmcsIGI6IENsYXNzUHJvcGVydHlNYXBwaW5nKTogQ2xhc3NQcm9wZXJ0eU1hcHBpbmcge1xuICAgIGNvbnN0IGZvcndhcmRNYXAgPSBuZXcgTWFwPENsYXNzUHJvcGVydHlOYW1lLCBJbnB1dE9yT3V0cHV0PihhLmZvcndhcmRNYXAuZW50cmllcygpKTtcbiAgICBmb3IgKGNvbnN0IFtjbGFzc1Byb3BlcnR5TmFtZSwgaW5wdXRPck91dHB1dF0gb2YgYi5mb3J3YXJkTWFwKSB7XG4gICAgICBmb3J3YXJkTWFwLnNldChjbGFzc1Byb3BlcnR5TmFtZSwgaW5wdXRPck91dHB1dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBDbGFzc1Byb3BlcnR5TWFwcGluZyhmb3J3YXJkTWFwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGwgY2xhc3MgcHJvcGVydHkgbmFtZXMgbWFwcGVkIGluIHRoaXMgbWFwcGluZy5cbiAgICovXG4gIGdldCBjbGFzc1Byb3BlcnR5TmFtZXMoKTogQ2xhc3NQcm9wZXJ0eU5hbWVbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5mb3J3YXJkTWFwLmtleXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogQWxsIGJpbmRpbmcgcHJvcGVydHkgbmFtZXMgbWFwcGVkIGluIHRoaXMgbWFwcGluZy5cbiAgICovXG4gIGdldCBwcm9wZXJ0eU5hbWVzKCk6IEJpbmRpbmdQcm9wZXJ0eU5hbWVbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5yZXZlcnNlTWFwLmtleXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgd2hldGhlciBhIG1hcHBpbmcgZm9yIHRoZSBnaXZlbiBwcm9wZXJ0eSBuYW1lIGV4aXN0cy5cbiAgICovXG4gIGhhc0JpbmRpbmdQcm9wZXJ0eU5hbWUocHJvcGVydHlOYW1lOiBCaW5kaW5nUHJvcGVydHlOYW1lKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucmV2ZXJzZU1hcC5oYXMocHJvcGVydHlOYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb29rdXAgYWxsIGBJbnB1dE9yT3V0cHV0YHMgdGhhdCB1c2UgdGhpcyBgcHJvcGVydHlOYW1lYC5cbiAgICovXG4gIGdldEJ5QmluZGluZ1Byb3BlcnR5TmFtZShwcm9wZXJ0eU5hbWU6IHN0cmluZyk6IFJlYWRvbmx5QXJyYXk8SW5wdXRPck91dHB1dD58bnVsbCB7XG4gICAgcmV0dXJuIHRoaXMucmV2ZXJzZU1hcC5oYXMocHJvcGVydHlOYW1lKSA/IHRoaXMucmV2ZXJzZU1hcC5nZXQocHJvcGVydHlOYW1lKSEgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIExvb2t1cCB0aGUgYElucHV0T3JPdXRwdXRgIGFzc29jaWF0ZWQgd2l0aCBhIGBjbGFzc1Byb3BlcnR5TmFtZWAuXG4gICAqL1xuICBnZXRCeUNsYXNzUHJvcGVydHlOYW1lKGNsYXNzUHJvcGVydHlOYW1lOiBzdHJpbmcpOiBJbnB1dE9yT3V0cHV0fG51bGwge1xuICAgIHJldHVybiB0aGlzLmZvcndhcmRNYXAuaGFzKGNsYXNzUHJvcGVydHlOYW1lKSA/IHRoaXMuZm9yd2FyZE1hcC5nZXQoY2xhc3NQcm9wZXJ0eU5hbWUpISA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydCB0aGlzIG1hcHBpbmcgdG8gYSBwcmltaXRpdmUgSlMgb2JqZWN0IHdoaWNoIG1hcHMgZWFjaCBjbGFzcyBwcm9wZXJ0eSBkaXJlY3RseSB0byB0aGVcbiAgICogYmluZGluZyBwcm9wZXJ0eSBuYW1lIGFzc29jaWF0ZWQgd2l0aCBpdC5cbiAgICovXG4gIHRvRGlyZWN0TWFwcGVkT2JqZWN0KCk6IHtbY2xhc3NQcm9wZXJ0eU5hbWU6IHN0cmluZ106IEJpbmRpbmdQcm9wZXJ0eU5hbWV9IHtcbiAgICBjb25zdCBvYmo6IHtbY2xhc3NQcm9wZXJ0eU5hbWU6IHN0cmluZ106IEJpbmRpbmdQcm9wZXJ0eU5hbWV9ID0ge307XG4gICAgZm9yIChjb25zdCBbY2xhc3NQcm9wZXJ0eU5hbWUsIGlucHV0T3JPdXRwdXRdIG9mIHRoaXMuZm9yd2FyZE1hcCkge1xuICAgICAgb2JqW2NsYXNzUHJvcGVydHlOYW1lXSA9IGlucHV0T3JPdXRwdXQuYmluZGluZ1Byb3BlcnR5TmFtZTtcbiAgICB9XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IHRoaXMgbWFwcGluZyB0byBhIHByaW1pdGl2ZSBKUyBvYmplY3Qgd2hpY2ggbWFwcyBlYWNoIGNsYXNzIHByb3BlcnR5IGVpdGhlciB0byBpdHNlbGZcbiAgICogKGZvciBjYXNlcyB3aGVyZSB0aGUgYmluZGluZyBwcm9wZXJ0eSBuYW1lIGlzIHRoZSBzYW1lKSBvciB0byBhbiBhcnJheSB3aGljaCBjb250YWlucyBib3RoXG4gICAqIG5hbWVzIGlmIHRoZXkgZGlmZmVyLlxuICAgKlxuICAgKiBUaGlzIG9iamVjdCBmb3JtYXQgaXMgdXNlZCB3aGVuIG1hcHBpbmdzIGFyZSBzZXJpYWxpemVkIChmb3IgZXhhbXBsZSBpbnRvIC5kLnRzIGZpbGVzKS5cbiAgICovXG4gIHRvSm9pbnRNYXBwZWRPYmplY3QoKTpcbiAgICAgIHtbY2xhc3NQcm9wZXJ0eU5hbWU6IHN0cmluZ106IEJpbmRpbmdQcm9wZXJ0eU5hbWV8W0JpbmRpbmdQcm9wZXJ0eU5hbWUsIENsYXNzUHJvcGVydHlOYW1lXX0ge1xuICAgIGNvbnN0IG9iajoge1xuICAgICAgW2NsYXNzUHJvcGVydHlOYW1lOiBzdHJpbmddOiBCaW5kaW5nUHJvcGVydHlOYW1lfFtCaW5kaW5nUHJvcGVydHlOYW1lLCBDbGFzc1Byb3BlcnR5TmFtZV1cbiAgICB9ID0ge307XG4gICAgZm9yIChjb25zdCBbY2xhc3NQcm9wZXJ0eU5hbWUsIGlucHV0T3JPdXRwdXRdIG9mIHRoaXMuZm9yd2FyZE1hcCkge1xuICAgICAgaWYgKGlucHV0T3JPdXRwdXQuYmluZGluZ1Byb3BlcnR5TmFtZSBhcyBzdHJpbmcgPT09IGNsYXNzUHJvcGVydHlOYW1lIGFzIHN0cmluZykge1xuICAgICAgICBvYmpbY2xhc3NQcm9wZXJ0eU5hbWVdID0gaW5wdXRPck91dHB1dC5iaW5kaW5nUHJvcGVydHlOYW1lO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb2JqW2NsYXNzUHJvcGVydHlOYW1lXSA9IFtpbnB1dE9yT3V0cHV0LmJpbmRpbmdQcm9wZXJ0eU5hbWUsIGNsYXNzUHJvcGVydHlOYW1lXTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnQgdGhlIGl0ZXJhdG9yIHByb3RvY29sIGFuZCByZXR1cm4gZW50cnkgb2JqZWN0cyB3aGljaCBjb250YWluIHRoZSBjbGFzcyBhbmQgYmluZGluZ1xuICAgKiBwcm9wZXJ0eSBuYW1lcyAoYW5kIGFyZSB1c2VmdWwgZm9yIGRlc3RydWN0dXJpbmcpLlxuICAgKi9cbiAgKiBbU3ltYm9sLml0ZXJhdG9yXSgpOiBJdGVyYWJsZUl0ZXJhdG9yPFtDbGFzc1Byb3BlcnR5TmFtZSwgQmluZGluZ1Byb3BlcnR5TmFtZV0+IHtcbiAgICBmb3IgKGNvbnN0IFtjbGFzc1Byb3BlcnR5TmFtZSwgaW5wdXRPck91dHB1dF0gb2YgdGhpcy5mb3J3YXJkTWFwLmVudHJpZXMoKSkge1xuICAgICAgeWllbGQgW2NsYXNzUHJvcGVydHlOYW1lLCBpbnB1dE9yT3V0cHV0LmJpbmRpbmdQcm9wZXJ0eU5hbWVdO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiByZXZlcnNlTWFwRnJvbUZvcndhcmRNYXAoZm9yd2FyZE1hcDogTWFwPENsYXNzUHJvcGVydHlOYW1lLCBJbnB1dE9yT3V0cHV0Pik6XG4gICAgTWFwPEJpbmRpbmdQcm9wZXJ0eU5hbWUsIElucHV0T3JPdXRwdXRbXT4ge1xuICBjb25zdCByZXZlcnNlTWFwID0gbmV3IE1hcDxCaW5kaW5nUHJvcGVydHlOYW1lLCBJbnB1dE9yT3V0cHV0W10+KCk7XG4gIGZvciAoY29uc3QgW18sIGlucHV0T3JPdXRwdXRdIG9mIGZvcndhcmRNYXApIHtcbiAgICBpZiAoIXJldmVyc2VNYXAuaGFzKGlucHV0T3JPdXRwdXQuYmluZGluZ1Byb3BlcnR5TmFtZSkpIHtcbiAgICAgIHJldmVyc2VNYXAuc2V0KGlucHV0T3JPdXRwdXQuYmluZGluZ1Byb3BlcnR5TmFtZSwgW10pO1xuICAgIH1cblxuICAgIHJldmVyc2VNYXAuZ2V0KGlucHV0T3JPdXRwdXQuYmluZGluZ1Byb3BlcnR5TmFtZSkhLnB1c2goaW5wdXRPck91dHB1dCk7XG4gIH1cbiAgcmV0dXJuIHJldmVyc2VNYXA7XG59XG4iXX0=
|
|
@@ -10,6 +10,7 @@ import * as ts from 'typescript';
|
|
|
10
10
|
import { Reference } from '../../imports';
|
|
11
11
|
import { ClassDeclaration, ReflectionHost } from '../../reflection';
|
|
12
12
|
import { DirectiveMeta, DirectiveTypeCheckMeta, MetadataReader, NgModuleMeta, PipeMeta } from './api';
|
|
13
|
+
import { ClassPropertyMapping } from './property_mapping';
|
|
13
14
|
export declare function extractReferencesFromType(checker: ts.TypeChecker, def: ts.TypeNode, ngModuleImportedFrom: string | null, resolutionContext: string): Reference<ClassDeclaration>[];
|
|
14
15
|
export declare function readStringType(type: ts.TypeNode): string | null;
|
|
15
16
|
export declare function readStringMapType(type: ts.TypeNode): {
|
|
@@ -21,9 +22,7 @@ export declare function readStringArrayType(type: ts.TypeNode): string[];
|
|
|
21
22
|
* that use the directive. This metadata does not contain information from a base class, if any,
|
|
22
23
|
* making this metadata invariant to changes of inherited classes.
|
|
23
24
|
*/
|
|
24
|
-
export declare function extractDirectiveTypeCheckMeta(node: ClassDeclaration, inputs:
|
|
25
|
-
[fieldName: string]: string | [string, string];
|
|
26
|
-
}, reflector: ReflectionHost): DirectiveTypeCheckMeta;
|
|
25
|
+
export declare function extractDirectiveTypeCheckMeta(node: ClassDeclaration, inputs: ClassPropertyMapping, reflector: ReflectionHost): DirectiveTypeCheckMeta;
|
|
27
26
|
/**
|
|
28
27
|
* A `MetadataReader` that reads from an ordered set of child readers until it obtains the requested
|
|
29
28
|
* metadata.
|