diff --git a/BUILD_INFO b/BUILD_INFO index 51b9dfce878..6cc4fa1fc63 100644 --- a/BUILD_INFO +++ b/BUILD_INFO @@ -1,2 +1,2 @@ -Fri 01 Sep 2023 02:27:09 PM UTC -bb47f81063df624737c8c88756091f005421499d +Fri 01 Sep 2023 02:29:04 PM UTC +b9ba6e6a165c3b162fb7c5ba8fa4c32fe1e38831 diff --git a/esm2022/src/common/src/version.mjs b/esm2022/src/common/src/version.mjs index 0ae4f41143a..04c3c1bb424 100755 --- a/esm2022/src/common/src/version.mjs +++ b/esm2022/src/common/src/version.mjs @@ -14,5 +14,5 @@ import { Version } from '@angular/core'; /** * @publicApi */ -export const VERSION = new Version('17.0.0-next.2+sha-bb47f81'); +export const VERSION = new Version('17.0.0-next.2+sha-b9ba6e6'); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3VwZ3JhZGUvc3JjL2NvbW1vbi9zcmMvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSDs7OztHQUlHO0FBRUgsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV0Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8qKlxuICogQG1vZHVsZVxuICogQGRlc2NyaXB0aW9uXG4gKiBFbnRyeSBwb2ludCBmb3IgYWxsIHB1YmxpYyBBUElzIG9mIHRoZSB1cGdyYWRlIHBhY2thZ2UuXG4gKi9cblxuaW1wb3J0IHtWZXJzaW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBAcHVibGljQXBpXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gbmV3IFZlcnNpb24oJzAuMC4wLVBMQUNFSE9MREVSJyk7XG4iXX0= \ No newline at end of file diff --git a/esm2022/src/dynamic/src/upgrade_ng1_adapter.mjs b/esm2022/src/dynamic/src/upgrade_ng1_adapter.mjs index 948a1989ed9..bde10ca5e9d 100755 --- a/esm2022/src/dynamic/src/upgrade_ng1_adapter.mjs +++ b/esm2022/src/dynamic/src/upgrade_ng1_adapter.mjs @@ -213,10 +213,10 @@ class UpgradeNg1ComponentAdapter { setComponentProperty(name, value) { this.destinationObj[this.propertyMap[name]] = value; } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-bb47f81", ngImport: i0, type: UpgradeNg1ComponentAdapter, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); } - static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-next.2+sha-bb47f81", type: UpgradeNg1ComponentAdapter, usesOnChanges: true, ngImport: i0 }); } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-b9ba6e6", ngImport: i0, type: UpgradeNg1ComponentAdapter, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); } + static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-next.2+sha-b9ba6e6", type: UpgradeNg1ComponentAdapter, usesOnChanges: true, ngImport: i0 }); } } -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-bb47f81", ngImport: i0, type: UpgradeNg1ComponentAdapter, decorators: [{ +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-b9ba6e6", ngImport: i0, type: UpgradeNg1ComponentAdapter, decorators: [{ type: Directive }], ctorParameters: function () { return [{ type: i1.UpgradeHelper }, { type: undefined }, { type: undefined }, { type: undefined }, { type: undefined }, { type: undefined }, { type: undefined }, { type: undefined }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBncmFkZV9uZzFfYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3VwZ3JhZGUvc3JjL2R5bmFtaWMvc3JjL3VwZ3JhZGVfbmcxX2FkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQVcsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFrRSxNQUFNLGVBQWUsQ0FBQztBQUc5SixPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDbEQsT0FBTyxFQUEyQyxhQUFhLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RyxPQUFPLEVBQUMsVUFBVSxFQUFFLFlBQVksRUFBQyxNQUFNLHVCQUF1QixDQUFDOzs7QUFHL0QsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDO0FBQzlCLE1BQU0sYUFBYSxHQUFHO0lBQ3BCLGlCQUFpQixFQUFFLElBQUk7Q0FDeEIsQ0FBQztBQUNGLE1BQU0sYUFBYSxHQUFRLGVBQWUsQ0FBQztBQUUzQyxTQUFTLHVCQUF1QixDQUFDLElBQVk7SUFDM0MsT0FBTyxTQUFTLElBQUksRUFBRSxDQUFDO0FBQ3pCLENBQUM7QUFFRCxTQUFTLHdCQUF3QixDQUFDLElBQVk7SUFDNUMsT0FBTyxVQUFVLElBQUksRUFBRSxDQUFDO0FBQzFCLENBQUM7QUFFRCxNQUFNLE9BQU8saUNBQWlDO0lBWTVDLFlBQW1CLElBQVk7UUFBWixTQUFJLEdBQUosSUFBSSxDQUFRO1FBVi9CLFdBQU0sR0FBYSxFQUFFLENBQUM7UUFDdEIsaUJBQVksR0FBYSxFQUFFLENBQUM7UUFDNUIsWUFBTyxHQUFhLEVBQUUsQ0FBQztRQUN2QixrQkFBYSxHQUFhLEVBQUUsQ0FBQztRQUM3QixvQkFBZSxHQUFhLEVBQUUsQ0FBQztRQUMvQixvQkFBZSxHQUFhLEVBQUUsQ0FBQztRQUMv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LENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxJQUFJLENBQUMsa0JBQWtCLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUMzRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDcEM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELG9CQUFvQixDQUFDLElBQVksRUFBRSxLQUFVO1FBQzNDLElBQUksQ0FBQyxjQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUN2RCxDQUFDO3lIQXpIRywwQkFBMEI7NkdBQTFCLDBCQUEwQjs7c0dBQTFCLDBCQUEwQjtrQkFEL0IsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0RpcmVjdGl2ZSwgRG9DaGVjaywgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIEluamVjdG9yLCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBTaW1wbGVDaGFuZ2UsIFNpbXBsZUNoYW5nZXMsIFR5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge0lBdHRyaWJ1dGVzLCBJRGlyZWN0aXZlLCBJSW5qZWN0b3JTZXJ2aWNlLCBJTGlua0ZuLCBJU2NvcGUsIElUcmFuc2NsdWRlRnVuY3Rpb259IGZyb20gJy4uLy4uL2NvbW1vbi9zcmMvYW5ndWxhcjEnO1xuaW1wb3J0IHskU0NPUEV9IGZyb20gJy4uLy4uL2NvbW1vbi9zcmMvY29uc3RhbnRzJztcbmltcG9ydCB7SUJpbmRpbmdEZXN0aW5hdGlvbiwgSUNvbnRyb2xsZXJJbnN0YW5jZSwgVXBncmFkZUhlbHBlcn0gZnJvbSAnLi4vLi4vY29tbW9uL3NyYy91cGdyYWRlX2hlbHBlcic7XG5pbXBvcnQge2lzRnVuY3Rpb24sIHN0cmljdEVxdWFsc30gZnJvbSAnLi4vLi4vY29tbW9uL3NyYy91dGlsJztcblxuXG5jb25zdCBDQU1FTF9DQVNFID0gLyhbQS1aXSkvZztcbmNvbnN0IElOSVRJQUxfVkFMVUUgPSB7XG4gIF9fVU5JTklUSUFMSVpFRF9fOiB0cnVlXG59O1xuY29uc3QgTk9UX1NVUFBPUlRFRDogYW55ID0gJ05PVF9TVVBQT1JURUQnO1xuXG5mdW5jdGlvbiBnZXRJbnB1dFByb3BlcnR5TWFwTmFtZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYGlucHV0XyR7bmFtZX1gO1xufVxuXG5mdW5jdGlvbiBnZXRPdXRwdXRQcm9wZXJ0eU1hcE5hbWUobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBvdXRwdXRfJHtuYW1lfWA7XG59XG5cbmV4cG9ydCBjbGFzcyBVcGdyYWRlTmcxQ29tcG9uZW50QWRhcHRlckJ1aWxkZXIge1xuICB0eXBlOiBUeXBlPGFueT47XG4gIGlucHV0czogc3RyaW5nW10gPSBbXTtcbiAgaW5wdXRzUmVuYW1lOiBzdHJpbmdbXSA9IFtdO1xuICBvdXRwdXRzOiBzdHJpbmdbXSA9IFtdO1xuICBvdXRwdXRzUmVuYW1lOiBzdHJpbmdbXSA9IFtdO1xuICBwcm9wZXJ0eU91dHB1dHM6IHN0cmluZ1tdID0gW107XG4gIGNoZWNrUHJvcGVydGllczogc3RyaW5nW10gPSBbXTtcbiAgcHJvcGVydHlNYXA6IHtbbmFtZTogc3RyaW5nXTogc3RyaW5nfSA9IHt9O1xuICBkaXJlY3RpdmU6IElEaXJlY3RpdmV8bnVsbCA9IG51bGw7XG4gIHRlbXBsYXRlITogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBuYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBzZWxlY3RvciA9XG4gICAgICAgIG5hbWUucmVwbGFjZShDQU1FTF9DQVNFLCAoYWxsOiBzdHJpbmcsIG5leHQ6IHN0cmluZykgPT4gJy0nICsgbmV4dC50b0xvd2VyQ2FzZSgpKTtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcblxuICAgIEBEaXJlY3RpdmUoXG4gICAgICAgIHtqaXQ6IHRydWUsIHNlbGVjdG9yOiBzZWxlY3RvciwgaW5wdXRzOiB0aGlzLmlucHV0c1JlbmFtZSwgb3V0cHV0czogdGhpcy5vdXRwdXRzUmVuYW1lfSlcbiAgICBjbGFzcyBNeUNsYXNzIGV4dGVuZHMgVXBncmFkZU5nMUNvbXBvbmVudEFkYXB0ZXIgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgRG9DaGVjayxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbkRlc3Ryb3kge1xuICAgICAgY29uc3RydWN0b3IoQEluamVjdCgkU0NPUEUpIHNjb3BlOiBJU2NvcGUsIGluamVjdG9yOiBJbmplY3RvciwgZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xuICAgICAgICBzdXBlcihcbiAgICAgICAgICAgIG5ldyBVcGdyYWRlSGVscGVyKGluamVjdG9yLCBuYW1lLCBlbGVtZW50UmVmLCBzZWxmLmRpcmVjdGl2ZSB8fCB1bmRlZmluZWQpLCBzY29wZSxcbiAgICAgICAgICAgIHNlbGYudGVtcGxhdGUsIHNlbGYuaW5wdXRzLCBzZWxmLm91dHB1dHMsIHNlbGYucHJvcGVydHlPdXRwdXRzLCBzZWxmLmNoZWNrUHJvcGVydGllcyxcbiAgICAgICAgICAgIHNlbGYucHJvcGVydHlNYXApIGFzIGFueTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy50eXBlID0gTXlDbGFzcztcbiAgfVxuXG4gIGV4dHJhY3RCaW5kaW5ncygpIHtcbiAgICBjb25zdCBidGNJc09iamVjdCA9IHR5cGVvZiB0aGlzLmRpcmVjdGl2ZSEuYmluZFRvQ29udHJvbGxlciA9PT0gJ29iamVjdCc7XG4gICAgaWYgKGJ0Y0lzT2JqZWN0ICYmIE9iamVjdC5rZXlzKHRoaXMuZGlyZWN0aXZlIS5zY29wZSEpLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBCaW5kaW5nIGRlZmluaXRpb25zIG9uIHNjb3BlIGFuZCBjb250cm9sbGVyIGF0IHRoZSBzYW1lIHRpbWUgYXJlIG5vdCBzdXBwb3J0ZWQuYCk7XG4gICAgfVxuXG4gICAgY29uc3QgY29udGV4dCA9IChidGNJc09iamVjdCkgPyB0aGlzLmRpcmVjdGl2ZSEuYmluZFRvQ29udHJvbGxlciA6IHRoaXMuZGlyZWN0aXZlIS5zY29wZTtcblxuICAgIGlmICh0eXBlb2YgY29udGV4dCA9PSAnb2JqZWN0Jykge1xuICAgICAgT2JqZWN0LmtleXMoY29udGV4dCkuZm9yRWFjaChwcm9wTmFtZSA9PiB7XG4gICAgICAgIGNvbnN0IGRlZmluaXRpb24gPSBjb250ZXh0W3Byb3BOYW1lXTtcbiAgICAgICAgY29uc3QgYmluZGluZ1R5cGUgPSBkZWZpbml0aW9uLmNoYXJBdCgwKTtcbiAgICAgICAgY29uc3QgYmluZGluZ09wdGlvbnMgPSBkZWZpbml0aW9uLmNoYXJBdCgxKTtcbiAgICAgICAgY29uc3QgYXR0ck5hbWUgPSBkZWZpbml0aW9uLnN1YnN0cmluZyhiaW5kaW5nT3B0aW9ucyA9PT0gJz8nID8gMiA6IDEpIHx8IHByb3BOYW1lO1xuXG4gICAgICAgIC8vIFFVRVNUSU9OOiBXaGF0IGFib3V0IGA9KmA/IElnbm9yZT8gVGhyb3c/IFN1cHBvcnQ/XG5cbiAgICAgICAgY29uc3QgaW5wdXROYW1lID0gZ2V0SW5wdXRQcm9wZXJ0eU1hcE5hbWUoYXR0ck5hbWUpO1xuICAgICAgICBjb25zdCBpbnB1dE5hbWVSZW5hbWUgPSBgJHtpbnB1dE5hbWV9OiAke2F0dHJOYW1lfWA7XG4gICAgICAgIGNvbnN0IG91dHB1dE5hbWUgPSBnZXRPdXRwdXRQcm9wZXJ0eU1hcE5hbWUoYXR0ck5hbWUpO1xuICAgICAgICBjb25zdCBvdXRwdXROYW1lUmVuYW1lID0gYCR7b3V0cHV0TmFtZX06ICR7YXR0ck5hbWV9YDtcbiAgICAgICAgY29uc3Qgb3V0cHV0TmFtZVJlbmFtZUNoYW5nZSA9IGAke291dHB1dE5hbWVSZW5hbWV9Q2hhbmdlYDtcblxuICAgICAgICBzd2l0Y2ggKGJpbmRpbmdUeXBlKSB7XG4gICAgICAgICAgY2FzZSAnQCc6XG4gICAgICAgICAgY2FzZSAnPCc6XG4gICAgICAgICAgICB0aGlzLmlucHV0cy5wdXNoKGlucHV0TmFtZSk7XG4gICAgICAgICAgICB0aGlzLmlucHV0c1JlbmFtZS5wdXNoKGlucHV0TmFtZVJlbmFtZSk7XG4gICAgICAgICAgICB0aGlzLnByb3BlcnR5TWFwW2lucHV0TmFtZV0gPSBwcm9wTmFtZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJz0nOlxuICAgICAgICAgICAgdGhpcy5pbnB1dHMucHVzaChpbnB1dE5hbWUpO1xuICAgICAgICAgICAgdGhpcy5pbnB1dHNSZW5hbWUucHVzaChpbnB1dE5hbWVSZW5hbWUpO1xuICAgICAgICAgICAgdGhpcy5wcm9wZXJ0eU1hcFtpbnB1dE5hbWVdID0gcHJvcE5hbWU7XG5cbiAgICAgICAgICAgIHRoaXMub3V0cHV0cy5wdXNoKG91dHB1dE5hbWUpO1xuICAgICAgICAgICAgdGhpcy5vdXRwdXRzUmVuYW1lLnB1c2gob3V0cHV0TmFtZVJlbmFtZUNoYW5nZSk7XG4gICAgICAgICAgICB0aGlzLnByb3BlcnR5TWFwW291dHB1dE5hbWVdID0gcHJvcE5hbWU7XG5cbiAgICAgICAgICAgIHRoaXMuY2hlY2tQcm9wZXJ0aWVzLnB1c2gocHJvcE5hbWUpO1xuICAgICAgICAgICAgdGhpcy5wcm9wZXJ0eU91dHB1dHMucHVzaChvdXRwdXROYW1lKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJyYnOlxuICAgICAgICAgICAgdGhpcy5vdXRwdXRzLnB1c2gob3V0cHV0TmFtZSk7XG4gICAgICAgICAgICB0aGlzLm91dHB1dHNSZW5hbWUucHVzaChvdXRwdXROYW1lUmVuYW1lKTtcbiAgICAgICAgICAgIHRoaXMucHJvcGVydHlNYXBbb3V0cHV0TmFtZV0gPSBwcm9wTmFtZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBsZXQganNvbiA9IEpTT04uc3RyaW5naWZ5KGNvbnRleHQpO1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgIGBVbmV4cGVjdGVkIG1hcHBpbmcgJyR7YmluZGluZ1R5cGV9JyBpbiAnJHtqc29ufScgaW4gJyR7dGhpcy5uYW1lfScgZGlyZWN0aXZlLmApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVXBncmFkZSBuZzEgY29tcG9uZW50cyBpbnRvIEFuZ3VsYXIuXG4gICAqL1xuICBzdGF0aWMgcmVzb2x2ZShcbiAgICAgIGV4cG9ydGVkQ29tcG9uZW50czoge1tuYW1lOiBzdHJpbmddOiBVcGdyYWRlTmcxQ29tcG9uZW50QWRhcHRlckJ1aWxkZXJ9LFxuICAgICAgJGluamVjdG9yOiBJSW5qZWN0b3JTZXJ2aWNlKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIGNvbnN0IHByb21pc2VzID0gT2JqZWN0LmVudHJpZXMoZXhwb3J0ZWRDb21wb25lbnRzKS5tYXAoKFtuYW1lLCBleHBvcnRlZENvbXBvbmVudF0pID0+IHtcbiAgICAgIGV4cG9ydGVkQ29tcG9uZW50LmRpcmVjdGl2ZSA9IFVwZ3JhZGVIZWxwZXIuZ2V0RGlyZWN0aXZlKCRpbmplY3RvciwgbmFtZSk7XG4gICAgICBleHBvcnRlZENvbXBvbmVudC5leHRyYWN0QmluZGluZ3MoKTtcblxuICAgICAgcmV0dXJuIFByb21pc2VcbiAgICAgICAgICAucmVzb2x2ZShVcGdyYWRlSGVscGVyLmdldFRlbXBsYXRlKCRpbmplY3RvciwgZXhwb3J0ZWRDb21wb25lbnQuZGlyZWN0aXZlLCB0cnVlKSlcbiAgICAgICAgICAudGhlbih0ZW1wbGF0ZSA9PiBleHBvcnRlZENvbXBvbmVudC50ZW1wbGF0ZSA9IHRlbXBsYXRlKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBQcm9taXNlLmFsbChwcm9taXNlcyk7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSgpXG5jbGFzcyBVcGdyYWRlTmcxQ29tcG9uZW50QWRhcHRlciBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBEb0NoZWNrIHtcbiAgcHJpdmF0ZSBjb250cm9sbGVySW5zdGFuY2U6IElDb250cm9sbGVySW5zdGFuY2V8bnVsbCA9IG51bGw7XG4gIGRlc3RpbmF0aW9uT2JqOiBJQmluZGluZ0Rlc3RpbmF0aW9ufG51bGwgPSBudWxsO1xuICBjaGVja0xhc3RWYWx1ZXM6IGFueVtdID0gW107XG4gIGRpcmVjdGl2ZTogSURpcmVjdGl2ZTtcbiAgZWxlbWVudDogRWxlbWVudDtcbiAgJGVsZW1lbnQ6IGFueSA9IG51bGw7XG4gIGNvbXBvbmVudFNjb3BlOiBJU2NvcGU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIGhlbHBlcjogVXBncmFkZUhlbHBlciwgc2NvcGU6IElTY29wZSwgcHJpdmF0ZSB0ZW1wbGF0ZTogc3RyaW5nLFxuICAgICAgcHJpdmF0ZSBpbnB1dHM6IHN0cmluZ1tdLCBwcml2YXRlIG91dHB1dHM6IHN0cmluZ1tdLCBwcml2YXRlIHByb3BPdXRzOiBzdHJpbmdbXSxcbiAgICAgIHByaXZhdGUgY2hlY2tQcm9wZXJ0aWVzOiBzdHJpbmdbXSwgcHJpdmF0ZSBwcm9wZXJ0eU1hcDoge1trZXk6IHN0cmluZ106IHN0cmluZ30pIHtcbiAgICB0aGlzLmRpcmVjdGl2ZSA9IGhlbHBlci5kaXJlY3RpdmU7XG4gICAgdGhpcy5lbGVtZW50ID0gaGVscGVyLmVsZW1lbnQ7XG4gICAgdGhpcy4kZWxlbWVudCA9IGhlbHBlci4kZWxlbWVudDtcbiAgICB0aGlzLmNvbXBvbmVudFNjb3BlID0gc2NvcGUuJG5ldyghIXRoaXMuZGlyZWN0aXZlLnNjb3BlKTtcblxuICAgIGNvbnN0IGNvbnRyb2xsZXJUeXBlID0gdGhpcy5kaXJlY3RpdmUuY29udHJvbGxlcjtcblxuICAgIGlmICh0aGlzLmRpcmVjdGl2ZS5iaW5kVG9Db250cm9sbGVyICYmIGNvbnRyb2xsZXJUeXBlKSB7XG4gICAgICB0aGlzLmNvbnRyb2xsZXJJbnN0YW5jZSA9IHRoaXMuaGVscGVyLmJ1aWxkQ29udHJvbGxlcihjb250cm9sbGVyVHlwZSwgdGhpcy5jb21wb25lbnRTY29wZSk7XG4gICAgICB0aGlzLmRlc3RpbmF0aW9uT2JqID0gdGhpcy5jb250cm9sbGVySW5zdGFuY2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVzdGluYXRpb25PYmogPSB0aGlzLmNvbXBvbmVudFNjb3BlO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgaW5wdXQgb2YgdGhpcy5pbnB1dHMpIHtcbiAgICAgICh0aGlzIGFzIGFueSlbaW5wdXRdID0gbnVsbDtcbiAgICB9XG4gICAgZm9yIChjb25zdCBvdXRwdXQgb2YgdGhpcy5vdXRwdXRzKSB7XG4gICAgICBjb25zdCBlbWl0dGVyID0gKHRoaXMgYXMgYW55KVtvdXRwdXRdID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgICAgaWYgKHRoaXMucHJvcE91dHMuaW5kZXhPZihvdXRwdXQpID09PSAtMSkge1xuICAgICAgICB0aGlzLnNldENvbXBvbmVudFByb3BlcnR5KFxuICAgICAgICAgICAgb3V0cHV0LCAoZW1pdHRlciA9PiAodmFsdWU6IGFueSkgPT4gZW1pdHRlci5lbWl0KHZhbHVlKSkoZW1pdHRlcikpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmNoZWNrTGFzdFZhbHVlcy5wdXNoKC4uLkFycmF5KHByb3BPdXRzLmxlbmd0aCkuZmlsbChJTklUSUFMX1ZBTFVFKSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICAvLyBDb2xsZWN0IGNvbnRlbnRzLCBpbnNlcnQgYW5kIGNvbXBpbGUgdGVtcGxhdGVcbiAgICBjb25zdCBhdHRhY2hDaGlsZE5vZGVzOiBJTGlua0ZufHVuZGVmaW5lZCA9IHRoaXMuaGVscGVyLnByZXBhcmVUcmFuc2NsdXNpb24oKTtcbiAgICBjb25zdCBsaW5rRm4gPSB0aGlzLmhlbHBlci5jb21waWxlVGVtcGxhdGUodGhpcy50ZW1wbGF0ZSk7XG5cbiAgICAvLyBJbnN0YW50aWF0ZSBjb250cm9sbGVyIChpZiBub3QgYWxyZWFkeSBkb25lIHNvKVxuICAgIGNvbnN0IGNvbnRyb2xsZXJUeXBlID0gdGhpcy5kaXJlY3RpdmUuY29udHJvbGxlcjtcbiAgICBjb25zdCBiaW5kVG9Db250cm9sbGVyID0gdGhpcy5kaXJlY3RpdmUuYmluZFRvQ29udHJvbGxlcjtcbiAgICBpZiAoY29udHJvbGxlclR5cGUgJiYgIWJpbmRUb0NvbnRyb2xsZXIpIHtcbiAgICAgIHRoaXMuY29udHJvbGxlckluc3RhbmNlID0gdGhpcy5oZWxwZXIuYnVpbGRDb250cm9sbGVyKGNvbnRyb2xsZXJUeXBlLCB0aGlzLmNvbXBvbmVudFNjb3BlKTtcbiAgICB9XG5cbiAgICAvLyBSZXF1aXJlIG90aGVyIGNvbnRyb2xsZXJzXG4gICAgY29uc3QgcmVxdWlyZWRDb250cm9sbGVycyA9XG4gICAgICAgIHRoaXMuaGVscGVyLnJlc29sdmVBbmRCaW5kUmVxdWlyZWRDb250cm9sbGVycyh0aGlzLmNvbnRyb2xsZXJJbnN0YW5jZSk7XG5cbiAgICAvLyBIb29rOiAkb25Jbml0XG4gICAgaWYgKHRoaXMuY29udHJvbGxlckluc3RhbmNlICYmIGlzRnVuY3Rpb24odGhpcy5jb250cm9sbGVySW5zdGFuY2UuJG9uSW5pdCkpIHtcbiAgICAgIHRoaXMuY29udHJvbGxlckluc3RhbmNlLiRvbkluaXQoKTtcbiAgICB9XG5cbiAgICAvLyBMaW5raW5nXG4gICAgY29uc3QgbGluayA9IHRoaXMuZGlyZWN0aXZlLmxpbms7XG4gICAgY29uc3QgcHJlTGluayA9IHR5cGVvZiBsaW5rID09ICdvYmplY3QnICYmIGxpbmsucHJlO1xuICAgIGNvbnN0IHBvc3RMaW5rID0gdHlwZW9mIGxpbmsgPT0gJ29iamVjdCcgPyBsaW5rLnBvc3QgOiBsaW5rO1xuICAgIGNvbnN0IGF0dHJzOiBJQXR0cmlidXRlcyA9IE5PVF9TVVBQT1JURUQ7XG4gICAgY29uc3QgdHJhbnNjbHVkZUZuOiBJVHJhbnNjbHVkZUZ1bmN0aW9uID0gTk9UX1NVUFBPUlRFRDtcbiAgICBpZiAocHJlTGluaykge1xuICAgICAgcHJlTGluayh0aGlzLmNvbXBvbmVudFNjb3BlLCB0aGlzLiRlbGVtZW50LCBhdHRycywgcmVxdWlyZWRDb250cm9sbGVycywgdHJhbnNjbHVkZUZuKTtcbiAgICB9XG5cbiAgICBsaW5rRm4odGhpcy5jb21wb25lbnRTY29wZSwgbnVsbCEsIHtwYXJlbnRCb3VuZFRyYW5zY2x1ZGVGbjogYXR0YWNoQ2hpbGROb2Rlc30pO1xuXG4gICAgaWYgKHBvc3RMaW5rKSB7XG4gICAgICBwb3N0TGluayh0aGlzLmNvbXBvbmVudFNjb3BlLCB0aGlzLiRlbGVtZW50LCBhdHRycywgcmVxdWlyZWRDb250cm9sbGVycywgdHJhbnNjbHVkZUZuKTtcbiAgICB9XG5cbiAgICAvLyBIb29rOiAkcG9zdExpbmtcbiAgICBpZiAodGhpcy5jb250cm9sbGVySW5zdGFuY2UgJiYgaXNGdW5jdGlvbih0aGlzLmNvbnRyb2xsZXJJbnN0YW5jZS4kcG9zdExpbmspKSB7XG4gICAgICB0aGlzLmNvbnRyb2xsZXJJbnN0YW5jZS4kcG9zdExpbmsoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgY29uc3QgbmcxQ2hhbmdlczogYW55ID0ge307XG4gICAgT2JqZWN0LmtleXMoY2hhbmdlcykuZm9yRWFjaChwcm9wZXJ0eU1hcE5hbWUgPT4ge1xuICAgICAgY29uc3QgY2hhbmdlOiBTaW1wbGVDaGFuZ2UgPSBjaGFuZ2VzW3Byb3BlcnR5TWFwTmFtZV07XG4gICAgICB0aGlzLnNldENvbXBvbmVudFByb3BlcnR5KHByb3BlcnR5TWFwTmFtZSwgY2hhbmdlLmN1cnJlbnRWYWx1ZSk7XG4gICAgICBuZzFDaGFuZ2VzW3RoaXMucHJvcGVydHlNYXBbcHJvcGVydHlNYXBOYW1lXV0gPSBjaGFuZ2U7XG4gICAgfSk7XG5cbiAgICBpZiAoaXNGdW5jdGlvbih0aGlzLmRlc3RpbmF0aW9uT2JqIS4kb25DaGFuZ2VzKSkge1xuICAgICAgdGhpcy5kZXN0aW5hdGlvbk9iaiEuJG9uQ2hhbmdlcyEobmcxQ2hhbmdlcyk7XG4gICAgfVxuICB9XG5cbiAgbmdEb0NoZWNrKCkge1xuICAgIGNvbnN0IGRlc3RpbmF0aW9uT2JqID0gdGhpcy5kZXN0aW5hdGlvbk9iajtcbiAgICBjb25zdCBsYXN0VmFsdWVzID0gdGhpcy5jaGVja0xhc3RWYWx1ZXM7XG4gICAgY29uc3QgY2hlY2tQcm9wZXJ0aWVzID0gdGhpcy5jaGVja1Byb3BlcnRpZXM7XG4gICAgY29uc3QgcHJvcE91dHMgPSB0aGlzLnByb3BPdXRzO1xuICAgIGNoZWNrUHJvcGVydGllcy5mb3JFYWNoKChwcm9wTmFtZSwgaSkgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSBkZXN0aW5hdGlvbk9iaiFbcHJvcE5hbWVdO1xuICAgICAgY29uc3QgbGFzdCA9IGxhc3RWYWx1ZXNbaV07XG4gICAgICBpZiAoIXN0cmljdEVxdWFscyhsYXN0LCB2YWx1ZSkpIHtcbiAgICAgICAgY29uc3QgZXZlbnRFbWl0dGVyOiBFdmVudEVtaXR0ZXI8YW55PiA9ICh0aGlzIGFzIGFueSlbcHJvcE91dHNbaV1dO1xuICAgICAgICBldmVudEVtaXR0ZXIuZW1pdChsYXN0VmFsdWVzW2ldID0gdmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuY29udHJvbGxlckluc3RhbmNlICYmIGlzRnVuY3Rpb24odGhpcy5jb250cm9sbGVySW5zdGFuY2UuJGRvQ2hlY2spKSB7XG4gICAgICB0aGlzLmNvbnRyb2xsZXJJbnN0YW5jZS4kZG9DaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuaGVscGVyLm9uRGVzdHJveSh0aGlzLmNvbXBvbmVudFNjb3BlLCB0aGlzLmNvbnRyb2xsZXJJbnN0YW5jZSk7XG4gIH1cblxuICBzZXRDb21wb25lbnRQcm9wZXJ0eShuYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmRlc3RpbmF0aW9uT2JqIVt0aGlzLnByb3BlcnR5TWFwW25hbWVdXSA9IHZhbHVlO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/esm2022/static/src/upgrade_component.mjs b/esm2022/static/src/upgrade_component.mjs index c47fafe80d7..bea812b1faa 100755 --- a/esm2022/static/src/upgrade_component.mjs +++ b/esm2022/static/src/upgrade_component.mjs @@ -240,10 +240,10 @@ export class UpgradeComponent { bindingDestination.$onChanges(changes); } } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-bb47f81", ngImport: i0, type: UpgradeComponent, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); } - static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-next.2+sha-bb47f81", type: UpgradeComponent, usesOnChanges: true, ngImport: i0 }); } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-b9ba6e6", ngImport: i0, type: UpgradeComponent, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); } + static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-next.2+sha-b9ba6e6", type: UpgradeComponent, usesOnChanges: true, ngImport: i0 }); } } -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-bb47f81", ngImport: i0, type: UpgradeComponent, decorators: [{ +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-b9ba6e6", ngImport: i0, type: UpgradeComponent, decorators: [{ type: Directive }], ctorParameters: function () { return [{ type: undefined }, { type: i0.ElementRef }, { type: i0.Injector }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBncmFkZV9jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy91cGdyYWRlL3N0YXRpYy9zcmMvdXBncmFkZV9jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBVyxVQUFVLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBOEMsTUFBTSxlQUFlLENBQUM7QUFFbEksT0FBTyxFQUFZLFVBQVUsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFDLE1BQU0sV0FBVyxDQUFDOztBQUV2RSxNQUFNLGFBQWEsR0FBUSxlQUFlLENBQUM7QUFDM0MsTUFBTSxhQUFhLEdBQUc7SUFDcEIsaUJBQWlCLEVBQUUsSUFBSTtDQUN4QixDQUFDO0FBRUYsTUFBTSxRQUFRO0lBQWQ7UUFDRSwwQkFBcUIsR0FBYSxFQUFFLENBQUM7UUFDckMsMEJBQXFCLEdBQVUsRUFBRSxDQUFDO1FBRWxDLDhCQUF5QixHQUFhLEVBQUUsQ0FBQztRQUV6Qyx3QkFBbUIsR0FBaUMsRUFBRSxDQUFDO0lBQ3pELENBQUM7Q0FBQTtBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Q0c7QUFFSCxNQUFNLE9BQU8sZ0JBQWdCO0lBbUIzQjs7Ozs7Ozs7OztPQVVHO0lBQ0gsWUFBWSxJQUFZLEVBQUUsVUFBc0IsRUFBRSxRQUFrQjtRQWxCcEUsMkVBQTJFO1FBQzNFLHFFQUFxRTtRQUNyRSw4Q0FBOEM7UUFDdEMsbUJBQWMsR0FBdUIsSUFBSSxDQUFDO1FBZ0JoRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksY0FBYyxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRTNFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFFckMsSUFBSSxD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S0FBSyxDQUFDLENBQUM7UUFDckUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sY0FBYyxDQUNsQixPQUFzQixFQUFFLGtCQUFzRDtRQUNoRixnREFBZ0Q7UUFDaEQsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQ3hCLFFBQVEsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRS9FLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNuRCxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDeEM7SUFDSCxDQUFDO3lIQXJPVSxnQkFBZ0I7NkdBQWhCLGdCQUFnQjs7c0dBQWhCLGdCQUFnQjtrQkFENUIsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0RpcmVjdGl2ZSwgRG9DaGVjaywgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgU2ltcGxlQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7ybVhbmd1bGFyMSwgybVjb25zdGFudHMsIMm1dXBncmFkZUhlbHBlciwgybV1dGlsfSBmcm9tICcuLi9jb21tb24nO1xuXG5jb25zdCBOT1RfU1VQUE9SVEVEOiBhbnkgPSAnTk9UX1NVUFBPUlRFRCc7XG5jb25zdCBJTklUSUFMX1ZBTFVFID0ge1xuICBfX1VOSU5JVElBTElaRURfXzogdHJ1ZVxufTtcblxuY2xhc3MgQmluZGluZ3Mge1xuICB0d29XYXlCb3VuZFByb3BlcnRpZXM6IHN0cmluZ1tdID0gW107XG4gIHR3b1dheUJvdW5kTGFzdFZhbHVlczogYW55W10gPSBbXTtcblxuICBleHByZXNzaW9uQm91bmRQcm9wZXJ0aWVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIHByb3BlcnR5VG9PdXRwdXRNYXA6IHtbcHJvcE5hbWU6IHN0cmluZ106IHN0cmluZ30gPSB7fTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBBIGhlbHBlciBjbGFzcyB0aGF0IGFsbG93cyBhbiBBbmd1bGFySlMgY29tcG9uZW50IHRvIGJlIHVzZWQgZnJvbSBBbmd1bGFyLlxuICpcbiAqICpQYXJ0IG9mIHRoZSBbdXBncmFkZS9zdGF0aWNdKGFwaT9xdWVyeT11cGdyYWRlJTJGc3RhdGljKVxuICogbGlicmFyeSBmb3IgaHlicmlkIHVwZ3JhZGUgYXBwcyB0aGF0IHN1cHBvcnQgQU9UIGNvbXBpbGF0aW9uLipcbiAqXG4gKiBUaGlzIGhlbHBlciBjbGFzcyBzaG91bGQgYmUgdXNlZCBhcyBhIGJhc2UgY2xhc3MgZm9yIGNyZWF0aW5nIEFuZ3VsYXIgZGlyZWN0aXZlc1xuICogdGhhdCB3cmFwIEFuZ3VsYXJKUyBjb21wb25lbnRzIHRoYXQgbmVlZCB0byBiZSBcInVwZ3JhZGVkXCIuXG4gKlxuICogQHVzYWdlTm90ZXNcbiAqICMjIyBFeGFtcGxlc1xuICpcbiAqIExldCdzIGFzc3VtZSB0aGF0IHlvdSBoYXZlIGFuIEFuZ3VsYXJKUyBjb21wb25lbnQgY2FsbGVkIGBuZzFIZXJvYCB0aGF0IG5lZWRzXG4gKiB0byBiZSBtYWRlIGF2YWlsYWJsZSBpbiBBbmd1bGFyIHRlbXBsYXRlcy5cbiAqXG4gKiB7QGV4YW1wbGUgdXBncmFkZS9zdGF0aWMvdHMvZnVsbC9tb2R1bGUudHMgcmVnaW9uPVwibmcxLWhlcm9cIn1cbiAqXG4gKiBXZSBtdXN0IGNyZWF0ZSBhIGBEaXJlY3RpdmVgIHRoYXQgd2lsbCBtYWtlIHRoaXMgQW5ndWxhckpTIGNvbXBvbmVudFxuICogYXZhaWxhYmxlIGluc2lkZSBBbmd1bGFyIHRlbXBsYXRlcy5cbiAqXG4gKiB7QGV4YW1wbGUgdXBncmFkZS9zdGF0aWMvdHMvZnVsbC9tb2R1bGUudHMgcmVnaW9uPVwibmcxLWhlcm8td3JhcHBlclwifVxuICpcbiAqIEluIHRoaXMgZXhhbXBsZSB5b3UgY2FuIHNlZSB0aGF0IHdlIG11c3QgZGVyaXZlIGZyb20gdGhlIGBVcGdyYWRlQ29tcG9uZW50YFxuICogYmFzZSBjbGFzcyBidXQgYWxzbyBwcm92aWRlIGFuIHtAbGluayBEaXJlY3RpdmUgYEBEaXJlY3RpdmVgfSBkZWNvcmF0b3IuIFRoaXMgaXNcbiAqIGJlY2F1c2UgdGhlIEFPVCBjb21waWxlciByZXF1aXJlcyB0aGF0IHRoaXMgaW5mb3JtYXRpb24gaXMgc3RhdGljYWxseSBhdmFpbGFibGUgYXRcbiAqIGNvbXBpbGUgdGltZS5cbiAqXG4gKiBOb3RlIHRoYXQgd2UgbXVzdCBkbyB0aGUgZm9sbG93aW5nOlxuICogKiBzcGVjaWZ5IHRoZSBkaXJlY3RpdmUncyBzZWxlY3RvciAoYG5nMS1oZXJvYClcbiAqICogc3BlY2lmeSBhbGwgaW5wdXRzIGFuZCBvdXRwdXRzIHRoYXQgdGhlIEFuZ3VsYXJKUyBjb21wb25lbnQgZXhwZWN0c1xuICogKiBkZXJpdmUgZnJvbSBgVXBncmFkZUNvbXBvbmVudGBcbiAqICogY2FsbCB0aGUgYmFzZSBjbGFzcyBmcm9tIHRoZSBjb25zdHJ1Y3RvciwgcGFzc2luZ1xuICogICAqIHRoZSBBbmd1bGFySlMgbmFtZSBvZiB0aGUgY29tcG9uZW50IChgbmcxSGVyb2ApXG4gKiAgICogdGhlIGBFbGVtZW50UmVmYCBhbmQgYEluamVjdG9yYCBmb3IgdGhlIGNvbXBvbmVudCB3cmFwcGVyXG4gKlxuICogQHB1YmxpY0FwaVxuICogQGV4dGVuc2libGVcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgVXBncmFkZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBEb0NoZWNrLCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGhlbHBlcjogybV1cGdyYWRlSGVscGVyLlVwZ3JhZGVIZWxwZXI7XG5cbiAgcHJpdmF0ZSAkZWxlbWVudDogybVhbmd1bGFyMS5JQXVnbWVudGVkSlF1ZXJ5O1xuICBwcml2YXRlICRjb21wb25lbnRTY29wZTogybVhbmd1bGFyMS5JU2NvcGU7XG5cbiAgcHJpdmF0ZSBkaXJlY3RpdmU6IMm1YW5ndWxhcjEuSURpcmVjdGl2ZTtcbiAgcHJpdmF0ZSBiaW5kaW5nczogQmluZGluZ3M7XG5cbiAgcHJpdmF0ZSBjb250cm9sbGVySW5zdGFuY2U/OiDJtXVwZ3JhZGVIZWxwZXIuSUNvbnRyb2xsZXJJbnN0YW5jZTtcbiAgcHJpdmF0ZSBiaW5kaW5nRGVzdGluYXRpb24/OiDJtXVwZ3JhZGVIZWxwZXIuSUJpbmRpbmdEZXN0aW5hdGlvbjtcblxuICAvLyBXZSB3aWxsIGJlIGluc3RhbnRpYXRpbmcgdGhlIGNvbnRyb2xsZXIgaW4gdGhlIGBuZ09uSW5pdGAgaG9vaywgd2hlbiB0aGVcbiAgLy8gZmlyc3QgYG5nT25DaGFuZ2VzYCB3aWxsIGhhdmUgYmVlbiBhbHJlYWR5IHRyaWdnZXJlZC4gV2Ugc3RvcmUgdGhlXG4gIC8vIGBTaW1wbGVDaGFuZ2VzYCBhbmQgXCJwbGF5IHRoZW0gYmFja1wiIGxhdGVyLlxuICBwcml2YXRlIHBlbmRpbmdDaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzfG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgdW5yZWdpc3RlckRvQ2hlY2tXYXRjaGVyPzogRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBgVXBncmFkZUNvbXBvbmVudGAgaW5zdGFuY2UuIFlvdSBzaG91bGQgbm90IG5vcm1hbGx5IG5lZWQgdG8gZG8gdGhpcy5cbiAgICogSW5zdGVhZCB5b3Ugc2hvdWxkIGRlcml2ZSBhIG5ldyBjbGFzcyBmcm9tIHRoaXMgb25lIGFuZCBjYWxsIHRoZSBzdXBlciBjb25zdHJ1Y3RvclxuICAgKiBmcm9tIHRoZSBiYXNlIGNsYXNzLlxuICAgKlxuICAgKiB7QGV4YW1wbGUgdXBncmFkZS9zdGF0aWMvdHMvZnVsbC9tb2R1bGUudHMgcmVnaW9uPVwibmcxLWhlcm8td3JhcHBlclwiIH1cbiAgICpcbiAgICogKiBUaGUgYG5hbWVgIHBhcmFtZXRlciBzaG91bGQgYmUgdGhlIG5hbWUgb2YgdGhlIEFuZ3VsYXJKUyBkaXJlY3RpdmUuXG4gICAqICogVGhlIGBlbGVtZW50UmVmYCBhbmQgYGluamVjdG9yYCBwYXJhbWV0ZXJzIHNob3VsZCBiZSBhY3F1aXJlZCBmcm9tIEFuZ3VsYXIgYnkgZGVwZW5kZW5jeVxuICAgKiAgIGluamVjdGlvbiBpbnRvIHRoZSBiYXNlIGNsYXNzIGNvbnN0cnVjdG9yLlxuICAgKi9cbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICB0aGlzLmhlbHBlciA9IG5ldyDJtXVwZ3JhZGVIZWxwZXIuVXBncmFkZUhlbHBlcihpbmplY3RvciwgbmFtZSwgZWxlbWVudFJlZik7XG5cbiAgICB0aGlzLiRlbGVtZW50ID0gdGhpcy5oZWxwZXIuJGVsZW1lbnQ7XG5cbiAgICB0aGlzLmRpcmVjdGl2ZSA9IHRoaXMuaGVscGVyLmRpcmVjdGl2ZTtcbiAgICB0aGlzLmJpbmRpbmdzID0gdGhpcy5pbml0aWFsaXplQmluZGluZ3ModGhpcy5kaXJlY3RpdmUsIG5hbWUpO1xuXG4gICAgLy8gV2UgYXNrIGZvciB0aGUgQW5ndWxhckpTIHNjb3BlIGZyb20gdGhlIEFuZ3VsYXIgaW5qZWN0b3IsIHNpbmNlXG4gICAgLy8gd2Ugd2lsbCBwdXQgdGhlIG5ldyBjb21wb25lbnQgc2NvcGUgb250byB0aGUgbmV3IGluamVjdG9yIGZvciBlYWNoIGNvbXBvbmVudFxuICAgIGNvbnN0ICRwYXJlbnRTY29wZSA9IGluamVjdG9yLmdldCjJtWNvbnN0YW50cy4kU0NPUEUpO1xuICAgIC8vIFFVRVNUSU9OIDE6IFNob3VsZCB3ZSBjcmVhdGUgYW4gaXNvbGF0ZWQgc2NvcGUgaWYgdGhlIHNjb3BlIGlzIG9ubHkgdHJ1ZT9cbiAgICAvLyBRVUVTVElPTiAyOiBTaG91bGQgd2UgbWFrZSB0aGUgc2NvcGUgYWNjZXNzaWJsZSB0aHJvdWdoIGAkZWxlbWVudC5zY29wZSgpL2lzb2xhdGVTY29wZSgpYD9cbiAgICB0aGlzLiRjb21wb25lbnRTY29wZSA9ICRwYXJlbnRTY29wZS4kbmV3KCEhdGhpcy5kaXJlY3RpdmUuc2NvcGUpO1xuXG4gICAgdGhpcy5pbml0aWFsaXplT3V0cHV0cygpO1xuICB9XG5cbiAgLyoqIEBub2RvYyAqL1xuICBuZ09uSW5pdCgpIHtcbiAgICAvLyBDb2xsZWN0IGNvbnRlbnRzLCBpbnNlcnQgYW5kIGNvbXBpbGUgdGVtcGxhdGVcbiAgICBjb25zdCBhdHRhY2hDaGlsZE5vZGVzOiDJtWFuZ3VsYXIxLklMaW5rRm58dW5kZWZpbmVkID0gdGhpcy5oZWxwZXIucHJlcGFyZVRyYW5zY2x1c2lvbigpO1xuICAgIGNvbnN0IGxpbmtGbiA9IHRoaXMuaGVscGVyLmNvbXBpbGVUZW1wbGF0ZSgpO1xuXG4gICAgLy8gSW5zdGFudGlhdGUgY29udHJvbGxlclxuICAgIGNvbnN0IGNvbnRyb2xsZXJUeXBlID0gdGhpcy5kaXJlY3RpdmUuY29udHJvbGxlcjtcbiAgICBjb25zdCBiaW5kVG9Db250cm9sbGVyID0gdGhpcy5kaXJlY3RpdmUuYmluZFRvQ29udHJvbGxlcjtcbiAgICBsZXQgY29udHJvbGxlckluc3RhbmNlID0gY29udHJvbGxlclR5cGUgP1xuICAgICAgICB0aGlzLmhlbHBlci5idWlsZENvbnRyb2xsZXIoY29udHJvbGxlclR5cGUsIHRoaXMuJGNvbXBvbmVudFNjb3BlKSA6XG4gICAgICAgIHVuZGVmaW5lZDtcbiAgICBsZXQgYmluZGluZ0Rlc3RpbmF0aW9uOiDJtXVwZ3JhZGVIZWxwZXIuSUJpbmRpbmdEZXN0aW5hdGlvbjtcblxuICAgIGlmICghYmluZFRvQ29udHJvbGxlcikge1xuICAgICAgYmluZGluZ0Rlc3RpbmF0aW9uID0gdGhpcy4kY29tcG9uZW50U2NvcGU7XG4gICAgfSBlbHNlIGlmIChjb250cm9sbGVyVHlwZSAmJiBjb250cm9sbGVySW5zdGFuY2UpIHtcbiAgICAgIGJpbmRpbmdEZXN0aW5hdGlvbiA9IGNvbnRyb2xsZXJJbnN0YW5jZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVcGdyYWRlZCBkaXJlY3RpdmUgJyR7XG4gICAgICAgICAgdGhpcy5kaXJlY3RpdmUubmFtZX0nIHNwZWNpZmllcyAnYmluZFRvQ29udHJvbGxlcicgYnV0IG5vIGNvbnRyb2xsZXIuYCk7XG4gICAgfVxuICAgIHRoaXMuY29udHJvbGxlckluc3RhbmNlID0gY29udHJvbGxlckluc3RhbmNlO1xuICAgIHRoaXMuYmluZGluZ0Rlc3RpbmF0aW9uID0gYmluZGluZ0Rlc3RpbmF0aW9uO1xuXG4gICAgLy8gU2V0IHVwIG91dHB1dHNcbiAgICB0aGlzLmJpbmRPdXRwdXRzKGJpbmRpbmdEZXN0aW5hdGlvbik7XG5cbiAgICAvLyBSZXF1aXJlIG90aGVyIGNvbnRyb2xsZXJzXG4gICAgY29uc3QgcmVxdWlyZWRDb250cm9sbGVycyA9IHRoaXMuaGVscGVyLnJlc29sdmVBbmRCaW5kUmVxdWlyZWRDb250cm9sbGVycyhjb250cm9sbGVySW5zdGFuY2UpO1xuXG4gICAgLy8gSG9vazogJG9uQ2hhbmdlc1xuICAgIGlmICh0aGlzLnBlbmRpbmdDaGFuZ2VzKSB7XG4gICAgICB0aGlzLmZvcndhcmRDaGFuZ2VzKHRoaXMucGVuZGluZ0NoYW5nZXMsIGJpbmRpbmdEZXN0aW5hdGlvbik7XG4gICAgICB0aGlzLnBlbmRpbmdDaGFuZ2VzID0gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBIb29rOiAkb25Jbml0XG4gICAgaWYgKHRoaXMuY29udHJvbGxlckluc3RhbmNlICYmIMm1dXRpbC5pc0Z1bmN0aW9uKHRoaXMuY29udHJvbGxlckluc3RhbmNlLiRvbkluaXQpKSB7XG4gICAgICB0aGlzLmNvbnRyb2xsZXJJbnN0YW5jZS4kb25Jbml0KCk7XG4gICAgfVxuXG4gICAgLy8gSG9vazogJGRvQ2hlY2tcbiAgICBpZiAoY29udHJvbGxlckluc3RhbmNlICYmIMm1dXRpbC5pc0Z1bmN0aW9uKGNvbnRyb2xsZXJJbnN0YW5jZS4kZG9DaGVjaykpIHtcbiAgICAgIGNvbnN0IGNhbGxEb0NoZWNrID0gKCkgPT4gY29udHJvbGxlckluc3RhbmNlPy4kZG9DaGVjaz8uKCk7XG5cbiAgICAgIHRoaXMudW5yZWdpc3RlckRvQ2hlY2tXYXRjaGVyID0gdGhpcy4kY29tcG9uZW50U2NvcGUuJHBhcmVudC4kd2F0Y2goY2FsbERvQ2hlY2spO1xuICAgICAgY2FsbERvQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvLyBMaW5raW5nXG4gICAgY29uc3QgbGluayA9IHRoaXMuZGlyZWN0aXZlLmxpbms7XG4gICAgY29uc3QgcHJlTGluayA9IHR5cGVvZiBsaW5rID09ICdvYmplY3QnICYmIGxpbmsucHJlO1xuICAgIGNvbnN0IHBvc3RMaW5rID0gdHlwZW9mIGxpbmsgPT0gJ29iamVjdCcgPyBsaW5rLnBvc3QgOiBsaW5rO1xuICAgIGNvbnN0IGF0dHJzOiDJtWFuZ3VsYXIxLklBdHRyaWJ1dGVzID0gTk9UX1NVUFBPUlRFRDtcbiAgICBjb25zdCB0cmFuc2NsdWRlRm46IMm1YW5ndWxhcjEuSVRyYW5zY2x1ZGVGdW5jdGlvbiA9IE5PVF9TVVBQT1JURUQ7XG4gICAgaWYgKHByZUxpbmspIHtcbiAgICAgIHByZUxpbmsodGhpcy4kY29tcG9uZW50U2NvcGUsIHRoaXMuJGVsZW1lbnQsIGF0dHJzLCByZXF1aXJlZENvbnRyb2xsZXJzLCB0cmFuc2NsdWRlRm4pO1xuICAgIH1cblxuICAgIGxpbmtGbih0aGlzLiRjb21wb25lbnRTY29wZSwgbnVsbCEsIHtwYXJlbnRCb3VuZFRyYW5zY2x1ZGVGbjogYXR0YWNoQ2hpbGROb2Rlc30pO1xuXG4gICAgaWYgKHBvc3RMaW5rKSB7XG4gICAgICBwb3N0TGluayh0aGlzLiRjb21wb25lbnRTY29wZSwgdGhpcy4kZWxlbWVudCwgYXR0cnMsIHJlcXVpcmVkQ29udHJvbGxlcnMsIHRyYW5zY2x1ZGVGbik7XG4gICAgfVxuXG4gICAgLy8gSG9vazogJHBvc3RMaW5rXG4gICAgaWYgKHRoaXMuY29udHJvbGxlckluc3RhbmNlICYmIMm1dXRpbC5pc0Z1bmN0aW9uKHRoaXMuY29udHJvbGxlckluc3RhbmNlLiRwb3N0TGluaykpIHtcbiAgICAgIHRoaXMuY29udHJvbGxlckluc3RhbmNlLiRwb3N0TGluaygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAbm9kb2MgKi9cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmICghdGhpcy5iaW5kaW5nRGVzdGluYXRpb24pIHtcbiAgICAgIHRoaXMucGVuZGluZ0NoYW5nZXMgPSBjaGFuZ2VzO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZvcndhcmRDaGFuZ2VzKGNoYW5nZXMsIHRoaXMuYmluZGluZ0Rlc3RpbmF0aW9uKTtcbiAgICB9XG4gIH1cblxuICAvKiogQG5vZG9jICovXG4gIG5nRG9DaGVjaygpIHtcbiAgICBjb25zdCB0d29XYXlCb3VuZFByb3BlcnRpZXMgPSB0aGlzLmJpbmRpbmdzLnR3b1dheUJvdW5kUHJvcGVydGllcztcbiAgICBjb25zdCB0d29XYXlCb3VuZExhc3RWYWx1ZXMgPSB0aGlzLmJpbmRpbmdzLnR3b1dheUJvdW5kTGFzdFZhbHVlcztcbiAgICBjb25zdCBwcm9wZXJ0eVRvT3V0cHV0TWFwID0gdGhpcy5iaW5kaW5ncy5wcm9wZXJ0eVRvT3V0cHV0TWFwO1xuXG4gICAgdHdvV2F5Qm91bmRQcm9wZXJ0aWVzLmZvckVhY2goKHByb3BOYW1lLCBpZHgpID0+IHtcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy5iaW5kaW5nRGVzdGluYXRpb24/Lltwcm9wTmFtZV07XG4gICAgICBjb25zdCBvbGRWYWx1ZSA9IHR3b1dheUJvdW5kTGFzdFZhbHVlc1tpZHhdO1xuXG4gICAgICBpZiAoIU9iamVjdC5pcyhuZXdWYWx1ZSwgb2xkVmFsdWUpKSB7XG4gICAgICAgIGNvbnN0IG91dHB1dE5hbWUgPSBwcm9wZXJ0eVRvT3V0cHV0TWFwW3Byb3BOYW1lXTtcbiAgICAgICAgY29uc3QgZXZlbnRFbWl0dGVyOiBFdmVudEVtaXR0ZXI8YW55PiA9ICh0aGlzIGFzIGFueSlbb3V0cHV0TmFtZV07XG5cbiAgICAgICAgZXZlbnRFbWl0dGVyLmVtaXQobmV3VmFsdWUpO1xuICAgICAgICB0d29XYXlCb3VuZExhc3RWYWx1ZXNbaWR4XSA9IG5ld1ZhbHVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBub2RvYyAqL1xuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAoybV1dGlsLmlzRnVuY3Rpb24odGhpcy51bnJlZ2lzdGVyRG9DaGVja1dhdGNoZXIpKSB7XG4gICAgICB0aGlzLnVucmVnaXN0ZXJEb0NoZWNrV2F0Y2hlcigpO1xuICAgIH1cbiAgICB0aGlzLmhlbHBlci5vbkRlc3Ryb3kodGhpcy4kY29tcG9uZW50U2NvcGUsIHRoaXMuY29udHJvbGxlckluc3RhbmNlKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUJpbmRpbmdzKGRpcmVjdGl2ZTogybVhbmd1bGFyMS5JRGlyZWN0aXZlLCBuYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBidGNJc09iamVjdCA9IHR5cGVvZiBkaXJlY3RpdmUuYmluZFRvQ29udHJvbGxlciA9PT0gJ29iamVjdCc7XG4gICAgaWYgKGJ0Y0lzT2JqZWN0ICYmIE9iamVjdC5rZXlzKGRpcmVjdGl2ZS5zY29wZSEpLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBCaW5kaW5nIGRlZmluaXRpb25zIG9uIHNjb3BlIGFuZCBjb250cm9sbGVyIGF0IHRoZSBzYW1lIHRpbWUgaXMgbm90IHN1cHBvcnRlZC5gKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb250ZXh0ID0gYnRjSXNPYmplY3QgPyBkaXJlY3RpdmUuYmluZFRvQ29udHJvbGxlciA6IGRpcmVjdGl2ZS5zY29wZTtcbiAgICBjb25zdCBiaW5kaW5ncyA9IG5ldyBCaW5kaW5ncygpO1xuXG4gICAgaWYgKHR5cGVvZiBjb250ZXh0ID09ICdvYmplY3QnKSB7XG4gICAgICBPYmplY3Qua2V5cyhjb250ZXh0KS5mb3JFYWNoKHByb3BOYW1lID0+IHtcbiAgICAgICAgY29uc3QgZGVmaW5pdGlvbiA9IGNvbnRleHRbcHJvcE5hbWVdO1xuICAgICAgICBjb25zdCBiaW5kaW5nVHlwZSA9IGRlZmluaXRpb24uY2hhckF0KDApO1xuXG4gICAgICAgIC8vIFFVRVNUSU9OOiBXaGF0IGFib3V0IGA9KmA/IElnbm9yZT8gVGhyb3c/IFN1cHBvcnQ/XG5cbiAgICAgICAgc3dpdGNoIChiaW5kaW5nVHlwZSkge1xuICAgICAgICAgIGNhc2UgJ0AnOlxuICAgICAgICAgIGNhc2UgJzwnOlxuICAgICAgICAgICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBkbyBhbnl0aGluZyBzcGVjaWFsLiBUaGV5IHdpbGwgYmUgZGVmaW5lZCBhcyBpbnB1dHMgb24gdGhlXG4gICAgICAgICAgICAvLyB1cGdyYWRlZCBjb21wb25lbnQgZmFjYWRlIGFuZCB0aGUgY2hhbmdlIHByb3BhZ2F0aW9uIHdpbGwgYmUgaGFuZGxlZCBieVxuICAgICAgICAgICAgLy8gYG5nT25DaGFuZ2VzKClgLlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnPSc6XG4gICAgICAgICAgICBiaW5kaW5ncy50d29XYXlCb3VuZFByb3BlcnRpZXMucHVzaChwcm9wTmFtZSk7XG4gICAgICAgICAgICBiaW5kaW5ncy50d29XYXlCb3VuZExhc3RWYWx1ZXMucHVzaChJTklUSUFMX1ZBTFVFKTtcbiAgICAgICAgICAgIGJpbmRpbmdzLnByb3BlcnR5VG9PdXRwdXRNYXBbcHJvcE5hbWVdID0gcHJvcE5hbWUgKyAnQ2hhbmdlJztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJyYnOlxuICAgICAgICAgICAgYmluZGluZ3MuZXhwcmVzc2lvbkJvdW5kUHJvcGVydGllcy5wdXNoKHByb3BOYW1lKTtcbiAgICAgICAgICAgIGJpbmRpbmdzLnByb3BlcnR5VG9PdXRwdXRNYXBbcHJvcE5hbWVdID0gcHJvcE5hbWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgbGV0IGpzb24gPSBKU09OLnN0cmluZ2lmeShjb250ZXh0KTtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICBgVW5leHBlY3RlZCBtYXBwaW5nICcke2JpbmRpbmdUeXBlfScgaW4gJyR7anNvbn0nIGluICcke25hbWV9JyBkaXJlY3RpdmUuYCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBiaW5kaW5ncztcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZU91dHB1dHMoKSB7XG4gICAgLy8gSW5pdGlhbGl6ZSB0aGUgb3V0cHV0cyBmb3IgYD1gIGFuZCBgJmAgYmluZGluZ3NcbiAgICB0aGlzLmJpbmRpbmdzLnR3b1dheUJvdW5kUHJvcGVydGllcy5jb25jYXQodGhpcy5iaW5kaW5ncy5leHByZXNzaW9uQm91bmRQcm9wZXJ0aWVzKVxuICAgICAgICAuZm9yRWFjaChwcm9wTmFtZSA9PiB7XG4gICAgICAgICAgY29uc3Qgb3V0cHV0TmFtZSA9IHRoaXMuYmluZGluZ3MucHJvcGVydHlUb091dHB1dE1hcFtwcm9wTmFtZV07XG4gICAgICAgICAgKHRoaXMgYXMgYW55KVtvdXRwdXROYW1lXSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGJpbmRPdXRwdXRzKGJpbmRpbmdEZXN0aW5hdGlvbjogybV1cGdyYWRlSGVscGVyLklCaW5kaW5nRGVzdGluYXRpb24pIHtcbiAgICAvLyBCaW5kIGAmYCBiaW5kaW5ncyB0byB0aGUgY29ycmVzcG9uZGluZyBvdXRwdXRzXG4gICAgdGhpcy5iaW5kaW5ncy5leHByZXNzaW9uQm91bmRQcm9wZXJ0aWVzLmZvckVhY2gocHJvcE5hbWUgPT4ge1xuICAgICAgY29uc3Qgb3V0cHV0TmFtZSA9IHRoaXMuYmluZGluZ3MucHJvcGVydHlUb091dHB1dE1hcFtwcm9wTmFtZV07XG4gICAgICBjb25zdCBlbWl0dGVyOiBFdmVudEVtaXR0ZXI8YW55PiA9ICh0aGlzIGFzIGFueSlbb3V0cHV0TmFtZV07XG5cbiAgICAgIGJpbmRpbmdEZXN0aW5hdGlvbltwcm9wTmFtZV0gPSAodmFsdWU6IGFueSkgPT4gZW1pdHRlci5lbWl0KHZhbHVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZm9yd2FyZENoYW5nZXMoXG4gICAgICBjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzLCBiaW5kaW5nRGVzdGluYXRpb246IMm1dXBncmFkZUhlbHBlci5JQmluZGluZ0Rlc3RpbmF0aW9uKSB7XG4gICAgLy8gRm9yd2FyZCBpbnB1dCBjaGFuZ2VzIHRvIGBiaW5kaW5nRGVzdGluYXRpb25gXG4gICAgT2JqZWN0LmtleXMoY2hhbmdlcykuZm9yRWFjaChcbiAgICAgICAgcHJvcE5hbWUgPT4gYmluZGluZ0Rlc3RpbmF0aW9uW3Byb3BOYW1lXSA9IGNoYW5nZXNbcHJvcE5hbWVdLmN1cnJlbnRWYWx1ZSk7XG5cbiAgICBpZiAoybV1dGlsLmlzRnVuY3Rpb24oYmluZGluZ0Rlc3RpbmF0aW9uLiRvbkNoYW5nZXMpKSB7XG4gICAgICBiaW5kaW5nRGVzdGluYXRpb24uJG9uQ2hhbmdlcyhjaGFuZ2VzKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/esm2022/static/src/upgrade_module.mjs b/esm2022/static/src/upgrade_module.mjs index 7f98254bd83..5169c276520 100755 --- a/esm2022/static/src/upgrade_module.mjs +++ b/esm2022/static/src/upgrade_module.mjs @@ -280,11 +280,11 @@ export class UpgradeModule { } return returnValue; } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-bb47f81", ngImport: i0, type: UpgradeModule, deps: [{ token: i0.Injector }, { token: i0.NgZone }, { token: i0.PlatformRef }], target: i0.ɵɵFactoryTarget.NgModule }); } - static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-next.2+sha-bb47f81", ngImport: i0, type: UpgradeModule }); } - static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-bb47f81", ngImport: i0, type: UpgradeModule, providers: [angular1Providers] }); } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-b9ba6e6", ngImport: i0, type: UpgradeModule, deps: [{ token: i0.Injector }, { token: i0.NgZone }, { token: i0.PlatformRef }], target: i0.ɵɵFactoryTarget.NgModule }); } + static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-next.2+sha-b9ba6e6", ngImport: i0, type: UpgradeModule }); } + static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-b9ba6e6", ngImport: i0, type: UpgradeModule, providers: [angular1Providers] }); } } -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-bb47f81", ngImport: i0, type: UpgradeModule, decorators: [{ +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-b9ba6e6", ngImport: i0, type: UpgradeModule, decorators: [{ type: NgModule, args: [{ providers: [angular1Providers] }] }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.NgZone }, { type: i0.PlatformRef }]; } }); diff --git a/esm2022/static/testing/src/create_angular_testing_module.mjs b/esm2022/static/testing/src/create_angular_testing_module.mjs index b7560404678..9007d8200f1 100755 --- a/esm2022/static/testing/src/create_angular_testing_module.mjs +++ b/esm2022/static/testing/src/create_angular_testing_module.mjs @@ -17,11 +17,11 @@ export class AngularTestingModule { constructor(i) { injector = i; } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-bb47f81", ngImport: i0, type: AngularTestingModule, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.NgModule }); } - static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-next.2+sha-bb47f81", ngImport: i0, type: AngularTestingModule }); } - static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-bb47f81", ngImport: i0, type: AngularTestingModule, providers: [{ provide: ɵconstants.$INJECTOR, useFactory: $injectorFactory }] }); } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-b9ba6e6", ngImport: i0, type: AngularTestingModule, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.NgModule }); } + static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-next.2+sha-b9ba6e6", ngImport: i0, type: AngularTestingModule }); } + static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-b9ba6e6", ngImport: i0, type: AngularTestingModule, providers: [{ provide: ɵconstants.$INJECTOR, useFactory: $injectorFactory }] }); } } -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-bb47f81", ngImport: i0, type: AngularTestingModule, decorators: [{ +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-b9ba6e6", ngImport: i0, type: AngularTestingModule, decorators: [{ type: NgModule, args: [{ providers: [{ provide: ɵconstants.$INJECTOR, useFactory: $injectorFactory }] }] }], ctorParameters: function () { return [{ type: i0.Injector }]; } }); diff --git a/fesm2022/static.mjs b/fesm2022/static.mjs index 5b20b3a9b96..1c15c6a93f3 100755 --- a/fesm2022/static.mjs +++ b/fesm2022/static.mjs @@ -1,5 +1,5 @@ /** - * @license Angular v17.0.0-next.2+sha-bb47f81 + * @license Angular v17.0.0-next.2+sha-b9ba6e6 * (c) 2010-2022 Google LLC. https://angular.io/ * License: MIT */ @@ -912,7 +912,7 @@ function downgradeInjectable(token, downgradedModule = '') { /** * @publicApi */ -const VERSION = new Version('17.0.0-next.2+sha-bb47f81'); +const VERSION = new Version('17.0.0-next.2+sha-b9ba6e6'); // Constants const REQUIRE_PREFIX_RE = /^(\^\^?)?(\?)?(\^\^?)?/; @@ -1618,10 +1618,10 @@ class UpgradeComponent { bindingDestination.$onChanges(changes); } } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-bb47f81", ngImport: i0, type: UpgradeComponent, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); } - static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-next.2+sha-bb47f81", type: UpgradeComponent, usesOnChanges: true, ngImport: i0 }); } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-b9ba6e6", ngImport: i0, type: UpgradeComponent, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); } + static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-next.2+sha-b9ba6e6", type: UpgradeComponent, usesOnChanges: true, ngImport: i0 }); } } -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-bb47f81", ngImport: i0, type: UpgradeComponent, decorators: [{ +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-b9ba6e6", ngImport: i0, type: UpgradeComponent, decorators: [{ type: Directive }], ctorParameters: function () { return [{ type: undefined }, { type: i0.ElementRef }, { type: i0.Injector }]; } }); @@ -1894,11 +1894,11 @@ class UpgradeModule { } return returnValue; } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-bb47f81", ngImport: i0, type: UpgradeModule, deps: [{ token: i0.Injector }, { token: i0.NgZone }, { token: i0.PlatformRef }], target: i0.ɵɵFactoryTarget.NgModule }); } - static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-next.2+sha-bb47f81", ngImport: i0, type: UpgradeModule }); } - static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-bb47f81", ngImport: i0, type: UpgradeModule, providers: [angular1Providers] }); } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-b9ba6e6", ngImport: i0, type: UpgradeModule, deps: [{ token: i0.Injector }, { token: i0.NgZone }, { token: i0.PlatformRef }], target: i0.ɵɵFactoryTarget.NgModule }); } + static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-next.2+sha-b9ba6e6", ngImport: i0, type: UpgradeModule }); } + static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-b9ba6e6", ngImport: i0, type: UpgradeModule, providers: [angular1Providers] }); } } -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-bb47f81", ngImport: i0, type: UpgradeModule, decorators: [{ +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-b9ba6e6", ngImport: i0, type: UpgradeModule, decorators: [{ type: NgModule, args: [{ providers: [angular1Providers] }] }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.NgZone }, { type: i0.PlatformRef }]; } }); diff --git a/fesm2022/static.mjs.map b/fesm2022/static.mjs.map index e8b5283740a..e6304a80377 100755 --- a/fesm2022/static.mjs.map +++ b/fesm2022/static.mjs.map @@ -1 +1 @@ -{"version":3,"file":"static.mjs","sources":["../../../../../../packages/upgrade/src/common/src/angular1.ts","../../../../../../packages/upgrade/src/common/src/constants.ts","../../../../../../packages/upgrade/src/common/src/component_info.ts","../../../../../../packages/upgrade/src/common/src/util.ts","../../../../../../packages/upgrade/src/common/src/downgrade_component_adapter.ts","../../../../../../packages/upgrade/src/common/src/promise_util.ts","../../../../../../packages/upgrade/src/common/src/downgrade_component.ts","../../../../../../packages/upgrade/src/common/src/downgrade_injectable.ts","../../../../../../packages/upgrade/src/common/src/version.ts","../../../../../../packages/upgrade/src/common/src/upgrade_helper.ts","../../../../../../packages/upgrade/static/common.ts","../../../../../../packages/upgrade/static/src/angular1_providers.ts","../../../../../../packages/upgrade/static/src/util.ts","../../../../../../packages/upgrade/static/src/downgrade_module.ts","../../../../../../packages/upgrade/static/src/upgrade_component.ts","../../../../../../packages/upgrade/static/src/upgrade_module.ts","../../../../../../packages/upgrade/static/public_api.ts","../../../../../../packages/upgrade/static/index.ts","../../../../../../packages/upgrade/static/static.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport type Ng1Token = string;\n\nexport type Ng1Expression = string|Function;\n\nexport interface IAnnotatedFunction extends Function {\n // Older versions of `@types/angular` typings extend the global `Function` interface with\n // `$inject?: string[]`, which is not compatible with `$inject?: ReadonlyArray` (used in\n // latest versions).\n $inject?: Function extends {$inject?: string[]}? Ng1Token[]: ReadonlyArray;\n}\n\nexport type IInjectable = (Ng1Token|Function)[]|IAnnotatedFunction;\n\nexport type SingleOrListOrMap = T|T[]|{[key: string]: T};\n\nexport interface IModule {\n name: string;\n requires: (string|IInjectable)[];\n config(fn: IInjectable): IModule;\n directive(selector: string, factory: IInjectable): IModule;\n component(selector: string, component: IComponent): IModule;\n controller(name: string, type: IInjectable): IModule;\n factory(key: Ng1Token, factoryFn: IInjectable): IModule;\n value(key: Ng1Token, value: any): IModule;\n constant(token: Ng1Token, value: any): IModule;\n run(a: IInjectable): IModule;\n}\nexport interface ICompileService {\n (element: Element|NodeList|Node[]|string, transclude?: Function): ILinkFn;\n}\nexport interface ILinkFn {\n (scope: IScope, cloneAttachFn?: ICloneAttachFunction, options?: ILinkFnOptions): IAugmentedJQuery;\n $$slots?: {[slotName: string]: ILinkFn};\n}\nexport interface ILinkFnOptions {\n parentBoundTranscludeFn?: Function;\n transcludeControllers?: {[key: string]: any};\n futureParentElement?: Node;\n}\nexport interface IRootScopeService {\n $new(isolate?: boolean): IScope;\n $id: string;\n $parent: IScope;\n $root: IScope;\n $watch(exp: Ng1Expression, fn?: (a1?: any, a2?: any) => void): Function;\n $on(event: string, fn?: (event?: any, ...args: any[]) => void): Function;\n $destroy(): any;\n $apply(exp?: Ng1Expression): any;\n $digest(): any;\n $evalAsync(exp: Ng1Expression, locals?: any): void;\n $on(event: string, fn?: (event?: any, ...args: any[]) => void): Function;\n $$childTail: IScope;\n $$childHead: IScope;\n $$nextSibling: IScope;\n [key: string]: any;\n}\nexport interface IScope extends IRootScopeService {}\n\nexport interface IAngularBootstrapConfig {\n strictDi?: boolean;\n}\nexport interface IDirective {\n compile?: IDirectiveCompileFn;\n controller?: IController;\n controllerAs?: string;\n bindToController?: boolean|{[key: string]: string};\n link?: IDirectiveLinkFn|IDirectivePrePost;\n name?: string;\n priority?: number;\n replace?: boolean;\n require?: DirectiveRequireProperty;\n restrict?: string;\n scope?: boolean|{[key: string]: string};\n template?: string|Function;\n templateUrl?: string|Function;\n templateNamespace?: string;\n terminal?: boolean;\n transclude?: DirectiveTranscludeProperty;\n}\nexport type DirectiveRequireProperty = SingleOrListOrMap;\nexport type DirectiveTranscludeProperty = boolean|'element'|{[key: string]: string};\nexport interface IDirectiveCompileFn {\n (templateElement: IAugmentedJQuery, templateAttributes: IAttributes,\n transclude: ITranscludeFunction): IDirectivePrePost;\n}\nexport interface IDirectivePrePost {\n pre?: IDirectiveLinkFn;\n post?: IDirectiveLinkFn;\n}\nexport interface IDirectiveLinkFn {\n (scope: IScope, instanceElement: IAugmentedJQuery, instanceAttributes: IAttributes,\n controller: any, transclude: ITranscludeFunction): void;\n}\nexport interface IComponent {\n bindings?: {[key: string]: string};\n controller?: string|IInjectable;\n controllerAs?: string;\n require?: DirectiveRequireProperty;\n template?: string|Function;\n templateUrl?: string|Function;\n transclude?: DirectiveTranscludeProperty;\n}\nexport interface IAttributes {\n $observe(attr: string, fn: (v: string) => void): void;\n [key: string]: any;\n}\nexport interface ITranscludeFunction {\n // If the scope is provided, then the cloneAttachFn must be as well.\n (scope: IScope, cloneAttachFn: ICloneAttachFunction): IAugmentedJQuery;\n // If one argument is provided, then it's assumed to be the cloneAttachFn.\n (cloneAttachFn?: ICloneAttachFunction): IAugmentedJQuery;\n}\nexport interface ICloneAttachFunction {\n (clonedElement: IAugmentedJQuery, scope: IScope): any;\n}\nexport type IAugmentedJQuery = Node[]&{\n on?: (name: string, fn: () => void) => void;\n data?: (name: string, value?: any) => any;\n text?: () => string;\n inheritedData?: (name: string, value?: any) => any;\n children?: () => IAugmentedJQuery;\n contents?: () => IAugmentedJQuery;\n parent?: () => IAugmentedJQuery;\n empty?: () => void;\n append?: (content: IAugmentedJQuery|string) => IAugmentedJQuery;\n controller?: (name: string) => any;\n isolateScope?: () => IScope;\n injector?: () => IInjectorService;\n triggerHandler?: (eventTypeOrObject: string|Event, extraParameters?: any[]) => IAugmentedJQuery;\n remove?: () => void;\n removeData?: () => void;\n};\nexport interface IProvider {\n $get: IInjectable;\n}\nexport interface IProvideService {\n provider(token: Ng1Token, provider: IProvider): IProvider;\n factory(token: Ng1Token, factory: IInjectable): IProvider;\n service(token: Ng1Token, type: IInjectable): IProvider;\n value(token: Ng1Token, value: any): IProvider;\n constant(token: Ng1Token, value: any): void;\n decorator(token: Ng1Token, factory: IInjectable): void;\n}\nexport interface IParseService {\n (expression: string): ICompiledExpression;\n}\nexport interface ICompiledExpression {\n (context: any, locals: any): any;\n assign?: (context: any, value: any) => any;\n}\nexport interface IHttpBackendService {\n (method: string, url: string, post?: any, callback?: Function, headers?: any, timeout?: number,\n withCredentials?: boolean): void;\n}\nexport interface ICacheObject {\n put(key: string, value?: T): T;\n get(key: string): any;\n}\nexport interface ITemplateCacheService extends ICacheObject {}\nexport type IController = string|IInjectable;\nexport interface IControllerService {\n (controllerConstructor: IController, locals?: any, later?: any, ident?: any): any;\n (controllerName: string, locals?: any): any;\n}\n\nexport interface IInjectorService {\n get(key: string): any;\n has(key: string): boolean;\n}\n\nexport interface IIntervalService {\n (func: Function, delay: number, count?: number, invokeApply?: boolean,\n ...args: any[]): Promise;\n cancel(promise: Promise): boolean;\n}\n\nexport interface ITestabilityService {\n findBindings(element: Element, expression: string, opt_exactMatch?: boolean): Element[];\n findModels(element: Element, expression: string, opt_exactMatch?: boolean): Element[];\n getLocation(): string;\n setLocation(url: string): void;\n whenStable(callback: Function): void;\n}\n\nexport interface INgModelController {\n $render(): void;\n $isEmpty(value: any): boolean;\n $setValidity(validationErrorKey: string, isValid: boolean): void;\n $setPristine(): void;\n $setDirty(): void;\n $setUntouched(): void;\n $setTouched(): void;\n $rollbackViewValue(): void;\n $validate(): void;\n $commitViewValue(): void;\n $setViewValue(value: any, trigger: string): void;\n\n $viewValue: any;\n $modelValue: any;\n $parsers: Function[];\n $formatters: Function[];\n $validators: {[key: string]: Function};\n $asyncValidators: {[key: string]: Function};\n $viewChangeListeners: Function[];\n $error: Object;\n $pending: Object;\n $untouched: boolean;\n $touched: boolean;\n $pristine: boolean;\n $dirty: boolean;\n $valid: boolean;\n $invalid: boolean;\n $name: string;\n}\n\nfunction noNg(): never {\n throw new Error('AngularJS v1.x is not loaded!');\n}\n\nconst noNgElement: typeof angular.element = (() => noNg()) as any;\nnoNgElement.cleanData = noNg;\n\nlet angular: {\n bootstrap: (e: Element, modules: (string|IInjectable)[], config?: IAngularBootstrapConfig) =>\n IInjectorService,\n module: (prefix: string, dependencies?: string[]) => IModule,\n element: {\n (e: string|Element|Document|IAugmentedJQuery): IAugmentedJQuery;\n cleanData: (nodes: Node[]|NodeList) => void;\n },\n injector: (modules: Array, strictDi?: boolean) => IInjectorService,\n version: {major: number},\n resumeBootstrap: () => void,\n getTestability: (e: Element) => ITestabilityService\n} = {\n bootstrap: noNg,\n module: noNg,\n element: noNgElement,\n injector: noNg,\n version: undefined as any,\n resumeBootstrap: noNg,\n getTestability: noNg\n};\n\ntry {\n if (window.hasOwnProperty('angular')) {\n angular = (window).angular;\n }\n} catch {\n // ignore in CJS mode.\n}\n\n/**\n * @deprecated Use `setAngularJSGlobal` instead.\n *\n * @publicApi\n */\nexport function setAngularLib(ng: any): void {\n setAngularJSGlobal(ng);\n}\n\n/**\n * @deprecated Use `getAngularJSGlobal` instead.\n *\n * @publicApi\n */\nexport function getAngularLib(): any {\n return getAngularJSGlobal();\n}\n\n/**\n * Resets the AngularJS global.\n *\n * Used when AngularJS is loaded lazily, and not available on `window`.\n *\n * @publicApi\n */\nexport function setAngularJSGlobal(ng: any): void {\n angular = ng;\n}\n\n/**\n * Returns the current AngularJS global.\n *\n * @publicApi\n */\nexport function getAngularJSGlobal(): any {\n return angular;\n}\n\nexport const bootstrap: typeof angular.bootstrap = (e, modules, config?) =>\n angular.bootstrap(e, modules, config);\n\n// Do not declare as `module` to avoid webpack bug\n// (see https://github.com/angular/angular/issues/30050).\nexport const module_: typeof angular.module = (prefix, dependencies?) =>\n angular.module(prefix, dependencies);\n\nexport const element: typeof angular.element = (e => angular.element(e)) as typeof angular.element;\nelement.cleanData = nodes => angular.element.cleanData(nodes);\n\nexport const injector: typeof angular.injector =\n (modules: Array, strictDi?: boolean) => angular.injector(modules, strictDi);\n\nexport const resumeBootstrap: typeof angular.resumeBootstrap = () => angular.resumeBootstrap();\n\nexport const getTestability: typeof angular.getTestability = e => angular.getTestability(e);\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport const $COMPILE = '$compile';\nexport const $CONTROLLER = '$controller';\nexport const $DELEGATE = '$delegate';\nexport const $EXCEPTION_HANDLER = '$exceptionHandler';\nexport const $HTTP_BACKEND = '$httpBackend';\nexport const $INJECTOR = '$injector';\nexport const $INTERVAL = '$interval';\nexport const $PARSE = '$parse';\nexport const $PROVIDE = '$provide';\nexport const $ROOT_ELEMENT = '$rootElement';\nexport const $ROOT_SCOPE = '$rootScope';\nexport const $SCOPE = '$scope';\nexport const $TEMPLATE_CACHE = '$templateCache';\nexport const $TEMPLATE_REQUEST = '$templateRequest';\n\nexport const $$TESTABILITY = '$$testability';\n\nexport const COMPILER_KEY = '$$angularCompiler';\nexport const DOWNGRADED_MODULE_COUNT_KEY = '$$angularDowngradedModuleCount';\nexport const GROUP_PROJECTABLE_NODES_KEY = '$$angularGroupProjectableNodes';\nexport const INJECTOR_KEY = '$$angularInjector';\nexport const LAZY_MODULE_REF = '$$angularLazyModuleRef';\nexport const NG_ZONE_KEY = '$$angularNgZone';\nexport const UPGRADE_APP_TYPE_KEY = '$$angularUpgradeAppType';\n\nexport const REQUIRE_INJECTOR = '?^^' + INJECTOR_KEY;\nexport const REQUIRE_NG_MODEL = '?ngModel';\n\nexport const UPGRADE_MODULE_NAME = '$$UpgradeModule';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * A `PropertyBinding` represents a mapping between a property name\n * and an attribute name. It is parsed from a string of the form\n * `\"prop: attr\"`; or simply `\"propAndAttr\" where the property\n * and attribute have the same identifier.\n */\nexport class PropertyBinding {\n bracketAttr: string;\n bracketParenAttr: string;\n parenAttr: string;\n onAttr: string;\n bindAttr: string;\n bindonAttr: string;\n\n constructor(public prop: string, public attr: string) {\n this.bracketAttr = `[${this.attr}]`;\n this.parenAttr = `(${this.attr})`;\n this.bracketParenAttr = `[(${this.attr})]`;\n const capitalAttr = this.attr.charAt(0).toUpperCase() + this.attr.slice(1);\n this.onAttr = `on${capitalAttr}`;\n this.bindAttr = `bind${capitalAttr}`;\n this.bindonAttr = `bindon${capitalAttr}`;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Injector, Type, ɵNG_MOD_DEF} from '@angular/core';\n\nimport {element as angularElement, IAugmentedJQuery, IInjectorService, INgModelController, IRootScopeService} from './angular1';\nimport {$ROOT_ELEMENT, $ROOT_SCOPE, DOWNGRADED_MODULE_COUNT_KEY, UPGRADE_APP_TYPE_KEY} from './constants';\n\nconst DIRECTIVE_PREFIX_REGEXP = /^(?:x|data)[:\\-_]/i;\nconst DIRECTIVE_SPECIAL_CHARS_REGEXP = /[:\\-_]+(.)/g;\n\nexport function onError(e: any) {\n // TODO: (misko): We seem to not have a stack trace here!\n console.error(e, e.stack);\n throw e;\n}\n\n/**\n * Clean the jqLite/jQuery data on the element and all its descendants.\n * Equivalent to how jqLite/jQuery invoke `cleanData()` on an Element when removed:\n * https://github.com/angular/angular.js/blob/2e72ea13fa98bebf6ed4b5e3c45eaf5f990ed16f/src/jqLite.js#L349-L355\n * https://github.com/jquery/jquery/blob/6984d1747623dbc5e87fd6c261a5b6b1628c107c/src/manipulation.js#L182\n *\n * NOTE:\n * `cleanData()` will also invoke the AngularJS `$destroy` DOM event on the element:\n * https://github.com/angular/angular.js/blob/2e72ea13fa98bebf6ed4b5e3c45eaf5f990ed16f/src/Angular.js#L1932-L1945\n *\n * @param node The DOM node whose data needs to be cleaned.\n */\nexport function cleanData(node: Node): void {\n angularElement.cleanData([node]);\n if (isParentNode(node)) {\n angularElement.cleanData(node.querySelectorAll('*'));\n }\n}\n\nexport function controllerKey(name: string): string {\n return '$' + name + 'Controller';\n}\n\n/**\n * Destroy an AngularJS app given the app `$injector`.\n *\n * NOTE: Destroying an app is not officially supported by AngularJS, but try to do our best by\n * destroying `$rootScope` and clean the jqLite/jQuery data on `$rootElement` and all\n * descendants.\n *\n * @param $injector The `$injector` of the AngularJS app to destroy.\n */\nexport function destroyApp($injector: IInjectorService): void {\n const $rootElement: IAugmentedJQuery = $injector.get($ROOT_ELEMENT);\n const $rootScope: IRootScopeService = $injector.get($ROOT_SCOPE);\n\n $rootScope.$destroy();\n cleanData($rootElement[0]);\n}\n\nexport function directiveNormalize(name: string): string {\n return name.replace(DIRECTIVE_PREFIX_REGEXP, '')\n .replace(DIRECTIVE_SPECIAL_CHARS_REGEXP, (_, letter) => letter.toUpperCase());\n}\n\nexport function getTypeName(type: Type): string {\n // Return the name of the type or the first line of its stringified version.\n return (type as any).overriddenName || type.name || type.toString().split('\\n')[0];\n}\n\nexport function getDowngradedModuleCount($injector: IInjectorService): number {\n return $injector.has(DOWNGRADED_MODULE_COUNT_KEY) ? $injector.get(DOWNGRADED_MODULE_COUNT_KEY) :\n 0;\n}\n\nexport function getUpgradeAppType($injector: IInjectorService): UpgradeAppType {\n return $injector.has(UPGRADE_APP_TYPE_KEY) ? $injector.get(UPGRADE_APP_TYPE_KEY) :\n UpgradeAppType.None;\n}\n\nexport function isFunction(value: any): value is Function {\n return typeof value === 'function';\n}\n\nexport function isNgModuleType(value: any): value is Type {\n // NgModule class should have the `ɵmod` static property attached by AOT or JIT compiler.\n return isFunction(value) && !!value[ɵNG_MOD_DEF];\n}\n\nfunction isParentNode(node: Node|ParentNode): node is ParentNode {\n return isFunction((node as unknown as ParentNode).querySelectorAll);\n}\n\nexport function validateInjectionKey(\n $injector: IInjectorService, downgradedModule: string, injectionKey: string,\n attemptedAction: string): void {\n const upgradeAppType = getUpgradeAppType($injector);\n const downgradedModuleCount = getDowngradedModuleCount($injector);\n\n // Check for common errors.\n switch (upgradeAppType) {\n case UpgradeAppType.Dynamic:\n case UpgradeAppType.Static:\n if (downgradedModule) {\n throw new Error(\n `Error while ${attemptedAction}: 'downgradedModule' unexpectedly specified.\\n` +\n 'You should not specify a value for \\'downgradedModule\\', unless you are downgrading ' +\n 'more than one Angular module (via \\'downgradeModule()\\').');\n }\n break;\n case UpgradeAppType.Lite:\n if (!downgradedModule && (downgradedModuleCount >= 2)) {\n throw new Error(\n `Error while ${attemptedAction}: 'downgradedModule' not specified.\\n` +\n 'This application contains more than one downgraded Angular module, thus you need to ' +\n 'always specify \\'downgradedModule\\' when downgrading components and injectables.');\n }\n\n if (!$injector.has(injectionKey)) {\n throw new Error(\n `Error while ${attemptedAction}: Unable to find the specified downgraded module.\\n` +\n 'Did you forget to downgrade an Angular module or include it in the AngularJS ' +\n 'application?');\n }\n\n break;\n default:\n throw new Error(\n `Error while ${attemptedAction}: Not a valid '@angular/upgrade' application.\\n` +\n 'Did you forget to downgrade an Angular module or include it in the AngularJS ' +\n 'application?');\n }\n}\n\nexport class Deferred {\n promise: Promise;\n resolve!: (value: R|PromiseLike) => void;\n reject!: (error?: any) => void;\n\n constructor() {\n this.promise = new Promise((res, rej) => {\n this.resolve = res;\n this.reject = rej;\n });\n }\n}\n\nexport interface LazyModuleRef {\n injector?: Injector;\n promise?: Promise;\n}\n\nexport const enum UpgradeAppType {\n // App NOT using `@angular/upgrade`. (This should never happen in an `ngUpgrade` app.)\n None,\n\n // App using the deprecated `@angular/upgrade` APIs (a.k.a. dynamic `ngUpgrade`).\n Dynamic,\n\n // App using `@angular/upgrade/static` with `UpgradeModule`.\n Static,\n\n // App using @angular/upgrade/static` with `downgradeModule()` (a.k.a `ngUpgrade`-lite ).\n Lite,\n}\n\n/**\n * @return Whether the passed-in component implements the subset of the\n * `ControlValueAccessor` interface needed for AngularJS `ng-model`\n * compatibility.\n */\nfunction supportsNgModel(component: any) {\n return typeof component.writeValue === 'function' &&\n typeof component.registerOnChange === 'function';\n}\n\n/**\n * Glue the AngularJS `NgModelController` (if it exists) to the component\n * (if it implements the needed subset of the `ControlValueAccessor` interface).\n */\nexport function hookupNgModel(ngModel: INgModelController, component: any) {\n if (ngModel && supportsNgModel(component)) {\n ngModel.$render = () => {\n component.writeValue(ngModel.$viewValue);\n };\n component.registerOnChange(ngModel.$setViewValue.bind(ngModel));\n if (typeof component.registerOnTouched === 'function') {\n component.registerOnTouched(ngModel.$setTouched.bind(ngModel));\n }\n }\n}\n\n/**\n * Test two values for strict equality, accounting for the fact that `NaN !== NaN`.\n */\nexport function strictEquals(val1: any, val2: any): boolean {\n return val1 === val2 || (val1 !== val1 && val2 !== val2);\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ApplicationRef, ChangeDetectorRef, ComponentFactory, ComponentRef, EventEmitter, Injector, OnChanges, SimpleChange, SimpleChanges, StaticProvider, Testability, TestabilityRegistry} from '@angular/core';\n\nimport {IAttributes, IAugmentedJQuery, ICompileService, INgModelController, IParseService, IScope} from './angular1';\nimport {PropertyBinding} from './component_info';\nimport {$SCOPE} from './constants';\nimport {cleanData, getTypeName, hookupNgModel, strictEquals} from './util';\n\nconst INITIAL_VALUE = {\n __UNINITIALIZED__: true\n};\n\nexport class DowngradeComponentAdapter {\n private implementsOnChanges = false;\n private inputChangeCount: number = 0;\n private inputChanges: SimpleChanges = {};\n private componentScope: IScope;\n\n constructor(\n private element: IAugmentedJQuery, private attrs: IAttributes, private scope: IScope,\n private ngModel: INgModelController, private parentInjector: Injector,\n private $compile: ICompileService, private $parse: IParseService,\n private componentFactory: ComponentFactory,\n private wrapCallback: (cb: () => T) => () => T) {\n this.componentScope = scope.$new();\n }\n\n compileContents(): Node[][] {\n const compiledProjectableNodes: Node[][] = [];\n const projectableNodes: Node[][] = this.groupProjectableNodes();\n const linkFns = projectableNodes.map(nodes => this.$compile(nodes));\n\n this.element.empty!();\n\n linkFns.forEach(linkFn => {\n linkFn(this.scope, (clone: Node[]) => {\n compiledProjectableNodes.push(clone);\n this.element.append!(clone);\n });\n });\n\n return compiledProjectableNodes;\n }\n\n createComponentAndSetup(\n projectableNodes: Node[][], manuallyAttachView = false,\n propagateDigest = true): ComponentRef {\n const component = this.createComponent(projectableNodes);\n this.setupInputs(manuallyAttachView, propagateDigest, component);\n this.setupOutputs(component.componentRef);\n this.registerCleanup(component.componentRef);\n\n return component.componentRef;\n }\n\n private createComponent(projectableNodes: Node[][]): ComponentInfo {\n const providers: StaticProvider[] = [{provide: $SCOPE, useValue: this.componentScope}];\n const childInjector = Injector.create(\n {providers: providers, parent: this.parentInjector, name: 'DowngradeComponentAdapter'});\n\n const componentRef =\n this.componentFactory.create(childInjector, projectableNodes, this.element[0]);\n const viewChangeDetector = componentRef.injector.get(ChangeDetectorRef);\n const changeDetector = componentRef.changeDetectorRef;\n\n // testability hook is commonly added during component bootstrap in\n // packages/core/src/application_ref.bootstrap()\n // in downgraded application, component creation will take place here as well as adding the\n // testability hook.\n const testability = componentRef.injector.get(Testability, null);\n if (testability) {\n componentRef.injector.get(TestabilityRegistry)\n .registerApplication(componentRef.location.nativeElement, testability);\n }\n\n hookupNgModel(this.ngModel, componentRef.instance);\n\n return {viewChangeDetector, componentRef, changeDetector};\n }\n\n private setupInputs(\n manuallyAttachView: boolean, propagateDigest = true,\n {componentRef, changeDetector, viewChangeDetector}: ComponentInfo): void {\n const attrs = this.attrs;\n const inputs = this.componentFactory.inputs || [];\n for (const input of inputs) {\n const inputBinding = new PropertyBinding(input.propName, input.templateName);\n let expr: string|null = null;\n\n if (attrs.hasOwnProperty(inputBinding.attr)) {\n const observeFn = (prop => {\n let prevValue = INITIAL_VALUE;\n return (currValue: any) => {\n // Initially, both `$observe()` and `$watch()` will call this function.\n if (!strictEquals(prevValue, currValue)) {\n if (prevValue === INITIAL_VALUE) {\n prevValue = currValue;\n }\n\n this.updateInput(componentRef, prop, prevValue, currValue);\n prevValue = currValue;\n }\n };\n })(inputBinding.prop);\n attrs.$observe(inputBinding.attr, observeFn);\n\n // Use `$watch()` (in addition to `$observe()`) in order to initialize the input in time\n // for `ngOnChanges()`. This is necessary if we are already in a `$digest`, which means that\n // `ngOnChanges()` (which is called by a watcher) will run before the `$observe()` callback.\n let unwatch: Function|null = this.componentScope.$watch(() => {\n unwatch!();\n unwatch = null;\n observeFn(attrs[inputBinding.attr]);\n });\n } else if (attrs.hasOwnProperty(inputBinding.bindAttr)) {\n expr = attrs[inputBinding.bindAttr];\n } else if (attrs.hasOwnProperty(inputBinding.bracketAttr)) {\n expr = attrs[inputBinding.bracketAttr];\n } else if (attrs.hasOwnProperty(inputBinding.bindonAttr)) {\n expr = attrs[inputBinding.bindonAttr];\n } else if (attrs.hasOwnProperty(inputBinding.bracketParenAttr)) {\n expr = attrs[inputBinding.bracketParenAttr];\n }\n if (expr != null) {\n const watchFn =\n ((prop) => (currValue: unknown, prevValue: unknown) =>\n this.updateInput(componentRef, prop, prevValue, currValue))(inputBinding.prop);\n this.componentScope.$watch(expr, watchFn);\n }\n }\n\n // Invoke `ngOnChanges()` and Change Detection (when necessary)\n const detectChanges = () => changeDetector.detectChanges();\n const prototype = this.componentFactory.componentType.prototype;\n this.implementsOnChanges = !!(prototype && (prototype).ngOnChanges);\n\n this.componentScope.$watch(() => this.inputChangeCount, this.wrapCallback(() => {\n // Invoke `ngOnChanges()`\n if (this.implementsOnChanges) {\n const inputChanges = this.inputChanges;\n this.inputChanges = {};\n (componentRef.instance).ngOnChanges(inputChanges);\n }\n\n viewChangeDetector.markForCheck();\n\n // If opted out of propagating digests, invoke change detection when inputs change.\n if (!propagateDigest) {\n detectChanges();\n }\n }));\n\n // If not opted out of propagating digests, invoke change detection on every digest\n if (propagateDigest) {\n this.componentScope.$watch(this.wrapCallback(detectChanges));\n }\n\n // If necessary, attach the view so that it will be dirty-checked.\n // (Allow time for the initial input values to be set and `ngOnChanges()` to be called.)\n if (manuallyAttachView || !propagateDigest) {\n let unwatch: Function|null = this.componentScope.$watch(() => {\n unwatch!();\n unwatch = null;\n\n const appRef = this.parentInjector.get(ApplicationRef);\n appRef.attachView(componentRef.hostView);\n });\n }\n }\n\n private setupOutputs(componentRef: ComponentRef) {\n const attrs = this.attrs;\n const outputs = this.componentFactory.outputs || [];\n for (const output of outputs) {\n const outputBindings = new PropertyBinding(output.propName, output.templateName);\n const bindonAttr =\n outputBindings.bindonAttr.substring(0, outputBindings.bindonAttr.length - 6);\n const bracketParenAttr = `[(${\n outputBindings.bracketParenAttr.substring(\n 2, outputBindings.bracketParenAttr.length - 8)})]`;\n // order below is important - first update bindings then evaluate expressions\n if (attrs.hasOwnProperty(bindonAttr)) {\n this.subscribeToOutput(componentRef, outputBindings, attrs[bindonAttr], true);\n }\n if (attrs.hasOwnProperty(bracketParenAttr)) {\n this.subscribeToOutput(componentRef, outputBindings, attrs[bracketParenAttr], true);\n }\n if (attrs.hasOwnProperty(outputBindings.onAttr)) {\n this.subscribeToOutput(componentRef, outputBindings, attrs[outputBindings.onAttr]);\n }\n if (attrs.hasOwnProperty(outputBindings.parenAttr)) {\n this.subscribeToOutput(componentRef, outputBindings, attrs[outputBindings.parenAttr]);\n }\n }\n }\n\n private subscribeToOutput(\n componentRef: ComponentRef, output: PropertyBinding, expr: string,\n isAssignment: boolean = false) {\n const getter = this.$parse(expr);\n const setter = getter.assign;\n if (isAssignment && !setter) {\n throw new Error(`Expression '${expr}' is not assignable!`);\n }\n const emitter = componentRef.instance[output.prop] as EventEmitter;\n if (emitter) {\n const subscription = emitter.subscribe({\n next: isAssignment ? (v: any) => setter!(this.scope, v) :\n (v: any) => getter(this.scope, {'$event': v})\n });\n componentRef.onDestroy(() => subscription.unsubscribe());\n } else {\n throw new Error(`Missing emitter '${output.prop}' on component '${\n getTypeName(this.componentFactory.componentType)}'!`);\n }\n }\n\n private registerCleanup(componentRef: ComponentRef) {\n const testabilityRegistry = componentRef.injector.get(TestabilityRegistry);\n const destroyComponentRef = this.wrapCallback(() => componentRef.destroy());\n let destroyed = false;\n\n this.element.on!('$destroy', () => {\n // The `$destroy` event may have been triggered by the `cleanData()` call in the\n // `componentScope` `$destroy` handler below. In that case, we don't want to call\n // `componentScope.$destroy()` again.\n if (!destroyed) this.componentScope.$destroy();\n });\n this.componentScope.$on('$destroy', () => {\n if (!destroyed) {\n destroyed = true;\n testabilityRegistry.unregisterApplication(componentRef.location.nativeElement);\n\n // The `componentScope` might be getting destroyed, because an ancestor element is being\n // removed/destroyed. If that is the case, jqLite/jQuery would normally invoke `cleanData()`\n // on the removed element and all descendants.\n // https://github.com/angular/angular.js/blob/2e72ea13fa98bebf6ed4b5e3c45eaf5f990ed16f/src/jqLite.js#L349-L355\n // https://github.com/jquery/jquery/blob/6984d1747623dbc5e87fd6c261a5b6b1628c107c/src/manipulation.js#L182\n //\n // Here, however, `destroyComponentRef()` may under some circumstances remove the element\n // from the DOM and therefore it will no longer be a descendant of the removed element when\n // `cleanData()` is called. This would result in a memory leak, because the element's data\n // and event handlers (and all objects directly or indirectly referenced by them) would be\n // retained.\n //\n // To ensure the element is always properly cleaned up, we manually call `cleanData()` on\n // this element and its descendants before destroying the `ComponentRef`.\n cleanData(this.element[0]);\n\n destroyComponentRef();\n }\n });\n }\n\n private updateInput(\n componentRef: ComponentRef, prop: string, prevValue: any, currValue: any) {\n if (this.implementsOnChanges) {\n this.inputChanges[prop] = new SimpleChange(prevValue, currValue, prevValue === currValue);\n }\n\n this.inputChangeCount++;\n componentRef.instance[prop] = currValue;\n }\n\n private groupProjectableNodes() {\n let ngContentSelectors = this.componentFactory.ngContentSelectors;\n return groupNodesBySelector(ngContentSelectors, this.element.contents!());\n }\n}\n\n/**\n * Group a set of DOM nodes into `ngContent` groups, based on the given content selectors.\n */\nexport function groupNodesBySelector(ngContentSelectors: string[], nodes: Node[]): Node[][] {\n const projectableNodes: Node[][] = [];\n\n for (let i = 0, ii = ngContentSelectors.length; i < ii; ++i) {\n projectableNodes[i] = [];\n }\n\n for (let j = 0, jj = nodes.length; j < jj; ++j) {\n const node = nodes[j];\n const ngContentIndex = findMatchingNgContentIndex(node, ngContentSelectors);\n if (ngContentIndex != null) {\n projectableNodes[ngContentIndex].push(node);\n }\n }\n\n return projectableNodes;\n}\n\nfunction findMatchingNgContentIndex(element: any, ngContentSelectors: string[]): number|null {\n const ngContentIndices: number[] = [];\n let wildcardNgContentIndex: number = -1;\n for (let i = 0; i < ngContentSelectors.length; i++) {\n const selector = ngContentSelectors[i];\n if (selector === '*') {\n wildcardNgContentIndex = i;\n } else {\n if (matchesSelector(element, selector)) {\n ngContentIndices.push(i);\n }\n }\n }\n ngContentIndices.sort();\n\n if (wildcardNgContentIndex !== -1) {\n ngContentIndices.push(wildcardNgContentIndex);\n }\n return ngContentIndices.length ? ngContentIndices[0] : null;\n}\n\nfunction matchesSelector(el: any, selector: string): boolean {\n const elProto = Element.prototype;\n\n return el.nodeType === Node.ELEMENT_NODE\n // matches is supported by all browsers from 2014 onwards except non-chromium edge\n ?\n (elProto.matches ?? elProto.msMatchesSelector).call(el, selector) :\n false;\n}\n\ninterface ComponentInfo {\n componentRef: ComponentRef;\n changeDetector: ChangeDetectorRef;\n viewChangeDetector: ChangeDetectorRef;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {isFunction} from './util';\n\nexport interface Thenable {\n then(callback: (value: T) => any): any;\n}\n\nexport function isThenable(obj: unknown): obj is Thenable {\n return !!obj && isFunction((obj as any).then);\n}\n\n/**\n * Synchronous, promise-like object.\n */\nexport class SyncPromise {\n protected value: T|undefined;\n private resolved = false;\n private callbacks: ((value: T) => unknown)[] = [];\n\n static all(valuesOrPromises: (T|Thenable)[]): SyncPromise {\n const aggrPromise = new SyncPromise();\n\n let resolvedCount = 0;\n const results: T[] = [];\n const resolve = (idx: number, value: T) => {\n results[idx] = value;\n if (++resolvedCount === valuesOrPromises.length) aggrPromise.resolve(results);\n };\n\n valuesOrPromises.forEach((p, idx) => {\n if (isThenable(p)) {\n p.then(v => resolve(idx, v));\n } else {\n resolve(idx, p);\n }\n });\n\n return aggrPromise;\n }\n\n resolve(value: T): void {\n // Do nothing, if already resolved.\n if (this.resolved) return;\n\n this.value = value;\n this.resolved = true;\n\n // Run the queued callbacks.\n this.callbacks.forEach(callback => callback(value));\n this.callbacks.length = 0;\n }\n\n then(callback: (value: T) => unknown): void {\n if (this.resolved) {\n callback(this.value!);\n } else {\n this.callbacks.push(callback);\n }\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ComponentFactory, ComponentFactoryResolver, Injector, NgZone, Type} from '@angular/core';\n\nimport {IAnnotatedFunction, IAttributes, IAugmentedJQuery, ICompileService, IDirective, IInjectorService, INgModelController, IParseService, IScope} from './angular1';\nimport {$COMPILE, $INJECTOR, $PARSE, INJECTOR_KEY, LAZY_MODULE_REF, REQUIRE_INJECTOR, REQUIRE_NG_MODEL} from './constants';\nimport {DowngradeComponentAdapter} from './downgrade_component_adapter';\nimport {SyncPromise, Thenable} from './promise_util';\nimport {controllerKey, getDowngradedModuleCount, getTypeName, getUpgradeAppType, LazyModuleRef, UpgradeAppType, validateInjectionKey} from './util';\n\n\n/**\n * @description\n *\n * A helper function that allows an Angular component to be used from AngularJS.\n *\n * *Part of the [upgrade/static](api?query=upgrade%2Fstatic)\n * library for hybrid upgrade apps that support AOT compilation*\n *\n * This helper function returns a factory function to be used for registering\n * an AngularJS wrapper directive for \"downgrading\" an Angular component.\n *\n * @usageNotes\n * ### Examples\n *\n * Let's assume that you have an Angular component called `ng2Heroes` that needs\n * to be made available in AngularJS templates.\n *\n * {@example upgrade/static/ts/full/module.ts region=\"ng2-heroes\"}\n *\n * We must create an AngularJS [directive](https://docs.angularjs.org/guide/directive)\n * that will make this Angular component available inside AngularJS templates.\n * The `downgradeComponent()` function returns a factory function that we\n * can use to define the AngularJS directive that wraps the \"downgraded\" component.\n *\n * {@example upgrade/static/ts/full/module.ts region=\"ng2-heroes-wrapper\"}\n *\n * For more details and examples on downgrading Angular components to AngularJS components please\n * visit the [Upgrade guide](guide/upgrade#using-angular-components-from-angularjs-code).\n *\n * @param info contains information about the Component that is being downgraded:\n *\n * - `component: Type`: The type of the Component that will be downgraded\n * - `downgradedModule?: string`: The name of the downgraded module (if any) that the component\n * \"belongs to\", as returned by a call to `downgradeModule()`. It is the module, whose\n * corresponding Angular module will be bootstrapped, when the component needs to be instantiated.\n *
\n * (This option is only necessary when using `downgradeModule()` to downgrade more than one\n * Angular module.)\n * - `propagateDigest?: boolean`: Whether to perform {@link ChangeDetectorRef#detectChanges} on the\n * component on every\n * [$digest](https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$digest). If set to `false`,\n * change detection will still be performed when any of the component's inputs changes.\n * (Default: true)\n *\n * @returns a factory function that can be used to register the component in an\n * AngularJS module.\n *\n * @publicApi\n */\nexport function downgradeComponent(info: {\n component: Type;\n downgradedModule?: string;\n propagateDigest?: boolean;\n /** @deprecated since v4. This parameter is no longer used */\n inputs?: string[];\n /** @deprecated since v4. This parameter is no longer used */\n outputs?: string[];\n /** @deprecated since v4. This parameter is no longer used */\n selectors?: string[];\n}): any /* angular.IInjectable */ {\n const directiveFactory: IAnnotatedFunction = function(\n $compile: ICompileService, $injector: IInjectorService, $parse: IParseService): IDirective {\n // When using `downgradeModule()`, we need to handle certain things specially. For example:\n // - We always need to attach the component view to the `ApplicationRef` for it to be\n // dirty-checked.\n // - We need to ensure callbacks to Angular APIs (e.g. change detection) are run inside the\n // Angular zone.\n // NOTE: This is not needed, when using `UpgradeModule`, because `$digest()` will be run\n // inside the Angular zone (except if explicitly escaped, in which case we shouldn't\n // force it back in).\n const isNgUpgradeLite = getUpgradeAppType($injector) === UpgradeAppType.Lite;\n const wrapCallback: (cb: () => T) => typeof cb =\n !isNgUpgradeLite ? cb => cb : cb => () => NgZone.isInAngularZone() ? cb() : ngZone.run(cb);\n let ngZone: NgZone;\n\n // When downgrading multiple modules, special handling is needed wrt injectors.\n const hasMultipleDowngradedModules =\n isNgUpgradeLite && (getDowngradedModuleCount($injector) > 1);\n\n return {\n restrict: 'E',\n terminal: true,\n require: [REQUIRE_INJECTOR, REQUIRE_NG_MODEL],\n // Controller needs to be set so that `angular-component-router.js` (from beta Angular 2)\n // configuration properties can be made available. See:\n // See G3: javascript/angular2/angular1_router_lib.js\n // https://github.com/angular/angular.js/blob/47bf11ee94664367a26ed8c91b9b586d3dd420f5/src/ng/compile.js#L1670-L1691.\n controller: function() {},\n link: (scope: IScope, element: IAugmentedJQuery, attrs: IAttributes, required: any[]) => {\n // We might have to compile the contents asynchronously, because this might have been\n // triggered by `UpgradeNg1ComponentAdapterBuilder`, before the Angular templates have\n // been compiled.\n\n const ngModel: INgModelController = required[1];\n const parentInjector: Injector|Thenable|undefined = required[0];\n let moduleInjector: Injector|Thenable|undefined = undefined;\n let ranAsync = false;\n\n if (!parentInjector || hasMultipleDowngradedModules) {\n const downgradedModule = info.downgradedModule || '';\n const lazyModuleRefKey = `${LAZY_MODULE_REF}${downgradedModule}`;\n const attemptedAction = `instantiating component '${getTypeName(info.component)}'`;\n\n validateInjectionKey($injector, downgradedModule, lazyModuleRefKey, attemptedAction);\n\n const lazyModuleRef = $injector.get(lazyModuleRefKey) as LazyModuleRef;\n moduleInjector = lazyModuleRef.injector ?? lazyModuleRef.promise;\n }\n\n // Notes:\n //\n // There are two injectors: `finalModuleInjector` and `finalParentInjector` (they might be\n // the same instance, but that is irrelevant):\n // - `finalModuleInjector` is used to retrieve `ComponentFactoryResolver`, thus it must be\n // on the same tree as the `NgModule` that declares this downgraded component.\n // - `finalParentInjector` is used for all other injection purposes.\n // (Note that Angular knows to only traverse the component-tree part of that injector,\n // when looking for an injectable and then switch to the module injector.)\n //\n // There are basically three cases:\n // - If there is no parent component (thus no `parentInjector`), we bootstrap the downgraded\n // `NgModule` and use its injector as both `finalModuleInjector` and\n // `finalParentInjector`.\n // - If there is a parent component (and thus a `parentInjector`) and we are sure that it\n // belongs to the same `NgModule` as this downgraded component (e.g. because there is only\n // one downgraded module, we use that `parentInjector` as both `finalModuleInjector` and\n // `finalParentInjector`.\n // - If there is a parent component, but it may belong to a different `NgModule`, then we\n // use the `parentInjector` as `finalParentInjector` and this downgraded component's\n // declaring `NgModule`'s injector as `finalModuleInjector`.\n // Note 1: If the `NgModule` is already bootstrapped, we just get its injector (we don't\n // bootstrap again).\n // Note 2: It is possible that (while there are multiple downgraded modules) this\n // downgraded component and its parent component both belong to the same NgModule.\n // In that case, we could have used the `parentInjector` as both\n // `finalModuleInjector` and `finalParentInjector`, but (for simplicity) we are\n // treating this case as if they belong to different `NgModule`s. That doesn't\n // really affect anything, since `parentInjector` has `moduleInjector` as ancestor\n // and trying to resolve `ComponentFactoryResolver` from either one will return\n // the same instance.\n\n // If there is a parent component, use its injector as parent injector.\n // If this is a \"top-level\" Angular component, use the module injector.\n const finalParentInjector = parentInjector || moduleInjector!;\n\n // If this is a \"top-level\" Angular component or the parent component may belong to a\n // different `NgModule`, use the module injector for module-specific dependencies.\n // If there is a parent component that belongs to the same `NgModule`, use its injector.\n const finalModuleInjector = moduleInjector || parentInjector!;\n\n const doDowngrade = (injector: Injector, moduleInjector: Injector) => {\n // Retrieve `ComponentFactoryResolver` from the injector tied to the `NgModule` this\n // component belongs to.\n const componentFactoryResolver: ComponentFactoryResolver =\n moduleInjector.get(ComponentFactoryResolver);\n const componentFactory: ComponentFactory =\n componentFactoryResolver.resolveComponentFactory(info.component)!;\n\n if (!componentFactory) {\n throw new Error(`Expecting ComponentFactory for: ${getTypeName(info.component)}`);\n }\n\n const injectorPromise = new ParentInjectorPromise(element);\n const facade = new DowngradeComponentAdapter(\n element, attrs, scope, ngModel, injector, $compile, $parse, componentFactory,\n wrapCallback);\n\n const projectableNodes = facade.compileContents();\n const componentRef = facade.createComponentAndSetup(\n projectableNodes, isNgUpgradeLite, info.propagateDigest);\n\n injectorPromise.resolve(componentRef.injector);\n\n if (ranAsync) {\n // If this is run async, it is possible that it is not run inside a\n // digest and initial input values will not be detected.\n scope.$evalAsync(() => {});\n }\n };\n\n const downgradeFn =\n !isNgUpgradeLite ? doDowngrade : (pInjector: Injector, mInjector: Injector) => {\n if (!ngZone) {\n ngZone = pInjector.get(NgZone);\n }\n\n wrapCallback(() => doDowngrade(pInjector, mInjector))();\n };\n\n // NOTE:\n // Not using `ParentInjectorPromise.all()` (which is inherited from `SyncPromise`), because\n // Closure Compiler (or some related tool) complains:\n // `TypeError: ...$src$downgrade_component_ParentInjectorPromise.all is not a function`\n SyncPromise.all([finalParentInjector, finalModuleInjector])\n .then(([pInjector, mInjector]) => downgradeFn(pInjector, mInjector));\n\n ranAsync = true;\n }\n };\n };\n\n // bracket-notation because of closure - see #14441\n directiveFactory['$inject'] = [$COMPILE, $INJECTOR, $PARSE];\n return directiveFactory;\n}\n\n/**\n * Synchronous promise-like object to wrap parent injectors,\n * to preserve the synchronous nature of AngularJS's `$compile`.\n */\nclass ParentInjectorPromise extends SyncPromise {\n private injectorKey: string = controllerKey(INJECTOR_KEY);\n\n constructor(private element: IAugmentedJQuery) {\n super();\n\n // Store the promise on the element.\n element.data!(this.injectorKey, this);\n }\n\n override resolve(injector: Injector): void {\n // Store the real injector on the element.\n this.element.data!(this.injectorKey, injector);\n\n // Release the element to prevent memory leaks.\n this.element = null!;\n\n // Resolve the promise.\n super.resolve(injector);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Injector} from '@angular/core';\n\nimport {IInjectorService} from './angular1';\nimport {$INJECTOR, INJECTOR_KEY} from './constants';\nimport {getTypeName, isFunction, validateInjectionKey} from './util';\n\n/**\n * @description\n *\n * A helper function to allow an Angular service to be accessible from AngularJS.\n *\n * *Part of the [upgrade/static](api?query=upgrade%2Fstatic)\n * library for hybrid upgrade apps that support AOT compilation*\n *\n * This helper function returns a factory function that provides access to the Angular\n * service identified by the `token` parameter.\n *\n * @usageNotes\n * ### Examples\n *\n * First ensure that the service to be downgraded is provided in an `NgModule`\n * that will be part of the upgrade application. For example, let's assume we have\n * defined `HeroesService`\n *\n * {@example upgrade/static/ts/full/module.ts region=\"ng2-heroes-service\"}\n *\n * and that we have included this in our upgrade app `NgModule`\n *\n * {@example upgrade/static/ts/full/module.ts region=\"ng2-module\"}\n *\n * Now we can register the `downgradeInjectable` factory function for the service\n * on an AngularJS module.\n *\n * {@example upgrade/static/ts/full/module.ts region=\"downgrade-ng2-heroes-service\"}\n *\n * Inside an AngularJS component's controller we can get hold of the\n * downgraded service via the name we gave when downgrading.\n *\n * {@example upgrade/static/ts/full/module.ts region=\"example-app\"}\n *\n *
\n *\n * When using `downgradeModule()`, downgraded injectables will not be available until the Angular\n * module that provides them is instantiated. In order to be safe, you need to ensure that the\n * downgraded injectables are not used anywhere _outside_ the part of the app where it is\n * guaranteed that their module has been instantiated.\n *\n * For example, it is _OK_ to use a downgraded service in an upgraded component that is only used\n * from a downgraded Angular component provided by the same Angular module as the injectable, but\n * it is _not OK_ to use it in an AngularJS component that may be used independently of Angular or\n * use it in a downgraded Angular component from a different module.\n *\n *
\n *\n * @param token an `InjectionToken` that identifies a service provided from Angular.\n * @param downgradedModule the name of the downgraded module (if any) that the injectable\n * \"belongs to\", as returned by a call to `downgradeModule()`. It is the module, whose injector will\n * be used for instantiating the injectable.
\n * (This option is only necessary when using `downgradeModule()` to downgrade more than one Angular\n * module.)\n *\n * @returns a [factory function](https://docs.angularjs.org/guide/di) that can be\n * used to register the service on an AngularJS module.\n *\n * @publicApi\n */\nexport function downgradeInjectable(token: any, downgradedModule: string = ''): Function {\n const factory = function($injector: IInjectorService) {\n const injectorKey = `${INJECTOR_KEY}${downgradedModule}`;\n const injectableName = isFunction(token) ? getTypeName(token) : String(token);\n const attemptedAction = `instantiating injectable '${injectableName}'`;\n\n validateInjectionKey($injector, downgradedModule, injectorKey, attemptedAction);\n\n try {\n const injector: Injector = $injector.get(injectorKey);\n return injector.get(token);\n } catch (err) {\n throw new Error(`Error while ${attemptedAction}: ${(err as Error).message || err}`);\n }\n };\n (factory as any)['$inject'] = [$INJECTOR];\n\n return factory;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of the upgrade package.\n */\n\nimport {Version} from '@angular/core';\n\n/**\n * @publicApi\n */\nexport const VERSION = new Version('17.0.0-next.2+sha-bb47f81');\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ElementRef, Injector, SimpleChanges} from '@angular/core';\n\nimport {DirectiveRequireProperty, element as angularElement, IAugmentedJQuery, ICloneAttachFunction, ICompileService, IController, IControllerService, IDirective, IHttpBackendService, IInjectorService, ILinkFn, IScope, ITemplateCacheService, SingleOrListOrMap} from './angular1';\nimport {$COMPILE, $CONTROLLER, $HTTP_BACKEND, $INJECTOR, $TEMPLATE_CACHE} from './constants';\nimport {cleanData, controllerKey, directiveNormalize, isFunction} from './util';\n\n\n\n// Constants\nconst REQUIRE_PREFIX_RE = /^(\\^\\^?)?(\\?)?(\\^\\^?)?/;\n\n// Interfaces\nexport interface IBindingDestination {\n [key: string]: any;\n $onChanges?: (changes: SimpleChanges) => void;\n}\n\nexport interface IControllerInstance extends IBindingDestination {\n $doCheck?: () => void;\n $onDestroy?: () => void;\n $onInit?: () => void;\n $postLink?: () => void;\n}\n\n// Classes\nexport class UpgradeHelper {\n public readonly $injector: IInjectorService;\n public readonly element: Element;\n public readonly $element: IAugmentedJQuery;\n public readonly directive: IDirective;\n\n private readonly $compile: ICompileService;\n private readonly $controller: IControllerService;\n\n constructor(\n injector: Injector, private name: string, elementRef: ElementRef, directive?: IDirective) {\n this.$injector = injector.get($INJECTOR);\n this.$compile = this.$injector.get($COMPILE);\n this.$controller = this.$injector.get($CONTROLLER);\n\n this.element = elementRef.nativeElement;\n this.$element = angularElement(this.element);\n\n this.directive = directive ?? UpgradeHelper.getDirective(this.$injector, name);\n }\n\n static getDirective($injector: IInjectorService, name: string): IDirective {\n const directives: IDirective[] = $injector.get(name + 'Directive');\n if (directives.length > 1) {\n throw new Error(`Only support single directive definition for: ${name}`);\n }\n\n const directive = directives[0];\n\n // AngularJS will transform `link: xyz` to `compile: () => xyz`. So we can only tell there was a\n // user-defined `compile` if there is no `link`. In other cases, we will just ignore `compile`.\n if (directive.compile && !directive.link) notSupported(name, 'compile');\n if (directive.replace) notSupported(name, 'replace');\n if (directive.terminal) notSupported(name, 'terminal');\n\n return directive;\n }\n\n static getTemplate(\n $injector: IInjectorService, directive: IDirective, fetchRemoteTemplate = false,\n $element?: IAugmentedJQuery): string|Promise {\n if (directive.template !== undefined) {\n return getOrCall(directive.template, $element);\n } else if (directive.templateUrl) {\n const $templateCache = $injector.get($TEMPLATE_CACHE) as ITemplateCacheService;\n const url = getOrCall(directive.templateUrl, $element);\n const template = $templateCache.get(url);\n\n if (template !== undefined) {\n return template;\n } else if (!fetchRemoteTemplate) {\n throw new Error('loading directive templates asynchronously is not supported');\n }\n\n return new Promise((resolve, reject) => {\n const $httpBackend = $injector.get($HTTP_BACKEND) as IHttpBackendService;\n $httpBackend('GET', url, null, (status: number, response: string) => {\n if (status === 200) {\n resolve($templateCache.put(url, response));\n } else {\n reject(`GET component template from '${url}' returned '${status}: ${response}'`);\n }\n });\n });\n } else {\n throw new Error(`Directive '${directive.name}' is not a component, it is missing template.`);\n }\n }\n\n buildController(controllerType: IController, $scope: IScope) {\n // TODO: Document that we do not pre-assign bindings on the controller instance.\n // Quoted properties below so that this code can be optimized with Closure Compiler.\n const locals = {'$scope': $scope, '$element': this.$element};\n const controller = this.$controller(controllerType, locals, null, this.directive.controllerAs);\n\n this.$element.data?.(controllerKey(this.directive.name!), controller);\n\n return controller;\n }\n\n compileTemplate(template?: string): ILinkFn {\n if (template === undefined) {\n template =\n UpgradeHelper.getTemplate(this.$injector, this.directive, false, this.$element) as string;\n }\n\n return this.compileHtml(template);\n }\n\n onDestroy($scope: IScope, controllerInstance?: any) {\n if (controllerInstance && isFunction(controllerInstance.$onDestroy)) {\n controllerInstance.$onDestroy();\n }\n $scope.$destroy();\n cleanData(this.element);\n }\n\n prepareTransclusion(): ILinkFn|undefined {\n const transclude = this.directive.transclude;\n const contentChildNodes = this.extractChildNodes();\n const attachChildrenFn: ILinkFn = (scope, cloneAttachFn) => {\n // Since AngularJS v1.5.8, `cloneAttachFn` will try to destroy the transclusion scope if\n // `$template` is empty. Since the transcluded content comes from Angular, not AngularJS,\n // there will be no transclusion scope here.\n // Provide a dummy `scope.$destroy()` method to prevent `cloneAttachFn` from throwing.\n scope = scope || {$destroy: () => undefined};\n return cloneAttachFn!($template, scope);\n };\n let $template = contentChildNodes;\n\n if (transclude) {\n const slots = Object.create(null);\n\n if (typeof transclude === 'object') {\n $template = [];\n\n const slotMap = Object.create(null);\n const filledSlots = Object.create(null);\n\n // Parse the element selectors.\n Object.keys(transclude).forEach(slotName => {\n let selector = transclude[slotName];\n const optional = selector.charAt(0) === '?';\n selector = optional ? selector.substring(1) : selector;\n\n slotMap[selector] = slotName;\n slots[slotName] = null; // `null`: Defined but not yet filled.\n filledSlots[slotName] = optional; // Consider optional slots as filled.\n });\n\n // Add the matching elements into their slot.\n contentChildNodes.forEach(node => {\n const slotName = slotMap[directiveNormalize(node.nodeName.toLowerCase())];\n if (slotName) {\n filledSlots[slotName] = true;\n slots[slotName] = slots[slotName] || [];\n slots[slotName].push(node);\n } else {\n $template.push(node);\n }\n });\n\n // Check for required slots that were not filled.\n Object.keys(filledSlots).forEach(slotName => {\n if (!filledSlots[slotName]) {\n throw new Error(`Required transclusion slot '${slotName}' on directive: ${this.name}`);\n }\n });\n\n Object.keys(slots).filter(slotName => slots[slotName]).forEach(slotName => {\n const nodes = slots[slotName];\n slots[slotName] = (scope: IScope, cloneAttach: ICloneAttachFunction) => {\n return cloneAttach!(nodes, scope);\n };\n });\n }\n\n // Attach `$$slots` to default slot transclude fn.\n attachChildrenFn.$$slots = slots;\n\n // AngularJS v1.6+ ignores empty or whitespace-only transcluded text nodes. But Angular\n // removes all text content after the first interpolation and updates it later, after\n // evaluating the expressions. This would result in AngularJS failing to recognize text\n // nodes that start with an interpolation as transcluded content and use the fallback\n // content instead.\n // To avoid this issue, we add a\n // [zero-width non-joiner character](https://en.wikipedia.org/wiki/Zero-width_non-joiner)\n // to empty text nodes (which can only be a result of Angular removing their initial content).\n // NOTE: Transcluded text content that starts with whitespace followed by an interpolation\n // will still fail to be detected by AngularJS v1.6+\n $template.forEach(node => {\n if (node.nodeType === Node.TEXT_NODE && !node.nodeValue) {\n node.nodeValue = '\\u200C';\n }\n });\n }\n\n return attachChildrenFn;\n }\n\n resolveAndBindRequiredControllers(controllerInstance: IControllerInstance|null) {\n const directiveRequire = this.getDirectiveRequire();\n const requiredControllers = this.resolveRequire(directiveRequire);\n\n if (controllerInstance && this.directive.bindToController && isMap(directiveRequire)) {\n const requiredControllersMap = requiredControllers as {[key: string]: IControllerInstance};\n Object.keys(requiredControllersMap).forEach(key => {\n controllerInstance[key] = requiredControllersMap[key];\n });\n }\n\n return requiredControllers;\n }\n\n private compileHtml(html: string): ILinkFn {\n this.element.innerHTML = html;\n return this.$compile(this.element.childNodes);\n }\n\n private extractChildNodes(): Node[] {\n const childNodes: Node[] = [];\n let childNode: Node|null;\n\n while (childNode = this.element.firstChild) {\n this.element.removeChild(childNode);\n childNodes.push(childNode);\n }\n\n return childNodes;\n }\n\n private getDirectiveRequire(): DirectiveRequireProperty {\n const require = this.directive.require || (this.directive.controller && this.directive.name)!;\n\n if (isMap(require)) {\n Object.entries(require).forEach(([key, value]) => {\n const match = value.match(REQUIRE_PREFIX_RE)!;\n const name = value.substring(match[0].length);\n\n if (!name) {\n require[key] = match[0] + key;\n }\n });\n }\n\n return require;\n }\n\n private resolveRequire(require: DirectiveRequireProperty):\n SingleOrListOrMap|null {\n if (!require) {\n return null;\n } else if (Array.isArray(require)) {\n return require.map(req => this.resolveRequire(req));\n } else if (typeof require === 'object') {\n const value: {[key: string]: IControllerInstance} = {};\n Object.keys(require).forEach(key => value[key] = this.resolveRequire(require[key])!);\n return value;\n } else if (typeof require === 'string') {\n const match = require.match(REQUIRE_PREFIX_RE)!;\n const inheritType = match[1] || match[3];\n\n const name = require.substring(match[0].length);\n const isOptional = !!match[2];\n const searchParents = !!inheritType;\n const startOnParent = inheritType === '^^';\n\n const ctrlKey = controllerKey(name);\n const elem = startOnParent ? this.$element.parent!() : this.$element;\n const value = searchParents ? elem.inheritedData!(ctrlKey) : elem.data!(ctrlKey);\n\n if (!value && !isOptional) {\n throw new Error(\n `Unable to find required '${require}' in upgraded directive '${this.name}'.`);\n }\n\n return value;\n } else {\n throw new Error(\n `Unrecognized 'require' syntax on upgraded directive '${this.name}': ${require}`);\n }\n }\n}\n\nfunction getOrCall(property: T|Function, ...args: any[]): T {\n return isFunction(property) ? property(...args) : property;\n}\n\n// NOTE: Only works for `typeof T !== 'object'`.\nfunction isMap(value: SingleOrListOrMap): value is {[key: string]: T} {\n return value && !Array.isArray(value) && typeof value === 'object';\n}\n\nfunction notSupported(name: string, feature: string) {\n throw new Error(`Upgraded directive '${name}' contains unsupported feature: '${feature}'.`);\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Note: We intentionally use cross entry-point relative paths here. This\n * is because the primary entry-point is deprecated and we also don't have\n * it available in G3.\n */\n\n// @ng_package: ignore-cross-repo-import\nimport * as ɵangular1 from '../src/common/src/angular1';\n// @ng_package: ignore-cross-repo-import\nimport * as ɵconstants from '../src/common/src/constants';\n// @ng_package: ignore-cross-repo-import\nimport * as ɵupgradeHelper from '../src/common/src/upgrade_helper';\n// @ng_package: ignore-cross-repo-import\nimport * as ɵutil from '../src/common/src/util';\n\nexport {ɵangular1, ɵconstants, ɵupgradeHelper, ɵutil};\n","\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {IInjectorService} from '../../src/common/src/angular1';\n\n// We have to do a little dance to get the ng1 injector into the module injector.\n// We store the ng1 injector so that the provider in the module injector can access it\n// Then we \"get\" the ng1 injector from the module injector, which triggers the provider to read\n// the stored injector and release the reference to it.\nlet tempInjectorRef: IInjectorService|null = null;\nexport function setTempInjectorRef(injector: IInjectorService) {\n tempInjectorRef = injector;\n}\nexport function injectorFactory() {\n if (!tempInjectorRef) {\n throw new Error('Trying to get the AngularJS injector before it being set.');\n }\n\n const injector: IInjectorService = tempInjectorRef;\n tempInjectorRef = null; // clear the value to prevent memory leaks\n return injector;\n}\n\nexport function rootScopeFactory(i: IInjectorService) {\n return i.get('$rootScope');\n}\n\nexport function compileFactory(i: IInjectorService) {\n return i.get('$compile');\n}\n\nexport function parseFactory(i: IInjectorService) {\n return i.get('$parse');\n}\n\nexport const angular1Providers = [\n // We must use exported named functions for the ng2 factories to keep the compiler happy:\n // > Metadata collected contains an error that will be reported at runtime:\n // > Function calls are not supported.\n // > Consider replacing the function or lambda with a reference to an exported function\n {provide: '$injector', useFactory: injectorFactory, deps: []},\n {provide: '$rootScope', useFactory: rootScopeFactory, deps: ['$injector']},\n {provide: '$compile', useFactory: compileFactory, deps: ['$injector']},\n {provide: '$parse', useFactory: parseFactory, deps: ['$injector']}\n];\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Injector, ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR as NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR} from '@angular/core';\n\n\nexport class NgAdapterInjector implements Injector {\n constructor(private modInjector: Injector) {}\n\n // When Angular locate a service in the component injector tree, the not found value is set to\n // `NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR`. In such a case we should not walk up to the module\n // injector.\n // AngularJS only supports a single tree and should always check the module injector.\n get(token: any, notFoundValue?: any): any {\n if (notFoundValue === NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR) {\n return notFoundValue;\n }\n\n return this.modInjector.get(token, notFoundValue);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Injector, NgModuleFactory, NgModuleRef, PlatformRef, StaticProvider, Type} from '@angular/core';\nimport {platformBrowser} from '@angular/platform-browser';\n\nimport {ɵangular1, ɵconstants, ɵutil} from '../common';\n\nimport {angular1Providers, setTempInjectorRef} from './angular1_providers';\nimport {NgAdapterInjector} from './util';\n\n\nlet moduleUid = 0;\n\n/**\n * @description\n *\n * A helper function for creating an AngularJS module that can bootstrap an Angular module\n * \"on-demand\" (possibly lazily) when a {@link downgradeComponent downgraded component} needs to be\n * instantiated.\n *\n * *Part of the [upgrade/static](api?query=upgrade/static) library for hybrid upgrade apps that\n * support AOT compilation.*\n *\n * It allows loading/bootstrapping the Angular part of a hybrid application lazily and not having to\n * pay the cost up-front. For example, you can have an AngularJS application that uses Angular for\n * specific routes and only instantiate the Angular modules if/when the user visits one of these\n * routes.\n *\n * The Angular module will be bootstrapped once (when requested for the first time) and the same\n * reference will be used from that point onwards.\n *\n * `downgradeModule()` requires either an `NgModuleFactory`, `NgModule` class or a function:\n * - `NgModuleFactory`: If you pass an `NgModuleFactory`, it will be used to instantiate a module\n * using `platformBrowser`'s {@link PlatformRef#bootstrapModuleFactory bootstrapModuleFactory()}.\n * NOTE: this type of the argument is deprecated. Please either provide an `NgModule` class or a\n * bootstrap function instead.\n * - `NgModule` class: If you pass an NgModule class, it will be used to instantiate a module\n * using `platformBrowser`'s {@link PlatformRef#bootstrapModule bootstrapModule()}.\n * - `Function`: If you pass a function, it is expected to return a promise resolving to an\n * `NgModuleRef`. The function is called with an array of extra {@link StaticProvider Providers}\n * that are expected to be available from the returned `NgModuleRef`'s `Injector`.\n *\n * `downgradeModule()` returns the name of the created AngularJS wrapper module. You can use it to\n * declare a dependency in your main AngularJS module.\n *\n * {@example upgrade/static/ts/lite/module.ts region=\"basic-how-to\"}\n *\n * For more details on how to use `downgradeModule()` see\n * [Upgrading for Performance](guide/upgrade-performance).\n *\n * @usageNotes\n *\n * Apart from `UpgradeModule`, you can use the rest of the `upgrade/static` helpers as usual to\n * build a hybrid application. Note that the Angular pieces (e.g. downgraded services) will not be\n * available until the downgraded module has been bootstrapped, i.e. by instantiating a downgraded\n * component.\n *\n *
\n *\n * You cannot use `downgradeModule()` and `UpgradeModule` in the same hybrid application.
\n * Use one or the other.\n *\n *
\n *\n * ### Differences with `UpgradeModule`\n *\n * Besides their different API, there are two important internal differences between\n * `downgradeModule()` and `UpgradeModule` that affect the behavior of hybrid applications:\n *\n * 1. Unlike `UpgradeModule`, `downgradeModule()` does not bootstrap the main AngularJS module\n * inside the {@link NgZone Angular zone}.\n * 2. Unlike `UpgradeModule`, `downgradeModule()` does not automatically run a\n * [$digest()](https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$digest) when changes are\n * detected in the Angular part of the application.\n *\n * What this means is that applications using `UpgradeModule` will run change detection more\n * frequently in order to ensure that both frameworks are properly notified about possible changes.\n * This will inevitably result in more change detection runs than necessary.\n *\n * `downgradeModule()`, on the other side, does not try to tie the two change detection systems as\n * tightly, restricting the explicit change detection runs only to cases where it knows it is\n * necessary (e.g. when the inputs of a downgraded component change). This improves performance,\n * especially in change-detection-heavy applications, but leaves it up to the developer to manually\n * notify each framework as needed.\n *\n * For a more detailed discussion of the differences and their implications, see\n * [Upgrading for Performance](guide/upgrade-performance).\n *\n *
\n *\n * You can manually trigger a change detection run in AngularJS using\n * [scope.$apply(...)](https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$apply) or\n * [$rootScope.$digest()](https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$digest).\n *\n * You can manually trigger a change detection run in Angular using {@link NgZone#run\n * ngZone.run(...)}.\n *\n *
\n *\n * ### Downgrading multiple modules\n *\n * It is possible to downgrade multiple modules and include them in an AngularJS application. In\n * that case, each downgraded module will be bootstrapped when an associated downgraded component or\n * injectable needs to be instantiated.\n *\n * Things to keep in mind, when downgrading multiple modules:\n *\n * - Each downgraded component/injectable needs to be explicitly associated with a downgraded\n * module. See `downgradeComponent()` and `downgradeInjectable()` for more details.\n *\n * - If you want some injectables to be shared among all downgraded modules, you can provide them as\n * `StaticProvider`s, when creating the `PlatformRef` (e.g. via `platformBrowser` or\n * `platformBrowserDynamic`).\n *\n * - When using {@link PlatformRef#bootstrapmodule `bootstrapModule()`} or\n * {@link PlatformRef#bootstrapmodulefactory `bootstrapModuleFactory()`} to bootstrap the\n * downgraded modules, each one is considered a \"root\" module. As a consequence, a new instance\n * will be created for every injectable provided in `\"root\"` (via\n * {@link Injectable#providedIn `providedIn`}).\n * If this is not your intention, you can have a shared module (that will act as act as the \"root\"\n * module) and create all downgraded modules using that module's injector:\n *\n * {@example upgrade/static/ts/lite-multi-shared/module.ts region=\"shared-root-module\"}\n *\n * @publicApi\n */\nexport function downgradeModule(moduleOrBootstrapFn: Type|(\n (extraProviders: StaticProvider[]) => Promise>)): string;\n/**\n * @description\n *\n * A helper function for creating an AngularJS module that can bootstrap an Angular module\n * \"on-demand\" (possibly lazily) when a {@link downgradeComponent downgraded component} needs to be\n * instantiated.\n *\n * *Part of the [upgrade/static](api?query=upgrade/static) library for hybrid upgrade apps that\n * support AOT compilation.*\n *\n * It allows loading/bootstrapping the Angular part of a hybrid application lazily and not having to\n * pay the cost up-front. For example, you can have an AngularJS application that uses Angular for\n * specific routes and only instantiate the Angular modules if/when the user visits one of these\n * routes.\n *\n * The Angular module will be bootstrapped once (when requested for the first time) and the same\n * reference will be used from that point onwards.\n *\n * `downgradeModule()` requires either an `NgModuleFactory`, `NgModule` class or a function:\n * - `NgModuleFactory`: If you pass an `NgModuleFactory`, it will be used to instantiate a module\n * using `platformBrowser`'s {@link PlatformRef#bootstrapModuleFactory bootstrapModuleFactory()}.\n * NOTE: this type of the argument is deprecated. Please either provide an `NgModule` class or a\n * bootstrap function instead.\n * - `NgModule` class: If you pass an NgModule class, it will be used to instantiate a module\n * using `platformBrowser`'s {@link PlatformRef#bootstrapModule bootstrapModule()}.\n * - `Function`: If you pass a function, it is expected to return a promise resolving to an\n * `NgModuleRef`. The function is called with an array of extra {@link StaticProvider Providers}\n * that are expected to be available from the returned `NgModuleRef`'s `Injector`.\n *\n * `downgradeModule()` returns the name of the created AngularJS wrapper module. You can use it to\n * declare a dependency in your main AngularJS module.\n *\n * {@example upgrade/static/ts/lite/module.ts region=\"basic-how-to\"}\n *\n * For more details on how to use `downgradeModule()` see\n * [Upgrading for Performance](guide/upgrade-performance).\n *\n * @usageNotes\n *\n * Apart from `UpgradeModule`, you can use the rest of the `upgrade/static` helpers as usual to\n * build a hybrid application. Note that the Angular pieces (e.g. downgraded services) will not be\n * available until the downgraded module has been bootstrapped, i.e. by instantiating a downgraded\n * component.\n *\n *
\n *\n * You cannot use `downgradeModule()` and `UpgradeModule` in the same hybrid application.
\n * Use one or the other.\n *\n *
\n *\n * ### Differences with `UpgradeModule`\n *\n * Besides their different API, there are two important internal differences between\n * `downgradeModule()` and `UpgradeModule` that affect the behavior of hybrid applications:\n *\n * 1. Unlike `UpgradeModule`, `downgradeModule()` does not bootstrap the main AngularJS module\n * inside the {@link NgZone Angular zone}.\n * 2. Unlike `UpgradeModule`, `downgradeModule()` does not automatically run a\n * [$digest()](https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$digest) when changes are\n * detected in the Angular part of the application.\n *\n * What this means is that applications using `UpgradeModule` will run change detection more\n * frequently in order to ensure that both frameworks are properly notified about possible changes.\n * This will inevitably result in more change detection runs than necessary.\n *\n * `downgradeModule()`, on the other side, does not try to tie the two change detection systems as\n * tightly, restricting the explicit change detection runs only to cases where it knows it is\n * necessary (e.g. when the inputs of a downgraded component change). This improves performance,\n * especially in change-detection-heavy applications, but leaves it up to the developer to manually\n * notify each framework as needed.\n *\n * For a more detailed discussion of the differences and their implications, see\n * [Upgrading for Performance](guide/upgrade-performance).\n *\n *
\n *\n * You can manually trigger a change detection run in AngularJS using\n * [scope.$apply(...)](https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$apply) or\n * [$rootScope.$digest()](https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$digest).\n *\n * You can manually trigger a change detection run in Angular using {@link NgZone#run\n * ngZone.run(...)}.\n *\n *
\n *\n * ### Downgrading multiple modules\n *\n * It is possible to downgrade multiple modules and include them in an AngularJS application. In\n * that case, each downgraded module will be bootstrapped when an associated downgraded component or\n * injectable needs to be instantiated.\n *\n * Things to keep in mind, when downgrading multiple modules:\n *\n * - Each downgraded component/injectable needs to be explicitly associated with a downgraded\n * module. See `downgradeComponent()` and `downgradeInjectable()` for more details.\n *\n * - If you want some injectables to be shared among all downgraded modules, you can provide them as\n * `StaticProvider`s, when creating the `PlatformRef` (e.g. via `platformBrowser` or\n * `platformBrowserDynamic`).\n *\n * - When using {@link PlatformRef#bootstrapmodule `bootstrapModule()`} or\n * {@link PlatformRef#bootstrapmodulefactory `bootstrapModuleFactory()`} to bootstrap the\n * downgraded modules, each one is considered a \"root\" module. As a consequence, a new instance\n * will be created for every injectable provided in `\"root\"` (via\n * {@link Injectable#providedIn `providedIn`}).\n * If this is not your intention, you can have a shared module (that will act as act as the \"root\"\n * module) and create all downgraded modules using that module's injector:\n *\n * {@example upgrade/static/ts/lite-multi-shared/module.ts region=\"shared-root-module\"}\n *\n * @publicApi\n *\n * @deprecated Passing `NgModuleFactory` as the `downgradeModule` function argument is deprecated,\n * please pass an NgModule class reference instead.\n */\nexport function downgradeModule(moduleOrBootstrapFn: NgModuleFactory): string;\n/**\n * @description\n *\n * A helper function for creating an AngularJS module that can bootstrap an Angular module\n * \"on-demand\" (possibly lazily) when a {@link downgradeComponent downgraded component} needs to be\n * instantiated.\n *\n * *Part of the [upgrade/static](api?query=upgrade/static) library for hybrid upgrade apps that\n * support AOT compilation.*\n *\n * It allows loading/bootstrapping the Angular part of a hybrid application lazily and not having to\n * pay the cost up-front. For example, you can have an AngularJS application that uses Angular for\n * specific routes and only instantiate the Angular modules if/when the user visits one of these\n * routes.\n *\n * The Angular module will be bootstrapped once (when requested for the first time) and the same\n * reference will be used from that point onwards.\n *\n * `downgradeModule()` requires either an `NgModuleFactory`, `NgModule` class or a function:\n * - `NgModuleFactory`: If you pass an `NgModuleFactory`, it will be used to instantiate a module\n * using `platformBrowser`'s {@link PlatformRef#bootstrapModuleFactory bootstrapModuleFactory()}.\n * NOTE: this type of the argument is deprecated. Please either provide an `NgModule` class or a\n * bootstrap function instead.\n * - `NgModule` class: If you pass an NgModule class, it will be used to instantiate a module\n * using `platformBrowser`'s {@link PlatformRef#bootstrapModule bootstrapModule()}.\n * - `Function`: If you pass a function, it is expected to return a promise resolving to an\n * `NgModuleRef`. The function is called with an array of extra {@link StaticProvider Providers}\n * that are expected to be available from the returned `NgModuleRef`'s `Injector`.\n *\n * `downgradeModule()` returns the name of the created AngularJS wrapper module. You can use it to\n * declare a dependency in your main AngularJS module.\n *\n * {@example upgrade/static/ts/lite/module.ts region=\"basic-how-to\"}\n *\n * For more details on how to use `downgradeModule()` see\n * [Upgrading for Performance](guide/upgrade-performance).\n *\n * @usageNotes\n *\n * Apart from `UpgradeModule`, you can use the rest of the `upgrade/static` helpers as usual to\n * build a hybrid application. Note that the Angular pieces (e.g. downgraded services) will not be\n * available until the downgraded module has been bootstrapped, i.e. by instantiating a downgraded\n * component.\n *\n *
\n *\n * You cannot use `downgradeModule()` and `UpgradeModule` in the same hybrid application.
\n * Use one or the other.\n *\n *
\n *\n * ### Differences with `UpgradeModule`\n *\n * Besides their different API, there are two important internal differences between\n * `downgradeModule()` and `UpgradeModule` that affect the behavior of hybrid applications:\n *\n * 1. Unlike `UpgradeModule`, `downgradeModule()` does not bootstrap the main AngularJS module\n * inside the {@link NgZone Angular zone}.\n * 2. Unlike `UpgradeModule`, `downgradeModule()` does not automatically run a\n * [$digest()](https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$digest) when changes are\n * detected in the Angular part of the application.\n *\n * What this means is that applications using `UpgradeModule` will run change detection more\n * frequently in order to ensure that both frameworks are properly notified about possible changes.\n * This will inevitably result in more change detection runs than necessary.\n *\n * `downgradeModule()`, on the other side, does not try to tie the two change detection systems as\n * tightly, restricting the explicit change detection runs only to cases where it knows it is\n * necessary (e.g. when the inputs of a downgraded component change). This improves performance,\n * especially in change-detection-heavy applications, but leaves it up to the developer to manually\n * notify each framework as needed.\n *\n * For a more detailed discussion of the differences and their implications, see\n * [Upgrading for Performance](guide/upgrade-performance).\n *\n *
\n *\n * You can manually trigger a change detection run in AngularJS using\n * [scope.$apply(...)](https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$apply) or\n * [$rootScope.$digest()](https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$digest).\n *\n * You can manually trigger a change detection run in Angular using {@link NgZone#run\n * ngZone.run(...)}.\n *\n *
\n *\n * ### Downgrading multiple modules\n *\n * It is possible to downgrade multiple modules and include them in an AngularJS application. In\n * that case, each downgraded module will be bootstrapped when an associated downgraded component or\n * injectable needs to be instantiated.\n *\n * Things to keep in mind, when downgrading multiple modules:\n *\n * - Each downgraded component/injectable needs to be explicitly associated with a downgraded\n * module. See `downgradeComponent()` and `downgradeInjectable()` for more details.\n *\n * - If you want some injectables to be shared among all downgraded modules, you can provide them as\n * `StaticProvider`s, when creating the `PlatformRef` (e.g. via `platformBrowser` or\n * `platformBrowserDynamic`).\n *\n * - When using {@link PlatformRef#bootstrapmodule `bootstrapModule()`} or\n * {@link PlatformRef#bootstrapmodulefactory `bootstrapModuleFactory()`} to bootstrap the\n * downgraded modules, each one is considered a \"root\" module. As a consequence, a new instance\n * will be created for every injectable provided in `\"root\"` (via\n * {@link Injectable#providedIn `providedIn`}).\n * If this is not your intention, you can have a shared module (that will act as act as the \"root\"\n * module) and create all downgraded modules using that module's injector:\n *\n * {@example upgrade/static/ts/lite-multi-shared/module.ts region=\"shared-root-module\"}\n *\n * @publicApi\n */\nexport function downgradeModule(moduleOrBootstrapFn: Type|NgModuleFactory|(\n (extraProviders: StaticProvider[]) => Promise>)): string {\n const lazyModuleName = `${ɵconstants.UPGRADE_MODULE_NAME}.lazy${++moduleUid}`;\n const lazyModuleRefKey = `${ɵconstants.LAZY_MODULE_REF}${lazyModuleName}`;\n const lazyInjectorKey = `${ɵconstants.INJECTOR_KEY}${lazyModuleName}`;\n\n let bootstrapFn: (extraProviders: StaticProvider[]) => Promise>;\n if (ɵutil.isNgModuleType(moduleOrBootstrapFn)) {\n // NgModule class\n bootstrapFn = (extraProviders: StaticProvider[]) =>\n platformBrowser(extraProviders).bootstrapModule(moduleOrBootstrapFn);\n } else if (!ɵutil.isFunction(moduleOrBootstrapFn)) {\n // NgModule factory\n bootstrapFn = (extraProviders: StaticProvider[]) =>\n platformBrowser(extraProviders).bootstrapModuleFactory(moduleOrBootstrapFn);\n } else {\n // bootstrap function\n bootstrapFn = moduleOrBootstrapFn;\n }\n\n let injector: Injector;\n\n // Create an ng1 module to bootstrap.\n ɵangular1.module_(lazyModuleName, [])\n .constant(ɵconstants.UPGRADE_APP_TYPE_KEY, ɵutil.UpgradeAppType.Lite)\n .factory(ɵconstants.INJECTOR_KEY, [lazyInjectorKey, identity])\n .factory(\n lazyInjectorKey,\n () => {\n if (!injector) {\n throw new Error(\n 'Trying to get the Angular injector before bootstrapping the corresponding ' +\n 'Angular module.');\n }\n return injector;\n })\n .factory(ɵconstants.LAZY_MODULE_REF, [lazyModuleRefKey, identity])\n .factory(\n lazyModuleRefKey,\n [\n ɵconstants.$INJECTOR,\n ($injector: ɵangular1.IInjectorService) => {\n setTempInjectorRef($injector);\n const result: ɵutil.LazyModuleRef = {\n promise: bootstrapFn(angular1Providers).then(ref => {\n injector = result.injector = new NgAdapterInjector(ref.injector);\n injector.get(ɵconstants.$INJECTOR);\n\n // Destroy the AngularJS app once the Angular `PlatformRef` is destroyed.\n // This does not happen in a typical SPA scenario, but it might be useful for\n // other use-cases where disposing of an Angular/AngularJS app is necessary\n // (such as Hot Module Replacement (HMR)).\n // See https://github.com/angular/angular/issues/39935.\n injector.get(PlatformRef).onDestroy(() => ɵutil.destroyApp($injector));\n\n return injector;\n })\n };\n return result;\n }\n ])\n .config([\n ɵconstants.$INJECTOR, ɵconstants.$PROVIDE,\n ($injector: ɵangular1.IInjectorService, $provide: ɵangular1.IProvideService) => {\n $provide.constant(\n ɵconstants.DOWNGRADED_MODULE_COUNT_KEY,\n ɵutil.getDowngradedModuleCount($injector) + 1);\n }\n ]);\n\n return lazyModuleName;\n}\n\nfunction identity(x: T): T {\n return x;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, DoCheck, ElementRef, EventEmitter, Injector, OnChanges, OnDestroy, OnInit, SimpleChanges} from '@angular/core';\n\nimport {ɵangular1, ɵconstants, ɵupgradeHelper, ɵutil} from '../common';\n\nconst NOT_SUPPORTED: any = 'NOT_SUPPORTED';\nconst INITIAL_VALUE = {\n __UNINITIALIZED__: true\n};\n\nclass Bindings {\n twoWayBoundProperties: string[] = [];\n twoWayBoundLastValues: any[] = [];\n\n expressionBoundProperties: string[] = [];\n\n propertyToOutputMap: {[propName: string]: string} = {};\n}\n\n/**\n * @description\n *\n * A helper class that allows an AngularJS component to be used from Angular.\n *\n * *Part of the [upgrade/static](api?query=upgrade%2Fstatic)\n * library for hybrid upgrade apps that support AOT compilation.*\n *\n * This helper class should be used as a base class for creating Angular directives\n * that wrap AngularJS components that need to be \"upgraded\".\n *\n * @usageNotes\n * ### Examples\n *\n * Let's assume that you have an AngularJS component called `ng1Hero` that needs\n * to be made available in Angular templates.\n *\n * {@example upgrade/static/ts/full/module.ts region=\"ng1-hero\"}\n *\n * We must create a `Directive` that will make this AngularJS component\n * available inside Angular templates.\n *\n * {@example upgrade/static/ts/full/module.ts region=\"ng1-hero-wrapper\"}\n *\n * In this example you can see that we must derive from the `UpgradeComponent`\n * base class but also provide an {@link Directive `@Directive`} decorator. This is\n * because the AOT compiler requires that this information is statically available at\n * compile time.\n *\n * Note that we must do the following:\n * * specify the directive's selector (`ng1-hero`)\n * * specify all inputs and outputs that the AngularJS component expects\n * * derive from `UpgradeComponent`\n * * call the base class from the constructor, passing\n * * the AngularJS name of the component (`ng1Hero`)\n * * the `ElementRef` and `Injector` for the component wrapper\n *\n * @publicApi\n * @extensible\n */\n@Directive()\nexport class UpgradeComponent implements OnInit, OnChanges, DoCheck, OnDestroy {\n private helper: ɵupgradeHelper.UpgradeHelper;\n\n private $element: ɵangular1.IAugmentedJQuery;\n private $componentScope: ɵangular1.IScope;\n\n private directive: ɵangular1.IDirective;\n private bindings: Bindings;\n\n private controllerInstance?: ɵupgradeHelper.IControllerInstance;\n private bindingDestination?: ɵupgradeHelper.IBindingDestination;\n\n // We will be instantiating the controller in the `ngOnInit` hook, when the\n // first `ngOnChanges` will have been already triggered. We store the\n // `SimpleChanges` and \"play them back\" later.\n private pendingChanges: SimpleChanges|null = null;\n\n private unregisterDoCheckWatcher?: Function;\n\n /**\n * Create a new `UpgradeComponent` instance. You should not normally need to do this.\n * Instead you should derive a new class from this one and call the super constructor\n * from the base class.\n *\n * {@example upgrade/static/ts/full/module.ts region=\"ng1-hero-wrapper\" }\n *\n * * The `name` parameter should be the name of the AngularJS directive.\n * * The `elementRef` and `injector` parameters should be acquired from Angular by dependency\n * injection into the base class constructor.\n */\n constructor(name: string, elementRef: ElementRef, injector: Injector) {\n this.helper = new ɵupgradeHelper.UpgradeHelper(injector, name, elementRef);\n\n this.$element = this.helper.$element;\n\n this.directive = this.helper.directive;\n this.bindings = this.initializeBindings(this.directive, name);\n\n // We ask for the AngularJS scope from the Angular injector, since\n // we will put the new component scope onto the new injector for each component\n const $parentScope = injector.get(ɵconstants.$SCOPE);\n // QUESTION 1: Should we create an isolated scope if the scope is only true?\n // QUESTION 2: Should we make the scope accessible through `$element.scope()/isolateScope()`?\n this.$componentScope = $parentScope.$new(!!this.directive.scope);\n\n this.initializeOutputs();\n }\n\n /** @nodoc */\n ngOnInit() {\n // Collect contents, insert and compile template\n const attachChildNodes: ɵangular1.ILinkFn|undefined = this.helper.prepareTransclusion();\n const linkFn = this.helper.compileTemplate();\n\n // Instantiate controller\n const controllerType = this.directive.controller;\n const bindToController = this.directive.bindToController;\n let controllerInstance = controllerType ?\n this.helper.buildController(controllerType, this.$componentScope) :\n undefined;\n let bindingDestination: ɵupgradeHelper.IBindingDestination;\n\n if (!bindToController) {\n bindingDestination = this.$componentScope;\n } else if (controllerType && controllerInstance) {\n bindingDestination = controllerInstance;\n } else {\n throw new Error(`Upgraded directive '${\n this.directive.name}' specifies 'bindToController' but no controller.`);\n }\n this.controllerInstance = controllerInstance;\n this.bindingDestination = bindingDestination;\n\n // Set up outputs\n this.bindOutputs(bindingDestination);\n\n // Require other controllers\n const requiredControllers = this.helper.resolveAndBindRequiredControllers(controllerInstance);\n\n // Hook: $onChanges\n if (this.pendingChanges) {\n this.forwardChanges(this.pendingChanges, bindingDestination);\n this.pendingChanges = null;\n }\n\n // Hook: $onInit\n if (this.controllerInstance && ɵutil.isFunction(this.controllerInstance.$onInit)) {\n this.controllerInstance.$onInit();\n }\n\n // Hook: $doCheck\n if (controllerInstance && ɵutil.isFunction(controllerInstance.$doCheck)) {\n const callDoCheck = () => controllerInstance?.$doCheck?.();\n\n this.unregisterDoCheckWatcher = this.$componentScope.$parent.$watch(callDoCheck);\n callDoCheck();\n }\n\n // Linking\n const link = this.directive.link;\n const preLink = typeof link == 'object' && link.pre;\n const postLink = typeof link == 'object' ? link.post : link;\n const attrs: ɵangular1.IAttributes = NOT_SUPPORTED;\n const transcludeFn: ɵangular1.ITranscludeFunction = NOT_SUPPORTED;\n if (preLink) {\n preLink(this.$componentScope, this.$element, attrs, requiredControllers, transcludeFn);\n }\n\n linkFn(this.$componentScope, null!, {parentBoundTranscludeFn: attachChildNodes});\n\n if (postLink) {\n postLink(this.$componentScope, this.$element, attrs, requiredControllers, transcludeFn);\n }\n\n // Hook: $postLink\n if (this.controllerInstance && ɵutil.isFunction(this.controllerInstance.$postLink)) {\n this.controllerInstance.$postLink();\n }\n }\n\n /** @nodoc */\n ngOnChanges(changes: SimpleChanges) {\n if (!this.bindingDestination) {\n this.pendingChanges = changes;\n } else {\n this.forwardChanges(changes, this.bindingDestination);\n }\n }\n\n /** @nodoc */\n ngDoCheck() {\n const twoWayBoundProperties = this.bindings.twoWayBoundProperties;\n const twoWayBoundLastValues = this.bindings.twoWayBoundLastValues;\n const propertyToOutputMap = this.bindings.propertyToOutputMap;\n\n twoWayBoundProperties.forEach((propName, idx) => {\n const newValue = this.bindingDestination?.[propName];\n const oldValue = twoWayBoundLastValues[idx];\n\n if (!Object.is(newValue, oldValue)) {\n const outputName = propertyToOutputMap[propName];\n const eventEmitter: EventEmitter = (this as any)[outputName];\n\n eventEmitter.emit(newValue);\n twoWayBoundLastValues[idx] = newValue;\n }\n });\n }\n\n /** @nodoc */\n ngOnDestroy() {\n if (ɵutil.isFunction(this.unregisterDoCheckWatcher)) {\n this.unregisterDoCheckWatcher();\n }\n this.helper.onDestroy(this.$componentScope, this.controllerInstance);\n }\n\n private initializeBindings(directive: ɵangular1.IDirective, name: string) {\n const btcIsObject = typeof directive.bindToController === 'object';\n if (btcIsObject && Object.keys(directive.scope!).length) {\n throw new Error(\n `Binding definitions on scope and controller at the same time is not supported.`);\n }\n\n const context = btcIsObject ? directive.bindToController : directive.scope;\n const bindings = new Bindings();\n\n if (typeof context == 'object') {\n Object.keys(context).forEach(propName => {\n const definition = context[propName];\n const bindingType = definition.charAt(0);\n\n // QUESTION: What about `=*`? Ignore? Throw? Support?\n\n switch (bindingType) {\n case '@':\n case '<':\n // We don't need to do anything special. They will be defined as inputs on the\n // upgraded component facade and the change propagation will be handled by\n // `ngOnChanges()`.\n break;\n case '=':\n bindings.twoWayBoundProperties.push(propName);\n bindings.twoWayBoundLastValues.push(INITIAL_VALUE);\n bindings.propertyToOutputMap[propName] = propName + 'Change';\n break;\n case '&':\n bindings.expressionBoundProperties.push(propName);\n bindings.propertyToOutputMap[propName] = propName;\n break;\n default:\n let json = JSON.stringify(context);\n throw new Error(\n `Unexpected mapping '${bindingType}' in '${json}' in '${name}' directive.`);\n }\n });\n }\n\n return bindings;\n }\n\n private initializeOutputs() {\n // Initialize the outputs for `=` and `&` bindings\n this.bindings.twoWayBoundProperties.concat(this.bindings.expressionBoundProperties)\n .forEach(propName => {\n const outputName = this.bindings.propertyToOutputMap[propName];\n (this as any)[outputName] = new EventEmitter();\n });\n }\n\n private bindOutputs(bindingDestination: ɵupgradeHelper.IBindingDestination) {\n // Bind `&` bindings to the corresponding outputs\n this.bindings.expressionBoundProperties.forEach(propName => {\n const outputName = this.bindings.propertyToOutputMap[propName];\n const emitter: EventEmitter = (this as any)[outputName];\n\n bindingDestination[propName] = (value: any) => emitter.emit(value);\n });\n }\n\n private forwardChanges(\n changes: SimpleChanges, bindingDestination: ɵupgradeHelper.IBindingDestination) {\n // Forward input changes to `bindingDestination`\n Object.keys(changes).forEach(\n propName => bindingDestination[propName] = changes[propName].currentValue);\n\n if (ɵutil.isFunction(bindingDestination.$onChanges)) {\n bindingDestination.$onChanges(changes);\n }\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Injector, NgModule, NgZone, PlatformRef, Testability} from '@angular/core';\n\nimport {ɵangular1, ɵconstants, ɵutil} from '../common';\n\nimport {angular1Providers, setTempInjectorRef} from './angular1_providers';\nimport {NgAdapterInjector} from './util';\n\n\n\n/**\n * @description\n *\n * An `NgModule`, which you import to provide AngularJS core services,\n * and has an instance method used to bootstrap the hybrid upgrade application.\n *\n * *Part of the [upgrade/static](api?query=upgrade/static)\n * library for hybrid upgrade apps that support AOT compilation*\n *\n * The `upgrade/static` package contains helpers that allow AngularJS and Angular components\n * to be used together inside a hybrid upgrade application, which supports AOT compilation.\n *\n * Specifically, the classes and functions in the `upgrade/static` module allow the following:\n *\n * 1. Creation of an Angular directive that wraps and exposes an AngularJS component so\n * that it can be used in an Angular template. See `UpgradeComponent`.\n * 2. Creation of an AngularJS directive that wraps and exposes an Angular component so\n * that it can be used in an AngularJS template. See `downgradeComponent`.\n * 3. Creation of an Angular root injector provider that wraps and exposes an AngularJS\n * service so that it can be injected into an Angular context. See\n * {@link UpgradeModule#upgrading-an-angular-1-service Upgrading an AngularJS service} below.\n * 4. Creation of an AngularJS service that wraps and exposes an Angular injectable\n * so that it can be injected into an AngularJS context. See `downgradeInjectable`.\n * 3. Bootstrapping of a hybrid Angular application which contains both of the frameworks\n * coexisting in a single application.\n *\n * @usageNotes\n *\n * ```ts\n * import {UpgradeModule} from '@angular/upgrade/static';\n * ```\n *\n * See also the {@link UpgradeModule#examples examples} below.\n *\n * ### Mental Model\n *\n * When reasoning about how a hybrid application works it is useful to have a mental model which\n * describes what is happening and explains what is happening at the lowest level.\n *\n * 1. There are two independent frameworks running in a single application, each framework treats\n * the other as a black box.\n * 2. Each DOM element on the page is owned exactly by one framework. Whichever framework\n * instantiated the element is the owner. Each framework only updates/interacts with its own\n * DOM elements and ignores others.\n * 3. AngularJS directives always execute inside the AngularJS framework codebase regardless of\n * where they are instantiated.\n * 4. Angular components always execute inside the Angular framework codebase regardless of\n * where they are instantiated.\n * 5. An AngularJS component can be \"upgraded\"\" to an Angular component. This is achieved by\n * defining an Angular directive, which bootstraps the AngularJS component at its location\n * in the DOM. See `UpgradeComponent`.\n * 6. An Angular component can be \"downgraded\" to an AngularJS component. This is achieved by\n * defining an AngularJS directive, which bootstraps the Angular component at its location\n * in the DOM. See `downgradeComponent`.\n * 7. Whenever an \"upgraded\"/\"downgraded\" component is instantiated the host element is owned by\n * the framework doing the instantiation. The other framework then instantiates and owns the\n * view for that component.\n * 1. This implies that the component bindings will always follow the semantics of the\n * instantiation framework.\n * 2. The DOM attributes are parsed by the framework that owns the current template. So\n * attributes in AngularJS templates must use kebab-case, while AngularJS templates must use\n * camelCase.\n * 3. However the template binding syntax will always use the Angular style, e.g. square\n * brackets (`[...]`) for property binding.\n * 8. Angular is bootstrapped first; AngularJS is bootstrapped second. AngularJS always owns the\n * root component of the application.\n * 9. The new application is running in an Angular zone, and therefore it no longer needs calls to\n * `$apply()`.\n *\n * ### The `UpgradeModule` class\n *\n * This class is an `NgModule`, which you import to provide AngularJS core services,\n * and has an instance method used to bootstrap the hybrid upgrade application.\n *\n * * Core AngularJS services
\n * Importing this `NgModule` will add providers for the core\n * [AngularJS services](https://docs.angularjs.org/api/ng/service) to the root injector.\n *\n * * Bootstrap
\n * The runtime instance of this class contains a {@link UpgradeModule#bootstrap `bootstrap()`}\n * method, which you use to bootstrap the top level AngularJS module onto an element in the\n * DOM for the hybrid upgrade app.\n *\n * It also contains properties to access the {@link UpgradeModule#injector root injector}, the\n * bootstrap `NgZone` and the\n * [AngularJS $injector](https://docs.angularjs.org/api/auto/service/$injector).\n *\n * ### Examples\n *\n * Import the `UpgradeModule` into your top level {@link NgModule Angular `NgModule`}.\n *\n * {@example upgrade/static/ts/full/module.ts region='ng2-module'}\n *\n * Then inject `UpgradeModule` into your Angular `NgModule` and use it to bootstrap the top level\n * [AngularJS module](https://docs.angularjs.org/api/ng/type/angular.Module) in the\n * `ngDoBootstrap()` method.\n *\n * {@example upgrade/static/ts/full/module.ts region='bootstrap-ng1'}\n *\n * Finally, kick off the whole process, by bootstrapping your top level Angular `NgModule`.\n *\n * {@example upgrade/static/ts/full/module.ts region='bootstrap-ng2'}\n *\n * {@a upgrading-an-angular-1-service}\n * ### Upgrading an AngularJS service\n *\n * There is no specific API for upgrading an AngularJS service. Instead you should just follow the\n * following recipe:\n *\n * Let's say you have an AngularJS service:\n *\n * {@example upgrade/static/ts/full/module.ts region=\"ng1-text-formatter-service\"}\n *\n * Then you should define an Angular provider to be included in your `NgModule` `providers`\n * property.\n *\n * {@example upgrade/static/ts/full/module.ts region=\"upgrade-ng1-service\"}\n *\n * Then you can use the \"upgraded\" AngularJS service by injecting it into an Angular component\n * or service.\n *\n * {@example upgrade/static/ts/full/module.ts region=\"use-ng1-upgraded-service\"}\n *\n * @publicApi\n */\n@NgModule({providers: [angular1Providers]})\nexport class UpgradeModule {\n /**\n * The AngularJS `$injector` for the upgrade application.\n */\n public $injector: any /*angular.IInjectorService*/;\n /** The Angular Injector **/\n public injector: Injector;\n\n constructor(\n /** The root `Injector` for the upgrade application. */\n injector: Injector,\n /** The bootstrap zone for the upgrade application */\n public ngZone: NgZone,\n /**\n * The owning `NgModuleRef`s `PlatformRef` instance.\n * This is used to tie the lifecycle of the bootstrapped AngularJS apps to that of the Angular\n * `PlatformRef`.\n */\n private platformRef: PlatformRef) {\n this.injector = new NgAdapterInjector(injector);\n }\n\n /**\n * Bootstrap an AngularJS application from this NgModule\n * @param element the element on which to bootstrap the AngularJS application\n * @param [modules] the AngularJS modules to bootstrap for this application\n * @param [config] optional extra AngularJS bootstrap configuration\n * @return The value returned by\n * [angular.bootstrap()](https://docs.angularjs.org/api/ng/function/angular.bootstrap).\n */\n bootstrap(\n element: Element, modules: string[] = [], config?: any /*angular.IAngularBootstrapConfig*/):\n any /*ReturnType*/ {\n const INIT_MODULE_NAME = ɵconstants.UPGRADE_MODULE_NAME + '.init';\n\n // Create an ng1 module to bootstrap\n ɵangular1\n .module_(INIT_MODULE_NAME, [])\n\n .constant(ɵconstants.UPGRADE_APP_TYPE_KEY, ɵutil.UpgradeAppType.Static)\n\n .value(ɵconstants.INJECTOR_KEY, this.injector)\n\n .factory(\n ɵconstants.LAZY_MODULE_REF,\n [ɵconstants.INJECTOR_KEY, (injector: Injector) => ({injector} as ɵutil.LazyModuleRef)])\n\n .config([\n ɵconstants.$PROVIDE, ɵconstants.$INJECTOR,\n ($provide: ɵangular1.IProvideService, $injector: ɵangular1.IInjectorService) => {\n if ($injector.has(ɵconstants.$$TESTABILITY)) {\n $provide.decorator(ɵconstants.$$TESTABILITY, [\n ɵconstants.$DELEGATE,\n (testabilityDelegate: ɵangular1.ITestabilityService) => {\n const originalWhenStable: Function = testabilityDelegate.whenStable;\n const injector = this.injector;\n // Cannot use arrow function below because we need the context\n const newWhenStable = function(callback: Function) {\n originalWhenStable.call(testabilityDelegate, function() {\n const ng2Testability: Testability = injector.get(Testability);\n if (ng2Testability.isStable()) {\n callback();\n } else {\n ng2Testability.whenStable(\n newWhenStable.bind(testabilityDelegate, callback));\n }\n });\n };\n\n testabilityDelegate.whenStable = newWhenStable;\n return testabilityDelegate;\n }\n ]);\n }\n\n if ($injector.has(ɵconstants.$INTERVAL)) {\n $provide.decorator(ɵconstants.$INTERVAL, [\n ɵconstants.$DELEGATE,\n (intervalDelegate: ɵangular1.IIntervalService) => {\n // Wrap the $interval service so that setInterval is called outside NgZone,\n // but the callback is still invoked within it. This is so that $interval\n // won't block stability, which preserves the behavior from AngularJS.\n let wrappedInterval =\n (fn: Function, delay: number, count?: number, invokeApply?: boolean,\n ...pass: any[]) => {\n return this.ngZone.runOutsideAngular(() => {\n return intervalDelegate((...args: any[]) => {\n // Run callback in the next VM turn - $interval calls\n // $rootScope.$apply, and running the callback in NgZone will\n // cause a '$digest already in progress' error if it's in the\n // same vm turn.\n setTimeout(() => {\n this.ngZone.run(() => fn(...args));\n });\n }, delay, count, invokeApply, ...pass);\n });\n };\n\n (Object.keys(intervalDelegate) as (keyof ɵangular1.IIntervalService)[])\n .forEach(prop => (wrappedInterval as any)[prop] = intervalDelegate[prop]);\n\n // the `flush` method will be present when ngMocks is used\n if (intervalDelegate.hasOwnProperty('flush')) {\n (wrappedInterval as any)['flush'] = () => {\n (intervalDelegate as any)['flush']();\n return wrappedInterval;\n };\n }\n\n return wrappedInterval;\n }\n ]);\n }\n }\n ])\n\n .run([\n ɵconstants.$INJECTOR,\n ($injector: ɵangular1.IInjectorService) => {\n this.$injector = $injector;\n const $rootScope = $injector.get('$rootScope');\n\n // Initialize the ng1 $injector provider\n setTempInjectorRef($injector);\n this.injector.get(ɵconstants.$INJECTOR);\n\n // Put the injector on the DOM, so that it can be \"required\"\n ɵangular1.element(element).data!\n (ɵutil.controllerKey(ɵconstants.INJECTOR_KEY), this.injector);\n\n // Destroy the AngularJS app once the Angular `PlatformRef` is destroyed.\n // This does not happen in a typical SPA scenario, but it might be useful for\n // other use-cases where disposing of an Angular/AngularJS app is necessary\n // (such as Hot Module Replacement (HMR)).\n // See https://github.com/angular/angular/issues/39935.\n this.platformRef.onDestroy(() => ɵutil.destroyApp($injector));\n\n // Wire up the ng1 rootScope to run a digest cycle whenever the zone settles\n // We need to do this in the next tick so that we don't prevent the bootup stabilizing\n setTimeout(() => {\n const subscription = this.ngZone.onMicrotaskEmpty.subscribe(() => {\n if ($rootScope.$$phase) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.warn(\n 'A digest was triggered while one was already in progress. This may mean that something is triggering digests outside the Angular zone.');\n }\n\n return $rootScope.$evalAsync();\n }\n\n return $rootScope.$digest();\n });\n $rootScope.$on('$destroy', () => {\n subscription.unsubscribe();\n });\n }, 0);\n }\n ]);\n\n const upgradeModule =\n ɵangular1.module_(ɵconstants.UPGRADE_MODULE_NAME, [INIT_MODULE_NAME].concat(modules));\n\n // Make sure resumeBootstrap() only exists if the current bootstrap is deferred\n const windowAngular = (window as any)['angular'];\n windowAngular.resumeBootstrap = undefined;\n\n // Bootstrap the AngularJS application inside our zone\n const returnValue =\n this.ngZone.run(() => ɵangular1.bootstrap(element, [upgradeModule.name], config));\n\n // Patch resumeBootstrap() to run inside the ngZone\n if (windowAngular.resumeBootstrap) {\n const originalResumeBootstrap: () => void = windowAngular.resumeBootstrap;\n const ngZone = this.ngZone;\n windowAngular.resumeBootstrap = function() {\n let args = arguments;\n windowAngular.resumeBootstrap = originalResumeBootstrap;\n return ngZone.run(() => windowAngular.resumeBootstrap.apply(this, args));\n };\n }\n\n return returnValue;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport {getAngularJSGlobal, getAngularLib, setAngularJSGlobal, setAngularLib} from '../src/common/src/angular1';\nexport {downgradeComponent} from '../src/common/src/downgrade_component';\nexport {downgradeInjectable} from '../src/common/src/downgrade_injectable';\nexport {VERSION} from '../src/common/src/version';\nexport {downgradeModule} from './src/downgrade_module';\nexport {UpgradeComponent} from './src/upgrade_component';\nexport {UpgradeModule} from './src/upgrade_module';\nexport * from './common';\n\n\n// This file only re-exports items to appear in the public api. Keep it that way.\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n// This file is not used to build this module. It is only used during editing\n// by the TypeScript language service and during build for verification. `ngc`\n// replaces this file with production index.ts when it rewrites private symbol\n// names.\n\nexport * from './public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["angularElement","INITIAL_VALUE","NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR","ɵconstants.UPGRADE_MODULE_NAME","ɵconstants.LAZY_MODULE_REF","ɵconstants.INJECTOR_KEY","ɵutil.isNgModuleType","ɵutil.isFunction","ɵangular1.module_","ɵconstants.UPGRADE_APP_TYPE_KEY","ɵconstants.$INJECTOR","ɵutil.destroyApp","ɵconstants.$PROVIDE","ɵconstants.DOWNGRADED_MODULE_COUNT_KEY","ɵutil.getDowngradedModuleCount","ɵupgradeHelper.UpgradeHelper","ɵconstants.$SCOPE","element","ɵangular1\n .module_","ɵconstants.$$TESTABILITY","ɵconstants.$DELEGATE","ɵconstants.$INTERVAL","ɵangular1.element","ɵutil.controllerKey","ɵangular1.bootstrap"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"static.mjs","sources":["../../../../../../packages/upgrade/src/common/src/angular1.ts","../../../../../../packages/upgrade/src/common/src/constants.ts","../../../../../../packages/upgrade/src/common/src/component_info.ts","../../../../../../packages/upgrade/src/common/src/util.ts","../../../../../../packages/upgrade/src/common/src/downgrade_component_adapter.ts","../../../../../../packages/upgrade/src/common/src/promise_util.ts","../../../../../../packages/upgrade/src/common/src/downgrade_component.ts","../../../../../../packages/upgrade/src/common/src/downgrade_injectable.ts","../../../../../../packages/upgrade/src/common/src/version.ts","../../../../../../packages/upgrade/src/common/src/upgrade_helper.ts","../../../../../../packages/upgrade/static/common.ts","../../../../../../packages/upgrade/static/src/angular1_providers.ts","../../../../../../packages/upgrade/static/src/util.ts","../../../../../../packages/upgrade/static/src/downgrade_module.ts","../../../../../../packages/upgrade/static/src/upgrade_component.ts","../../../../../../packages/upgrade/static/src/upgrade_module.ts","../../../../../../packages/upgrade/static/public_api.ts","../../../../../../packages/upgrade/static/index.ts","../../../../../../packages/upgrade/static/static.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport type Ng1Token = string;\n\nexport type Ng1Expression = string|Function;\n\nexport interface IAnnotatedFunction extends Function {\n // Older versions of `@types/angular` typings extend the global `Function` interface with\n // `$inject?: string[]`, which is not compatible with `$inject?: ReadonlyArray` (used in\n // latest versions).\n $inject?: Function extends {$inject?: string[]}? Ng1Token[]: ReadonlyArray;\n}\n\nexport type IInjectable = (Ng1Token|Function)[]|IAnnotatedFunction;\n\nexport type SingleOrListOrMap = T|T[]|{[key: string]: T};\n\nexport interface IModule {\n name: string;\n requires: (string|IInjectable)[];\n config(fn: IInjectable): IModule;\n directive(selector: string, factory: IInjectable): IModule;\n component(selector: string, component: IComponent): IModule;\n controller(name: string, type: IInjectable): IModule;\n factory(key: Ng1Token, factoryFn: IInjectable): IModule;\n value(key: Ng1Token, value: any): IModule;\n constant(token: Ng1Token, value: any): IModule;\n run(a: IInjectable): IModule;\n}\nexport interface ICompileService {\n (element: Element|NodeList|Node[]|string, transclude?: Function): ILinkFn;\n}\nexport interface ILinkFn {\n (scope: IScope, cloneAttachFn?: ICloneAttachFunction, options?: ILinkFnOptions): IAugmentedJQuery;\n $$slots?: {[slotName: string]: ILinkFn};\n}\nexport interface ILinkFnOptions {\n parentBoundTranscludeFn?: Function;\n transcludeControllers?: {[key: string]: any};\n futureParentElement?: Node;\n}\nexport interface IRootScopeService {\n $new(isolate?: boolean): IScope;\n $id: string;\n $parent: IScope;\n $root: IScope;\n $watch(exp: Ng1Expression, fn?: (a1?: any, a2?: any) => void): Function;\n $on(event: string, fn?: (event?: any, ...args: any[]) => void): Function;\n $destroy(): any;\n $apply(exp?: Ng1Expression): any;\n $digest(): any;\n $evalAsync(exp: Ng1Expression, locals?: any): void;\n $on(event: string, fn?: (event?: any, ...args: any[]) => void): Function;\n $$childTail: IScope;\n $$childHead: IScope;\n $$nextSibling: IScope;\n [key: string]: any;\n}\nexport interface IScope extends IRootScopeService {}\n\nexport interface IAngularBootstrapConfig {\n strictDi?: boolean;\n}\nexport interface IDirective {\n compile?: IDirectiveCompileFn;\n controller?: IController;\n controllerAs?: string;\n bindToController?: boolean|{[key: string]: string};\n link?: IDirectiveLinkFn|IDirectivePrePost;\n name?: string;\n priority?: number;\n replace?: boolean;\n require?: DirectiveRequireProperty;\n restrict?: string;\n scope?: boolean|{[key: string]: string};\n template?: string|Function;\n templateUrl?: string|Function;\n templateNamespace?: string;\n terminal?: boolean;\n transclude?: DirectiveTranscludeProperty;\n}\nexport type DirectiveRequireProperty = SingleOrListOrMap;\nexport type DirectiveTranscludeProperty = boolean|'element'|{[key: string]: string};\nexport interface IDirectiveCompileFn {\n (templateElement: IAugmentedJQuery, templateAttributes: IAttributes,\n transclude: ITranscludeFunction): IDirectivePrePost;\n}\nexport interface IDirectivePrePost {\n pre?: IDirectiveLinkFn;\n post?: IDirectiveLinkFn;\n}\nexport interface IDirectiveLinkFn {\n (scope: IScope, instanceElement: IAugmentedJQuery, instanceAttributes: IAttributes,\n controller: any, transclude: ITranscludeFunction): void;\n}\nexport interface IComponent {\n bindings?: {[key: string]: string};\n controller?: string|IInjectable;\n controllerAs?: string;\n require?: DirectiveRequireProperty;\n template?: string|Function;\n templateUrl?: string|Function;\n transclude?: DirectiveTranscludeProperty;\n}\nexport interface IAttributes {\n $observe(attr: string, fn: (v: string) => void): void;\n [key: string]: any;\n}\nexport interface ITranscludeFunction {\n // If the scope is provided, then the cloneAttachFn must be as well.\n (scope: IScope, cloneAttachFn: ICloneAttachFunction): IAugmentedJQuery;\n // If one argument is provided, then it's assumed to be the cloneAttachFn.\n (cloneAttachFn?: ICloneAttachFunction): IAugmentedJQuery;\n}\nexport interface ICloneAttachFunction {\n (clonedElement: IAugmentedJQuery, scope: IScope): any;\n}\nexport type IAugmentedJQuery = Node[]&{\n on?: (name: string, fn: () => void) => void;\n data?: (name: string, value?: any) => any;\n text?: () => string;\n inheritedData?: (name: string, value?: any) => any;\n children?: () => IAugmentedJQuery;\n contents?: () => IAugmentedJQuery;\n parent?: () => IAugmentedJQuery;\n empty?: () => void;\n append?: (content: IAugmentedJQuery|string) => IAugmentedJQuery;\n controller?: (name: string) => any;\n isolateScope?: () => IScope;\n injector?: () => IInjectorService;\n triggerHandler?: (eventTypeOrObject: string|Event, extraParameters?: any[]) => IAugmentedJQuery;\n remove?: () => void;\n removeData?: () => void;\n};\nexport interface IProvider {\n $get: IInjectable;\n}\nexport interface IProvideService {\n provider(token: Ng1Token, provider: IProvider): IProvider;\n factory(token: Ng1Token, factory: IInjectable): IProvider;\n service(token: Ng1Token, type: IInjectable): IProvider;\n value(token: Ng1Token, value: any): IProvider;\n constant(token: Ng1Token, value: any): void;\n decorator(token: Ng1Token, factory: IInjectable): void;\n}\nexport interface IParseService {\n (expression: string): ICompiledExpression;\n}\nexport interface ICompiledExpression {\n (context: any, locals: any): any;\n assign?: (context: any, value: any) => any;\n}\nexport interface IHttpBackendService {\n (method: string, url: string, post?: any, callback?: Function, headers?: any, timeout?: number,\n withCredentials?: boolean): void;\n}\nexport interface ICacheObject {\n put(key: string, value?: T): T;\n get(key: string): any;\n}\nexport interface ITemplateCacheService extends ICacheObject {}\nexport type IController = string|IInjectable;\nexport interface IControllerService {\n (controllerConstructor: IController, locals?: any, later?: any, ident?: any): any;\n (controllerName: string, locals?: any): any;\n}\n\nexport interface IInjectorService {\n get(key: string): any;\n has(key: string): boolean;\n}\n\nexport interface IIntervalService {\n (func: Function, delay: number, count?: number, invokeApply?: boolean,\n ...args: any[]): Promise;\n cancel(promise: Promise): boolean;\n}\n\nexport interface ITestabilityService {\n findBindings(element: Element, expression: string, opt_exactMatch?: boolean): Element[];\n findModels(element: Element, expression: string, opt_exactMatch?: boolean): Element[];\n getLocation(): string;\n setLocation(url: string): void;\n whenStable(callback: Function): void;\n}\n\nexport interface INgModelController {\n $render(): void;\n $isEmpty(value: any): boolean;\n $setValidity(validationErrorKey: string, isValid: boolean): void;\n $setPristine(): void;\n $setDirty(): void;\n $setUntouched(): void;\n $setTouched(): void;\n $rollbackViewValue(): void;\n $validate(): void;\n $commitViewValue(): void;\n $setViewValue(value: any, trigger: string): void;\n\n $viewValue: any;\n $modelValue: any;\n $parsers: Function[];\n $formatters: Function[];\n $validators: {[key: string]: Function};\n $asyncValidators: {[key: string]: Function};\n $viewChangeListeners: Function[];\n $error: Object;\n $pending: Object;\n $untouched: boolean;\n $touched: boolean;\n $pristine: boolean;\n $dirty: boolean;\n $valid: boolean;\n $invalid: boolean;\n $name: string;\n}\n\nfunction noNg(): never {\n throw new Error('AngularJS v1.x is not loaded!');\n}\n\nconst noNgElement: typeof angular.element = (() => noNg()) as any;\nnoNgElement.cleanData = noNg;\n\nlet angular: {\n bootstrap: (e: Element, modules: (string|IInjectable)[], config?: IAngularBootstrapConfig) =>\n IInjectorService,\n module: (prefix: string, dependencies?: string[]) => IModule,\n element: {\n (e: string|Element|Document|IAugmentedJQuery): IAugmentedJQuery;\n cleanData: (nodes: Node[]|NodeList) => void;\n },\n injector: (modules: Array, strictDi?: boolean) => IInjectorService,\n version: {major: number},\n resumeBootstrap: () => void,\n getTestability: (e: Element) => ITestabilityService\n} = {\n bootstrap: noNg,\n module: noNg,\n element: noNgElement,\n injector: noNg,\n version: undefined as any,\n resumeBootstrap: noNg,\n getTestability: noNg\n};\n\ntry {\n if (window.hasOwnProperty('angular')) {\n angular = (window).angular;\n }\n} catch {\n // ignore in CJS mode.\n}\n\n/**\n * @deprecated Use `setAngularJSGlobal` instead.\n *\n * @publicApi\n */\nexport function setAngularLib(ng: any): void {\n setAngularJSGlobal(ng);\n}\n\n/**\n * @deprecated Use `getAngularJSGlobal` instead.\n *\n * @publicApi\n */\nexport function getAngularLib(): any {\n return getAngularJSGlobal();\n}\n\n/**\n * Resets the AngularJS global.\n *\n * Used when AngularJS is loaded lazily, and not available on `window`.\n *\n * @publicApi\n */\nexport function setAngularJSGlobal(ng: any): void {\n angular = ng;\n}\n\n/**\n * Returns the current AngularJS global.\n *\n * @publicApi\n */\nexport function getAngularJSGlobal(): any {\n return angular;\n}\n\nexport const bootstrap: typeof angular.bootstrap = (e, modules, config?) =>\n angular.bootstrap(e, modules, config);\n\n// Do not declare as `module` to avoid webpack bug\n// (see https://github.com/angular/angular/issues/30050).\nexport const module_: typeof angular.module = (prefix, dependencies?) =>\n angular.module(prefix, dependencies);\n\nexport const element: typeof angular.element = (e => angular.element(e)) as typeof angular.element;\nelement.cleanData = nodes => angular.element.cleanData(nodes);\n\nexport const injector: typeof angular.injector =\n (modules: Array, strictDi?: boolean) => angular.injector(modules, strictDi);\n\nexport const resumeBootstrap: typeof angular.resumeBootstrap = () => angular.resumeBootstrap();\n\nexport const getTestability: typeof angular.getTestability = e => angular.getTestability(e);\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport const $COMPILE = '$compile';\nexport const $CONTROLLER = '$controller';\nexport const $DELEGATE = '$delegate';\nexport const $EXCEPTION_HANDLER = '$exceptionHandler';\nexport const $HTTP_BACKEND = '$httpBackend';\nexport const $INJECTOR = '$injector';\nexport const $INTERVAL = '$interval';\nexport const $PARSE = '$parse';\nexport const $PROVIDE = '$provide';\nexport const $ROOT_ELEMENT = '$rootElement';\nexport const $ROOT_SCOPE = '$rootScope';\nexport const $SCOPE = '$scope';\nexport const $TEMPLATE_CACHE = '$templateCache';\nexport const $TEMPLATE_REQUEST = '$templateRequest';\n\nexport const $$TESTABILITY = '$$testability';\n\nexport const COMPILER_KEY = '$$angularCompiler';\nexport const DOWNGRADED_MODULE_COUNT_KEY = '$$angularDowngradedModuleCount';\nexport const GROUP_PROJECTABLE_NODES_KEY = '$$angularGroupProjectableNodes';\nexport const INJECTOR_KEY = '$$angularInjector';\nexport const LAZY_MODULE_REF = '$$angularLazyModuleRef';\nexport const NG_ZONE_KEY = '$$angularNgZone';\nexport const UPGRADE_APP_TYPE_KEY = '$$angularUpgradeAppType';\n\nexport const REQUIRE_INJECTOR = '?^^' + INJECTOR_KEY;\nexport const REQUIRE_NG_MODEL = '?ngModel';\n\nexport const UPGRADE_MODULE_NAME = '$$UpgradeModule';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * A `PropertyBinding` represents a mapping between a property name\n * and an attribute name. It is parsed from a string of the form\n * `\"prop: attr\"`; or simply `\"propAndAttr\" where the property\n * and attribute have the same identifier.\n */\nexport class PropertyBinding {\n bracketAttr: string;\n bracketParenAttr: string;\n parenAttr: string;\n onAttr: string;\n bindAttr: string;\n bindonAttr: string;\n\n constructor(public prop: string, public attr: string) {\n this.bracketAttr = `[${this.attr}]`;\n this.parenAttr = `(${this.attr})`;\n this.bracketParenAttr = `[(${this.attr})]`;\n const capitalAttr = this.attr.charAt(0).toUpperCase() + this.attr.slice(1);\n this.onAttr = `on${capitalAttr}`;\n this.bindAttr = `bind${capitalAttr}`;\n this.bindonAttr = `bindon${capitalAttr}`;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Injector, Type, ɵNG_MOD_DEF} from '@angular/core';\n\nimport {element as angularElement, IAugmentedJQuery, IInjectorService, INgModelController, IRootScopeService} from './angular1';\nimport {$ROOT_ELEMENT, $ROOT_SCOPE, DOWNGRADED_MODULE_COUNT_KEY, UPGRADE_APP_TYPE_KEY} from './constants';\n\nconst DIRECTIVE_PREFIX_REGEXP = /^(?:x|data)[:\\-_]/i;\nconst DIRECTIVE_SPECIAL_CHARS_REGEXP = /[:\\-_]+(.)/g;\n\nexport function onError(e: any) {\n // TODO: (misko): We seem to not have a stack trace here!\n console.error(e, e.stack);\n throw e;\n}\n\n/**\n * Clean the jqLite/jQuery data on the element and all its descendants.\n * Equivalent to how jqLite/jQuery invoke `cleanData()` on an Element when removed:\n * https://github.com/angular/angular.js/blob/2e72ea13fa98bebf6ed4b5e3c45eaf5f990ed16f/src/jqLite.js#L349-L355\n * https://github.com/jquery/jquery/blob/6984d1747623dbc5e87fd6c261a5b6b1628c107c/src/manipulation.js#L182\n *\n * NOTE:\n * `cleanData()` will also invoke the AngularJS `$destroy` DOM event on the element:\n * https://github.com/angular/angular.js/blob/2e72ea13fa98bebf6ed4b5e3c45eaf5f990ed16f/src/Angular.js#L1932-L1945\n *\n * @param node The DOM node whose data needs to be cleaned.\n */\nexport function cleanData(node: Node): void {\n angularElement.cleanData([node]);\n if (isParentNode(node)) {\n angularElement.cleanData(node.querySelectorAll('*'));\n }\n}\n\nexport function controllerKey(name: string): string {\n return '$' + name + 'Controller';\n}\n\n/**\n * Destroy an AngularJS app given the app `$injector`.\n *\n * NOTE: Destroying an app is not officially supported by AngularJS, but try to do our best by\n * destroying `$rootScope` and clean the jqLite/jQuery data on `$rootElement` and all\n * descendants.\n *\n * @param $injector The `$injector` of the AngularJS app to destroy.\n */\nexport function destroyApp($injector: IInjectorService): void {\n const $rootElement: IAugmentedJQuery = $injector.get($ROOT_ELEMENT);\n const $rootScope: IRootScopeService = $injector.get($ROOT_SCOPE);\n\n $rootScope.$destroy();\n cleanData($rootElement[0]);\n}\n\nexport function directiveNormalize(name: string): string {\n return name.replace(DIRECTIVE_PREFIX_REGEXP, '')\n .replace(DIRECTIVE_SPECIAL_CHARS_REGEXP, (_, letter) => letter.toUpperCase());\n}\n\nexport function getTypeName(type: Type): string {\n // Return the name of the type or the first line of its stringified version.\n return (type as any).overriddenName || type.name || type.toString().split('\\n')[0];\n}\n\nexport function getDowngradedModuleCount($injector: IInjectorService): number {\n return $injector.has(DOWNGRADED_MODULE_COUNT_KEY) ? $injector.get(DOWNGRADED_MODULE_COUNT_KEY) :\n 0;\n}\n\nexport function getUpgradeAppType($injector: IInjectorService): UpgradeAppType {\n return $injector.has(UPGRADE_APP_TYPE_KEY) ? $injector.get(UPGRADE_APP_TYPE_KEY) :\n UpgradeAppType.None;\n}\n\nexport function isFunction(value: any): value is Function {\n return typeof value === 'function';\n}\n\nexport function isNgModuleType(value: any): value is Type {\n // NgModule class should have the `ɵmod` static property attached by AOT or JIT compiler.\n return isFunction(value) && !!value[ɵNG_MOD_DEF];\n}\n\nfunction isParentNode(node: Node|ParentNode): node is ParentNode {\n return isFunction((node as unknown as ParentNode).querySelectorAll);\n}\n\nexport function validateInjectionKey(\n $injector: IInjectorService, downgradedModule: string, injectionKey: string,\n attemptedAction: string): void {\n const upgradeAppType = getUpgradeAppType($injector);\n const downgradedModuleCount = getDowngradedModuleCount($injector);\n\n // Check for common errors.\n switch (upgradeAppType) {\n case UpgradeAppType.Dynamic:\n case UpgradeAppType.Static:\n if (downgradedModule) {\n throw new Error(\n `Error while ${attemptedAction}: 'downgradedModule' unexpectedly specified.\\n` +\n 'You should not specify a value for \\'downgradedModule\\', unless you are downgrading ' +\n 'more than one Angular module (via \\'downgradeModule()\\').');\n }\n break;\n case UpgradeAppType.Lite:\n if (!downgradedModule && (downgradedModuleCount >= 2)) {\n throw new Error(\n `Error while ${attemptedAction}: 'downgradedModule' not specified.\\n` +\n 'This application contains more than one downgraded Angular module, thus you need to ' +\n 'always specify \\'downgradedModule\\' when downgrading components and injectables.');\n }\n\n if (!$injector.has(injectionKey)) {\n throw new Error(\n `Error while ${attemptedAction}: Unable to find the specified downgraded module.\\n` +\n 'Did you forget to downgrade an Angular module or include it in the AngularJS ' +\n 'application?');\n }\n\n break;\n default:\n throw new Error(\n `Error while ${attemptedAction}: Not a valid '@angular/upgrade' application.\\n` +\n 'Did you forget to downgrade an Angular module or include it in the AngularJS ' +\n 'application?');\n }\n}\n\nexport class Deferred {\n promise: Promise;\n resolve!: (value: R|PromiseLike) => void;\n reject!: (error?: any) => void;\n\n constructor() {\n this.promise = new Promise((res, rej) => {\n this.resolve = res;\n this.reject = rej;\n });\n }\n}\n\nexport interface LazyModuleRef {\n injector?: Injector;\n promise?: Promise;\n}\n\nexport const enum UpgradeAppType {\n // App NOT using `@angular/upgrade`. (This should never happen in an `ngUpgrade` app.)\n None,\n\n // App using the deprecated `@angular/upgrade` APIs (a.k.a. dynamic `ngUpgrade`).\n Dynamic,\n\n // App using `@angular/upgrade/static` with `UpgradeModule`.\n Static,\n\n // App using @angular/upgrade/static` with `downgradeModule()` (a.k.a `ngUpgrade`-lite ).\n Lite,\n}\n\n/**\n * @return Whether the passed-in component implements the subset of the\n * `ControlValueAccessor` interface needed for AngularJS `ng-model`\n * compatibility.\n */\nfunction supportsNgModel(component: any) {\n return typeof component.writeValue === 'function' &&\n typeof component.registerOnChange === 'function';\n}\n\n/**\n * Glue the AngularJS `NgModelController` (if it exists) to the component\n * (if it implements the needed subset of the `ControlValueAccessor` interface).\n */\nexport function hookupNgModel(ngModel: INgModelController, component: any) {\n if (ngModel && supportsNgModel(component)) {\n ngModel.$render = () => {\n component.writeValue(ngModel.$viewValue);\n };\n component.registerOnChange(ngModel.$setViewValue.bind(ngModel));\n if (typeof component.registerOnTouched === 'function') {\n component.registerOnTouched(ngModel.$setTouched.bind(ngModel));\n }\n }\n}\n\n/**\n * Test two values for strict equality, accounting for the fact that `NaN !== NaN`.\n */\nexport function strictEquals(val1: any, val2: any): boolean {\n return val1 === val2 || (val1 !== val1 && val2 !== val2);\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ApplicationRef, ChangeDetectorRef, ComponentFactory, ComponentRef, EventEmitter, Injector, OnChanges, SimpleChange, SimpleChanges, StaticProvider, Testability, TestabilityRegistry} from '@angular/core';\n\nimport {IAttributes, IAugmentedJQuery, ICompileService, INgModelController, IParseService, IScope} from './angular1';\nimport {PropertyBinding} from './component_info';\nimport {$SCOPE} from './constants';\nimport {cleanData, getTypeName, hookupNgModel, strictEquals} from './util';\n\nconst INITIAL_VALUE = {\n __UNINITIALIZED__: true\n};\n\nexport class DowngradeComponentAdapter {\n private implementsOnChanges = false;\n private inputChangeCount: number = 0;\n private inputChanges: SimpleChanges = {};\n private componentScope: IScope;\n\n constructor(\n private element: IAugmentedJQuery, private attrs: IAttributes, private scope: IScope,\n private ngModel: INgModelController, private parentInjector: Injector,\n private $compile: ICompileService, private $parse: IParseService,\n private componentFactory: ComponentFactory,\n private wrapCallback: (cb: () => T) => () => T) {\n this.componentScope = scope.$new();\n }\n\n compileContents(): Node[][] {\n const compiledProjectableNodes: Node[][] = [];\n const projectableNodes: Node[][] = this.groupProjectableNodes();\n const linkFns = projectableNodes.map(nodes => this.$compile(nodes));\n\n this.element.empty!();\n\n linkFns.forEach(linkFn => {\n linkFn(this.scope, (clone: Node[]) => {\n compiledProjectableNodes.push(clone);\n this.element.append!(clone);\n });\n });\n\n return compiledProjectableNodes;\n }\n\n createComponentAndSetup(\n projectableNodes: Node[][], manuallyAttachView = false,\n propagateDigest = true): ComponentRef {\n const component = this.createComponent(projectableNodes);\n this.setupInputs(manuallyAttachView, propagateDigest, component);\n this.setupOutputs(component.componentRef);\n this.registerCleanup(component.componentRef);\n\n return component.componentRef;\n }\n\n private createComponent(projectableNodes: Node[][]): ComponentInfo {\n const providers: StaticProvider[] = [{provide: $SCOPE, useValue: this.componentScope}];\n const childInjector = Injector.create(\n {providers: providers, parent: this.parentInjector, name: 'DowngradeComponentAdapter'});\n\n const componentRef =\n this.componentFactory.create(childInjector, projectableNodes, this.element[0]);\n const viewChangeDetector = componentRef.injector.get(ChangeDetectorRef);\n const changeDetector = componentRef.changeDetectorRef;\n\n // testability hook is commonly added during component bootstrap in\n // packages/core/src/application_ref.bootstrap()\n // in downgraded application, component creation will take place here as well as adding the\n // testability hook.\n const testability = componentRef.injector.get(Testability, null);\n if (testability) {\n componentRef.injector.get(TestabilityRegistry)\n .registerApplication(componentRef.location.nativeElement, testability);\n }\n\n hookupNgModel(this.ngModel, componentRef.instance);\n\n return {viewChangeDetector, componentRef, changeDetector};\n }\n\n private setupInputs(\n manuallyAttachView: boolean, propagateDigest = true,\n {componentRef, changeDetector, viewChangeDetector}: ComponentInfo): void {\n const attrs = this.attrs;\n const inputs = this.componentFactory.inputs || [];\n for (const input of inputs) {\n const inputBinding = new PropertyBinding(input.propName, input.templateName);\n let expr: string|null = null;\n\n if (attrs.hasOwnProperty(inputBinding.attr)) {\n const observeFn = (prop => {\n let prevValue = INITIAL_VALUE;\n return (currValue: any) => {\n // Initially, both `$observe()` and `$watch()` will call this function.\n if (!strictEquals(prevValue, currValue)) {\n if (prevValue === INITIAL_VALUE) {\n prevValue = currValue;\n }\n\n this.updateInput(componentRef, prop, prevValue, currValue);\n prevValue = currValue;\n }\n };\n })(inputBinding.prop);\n attrs.$observe(inputBinding.attr, observeFn);\n\n // Use `$watch()` (in addition to `$observe()`) in order to initialize the input in time\n // for `ngOnChanges()`. This is necessary if we are already in a `$digest`, which means that\n // `ngOnChanges()` (which is called by a watcher) will run before the `$observe()` callback.\n let unwatch: Function|null = this.componentScope.$watch(() => {\n unwatch!();\n unwatch = null;\n observeFn(attrs[inputBinding.attr]);\n });\n } else if (attrs.hasOwnProperty(inputBinding.bindAttr)) {\n expr = attrs[inputBinding.bindAttr];\n } else if (attrs.hasOwnProperty(inputBinding.bracketAttr)) {\n expr = attrs[inputBinding.bracketAttr];\n } else if (attrs.hasOwnProperty(inputBinding.bindonAttr)) {\n expr = attrs[inputBinding.bindonAttr];\n } else if (attrs.hasOwnProperty(inputBinding.bracketParenAttr)) {\n expr = attrs[inputBinding.bracketParenAttr];\n }\n if (expr != null) {\n const watchFn =\n ((prop) => (currValue: unknown, prevValue: unknown) =>\n this.updateInput(componentRef, prop, prevValue, currValue))(inputBinding.prop);\n this.componentScope.$watch(expr, watchFn);\n }\n }\n\n // Invoke `ngOnChanges()` and Change Detection (when necessary)\n const detectChanges = () => changeDetector.detectChanges();\n const prototype = this.componentFactory.componentType.prototype;\n this.implementsOnChanges = !!(prototype && (prototype).ngOnChanges);\n\n this.componentScope.$watch(() => this.inputChangeCount, this.wrapCallback(() => {\n // Invoke `ngOnChanges()`\n if (this.implementsOnChanges) {\n const inputChanges = this.inputChanges;\n this.inputChanges = {};\n (componentRef.instance).ngOnChanges(inputChanges);\n }\n\n viewChangeDetector.markForCheck();\n\n // If opted out of propagating digests, invoke change detection when inputs change.\n if (!propagateDigest) {\n detectChanges();\n }\n }));\n\n // If not opted out of propagating digests, invoke change detection on every digest\n if (propagateDigest) {\n this.componentScope.$watch(this.wrapCallback(detectChanges));\n }\n\n // If necessary, attach the view so that it will be dirty-checked.\n // (Allow time for the initial input values to be set and `ngOnChanges()` to be called.)\n if (manuallyAttachView || !propagateDigest) {\n let unwatch: Function|null = this.componentScope.$watch(() => {\n unwatch!();\n unwatch = null;\n\n const appRef = this.parentInjector.get(ApplicationRef);\n appRef.attachView(componentRef.hostView);\n });\n }\n }\n\n private setupOutputs(componentRef: ComponentRef) {\n const attrs = this.attrs;\n const outputs = this.componentFactory.outputs || [];\n for (const output of outputs) {\n const outputBindings = new PropertyBinding(output.propName, output.templateName);\n const bindonAttr =\n outputBindings.bindonAttr.substring(0, outputBindings.bindonAttr.length - 6);\n const bracketParenAttr = `[(${\n outputBindings.bracketParenAttr.substring(\n 2, outputBindings.bracketParenAttr.length - 8)})]`;\n // order below is important - first update bindings then evaluate expressions\n if (attrs.hasOwnProperty(bindonAttr)) {\n this.subscribeToOutput(componentRef, outputBindings, attrs[bindonAttr], true);\n }\n if (attrs.hasOwnProperty(bracketParenAttr)) {\n this.subscribeToOutput(componentRef, outputBindings, attrs[bracketParenAttr], true);\n }\n if (attrs.hasOwnProperty(outputBindings.onAttr)) {\n this.subscribeToOutput(componentRef, outputBindings, attrs[outputBindings.onAttr]);\n }\n if (attrs.hasOwnProperty(outputBindings.parenAttr)) {\n this.subscribeToOutput(componentRef, outputBindings, attrs[outputBindings.parenAttr]);\n }\n }\n }\n\n private subscribeToOutput(\n componentRef: ComponentRef, output: PropertyBinding, expr: string,\n isAssignment: boolean = false) {\n const getter = this.$parse(expr);\n const setter = getter.assign;\n if (isAssignment && !setter) {\n throw new Error(`Expression '${expr}' is not assignable!`);\n }\n const emitter = componentRef.instance[output.prop] as EventEmitter;\n if (emitter) {\n const subscription = emitter.subscribe({\n next: isAssignment ? (v: any) => setter!(this.scope, v) :\n (v: any) => getter(this.scope, {'$event': v})\n });\n componentRef.onDestroy(() => subscription.unsubscribe());\n } else {\n throw new Error(`Missing emitter '${output.prop}' on component '${\n getTypeName(this.componentFactory.componentType)}'!`);\n }\n }\n\n private registerCleanup(componentRef: ComponentRef) {\n const testabilityRegistry = componentRef.injector.get(TestabilityRegistry);\n const destroyComponentRef = this.wrapCallback(() => componentRef.destroy());\n let destroyed = false;\n\n this.element.on!('$destroy', () => {\n // The `$destroy` event may have been triggered by the `cleanData()` call in the\n // `componentScope` `$destroy` handler below. In that case, we don't want to call\n // `componentScope.$destroy()` again.\n if (!destroyed) this.componentScope.$destroy();\n });\n this.componentScope.$on('$destroy', () => {\n if (!destroyed) {\n destroyed = true;\n testabilityRegistry.unregisterApplication(componentRef.location.nativeElement);\n\n // The `componentScope` might be getting destroyed, because an ancestor element is being\n // removed/destroyed. If that is the case, jqLite/jQuery would normally invoke `cleanData()`\n // on the removed element and all descendants.\n // https://github.com/angular/angular.js/blob/2e72ea13fa98bebf6ed4b5e3c45eaf5f990ed16f/src/jqLite.js#L349-L355\n // https://github.com/jquery/jquery/blob/6984d1747623dbc5e87fd6c261a5b6b1628c107c/src/manipulation.js#L182\n //\n // Here, however, `destroyComponentRef()` may under some circumstances remove the element\n // from the DOM and therefore it will no longer be a descendant of the removed element when\n // `cleanData()` is called. This would result in a memory leak, because the element's data\n // and event handlers (and all objects directly or indirectly referenced by them) would be\n // retained.\n //\n // To ensure the element is always properly cleaned up, we manually call `cleanData()` on\n // this element and its descendants before destroying the `ComponentRef`.\n cleanData(this.element[0]);\n\n destroyComponentRef();\n }\n });\n }\n\n private updateInput(\n componentRef: ComponentRef, prop: string, prevValue: any, currValue: any) {\n if (this.implementsOnChanges) {\n this.inputChanges[prop] = new SimpleChange(prevValue, currValue, prevValue === currValue);\n }\n\n this.inputChangeCount++;\n componentRef.instance[prop] = currValue;\n }\n\n private groupProjectableNodes() {\n let ngContentSelectors = this.componentFactory.ngContentSelectors;\n return groupNodesBySelector(ngContentSelectors, this.element.contents!());\n }\n}\n\n/**\n * Group a set of DOM nodes into `ngContent` groups, based on the given content selectors.\n */\nexport function groupNodesBySelector(ngContentSelectors: string[], nodes: Node[]): Node[][] {\n const projectableNodes: Node[][] = [];\n\n for (let i = 0, ii = ngContentSelectors.length; i < ii; ++i) {\n projectableNodes[i] = [];\n }\n\n for (let j = 0, jj = nodes.length; j < jj; ++j) {\n const node = nodes[j];\n const ngContentIndex = findMatchingNgContentIndex(node, ngContentSelectors);\n if (ngContentIndex != null) {\n projectableNodes[ngContentIndex].push(node);\n }\n }\n\n return projectableNodes;\n}\n\nfunction findMatchingNgContentIndex(element: any, ngContentSelectors: string[]): number|null {\n const ngContentIndices: number[] = [];\n let wildcardNgContentIndex: number = -1;\n for (let i = 0; i < ngContentSelectors.length; i++) {\n const selector = ngContentSelectors[i];\n if (selector === '*') {\n wildcardNgContentIndex = i;\n } else {\n if (matchesSelector(element, selector)) {\n ngContentIndices.push(i);\n }\n }\n }\n ngContentIndices.sort();\n\n if (wildcardNgContentIndex !== -1) {\n ngContentIndices.push(wildcardNgContentIndex);\n }\n return ngContentIndices.length ? ngContentIndices[0] : null;\n}\n\nfunction matchesSelector(el: any, selector: string): boolean {\n const elProto = Element.prototype;\n\n return el.nodeType === Node.ELEMENT_NODE\n // matches is supported by all browsers from 2014 onwards except non-chromium edge\n ?\n (elProto.matches ?? elProto.msMatchesSelector).call(el, selector) :\n false;\n}\n\ninterface ComponentInfo {\n componentRef: ComponentRef;\n changeDetector: ChangeDetectorRef;\n viewChangeDetector: ChangeDetectorRef;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {isFunction} from './util';\n\nexport interface Thenable {\n then(callback: (value: T) => any): any;\n}\n\nexport function isThenable(obj: unknown): obj is Thenable {\n return !!obj && isFunction((obj as any).then);\n}\n\n/**\n * Synchronous, promise-like object.\n */\nexport class SyncPromise {\n protected value: T|undefined;\n private resolved = false;\n private callbacks: ((value: T) => unknown)[] = [];\n\n static all(valuesOrPromises: (T|Thenable)[]): SyncPromise {\n const aggrPromise = new SyncPromise();\n\n let resolvedCount = 0;\n const results: T[] = [];\n const resolve = (idx: number, value: T) => {\n results[idx] = value;\n if (++resolvedCount === valuesOrPromises.length) aggrPromise.resolve(results);\n };\n\n valuesOrPromises.forEach((p, idx) => {\n if (isThenable(p)) {\n p.then(v => resolve(idx, v));\n } else {\n resolve(idx, p);\n }\n });\n\n return aggrPromise;\n }\n\n resolve(value: T): void {\n // Do nothing, if already resolved.\n if (this.resolved) return;\n\n this.value = value;\n this.resolved = true;\n\n // Run the queued callbacks.\n this.callbacks.forEach(callback => callback(value));\n this.callbacks.length = 0;\n }\n\n then(callback: (value: T) => unknown): void {\n if (this.resolved) {\n callback(this.value!);\n } else {\n this.callbacks.push(callback);\n }\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ComponentFactory, ComponentFactoryResolver, Injector, NgZone, Type} from '@angular/core';\n\nimport {IAnnotatedFunction, IAttributes, IAugmentedJQuery, ICompileService, IDirective, IInjectorService, INgModelController, IParseService, IScope} from './angular1';\nimport {$COMPILE, $INJECTOR, $PARSE, INJECTOR_KEY, LAZY_MODULE_REF, REQUIRE_INJECTOR, REQUIRE_NG_MODEL} from './constants';\nimport {DowngradeComponentAdapter} from './downgrade_component_adapter';\nimport {SyncPromise, Thenable} from './promise_util';\nimport {controllerKey, getDowngradedModuleCount, getTypeName, getUpgradeAppType, LazyModuleRef, UpgradeAppType, validateInjectionKey} from './util';\n\n\n/**\n * @description\n *\n * A helper function that allows an Angular component to be used from AngularJS.\n *\n * *Part of the [upgrade/static](api?query=upgrade%2Fstatic)\n * library for hybrid upgrade apps that support AOT compilation*\n *\n * This helper function returns a factory function to be used for registering\n * an AngularJS wrapper directive for \"downgrading\" an Angular component.\n *\n * @usageNotes\n * ### Examples\n *\n * Let's assume that you have an Angular component called `ng2Heroes` that needs\n * to be made available in AngularJS templates.\n *\n * {@example upgrade/static/ts/full/module.ts region=\"ng2-heroes\"}\n *\n * We must create an AngularJS [directive](https://docs.angularjs.org/guide/directive)\n * that will make this Angular component available inside AngularJS templates.\n * The `downgradeComponent()` function returns a factory function that we\n * can use to define the AngularJS directive that wraps the \"downgraded\" component.\n *\n * {@example upgrade/static/ts/full/module.ts region=\"ng2-heroes-wrapper\"}\n *\n * For more details and examples on downgrading Angular components to AngularJS components please\n * visit the [Upgrade guide](guide/upgrade#using-angular-components-from-angularjs-code).\n *\n * @param info contains information about the Component that is being downgraded:\n *\n * - `component: Type`: The type of the Component that will be downgraded\n * - `downgradedModule?: string`: The name of the downgraded module (if any) that the component\n * \"belongs to\", as returned by a call to `downgradeModule()`. It is the module, whose\n * corresponding Angular module will be bootstrapped, when the component needs to be instantiated.\n *
\n * (This option is only necessary when using `downgradeModule()` to downgrade more than one\n * Angular module.)\n * - `propagateDigest?: boolean`: Whether to perform {@link ChangeDetectorRef#detectChanges} on the\n * component on every\n * [$digest](https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$digest). If set to `false`,\n * change detection will still be performed when any of the component's inputs changes.\n * (Default: true)\n *\n * @returns a factory function that can be used to register the component in an\n * AngularJS module.\n *\n * @publicApi\n */\nexport function downgradeComponent(info: {\n component: Type;\n downgradedModule?: string;\n propagateDigest?: boolean;\n /** @deprecated since v4. This parameter is no longer used */\n inputs?: string[];\n /** @deprecated since v4. This parameter is no longer used */\n outputs?: string[];\n /** @deprecated since v4. This parameter is no longer used */\n selectors?: string[];\n}): any /* angular.IInjectable */ {\n const directiveFactory: IAnnotatedFunction = function(\n $compile: ICompileService, $injector: IInjectorService, $parse: IParseService): IDirective {\n // When using `downgradeModule()`, we need to handle certain things specially. For example:\n // - We always need to attach the component view to the `ApplicationRef` for it to be\n // dirty-checked.\n // - We need to ensure callbacks to Angular APIs (e.g. change detection) are run inside the\n // Angular zone.\n // NOTE: This is not needed, when using `UpgradeModule`, because `$digest()` will be run\n // inside the Angular zone (except if explicitly escaped, in which case we shouldn't\n // force it back in).\n const isNgUpgradeLite = getUpgradeAppType($injector) === UpgradeAppType.Lite;\n const wrapCallback: (cb: () => T) => typeof cb =\n !isNgUpgradeLite ? cb => cb : cb => () => NgZone.isInAngularZone() ? cb() : ngZone.run(cb);\n let ngZone: NgZone;\n\n // When downgrading multiple modules, special handling is needed wrt injectors.\n const hasMultipleDowngradedModules =\n isNgUpgradeLite && (getDowngradedModuleCount($injector) > 1);\n\n return {\n restrict: 'E',\n terminal: true,\n require: [REQUIRE_INJECTOR, REQUIRE_NG_MODEL],\n // Controller needs to be set so that `angular-component-router.js` (from beta Angular 2)\n // configuration properties can be made available. See:\n // See G3: javascript/angular2/angular1_router_lib.js\n // https://github.com/angular/angular.js/blob/47bf11ee94664367a26ed8c91b9b586d3dd420f5/src/ng/compile.js#L1670-L1691.\n controller: function() {},\n link: (scope: IScope, element: IAugmentedJQuery, attrs: IAttributes, required: any[]) => {\n // We might have to compile the contents asynchronously, because this might have been\n // triggered by `UpgradeNg1ComponentAdapterBuilder`, before the Angular templates have\n // been compiled.\n\n const ngModel: INgModelController = required[1];\n const parentInjector: Injector|Thenable|undefined = required[0];\n let moduleInjector: Injector|Thenable|undefined = undefined;\n let ranAsync = false;\n\n if (!parentInjector || hasMultipleDowngradedModules) {\n const downgradedModule = info.downgradedModule || '';\n const lazyModuleRefKey = `${LAZY_MODULE_REF}${downgradedModule}`;\n const attemptedAction = `instantiating component '${getTypeName(info.component)}'`;\n\n validateInjectionKey($injector, downgradedModule, lazyModuleRefKey, attemptedAction);\n\n const lazyModuleRef = $injector.get(lazyModuleRefKey) as LazyModuleRef;\n moduleInjector = lazyModuleRef.injector ?? lazyModuleRef.promise;\n }\n\n // Notes:\n //\n // There are two injectors: `finalModuleInjector` and `finalParentInjector` (they might be\n // the same instance, but that is irrelevant):\n // - `finalModuleInjector` is used to retrieve `ComponentFactoryResolver`, thus it must be\n // on the same tree as the `NgModule` that declares this downgraded component.\n // - `finalParentInjector` is used for all other injection purposes.\n // (Note that Angular knows to only traverse the component-tree part of that injector,\n // when looking for an injectable and then switch to the module injector.)\n //\n // There are basically three cases:\n // - If there is no parent component (thus no `parentInjector`), we bootstrap the downgraded\n // `NgModule` and use its injector as both `finalModuleInjector` and\n // `finalParentInjector`.\n // - If there is a parent component (and thus a `parentInjector`) and we are sure that it\n // belongs to the same `NgModule` as this downgraded component (e.g. because there is only\n // one downgraded module, we use that `parentInjector` as both `finalModuleInjector` and\n // `finalParentInjector`.\n // - If there is a parent component, but it may belong to a different `NgModule`, then we\n // use the `parentInjector` as `finalParentInjector` and this downgraded component's\n // declaring `NgModule`'s injector as `finalModuleInjector`.\n // Note 1: If the `NgModule` is already bootstrapped, we just get its injector (we don't\n // bootstrap again).\n // Note 2: It is possible that (while there are multiple downgraded modules) this\n // downgraded component and its parent component both belong to the same NgModule.\n // In that case, we could have used the `parentInjector` as both\n // `finalModuleInjector` and `finalParentInjector`, but (for simplicity) we are\n // treating this case as if they belong to different `NgModule`s. That doesn't\n // really affect anything, since `parentInjector` has `moduleInjector` as ancestor\n // and trying to resolve `ComponentFactoryResolver` from either one will return\n // the same instance.\n\n // If there is a parent component, use its injector as parent injector.\n // If this is a \"top-level\" Angular component, use the module injector.\n const finalParentInjector = parentInjector || moduleInjector!;\n\n // If this is a \"top-level\" Angular component or the parent component may belong to a\n // different `NgModule`, use the module injector for module-specific dependencies.\n // If there is a parent component that belongs to the same `NgModule`, use its injector.\n const finalModuleInjector = moduleInjector || parentInjector!;\n\n const doDowngrade = (injector: Injector, moduleInjector: Injector) => {\n // Retrieve `ComponentFactoryResolver` from the injector tied to the `NgModule` this\n // component belongs to.\n const componentFactoryResolver: ComponentFactoryResolver =\n moduleInjector.get(ComponentFactoryResolver);\n const componentFactory: ComponentFactory =\n componentFactoryResolver.resolveComponentFactory(info.component)!;\n\n if (!componentFactory) {\n throw new Error(`Expecting ComponentFactory for: ${getTypeName(info.component)}`);\n }\n\n const injectorPromise = new ParentInjectorPromise(element);\n const facade = new DowngradeComponentAdapter(\n element, attrs, scope, ngModel, injector, $compile, $parse, componentFactory,\n wrapCallback);\n\n const projectableNodes = facade.compileContents();\n const componentRef = facade.createComponentAndSetup(\n projectableNodes, isNgUpgradeLite, info.propagateDigest);\n\n injectorPromise.resolve(componentRef.injector);\n\n if (ranAsync) {\n // If this is run async, it is possible that it is not run inside a\n // digest and initial input values will not be detected.\n scope.$evalAsync(() => {});\n }\n };\n\n const downgradeFn =\n !isNgUpgradeLite ? doDowngrade : (pInjector: Injector, mInjector: Injector) => {\n if (!ngZone) {\n ngZone = pInjector.get(NgZone);\n }\n\n wrapCallback(() => doDowngrade(pInjector, mInjector))();\n };\n\n // NOTE:\n // Not using `ParentInjectorPromise.all()` (which is inherited from `SyncPromise`), because\n // Closure Compiler (or some related tool) complains:\n // `TypeError: ...$src$downgrade_component_ParentInjectorPromise.all is not a function`\n SyncPromise.all([finalParentInjector, finalModuleInjector])\n .then(([pInjector, mInjector]) => downgradeFn(pInjector, mInjector));\n\n ranAsync = true;\n }\n };\n };\n\n // bracket-notation because of closure - see #14441\n directiveFactory['$inject'] = [$COMPILE, $INJECTOR, $PARSE];\n return directiveFactory;\n}\n\n/**\n * Synchronous promise-like object to wrap parent injectors,\n * to preserve the synchronous nature of AngularJS's `$compile`.\n */\nclass ParentInjectorPromise extends SyncPromise {\n private injectorKey: string = controllerKey(INJECTOR_KEY);\n\n constructor(private element: IAugmentedJQuery) {\n super();\n\n // Store the promise on the element.\n element.data!(this.injectorKey, this);\n }\n\n override resolve(injector: Injector): void {\n // Store the real injector on the element.\n this.element.data!(this.injectorKey, injector);\n\n // Release the element to prevent memory leaks.\n this.element = null!;\n\n // Resolve the promise.\n super.resolve(injector);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Injector} from '@angular/core';\n\nimport {IInjectorService} from './angular1';\nimport {$INJECTOR, INJECTOR_KEY} from './constants';\nimport {getTypeName, isFunction, validateInjectionKey} from './util';\n\n/**\n * @description\n *\n * A helper function to allow an Angular service to be accessible from AngularJS.\n *\n * *Part of the [upgrade/static](api?query=upgrade%2Fstatic)\n * library for hybrid upgrade apps that support AOT compilation*\n *\n * This helper function returns a factory function that provides access to the Angular\n * service identified by the `token` parameter.\n *\n * @usageNotes\n * ### Examples\n *\n * First ensure that the service to be downgraded is provided in an `NgModule`\n * that will be part of the upgrade application. For example, let's assume we have\n * defined `HeroesService`\n *\n * {@example upgrade/static/ts/full/module.ts region=\"ng2-heroes-service\"}\n *\n * and that we have included this in our upgrade app `NgModule`\n *\n * {@example upgrade/static/ts/full/module.ts region=\"ng2-module\"}\n *\n * Now we can register the `downgradeInjectable` factory function for the service\n * on an AngularJS module.\n *\n * {@example upgrade/static/ts/full/module.ts region=\"downgrade-ng2-heroes-service\"}\n *\n * Inside an AngularJS component's controller we can get hold of the\n * downgraded service via the name we gave when downgrading.\n *\n * {@example upgrade/static/ts/full/module.ts region=\"example-app\"}\n *\n *
\n *\n * When using `downgradeModule()`, downgraded injectables will not be available until the Angular\n * module that provides them is instantiated. In order to be safe, you need to ensure that the\n * downgraded injectables are not used anywhere _outside_ the part of the app where it is\n * guaranteed that their module has been instantiated.\n *\n * For example, it is _OK_ to use a downgraded service in an upgraded component that is only used\n * from a downgraded Angular component provided by the same Angular module as the injectable, but\n * it is _not OK_ to use it in an AngularJS component that may be used independently of Angular or\n * use it in a downgraded Angular component from a different module.\n *\n *
\n *\n * @param token an `InjectionToken` that identifies a service provided from Angular.\n * @param downgradedModule the name of the downgraded module (if any) that the injectable\n * \"belongs to\", as returned by a call to `downgradeModule()`. It is the module, whose injector will\n * be used for instantiating the injectable.
\n * (This option is only necessary when using `downgradeModule()` to downgrade more than one Angular\n * module.)\n *\n * @returns a [factory function](https://docs.angularjs.org/guide/di) that can be\n * used to register the service on an AngularJS module.\n *\n * @publicApi\n */\nexport function downgradeInjectable(token: any, downgradedModule: string = ''): Function {\n const factory = function($injector: IInjectorService) {\n const injectorKey = `${INJECTOR_KEY}${downgradedModule}`;\n const injectableName = isFunction(token) ? getTypeName(token) : String(token);\n const attemptedAction = `instantiating injectable '${injectableName}'`;\n\n validateInjectionKey($injector, downgradedModule, injectorKey, attemptedAction);\n\n try {\n const injector: Injector = $injector.get(injectorKey);\n return injector.get(token);\n } catch (err) {\n throw new Error(`Error while ${attemptedAction}: ${(err as Error).message || err}`);\n }\n };\n (factory as any)['$inject'] = [$INJECTOR];\n\n return factory;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of the upgrade package.\n */\n\nimport {Version} from '@angular/core';\n\n/**\n * @publicApi\n */\nexport const VERSION = new Version('17.0.0-next.2+sha-b9ba6e6');\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ElementRef, Injector, SimpleChanges} from '@angular/core';\n\nimport {DirectiveRequireProperty, element as angularElement, IAugmentedJQuery, ICloneAttachFunction, ICompileService, IController, IControllerService, IDirective, IHttpBackendService, IInjectorService, ILinkFn, IScope, ITemplateCacheService, SingleOrListOrMap} from './angular1';\nimport {$COMPILE, $CONTROLLER, $HTTP_BACKEND, $INJECTOR, $TEMPLATE_CACHE} from './constants';\nimport {cleanData, controllerKey, directiveNormalize, isFunction} from './util';\n\n\n\n// Constants\nconst REQUIRE_PREFIX_RE = /^(\\^\\^?)?(\\?)?(\\^\\^?)?/;\n\n// Interfaces\nexport interface IBindingDestination {\n [key: string]: any;\n $onChanges?: (changes: SimpleChanges) => void;\n}\n\nexport interface IControllerInstance extends IBindingDestination {\n $doCheck?: () => void;\n $onDestroy?: () => void;\n $onInit?: () => void;\n $postLink?: () => void;\n}\n\n// Classes\nexport class UpgradeHelper {\n public readonly $injector: IInjectorService;\n public readonly element: Element;\n public readonly $element: IAugmentedJQuery;\n public readonly directive: IDirective;\n\n private readonly $compile: ICompileService;\n private readonly $controller: IControllerService;\n\n constructor(\n injector: Injector, private name: string, elementRef: ElementRef, directive?: IDirective) {\n this.$injector = injector.get($INJECTOR);\n this.$compile = this.$injector.get($COMPILE);\n this.$controller = this.$injector.get($CONTROLLER);\n\n this.element = elementRef.nativeElement;\n this.$element = angularElement(this.element);\n\n this.directive = directive ?? UpgradeHelper.getDirective(this.$injector, name);\n }\n\n static getDirective($injector: IInjectorService, name: string): IDirective {\n const directives: IDirective[] = $injector.get(name + 'Directive');\n if (directives.length > 1) {\n throw new Error(`Only support single directive definition for: ${name}`);\n }\n\n const directive = directives[0];\n\n // AngularJS will transform `link: xyz` to `compile: () => xyz`. So we can only tell there was a\n // user-defined `compile` if there is no `link`. In other cases, we will just ignore `compile`.\n if (directive.compile && !directive.link) notSupported(name, 'compile');\n if (directive.replace) notSupported(name, 'replace');\n if (directive.terminal) notSupported(name, 'terminal');\n\n return directive;\n }\n\n static getTemplate(\n $injector: IInjectorService, directive: IDirective, fetchRemoteTemplate = false,\n $element?: IAugmentedJQuery): string|Promise {\n if (directive.template !== undefined) {\n return getOrCall(directive.template, $element);\n } else if (directive.templateUrl) {\n const $templateCache = $injector.get($TEMPLATE_CACHE) as ITemplateCacheService;\n const url = getOrCall(directive.templateUrl, $element);\n const template = $templateCache.get(url);\n\n if (template !== undefined) {\n return template;\n } else if (!fetchRemoteTemplate) {\n throw new Error('loading directive templates asynchronously is not supported');\n }\n\n return new Promise((resolve, reject) => {\n const $httpBackend = $injector.get($HTTP_BACKEND) as IHttpBackendService;\n $httpBackend('GET', url, null, (status: number, response: string) => {\n if (status === 200) {\n resolve($templateCache.put(url, response));\n } else {\n reject(`GET component template from '${url}' returned '${status}: ${response}'`);\n }\n });\n });\n } else {\n throw new Error(`Directive '${directive.name}' is not a component, it is missing template.`);\n }\n }\n\n buildController(controllerType: IController, $scope: IScope) {\n // TODO: Document that we do not pre-assign bindings on the controller instance.\n // Quoted properties below so that this code can be optimized with Closure Compiler.\n const locals = {'$scope': $scope, '$element': this.$element};\n const controller = this.$controller(controllerType, locals, null, this.directive.controllerAs);\n\n this.$element.data?.(controllerKey(this.directive.name!), controller);\n\n return controller;\n }\n\n compileTemplate(template?: string): ILinkFn {\n if (template === undefined) {\n template =\n UpgradeHelper.getTemplate(this.$injector, this.directive, false, this.$element) as string;\n }\n\n return this.compileHtml(template);\n }\n\n onDestroy($scope: IScope, controllerInstance?: any) {\n if (controllerInstance && isFunction(controllerInstance.$onDestroy)) {\n controllerInstance.$onDestroy();\n }\n $scope.$destroy();\n cleanData(this.element);\n }\n\n prepareTransclusion(): ILinkFn|undefined {\n const transclude = this.directive.transclude;\n const contentChildNodes = this.extractChildNodes();\n const attachChildrenFn: ILinkFn = (scope, cloneAttachFn) => {\n // Since AngularJS v1.5.8, `cloneAttachFn` will try to destroy the transclusion scope if\n // `$template` is empty. Since the transcluded content comes from Angular, not AngularJS,\n // there will be no transclusion scope here.\n // Provide a dummy `scope.$destroy()` method to prevent `cloneAttachFn` from throwing.\n scope = scope || {$destroy: () => undefined};\n return cloneAttachFn!($template, scope);\n };\n let $template = contentChildNodes;\n\n if (transclude) {\n const slots = Object.create(null);\n\n if (typeof transclude === 'object') {\n $template = [];\n\n const slotMap = Object.create(null);\n const filledSlots = Object.create(null);\n\n // Parse the element selectors.\n Object.keys(transclude).forEach(slotName => {\n let selector = transclude[slotName];\n const optional = selector.charAt(0) === '?';\n selector = optional ? selector.substring(1) : selector;\n\n slotMap[selector] = slotName;\n slots[slotName] = null; // `null`: Defined but not yet filled.\n filledSlots[slotName] = optional; // Consider optional slots as filled.\n });\n\n // Add the matching elements into their slot.\n contentChildNodes.forEach(node => {\n const slotName = slotMap[directiveNormalize(node.nodeName.toLowerCase())];\n if (slotName) {\n filledSlots[slotName] = true;\n slots[slotName] = slots[slotName] || [];\n slots[slotName].push(node);\n } else {\n $template.push(node);\n }\n });\n\n // Check for required slots that were not filled.\n Object.keys(filledSlots).forEach(slotName => {\n if (!filledSlots[slotName]) {\n throw new Error(`Required transclusion slot '${slotName}' on directive: ${this.name}`);\n }\n });\n\n Object.keys(slots).filter(slotName => slots[slotName]).forEach(slotName => {\n const nodes = slots[slotName];\n slots[slotName] = (scope: IScope, cloneAttach: ICloneAttachFunction) => {\n return cloneAttach!(nodes, scope);\n };\n });\n }\n\n // Attach `$$slots` to default slot transclude fn.\n attachChildrenFn.$$slots = slots;\n\n // AngularJS v1.6+ ignores empty or whitespace-only transcluded text nodes. But Angular\n // removes all text content after the first interpolation and updates it later, after\n // evaluating the expressions. This would result in AngularJS failing to recognize text\n // nodes that start with an interpolation as transcluded content and use the fallback\n // content instead.\n // To avoid this issue, we add a\n // [zero-width non-joiner character](https://en.wikipedia.org/wiki/Zero-width_non-joiner)\n // to empty text nodes (which can only be a result of Angular removing their initial content).\n // NOTE: Transcluded text content that starts with whitespace followed by an interpolation\n // will still fail to be detected by AngularJS v1.6+\n $template.forEach(node => {\n if (node.nodeType === Node.TEXT_NODE && !node.nodeValue) {\n node.nodeValue = '\\u200C';\n }\n });\n }\n\n return attachChildrenFn;\n }\n\n resolveAndBindRequiredControllers(controllerInstance: IControllerInstance|null) {\n const directiveRequire = this.getDirectiveRequire();\n const requiredControllers = this.resolveRequire(directiveRequire);\n\n if (controllerInstance && this.directive.bindToController && isMap(directiveRequire)) {\n const requiredControllersMap = requiredControllers as {[key: string]: IControllerInstance};\n Object.keys(requiredControllersMap).forEach(key => {\n controllerInstance[key] = requiredControllersMap[key];\n });\n }\n\n return requiredControllers;\n }\n\n private compileHtml(html: string): ILinkFn {\n this.element.innerHTML = html;\n return this.$compile(this.element.childNodes);\n }\n\n private extractChildNodes(): Node[] {\n const childNodes: Node[] = [];\n let childNode: Node|null;\n\n while (childNode = this.element.firstChild) {\n this.element.removeChild(childNode);\n childNodes.push(childNode);\n }\n\n return childNodes;\n }\n\n private getDirectiveRequire(): DirectiveRequireProperty {\n const require = this.directive.require || (this.directive.controller && this.directive.name)!;\n\n if (isMap(require)) {\n Object.entries(require).forEach(([key, value]) => {\n const match = value.match(REQUIRE_PREFIX_RE)!;\n const name = value.substring(match[0].length);\n\n if (!name) {\n require[key] = match[0] + key;\n }\n });\n }\n\n return require;\n }\n\n private resolveRequire(require: DirectiveRequireProperty):\n SingleOrListOrMap|null {\n if (!require) {\n return null;\n } else if (Array.isArray(require)) {\n return require.map(req => this.resolveRequire(req));\n } else if (typeof require === 'object') {\n const value: {[key: string]: IControllerInstance} = {};\n Object.keys(require).forEach(key => value[key] = this.resolveRequire(require[key])!);\n return value;\n } else if (typeof require === 'string') {\n const match = require.match(REQUIRE_PREFIX_RE)!;\n const inheritType = match[1] || match[3];\n\n const name = require.substring(match[0].length);\n const isOptional = !!match[2];\n const searchParents = !!inheritType;\n const startOnParent = inheritType === '^^';\n\n const ctrlKey = controllerKey(name);\n const elem = startOnParent ? this.$element.parent!() : this.$element;\n const value = searchParents ? elem.inheritedData!(ctrlKey) : elem.data!(ctrlKey);\n\n if (!value && !isOptional) {\n throw new Error(\n `Unable to find required '${require}' in upgraded directive '${this.name}'.`);\n }\n\n return value;\n } else {\n throw new Error(\n `Unrecognized 'require' syntax on upgraded directive '${this.name}': ${require}`);\n }\n }\n}\n\nfunction getOrCall(property: T|Function, ...args: any[]): T {\n return isFunction(property) ? property(...args) : property;\n}\n\n// NOTE: Only works for `typeof T !== 'object'`.\nfunction isMap(value: SingleOrListOrMap): value is {[key: string]: T} {\n return value && !Array.isArray(value) && typeof value === 'object';\n}\n\nfunction notSupported(name: string, feature: string) {\n throw new Error(`Upgraded directive '${name}' contains unsupported feature: '${feature}'.`);\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Note: We intentionally use cross entry-point relative paths here. This\n * is because the primary entry-point is deprecated and we also don't have\n * it available in G3.\n */\n\n// @ng_package: ignore-cross-repo-import\nimport * as ɵangular1 from '../src/common/src/angular1';\n// @ng_package: ignore-cross-repo-import\nimport * as ɵconstants from '../src/common/src/constants';\n// @ng_package: ignore-cross-repo-import\nimport * as ɵupgradeHelper from '../src/common/src/upgrade_helper';\n// @ng_package: ignore-cross-repo-import\nimport * as ɵutil from '../src/common/src/util';\n\nexport {ɵangular1, ɵconstants, ɵupgradeHelper, ɵutil};\n","\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {IInjectorService} from '../../src/common/src/angular1';\n\n// We have to do a little dance to get the ng1 injector into the module injector.\n// We store the ng1 injector so that the provider in the module injector can access it\n// Then we \"get\" the ng1 injector from the module injector, which triggers the provider to read\n// the stored injector and release the reference to it.\nlet tempInjectorRef: IInjectorService|null = null;\nexport function setTempInjectorRef(injector: IInjectorService) {\n tempInjectorRef = injector;\n}\nexport function injectorFactory() {\n if (!tempInjectorRef) {\n throw new Error('Trying to get the AngularJS injector before it being set.');\n }\n\n const injector: IInjectorService = tempInjectorRef;\n tempInjectorRef = null; // clear the value to prevent memory leaks\n return injector;\n}\n\nexport function rootScopeFactory(i: IInjectorService) {\n return i.get('$rootScope');\n}\n\nexport function compileFactory(i: IInjectorService) {\n return i.get('$compile');\n}\n\nexport function parseFactory(i: IInjectorService) {\n return i.get('$parse');\n}\n\nexport const angular1Providers = [\n // We must use exported named functions for the ng2 factories to keep the compiler happy:\n // > Metadata collected contains an error that will be reported at runtime:\n // > Function calls are not supported.\n // > Consider replacing the function or lambda with a reference to an exported function\n {provide: '$injector', useFactory: injectorFactory, deps: []},\n {provide: '$rootScope', useFactory: rootScopeFactory, deps: ['$injector']},\n {provide: '$compile', useFactory: compileFactory, deps: ['$injector']},\n {provide: '$parse', useFactory: parseFactory, deps: ['$injector']}\n];\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Injector, ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR as NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR} from '@angular/core';\n\n\nexport class NgAdapterInjector implements Injector {\n constructor(private modInjector: Injector) {}\n\n // When Angular locate a service in the component injector tree, the not found value is set to\n // `NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR`. In such a case we should not walk up to the module\n // injector.\n // AngularJS only supports a single tree and should always check the module injector.\n get(token: any, notFoundValue?: any): any {\n if (notFoundValue === NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR) {\n return notFoundValue;\n }\n\n return this.modInjector.get(token, notFoundValue);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Injector, NgModuleFactory, NgModuleRef, PlatformRef, StaticProvider, Type} from '@angular/core';\nimport {platformBrowser} from '@angular/platform-browser';\n\nimport {ɵangular1, ɵconstants, ɵutil} from '../common';\n\nimport {angular1Providers, setTempInjectorRef} from './angular1_providers';\nimport {NgAdapterInjector} from './util';\n\n\nlet moduleUid = 0;\n\n/**\n * @description\n *\n * A helper function for creating an AngularJS module that can bootstrap an Angular module\n * \"on-demand\" (possibly lazily) when a {@link downgradeComponent downgraded component} needs to be\n * instantiated.\n *\n * *Part of the [upgrade/static](api?query=upgrade/static) library for hybrid upgrade apps that\n * support AOT compilation.*\n *\n * It allows loading/bootstrapping the Angular part of a hybrid application lazily and not having to\n * pay the cost up-front. For example, you can have an AngularJS application that uses Angular for\n * specific routes and only instantiate the Angular modules if/when the user visits one of these\n * routes.\n *\n * The Angular module will be bootstrapped once (when requested for the first time) and the same\n * reference will be used from that point onwards.\n *\n * `downgradeModule()` requires either an `NgModuleFactory`, `NgModule` class or a function:\n * - `NgModuleFactory`: If you pass an `NgModuleFactory`, it will be used to instantiate a module\n * using `platformBrowser`'s {@link PlatformRef#bootstrapModuleFactory bootstrapModuleFactory()}.\n * NOTE: this type of the argument is deprecated. Please either provide an `NgModule` class or a\n * bootstrap function instead.\n * - `NgModule` class: If you pass an NgModule class, it will be used to instantiate a module\n * using `platformBrowser`'s {@link PlatformRef#bootstrapModule bootstrapModule()}.\n * - `Function`: If you pass a function, it is expected to return a promise resolving to an\n * `NgModuleRef`. The function is called with an array of extra {@link StaticProvider Providers}\n * that are expected to be available from the returned `NgModuleRef`'s `Injector`.\n *\n * `downgradeModule()` returns the name of the created AngularJS wrapper module. You can use it to\n * declare a dependency in your main AngularJS module.\n *\n * {@example upgrade/static/ts/lite/module.ts region=\"basic-how-to\"}\n *\n * For more details on how to use `downgradeModule()` see\n * [Upgrading for Performance](guide/upgrade-performance).\n *\n * @usageNotes\n *\n * Apart from `UpgradeModule`, you can use the rest of the `upgrade/static` helpers as usual to\n * build a hybrid application. Note that the Angular pieces (e.g. downgraded services) will not be\n * available until the downgraded module has been bootstrapped, i.e. by instantiating a downgraded\n * component.\n *\n *
\n *\n * You cannot use `downgradeModule()` and `UpgradeModule` in the same hybrid application.
\n * Use one or the other.\n *\n *
\n *\n * ### Differences with `UpgradeModule`\n *\n * Besides their different API, there are two important internal differences between\n * `downgradeModule()` and `UpgradeModule` that affect the behavior of hybrid applications:\n *\n * 1. Unlike `UpgradeModule`, `downgradeModule()` does not bootstrap the main AngularJS module\n * inside the {@link NgZone Angular zone}.\n * 2. Unlike `UpgradeModule`, `downgradeModule()` does not automatically run a\n * [$digest()](https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$digest) when changes are\n * detected in the Angular part of the application.\n *\n * What this means is that applications using `UpgradeModule` will run change detection more\n * frequently in order to ensure that both frameworks are properly notified about possible changes.\n * This will inevitably result in more change detection runs than necessary.\n *\n * `downgradeModule()`, on the other side, does not try to tie the two change detection systems as\n * tightly, restricting the explicit change detection runs only to cases where it knows it is\n * necessary (e.g. when the inputs of a downgraded component change). This improves performance,\n * especially in change-detection-heavy applications, but leaves it up to the developer to manually\n * notify each framework as needed.\n *\n * For a more detailed discussion of the differences and their implications, see\n * [Upgrading for Performance](guide/upgrade-performance).\n *\n *
\n *\n * You can manually trigger a change detection run in AngularJS using\n * [scope.$apply(...)](https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$apply) or\n * [$rootScope.$digest()](https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$digest).\n *\n * You can manually trigger a change detection run in Angular using {@link NgZone#run\n * ngZone.run(...)}.\n *\n *
\n *\n * ### Downgrading multiple modules\n *\n * It is possible to downgrade multiple modules and include them in an AngularJS application. In\n * that case, each downgraded module will be bootstrapped when an associated downgraded component or\n * injectable needs to be instantiated.\n *\n * Things to keep in mind, when downgrading multiple modules:\n *\n * - Each downgraded component/injectable needs to be explicitly associated with a downgraded\n * module. See `downgradeComponent()` and `downgradeInjectable()` for more details.\n *\n * - If you want some injectables to be shared among all downgraded modules, you can provide them as\n * `StaticProvider`s, when creating the `PlatformRef` (e.g. via `platformBrowser` or\n * `platformBrowserDynamic`).\n *\n * - When using {@link PlatformRef#bootstrapmodule `bootstrapModule()`} or\n * {@link PlatformRef#bootstrapmodulefactory `bootstrapModuleFactory()`} to bootstrap the\n * downgraded modules, each one is considered a \"root\" module. As a consequence, a new instance\n * will be created for every injectable provided in `\"root\"` (via\n * {@link Injectable#providedIn `providedIn`}).\n * If this is not your intention, you can have a shared module (that will act as act as the \"root\"\n * module) and create all downgraded modules using that module's injector:\n *\n * {@example upgrade/static/ts/lite-multi-shared/module.ts region=\"shared-root-module\"}\n *\n * @publicApi\n */\nexport function downgradeModule(moduleOrBootstrapFn: Type|(\n (extraProviders: StaticProvider[]) => Promise>)): string;\n/**\n * @description\n *\n * A helper function for creating an AngularJS module that can bootstrap an Angular module\n * \"on-demand\" (possibly lazily) when a {@link downgradeComponent downgraded component} needs to be\n * instantiated.\n *\n * *Part of the [upgrade/static](api?query=upgrade/static) library for hybrid upgrade apps that\n * support AOT compilation.*\n *\n * It allows loading/bootstrapping the Angular part of a hybrid application lazily and not having to\n * pay the cost up-front. For example, you can have an AngularJS application that uses Angular for\n * specific routes and only instantiate the Angular modules if/when the user visits one of these\n * routes.\n *\n * The Angular module will be bootstrapped once (when requested for the first time) and the same\n * reference will be used from that point onwards.\n *\n * `downgradeModule()` requires either an `NgModuleFactory`, `NgModule` class or a function:\n * - `NgModuleFactory`: If you pass an `NgModuleFactory`, it will be used to instantiate a module\n * using `platformBrowser`'s {@link PlatformRef#bootstrapModuleFactory bootstrapModuleFactory()}.\n * NOTE: this type of the argument is deprecated. Please either provide an `NgModule` class or a\n * bootstrap function instead.\n * - `NgModule` class: If you pass an NgModule class, it will be used to instantiate a module\n * using `platformBrowser`'s {@link PlatformRef#bootstrapModule bootstrapModule()}.\n * - `Function`: If you pass a function, it is expected to return a promise resolving to an\n * `NgModuleRef`. The function is called with an array of extra {@link StaticProvider Providers}\n * that are expected to be available from the returned `NgModuleRef`'s `Injector`.\n *\n * `downgradeModule()` returns the name of the created AngularJS wrapper module. You can use it to\n * declare a dependency in your main AngularJS module.\n *\n * {@example upgrade/static/ts/lite/module.ts region=\"basic-how-to\"}\n *\n * For more details on how to use `downgradeModule()` see\n * [Upgrading for Performance](guide/upgrade-performance).\n *\n * @usageNotes\n *\n * Apart from `UpgradeModule`, you can use the rest of the `upgrade/static` helpers as usual to\n * build a hybrid application. Note that the Angular pieces (e.g. downgraded services) will not be\n * available until the downgraded module has been bootstrapped, i.e. by instantiating a downgraded\n * component.\n *\n *
\n *\n * You cannot use `downgradeModule()` and `UpgradeModule` in the same hybrid application.
\n * Use one or the other.\n *\n *
\n *\n * ### Differences with `UpgradeModule`\n *\n * Besides their different API, there are two important internal differences between\n * `downgradeModule()` and `UpgradeModule` that affect the behavior of hybrid applications:\n *\n * 1. Unlike `UpgradeModule`, `downgradeModule()` does not bootstrap the main AngularJS module\n * inside the {@link NgZone Angular zone}.\n * 2. Unlike `UpgradeModule`, `downgradeModule()` does not automatically run a\n * [$digest()](https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$digest) when changes are\n * detected in the Angular part of the application.\n *\n * What this means is that applications using `UpgradeModule` will run change detection more\n * frequently in order to ensure that both frameworks are properly notified about possible changes.\n * This will inevitably result in more change detection runs than necessary.\n *\n * `downgradeModule()`, on the other side, does not try to tie the two change detection systems as\n * tightly, restricting the explicit change detection runs only to cases where it knows it is\n * necessary (e.g. when the inputs of a downgraded component change). This improves performance,\n * especially in change-detection-heavy applications, but leaves it up to the developer to manually\n * notify each framework as needed.\n *\n * For a more detailed discussion of the differences and their implications, see\n * [Upgrading for Performance](guide/upgrade-performance).\n *\n *
\n *\n * You can manually trigger a change detection run in AngularJS using\n * [scope.$apply(...)](https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$apply) or\n * [$rootScope.$digest()](https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$digest).\n *\n * You can manually trigger a change detection run in Angular using {@link NgZone#run\n * ngZone.run(...)}.\n *\n *
\n *\n * ### Downgrading multiple modules\n *\n * It is possible to downgrade multiple modules and include them in an AngularJS application. In\n * that case, each downgraded module will be bootstrapped when an associated downgraded component or\n * injectable needs to be instantiated.\n *\n * Things to keep in mind, when downgrading multiple modules:\n *\n * - Each downgraded component/injectable needs to be explicitly associated with a downgraded\n * module. See `downgradeComponent()` and `downgradeInjectable()` for more details.\n *\n * - If you want some injectables to be shared among all downgraded modules, you can provide them as\n * `StaticProvider`s, when creating the `PlatformRef` (e.g. via `platformBrowser` or\n * `platformBrowserDynamic`).\n *\n * - When using {@link PlatformRef#bootstrapmodule `bootstrapModule()`} or\n * {@link PlatformRef#bootstrapmodulefactory `bootstrapModuleFactory()`} to bootstrap the\n * downgraded modules, each one is considered a \"root\" module. As a consequence, a new instance\n * will be created for every injectable provided in `\"root\"` (via\n * {@link Injectable#providedIn `providedIn`}).\n * If this is not your intention, you can have a shared module (that will act as act as the \"root\"\n * module) and create all downgraded modules using that module's injector:\n *\n * {@example upgrade/static/ts/lite-multi-shared/module.ts region=\"shared-root-module\"}\n *\n * @publicApi\n *\n * @deprecated Passing `NgModuleFactory` as the `downgradeModule` function argument is deprecated,\n * please pass an NgModule class reference instead.\n */\nexport function downgradeModule(moduleOrBootstrapFn: NgModuleFactory): string;\n/**\n * @description\n *\n * A helper function for creating an AngularJS module that can bootstrap an Angular module\n * \"on-demand\" (possibly lazily) when a {@link downgradeComponent downgraded component} needs to be\n * instantiated.\n *\n * *Part of the [upgrade/static](api?query=upgrade/static) library for hybrid upgrade apps that\n * support AOT compilation.*\n *\n * It allows loading/bootstrapping the Angular part of a hybrid application lazily and not having to\n * pay the cost up-front. For example, you can have an AngularJS application that uses Angular for\n * specific routes and only instantiate the Angular modules if/when the user visits one of these\n * routes.\n *\n * The Angular module will be bootstrapped once (when requested for the first time) and the same\n * reference will be used from that point onwards.\n *\n * `downgradeModule()` requires either an `NgModuleFactory`, `NgModule` class or a function:\n * - `NgModuleFactory`: If you pass an `NgModuleFactory`, it will be used to instantiate a module\n * using `platformBrowser`'s {@link PlatformRef#bootstrapModuleFactory bootstrapModuleFactory()}.\n * NOTE: this type of the argument is deprecated. Please either provide an `NgModule` class or a\n * bootstrap function instead.\n * - `NgModule` class: If you pass an NgModule class, it will be used to instantiate a module\n * using `platformBrowser`'s {@link PlatformRef#bootstrapModule bootstrapModule()}.\n * - `Function`: If you pass a function, it is expected to return a promise resolving to an\n * `NgModuleRef`. The function is called with an array of extra {@link StaticProvider Providers}\n * that are expected to be available from the returned `NgModuleRef`'s `Injector`.\n *\n * `downgradeModule()` returns the name of the created AngularJS wrapper module. You can use it to\n * declare a dependency in your main AngularJS module.\n *\n * {@example upgrade/static/ts/lite/module.ts region=\"basic-how-to\"}\n *\n * For more details on how to use `downgradeModule()` see\n * [Upgrading for Performance](guide/upgrade-performance).\n *\n * @usageNotes\n *\n * Apart from `UpgradeModule`, you can use the rest of the `upgrade/static` helpers as usual to\n * build a hybrid application. Note that the Angular pieces (e.g. downgraded services) will not be\n * available until the downgraded module has been bootstrapped, i.e. by instantiating a downgraded\n * component.\n *\n *
\n *\n * You cannot use `downgradeModule()` and `UpgradeModule` in the same hybrid application.
\n * Use one or the other.\n *\n *
\n *\n * ### Differences with `UpgradeModule`\n *\n * Besides their different API, there are two important internal differences between\n * `downgradeModule()` and `UpgradeModule` that affect the behavior of hybrid applications:\n *\n * 1. Unlike `UpgradeModule`, `downgradeModule()` does not bootstrap the main AngularJS module\n * inside the {@link NgZone Angular zone}.\n * 2. Unlike `UpgradeModule`, `downgradeModule()` does not automatically run a\n * [$digest()](https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$digest) when changes are\n * detected in the Angular part of the application.\n *\n * What this means is that applications using `UpgradeModule` will run change detection more\n * frequently in order to ensure that both frameworks are properly notified about possible changes.\n * This will inevitably result in more change detection runs than necessary.\n *\n * `downgradeModule()`, on the other side, does not try to tie the two change detection systems as\n * tightly, restricting the explicit change detection runs only to cases where it knows it is\n * necessary (e.g. when the inputs of a downgraded component change). This improves performance,\n * especially in change-detection-heavy applications, but leaves it up to the developer to manually\n * notify each framework as needed.\n *\n * For a more detailed discussion of the differences and their implications, see\n * [Upgrading for Performance](guide/upgrade-performance).\n *\n *
\n *\n * You can manually trigger a change detection run in AngularJS using\n * [scope.$apply(...)](https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$apply) or\n * [$rootScope.$digest()](https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$digest).\n *\n * You can manually trigger a change detection run in Angular using {@link NgZone#run\n * ngZone.run(...)}.\n *\n *
\n *\n * ### Downgrading multiple modules\n *\n * It is possible to downgrade multiple modules and include them in an AngularJS application. In\n * that case, each downgraded module will be bootstrapped when an associated downgraded component or\n * injectable needs to be instantiated.\n *\n * Things to keep in mind, when downgrading multiple modules:\n *\n * - Each downgraded component/injectable needs to be explicitly associated with a downgraded\n * module. See `downgradeComponent()` and `downgradeInjectable()` for more details.\n *\n * - If you want some injectables to be shared among all downgraded modules, you can provide them as\n * `StaticProvider`s, when creating the `PlatformRef` (e.g. via `platformBrowser` or\n * `platformBrowserDynamic`).\n *\n * - When using {@link PlatformRef#bootstrapmodule `bootstrapModule()`} or\n * {@link PlatformRef#bootstrapmodulefactory `bootstrapModuleFactory()`} to bootstrap the\n * downgraded modules, each one is considered a \"root\" module. As a consequence, a new instance\n * will be created for every injectable provided in `\"root\"` (via\n * {@link Injectable#providedIn `providedIn`}).\n * If this is not your intention, you can have a shared module (that will act as act as the \"root\"\n * module) and create all downgraded modules using that module's injector:\n *\n * {@example upgrade/static/ts/lite-multi-shared/module.ts region=\"shared-root-module\"}\n *\n * @publicApi\n */\nexport function downgradeModule(moduleOrBootstrapFn: Type|NgModuleFactory|(\n (extraProviders: StaticProvider[]) => Promise>)): string {\n const lazyModuleName = `${ɵconstants.UPGRADE_MODULE_NAME}.lazy${++moduleUid}`;\n const lazyModuleRefKey = `${ɵconstants.LAZY_MODULE_REF}${lazyModuleName}`;\n const lazyInjectorKey = `${ɵconstants.INJECTOR_KEY}${lazyModuleName}`;\n\n let bootstrapFn: (extraProviders: StaticProvider[]) => Promise>;\n if (ɵutil.isNgModuleType(moduleOrBootstrapFn)) {\n // NgModule class\n bootstrapFn = (extraProviders: StaticProvider[]) =>\n platformBrowser(extraProviders).bootstrapModule(moduleOrBootstrapFn);\n } else if (!ɵutil.isFunction(moduleOrBootstrapFn)) {\n // NgModule factory\n bootstrapFn = (extraProviders: StaticProvider[]) =>\n platformBrowser(extraProviders).bootstrapModuleFactory(moduleOrBootstrapFn);\n } else {\n // bootstrap function\n bootstrapFn = moduleOrBootstrapFn;\n }\n\n let injector: Injector;\n\n // Create an ng1 module to bootstrap.\n ɵangular1.module_(lazyModuleName, [])\n .constant(ɵconstants.UPGRADE_APP_TYPE_KEY, ɵutil.UpgradeAppType.Lite)\n .factory(ɵconstants.INJECTOR_KEY, [lazyInjectorKey, identity])\n .factory(\n lazyInjectorKey,\n () => {\n if (!injector) {\n throw new Error(\n 'Trying to get the Angular injector before bootstrapping the corresponding ' +\n 'Angular module.');\n }\n return injector;\n })\n .factory(ɵconstants.LAZY_MODULE_REF, [lazyModuleRefKey, identity])\n .factory(\n lazyModuleRefKey,\n [\n ɵconstants.$INJECTOR,\n ($injector: ɵangular1.IInjectorService) => {\n setTempInjectorRef($injector);\n const result: ɵutil.LazyModuleRef = {\n promise: bootstrapFn(angular1Providers).then(ref => {\n injector = result.injector = new NgAdapterInjector(ref.injector);\n injector.get(ɵconstants.$INJECTOR);\n\n // Destroy the AngularJS app once the Angular `PlatformRef` is destroyed.\n // This does not happen in a typical SPA scenario, but it might be useful for\n // other use-cases where disposing of an Angular/AngularJS app is necessary\n // (such as Hot Module Replacement (HMR)).\n // See https://github.com/angular/angular/issues/39935.\n injector.get(PlatformRef).onDestroy(() => ɵutil.destroyApp($injector));\n\n return injector;\n })\n };\n return result;\n }\n ])\n .config([\n ɵconstants.$INJECTOR, ɵconstants.$PROVIDE,\n ($injector: ɵangular1.IInjectorService, $provide: ɵangular1.IProvideService) => {\n $provide.constant(\n ɵconstants.DOWNGRADED_MODULE_COUNT_KEY,\n ɵutil.getDowngradedModuleCount($injector) + 1);\n }\n ]);\n\n return lazyModuleName;\n}\n\nfunction identity(x: T): T {\n return x;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, DoCheck, ElementRef, EventEmitter, Injector, OnChanges, OnDestroy, OnInit, SimpleChanges} from '@angular/core';\n\nimport {ɵangular1, ɵconstants, ɵupgradeHelper, ɵutil} from '../common';\n\nconst NOT_SUPPORTED: any = 'NOT_SUPPORTED';\nconst INITIAL_VALUE = {\n __UNINITIALIZED__: true\n};\n\nclass Bindings {\n twoWayBoundProperties: string[] = [];\n twoWayBoundLastValues: any[] = [];\n\n expressionBoundProperties: string[] = [];\n\n propertyToOutputMap: {[propName: string]: string} = {};\n}\n\n/**\n * @description\n *\n * A helper class that allows an AngularJS component to be used from Angular.\n *\n * *Part of the [upgrade/static](api?query=upgrade%2Fstatic)\n * library for hybrid upgrade apps that support AOT compilation.*\n *\n * This helper class should be used as a base class for creating Angular directives\n * that wrap AngularJS components that need to be \"upgraded\".\n *\n * @usageNotes\n * ### Examples\n *\n * Let's assume that you have an AngularJS component called `ng1Hero` that needs\n * to be made available in Angular templates.\n *\n * {@example upgrade/static/ts/full/module.ts region=\"ng1-hero\"}\n *\n * We must create a `Directive` that will make this AngularJS component\n * available inside Angular templates.\n *\n * {@example upgrade/static/ts/full/module.ts region=\"ng1-hero-wrapper\"}\n *\n * In this example you can see that we must derive from the `UpgradeComponent`\n * base class but also provide an {@link Directive `@Directive`} decorator. This is\n * because the AOT compiler requires that this information is statically available at\n * compile time.\n *\n * Note that we must do the following:\n * * specify the directive's selector (`ng1-hero`)\n * * specify all inputs and outputs that the AngularJS component expects\n * * derive from `UpgradeComponent`\n * * call the base class from the constructor, passing\n * * the AngularJS name of the component (`ng1Hero`)\n * * the `ElementRef` and `Injector` for the component wrapper\n *\n * @publicApi\n * @extensible\n */\n@Directive()\nexport class UpgradeComponent implements OnInit, OnChanges, DoCheck, OnDestroy {\n private helper: ɵupgradeHelper.UpgradeHelper;\n\n private $element: ɵangular1.IAugmentedJQuery;\n private $componentScope: ɵangular1.IScope;\n\n private directive: ɵangular1.IDirective;\n private bindings: Bindings;\n\n private controllerInstance?: ɵupgradeHelper.IControllerInstance;\n private bindingDestination?: ɵupgradeHelper.IBindingDestination;\n\n // We will be instantiating the controller in the `ngOnInit` hook, when the\n // first `ngOnChanges` will have been already triggered. We store the\n // `SimpleChanges` and \"play them back\" later.\n private pendingChanges: SimpleChanges|null = null;\n\n private unregisterDoCheckWatcher?: Function;\n\n /**\n * Create a new `UpgradeComponent` instance. You should not normally need to do this.\n * Instead you should derive a new class from this one and call the super constructor\n * from the base class.\n *\n * {@example upgrade/static/ts/full/module.ts region=\"ng1-hero-wrapper\" }\n *\n * * The `name` parameter should be the name of the AngularJS directive.\n * * The `elementRef` and `injector` parameters should be acquired from Angular by dependency\n * injection into the base class constructor.\n */\n constructor(name: string, elementRef: ElementRef, injector: Injector) {\n this.helper = new ɵupgradeHelper.UpgradeHelper(injector, name, elementRef);\n\n this.$element = this.helper.$element;\n\n this.directive = this.helper.directive;\n this.bindings = this.initializeBindings(this.directive, name);\n\n // We ask for the AngularJS scope from the Angular injector, since\n // we will put the new component scope onto the new injector for each component\n const $parentScope = injector.get(ɵconstants.$SCOPE);\n // QUESTION 1: Should we create an isolated scope if the scope is only true?\n // QUESTION 2: Should we make the scope accessible through `$element.scope()/isolateScope()`?\n this.$componentScope = $parentScope.$new(!!this.directive.scope);\n\n this.initializeOutputs();\n }\n\n /** @nodoc */\n ngOnInit() {\n // Collect contents, insert and compile template\n const attachChildNodes: ɵangular1.ILinkFn|undefined = this.helper.prepareTransclusion();\n const linkFn = this.helper.compileTemplate();\n\n // Instantiate controller\n const controllerType = this.directive.controller;\n const bindToController = this.directive.bindToController;\n let controllerInstance = controllerType ?\n this.helper.buildController(controllerType, this.$componentScope) :\n undefined;\n let bindingDestination: ɵupgradeHelper.IBindingDestination;\n\n if (!bindToController) {\n bindingDestination = this.$componentScope;\n } else if (controllerType && controllerInstance) {\n bindingDestination = controllerInstance;\n } else {\n throw new Error(`Upgraded directive '${\n this.directive.name}' specifies 'bindToController' but no controller.`);\n }\n this.controllerInstance = controllerInstance;\n this.bindingDestination = bindingDestination;\n\n // Set up outputs\n this.bindOutputs(bindingDestination);\n\n // Require other controllers\n const requiredControllers = this.helper.resolveAndBindRequiredControllers(controllerInstance);\n\n // Hook: $onChanges\n if (this.pendingChanges) {\n this.forwardChanges(this.pendingChanges, bindingDestination);\n this.pendingChanges = null;\n }\n\n // Hook: $onInit\n if (this.controllerInstance && ɵutil.isFunction(this.controllerInstance.$onInit)) {\n this.controllerInstance.$onInit();\n }\n\n // Hook: $doCheck\n if (controllerInstance && ɵutil.isFunction(controllerInstance.$doCheck)) {\n const callDoCheck = () => controllerInstance?.$doCheck?.();\n\n this.unregisterDoCheckWatcher = this.$componentScope.$parent.$watch(callDoCheck);\n callDoCheck();\n }\n\n // Linking\n const link = this.directive.link;\n const preLink = typeof link == 'object' && link.pre;\n const postLink = typeof link == 'object' ? link.post : link;\n const attrs: ɵangular1.IAttributes = NOT_SUPPORTED;\n const transcludeFn: ɵangular1.ITranscludeFunction = NOT_SUPPORTED;\n if (preLink) {\n preLink(this.$componentScope, this.$element, attrs, requiredControllers, transcludeFn);\n }\n\n linkFn(this.$componentScope, null!, {parentBoundTranscludeFn: attachChildNodes});\n\n if (postLink) {\n postLink(this.$componentScope, this.$element, attrs, requiredControllers, transcludeFn);\n }\n\n // Hook: $postLink\n if (this.controllerInstance && ɵutil.isFunction(this.controllerInstance.$postLink)) {\n this.controllerInstance.$postLink();\n }\n }\n\n /** @nodoc */\n ngOnChanges(changes: SimpleChanges) {\n if (!this.bindingDestination) {\n this.pendingChanges = changes;\n } else {\n this.forwardChanges(changes, this.bindingDestination);\n }\n }\n\n /** @nodoc */\n ngDoCheck() {\n const twoWayBoundProperties = this.bindings.twoWayBoundProperties;\n const twoWayBoundLastValues = this.bindings.twoWayBoundLastValues;\n const propertyToOutputMap = this.bindings.propertyToOutputMap;\n\n twoWayBoundProperties.forEach((propName, idx) => {\n const newValue = this.bindingDestination?.[propName];\n const oldValue = twoWayBoundLastValues[idx];\n\n if (!Object.is(newValue, oldValue)) {\n const outputName = propertyToOutputMap[propName];\n const eventEmitter: EventEmitter = (this as any)[outputName];\n\n eventEmitter.emit(newValue);\n twoWayBoundLastValues[idx] = newValue;\n }\n });\n }\n\n /** @nodoc */\n ngOnDestroy() {\n if (ɵutil.isFunction(this.unregisterDoCheckWatcher)) {\n this.unregisterDoCheckWatcher();\n }\n this.helper.onDestroy(this.$componentScope, this.controllerInstance);\n }\n\n private initializeBindings(directive: ɵangular1.IDirective, name: string) {\n const btcIsObject = typeof directive.bindToController === 'object';\n if (btcIsObject && Object.keys(directive.scope!).length) {\n throw new Error(\n `Binding definitions on scope and controller at the same time is not supported.`);\n }\n\n const context = btcIsObject ? directive.bindToController : directive.scope;\n const bindings = new Bindings();\n\n if (typeof context == 'object') {\n Object.keys(context).forEach(propName => {\n const definition = context[propName];\n const bindingType = definition.charAt(0);\n\n // QUESTION: What about `=*`? Ignore? Throw? Support?\n\n switch (bindingType) {\n case '@':\n case '<':\n // We don't need to do anything special. They will be defined as inputs on the\n // upgraded component facade and the change propagation will be handled by\n // `ngOnChanges()`.\n break;\n case '=':\n bindings.twoWayBoundProperties.push(propName);\n bindings.twoWayBoundLastValues.push(INITIAL_VALUE);\n bindings.propertyToOutputMap[propName] = propName + 'Change';\n break;\n case '&':\n bindings.expressionBoundProperties.push(propName);\n bindings.propertyToOutputMap[propName] = propName;\n break;\n default:\n let json = JSON.stringify(context);\n throw new Error(\n `Unexpected mapping '${bindingType}' in '${json}' in '${name}' directive.`);\n }\n });\n }\n\n return bindings;\n }\n\n private initializeOutputs() {\n // Initialize the outputs for `=` and `&` bindings\n this.bindings.twoWayBoundProperties.concat(this.bindings.expressionBoundProperties)\n .forEach(propName => {\n const outputName = this.bindings.propertyToOutputMap[propName];\n (this as any)[outputName] = new EventEmitter();\n });\n }\n\n private bindOutputs(bindingDestination: ɵupgradeHelper.IBindingDestination) {\n // Bind `&` bindings to the corresponding outputs\n this.bindings.expressionBoundProperties.forEach(propName => {\n const outputName = this.bindings.propertyToOutputMap[propName];\n const emitter: EventEmitter = (this as any)[outputName];\n\n bindingDestination[propName] = (value: any) => emitter.emit(value);\n });\n }\n\n private forwardChanges(\n changes: SimpleChanges, bindingDestination: ɵupgradeHelper.IBindingDestination) {\n // Forward input changes to `bindingDestination`\n Object.keys(changes).forEach(\n propName => bindingDestination[propName] = changes[propName].currentValue);\n\n if (ɵutil.isFunction(bindingDestination.$onChanges)) {\n bindingDestination.$onChanges(changes);\n }\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Injector, NgModule, NgZone, PlatformRef, Testability} from '@angular/core';\n\nimport {ɵangular1, ɵconstants, ɵutil} from '../common';\n\nimport {angular1Providers, setTempInjectorRef} from './angular1_providers';\nimport {NgAdapterInjector} from './util';\n\n\n\n/**\n * @description\n *\n * An `NgModule`, which you import to provide AngularJS core services,\n * and has an instance method used to bootstrap the hybrid upgrade application.\n *\n * *Part of the [upgrade/static](api?query=upgrade/static)\n * library for hybrid upgrade apps that support AOT compilation*\n *\n * The `upgrade/static` package contains helpers that allow AngularJS and Angular components\n * to be used together inside a hybrid upgrade application, which supports AOT compilation.\n *\n * Specifically, the classes and functions in the `upgrade/static` module allow the following:\n *\n * 1. Creation of an Angular directive that wraps and exposes an AngularJS component so\n * that it can be used in an Angular template. See `UpgradeComponent`.\n * 2. Creation of an AngularJS directive that wraps and exposes an Angular component so\n * that it can be used in an AngularJS template. See `downgradeComponent`.\n * 3. Creation of an Angular root injector provider that wraps and exposes an AngularJS\n * service so that it can be injected into an Angular context. See\n * {@link UpgradeModule#upgrading-an-angular-1-service Upgrading an AngularJS service} below.\n * 4. Creation of an AngularJS service that wraps and exposes an Angular injectable\n * so that it can be injected into an AngularJS context. See `downgradeInjectable`.\n * 3. Bootstrapping of a hybrid Angular application which contains both of the frameworks\n * coexisting in a single application.\n *\n * @usageNotes\n *\n * ```ts\n * import {UpgradeModule} from '@angular/upgrade/static';\n * ```\n *\n * See also the {@link UpgradeModule#examples examples} below.\n *\n * ### Mental Model\n *\n * When reasoning about how a hybrid application works it is useful to have a mental model which\n * describes what is happening and explains what is happening at the lowest level.\n *\n * 1. There are two independent frameworks running in a single application, each framework treats\n * the other as a black box.\n * 2. Each DOM element on the page is owned exactly by one framework. Whichever framework\n * instantiated the element is the owner. Each framework only updates/interacts with its own\n * DOM elements and ignores others.\n * 3. AngularJS directives always execute inside the AngularJS framework codebase regardless of\n * where they are instantiated.\n * 4. Angular components always execute inside the Angular framework codebase regardless of\n * where they are instantiated.\n * 5. An AngularJS component can be \"upgraded\"\" to an Angular component. This is achieved by\n * defining an Angular directive, which bootstraps the AngularJS component at its location\n * in the DOM. See `UpgradeComponent`.\n * 6. An Angular component can be \"downgraded\" to an AngularJS component. This is achieved by\n * defining an AngularJS directive, which bootstraps the Angular component at its location\n * in the DOM. See `downgradeComponent`.\n * 7. Whenever an \"upgraded\"/\"downgraded\" component is instantiated the host element is owned by\n * the framework doing the instantiation. The other framework then instantiates and owns the\n * view for that component.\n * 1. This implies that the component bindings will always follow the semantics of the\n * instantiation framework.\n * 2. The DOM attributes are parsed by the framework that owns the current template. So\n * attributes in AngularJS templates must use kebab-case, while AngularJS templates must use\n * camelCase.\n * 3. However the template binding syntax will always use the Angular style, e.g. square\n * brackets (`[...]`) for property binding.\n * 8. Angular is bootstrapped first; AngularJS is bootstrapped second. AngularJS always owns the\n * root component of the application.\n * 9. The new application is running in an Angular zone, and therefore it no longer needs calls to\n * `$apply()`.\n *\n * ### The `UpgradeModule` class\n *\n * This class is an `NgModule`, which you import to provide AngularJS core services,\n * and has an instance method used to bootstrap the hybrid upgrade application.\n *\n * * Core AngularJS services
\n * Importing this `NgModule` will add providers for the core\n * [AngularJS services](https://docs.angularjs.org/api/ng/service) to the root injector.\n *\n * * Bootstrap
\n * The runtime instance of this class contains a {@link UpgradeModule#bootstrap `bootstrap()`}\n * method, which you use to bootstrap the top level AngularJS module onto an element in the\n * DOM for the hybrid upgrade app.\n *\n * It also contains properties to access the {@link UpgradeModule#injector root injector}, the\n * bootstrap `NgZone` and the\n * [AngularJS $injector](https://docs.angularjs.org/api/auto/service/$injector).\n *\n * ### Examples\n *\n * Import the `UpgradeModule` into your top level {@link NgModule Angular `NgModule`}.\n *\n * {@example upgrade/static/ts/full/module.ts region='ng2-module'}\n *\n * Then inject `UpgradeModule` into your Angular `NgModule` and use it to bootstrap the top level\n * [AngularJS module](https://docs.angularjs.org/api/ng/type/angular.Module) in the\n * `ngDoBootstrap()` method.\n *\n * {@example upgrade/static/ts/full/module.ts region='bootstrap-ng1'}\n *\n * Finally, kick off the whole process, by bootstrapping your top level Angular `NgModule`.\n *\n * {@example upgrade/static/ts/full/module.ts region='bootstrap-ng2'}\n *\n * {@a upgrading-an-angular-1-service}\n * ### Upgrading an AngularJS service\n *\n * There is no specific API for upgrading an AngularJS service. Instead you should just follow the\n * following recipe:\n *\n * Let's say you have an AngularJS service:\n *\n * {@example upgrade/static/ts/full/module.ts region=\"ng1-text-formatter-service\"}\n *\n * Then you should define an Angular provider to be included in your `NgModule` `providers`\n * property.\n *\n * {@example upgrade/static/ts/full/module.ts region=\"upgrade-ng1-service\"}\n *\n * Then you can use the \"upgraded\" AngularJS service by injecting it into an Angular component\n * or service.\n *\n * {@example upgrade/static/ts/full/module.ts region=\"use-ng1-upgraded-service\"}\n *\n * @publicApi\n */\n@NgModule({providers: [angular1Providers]})\nexport class UpgradeModule {\n /**\n * The AngularJS `$injector` for the upgrade application.\n */\n public $injector: any /*angular.IInjectorService*/;\n /** The Angular Injector **/\n public injector: Injector;\n\n constructor(\n /** The root `Injector` for the upgrade application. */\n injector: Injector,\n /** The bootstrap zone for the upgrade application */\n public ngZone: NgZone,\n /**\n * The owning `NgModuleRef`s `PlatformRef` instance.\n * This is used to tie the lifecycle of the bootstrapped AngularJS apps to that of the Angular\n * `PlatformRef`.\n */\n private platformRef: PlatformRef) {\n this.injector = new NgAdapterInjector(injector);\n }\n\n /**\n * Bootstrap an AngularJS application from this NgModule\n * @param element the element on which to bootstrap the AngularJS application\n * @param [modules] the AngularJS modules to bootstrap for this application\n * @param [config] optional extra AngularJS bootstrap configuration\n * @return The value returned by\n * [angular.bootstrap()](https://docs.angularjs.org/api/ng/function/angular.bootstrap).\n */\n bootstrap(\n element: Element, modules: string[] = [], config?: any /*angular.IAngularBootstrapConfig*/):\n any /*ReturnType*/ {\n const INIT_MODULE_NAME = ɵconstants.UPGRADE_MODULE_NAME + '.init';\n\n // Create an ng1 module to bootstrap\n ɵangular1\n .module_(INIT_MODULE_NAME, [])\n\n .constant(ɵconstants.UPGRADE_APP_TYPE_KEY, ɵutil.UpgradeAppType.Static)\n\n .value(ɵconstants.INJECTOR_KEY, this.injector)\n\n .factory(\n ɵconstants.LAZY_MODULE_REF,\n [ɵconstants.INJECTOR_KEY, (injector: Injector) => ({injector} as ɵutil.LazyModuleRef)])\n\n .config([\n ɵconstants.$PROVIDE, ɵconstants.$INJECTOR,\n ($provide: ɵangular1.IProvideService, $injector: ɵangular1.IInjectorService) => {\n if ($injector.has(ɵconstants.$$TESTABILITY)) {\n $provide.decorator(ɵconstants.$$TESTABILITY, [\n ɵconstants.$DELEGATE,\n (testabilityDelegate: ɵangular1.ITestabilityService) => {\n const originalWhenStable: Function = testabilityDelegate.whenStable;\n const injector = this.injector;\n // Cannot use arrow function below because we need the context\n const newWhenStable = function(callback: Function) {\n originalWhenStable.call(testabilityDelegate, function() {\n const ng2Testability: Testability = injector.get(Testability);\n if (ng2Testability.isStable()) {\n callback();\n } else {\n ng2Testability.whenStable(\n newWhenStable.bind(testabilityDelegate, callback));\n }\n });\n };\n\n testabilityDelegate.whenStable = newWhenStable;\n return testabilityDelegate;\n }\n ]);\n }\n\n if ($injector.has(ɵconstants.$INTERVAL)) {\n $provide.decorator(ɵconstants.$INTERVAL, [\n ɵconstants.$DELEGATE,\n (intervalDelegate: ɵangular1.IIntervalService) => {\n // Wrap the $interval service so that setInterval is called outside NgZone,\n // but the callback is still invoked within it. This is so that $interval\n // won't block stability, which preserves the behavior from AngularJS.\n let wrappedInterval =\n (fn: Function, delay: number, count?: number, invokeApply?: boolean,\n ...pass: any[]) => {\n return this.ngZone.runOutsideAngular(() => {\n return intervalDelegate((...args: any[]) => {\n // Run callback in the next VM turn - $interval calls\n // $rootScope.$apply, and running the callback in NgZone will\n // cause a '$digest already in progress' error if it's in the\n // same vm turn.\n setTimeout(() => {\n this.ngZone.run(() => fn(...args));\n });\n }, delay, count, invokeApply, ...pass);\n });\n };\n\n (Object.keys(intervalDelegate) as (keyof ɵangular1.IIntervalService)[])\n .forEach(prop => (wrappedInterval as any)[prop] = intervalDelegate[prop]);\n\n // the `flush` method will be present when ngMocks is used\n if (intervalDelegate.hasOwnProperty('flush')) {\n (wrappedInterval as any)['flush'] = () => {\n (intervalDelegate as any)['flush']();\n return wrappedInterval;\n };\n }\n\n return wrappedInterval;\n }\n ]);\n }\n }\n ])\n\n .run([\n ɵconstants.$INJECTOR,\n ($injector: ɵangular1.IInjectorService) => {\n this.$injector = $injector;\n const $rootScope = $injector.get('$rootScope');\n\n // Initialize the ng1 $injector provider\n setTempInjectorRef($injector);\n this.injector.get(ɵconstants.$INJECTOR);\n\n // Put the injector on the DOM, so that it can be \"required\"\n ɵangular1.element(element).data!\n (ɵutil.controllerKey(ɵconstants.INJECTOR_KEY), this.injector);\n\n // Destroy the AngularJS app once the Angular `PlatformRef` is destroyed.\n // This does not happen in a typical SPA scenario, but it might be useful for\n // other use-cases where disposing of an Angular/AngularJS app is necessary\n // (such as Hot Module Replacement (HMR)).\n // See https://github.com/angular/angular/issues/39935.\n this.platformRef.onDestroy(() => ɵutil.destroyApp($injector));\n\n // Wire up the ng1 rootScope to run a digest cycle whenever the zone settles\n // We need to do this in the next tick so that we don't prevent the bootup stabilizing\n setTimeout(() => {\n const subscription = this.ngZone.onMicrotaskEmpty.subscribe(() => {\n if ($rootScope.$$phase) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.warn(\n 'A digest was triggered while one was already in progress. This may mean that something is triggering digests outside the Angular zone.');\n }\n\n return $rootScope.$evalAsync();\n }\n\n return $rootScope.$digest();\n });\n $rootScope.$on('$destroy', () => {\n subscription.unsubscribe();\n });\n }, 0);\n }\n ]);\n\n const upgradeModule =\n ɵangular1.module_(ɵconstants.UPGRADE_MODULE_NAME, [INIT_MODULE_NAME].concat(modules));\n\n // Make sure resumeBootstrap() only exists if the current bootstrap is deferred\n const windowAngular = (window as any)['angular'];\n windowAngular.resumeBootstrap = undefined;\n\n // Bootstrap the AngularJS application inside our zone\n const returnValue =\n this.ngZone.run(() => ɵangular1.bootstrap(element, [upgradeModule.name], config));\n\n // Patch resumeBootstrap() to run inside the ngZone\n if (windowAngular.resumeBootstrap) {\n const originalResumeBootstrap: () => void = windowAngular.resumeBootstrap;\n const ngZone = this.ngZone;\n windowAngular.resumeBootstrap = function() {\n let args = arguments;\n windowAngular.resumeBootstrap = originalResumeBootstrap;\n return ngZone.run(() => windowAngular.resumeBootstrap.apply(this, args));\n };\n }\n\n return returnValue;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport {getAngularJSGlobal, getAngularLib, setAngularJSGlobal, setAngularLib} from '../src/common/src/angular1';\nexport {downgradeComponent} from '../src/common/src/downgrade_component';\nexport {downgradeInjectable} from '../src/common/src/downgrade_injectable';\nexport {VERSION} from '../src/common/src/version';\nexport {downgradeModule} from './src/downgrade_module';\nexport {UpgradeComponent} from './src/upgrade_component';\nexport {UpgradeModule} from './src/upgrade_module';\nexport * from './common';\n\n\n// This file only re-exports items to appear in the public api. Keep it that way.\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n// This file is not used to build this module. It is only used during editing\n// by the TypeScript language service and during build for verification. `ngc`\n// replaces this file with production index.ts when it rewrites private symbol\n// names.\n\nexport * from './public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["angularElement","INITIAL_VALUE","NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR","ɵconstants.UPGRADE_MODULE_NAME","ɵconstants.LAZY_MODULE_REF","ɵconstants.INJECTOR_KEY","ɵutil.isNgModuleType","ɵutil.isFunction","ɵangular1.module_","ɵconstants.UPGRADE_APP_TYPE_KEY","ɵconstants.$INJECTOR","ɵutil.destroyApp","ɵconstants.$PROVIDE","ɵconstants.DOWNGRADED_MODULE_COUNT_KEY","ɵutil.getDowngradedModuleCount","ɵupgradeHelper.UpgradeHelper","ɵconstants.$SCOPE","element","ɵangular1\n .module_","ɵconstants.$$TESTABILITY","ɵconstants.$DELEGATE","ɵconstants.$INTERVAL","ɵangular1.element","ɵutil.controllerKey","ɵangular1.bootstrap"],"mappings":"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"} \ No newline at end of file diff --git a/fesm2022/static/testing.mjs b/fesm2022/static/testing.mjs index b6bc106de33..a567448217d 100755 --- a/fesm2022/static/testing.mjs +++ b/fesm2022/static/testing.mjs @@ -1,5 +1,5 @@ /** - * @license Angular v17.0.0-next.2+sha-bb47f81 + * @license Angular v17.0.0-next.2+sha-b9ba6e6 * (c) 2010-2022 Google LLC. https://angular.io/ * License: MIT */ @@ -18,11 +18,11 @@ class AngularTestingModule { constructor(i) { injector = i; } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-bb47f81", ngImport: i0, type: AngularTestingModule, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.NgModule }); } - static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-next.2+sha-bb47f81", ngImport: i0, type: AngularTestingModule }); } - static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-bb47f81", ngImport: i0, type: AngularTestingModule, providers: [{ provide: ɵconstants.$INJECTOR, useFactory: $injectorFactory }] }); } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-b9ba6e6", ngImport: i0, type: AngularTestingModule, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.NgModule }); } + static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-next.2+sha-b9ba6e6", ngImport: i0, type: AngularTestingModule }); } + static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-b9ba6e6", ngImport: i0, type: AngularTestingModule, providers: [{ provide: ɵconstants.$INJECTOR, useFactory: $injectorFactory }] }); } } -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-bb47f81", ngImport: i0, type: AngularTestingModule, decorators: [{ +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-b9ba6e6", ngImport: i0, type: AngularTestingModule, decorators: [{ type: NgModule, args: [{ providers: [{ provide: ɵconstants.$INJECTOR, useFactory: $injectorFactory }] }] }], ctorParameters: function () { return [{ type: i0.Injector }]; } }); diff --git a/fesm2022/upgrade.mjs b/fesm2022/upgrade.mjs index bfa0f29cc0c..6ee235c8f70 100755 --- a/fesm2022/upgrade.mjs +++ b/fesm2022/upgrade.mjs @@ -1,5 +1,5 @@ /** - * @license Angular v17.0.0-next.2+sha-bb47f81 + * @license Angular v17.0.0-next.2+sha-b9ba6e6 * (c) 2010-2022 Google LLC. https://angular.io/ * License: MIT */ @@ -17,7 +17,7 @@ import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; /** * @publicApi */ -const VERSION = new Version('17.0.0-next.2+sha-bb47f81'); +const VERSION = new Version('17.0.0-next.2+sha-b9ba6e6'); function noNg() { throw new Error('AngularJS v1.x is not loaded!'); @@ -1288,10 +1288,10 @@ class UpgradeNg1ComponentAdapter { setComponentProperty(name, value) { this.destinationObj[this.propertyMap[name]] = value; } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-bb47f81", ngImport: i0, type: UpgradeNg1ComponentAdapter, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); } - static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-next.2+sha-bb47f81", type: UpgradeNg1ComponentAdapter, usesOnChanges: true, ngImport: i0 }); } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-b9ba6e6", ngImport: i0, type: UpgradeNg1ComponentAdapter, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); } + static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-next.2+sha-b9ba6e6", type: UpgradeNg1ComponentAdapter, usesOnChanges: true, ngImport: i0 }); } } -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-bb47f81", ngImport: i0, type: UpgradeNg1ComponentAdapter, decorators: [{ +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.2+sha-b9ba6e6", ngImport: i0, type: UpgradeNg1ComponentAdapter, decorators: [{ type: Directive }], ctorParameters: function () { return [{ type: UpgradeHelper }, { type: undefined }, { type: undefined }, { type: undefined }, { type: undefined }, { type: undefined }, { type: undefined }, { type: undefined }]; } }); diff --git a/fesm2022/upgrade.mjs.map b/fesm2022/upgrade.mjs.map index 5eb72289931..5aa8da5c9cf 100755 --- a/fesm2022/upgrade.mjs.map +++ b/fesm2022/upgrade.mjs.map @@ -1 +1 @@ -{"version":3,"file":"upgrade.mjs","sources":["../../../../../../packages/upgrade/src/common/src/version.ts","../../../../../../packages/upgrade/src/common/src/angular1.ts","../../../../../../packages/upgrade/src/common/src/constants.ts","../../../../../../packages/upgrade/src/common/src/component_info.ts","../../../../../../packages/upgrade/src/common/src/util.ts","../../../../../../packages/upgrade/src/common/src/downgrade_component_adapter.ts","../../../../../../packages/upgrade/src/common/src/promise_util.ts","../../../../../../packages/upgrade/src/common/src/downgrade_component.ts","../../../../../../packages/upgrade/src/common/src/downgrade_injectable.ts","../../../../../../packages/upgrade/src/common/src/upgrade_helper.ts","../../../../../../packages/upgrade/src/dynamic/src/upgrade_ng1_adapter.ts","../../../../../../packages/upgrade/src/dynamic/src/upgrade_adapter.ts","../../../../../../packages/upgrade/public_api.ts","../../../../../../packages/upgrade/index.ts","../../../../../../packages/upgrade/upgrade.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of the upgrade package.\n */\n\nimport {Version} from '@angular/core';\n\n/**\n * @publicApi\n */\nexport const VERSION = new Version('17.0.0-next.2+sha-bb47f81');\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport type Ng1Token = string;\n\nexport type Ng1Expression = string|Function;\n\nexport interface IAnnotatedFunction extends Function {\n // Older versions of `@types/angular` typings extend the global `Function` interface with\n // `$inject?: string[]`, which is not compatible with `$inject?: ReadonlyArray` (used in\n // latest versions).\n $inject?: Function extends {$inject?: string[]}? Ng1Token[]: ReadonlyArray;\n}\n\nexport type IInjectable = (Ng1Token|Function)[]|IAnnotatedFunction;\n\nexport type SingleOrListOrMap = T|T[]|{[key: string]: T};\n\nexport interface IModule {\n name: string;\n requires: (string|IInjectable)[];\n config(fn: IInjectable): IModule;\n directive(selector: string, factory: IInjectable): IModule;\n component(selector: string, component: IComponent): IModule;\n controller(name: string, type: IInjectable): IModule;\n factory(key: Ng1Token, factoryFn: IInjectable): IModule;\n value(key: Ng1Token, value: any): IModule;\n constant(token: Ng1Token, value: any): IModule;\n run(a: IInjectable): IModule;\n}\nexport interface ICompileService {\n (element: Element|NodeList|Node[]|string, transclude?: Function): ILinkFn;\n}\nexport interface ILinkFn {\n (scope: IScope, cloneAttachFn?: ICloneAttachFunction, options?: ILinkFnOptions): IAugmentedJQuery;\n $$slots?: {[slotName: string]: ILinkFn};\n}\nexport interface ILinkFnOptions {\n parentBoundTranscludeFn?: Function;\n transcludeControllers?: {[key: string]: any};\n futureParentElement?: Node;\n}\nexport interface IRootScopeService {\n $new(isolate?: boolean): IScope;\n $id: string;\n $parent: IScope;\n $root: IScope;\n $watch(exp: Ng1Expression, fn?: (a1?: any, a2?: any) => void): Function;\n $on(event: string, fn?: (event?: any, ...args: any[]) => void): Function;\n $destroy(): any;\n $apply(exp?: Ng1Expression): any;\n $digest(): any;\n $evalAsync(exp: Ng1Expression, locals?: any): void;\n $on(event: string, fn?: (event?: any, ...args: any[]) => void): Function;\n $$childTail: IScope;\n $$childHead: IScope;\n $$nextSibling: IScope;\n [key: string]: any;\n}\nexport interface IScope extends IRootScopeService {}\n\nexport interface IAngularBootstrapConfig {\n strictDi?: boolean;\n}\nexport interface IDirective {\n compile?: IDirectiveCompileFn;\n controller?: IController;\n controllerAs?: string;\n bindToController?: boolean|{[key: string]: string};\n link?: IDirectiveLinkFn|IDirectivePrePost;\n name?: string;\n priority?: number;\n replace?: boolean;\n require?: DirectiveRequireProperty;\n restrict?: string;\n scope?: boolean|{[key: string]: string};\n template?: string|Function;\n templateUrl?: string|Function;\n templateNamespace?: string;\n terminal?: boolean;\n transclude?: DirectiveTranscludeProperty;\n}\nexport type DirectiveRequireProperty = SingleOrListOrMap;\nexport type DirectiveTranscludeProperty = boolean|'element'|{[key: string]: string};\nexport interface IDirectiveCompileFn {\n (templateElement: IAugmentedJQuery, templateAttributes: IAttributes,\n transclude: ITranscludeFunction): IDirectivePrePost;\n}\nexport interface IDirectivePrePost {\n pre?: IDirectiveLinkFn;\n post?: IDirectiveLinkFn;\n}\nexport interface IDirectiveLinkFn {\n (scope: IScope, instanceElement: IAugmentedJQuery, instanceAttributes: IAttributes,\n controller: any, transclude: ITranscludeFunction): void;\n}\nexport interface IComponent {\n bindings?: {[key: string]: string};\n controller?: string|IInjectable;\n controllerAs?: string;\n require?: DirectiveRequireProperty;\n template?: string|Function;\n templateUrl?: string|Function;\n transclude?: DirectiveTranscludeProperty;\n}\nexport interface IAttributes {\n $observe(attr: string, fn: (v: string) => void): void;\n [key: string]: any;\n}\nexport interface ITranscludeFunction {\n // If the scope is provided, then the cloneAttachFn must be as well.\n (scope: IScope, cloneAttachFn: ICloneAttachFunction): IAugmentedJQuery;\n // If one argument is provided, then it's assumed to be the cloneAttachFn.\n (cloneAttachFn?: ICloneAttachFunction): IAugmentedJQuery;\n}\nexport interface ICloneAttachFunction {\n (clonedElement: IAugmentedJQuery, scope: IScope): any;\n}\nexport type IAugmentedJQuery = Node[]&{\n on?: (name: string, fn: () => void) => void;\n data?: (name: string, value?: any) => any;\n text?: () => string;\n inheritedData?: (name: string, value?: any) => any;\n children?: () => IAugmentedJQuery;\n contents?: () => IAugmentedJQuery;\n parent?: () => IAugmentedJQuery;\n empty?: () => void;\n append?: (content: IAugmentedJQuery|string) => IAugmentedJQuery;\n controller?: (name: string) => any;\n isolateScope?: () => IScope;\n injector?: () => IInjectorService;\n triggerHandler?: (eventTypeOrObject: string|Event, extraParameters?: any[]) => IAugmentedJQuery;\n remove?: () => void;\n removeData?: () => void;\n};\nexport interface IProvider {\n $get: IInjectable;\n}\nexport interface IProvideService {\n provider(token: Ng1Token, provider: IProvider): IProvider;\n factory(token: Ng1Token, factory: IInjectable): IProvider;\n service(token: Ng1Token, type: IInjectable): IProvider;\n value(token: Ng1Token, value: any): IProvider;\n constant(token: Ng1Token, value: any): void;\n decorator(token: Ng1Token, factory: IInjectable): void;\n}\nexport interface IParseService {\n (expression: string): ICompiledExpression;\n}\nexport interface ICompiledExpression {\n (context: any, locals: any): any;\n assign?: (context: any, value: any) => any;\n}\nexport interface IHttpBackendService {\n (method: string, url: string, post?: any, callback?: Function, headers?: any, timeout?: number,\n withCredentials?: boolean): void;\n}\nexport interface ICacheObject {\n put(key: string, value?: T): T;\n get(key: string): any;\n}\nexport interface ITemplateCacheService extends ICacheObject {}\nexport type IController = string|IInjectable;\nexport interface IControllerService {\n (controllerConstructor: IController, locals?: any, later?: any, ident?: any): any;\n (controllerName: string, locals?: any): any;\n}\n\nexport interface IInjectorService {\n get(key: string): any;\n has(key: string): boolean;\n}\n\nexport interface IIntervalService {\n (func: Function, delay: number, count?: number, invokeApply?: boolean,\n ...args: any[]): Promise;\n cancel(promise: Promise): boolean;\n}\n\nexport interface ITestabilityService {\n findBindings(element: Element, expression: string, opt_exactMatch?: boolean): Element[];\n findModels(element: Element, expression: string, opt_exactMatch?: boolean): Element[];\n getLocation(): string;\n setLocation(url: string): void;\n whenStable(callback: Function): void;\n}\n\nexport interface INgModelController {\n $render(): void;\n $isEmpty(value: any): boolean;\n $setValidity(validationErrorKey: string, isValid: boolean): void;\n $setPristine(): void;\n $setDirty(): void;\n $setUntouched(): void;\n $setTouched(): void;\n $rollbackViewValue(): void;\n $validate(): void;\n $commitViewValue(): void;\n $setViewValue(value: any, trigger: string): void;\n\n $viewValue: any;\n $modelValue: any;\n $parsers: Function[];\n $formatters: Function[];\n $validators: {[key: string]: Function};\n $asyncValidators: {[key: string]: Function};\n $viewChangeListeners: Function[];\n $error: Object;\n $pending: Object;\n $untouched: boolean;\n $touched: boolean;\n $pristine: boolean;\n $dirty: boolean;\n $valid: boolean;\n $invalid: boolean;\n $name: string;\n}\n\nfunction noNg(): never {\n throw new Error('AngularJS v1.x is not loaded!');\n}\n\nconst noNgElement: typeof angular.element = (() => noNg()) as any;\nnoNgElement.cleanData = noNg;\n\nlet angular: {\n bootstrap: (e: Element, modules: (string|IInjectable)[], config?: IAngularBootstrapConfig) =>\n IInjectorService,\n module: (prefix: string, dependencies?: string[]) => IModule,\n element: {\n (e: string|Element|Document|IAugmentedJQuery): IAugmentedJQuery;\n cleanData: (nodes: Node[]|NodeList) => void;\n },\n injector: (modules: Array, strictDi?: boolean) => IInjectorService,\n version: {major: number},\n resumeBootstrap: () => void,\n getTestability: (e: Element) => ITestabilityService\n} = {\n bootstrap: noNg,\n module: noNg,\n element: noNgElement,\n injector: noNg,\n version: undefined as any,\n resumeBootstrap: noNg,\n getTestability: noNg\n};\n\ntry {\n if (window.hasOwnProperty('angular')) {\n angular = (window).angular;\n }\n} catch {\n // ignore in CJS mode.\n}\n\n/**\n * @deprecated Use `setAngularJSGlobal` instead.\n *\n * @publicApi\n */\nexport function setAngularLib(ng: any): void {\n setAngularJSGlobal(ng);\n}\n\n/**\n * @deprecated Use `getAngularJSGlobal` instead.\n *\n * @publicApi\n */\nexport function getAngularLib(): any {\n return getAngularJSGlobal();\n}\n\n/**\n * Resets the AngularJS global.\n *\n * Used when AngularJS is loaded lazily, and not available on `window`.\n *\n * @publicApi\n */\nexport function setAngularJSGlobal(ng: any): void {\n angular = ng;\n}\n\n/**\n * Returns the current AngularJS global.\n *\n * @publicApi\n */\nexport function getAngularJSGlobal(): any {\n return angular;\n}\n\nexport const bootstrap: typeof angular.bootstrap = (e, modules, config?) =>\n angular.bootstrap(e, modules, config);\n\n// Do not declare as `module` to avoid webpack bug\n// (see https://github.com/angular/angular/issues/30050).\nexport const module_: typeof angular.module = (prefix, dependencies?) =>\n angular.module(prefix, dependencies);\n\nexport const element: typeof angular.element = (e => angular.element(e)) as typeof angular.element;\nelement.cleanData = nodes => angular.element.cleanData(nodes);\n\nexport const injector: typeof angular.injector =\n (modules: Array, strictDi?: boolean) => angular.injector(modules, strictDi);\n\nexport const resumeBootstrap: typeof angular.resumeBootstrap = () => angular.resumeBootstrap();\n\nexport const getTestability: typeof angular.getTestability = e => angular.getTestability(e);\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport const $COMPILE = '$compile';\nexport const $CONTROLLER = '$controller';\nexport const $DELEGATE = '$delegate';\nexport const $EXCEPTION_HANDLER = '$exceptionHandler';\nexport const $HTTP_BACKEND = '$httpBackend';\nexport const $INJECTOR = '$injector';\nexport const $INTERVAL = '$interval';\nexport const $PARSE = '$parse';\nexport const $PROVIDE = '$provide';\nexport const $ROOT_ELEMENT = '$rootElement';\nexport const $ROOT_SCOPE = '$rootScope';\nexport const $SCOPE = '$scope';\nexport const $TEMPLATE_CACHE = '$templateCache';\nexport const $TEMPLATE_REQUEST = '$templateRequest';\n\nexport const $$TESTABILITY = '$$testability';\n\nexport const COMPILER_KEY = '$$angularCompiler';\nexport const DOWNGRADED_MODULE_COUNT_KEY = '$$angularDowngradedModuleCount';\nexport const GROUP_PROJECTABLE_NODES_KEY = '$$angularGroupProjectableNodes';\nexport const INJECTOR_KEY = '$$angularInjector';\nexport const LAZY_MODULE_REF = '$$angularLazyModuleRef';\nexport const NG_ZONE_KEY = '$$angularNgZone';\nexport const UPGRADE_APP_TYPE_KEY = '$$angularUpgradeAppType';\n\nexport const REQUIRE_INJECTOR = '?^^' + INJECTOR_KEY;\nexport const REQUIRE_NG_MODEL = '?ngModel';\n\nexport const UPGRADE_MODULE_NAME = '$$UpgradeModule';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * A `PropertyBinding` represents a mapping between a property name\n * and an attribute name. It is parsed from a string of the form\n * `\"prop: attr\"`; or simply `\"propAndAttr\" where the property\n * and attribute have the same identifier.\n */\nexport class PropertyBinding {\n bracketAttr: string;\n bracketParenAttr: string;\n parenAttr: string;\n onAttr: string;\n bindAttr: string;\n bindonAttr: string;\n\n constructor(public prop: string, public attr: string) {\n this.bracketAttr = `[${this.attr}]`;\n this.parenAttr = `(${this.attr})`;\n this.bracketParenAttr = `[(${this.attr})]`;\n const capitalAttr = this.attr.charAt(0).toUpperCase() + this.attr.slice(1);\n this.onAttr = `on${capitalAttr}`;\n this.bindAttr = `bind${capitalAttr}`;\n this.bindonAttr = `bindon${capitalAttr}`;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Injector, Type, ɵNG_MOD_DEF} from '@angular/core';\n\nimport {element as angularElement, IAugmentedJQuery, IInjectorService, INgModelController, IRootScopeService} from './angular1';\nimport {$ROOT_ELEMENT, $ROOT_SCOPE, DOWNGRADED_MODULE_COUNT_KEY, UPGRADE_APP_TYPE_KEY} from './constants';\n\nconst DIRECTIVE_PREFIX_REGEXP = /^(?:x|data)[:\\-_]/i;\nconst DIRECTIVE_SPECIAL_CHARS_REGEXP = /[:\\-_]+(.)/g;\n\nexport function onError(e: any) {\n // TODO: (misko): We seem to not have a stack trace here!\n console.error(e, e.stack);\n throw e;\n}\n\n/**\n * Clean the jqLite/jQuery data on the element and all its descendants.\n * Equivalent to how jqLite/jQuery invoke `cleanData()` on an Element when removed:\n * https://github.com/angular/angular.js/blob/2e72ea13fa98bebf6ed4b5e3c45eaf5f990ed16f/src/jqLite.js#L349-L355\n * https://github.com/jquery/jquery/blob/6984d1747623dbc5e87fd6c261a5b6b1628c107c/src/manipulation.js#L182\n *\n * NOTE:\n * `cleanData()` will also invoke the AngularJS `$destroy` DOM event on the element:\n * https://github.com/angular/angular.js/blob/2e72ea13fa98bebf6ed4b5e3c45eaf5f990ed16f/src/Angular.js#L1932-L1945\n *\n * @param node The DOM node whose data needs to be cleaned.\n */\nexport function cleanData(node: Node): void {\n angularElement.cleanData([node]);\n if (isParentNode(node)) {\n angularElement.cleanData(node.querySelectorAll('*'));\n }\n}\n\nexport function controllerKey(name: string): string {\n return '$' + name + 'Controller';\n}\n\n/**\n * Destroy an AngularJS app given the app `$injector`.\n *\n * NOTE: Destroying an app is not officially supported by AngularJS, but try to do our best by\n * destroying `$rootScope` and clean the jqLite/jQuery data on `$rootElement` and all\n * descendants.\n *\n * @param $injector The `$injector` of the AngularJS app to destroy.\n */\nexport function destroyApp($injector: IInjectorService): void {\n const $rootElement: IAugmentedJQuery = $injector.get($ROOT_ELEMENT);\n const $rootScope: IRootScopeService = $injector.get($ROOT_SCOPE);\n\n $rootScope.$destroy();\n cleanData($rootElement[0]);\n}\n\nexport function directiveNormalize(name: string): string {\n return name.replace(DIRECTIVE_PREFIX_REGEXP, '')\n .replace(DIRECTIVE_SPECIAL_CHARS_REGEXP, (_, letter) => letter.toUpperCase());\n}\n\nexport function getTypeName(type: Type): string {\n // Return the name of the type or the first line of its stringified version.\n return (type as any).overriddenName || type.name || type.toString().split('\\n')[0];\n}\n\nexport function getDowngradedModuleCount($injector: IInjectorService): number {\n return $injector.has(DOWNGRADED_MODULE_COUNT_KEY) ? $injector.get(DOWNGRADED_MODULE_COUNT_KEY) :\n 0;\n}\n\nexport function getUpgradeAppType($injector: IInjectorService): UpgradeAppType {\n return $injector.has(UPGRADE_APP_TYPE_KEY) ? $injector.get(UPGRADE_APP_TYPE_KEY) :\n UpgradeAppType.None;\n}\n\nexport function isFunction(value: any): value is Function {\n return typeof value === 'function';\n}\n\nexport function isNgModuleType(value: any): value is Type {\n // NgModule class should have the `ɵmod` static property attached by AOT or JIT compiler.\n return isFunction(value) && !!value[ɵNG_MOD_DEF];\n}\n\nfunction isParentNode(node: Node|ParentNode): node is ParentNode {\n return isFunction((node as unknown as ParentNode).querySelectorAll);\n}\n\nexport function validateInjectionKey(\n $injector: IInjectorService, downgradedModule: string, injectionKey: string,\n attemptedAction: string): void {\n const upgradeAppType = getUpgradeAppType($injector);\n const downgradedModuleCount = getDowngradedModuleCount($injector);\n\n // Check for common errors.\n switch (upgradeAppType) {\n case UpgradeAppType.Dynamic:\n case UpgradeAppType.Static:\n if (downgradedModule) {\n throw new Error(\n `Error while ${attemptedAction}: 'downgradedModule' unexpectedly specified.\\n` +\n 'You should not specify a value for \\'downgradedModule\\', unless you are downgrading ' +\n 'more than one Angular module (via \\'downgradeModule()\\').');\n }\n break;\n case UpgradeAppType.Lite:\n if (!downgradedModule && (downgradedModuleCount >= 2)) {\n throw new Error(\n `Error while ${attemptedAction}: 'downgradedModule' not specified.\\n` +\n 'This application contains more than one downgraded Angular module, thus you need to ' +\n 'always specify \\'downgradedModule\\' when downgrading components and injectables.');\n }\n\n if (!$injector.has(injectionKey)) {\n throw new Error(\n `Error while ${attemptedAction}: Unable to find the specified downgraded module.\\n` +\n 'Did you forget to downgrade an Angular module or include it in the AngularJS ' +\n 'application?');\n }\n\n break;\n default:\n throw new Error(\n `Error while ${attemptedAction}: Not a valid '@angular/upgrade' application.\\n` +\n 'Did you forget to downgrade an Angular module or include it in the AngularJS ' +\n 'application?');\n }\n}\n\nexport class Deferred {\n promise: Promise;\n resolve!: (value: R|PromiseLike) => void;\n reject!: (error?: any) => void;\n\n constructor() {\n this.promise = new Promise((res, rej) => {\n this.resolve = res;\n this.reject = rej;\n });\n }\n}\n\nexport interface LazyModuleRef {\n injector?: Injector;\n promise?: Promise;\n}\n\nexport const enum UpgradeAppType {\n // App NOT using `@angular/upgrade`. (This should never happen in an `ngUpgrade` app.)\n None,\n\n // App using the deprecated `@angular/upgrade` APIs (a.k.a. dynamic `ngUpgrade`).\n Dynamic,\n\n // App using `@angular/upgrade/static` with `UpgradeModule`.\n Static,\n\n // App using @angular/upgrade/static` with `downgradeModule()` (a.k.a `ngUpgrade`-lite ).\n Lite,\n}\n\n/**\n * @return Whether the passed-in component implements the subset of the\n * `ControlValueAccessor` interface needed for AngularJS `ng-model`\n * compatibility.\n */\nfunction supportsNgModel(component: any) {\n return typeof component.writeValue === 'function' &&\n typeof component.registerOnChange === 'function';\n}\n\n/**\n * Glue the AngularJS `NgModelController` (if it exists) to the component\n * (if it implements the needed subset of the `ControlValueAccessor` interface).\n */\nexport function hookupNgModel(ngModel: INgModelController, component: any) {\n if (ngModel && supportsNgModel(component)) {\n ngModel.$render = () => {\n component.writeValue(ngModel.$viewValue);\n };\n component.registerOnChange(ngModel.$setViewValue.bind(ngModel));\n if (typeof component.registerOnTouched === 'function') {\n component.registerOnTouched(ngModel.$setTouched.bind(ngModel));\n }\n }\n}\n\n/**\n * Test two values for strict equality, accounting for the fact that `NaN !== NaN`.\n */\nexport function strictEquals(val1: any, val2: any): boolean {\n return val1 === val2 || (val1 !== val1 && val2 !== val2);\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ApplicationRef, ChangeDetectorRef, ComponentFactory, ComponentRef, EventEmitter, Injector, OnChanges, SimpleChange, SimpleChanges, StaticProvider, Testability, TestabilityRegistry} from '@angular/core';\n\nimport {IAttributes, IAugmentedJQuery, ICompileService, INgModelController, IParseService, IScope} from './angular1';\nimport {PropertyBinding} from './component_info';\nimport {$SCOPE} from './constants';\nimport {cleanData, getTypeName, hookupNgModel, strictEquals} from './util';\n\nconst INITIAL_VALUE = {\n __UNINITIALIZED__: true\n};\n\nexport class DowngradeComponentAdapter {\n private implementsOnChanges = false;\n private inputChangeCount: number = 0;\n private inputChanges: SimpleChanges = {};\n private componentScope: IScope;\n\n constructor(\n private element: IAugmentedJQuery, private attrs: IAttributes, private scope: IScope,\n private ngModel: INgModelController, private parentInjector: Injector,\n private $compile: ICompileService, private $parse: IParseService,\n private componentFactory: ComponentFactory,\n private wrapCallback: (cb: () => T) => () => T) {\n this.componentScope = scope.$new();\n }\n\n compileContents(): Node[][] {\n const compiledProjectableNodes: Node[][] = [];\n const projectableNodes: Node[][] = this.groupProjectableNodes();\n const linkFns = projectableNodes.map(nodes => this.$compile(nodes));\n\n this.element.empty!();\n\n linkFns.forEach(linkFn => {\n linkFn(this.scope, (clone: Node[]) => {\n compiledProjectableNodes.push(clone);\n this.element.append!(clone);\n });\n });\n\n return compiledProjectableNodes;\n }\n\n createComponentAndSetup(\n projectableNodes: Node[][], manuallyAttachView = false,\n propagateDigest = true): ComponentRef {\n const component = this.createComponent(projectableNodes);\n this.setupInputs(manuallyAttachView, propagateDigest, component);\n this.setupOutputs(component.componentRef);\n this.registerCleanup(component.componentRef);\n\n return component.componentRef;\n }\n\n private createComponent(projectableNodes: Node[][]): ComponentInfo {\n const providers: StaticProvider[] = [{provide: $SCOPE, useValue: this.componentScope}];\n const childInjector = Injector.create(\n {providers: providers, parent: this.parentInjector, name: 'DowngradeComponentAdapter'});\n\n const componentRef =\n this.componentFactory.create(childInjector, projectableNodes, this.element[0]);\n const viewChangeDetector = componentRef.injector.get(ChangeDetectorRef);\n const changeDetector = componentRef.changeDetectorRef;\n\n // testability hook is commonly added during component bootstrap in\n // packages/core/src/application_ref.bootstrap()\n // in downgraded application, component creation will take place here as well as adding the\n // testability hook.\n const testability = componentRef.injector.get(Testability, null);\n if (testability) {\n componentRef.injector.get(TestabilityRegistry)\n .registerApplication(componentRef.location.nativeElement, testability);\n }\n\n hookupNgModel(this.ngModel, componentRef.instance);\n\n return {viewChangeDetector, componentRef, changeDetector};\n }\n\n private setupInputs(\n manuallyAttachView: boolean, propagateDigest = true,\n {componentRef, changeDetector, viewChangeDetector}: ComponentInfo): void {\n const attrs = this.attrs;\n const inputs = this.componentFactory.inputs || [];\n for (const input of inputs) {\n const inputBinding = new PropertyBinding(input.propName, input.templateName);\n let expr: string|null = null;\n\n if (attrs.hasOwnProperty(inputBinding.attr)) {\n const observeFn = (prop => {\n let prevValue = INITIAL_VALUE;\n return (currValue: any) => {\n // Initially, both `$observe()` and `$watch()` will call this function.\n if (!strictEquals(prevValue, currValue)) {\n if (prevValue === INITIAL_VALUE) {\n prevValue = currValue;\n }\n\n this.updateInput(componentRef, prop, prevValue, currValue);\n prevValue = currValue;\n }\n };\n })(inputBinding.prop);\n attrs.$observe(inputBinding.attr, observeFn);\n\n // Use `$watch()` (in addition to `$observe()`) in order to initialize the input in time\n // for `ngOnChanges()`. This is necessary if we are already in a `$digest`, which means that\n // `ngOnChanges()` (which is called by a watcher) will run before the `$observe()` callback.\n let unwatch: Function|null = this.componentScope.$watch(() => {\n unwatch!();\n unwatch = null;\n observeFn(attrs[inputBinding.attr]);\n });\n } else if (attrs.hasOwnProperty(inputBinding.bindAttr)) {\n expr = attrs[inputBinding.bindAttr];\n } else if (attrs.hasOwnProperty(inputBinding.bracketAttr)) {\n expr = attrs[inputBinding.bracketAttr];\n } else if (attrs.hasOwnProperty(inputBinding.bindonAttr)) {\n expr = attrs[inputBinding.bindonAttr];\n } else if (attrs.hasOwnProperty(inputBinding.bracketParenAttr)) {\n expr = attrs[inputBinding.bracketParenAttr];\n }\n if (expr != null) {\n const watchFn =\n ((prop) => (currValue: unknown, prevValue: unknown) =>\n this.updateInput(componentRef, prop, prevValue, currValue))(inputBinding.prop);\n this.componentScope.$watch(expr, watchFn);\n }\n }\n\n // Invoke `ngOnChanges()` and Change Detection (when necessary)\n const detectChanges = () => changeDetector.detectChanges();\n const prototype = this.componentFactory.componentType.prototype;\n this.implementsOnChanges = !!(prototype && (prototype).ngOnChanges);\n\n this.componentScope.$watch(() => this.inputChangeCount, this.wrapCallback(() => {\n // Invoke `ngOnChanges()`\n if (this.implementsOnChanges) {\n const inputChanges = this.inputChanges;\n this.inputChanges = {};\n (componentRef.instance).ngOnChanges(inputChanges);\n }\n\n viewChangeDetector.markForCheck();\n\n // If opted out of propagating digests, invoke change detection when inputs change.\n if (!propagateDigest) {\n detectChanges();\n }\n }));\n\n // If not opted out of propagating digests, invoke change detection on every digest\n if (propagateDigest) {\n this.componentScope.$watch(this.wrapCallback(detectChanges));\n }\n\n // If necessary, attach the view so that it will be dirty-checked.\n // (Allow time for the initial input values to be set and `ngOnChanges()` to be called.)\n if (manuallyAttachView || !propagateDigest) {\n let unwatch: Function|null = this.componentScope.$watch(() => {\n unwatch!();\n unwatch = null;\n\n const appRef = this.parentInjector.get(ApplicationRef);\n appRef.attachView(componentRef.hostView);\n });\n }\n }\n\n private setupOutputs(componentRef: ComponentRef) {\n const attrs = this.attrs;\n const outputs = this.componentFactory.outputs || [];\n for (const output of outputs) {\n const outputBindings = new PropertyBinding(output.propName, output.templateName);\n const bindonAttr =\n outputBindings.bindonAttr.substring(0, outputBindings.bindonAttr.length - 6);\n const bracketParenAttr = `[(${\n outputBindings.bracketParenAttr.substring(\n 2, outputBindings.bracketParenAttr.length - 8)})]`;\n // order below is important - first update bindings then evaluate expressions\n if (attrs.hasOwnProperty(bindonAttr)) {\n this.subscribeToOutput(componentRef, outputBindings, attrs[bindonAttr], true);\n }\n if (attrs.hasOwnProperty(bracketParenAttr)) {\n this.subscribeToOutput(componentRef, outputBindings, attrs[bracketParenAttr], true);\n }\n if (attrs.hasOwnProperty(outputBindings.onAttr)) {\n this.subscribeToOutput(componentRef, outputBindings, attrs[outputBindings.onAttr]);\n }\n if (attrs.hasOwnProperty(outputBindings.parenAttr)) {\n this.subscribeToOutput(componentRef, outputBindings, attrs[outputBindings.parenAttr]);\n }\n }\n }\n\n private subscribeToOutput(\n componentRef: ComponentRef, output: PropertyBinding, expr: string,\n isAssignment: boolean = false) {\n const getter = this.$parse(expr);\n const setter = getter.assign;\n if (isAssignment && !setter) {\n throw new Error(`Expression '${expr}' is not assignable!`);\n }\n const emitter = componentRef.instance[output.prop] as EventEmitter;\n if (emitter) {\n const subscription = emitter.subscribe({\n next: isAssignment ? (v: any) => setter!(this.scope, v) :\n (v: any) => getter(this.scope, {'$event': v})\n });\n componentRef.onDestroy(() => subscription.unsubscribe());\n } else {\n throw new Error(`Missing emitter '${output.prop}' on component '${\n getTypeName(this.componentFactory.componentType)}'!`);\n }\n }\n\n private registerCleanup(componentRef: ComponentRef) {\n const testabilityRegistry = componentRef.injector.get(TestabilityRegistry);\n const destroyComponentRef = this.wrapCallback(() => componentRef.destroy());\n let destroyed = false;\n\n this.element.on!('$destroy', () => {\n // The `$destroy` event may have been triggered by the `cleanData()` call in the\n // `componentScope` `$destroy` handler below. In that case, we don't want to call\n // `componentScope.$destroy()` again.\n if (!destroyed) this.componentScope.$destroy();\n });\n this.componentScope.$on('$destroy', () => {\n if (!destroyed) {\n destroyed = true;\n testabilityRegistry.unregisterApplication(componentRef.location.nativeElement);\n\n // The `componentScope` might be getting destroyed, because an ancestor element is being\n // removed/destroyed. If that is the case, jqLite/jQuery would normally invoke `cleanData()`\n // on the removed element and all descendants.\n // https://github.com/angular/angular.js/blob/2e72ea13fa98bebf6ed4b5e3c45eaf5f990ed16f/src/jqLite.js#L349-L355\n // https://github.com/jquery/jquery/blob/6984d1747623dbc5e87fd6c261a5b6b1628c107c/src/manipulation.js#L182\n //\n // Here, however, `destroyComponentRef()` may under some circumstances remove the element\n // from the DOM and therefore it will no longer be a descendant of the removed element when\n // `cleanData()` is called. This would result in a memory leak, because the element's data\n // and event handlers (and all objects directly or indirectly referenced by them) would be\n // retained.\n //\n // To ensure the element is always properly cleaned up, we manually call `cleanData()` on\n // this element and its descendants before destroying the `ComponentRef`.\n cleanData(this.element[0]);\n\n destroyComponentRef();\n }\n });\n }\n\n private updateInput(\n componentRef: ComponentRef, prop: string, prevValue: any, currValue: any) {\n if (this.implementsOnChanges) {\n this.inputChanges[prop] = new SimpleChange(prevValue, currValue, prevValue === currValue);\n }\n\n this.inputChangeCount++;\n componentRef.instance[prop] = currValue;\n }\n\n private groupProjectableNodes() {\n let ngContentSelectors = this.componentFactory.ngContentSelectors;\n return groupNodesBySelector(ngContentSelectors, this.element.contents!());\n }\n}\n\n/**\n * Group a set of DOM nodes into `ngContent` groups, based on the given content selectors.\n */\nexport function groupNodesBySelector(ngContentSelectors: string[], nodes: Node[]): Node[][] {\n const projectableNodes: Node[][] = [];\n\n for (let i = 0, ii = ngContentSelectors.length; i < ii; ++i) {\n projectableNodes[i] = [];\n }\n\n for (let j = 0, jj = nodes.length; j < jj; ++j) {\n const node = nodes[j];\n const ngContentIndex = findMatchingNgContentIndex(node, ngContentSelectors);\n if (ngContentIndex != null) {\n projectableNodes[ngContentIndex].push(node);\n }\n }\n\n return projectableNodes;\n}\n\nfunction findMatchingNgContentIndex(element: any, ngContentSelectors: string[]): number|null {\n const ngContentIndices: number[] = [];\n let wildcardNgContentIndex: number = -1;\n for (let i = 0; i < ngContentSelectors.length; i++) {\n const selector = ngContentSelectors[i];\n if (selector === '*') {\n wildcardNgContentIndex = i;\n } else {\n if (matchesSelector(element, selector)) {\n ngContentIndices.push(i);\n }\n }\n }\n ngContentIndices.sort();\n\n if (wildcardNgContentIndex !== -1) {\n ngContentIndices.push(wildcardNgContentIndex);\n }\n return ngContentIndices.length ? ngContentIndices[0] : null;\n}\n\nfunction matchesSelector(el: any, selector: string): boolean {\n const elProto = Element.prototype;\n\n return el.nodeType === Node.ELEMENT_NODE\n // matches is supported by all browsers from 2014 onwards except non-chromium edge\n ?\n (elProto.matches ?? elProto.msMatchesSelector).call(el, selector) :\n false;\n}\n\ninterface ComponentInfo {\n componentRef: ComponentRef;\n changeDetector: ChangeDetectorRef;\n viewChangeDetector: ChangeDetectorRef;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {isFunction} from './util';\n\nexport interface Thenable {\n then(callback: (value: T) => any): any;\n}\n\nexport function isThenable(obj: unknown): obj is Thenable {\n return !!obj && isFunction((obj as any).then);\n}\n\n/**\n * Synchronous, promise-like object.\n */\nexport class SyncPromise {\n protected value: T|undefined;\n private resolved = false;\n private callbacks: ((value: T) => unknown)[] = [];\n\n static all(valuesOrPromises: (T|Thenable)[]): SyncPromise {\n const aggrPromise = new SyncPromise();\n\n let resolvedCount = 0;\n const results: T[] = [];\n const resolve = (idx: number, value: T) => {\n results[idx] = value;\n if (++resolvedCount === valuesOrPromises.length) aggrPromise.resolve(results);\n };\n\n valuesOrPromises.forEach((p, idx) => {\n if (isThenable(p)) {\n p.then(v => resolve(idx, v));\n } else {\n resolve(idx, p);\n }\n });\n\n return aggrPromise;\n }\n\n resolve(value: T): void {\n // Do nothing, if already resolved.\n if (this.resolved) return;\n\n this.value = value;\n this.resolved = true;\n\n // Run the queued callbacks.\n this.callbacks.forEach(callback => callback(value));\n this.callbacks.length = 0;\n }\n\n then(callback: (value: T) => unknown): void {\n if (this.resolved) {\n callback(this.value!);\n } else {\n this.callbacks.push(callback);\n }\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ComponentFactory, ComponentFactoryResolver, Injector, NgZone, Type} from '@angular/core';\n\nimport {IAnnotatedFunction, IAttributes, IAugmentedJQuery, ICompileService, IDirective, IInjectorService, INgModelController, IParseService, IScope} from './angular1';\nimport {$COMPILE, $INJECTOR, $PARSE, INJECTOR_KEY, LAZY_MODULE_REF, REQUIRE_INJECTOR, REQUIRE_NG_MODEL} from './constants';\nimport {DowngradeComponentAdapter} from './downgrade_component_adapter';\nimport {SyncPromise, Thenable} from './promise_util';\nimport {controllerKey, getDowngradedModuleCount, getTypeName, getUpgradeAppType, LazyModuleRef, UpgradeAppType, validateInjectionKey} from './util';\n\n\n/**\n * @description\n *\n * A helper function that allows an Angular component to be used from AngularJS.\n *\n * *Part of the [upgrade/static](api?query=upgrade%2Fstatic)\n * library for hybrid upgrade apps that support AOT compilation*\n *\n * This helper function returns a factory function to be used for registering\n * an AngularJS wrapper directive for \"downgrading\" an Angular component.\n *\n * @usageNotes\n * ### Examples\n *\n * Let's assume that you have an Angular component called `ng2Heroes` that needs\n * to be made available in AngularJS templates.\n *\n * {@example upgrade/static/ts/full/module.ts region=\"ng2-heroes\"}\n *\n * We must create an AngularJS [directive](https://docs.angularjs.org/guide/directive)\n * that will make this Angular component available inside AngularJS templates.\n * The `downgradeComponent()` function returns a factory function that we\n * can use to define the AngularJS directive that wraps the \"downgraded\" component.\n *\n * {@example upgrade/static/ts/full/module.ts region=\"ng2-heroes-wrapper\"}\n *\n * For more details and examples on downgrading Angular components to AngularJS components please\n * visit the [Upgrade guide](guide/upgrade#using-angular-components-from-angularjs-code).\n *\n * @param info contains information about the Component that is being downgraded:\n *\n * - `component: Type`: The type of the Component that will be downgraded\n * - `downgradedModule?: string`: The name of the downgraded module (if any) that the component\n * \"belongs to\", as returned by a call to `downgradeModule()`. It is the module, whose\n * corresponding Angular module will be bootstrapped, when the component needs to be instantiated.\n *
\n * (This option is only necessary when using `downgradeModule()` to downgrade more than one\n * Angular module.)\n * - `propagateDigest?: boolean`: Whether to perform {@link ChangeDetectorRef#detectChanges} on the\n * component on every\n * [$digest](https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$digest). If set to `false`,\n * change detection will still be performed when any of the component's inputs changes.\n * (Default: true)\n *\n * @returns a factory function that can be used to register the component in an\n * AngularJS module.\n *\n * @publicApi\n */\nexport function downgradeComponent(info: {\n component: Type;\n downgradedModule?: string;\n propagateDigest?: boolean;\n /** @deprecated since v4. This parameter is no longer used */\n inputs?: string[];\n /** @deprecated since v4. This parameter is no longer used */\n outputs?: string[];\n /** @deprecated since v4. This parameter is no longer used */\n selectors?: string[];\n}): any /* angular.IInjectable */ {\n const directiveFactory: IAnnotatedFunction = function(\n $compile: ICompileService, $injector: IInjectorService, $parse: IParseService): IDirective {\n // When using `downgradeModule()`, we need to handle certain things specially. For example:\n // - We always need to attach the component view to the `ApplicationRef` for it to be\n // dirty-checked.\n // - We need to ensure callbacks to Angular APIs (e.g. change detection) are run inside the\n // Angular zone.\n // NOTE: This is not needed, when using `UpgradeModule`, because `$digest()` will be run\n // inside the Angular zone (except if explicitly escaped, in which case we shouldn't\n // force it back in).\n const isNgUpgradeLite = getUpgradeAppType($injector) === UpgradeAppType.Lite;\n const wrapCallback: (cb: () => T) => typeof cb =\n !isNgUpgradeLite ? cb => cb : cb => () => NgZone.isInAngularZone() ? cb() : ngZone.run(cb);\n let ngZone: NgZone;\n\n // When downgrading multiple modules, special handling is needed wrt injectors.\n const hasMultipleDowngradedModules =\n isNgUpgradeLite && (getDowngradedModuleCount($injector) > 1);\n\n return {\n restrict: 'E',\n terminal: true,\n require: [REQUIRE_INJECTOR, REQUIRE_NG_MODEL],\n // Controller needs to be set so that `angular-component-router.js` (from beta Angular 2)\n // configuration properties can be made available. See:\n // See G3: javascript/angular2/angular1_router_lib.js\n // https://github.com/angular/angular.js/blob/47bf11ee94664367a26ed8c91b9b586d3dd420f5/src/ng/compile.js#L1670-L1691.\n controller: function() {},\n link: (scope: IScope, element: IAugmentedJQuery, attrs: IAttributes, required: any[]) => {\n // We might have to compile the contents asynchronously, because this might have been\n // triggered by `UpgradeNg1ComponentAdapterBuilder`, before the Angular templates have\n // been compiled.\n\n const ngModel: INgModelController = required[1];\n const parentInjector: Injector|Thenable|undefined = required[0];\n let moduleInjector: Injector|Thenable|undefined = undefined;\n let ranAsync = false;\n\n if (!parentInjector || hasMultipleDowngradedModules) {\n const downgradedModule = info.downgradedModule || '';\n const lazyModuleRefKey = `${LAZY_MODULE_REF}${downgradedModule}`;\n const attemptedAction = `instantiating component '${getTypeName(info.component)}'`;\n\n validateInjectionKey($injector, downgradedModule, lazyModuleRefKey, attemptedAction);\n\n const lazyModuleRef = $injector.get(lazyModuleRefKey) as LazyModuleRef;\n moduleInjector = lazyModuleRef.injector ?? lazyModuleRef.promise;\n }\n\n // Notes:\n //\n // There are two injectors: `finalModuleInjector` and `finalParentInjector` (they might be\n // the same instance, but that is irrelevant):\n // - `finalModuleInjector` is used to retrieve `ComponentFactoryResolver`, thus it must be\n // on the same tree as the `NgModule` that declares this downgraded component.\n // - `finalParentInjector` is used for all other injection purposes.\n // (Note that Angular knows to only traverse the component-tree part of that injector,\n // when looking for an injectable and then switch to the module injector.)\n //\n // There are basically three cases:\n // - If there is no parent component (thus no `parentInjector`), we bootstrap the downgraded\n // `NgModule` and use its injector as both `finalModuleInjector` and\n // `finalParentInjector`.\n // - If there is a parent component (and thus a `parentInjector`) and we are sure that it\n // belongs to the same `NgModule` as this downgraded component (e.g. because there is only\n // one downgraded module, we use that `parentInjector` as both `finalModuleInjector` and\n // `finalParentInjector`.\n // - If there is a parent component, but it may belong to a different `NgModule`, then we\n // use the `parentInjector` as `finalParentInjector` and this downgraded component's\n // declaring `NgModule`'s injector as `finalModuleInjector`.\n // Note 1: If the `NgModule` is already bootstrapped, we just get its injector (we don't\n // bootstrap again).\n // Note 2: It is possible that (while there are multiple downgraded modules) this\n // downgraded component and its parent component both belong to the same NgModule.\n // In that case, we could have used the `parentInjector` as both\n // `finalModuleInjector` and `finalParentInjector`, but (for simplicity) we are\n // treating this case as if they belong to different `NgModule`s. That doesn't\n // really affect anything, since `parentInjector` has `moduleInjector` as ancestor\n // and trying to resolve `ComponentFactoryResolver` from either one will return\n // the same instance.\n\n // If there is a parent component, use its injector as parent injector.\n // If this is a \"top-level\" Angular component, use the module injector.\n const finalParentInjector = parentInjector || moduleInjector!;\n\n // If this is a \"top-level\" Angular component or the parent component may belong to a\n // different `NgModule`, use the module injector for module-specific dependencies.\n // If there is a parent component that belongs to the same `NgModule`, use its injector.\n const finalModuleInjector = moduleInjector || parentInjector!;\n\n const doDowngrade = (injector: Injector, moduleInjector: Injector) => {\n // Retrieve `ComponentFactoryResolver` from the injector tied to the `NgModule` this\n // component belongs to.\n const componentFactoryResolver: ComponentFactoryResolver =\n moduleInjector.get(ComponentFactoryResolver);\n const componentFactory: ComponentFactory =\n componentFactoryResolver.resolveComponentFactory(info.component)!;\n\n if (!componentFactory) {\n throw new Error(`Expecting ComponentFactory for: ${getTypeName(info.component)}`);\n }\n\n const injectorPromise = new ParentInjectorPromise(element);\n const facade = new DowngradeComponentAdapter(\n element, attrs, scope, ngModel, injector, $compile, $parse, componentFactory,\n wrapCallback);\n\n const projectableNodes = facade.compileContents();\n const componentRef = facade.createComponentAndSetup(\n projectableNodes, isNgUpgradeLite, info.propagateDigest);\n\n injectorPromise.resolve(componentRef.injector);\n\n if (ranAsync) {\n // If this is run async, it is possible that it is not run inside a\n // digest and initial input values will not be detected.\n scope.$evalAsync(() => {});\n }\n };\n\n const downgradeFn =\n !isNgUpgradeLite ? doDowngrade : (pInjector: Injector, mInjector: Injector) => {\n if (!ngZone) {\n ngZone = pInjector.get(NgZone);\n }\n\n wrapCallback(() => doDowngrade(pInjector, mInjector))();\n };\n\n // NOTE:\n // Not using `ParentInjectorPromise.all()` (which is inherited from `SyncPromise`), because\n // Closure Compiler (or some related tool) complains:\n // `TypeError: ...$src$downgrade_component_ParentInjectorPromise.all is not a function`\n SyncPromise.all([finalParentInjector, finalModuleInjector])\n .then(([pInjector, mInjector]) => downgradeFn(pInjector, mInjector));\n\n ranAsync = true;\n }\n };\n };\n\n // bracket-notation because of closure - see #14441\n directiveFactory['$inject'] = [$COMPILE, $INJECTOR, $PARSE];\n return directiveFactory;\n}\n\n/**\n * Synchronous promise-like object to wrap parent injectors,\n * to preserve the synchronous nature of AngularJS's `$compile`.\n */\nclass ParentInjectorPromise extends SyncPromise {\n private injectorKey: string = controllerKey(INJECTOR_KEY);\n\n constructor(private element: IAugmentedJQuery) {\n super();\n\n // Store the promise on the element.\n element.data!(this.injectorKey, this);\n }\n\n override resolve(injector: Injector): void {\n // Store the real injector on the element.\n this.element.data!(this.injectorKey, injector);\n\n // Release the element to prevent memory leaks.\n this.element = null!;\n\n // Resolve the promise.\n super.resolve(injector);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Injector} from '@angular/core';\n\nimport {IInjectorService} from './angular1';\nimport {$INJECTOR, INJECTOR_KEY} from './constants';\nimport {getTypeName, isFunction, validateInjectionKey} from './util';\n\n/**\n * @description\n *\n * A helper function to allow an Angular service to be accessible from AngularJS.\n *\n * *Part of the [upgrade/static](api?query=upgrade%2Fstatic)\n * library for hybrid upgrade apps that support AOT compilation*\n *\n * This helper function returns a factory function that provides access to the Angular\n * service identified by the `token` parameter.\n *\n * @usageNotes\n * ### Examples\n *\n * First ensure that the service to be downgraded is provided in an `NgModule`\n * that will be part of the upgrade application. For example, let's assume we have\n * defined `HeroesService`\n *\n * {@example upgrade/static/ts/full/module.ts region=\"ng2-heroes-service\"}\n *\n * and that we have included this in our upgrade app `NgModule`\n *\n * {@example upgrade/static/ts/full/module.ts region=\"ng2-module\"}\n *\n * Now we can register the `downgradeInjectable` factory function for the service\n * on an AngularJS module.\n *\n * {@example upgrade/static/ts/full/module.ts region=\"downgrade-ng2-heroes-service\"}\n *\n * Inside an AngularJS component's controller we can get hold of the\n * downgraded service via the name we gave when downgrading.\n *\n * {@example upgrade/static/ts/full/module.ts region=\"example-app\"}\n *\n *
\n *\n * When using `downgradeModule()`, downgraded injectables will not be available until the Angular\n * module that provides them is instantiated. In order to be safe, you need to ensure that the\n * downgraded injectables are not used anywhere _outside_ the part of the app where it is\n * guaranteed that their module has been instantiated.\n *\n * For example, it is _OK_ to use a downgraded service in an upgraded component that is only used\n * from a downgraded Angular component provided by the same Angular module as the injectable, but\n * it is _not OK_ to use it in an AngularJS component that may be used independently of Angular or\n * use it in a downgraded Angular component from a different module.\n *\n *
\n *\n * @param token an `InjectionToken` that identifies a service provided from Angular.\n * @param downgradedModule the name of the downgraded module (if any) that the injectable\n * \"belongs to\", as returned by a call to `downgradeModule()`. It is the module, whose injector will\n * be used for instantiating the injectable.
\n * (This option is only necessary when using `downgradeModule()` to downgrade more than one Angular\n * module.)\n *\n * @returns a [factory function](https://docs.angularjs.org/guide/di) that can be\n * used to register the service on an AngularJS module.\n *\n * @publicApi\n */\nexport function downgradeInjectable(token: any, downgradedModule: string = ''): Function {\n const factory = function($injector: IInjectorService) {\n const injectorKey = `${INJECTOR_KEY}${downgradedModule}`;\n const injectableName = isFunction(token) ? getTypeName(token) : String(token);\n const attemptedAction = `instantiating injectable '${injectableName}'`;\n\n validateInjectionKey($injector, downgradedModule, injectorKey, attemptedAction);\n\n try {\n const injector: Injector = $injector.get(injectorKey);\n return injector.get(token);\n } catch (err) {\n throw new Error(`Error while ${attemptedAction}: ${(err as Error).message || err}`);\n }\n };\n (factory as any)['$inject'] = [$INJECTOR];\n\n return factory;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ElementRef, Injector, SimpleChanges} from '@angular/core';\n\nimport {DirectiveRequireProperty, element as angularElement, IAugmentedJQuery, ICloneAttachFunction, ICompileService, IController, IControllerService, IDirective, IHttpBackendService, IInjectorService, ILinkFn, IScope, ITemplateCacheService, SingleOrListOrMap} from './angular1';\nimport {$COMPILE, $CONTROLLER, $HTTP_BACKEND, $INJECTOR, $TEMPLATE_CACHE} from './constants';\nimport {cleanData, controllerKey, directiveNormalize, isFunction} from './util';\n\n\n\n// Constants\nconst REQUIRE_PREFIX_RE = /^(\\^\\^?)?(\\?)?(\\^\\^?)?/;\n\n// Interfaces\nexport interface IBindingDestination {\n [key: string]: any;\n $onChanges?: (changes: SimpleChanges) => void;\n}\n\nexport interface IControllerInstance extends IBindingDestination {\n $doCheck?: () => void;\n $onDestroy?: () => void;\n $onInit?: () => void;\n $postLink?: () => void;\n}\n\n// Classes\nexport class UpgradeHelper {\n public readonly $injector: IInjectorService;\n public readonly element: Element;\n public readonly $element: IAugmentedJQuery;\n public readonly directive: IDirective;\n\n private readonly $compile: ICompileService;\n private readonly $controller: IControllerService;\n\n constructor(\n injector: Injector, private name: string, elementRef: ElementRef, directive?: IDirective) {\n this.$injector = injector.get($INJECTOR);\n this.$compile = this.$injector.get($COMPILE);\n this.$controller = this.$injector.get($CONTROLLER);\n\n this.element = elementRef.nativeElement;\n this.$element = angularElement(this.element);\n\n this.directive = directive ?? UpgradeHelper.getDirective(this.$injector, name);\n }\n\n static getDirective($injector: IInjectorService, name: string): IDirective {\n const directives: IDirective[] = $injector.get(name + 'Directive');\n if (directives.length > 1) {\n throw new Error(`Only support single directive definition for: ${name}`);\n }\n\n const directive = directives[0];\n\n // AngularJS will transform `link: xyz` to `compile: () => xyz`. So we can only tell there was a\n // user-defined `compile` if there is no `link`. In other cases, we will just ignore `compile`.\n if (directive.compile && !directive.link) notSupported(name, 'compile');\n if (directive.replace) notSupported(name, 'replace');\n if (directive.terminal) notSupported(name, 'terminal');\n\n return directive;\n }\n\n static getTemplate(\n $injector: IInjectorService, directive: IDirective, fetchRemoteTemplate = false,\n $element?: IAugmentedJQuery): string|Promise {\n if (directive.template !== undefined) {\n return getOrCall(directive.template, $element);\n } else if (directive.templateUrl) {\n const $templateCache = $injector.get($TEMPLATE_CACHE) as ITemplateCacheService;\n const url = getOrCall(directive.templateUrl, $element);\n const template = $templateCache.get(url);\n\n if (template !== undefined) {\n return template;\n } else if (!fetchRemoteTemplate) {\n throw new Error('loading directive templates asynchronously is not supported');\n }\n\n return new Promise((resolve, reject) => {\n const $httpBackend = $injector.get($HTTP_BACKEND) as IHttpBackendService;\n $httpBackend('GET', url, null, (status: number, response: string) => {\n if (status === 200) {\n resolve($templateCache.put(url, response));\n } else {\n reject(`GET component template from '${url}' returned '${status}: ${response}'`);\n }\n });\n });\n } else {\n throw new Error(`Directive '${directive.name}' is not a component, it is missing template.`);\n }\n }\n\n buildController(controllerType: IController, $scope: IScope) {\n // TODO: Document that we do not pre-assign bindings on the controller instance.\n // Quoted properties below so that this code can be optimized with Closure Compiler.\n const locals = {'$scope': $scope, '$element': this.$element};\n const controller = this.$controller(controllerType, locals, null, this.directive.controllerAs);\n\n this.$element.data?.(controllerKey(this.directive.name!), controller);\n\n return controller;\n }\n\n compileTemplate(template?: string): ILinkFn {\n if (template === undefined) {\n template =\n UpgradeHelper.getTemplate(this.$injector, this.directive, false, this.$element) as string;\n }\n\n return this.compileHtml(template);\n }\n\n onDestroy($scope: IScope, controllerInstance?: any) {\n if (controllerInstance && isFunction(controllerInstance.$onDestroy)) {\n controllerInstance.$onDestroy();\n }\n $scope.$destroy();\n cleanData(this.element);\n }\n\n prepareTransclusion(): ILinkFn|undefined {\n const transclude = this.directive.transclude;\n const contentChildNodes = this.extractChildNodes();\n const attachChildrenFn: ILinkFn = (scope, cloneAttachFn) => {\n // Since AngularJS v1.5.8, `cloneAttachFn` will try to destroy the transclusion scope if\n // `$template` is empty. Since the transcluded content comes from Angular, not AngularJS,\n // there will be no transclusion scope here.\n // Provide a dummy `scope.$destroy()` method to prevent `cloneAttachFn` from throwing.\n scope = scope || {$destroy: () => undefined};\n return cloneAttachFn!($template, scope);\n };\n let $template = contentChildNodes;\n\n if (transclude) {\n const slots = Object.create(null);\n\n if (typeof transclude === 'object') {\n $template = [];\n\n const slotMap = Object.create(null);\n const filledSlots = Object.create(null);\n\n // Parse the element selectors.\n Object.keys(transclude).forEach(slotName => {\n let selector = transclude[slotName];\n const optional = selector.charAt(0) === '?';\n selector = optional ? selector.substring(1) : selector;\n\n slotMap[selector] = slotName;\n slots[slotName] = null; // `null`: Defined but not yet filled.\n filledSlots[slotName] = optional; // Consider optional slots as filled.\n });\n\n // Add the matching elements into their slot.\n contentChildNodes.forEach(node => {\n const slotName = slotMap[directiveNormalize(node.nodeName.toLowerCase())];\n if (slotName) {\n filledSlots[slotName] = true;\n slots[slotName] = slots[slotName] || [];\n slots[slotName].push(node);\n } else {\n $template.push(node);\n }\n });\n\n // Check for required slots that were not filled.\n Object.keys(filledSlots).forEach(slotName => {\n if (!filledSlots[slotName]) {\n throw new Error(`Required transclusion slot '${slotName}' on directive: ${this.name}`);\n }\n });\n\n Object.keys(slots).filter(slotName => slots[slotName]).forEach(slotName => {\n const nodes = slots[slotName];\n slots[slotName] = (scope: IScope, cloneAttach: ICloneAttachFunction) => {\n return cloneAttach!(nodes, scope);\n };\n });\n }\n\n // Attach `$$slots` to default slot transclude fn.\n attachChildrenFn.$$slots = slots;\n\n // AngularJS v1.6+ ignores empty or whitespace-only transcluded text nodes. But Angular\n // removes all text content after the first interpolation and updates it later, after\n // evaluating the expressions. This would result in AngularJS failing to recognize text\n // nodes that start with an interpolation as transcluded content and use the fallback\n // content instead.\n // To avoid this issue, we add a\n // [zero-width non-joiner character](https://en.wikipedia.org/wiki/Zero-width_non-joiner)\n // to empty text nodes (which can only be a result of Angular removing their initial content).\n // NOTE: Transcluded text content that starts with whitespace followed by an interpolation\n // will still fail to be detected by AngularJS v1.6+\n $template.forEach(node => {\n if (node.nodeType === Node.TEXT_NODE && !node.nodeValue) {\n node.nodeValue = '\\u200C';\n }\n });\n }\n\n return attachChildrenFn;\n }\n\n resolveAndBindRequiredControllers(controllerInstance: IControllerInstance|null) {\n const directiveRequire = this.getDirectiveRequire();\n const requiredControllers = this.resolveRequire(directiveRequire);\n\n if (controllerInstance && this.directive.bindToController && isMap(directiveRequire)) {\n const requiredControllersMap = requiredControllers as {[key: string]: IControllerInstance};\n Object.keys(requiredControllersMap).forEach(key => {\n controllerInstance[key] = requiredControllersMap[key];\n });\n }\n\n return requiredControllers;\n }\n\n private compileHtml(html: string): ILinkFn {\n this.element.innerHTML = html;\n return this.$compile(this.element.childNodes);\n }\n\n private extractChildNodes(): Node[] {\n const childNodes: Node[] = [];\n let childNode: Node|null;\n\n while (childNode = this.element.firstChild) {\n this.element.removeChild(childNode);\n childNodes.push(childNode);\n }\n\n return childNodes;\n }\n\n private getDirectiveRequire(): DirectiveRequireProperty {\n const require = this.directive.require || (this.directive.controller && this.directive.name)!;\n\n if (isMap(require)) {\n Object.entries(require).forEach(([key, value]) => {\n const match = value.match(REQUIRE_PREFIX_RE)!;\n const name = value.substring(match[0].length);\n\n if (!name) {\n require[key] = match[0] + key;\n }\n });\n }\n\n return require;\n }\n\n private resolveRequire(require: DirectiveRequireProperty):\n SingleOrListOrMap|null {\n if (!require) {\n return null;\n } else if (Array.isArray(require)) {\n return require.map(req => this.resolveRequire(req));\n } else if (typeof require === 'object') {\n const value: {[key: string]: IControllerInstance} = {};\n Object.keys(require).forEach(key => value[key] = this.resolveRequire(require[key])!);\n return value;\n } else if (typeof require === 'string') {\n const match = require.match(REQUIRE_PREFIX_RE)!;\n const inheritType = match[1] || match[3];\n\n const name = require.substring(match[0].length);\n const isOptional = !!match[2];\n const searchParents = !!inheritType;\n const startOnParent = inheritType === '^^';\n\n const ctrlKey = controllerKey(name);\n const elem = startOnParent ? this.$element.parent!() : this.$element;\n const value = searchParents ? elem.inheritedData!(ctrlKey) : elem.data!(ctrlKey);\n\n if (!value && !isOptional) {\n throw new Error(\n `Unable to find required '${require}' in upgraded directive '${this.name}'.`);\n }\n\n return value;\n } else {\n throw new Error(\n `Unrecognized 'require' syntax on upgraded directive '${this.name}': ${require}`);\n }\n }\n}\n\nfunction getOrCall(property: T|Function, ...args: any[]): T {\n return isFunction(property) ? property(...args) : property;\n}\n\n// NOTE: Only works for `typeof T !== 'object'`.\nfunction isMap(value: SingleOrListOrMap): value is {[key: string]: T} {\n return value && !Array.isArray(value) && typeof value === 'object';\n}\n\nfunction notSupported(name: string, feature: string) {\n throw new Error(`Upgraded directive '${name}' contains unsupported feature: '${feature}'.`);\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, DoCheck, ElementRef, EventEmitter, Inject, Injector, OnChanges, OnDestroy, OnInit, SimpleChange, SimpleChanges, Type} from '@angular/core';\n\nimport {IAttributes, IDirective, IInjectorService, ILinkFn, IScope, ITranscludeFunction} from '../../common/src/angular1';\nimport {$SCOPE} from '../../common/src/constants';\nimport {IBindingDestination, IControllerInstance, UpgradeHelper} from '../../common/src/upgrade_helper';\nimport {isFunction, strictEquals} from '../../common/src/util';\n\n\nconst CAMEL_CASE = /([A-Z])/g;\nconst INITIAL_VALUE = {\n __UNINITIALIZED__: true\n};\nconst NOT_SUPPORTED: any = 'NOT_SUPPORTED';\n\nfunction getInputPropertyMapName(name: string): string {\n return `input_${name}`;\n}\n\nfunction getOutputPropertyMapName(name: string): string {\n return `output_${name}`;\n}\n\nexport class UpgradeNg1ComponentAdapterBuilder {\n type: Type;\n inputs: string[] = [];\n inputsRename: string[] = [];\n outputs: string[] = [];\n outputsRename: string[] = [];\n propertyOutputs: string[] = [];\n checkProperties: string[] = [];\n propertyMap: {[name: string]: string} = {};\n directive: IDirective|null = null;\n template!: string;\n\n constructor(public name: string) {\n const selector =\n name.replace(CAMEL_CASE, (all: string, next: string) => '-' + next.toLowerCase());\n const self = this;\n\n @Directive(\n {jit: true, selector: selector, inputs: this.inputsRename, outputs: this.outputsRename})\n class MyClass extends UpgradeNg1ComponentAdapter implements OnInit, OnChanges, DoCheck,\n OnDestroy {\n constructor(@Inject($SCOPE) scope: IScope, injector: Injector, elementRef: ElementRef) {\n super(\n new UpgradeHelper(injector, name, elementRef, self.directive || undefined), scope,\n self.template, self.inputs, self.outputs, self.propertyOutputs, self.checkProperties,\n self.propertyMap) as any;\n }\n }\n this.type = MyClass;\n }\n\n extractBindings() {\n const btcIsObject = typeof this.directive!.bindToController === 'object';\n if (btcIsObject && Object.keys(this.directive!.scope!).length) {\n throw new Error(\n `Binding definitions on scope and controller at the same time are not supported.`);\n }\n\n const context = (btcIsObject) ? this.directive!.bindToController : this.directive!.scope;\n\n if (typeof context == 'object') {\n Object.keys(context).forEach(propName => {\n const definition = context[propName];\n const bindingType = definition.charAt(0);\n const bindingOptions = definition.charAt(1);\n const attrName = definition.substring(bindingOptions === '?' ? 2 : 1) || propName;\n\n // QUESTION: What about `=*`? Ignore? Throw? Support?\n\n const inputName = getInputPropertyMapName(attrName);\n const inputNameRename = `${inputName}: ${attrName}`;\n const outputName = getOutputPropertyMapName(attrName);\n const outputNameRename = `${outputName}: ${attrName}`;\n const outputNameRenameChange = `${outputNameRename}Change`;\n\n switch (bindingType) {\n case '@':\n case '<':\n this.inputs.push(inputName);\n this.inputsRename.push(inputNameRename);\n this.propertyMap[inputName] = propName;\n break;\n case '=':\n this.inputs.push(inputName);\n this.inputsRename.push(inputNameRename);\n this.propertyMap[inputName] = propName;\n\n this.outputs.push(outputName);\n this.outputsRename.push(outputNameRenameChange);\n this.propertyMap[outputName] = propName;\n\n this.checkProperties.push(propName);\n this.propertyOutputs.push(outputName);\n break;\n case '&':\n this.outputs.push(outputName);\n this.outputsRename.push(outputNameRename);\n this.propertyMap[outputName] = propName;\n break;\n default:\n let json = JSON.stringify(context);\n throw new Error(\n `Unexpected mapping '${bindingType}' in '${json}' in '${this.name}' directive.`);\n }\n });\n }\n }\n\n /**\n * Upgrade ng1 components into Angular.\n */\n static resolve(\n exportedComponents: {[name: string]: UpgradeNg1ComponentAdapterBuilder},\n $injector: IInjectorService): Promise {\n const promises = Object.entries(exportedComponents).map(([name, exportedComponent]) => {\n exportedComponent.directive = UpgradeHelper.getDirective($injector, name);\n exportedComponent.extractBindings();\n\n return Promise\n .resolve(UpgradeHelper.getTemplate($injector, exportedComponent.directive, true))\n .then(template => exportedComponent.template = template);\n });\n\n return Promise.all(promises);\n }\n}\n\n@Directive()\nclass UpgradeNg1ComponentAdapter implements OnInit, OnChanges, DoCheck {\n private controllerInstance: IControllerInstance|null = null;\n destinationObj: IBindingDestination|null = null;\n checkLastValues: any[] = [];\n directive: IDirective;\n element: Element;\n $element: any = null;\n componentScope: IScope;\n\n constructor(\n private helper: UpgradeHelper, scope: IScope, private template: string,\n private inputs: string[], private outputs: string[], private propOuts: string[],\n private checkProperties: string[], private propertyMap: {[key: string]: string}) {\n this.directive = helper.directive;\n this.element = helper.element;\n this.$element = helper.$element;\n this.componentScope = scope.$new(!!this.directive.scope);\n\n const controllerType = this.directive.controller;\n\n if (this.directive.bindToController && controllerType) {\n this.controllerInstance = this.helper.buildController(controllerType, this.componentScope);\n this.destinationObj = this.controllerInstance;\n } else {\n this.destinationObj = this.componentScope;\n }\n\n for (const input of this.inputs) {\n (this as any)[input] = null;\n }\n for (const output of this.outputs) {\n const emitter = (this as any)[output] = new EventEmitter();\n if (this.propOuts.indexOf(output) === -1) {\n this.setComponentProperty(\n output, (emitter => (value: any) => emitter.emit(value))(emitter));\n }\n }\n this.checkLastValues.push(...Array(propOuts.length).fill(INITIAL_VALUE));\n }\n\n ngOnInit() {\n // Collect contents, insert and compile template\n const attachChildNodes: ILinkFn|undefined = this.helper.prepareTransclusion();\n const linkFn = this.helper.compileTemplate(this.template);\n\n // Instantiate controller (if not already done so)\n const controllerType = this.directive.controller;\n const bindToController = this.directive.bindToController;\n if (controllerType && !bindToController) {\n this.controllerInstance = this.helper.buildController(controllerType, this.componentScope);\n }\n\n // Require other controllers\n const requiredControllers =\n this.helper.resolveAndBindRequiredControllers(this.controllerInstance);\n\n // Hook: $onInit\n if (this.controllerInstance && isFunction(this.controllerInstance.$onInit)) {\n this.controllerInstance.$onInit();\n }\n\n // Linking\n const link = this.directive.link;\n const preLink = typeof link == 'object' && link.pre;\n const postLink = typeof link == 'object' ? link.post : link;\n const attrs: IAttributes = NOT_SUPPORTED;\n const transcludeFn: ITranscludeFunction = NOT_SUPPORTED;\n if (preLink) {\n preLink(this.componentScope, this.$element, attrs, requiredControllers, transcludeFn);\n }\n\n linkFn(this.componentScope, null!, {parentBoundTranscludeFn: attachChildNodes});\n\n if (postLink) {\n postLink(this.componentScope, this.$element, attrs, requiredControllers, transcludeFn);\n }\n\n // Hook: $postLink\n if (this.controllerInstance && isFunction(this.controllerInstance.$postLink)) {\n this.controllerInstance.$postLink();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const ng1Changes: any = {};\n Object.keys(changes).forEach(propertyMapName => {\n const change: SimpleChange = changes[propertyMapName];\n this.setComponentProperty(propertyMapName, change.currentValue);\n ng1Changes[this.propertyMap[propertyMapName]] = change;\n });\n\n if (isFunction(this.destinationObj!.$onChanges)) {\n this.destinationObj!.$onChanges!(ng1Changes);\n }\n }\n\n ngDoCheck() {\n const destinationObj = this.destinationObj;\n const lastValues = this.checkLastValues;\n const checkProperties = this.checkProperties;\n const propOuts = this.propOuts;\n checkProperties.forEach((propName, i) => {\n const value = destinationObj![propName];\n const last = lastValues[i];\n if (!strictEquals(last, value)) {\n const eventEmitter: EventEmitter = (this as any)[propOuts[i]];\n eventEmitter.emit(lastValues[i] = value);\n }\n });\n\n if (this.controllerInstance && isFunction(this.controllerInstance.$doCheck)) {\n this.controllerInstance.$doCheck();\n }\n }\n\n ngOnDestroy() {\n this.helper.onDestroy(this.componentScope, this.controllerInstance);\n }\n\n setComponentProperty(name: string, value: any) {\n this.destinationObj![this.propertyMap[name]] = value;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Compiler, CompilerOptions, Injector, NgModule, NgModuleRef, NgZone, resolveForwardRef, StaticProvider, Testability, Type} from '@angular/core';\nimport {platformBrowserDynamic} from '@angular/platform-browser-dynamic';\n\nimport {bootstrap, element as angularElement, IAngularBootstrapConfig, IAugmentedJQuery, IInjectorService, IModule, IProvideService, IRootScopeService, ITestabilityService, module_ as angularModule} from '../../common/src/angular1';\nimport {$$TESTABILITY, $COMPILE, $INJECTOR, $ROOT_SCOPE, COMPILER_KEY, INJECTOR_KEY, LAZY_MODULE_REF, NG_ZONE_KEY, UPGRADE_APP_TYPE_KEY} from '../../common/src/constants';\nimport {downgradeComponent} from '../../common/src/downgrade_component';\nimport {downgradeInjectable} from '../../common/src/downgrade_injectable';\nimport {controllerKey, Deferred, destroyApp, LazyModuleRef, onError, UpgradeAppType} from '../../common/src/util';\n\nimport {UpgradeNg1ComponentAdapterBuilder} from './upgrade_ng1_adapter';\n\nlet upgradeCount: number = 0;\n\n/**\n * Use `UpgradeAdapter` to allow AngularJS and Angular to coexist in a single application.\n *\n * The `UpgradeAdapter` allows:\n * 1. creation of Angular component from AngularJS component directive\n * (See {@link UpgradeAdapter#upgradeNg1Component})\n * 2. creation of AngularJS directive from Angular component.\n * (See {@link UpgradeAdapter#downgradeNg2Component})\n * 3. Bootstrapping of a hybrid Angular application which contains both of the frameworks\n * coexisting in a single application.\n *\n * @usageNotes\n * ### Mental Model\n *\n * When reasoning about how a hybrid application works it is useful to have a mental model which\n * describes what is happening and explains what is happening at the lowest level.\n *\n * 1. There are two independent frameworks running in a single application, each framework treats\n * the other as a black box.\n * 2. Each DOM element on the page is owned exactly by one framework. Whichever framework\n * instantiated the element is the owner. Each framework only updates/interacts with its own\n * DOM elements and ignores others.\n * 3. AngularJS directives always execute inside AngularJS framework codebase regardless of\n * where they are instantiated.\n * 4. Angular components always execute inside Angular framework codebase regardless of\n * where they are instantiated.\n * 5. An AngularJS component can be upgraded to an Angular component. This creates an\n * Angular directive, which bootstraps the AngularJS component directive in that location.\n * 6. An Angular component can be downgraded to an AngularJS component directive. This creates\n * an AngularJS directive, which bootstraps the Angular component in that location.\n * 7. Whenever an adapter component is instantiated the host element is owned by the framework\n * doing the instantiation. The other framework then instantiates and owns the view for that\n * component. This implies that component bindings will always follow the semantics of the\n * instantiation framework. The syntax is always that of Angular syntax.\n * 8. AngularJS is always bootstrapped first and owns the bottom most view.\n * 9. The new application is running in Angular zone, and therefore it no longer needs calls to\n * `$apply()`.\n *\n * ### Example\n *\n * ```\n * const adapter = new UpgradeAdapter(forwardRef(() => MyNg2Module), myCompilerOptions);\n * const module = angular.module('myExample', []);\n * module.directive('ng2Comp', adapter.downgradeNg2Component(Ng2Component));\n *\n * module.directive('ng1Hello', function() {\n * return {\n * scope: { title: '=' },\n * template: 'ng1[Hello {{title}}!]()'\n * };\n * });\n *\n *\n * @Component({\n * selector: 'ng2-comp',\n * inputs: ['name'],\n * template: 'ng2[transclude]()',\n * directives:\n * })\n * class Ng2Component {\n * }\n *\n * @NgModule({\n * declarations: [Ng2Component, adapter.upgradeNg1Component('ng1Hello')],\n * imports: [BrowserModule]\n * })\n * class MyNg2Module {}\n *\n *\n * document.body.innerHTML = 'project';\n *\n * adapter.bootstrap(document.body, ['myExample']).ready(function() {\n * expect(document.body.textContent).toEqual(\n * \"ng2[ng1[Hello World!](transclude)](project)\");\n * });\n *\n * ```\n *\n * @deprecated Deprecated since v5. Use `upgrade/static` instead, which also supports\n * [Ahead-of-Time compilation](guide/aot-compiler).\n * @publicApi\n */\nexport class UpgradeAdapter {\n private idPrefix: string = `NG2_UPGRADE_${upgradeCount++}_`;\n private downgradedComponents: Type[] = [];\n /**\n * An internal map of ng1 components which need to up upgraded to ng2.\n *\n * We can't upgrade until injector is instantiated and we can retrieve the component metadata.\n * For this reason we keep a list of components to upgrade until ng1 injector is bootstrapped.\n *\n * @internal\n */\n private ng1ComponentsToBeUpgraded: {[name: string]: UpgradeNg1ComponentAdapterBuilder} = {};\n private upgradedProviders: StaticProvider[] = [];\n private moduleRef: NgModuleRef|null = null;\n\n constructor(private ng2AppModule: Type, private compilerOptions?: CompilerOptions) {\n if (!ng2AppModule) {\n throw new Error(\n 'UpgradeAdapter cannot be instantiated without an NgModule of the Angular app.');\n }\n }\n\n /**\n * Allows Angular Component to be used from AngularJS.\n *\n * Use `downgradeNg2Component` to create an AngularJS Directive Definition Factory from\n * Angular Component. The adapter will bootstrap Angular component from within the\n * AngularJS template.\n *\n * @usageNotes\n * ### Mental Model\n *\n * 1. The component is instantiated by being listed in AngularJS template. This means that the\n * host element is controlled by AngularJS, but the component's view will be controlled by\n * Angular.\n * 2. Even thought the component is instantiated in AngularJS, it will be using Angular\n * syntax. This has to be done, this way because we must follow Angular components do not\n * declare how the attributes should be interpreted.\n * 3. `ng-model` is controlled by AngularJS and communicates with the downgraded Angular component\n * by way of the `ControlValueAccessor` interface from @angular/forms. Only components that\n * implement this interface are eligible.\n *\n * ### Supported Features\n *\n * - Bindings:\n * - Attribute: ``\n * - Interpolation: ``\n * - Expression: ``\n * - Event: ``\n * - ng-model: ``\n * - Content projection: yes\n *\n * ### Example\n *\n * ```\n * const adapter = new UpgradeAdapter(forwardRef(() => MyNg2Module));\n * const module = angular.module('myExample', []);\n * module.directive('greet', adapter.downgradeNg2Component(Greeter));\n *\n * @Component({\n * selector: 'greet',\n * template: '{{salutation}} {{name}}! - '\n * })\n * class Greeter {\n * @Input() salutation: string;\n * @Input() name: string;\n * }\n *\n * @NgModule({\n * declarations: [Greeter],\n * imports: [BrowserModule]\n * })\n * class MyNg2Module {}\n *\n * document.body.innerHTML =\n * 'ng1 template: text';\n *\n * adapter.bootstrap(document.body, ['myExample']).ready(function() {\n * expect(document.body.textContent).toEqual(\"ng1 template: Hello world! - text\");\n * });\n * ```\n */\n downgradeNg2Component(component: Type): Function {\n this.downgradedComponents.push(component);\n\n return downgradeComponent({component});\n }\n\n /**\n * Allows AngularJS Component to be used from Angular.\n *\n * Use `upgradeNg1Component` to create an Angular component from AngularJS Component\n * directive. The adapter will bootstrap AngularJS component from within the Angular\n * template.\n *\n * @usageNotes\n * ### Mental Model\n *\n * 1. The component is instantiated by being listed in Angular template. This means that the\n * host element is controlled by Angular, but the component's view will be controlled by\n * AngularJS.\n *\n * ### Supported Features\n *\n * - Bindings:\n * - Attribute: ``\n * - Interpolation: ``\n * - Expression: ``\n * - Event: ``\n * - Transclusion: yes\n * - Only some of the features of\n * [Directive Definition Object](https://docs.angularjs.org/api/ng/service/$compile) are\n * supported:\n * - `compile`: not supported because the host element is owned by Angular, which does\n * not allow modifying DOM structure during compilation.\n * - `controller`: supported. (NOTE: injection of `$attrs` and `$transclude` is not supported.)\n * - `controllerAs`: supported.\n * - `bindToController`: supported.\n * - `link`: supported. (NOTE: only pre-link function is supported.)\n * - `name`: supported.\n * - `priority`: ignored.\n * - `replace`: not supported.\n * - `require`: supported.\n * - `restrict`: must be set to 'E'.\n * - `scope`: supported.\n * - `template`: supported.\n * - `templateUrl`: supported.\n * - `terminal`: ignored.\n * - `transclude`: supported.\n *\n *\n * ### Example\n *\n * ```\n * const adapter = new UpgradeAdapter(forwardRef(() => MyNg2Module));\n * const module = angular.module('myExample', []);\n *\n * module.directive('greet', function() {\n * return {\n * scope: {salutation: '=', name: '=' },\n * template: '{{salutation}} {{name}}! - '\n * };\n * });\n *\n * module.directive('ng2', adapter.downgradeNg2Component(Ng2Component));\n *\n * @Component({\n * selector: 'ng2',\n * template: 'ng2 template: text'\n * })\n * class Ng2Component {\n * }\n *\n * @NgModule({\n * declarations: [Ng2Component, adapter.upgradeNg1Component('greet')],\n * imports: [BrowserModule]\n * })\n * class MyNg2Module {}\n *\n * document.body.innerHTML = '';\n *\n * adapter.bootstrap(document.body, ['myExample']).ready(function() {\n * expect(document.body.textContent).toEqual(\"ng2 template: Hello world! - text\");\n * });\n * ```\n */\n upgradeNg1Component(name: string): Type {\n if (this.ng1ComponentsToBeUpgraded.hasOwnProperty(name)) {\n return this.ng1ComponentsToBeUpgraded[name].type;\n } else {\n return (this.ng1ComponentsToBeUpgraded[name] = new UpgradeNg1ComponentAdapterBuilder(name))\n .type;\n }\n }\n\n /**\n * Registers the adapter's AngularJS upgrade module for unit testing in AngularJS.\n * Use this instead of `angular.mock.module()` to load the upgrade module into\n * the AngularJS testing injector.\n *\n * @usageNotes\n * ### Example\n *\n * ```\n * const upgradeAdapter = new UpgradeAdapter(MyNg2Module);\n *\n * // configure the adapter with upgrade/downgrade components and services\n * upgradeAdapter.downgradeNg2Component(MyComponent);\n *\n * let upgradeAdapterRef: UpgradeAdapterRef;\n * let $compile, $rootScope;\n *\n * // We must register the adapter before any calls to `inject()`\n * beforeEach(() => {\n * upgradeAdapterRef = upgradeAdapter.registerForNg1Tests(['heroApp']);\n * });\n *\n * beforeEach(inject((_$compile_, _$rootScope_) => {\n * $compile = _$compile_;\n * $rootScope = _$rootScope_;\n * }));\n *\n * it(\"says hello\", (done) => {\n * upgradeAdapterRef.ready(() => {\n * const element = $compile(\"\")($rootScope);\n * $rootScope.$apply();\n * expect(element.html()).toContain(\"Hello World\");\n * done();\n * })\n * });\n *\n * ```\n *\n * @param modules any AngularJS modules that the upgrade module should depend upon\n * @returns an `UpgradeAdapterRef`, which lets you register a `ready()` callback to\n * run assertions once the Angular components are ready to test through AngularJS.\n */\n registerForNg1Tests(modules?: string[]): UpgradeAdapterRef {\n const windowNgMock = (window as any)['angular'].mock;\n if (!windowNgMock || !windowNgMock.module) {\n throw new Error('Failed to find \\'angular.mock.module\\'.');\n }\n const {ng1Module, ng2BootstrapDeferred} = this.declareNg1Module(modules);\n windowNgMock.module(ng1Module.name);\n const upgrade = new UpgradeAdapterRef();\n ng2BootstrapDeferred.promise.then((ng1Injector) => {\n // @ts-expect-error\n upgrade._bootstrapDone(this.moduleRef!, ng1Injector);\n }, onError);\n return upgrade;\n }\n\n /**\n * Bootstrap a hybrid AngularJS / Angular application.\n *\n * This `bootstrap` method is a direct replacement (takes same arguments) for AngularJS\n * [`bootstrap`](https://docs.angularjs.org/api/ng/function/angular.bootstrap) method. Unlike\n * AngularJS, this bootstrap is asynchronous.\n *\n * @usageNotes\n * ### Example\n *\n * ```\n * const adapter = new UpgradeAdapter(MyNg2Module);\n * const module = angular.module('myExample', []);\n * module.directive('ng2', adapter.downgradeNg2Component(Ng2));\n *\n * module.directive('ng1', function() {\n * return {\n * scope: { title: '=' },\n * template: 'ng1[Hello {{title}}!]()'\n * };\n * });\n *\n *\n * @Component({\n * selector: 'ng2',\n * inputs: ['name'],\n * template: 'ng2[transclude]()'\n * })\n * class Ng2 {\n * }\n *\n * @NgModule({\n * declarations: [Ng2, adapter.upgradeNg1Component('ng1')],\n * imports: [BrowserModule]\n * })\n * class MyNg2Module {}\n *\n * document.body.innerHTML = 'project';\n *\n * adapter.bootstrap(document.body, ['myExample']).ready(function() {\n * expect(document.body.textContent).toEqual(\n * \"ng2[ng1[Hello World!](transclude)](project)\");\n * });\n * ```\n */\n bootstrap(element: Element, modules?: any[], config?: IAngularBootstrapConfig):\n UpgradeAdapterRef {\n const {ng1Module, ng2BootstrapDeferred, ngZone} = this.declareNg1Module(modules);\n\n const upgrade = new UpgradeAdapterRef();\n\n // Make sure resumeBootstrap() only exists if the current bootstrap is deferred\n const windowAngular = (window as any)['angular'];\n windowAngular.resumeBootstrap = undefined;\n\n ngZone.run(() => {\n bootstrap(element, [ng1Module.name], config!);\n });\n const ng1BootstrapPromise = new Promise((resolve) => {\n if (windowAngular.resumeBootstrap) {\n const originalResumeBootstrap: () => void = windowAngular.resumeBootstrap;\n windowAngular.resumeBootstrap = function() {\n windowAngular.resumeBootstrap = originalResumeBootstrap;\n const r = windowAngular.resumeBootstrap.apply(this, arguments);\n resolve();\n return r;\n };\n } else {\n resolve();\n }\n });\n\n Promise.all([ng2BootstrapDeferred.promise, ng1BootstrapPromise]).then(([ng1Injector]) => {\n angularElement(element).data!(controllerKey(INJECTOR_KEY), this.moduleRef!.injector);\n this.moduleRef!.injector.get(NgZone).run(() => {\n // @ts-expect-error\n upgrade._bootstrapDone(this.moduleRef, ng1Injector);\n });\n }, onError);\n return upgrade;\n }\n\n /**\n * Allows AngularJS service to be accessible from Angular.\n *\n * @usageNotes\n * ### Example\n *\n * ```\n * class Login { ... }\n * class Server { ... }\n *\n * @Injectable()\n * class Example {\n * constructor(@Inject('server') server, login: Login) {\n * ...\n * }\n * }\n *\n * const module = angular.module('myExample', []);\n * module.service('server', Server);\n * module.service('login', Login);\n *\n * const adapter = new UpgradeAdapter(MyNg2Module);\n * adapter.upgradeNg1Provider('server');\n * adapter.upgradeNg1Provider('login', {asToken: Login});\n *\n * adapter.bootstrap(document.body, ['myExample']).ready((ref) => {\n * const example: Example = ref.ng2Injector.get(Example);\n * });\n *\n * ```\n */\n upgradeNg1Provider(name: string, options?: {asToken: any}) {\n const token = options && options.asToken || name;\n this.upgradedProviders.push({\n provide: token,\n useFactory: ($injector: IInjectorService) => $injector.get(name),\n deps: [$INJECTOR]\n });\n }\n\n /**\n * Allows Angular service to be accessible from AngularJS.\n *\n * @usageNotes\n * ### Example\n *\n * ```\n * class Example {\n * }\n *\n * const adapter = new UpgradeAdapter(MyNg2Module);\n *\n * const module = angular.module('myExample', []);\n * module.factory('example', adapter.downgradeNg2Provider(Example));\n *\n * adapter.bootstrap(document.body, ['myExample']).ready((ref) => {\n * const example: Example = ref.ng1Injector.get('example');\n * });\n *\n * ```\n */\n downgradeNg2Provider(token: any): Function {\n return downgradeInjectable(token);\n }\n\n /**\n * Declare the AngularJS upgrade module for this adapter without bootstrapping the whole\n * hybrid application.\n *\n * This method is automatically called by `bootstrap()` and `registerForNg1Tests()`.\n *\n * @param modules The AngularJS modules that this upgrade module should depend upon.\n * @returns The AngularJS upgrade module that is declared by this method\n *\n * @usageNotes\n * ### Example\n *\n * ```\n * const upgradeAdapter = new UpgradeAdapter(MyNg2Module);\n * upgradeAdapter.declareNg1Module(['heroApp']);\n * ```\n */\n private declareNg1Module(modules: string[] = []):\n {ng1Module: IModule, ng2BootstrapDeferred: Deferred, ngZone: NgZone} {\n const delayApplyExps: Function[] = [];\n let original$applyFn: Function;\n let rootScopePrototype: any;\n const upgradeAdapter = this;\n const ng1Module = angularModule(this.idPrefix, modules);\n const platformRef = platformBrowserDynamic();\n\n const ngZone =\n new NgZone({enableLongStackTrace: Zone.hasOwnProperty('longStackTraceZoneSpec')});\n const ng2BootstrapDeferred = new Deferred();\n ng1Module.constant(UPGRADE_APP_TYPE_KEY, UpgradeAppType.Dynamic)\n .factory(INJECTOR_KEY, () => this.moduleRef!.injector.get(Injector))\n .factory(\n LAZY_MODULE_REF, [INJECTOR_KEY, (injector: Injector) => ({injector} as LazyModuleRef)])\n .constant(NG_ZONE_KEY, ngZone)\n .factory(COMPILER_KEY, () => this.moduleRef!.injector.get(Compiler))\n .config([\n '$provide', '$injector',\n (provide: IProvideService, ng1Injector: IInjectorService) => {\n provide.decorator($ROOT_SCOPE, [\n '$delegate',\n function(rootScopeDelegate: IRootScopeService) {\n // Capture the root apply so that we can delay first call to $apply until we\n // bootstrap Angular and then we replay and restore the $apply.\n rootScopePrototype = rootScopeDelegate.constructor.prototype;\n if (rootScopePrototype.hasOwnProperty('$apply')) {\n original$applyFn = rootScopePrototype.$apply;\n rootScopePrototype.$apply = (exp: any) => delayApplyExps.push(exp);\n } else {\n throw new Error('Failed to find \\'$apply\\' on \\'$rootScope\\'!');\n }\n return rootScopeDelegate;\n }\n ]);\n if (ng1Injector.has($$TESTABILITY)) {\n provide.decorator($$TESTABILITY, [\n '$delegate',\n function(testabilityDelegate: ITestabilityService) {\n const originalWhenStable: Function = testabilityDelegate.whenStable;\n // Cannot use arrow function below because we need the context\n const newWhenStable = function(this: unknown, callback: Function) {\n originalWhenStable.call(this, function(this: unknown) {\n const ng2Testability: Testability =\n upgradeAdapter.moduleRef!.injector.get(Testability);\n if (ng2Testability.isStable()) {\n callback.apply(this, arguments);\n } else {\n ng2Testability.whenStable(newWhenStable.bind(this, callback));\n }\n });\n };\n\n testabilityDelegate.whenStable = newWhenStable;\n return testabilityDelegate;\n }\n ]);\n }\n }\n ]);\n\n ng1Module.run([\n '$injector', '$rootScope',\n (ng1Injector: IInjectorService, rootScope: IRootScopeService) => {\n UpgradeNg1ComponentAdapterBuilder.resolve(this.ng1ComponentsToBeUpgraded, ng1Injector)\n .then(() => {\n // At this point we have ng1 injector and we have prepared\n // ng1 components to be upgraded, we now can bootstrap ng2.\n @NgModule({\n jit: true,\n providers: [\n {provide: $INJECTOR, useFactory: () => ng1Injector},\n {provide: $COMPILE, useFactory: () => ng1Injector.get($COMPILE)},\n this.upgradedProviders\n ],\n imports: [resolveForwardRef(this.ng2AppModule)]\n })\n class DynamicNgUpgradeModule {\n ngDoBootstrap() {}\n }\n platformRef.bootstrapModule(DynamicNgUpgradeModule, [this.compilerOptions!, {ngZone}])\n .then((ref: NgModuleRef) => {\n this.moduleRef = ref;\n ngZone.run(() => {\n if (rootScopePrototype) {\n rootScopePrototype.$apply = original$applyFn; // restore original $apply\n while (delayApplyExps.length) {\n rootScope.$apply(delayApplyExps.shift());\n }\n rootScopePrototype = null;\n }\n });\n })\n .then(() => ng2BootstrapDeferred.resolve(ng1Injector), onError)\n .then(() => {\n let subscription = ngZone.onMicrotaskEmpty.subscribe({\n next: () => {\n if (rootScope.$$phase) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.warn(\n 'A digest was triggered while one was already in progress. This may mean that something is triggering digests outside the Angular zone.');\n }\n\n return rootScope.$evalAsync(() => {});\n }\n\n return rootScope.$digest();\n }\n });\n rootScope.$on('$destroy', () => {\n subscription.unsubscribe();\n });\n\n // Destroy the AngularJS app once the Angular `PlatformRef` is destroyed.\n // This does not happen in a typical SPA scenario, but it might be useful for\n // other use-cases where disposing of an Angular/AngularJS app is necessary\n // (such as Hot Module Replacement (HMR)).\n // See https://github.com/angular/angular/issues/39935.\n platformRef.onDestroy(() => destroyApp(ng1Injector));\n });\n })\n .catch((e) => ng2BootstrapDeferred.reject(e));\n }\n ]);\n\n return {ng1Module, ng2BootstrapDeferred, ngZone};\n }\n}\n\n/**\n * Use `UpgradeAdapterRef` to control a hybrid AngularJS / Angular application.\n *\n * @deprecated Deprecated since v5. Use `upgrade/static` instead, which also supports\n * [Ahead-of-Time compilation](guide/aot-compiler).\n * @publicApi\n */\nexport class UpgradeAdapterRef {\n /* @internal */\n private _readyFn: ((upgradeAdapterRef: UpgradeAdapterRef) => void)|null = null;\n\n public ng1RootScope: IRootScopeService = null!;\n public ng1Injector: IInjectorService = null!;\n public ng2ModuleRef: NgModuleRef = null!;\n public ng2Injector: Injector = null!;\n\n /* @internal */\n private _bootstrapDone(ngModuleRef: NgModuleRef, ng1Injector: IInjectorService) {\n this.ng2ModuleRef = ngModuleRef;\n this.ng2Injector = ngModuleRef.injector;\n this.ng1Injector = ng1Injector;\n this.ng1RootScope = ng1Injector.get($ROOT_SCOPE);\n this._readyFn && this._readyFn(this);\n }\n\n /**\n * Register a callback function which is notified upon successful hybrid AngularJS / Angular\n * application has been bootstrapped.\n *\n * The `ready` callback function is invoked inside the Angular zone, therefore it does not\n * require a call to `$apply()`.\n */\n public ready(fn: (upgradeAdapterRef: UpgradeAdapterRef) => void) {\n this._readyFn = fn;\n }\n\n /**\n * Dispose of running hybrid AngularJS / Angular application.\n */\n public dispose() {\n this.ng1Injector!.get($ROOT_SCOPE).$destroy();\n this.ng2ModuleRef!.destroy();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package. allowing\n * Angular 1 and Angular 2+ to run side by side in the same application.\n */\nexport {VERSION} from './src/common/src/version';\nexport {UpgradeAdapter, UpgradeAdapterRef} from './src/dynamic/src/upgrade_adapter';\n\n// This file only re-exports content of the `src` folder. Keep it that way.\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n// This file is not used to build this module. It is only used during editing\n// by the TypeScript language service and during build for verification. `ngc`\n// replaces this file with production index.ts when it rewrites private symbol\n// names.\n\nexport * from './public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["angularElement","INITIAL_VALUE","element","angularModule"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"upgrade.mjs","sources":["../../../../../../packages/upgrade/src/common/src/version.ts","../../../../../../packages/upgrade/src/common/src/angular1.ts","../../../../../../packages/upgrade/src/common/src/constants.ts","../../../../../../packages/upgrade/src/common/src/component_info.ts","../../../../../../packages/upgrade/src/common/src/util.ts","../../../../../../packages/upgrade/src/common/src/downgrade_component_adapter.ts","../../../../../../packages/upgrade/src/common/src/promise_util.ts","../../../../../../packages/upgrade/src/common/src/downgrade_component.ts","../../../../../../packages/upgrade/src/common/src/downgrade_injectable.ts","../../../../../../packages/upgrade/src/common/src/upgrade_helper.ts","../../../../../../packages/upgrade/src/dynamic/src/upgrade_ng1_adapter.ts","../../../../../../packages/upgrade/src/dynamic/src/upgrade_adapter.ts","../../../../../../packages/upgrade/public_api.ts","../../../../../../packages/upgrade/index.ts","../../../../../../packages/upgrade/upgrade.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of the upgrade package.\n */\n\nimport {Version} from '@angular/core';\n\n/**\n * @publicApi\n */\nexport const VERSION = new Version('17.0.0-next.2+sha-b9ba6e6');\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport type Ng1Token = string;\n\nexport type Ng1Expression = string|Function;\n\nexport interface IAnnotatedFunction extends Function {\n // Older versions of `@types/angular` typings extend the global `Function` interface with\n // `$inject?: string[]`, which is not compatible with `$inject?: ReadonlyArray` (used in\n // latest versions).\n $inject?: Function extends {$inject?: string[]}? Ng1Token[]: ReadonlyArray;\n}\n\nexport type IInjectable = (Ng1Token|Function)[]|IAnnotatedFunction;\n\nexport type SingleOrListOrMap = T|T[]|{[key: string]: T};\n\nexport interface IModule {\n name: string;\n requires: (string|IInjectable)[];\n config(fn: IInjectable): IModule;\n directive(selector: string, factory: IInjectable): IModule;\n component(selector: string, component: IComponent): IModule;\n controller(name: string, type: IInjectable): IModule;\n factory(key: Ng1Token, factoryFn: IInjectable): IModule;\n value(key: Ng1Token, value: any): IModule;\n constant(token: Ng1Token, value: any): IModule;\n run(a: IInjectable): IModule;\n}\nexport interface ICompileService {\n (element: Element|NodeList|Node[]|string, transclude?: Function): ILinkFn;\n}\nexport interface ILinkFn {\n (scope: IScope, cloneAttachFn?: ICloneAttachFunction, options?: ILinkFnOptions): IAugmentedJQuery;\n $$slots?: {[slotName: string]: ILinkFn};\n}\nexport interface ILinkFnOptions {\n parentBoundTranscludeFn?: Function;\n transcludeControllers?: {[key: string]: any};\n futureParentElement?: Node;\n}\nexport interface IRootScopeService {\n $new(isolate?: boolean): IScope;\n $id: string;\n $parent: IScope;\n $root: IScope;\n $watch(exp: Ng1Expression, fn?: (a1?: any, a2?: any) => void): Function;\n $on(event: string, fn?: (event?: any, ...args: any[]) => void): Function;\n $destroy(): any;\n $apply(exp?: Ng1Expression): any;\n $digest(): any;\n $evalAsync(exp: Ng1Expression, locals?: any): void;\n $on(event: string, fn?: (event?: any, ...args: any[]) => void): Function;\n $$childTail: IScope;\n $$childHead: IScope;\n $$nextSibling: IScope;\n [key: string]: any;\n}\nexport interface IScope extends IRootScopeService {}\n\nexport interface IAngularBootstrapConfig {\n strictDi?: boolean;\n}\nexport interface IDirective {\n compile?: IDirectiveCompileFn;\n controller?: IController;\n controllerAs?: string;\n bindToController?: boolean|{[key: string]: string};\n link?: IDirectiveLinkFn|IDirectivePrePost;\n name?: string;\n priority?: number;\n replace?: boolean;\n require?: DirectiveRequireProperty;\n restrict?: string;\n scope?: boolean|{[key: string]: string};\n template?: string|Function;\n templateUrl?: string|Function;\n templateNamespace?: string;\n terminal?: boolean;\n transclude?: DirectiveTranscludeProperty;\n}\nexport type DirectiveRequireProperty = SingleOrListOrMap;\nexport type DirectiveTranscludeProperty = boolean|'element'|{[key: string]: string};\nexport interface IDirectiveCompileFn {\n (templateElement: IAugmentedJQuery, templateAttributes: IAttributes,\n transclude: ITranscludeFunction): IDirectivePrePost;\n}\nexport interface IDirectivePrePost {\n pre?: IDirectiveLinkFn;\n post?: IDirectiveLinkFn;\n}\nexport interface IDirectiveLinkFn {\n (scope: IScope, instanceElement: IAugmentedJQuery, instanceAttributes: IAttributes,\n controller: any, transclude: ITranscludeFunction): void;\n}\nexport interface IComponent {\n bindings?: {[key: string]: string};\n controller?: string|IInjectable;\n controllerAs?: string;\n require?: DirectiveRequireProperty;\n template?: string|Function;\n templateUrl?: string|Function;\n transclude?: DirectiveTranscludeProperty;\n}\nexport interface IAttributes {\n $observe(attr: string, fn: (v: string) => void): void;\n [key: string]: any;\n}\nexport interface ITranscludeFunction {\n // If the scope is provided, then the cloneAttachFn must be as well.\n (scope: IScope, cloneAttachFn: ICloneAttachFunction): IAugmentedJQuery;\n // If one argument is provided, then it's assumed to be the cloneAttachFn.\n (cloneAttachFn?: ICloneAttachFunction): IAugmentedJQuery;\n}\nexport interface ICloneAttachFunction {\n (clonedElement: IAugmentedJQuery, scope: IScope): any;\n}\nexport type IAugmentedJQuery = Node[]&{\n on?: (name: string, fn: () => void) => void;\n data?: (name: string, value?: any) => any;\n text?: () => string;\n inheritedData?: (name: string, value?: any) => any;\n children?: () => IAugmentedJQuery;\n contents?: () => IAugmentedJQuery;\n parent?: () => IAugmentedJQuery;\n empty?: () => void;\n append?: (content: IAugmentedJQuery|string) => IAugmentedJQuery;\n controller?: (name: string) => any;\n isolateScope?: () => IScope;\n injector?: () => IInjectorService;\n triggerHandler?: (eventTypeOrObject: string|Event, extraParameters?: any[]) => IAugmentedJQuery;\n remove?: () => void;\n removeData?: () => void;\n};\nexport interface IProvider {\n $get: IInjectable;\n}\nexport interface IProvideService {\n provider(token: Ng1Token, provider: IProvider): IProvider;\n factory(token: Ng1Token, factory: IInjectable): IProvider;\n service(token: Ng1Token, type: IInjectable): IProvider;\n value(token: Ng1Token, value: any): IProvider;\n constant(token: Ng1Token, value: any): void;\n decorator(token: Ng1Token, factory: IInjectable): void;\n}\nexport interface IParseService {\n (expression: string): ICompiledExpression;\n}\nexport interface ICompiledExpression {\n (context: any, locals: any): any;\n assign?: (context: any, value: any) => any;\n}\nexport interface IHttpBackendService {\n (method: string, url: string, post?: any, callback?: Function, headers?: any, timeout?: number,\n withCredentials?: boolean): void;\n}\nexport interface ICacheObject {\n put(key: string, value?: T): T;\n get(key: string): any;\n}\nexport interface ITemplateCacheService extends ICacheObject {}\nexport type IController = string|IInjectable;\nexport interface IControllerService {\n (controllerConstructor: IController, locals?: any, later?: any, ident?: any): any;\n (controllerName: string, locals?: any): any;\n}\n\nexport interface IInjectorService {\n get(key: string): any;\n has(key: string): boolean;\n}\n\nexport interface IIntervalService {\n (func: Function, delay: number, count?: number, invokeApply?: boolean,\n ...args: any[]): Promise;\n cancel(promise: Promise): boolean;\n}\n\nexport interface ITestabilityService {\n findBindings(element: Element, expression: string, opt_exactMatch?: boolean): Element[];\n findModels(element: Element, expression: string, opt_exactMatch?: boolean): Element[];\n getLocation(): string;\n setLocation(url: string): void;\n whenStable(callback: Function): void;\n}\n\nexport interface INgModelController {\n $render(): void;\n $isEmpty(value: any): boolean;\n $setValidity(validationErrorKey: string, isValid: boolean): void;\n $setPristine(): void;\n $setDirty(): void;\n $setUntouched(): void;\n $setTouched(): void;\n $rollbackViewValue(): void;\n $validate(): void;\n $commitViewValue(): void;\n $setViewValue(value: any, trigger: string): void;\n\n $viewValue: any;\n $modelValue: any;\n $parsers: Function[];\n $formatters: Function[];\n $validators: {[key: string]: Function};\n $asyncValidators: {[key: string]: Function};\n $viewChangeListeners: Function[];\n $error: Object;\n $pending: Object;\n $untouched: boolean;\n $touched: boolean;\n $pristine: boolean;\n $dirty: boolean;\n $valid: boolean;\n $invalid: boolean;\n $name: string;\n}\n\nfunction noNg(): never {\n throw new Error('AngularJS v1.x is not loaded!');\n}\n\nconst noNgElement: typeof angular.element = (() => noNg()) as any;\nnoNgElement.cleanData = noNg;\n\nlet angular: {\n bootstrap: (e: Element, modules: (string|IInjectable)[], config?: IAngularBootstrapConfig) =>\n IInjectorService,\n module: (prefix: string, dependencies?: string[]) => IModule,\n element: {\n (e: string|Element|Document|IAugmentedJQuery): IAugmentedJQuery;\n cleanData: (nodes: Node[]|NodeList) => void;\n },\n injector: (modules: Array, strictDi?: boolean) => IInjectorService,\n version: {major: number},\n resumeBootstrap: () => void,\n getTestability: (e: Element) => ITestabilityService\n} = {\n bootstrap: noNg,\n module: noNg,\n element: noNgElement,\n injector: noNg,\n version: undefined as any,\n resumeBootstrap: noNg,\n getTestability: noNg\n};\n\ntry {\n if (window.hasOwnProperty('angular')) {\n angular = (window).angular;\n }\n} catch {\n // ignore in CJS mode.\n}\n\n/**\n * @deprecated Use `setAngularJSGlobal` instead.\n *\n * @publicApi\n */\nexport function setAngularLib(ng: any): void {\n setAngularJSGlobal(ng);\n}\n\n/**\n * @deprecated Use `getAngularJSGlobal` instead.\n *\n * @publicApi\n */\nexport function getAngularLib(): any {\n return getAngularJSGlobal();\n}\n\n/**\n * Resets the AngularJS global.\n *\n * Used when AngularJS is loaded lazily, and not available on `window`.\n *\n * @publicApi\n */\nexport function setAngularJSGlobal(ng: any): void {\n angular = ng;\n}\n\n/**\n * Returns the current AngularJS global.\n *\n * @publicApi\n */\nexport function getAngularJSGlobal(): any {\n return angular;\n}\n\nexport const bootstrap: typeof angular.bootstrap = (e, modules, config?) =>\n angular.bootstrap(e, modules, config);\n\n// Do not declare as `module` to avoid webpack bug\n// (see https://github.com/angular/angular/issues/30050).\nexport const module_: typeof angular.module = (prefix, dependencies?) =>\n angular.module(prefix, dependencies);\n\nexport const element: typeof angular.element = (e => angular.element(e)) as typeof angular.element;\nelement.cleanData = nodes => angular.element.cleanData(nodes);\n\nexport const injector: typeof angular.injector =\n (modules: Array, strictDi?: boolean) => angular.injector(modules, strictDi);\n\nexport const resumeBootstrap: typeof angular.resumeBootstrap = () => angular.resumeBootstrap();\n\nexport const getTestability: typeof angular.getTestability = e => angular.getTestability(e);\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport const $COMPILE = '$compile';\nexport const $CONTROLLER = '$controller';\nexport const $DELEGATE = '$delegate';\nexport const $EXCEPTION_HANDLER = '$exceptionHandler';\nexport const $HTTP_BACKEND = '$httpBackend';\nexport const $INJECTOR = '$injector';\nexport const $INTERVAL = '$interval';\nexport const $PARSE = '$parse';\nexport const $PROVIDE = '$provide';\nexport const $ROOT_ELEMENT = '$rootElement';\nexport const $ROOT_SCOPE = '$rootScope';\nexport const $SCOPE = '$scope';\nexport const $TEMPLATE_CACHE = '$templateCache';\nexport const $TEMPLATE_REQUEST = '$templateRequest';\n\nexport const $$TESTABILITY = '$$testability';\n\nexport const COMPILER_KEY = '$$angularCompiler';\nexport const DOWNGRADED_MODULE_COUNT_KEY = '$$angularDowngradedModuleCount';\nexport const GROUP_PROJECTABLE_NODES_KEY = '$$angularGroupProjectableNodes';\nexport const INJECTOR_KEY = '$$angularInjector';\nexport const LAZY_MODULE_REF = '$$angularLazyModuleRef';\nexport const NG_ZONE_KEY = '$$angularNgZone';\nexport const UPGRADE_APP_TYPE_KEY = '$$angularUpgradeAppType';\n\nexport const REQUIRE_INJECTOR = '?^^' + INJECTOR_KEY;\nexport const REQUIRE_NG_MODEL = '?ngModel';\n\nexport const UPGRADE_MODULE_NAME = '$$UpgradeModule';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * A `PropertyBinding` represents a mapping between a property name\n * and an attribute name. It is parsed from a string of the form\n * `\"prop: attr\"`; or simply `\"propAndAttr\" where the property\n * and attribute have the same identifier.\n */\nexport class PropertyBinding {\n bracketAttr: string;\n bracketParenAttr: string;\n parenAttr: string;\n onAttr: string;\n bindAttr: string;\n bindonAttr: string;\n\n constructor(public prop: string, public attr: string) {\n this.bracketAttr = `[${this.attr}]`;\n this.parenAttr = `(${this.attr})`;\n this.bracketParenAttr = `[(${this.attr})]`;\n const capitalAttr = this.attr.charAt(0).toUpperCase() + this.attr.slice(1);\n this.onAttr = `on${capitalAttr}`;\n this.bindAttr = `bind${capitalAttr}`;\n this.bindonAttr = `bindon${capitalAttr}`;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Injector, Type, ɵNG_MOD_DEF} from '@angular/core';\n\nimport {element as angularElement, IAugmentedJQuery, IInjectorService, INgModelController, IRootScopeService} from './angular1';\nimport {$ROOT_ELEMENT, $ROOT_SCOPE, DOWNGRADED_MODULE_COUNT_KEY, UPGRADE_APP_TYPE_KEY} from './constants';\n\nconst DIRECTIVE_PREFIX_REGEXP = /^(?:x|data)[:\\-_]/i;\nconst DIRECTIVE_SPECIAL_CHARS_REGEXP = /[:\\-_]+(.)/g;\n\nexport function onError(e: any) {\n // TODO: (misko): We seem to not have a stack trace here!\n console.error(e, e.stack);\n throw e;\n}\n\n/**\n * Clean the jqLite/jQuery data on the element and all its descendants.\n * Equivalent to how jqLite/jQuery invoke `cleanData()` on an Element when removed:\n * https://github.com/angular/angular.js/blob/2e72ea13fa98bebf6ed4b5e3c45eaf5f990ed16f/src/jqLite.js#L349-L355\n * https://github.com/jquery/jquery/blob/6984d1747623dbc5e87fd6c261a5b6b1628c107c/src/manipulation.js#L182\n *\n * NOTE:\n * `cleanData()` will also invoke the AngularJS `$destroy` DOM event on the element:\n * https://github.com/angular/angular.js/blob/2e72ea13fa98bebf6ed4b5e3c45eaf5f990ed16f/src/Angular.js#L1932-L1945\n *\n * @param node The DOM node whose data needs to be cleaned.\n */\nexport function cleanData(node: Node): void {\n angularElement.cleanData([node]);\n if (isParentNode(node)) {\n angularElement.cleanData(node.querySelectorAll('*'));\n }\n}\n\nexport function controllerKey(name: string): string {\n return '$' + name + 'Controller';\n}\n\n/**\n * Destroy an AngularJS app given the app `$injector`.\n *\n * NOTE: Destroying an app is not officially supported by AngularJS, but try to do our best by\n * destroying `$rootScope` and clean the jqLite/jQuery data on `$rootElement` and all\n * descendants.\n *\n * @param $injector The `$injector` of the AngularJS app to destroy.\n */\nexport function destroyApp($injector: IInjectorService): void {\n const $rootElement: IAugmentedJQuery = $injector.get($ROOT_ELEMENT);\n const $rootScope: IRootScopeService = $injector.get($ROOT_SCOPE);\n\n $rootScope.$destroy();\n cleanData($rootElement[0]);\n}\n\nexport function directiveNormalize(name: string): string {\n return name.replace(DIRECTIVE_PREFIX_REGEXP, '')\n .replace(DIRECTIVE_SPECIAL_CHARS_REGEXP, (_, letter) => letter.toUpperCase());\n}\n\nexport function getTypeName(type: Type): string {\n // Return the name of the type or the first line of its stringified version.\n return (type as any).overriddenName || type.name || type.toString().split('\\n')[0];\n}\n\nexport function getDowngradedModuleCount($injector: IInjectorService): number {\n return $injector.has(DOWNGRADED_MODULE_COUNT_KEY) ? $injector.get(DOWNGRADED_MODULE_COUNT_KEY) :\n 0;\n}\n\nexport function getUpgradeAppType($injector: IInjectorService): UpgradeAppType {\n return $injector.has(UPGRADE_APP_TYPE_KEY) ? $injector.get(UPGRADE_APP_TYPE_KEY) :\n UpgradeAppType.None;\n}\n\nexport function isFunction(value: any): value is Function {\n return typeof value === 'function';\n}\n\nexport function isNgModuleType(value: any): value is Type {\n // NgModule class should have the `ɵmod` static property attached by AOT or JIT compiler.\n return isFunction(value) && !!value[ɵNG_MOD_DEF];\n}\n\nfunction isParentNode(node: Node|ParentNode): node is ParentNode {\n return isFunction((node as unknown as ParentNode).querySelectorAll);\n}\n\nexport function validateInjectionKey(\n $injector: IInjectorService, downgradedModule: string, injectionKey: string,\n attemptedAction: string): void {\n const upgradeAppType = getUpgradeAppType($injector);\n const downgradedModuleCount = getDowngradedModuleCount($injector);\n\n // Check for common errors.\n switch (upgradeAppType) {\n case UpgradeAppType.Dynamic:\n case UpgradeAppType.Static:\n if (downgradedModule) {\n throw new Error(\n `Error while ${attemptedAction}: 'downgradedModule' unexpectedly specified.\\n` +\n 'You should not specify a value for \\'downgradedModule\\', unless you are downgrading ' +\n 'more than one Angular module (via \\'downgradeModule()\\').');\n }\n break;\n case UpgradeAppType.Lite:\n if (!downgradedModule && (downgradedModuleCount >= 2)) {\n throw new Error(\n `Error while ${attemptedAction}: 'downgradedModule' not specified.\\n` +\n 'This application contains more than one downgraded Angular module, thus you need to ' +\n 'always specify \\'downgradedModule\\' when downgrading components and injectables.');\n }\n\n if (!$injector.has(injectionKey)) {\n throw new Error(\n `Error while ${attemptedAction}: Unable to find the specified downgraded module.\\n` +\n 'Did you forget to downgrade an Angular module or include it in the AngularJS ' +\n 'application?');\n }\n\n break;\n default:\n throw new Error(\n `Error while ${attemptedAction}: Not a valid '@angular/upgrade' application.\\n` +\n 'Did you forget to downgrade an Angular module or include it in the AngularJS ' +\n 'application?');\n }\n}\n\nexport class Deferred {\n promise: Promise;\n resolve!: (value: R|PromiseLike) => void;\n reject!: (error?: any) => void;\n\n constructor() {\n this.promise = new Promise((res, rej) => {\n this.resolve = res;\n this.reject = rej;\n });\n }\n}\n\nexport interface LazyModuleRef {\n injector?: Injector;\n promise?: Promise;\n}\n\nexport const enum UpgradeAppType {\n // App NOT using `@angular/upgrade`. (This should never happen in an `ngUpgrade` app.)\n None,\n\n // App using the deprecated `@angular/upgrade` APIs (a.k.a. dynamic `ngUpgrade`).\n Dynamic,\n\n // App using `@angular/upgrade/static` with `UpgradeModule`.\n Static,\n\n // App using @angular/upgrade/static` with `downgradeModule()` (a.k.a `ngUpgrade`-lite ).\n Lite,\n}\n\n/**\n * @return Whether the passed-in component implements the subset of the\n * `ControlValueAccessor` interface needed for AngularJS `ng-model`\n * compatibility.\n */\nfunction supportsNgModel(component: any) {\n return typeof component.writeValue === 'function' &&\n typeof component.registerOnChange === 'function';\n}\n\n/**\n * Glue the AngularJS `NgModelController` (if it exists) to the component\n * (if it implements the needed subset of the `ControlValueAccessor` interface).\n */\nexport function hookupNgModel(ngModel: INgModelController, component: any) {\n if (ngModel && supportsNgModel(component)) {\n ngModel.$render = () => {\n component.writeValue(ngModel.$viewValue);\n };\n component.registerOnChange(ngModel.$setViewValue.bind(ngModel));\n if (typeof component.registerOnTouched === 'function') {\n component.registerOnTouched(ngModel.$setTouched.bind(ngModel));\n }\n }\n}\n\n/**\n * Test two values for strict equality, accounting for the fact that `NaN !== NaN`.\n */\nexport function strictEquals(val1: any, val2: any): boolean {\n return val1 === val2 || (val1 !== val1 && val2 !== val2);\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ApplicationRef, ChangeDetectorRef, ComponentFactory, ComponentRef, EventEmitter, Injector, OnChanges, SimpleChange, SimpleChanges, StaticProvider, Testability, TestabilityRegistry} from '@angular/core';\n\nimport {IAttributes, IAugmentedJQuery, ICompileService, INgModelController, IParseService, IScope} from './angular1';\nimport {PropertyBinding} from './component_info';\nimport {$SCOPE} from './constants';\nimport {cleanData, getTypeName, hookupNgModel, strictEquals} from './util';\n\nconst INITIAL_VALUE = {\n __UNINITIALIZED__: true\n};\n\nexport class DowngradeComponentAdapter {\n private implementsOnChanges = false;\n private inputChangeCount: number = 0;\n private inputChanges: SimpleChanges = {};\n private componentScope: IScope;\n\n constructor(\n private element: IAugmentedJQuery, private attrs: IAttributes, private scope: IScope,\n private ngModel: INgModelController, private parentInjector: Injector,\n private $compile: ICompileService, private $parse: IParseService,\n private componentFactory: ComponentFactory,\n private wrapCallback: (cb: () => T) => () => T) {\n this.componentScope = scope.$new();\n }\n\n compileContents(): Node[][] {\n const compiledProjectableNodes: Node[][] = [];\n const projectableNodes: Node[][] = this.groupProjectableNodes();\n const linkFns = projectableNodes.map(nodes => this.$compile(nodes));\n\n this.element.empty!();\n\n linkFns.forEach(linkFn => {\n linkFn(this.scope, (clone: Node[]) => {\n compiledProjectableNodes.push(clone);\n this.element.append!(clone);\n });\n });\n\n return compiledProjectableNodes;\n }\n\n createComponentAndSetup(\n projectableNodes: Node[][], manuallyAttachView = false,\n propagateDigest = true): ComponentRef {\n const component = this.createComponent(projectableNodes);\n this.setupInputs(manuallyAttachView, propagateDigest, component);\n this.setupOutputs(component.componentRef);\n this.registerCleanup(component.componentRef);\n\n return component.componentRef;\n }\n\n private createComponent(projectableNodes: Node[][]): ComponentInfo {\n const providers: StaticProvider[] = [{provide: $SCOPE, useValue: this.componentScope}];\n const childInjector = Injector.create(\n {providers: providers, parent: this.parentInjector, name: 'DowngradeComponentAdapter'});\n\n const componentRef =\n this.componentFactory.create(childInjector, projectableNodes, this.element[0]);\n const viewChangeDetector = componentRef.injector.get(ChangeDetectorRef);\n const changeDetector = componentRef.changeDetectorRef;\n\n // testability hook is commonly added during component bootstrap in\n // packages/core/src/application_ref.bootstrap()\n // in downgraded application, component creation will take place here as well as adding the\n // testability hook.\n const testability = componentRef.injector.get(Testability, null);\n if (testability) {\n componentRef.injector.get(TestabilityRegistry)\n .registerApplication(componentRef.location.nativeElement, testability);\n }\n\n hookupNgModel(this.ngModel, componentRef.instance);\n\n return {viewChangeDetector, componentRef, changeDetector};\n }\n\n private setupInputs(\n manuallyAttachView: boolean, propagateDigest = true,\n {componentRef, changeDetector, viewChangeDetector}: ComponentInfo): void {\n const attrs = this.attrs;\n const inputs = this.componentFactory.inputs || [];\n for (const input of inputs) {\n const inputBinding = new PropertyBinding(input.propName, input.templateName);\n let expr: string|null = null;\n\n if (attrs.hasOwnProperty(inputBinding.attr)) {\n const observeFn = (prop => {\n let prevValue = INITIAL_VALUE;\n return (currValue: any) => {\n // Initially, both `$observe()` and `$watch()` will call this function.\n if (!strictEquals(prevValue, currValue)) {\n if (prevValue === INITIAL_VALUE) {\n prevValue = currValue;\n }\n\n this.updateInput(componentRef, prop, prevValue, currValue);\n prevValue = currValue;\n }\n };\n })(inputBinding.prop);\n attrs.$observe(inputBinding.attr, observeFn);\n\n // Use `$watch()` (in addition to `$observe()`) in order to initialize the input in time\n // for `ngOnChanges()`. This is necessary if we are already in a `$digest`, which means that\n // `ngOnChanges()` (which is called by a watcher) will run before the `$observe()` callback.\n let unwatch: Function|null = this.componentScope.$watch(() => {\n unwatch!();\n unwatch = null;\n observeFn(attrs[inputBinding.attr]);\n });\n } else if (attrs.hasOwnProperty(inputBinding.bindAttr)) {\n expr = attrs[inputBinding.bindAttr];\n } else if (attrs.hasOwnProperty(inputBinding.bracketAttr)) {\n expr = attrs[inputBinding.bracketAttr];\n } else if (attrs.hasOwnProperty(inputBinding.bindonAttr)) {\n expr = attrs[inputBinding.bindonAttr];\n } else if (attrs.hasOwnProperty(inputBinding.bracketParenAttr)) {\n expr = attrs[inputBinding.bracketParenAttr];\n }\n if (expr != null) {\n const watchFn =\n ((prop) => (currValue: unknown, prevValue: unknown) =>\n this.updateInput(componentRef, prop, prevValue, currValue))(inputBinding.prop);\n this.componentScope.$watch(expr, watchFn);\n }\n }\n\n // Invoke `ngOnChanges()` and Change Detection (when necessary)\n const detectChanges = () => changeDetector.detectChanges();\n const prototype = this.componentFactory.componentType.prototype;\n this.implementsOnChanges = !!(prototype && (prototype).ngOnChanges);\n\n this.componentScope.$watch(() => this.inputChangeCount, this.wrapCallback(() => {\n // Invoke `ngOnChanges()`\n if (this.implementsOnChanges) {\n const inputChanges = this.inputChanges;\n this.inputChanges = {};\n (componentRef.instance).ngOnChanges(inputChanges);\n }\n\n viewChangeDetector.markForCheck();\n\n // If opted out of propagating digests, invoke change detection when inputs change.\n if (!propagateDigest) {\n detectChanges();\n }\n }));\n\n // If not opted out of propagating digests, invoke change detection on every digest\n if (propagateDigest) {\n this.componentScope.$watch(this.wrapCallback(detectChanges));\n }\n\n // If necessary, attach the view so that it will be dirty-checked.\n // (Allow time for the initial input values to be set and `ngOnChanges()` to be called.)\n if (manuallyAttachView || !propagateDigest) {\n let unwatch: Function|null = this.componentScope.$watch(() => {\n unwatch!();\n unwatch = null;\n\n const appRef = this.parentInjector.get(ApplicationRef);\n appRef.attachView(componentRef.hostView);\n });\n }\n }\n\n private setupOutputs(componentRef: ComponentRef) {\n const attrs = this.attrs;\n const outputs = this.componentFactory.outputs || [];\n for (const output of outputs) {\n const outputBindings = new PropertyBinding(output.propName, output.templateName);\n const bindonAttr =\n outputBindings.bindonAttr.substring(0, outputBindings.bindonAttr.length - 6);\n const bracketParenAttr = `[(${\n outputBindings.bracketParenAttr.substring(\n 2, outputBindings.bracketParenAttr.length - 8)})]`;\n // order below is important - first update bindings then evaluate expressions\n if (attrs.hasOwnProperty(bindonAttr)) {\n this.subscribeToOutput(componentRef, outputBindings, attrs[bindonAttr], true);\n }\n if (attrs.hasOwnProperty(bracketParenAttr)) {\n this.subscribeToOutput(componentRef, outputBindings, attrs[bracketParenAttr], true);\n }\n if (attrs.hasOwnProperty(outputBindings.onAttr)) {\n this.subscribeToOutput(componentRef, outputBindings, attrs[outputBindings.onAttr]);\n }\n if (attrs.hasOwnProperty(outputBindings.parenAttr)) {\n this.subscribeToOutput(componentRef, outputBindings, attrs[outputBindings.parenAttr]);\n }\n }\n }\n\n private subscribeToOutput(\n componentRef: ComponentRef, output: PropertyBinding, expr: string,\n isAssignment: boolean = false) {\n const getter = this.$parse(expr);\n const setter = getter.assign;\n if (isAssignment && !setter) {\n throw new Error(`Expression '${expr}' is not assignable!`);\n }\n const emitter = componentRef.instance[output.prop] as EventEmitter;\n if (emitter) {\n const subscription = emitter.subscribe({\n next: isAssignment ? (v: any) => setter!(this.scope, v) :\n (v: any) => getter(this.scope, {'$event': v})\n });\n componentRef.onDestroy(() => subscription.unsubscribe());\n } else {\n throw new Error(`Missing emitter '${output.prop}' on component '${\n getTypeName(this.componentFactory.componentType)}'!`);\n }\n }\n\n private registerCleanup(componentRef: ComponentRef) {\n const testabilityRegistry = componentRef.injector.get(TestabilityRegistry);\n const destroyComponentRef = this.wrapCallback(() => componentRef.destroy());\n let destroyed = false;\n\n this.element.on!('$destroy', () => {\n // The `$destroy` event may have been triggered by the `cleanData()` call in the\n // `componentScope` `$destroy` handler below. In that case, we don't want to call\n // `componentScope.$destroy()` again.\n if (!destroyed) this.componentScope.$destroy();\n });\n this.componentScope.$on('$destroy', () => {\n if (!destroyed) {\n destroyed = true;\n testabilityRegistry.unregisterApplication(componentRef.location.nativeElement);\n\n // The `componentScope` might be getting destroyed, because an ancestor element is being\n // removed/destroyed. If that is the case, jqLite/jQuery would normally invoke `cleanData()`\n // on the removed element and all descendants.\n // https://github.com/angular/angular.js/blob/2e72ea13fa98bebf6ed4b5e3c45eaf5f990ed16f/src/jqLite.js#L349-L355\n // https://github.com/jquery/jquery/blob/6984d1747623dbc5e87fd6c261a5b6b1628c107c/src/manipulation.js#L182\n //\n // Here, however, `destroyComponentRef()` may under some circumstances remove the element\n // from the DOM and therefore it will no longer be a descendant of the removed element when\n // `cleanData()` is called. This would result in a memory leak, because the element's data\n // and event handlers (and all objects directly or indirectly referenced by them) would be\n // retained.\n //\n // To ensure the element is always properly cleaned up, we manually call `cleanData()` on\n // this element and its descendants before destroying the `ComponentRef`.\n cleanData(this.element[0]);\n\n destroyComponentRef();\n }\n });\n }\n\n private updateInput(\n componentRef: ComponentRef, prop: string, prevValue: any, currValue: any) {\n if (this.implementsOnChanges) {\n this.inputChanges[prop] = new SimpleChange(prevValue, currValue, prevValue === currValue);\n }\n\n this.inputChangeCount++;\n componentRef.instance[prop] = currValue;\n }\n\n private groupProjectableNodes() {\n let ngContentSelectors = this.componentFactory.ngContentSelectors;\n return groupNodesBySelector(ngContentSelectors, this.element.contents!());\n }\n}\n\n/**\n * Group a set of DOM nodes into `ngContent` groups, based on the given content selectors.\n */\nexport function groupNodesBySelector(ngContentSelectors: string[], nodes: Node[]): Node[][] {\n const projectableNodes: Node[][] = [];\n\n for (let i = 0, ii = ngContentSelectors.length; i < ii; ++i) {\n projectableNodes[i] = [];\n }\n\n for (let j = 0, jj = nodes.length; j < jj; ++j) {\n const node = nodes[j];\n const ngContentIndex = findMatchingNgContentIndex(node, ngContentSelectors);\n if (ngContentIndex != null) {\n projectableNodes[ngContentIndex].push(node);\n }\n }\n\n return projectableNodes;\n}\n\nfunction findMatchingNgContentIndex(element: any, ngContentSelectors: string[]): number|null {\n const ngContentIndices: number[] = [];\n let wildcardNgContentIndex: number = -1;\n for (let i = 0; i < ngContentSelectors.length; i++) {\n const selector = ngContentSelectors[i];\n if (selector === '*') {\n wildcardNgContentIndex = i;\n } else {\n if (matchesSelector(element, selector)) {\n ngContentIndices.push(i);\n }\n }\n }\n ngContentIndices.sort();\n\n if (wildcardNgContentIndex !== -1) {\n ngContentIndices.push(wildcardNgContentIndex);\n }\n return ngContentIndices.length ? ngContentIndices[0] : null;\n}\n\nfunction matchesSelector(el: any, selector: string): boolean {\n const elProto = Element.prototype;\n\n return el.nodeType === Node.ELEMENT_NODE\n // matches is supported by all browsers from 2014 onwards except non-chromium edge\n ?\n (elProto.matches ?? elProto.msMatchesSelector).call(el, selector) :\n false;\n}\n\ninterface ComponentInfo {\n componentRef: ComponentRef;\n changeDetector: ChangeDetectorRef;\n viewChangeDetector: ChangeDetectorRef;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {isFunction} from './util';\n\nexport interface Thenable {\n then(callback: (value: T) => any): any;\n}\n\nexport function isThenable(obj: unknown): obj is Thenable {\n return !!obj && isFunction((obj as any).then);\n}\n\n/**\n * Synchronous, promise-like object.\n */\nexport class SyncPromise {\n protected value: T|undefined;\n private resolved = false;\n private callbacks: ((value: T) => unknown)[] = [];\n\n static all(valuesOrPromises: (T|Thenable)[]): SyncPromise {\n const aggrPromise = new SyncPromise();\n\n let resolvedCount = 0;\n const results: T[] = [];\n const resolve = (idx: number, value: T) => {\n results[idx] = value;\n if (++resolvedCount === valuesOrPromises.length) aggrPromise.resolve(results);\n };\n\n valuesOrPromises.forEach((p, idx) => {\n if (isThenable(p)) {\n p.then(v => resolve(idx, v));\n } else {\n resolve(idx, p);\n }\n });\n\n return aggrPromise;\n }\n\n resolve(value: T): void {\n // Do nothing, if already resolved.\n if (this.resolved) return;\n\n this.value = value;\n this.resolved = true;\n\n // Run the queued callbacks.\n this.callbacks.forEach(callback => callback(value));\n this.callbacks.length = 0;\n }\n\n then(callback: (value: T) => unknown): void {\n if (this.resolved) {\n callback(this.value!);\n } else {\n this.callbacks.push(callback);\n }\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ComponentFactory, ComponentFactoryResolver, Injector, NgZone, Type} from '@angular/core';\n\nimport {IAnnotatedFunction, IAttributes, IAugmentedJQuery, ICompileService, IDirective, IInjectorService, INgModelController, IParseService, IScope} from './angular1';\nimport {$COMPILE, $INJECTOR, $PARSE, INJECTOR_KEY, LAZY_MODULE_REF, REQUIRE_INJECTOR, REQUIRE_NG_MODEL} from './constants';\nimport {DowngradeComponentAdapter} from './downgrade_component_adapter';\nimport {SyncPromise, Thenable} from './promise_util';\nimport {controllerKey, getDowngradedModuleCount, getTypeName, getUpgradeAppType, LazyModuleRef, UpgradeAppType, validateInjectionKey} from './util';\n\n\n/**\n * @description\n *\n * A helper function that allows an Angular component to be used from AngularJS.\n *\n * *Part of the [upgrade/static](api?query=upgrade%2Fstatic)\n * library for hybrid upgrade apps that support AOT compilation*\n *\n * This helper function returns a factory function to be used for registering\n * an AngularJS wrapper directive for \"downgrading\" an Angular component.\n *\n * @usageNotes\n * ### Examples\n *\n * Let's assume that you have an Angular component called `ng2Heroes` that needs\n * to be made available in AngularJS templates.\n *\n * {@example upgrade/static/ts/full/module.ts region=\"ng2-heroes\"}\n *\n * We must create an AngularJS [directive](https://docs.angularjs.org/guide/directive)\n * that will make this Angular component available inside AngularJS templates.\n * The `downgradeComponent()` function returns a factory function that we\n * can use to define the AngularJS directive that wraps the \"downgraded\" component.\n *\n * {@example upgrade/static/ts/full/module.ts region=\"ng2-heroes-wrapper\"}\n *\n * For more details and examples on downgrading Angular components to AngularJS components please\n * visit the [Upgrade guide](guide/upgrade#using-angular-components-from-angularjs-code).\n *\n * @param info contains information about the Component that is being downgraded:\n *\n * - `component: Type`: The type of the Component that will be downgraded\n * - `downgradedModule?: string`: The name of the downgraded module (if any) that the component\n * \"belongs to\", as returned by a call to `downgradeModule()`. It is the module, whose\n * corresponding Angular module will be bootstrapped, when the component needs to be instantiated.\n *
\n * (This option is only necessary when using `downgradeModule()` to downgrade more than one\n * Angular module.)\n * - `propagateDigest?: boolean`: Whether to perform {@link ChangeDetectorRef#detectChanges} on the\n * component on every\n * [$digest](https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$digest). If set to `false`,\n * change detection will still be performed when any of the component's inputs changes.\n * (Default: true)\n *\n * @returns a factory function that can be used to register the component in an\n * AngularJS module.\n *\n * @publicApi\n */\nexport function downgradeComponent(info: {\n component: Type;\n downgradedModule?: string;\n propagateDigest?: boolean;\n /** @deprecated since v4. This parameter is no longer used */\n inputs?: string[];\n /** @deprecated since v4. This parameter is no longer used */\n outputs?: string[];\n /** @deprecated since v4. This parameter is no longer used */\n selectors?: string[];\n}): any /* angular.IInjectable */ {\n const directiveFactory: IAnnotatedFunction = function(\n $compile: ICompileService, $injector: IInjectorService, $parse: IParseService): IDirective {\n // When using `downgradeModule()`, we need to handle certain things specially. For example:\n // - We always need to attach the component view to the `ApplicationRef` for it to be\n // dirty-checked.\n // - We need to ensure callbacks to Angular APIs (e.g. change detection) are run inside the\n // Angular zone.\n // NOTE: This is not needed, when using `UpgradeModule`, because `$digest()` will be run\n // inside the Angular zone (except if explicitly escaped, in which case we shouldn't\n // force it back in).\n const isNgUpgradeLite = getUpgradeAppType($injector) === UpgradeAppType.Lite;\n const wrapCallback: (cb: () => T) => typeof cb =\n !isNgUpgradeLite ? cb => cb : cb => () => NgZone.isInAngularZone() ? cb() : ngZone.run(cb);\n let ngZone: NgZone;\n\n // When downgrading multiple modules, special handling is needed wrt injectors.\n const hasMultipleDowngradedModules =\n isNgUpgradeLite && (getDowngradedModuleCount($injector) > 1);\n\n return {\n restrict: 'E',\n terminal: true,\n require: [REQUIRE_INJECTOR, REQUIRE_NG_MODEL],\n // Controller needs to be set so that `angular-component-router.js` (from beta Angular 2)\n // configuration properties can be made available. See:\n // See G3: javascript/angular2/angular1_router_lib.js\n // https://github.com/angular/angular.js/blob/47bf11ee94664367a26ed8c91b9b586d3dd420f5/src/ng/compile.js#L1670-L1691.\n controller: function() {},\n link: (scope: IScope, element: IAugmentedJQuery, attrs: IAttributes, required: any[]) => {\n // We might have to compile the contents asynchronously, because this might have been\n // triggered by `UpgradeNg1ComponentAdapterBuilder`, before the Angular templates have\n // been compiled.\n\n const ngModel: INgModelController = required[1];\n const parentInjector: Injector|Thenable|undefined = required[0];\n let moduleInjector: Injector|Thenable|undefined = undefined;\n let ranAsync = false;\n\n if (!parentInjector || hasMultipleDowngradedModules) {\n const downgradedModule = info.downgradedModule || '';\n const lazyModuleRefKey = `${LAZY_MODULE_REF}${downgradedModule}`;\n const attemptedAction = `instantiating component '${getTypeName(info.component)}'`;\n\n validateInjectionKey($injector, downgradedModule, lazyModuleRefKey, attemptedAction);\n\n const lazyModuleRef = $injector.get(lazyModuleRefKey) as LazyModuleRef;\n moduleInjector = lazyModuleRef.injector ?? lazyModuleRef.promise;\n }\n\n // Notes:\n //\n // There are two injectors: `finalModuleInjector` and `finalParentInjector` (they might be\n // the same instance, but that is irrelevant):\n // - `finalModuleInjector` is used to retrieve `ComponentFactoryResolver`, thus it must be\n // on the same tree as the `NgModule` that declares this downgraded component.\n // - `finalParentInjector` is used for all other injection purposes.\n // (Note that Angular knows to only traverse the component-tree part of that injector,\n // when looking for an injectable and then switch to the module injector.)\n //\n // There are basically three cases:\n // - If there is no parent component (thus no `parentInjector`), we bootstrap the downgraded\n // `NgModule` and use its injector as both `finalModuleInjector` and\n // `finalParentInjector`.\n // - If there is a parent component (and thus a `parentInjector`) and we are sure that it\n // belongs to the same `NgModule` as this downgraded component (e.g. because there is only\n // one downgraded module, we use that `parentInjector` as both `finalModuleInjector` and\n // `finalParentInjector`.\n // - If there is a parent component, but it may belong to a different `NgModule`, then we\n // use the `parentInjector` as `finalParentInjector` and this downgraded component's\n // declaring `NgModule`'s injector as `finalModuleInjector`.\n // Note 1: If the `NgModule` is already bootstrapped, we just get its injector (we don't\n // bootstrap again).\n // Note 2: It is possible that (while there are multiple downgraded modules) this\n // downgraded component and its parent component both belong to the same NgModule.\n // In that case, we could have used the `parentInjector` as both\n // `finalModuleInjector` and `finalParentInjector`, but (for simplicity) we are\n // treating this case as if they belong to different `NgModule`s. That doesn't\n // really affect anything, since `parentInjector` has `moduleInjector` as ancestor\n // and trying to resolve `ComponentFactoryResolver` from either one will return\n // the same instance.\n\n // If there is a parent component, use its injector as parent injector.\n // If this is a \"top-level\" Angular component, use the module injector.\n const finalParentInjector = parentInjector || moduleInjector!;\n\n // If this is a \"top-level\" Angular component or the parent component may belong to a\n // different `NgModule`, use the module injector for module-specific dependencies.\n // If there is a parent component that belongs to the same `NgModule`, use its injector.\n const finalModuleInjector = moduleInjector || parentInjector!;\n\n const doDowngrade = (injector: Injector, moduleInjector: Injector) => {\n // Retrieve `ComponentFactoryResolver` from the injector tied to the `NgModule` this\n // component belongs to.\n const componentFactoryResolver: ComponentFactoryResolver =\n moduleInjector.get(ComponentFactoryResolver);\n const componentFactory: ComponentFactory =\n componentFactoryResolver.resolveComponentFactory(info.component)!;\n\n if (!componentFactory) {\n throw new Error(`Expecting ComponentFactory for: ${getTypeName(info.component)}`);\n }\n\n const injectorPromise = new ParentInjectorPromise(element);\n const facade = new DowngradeComponentAdapter(\n element, attrs, scope, ngModel, injector, $compile, $parse, componentFactory,\n wrapCallback);\n\n const projectableNodes = facade.compileContents();\n const componentRef = facade.createComponentAndSetup(\n projectableNodes, isNgUpgradeLite, info.propagateDigest);\n\n injectorPromise.resolve(componentRef.injector);\n\n if (ranAsync) {\n // If this is run async, it is possible that it is not run inside a\n // digest and initial input values will not be detected.\n scope.$evalAsync(() => {});\n }\n };\n\n const downgradeFn =\n !isNgUpgradeLite ? doDowngrade : (pInjector: Injector, mInjector: Injector) => {\n if (!ngZone) {\n ngZone = pInjector.get(NgZone);\n }\n\n wrapCallback(() => doDowngrade(pInjector, mInjector))();\n };\n\n // NOTE:\n // Not using `ParentInjectorPromise.all()` (which is inherited from `SyncPromise`), because\n // Closure Compiler (or some related tool) complains:\n // `TypeError: ...$src$downgrade_component_ParentInjectorPromise.all is not a function`\n SyncPromise.all([finalParentInjector, finalModuleInjector])\n .then(([pInjector, mInjector]) => downgradeFn(pInjector, mInjector));\n\n ranAsync = true;\n }\n };\n };\n\n // bracket-notation because of closure - see #14441\n directiveFactory['$inject'] = [$COMPILE, $INJECTOR, $PARSE];\n return directiveFactory;\n}\n\n/**\n * Synchronous promise-like object to wrap parent injectors,\n * to preserve the synchronous nature of AngularJS's `$compile`.\n */\nclass ParentInjectorPromise extends SyncPromise {\n private injectorKey: string = controllerKey(INJECTOR_KEY);\n\n constructor(private element: IAugmentedJQuery) {\n super();\n\n // Store the promise on the element.\n element.data!(this.injectorKey, this);\n }\n\n override resolve(injector: Injector): void {\n // Store the real injector on the element.\n this.element.data!(this.injectorKey, injector);\n\n // Release the element to prevent memory leaks.\n this.element = null!;\n\n // Resolve the promise.\n super.resolve(injector);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Injector} from '@angular/core';\n\nimport {IInjectorService} from './angular1';\nimport {$INJECTOR, INJECTOR_KEY} from './constants';\nimport {getTypeName, isFunction, validateInjectionKey} from './util';\n\n/**\n * @description\n *\n * A helper function to allow an Angular service to be accessible from AngularJS.\n *\n * *Part of the [upgrade/static](api?query=upgrade%2Fstatic)\n * library for hybrid upgrade apps that support AOT compilation*\n *\n * This helper function returns a factory function that provides access to the Angular\n * service identified by the `token` parameter.\n *\n * @usageNotes\n * ### Examples\n *\n * First ensure that the service to be downgraded is provided in an `NgModule`\n * that will be part of the upgrade application. For example, let's assume we have\n * defined `HeroesService`\n *\n * {@example upgrade/static/ts/full/module.ts region=\"ng2-heroes-service\"}\n *\n * and that we have included this in our upgrade app `NgModule`\n *\n * {@example upgrade/static/ts/full/module.ts region=\"ng2-module\"}\n *\n * Now we can register the `downgradeInjectable` factory function for the service\n * on an AngularJS module.\n *\n * {@example upgrade/static/ts/full/module.ts region=\"downgrade-ng2-heroes-service\"}\n *\n * Inside an AngularJS component's controller we can get hold of the\n * downgraded service via the name we gave when downgrading.\n *\n * {@example upgrade/static/ts/full/module.ts region=\"example-app\"}\n *\n *
\n *\n * When using `downgradeModule()`, downgraded injectables will not be available until the Angular\n * module that provides them is instantiated. In order to be safe, you need to ensure that the\n * downgraded injectables are not used anywhere _outside_ the part of the app where it is\n * guaranteed that their module has been instantiated.\n *\n * For example, it is _OK_ to use a downgraded service in an upgraded component that is only used\n * from a downgraded Angular component provided by the same Angular module as the injectable, but\n * it is _not OK_ to use it in an AngularJS component that may be used independently of Angular or\n * use it in a downgraded Angular component from a different module.\n *\n *
\n *\n * @param token an `InjectionToken` that identifies a service provided from Angular.\n * @param downgradedModule the name of the downgraded module (if any) that the injectable\n * \"belongs to\", as returned by a call to `downgradeModule()`. It is the module, whose injector will\n * be used for instantiating the injectable.
\n * (This option is only necessary when using `downgradeModule()` to downgrade more than one Angular\n * module.)\n *\n * @returns a [factory function](https://docs.angularjs.org/guide/di) that can be\n * used to register the service on an AngularJS module.\n *\n * @publicApi\n */\nexport function downgradeInjectable(token: any, downgradedModule: string = ''): Function {\n const factory = function($injector: IInjectorService) {\n const injectorKey = `${INJECTOR_KEY}${downgradedModule}`;\n const injectableName = isFunction(token) ? getTypeName(token) : String(token);\n const attemptedAction = `instantiating injectable '${injectableName}'`;\n\n validateInjectionKey($injector, downgradedModule, injectorKey, attemptedAction);\n\n try {\n const injector: Injector = $injector.get(injectorKey);\n return injector.get(token);\n } catch (err) {\n throw new Error(`Error while ${attemptedAction}: ${(err as Error).message || err}`);\n }\n };\n (factory as any)['$inject'] = [$INJECTOR];\n\n return factory;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ElementRef, Injector, SimpleChanges} from '@angular/core';\n\nimport {DirectiveRequireProperty, element as angularElement, IAugmentedJQuery, ICloneAttachFunction, ICompileService, IController, IControllerService, IDirective, IHttpBackendService, IInjectorService, ILinkFn, IScope, ITemplateCacheService, SingleOrListOrMap} from './angular1';\nimport {$COMPILE, $CONTROLLER, $HTTP_BACKEND, $INJECTOR, $TEMPLATE_CACHE} from './constants';\nimport {cleanData, controllerKey, directiveNormalize, isFunction} from './util';\n\n\n\n// Constants\nconst REQUIRE_PREFIX_RE = /^(\\^\\^?)?(\\?)?(\\^\\^?)?/;\n\n// Interfaces\nexport interface IBindingDestination {\n [key: string]: any;\n $onChanges?: (changes: SimpleChanges) => void;\n}\n\nexport interface IControllerInstance extends IBindingDestination {\n $doCheck?: () => void;\n $onDestroy?: () => void;\n $onInit?: () => void;\n $postLink?: () => void;\n}\n\n// Classes\nexport class UpgradeHelper {\n public readonly $injector: IInjectorService;\n public readonly element: Element;\n public readonly $element: IAugmentedJQuery;\n public readonly directive: IDirective;\n\n private readonly $compile: ICompileService;\n private readonly $controller: IControllerService;\n\n constructor(\n injector: Injector, private name: string, elementRef: ElementRef, directive?: IDirective) {\n this.$injector = injector.get($INJECTOR);\n this.$compile = this.$injector.get($COMPILE);\n this.$controller = this.$injector.get($CONTROLLER);\n\n this.element = elementRef.nativeElement;\n this.$element = angularElement(this.element);\n\n this.directive = directive ?? UpgradeHelper.getDirective(this.$injector, name);\n }\n\n static getDirective($injector: IInjectorService, name: string): IDirective {\n const directives: IDirective[] = $injector.get(name + 'Directive');\n if (directives.length > 1) {\n throw new Error(`Only support single directive definition for: ${name}`);\n }\n\n const directive = directives[0];\n\n // AngularJS will transform `link: xyz` to `compile: () => xyz`. So we can only tell there was a\n // user-defined `compile` if there is no `link`. In other cases, we will just ignore `compile`.\n if (directive.compile && !directive.link) notSupported(name, 'compile');\n if (directive.replace) notSupported(name, 'replace');\n if (directive.terminal) notSupported(name, 'terminal');\n\n return directive;\n }\n\n static getTemplate(\n $injector: IInjectorService, directive: IDirective, fetchRemoteTemplate = false,\n $element?: IAugmentedJQuery): string|Promise {\n if (directive.template !== undefined) {\n return getOrCall(directive.template, $element);\n } else if (directive.templateUrl) {\n const $templateCache = $injector.get($TEMPLATE_CACHE) as ITemplateCacheService;\n const url = getOrCall(directive.templateUrl, $element);\n const template = $templateCache.get(url);\n\n if (template !== undefined) {\n return template;\n } else if (!fetchRemoteTemplate) {\n throw new Error('loading directive templates asynchronously is not supported');\n }\n\n return new Promise((resolve, reject) => {\n const $httpBackend = $injector.get($HTTP_BACKEND) as IHttpBackendService;\n $httpBackend('GET', url, null, (status: number, response: string) => {\n if (status === 200) {\n resolve($templateCache.put(url, response));\n } else {\n reject(`GET component template from '${url}' returned '${status}: ${response}'`);\n }\n });\n });\n } else {\n throw new Error(`Directive '${directive.name}' is not a component, it is missing template.`);\n }\n }\n\n buildController(controllerType: IController, $scope: IScope) {\n // TODO: Document that we do not pre-assign bindings on the controller instance.\n // Quoted properties below so that this code can be optimized with Closure Compiler.\n const locals = {'$scope': $scope, '$element': this.$element};\n const controller = this.$controller(controllerType, locals, null, this.directive.controllerAs);\n\n this.$element.data?.(controllerKey(this.directive.name!), controller);\n\n return controller;\n }\n\n compileTemplate(template?: string): ILinkFn {\n if (template === undefined) {\n template =\n UpgradeHelper.getTemplate(this.$injector, this.directive, false, this.$element) as string;\n }\n\n return this.compileHtml(template);\n }\n\n onDestroy($scope: IScope, controllerInstance?: any) {\n if (controllerInstance && isFunction(controllerInstance.$onDestroy)) {\n controllerInstance.$onDestroy();\n }\n $scope.$destroy();\n cleanData(this.element);\n }\n\n prepareTransclusion(): ILinkFn|undefined {\n const transclude = this.directive.transclude;\n const contentChildNodes = this.extractChildNodes();\n const attachChildrenFn: ILinkFn = (scope, cloneAttachFn) => {\n // Since AngularJS v1.5.8, `cloneAttachFn` will try to destroy the transclusion scope if\n // `$template` is empty. Since the transcluded content comes from Angular, not AngularJS,\n // there will be no transclusion scope here.\n // Provide a dummy `scope.$destroy()` method to prevent `cloneAttachFn` from throwing.\n scope = scope || {$destroy: () => undefined};\n return cloneAttachFn!($template, scope);\n };\n let $template = contentChildNodes;\n\n if (transclude) {\n const slots = Object.create(null);\n\n if (typeof transclude === 'object') {\n $template = [];\n\n const slotMap = Object.create(null);\n const filledSlots = Object.create(null);\n\n // Parse the element selectors.\n Object.keys(transclude).forEach(slotName => {\n let selector = transclude[slotName];\n const optional = selector.charAt(0) === '?';\n selector = optional ? selector.substring(1) : selector;\n\n slotMap[selector] = slotName;\n slots[slotName] = null; // `null`: Defined but not yet filled.\n filledSlots[slotName] = optional; // Consider optional slots as filled.\n });\n\n // Add the matching elements into their slot.\n contentChildNodes.forEach(node => {\n const slotName = slotMap[directiveNormalize(node.nodeName.toLowerCase())];\n if (slotName) {\n filledSlots[slotName] = true;\n slots[slotName] = slots[slotName] || [];\n slots[slotName].push(node);\n } else {\n $template.push(node);\n }\n });\n\n // Check for required slots that were not filled.\n Object.keys(filledSlots).forEach(slotName => {\n if (!filledSlots[slotName]) {\n throw new Error(`Required transclusion slot '${slotName}' on directive: ${this.name}`);\n }\n });\n\n Object.keys(slots).filter(slotName => slots[slotName]).forEach(slotName => {\n const nodes = slots[slotName];\n slots[slotName] = (scope: IScope, cloneAttach: ICloneAttachFunction) => {\n return cloneAttach!(nodes, scope);\n };\n });\n }\n\n // Attach `$$slots` to default slot transclude fn.\n attachChildrenFn.$$slots = slots;\n\n // AngularJS v1.6+ ignores empty or whitespace-only transcluded text nodes. But Angular\n // removes all text content after the first interpolation and updates it later, after\n // evaluating the expressions. This would result in AngularJS failing to recognize text\n // nodes that start with an interpolation as transcluded content and use the fallback\n // content instead.\n // To avoid this issue, we add a\n // [zero-width non-joiner character](https://en.wikipedia.org/wiki/Zero-width_non-joiner)\n // to empty text nodes (which can only be a result of Angular removing their initial content).\n // NOTE: Transcluded text content that starts with whitespace followed by an interpolation\n // will still fail to be detected by AngularJS v1.6+\n $template.forEach(node => {\n if (node.nodeType === Node.TEXT_NODE && !node.nodeValue) {\n node.nodeValue = '\\u200C';\n }\n });\n }\n\n return attachChildrenFn;\n }\n\n resolveAndBindRequiredControllers(controllerInstance: IControllerInstance|null) {\n const directiveRequire = this.getDirectiveRequire();\n const requiredControllers = this.resolveRequire(directiveRequire);\n\n if (controllerInstance && this.directive.bindToController && isMap(directiveRequire)) {\n const requiredControllersMap = requiredControllers as {[key: string]: IControllerInstance};\n Object.keys(requiredControllersMap).forEach(key => {\n controllerInstance[key] = requiredControllersMap[key];\n });\n }\n\n return requiredControllers;\n }\n\n private compileHtml(html: string): ILinkFn {\n this.element.innerHTML = html;\n return this.$compile(this.element.childNodes);\n }\n\n private extractChildNodes(): Node[] {\n const childNodes: Node[] = [];\n let childNode: Node|null;\n\n while (childNode = this.element.firstChild) {\n this.element.removeChild(childNode);\n childNodes.push(childNode);\n }\n\n return childNodes;\n }\n\n private getDirectiveRequire(): DirectiveRequireProperty {\n const require = this.directive.require || (this.directive.controller && this.directive.name)!;\n\n if (isMap(require)) {\n Object.entries(require).forEach(([key, value]) => {\n const match = value.match(REQUIRE_PREFIX_RE)!;\n const name = value.substring(match[0].length);\n\n if (!name) {\n require[key] = match[0] + key;\n }\n });\n }\n\n return require;\n }\n\n private resolveRequire(require: DirectiveRequireProperty):\n SingleOrListOrMap|null {\n if (!require) {\n return null;\n } else if (Array.isArray(require)) {\n return require.map(req => this.resolveRequire(req));\n } else if (typeof require === 'object') {\n const value: {[key: string]: IControllerInstance} = {};\n Object.keys(require).forEach(key => value[key] = this.resolveRequire(require[key])!);\n return value;\n } else if (typeof require === 'string') {\n const match = require.match(REQUIRE_PREFIX_RE)!;\n const inheritType = match[1] || match[3];\n\n const name = require.substring(match[0].length);\n const isOptional = !!match[2];\n const searchParents = !!inheritType;\n const startOnParent = inheritType === '^^';\n\n const ctrlKey = controllerKey(name);\n const elem = startOnParent ? this.$element.parent!() : this.$element;\n const value = searchParents ? elem.inheritedData!(ctrlKey) : elem.data!(ctrlKey);\n\n if (!value && !isOptional) {\n throw new Error(\n `Unable to find required '${require}' in upgraded directive '${this.name}'.`);\n }\n\n return value;\n } else {\n throw new Error(\n `Unrecognized 'require' syntax on upgraded directive '${this.name}': ${require}`);\n }\n }\n}\n\nfunction getOrCall(property: T|Function, ...args: any[]): T {\n return isFunction(property) ? property(...args) : property;\n}\n\n// NOTE: Only works for `typeof T !== 'object'`.\nfunction isMap(value: SingleOrListOrMap): value is {[key: string]: T} {\n return value && !Array.isArray(value) && typeof value === 'object';\n}\n\nfunction notSupported(name: string, feature: string) {\n throw new Error(`Upgraded directive '${name}' contains unsupported feature: '${feature}'.`);\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, DoCheck, ElementRef, EventEmitter, Inject, Injector, OnChanges, OnDestroy, OnInit, SimpleChange, SimpleChanges, Type} from '@angular/core';\n\nimport {IAttributes, IDirective, IInjectorService, ILinkFn, IScope, ITranscludeFunction} from '../../common/src/angular1';\nimport {$SCOPE} from '../../common/src/constants';\nimport {IBindingDestination, IControllerInstance, UpgradeHelper} from '../../common/src/upgrade_helper';\nimport {isFunction, strictEquals} from '../../common/src/util';\n\n\nconst CAMEL_CASE = /([A-Z])/g;\nconst INITIAL_VALUE = {\n __UNINITIALIZED__: true\n};\nconst NOT_SUPPORTED: any = 'NOT_SUPPORTED';\n\nfunction getInputPropertyMapName(name: string): string {\n return `input_${name}`;\n}\n\nfunction getOutputPropertyMapName(name: string): string {\n return `output_${name}`;\n}\n\nexport class UpgradeNg1ComponentAdapterBuilder {\n type: Type;\n inputs: string[] = [];\n inputsRename: string[] = [];\n outputs: string[] = [];\n outputsRename: string[] = [];\n propertyOutputs: string[] = [];\n checkProperties: string[] = [];\n propertyMap: {[name: string]: string} = {};\n directive: IDirective|null = null;\n template!: string;\n\n constructor(public name: string) {\n const selector =\n name.replace(CAMEL_CASE, (all: string, next: string) => '-' + next.toLowerCase());\n const self = this;\n\n @Directive(\n {jit: true, selector: selector, inputs: this.inputsRename, outputs: this.outputsRename})\n class MyClass extends UpgradeNg1ComponentAdapter implements OnInit, OnChanges, DoCheck,\n OnDestroy {\n constructor(@Inject($SCOPE) scope: IScope, injector: Injector, elementRef: ElementRef) {\n super(\n new UpgradeHelper(injector, name, elementRef, self.directive || undefined), scope,\n self.template, self.inputs, self.outputs, self.propertyOutputs, self.checkProperties,\n self.propertyMap) as any;\n }\n }\n this.type = MyClass;\n }\n\n extractBindings() {\n const btcIsObject = typeof this.directive!.bindToController === 'object';\n if (btcIsObject && Object.keys(this.directive!.scope!).length) {\n throw new Error(\n `Binding definitions on scope and controller at the same time are not supported.`);\n }\n\n const context = (btcIsObject) ? this.directive!.bindToController : this.directive!.scope;\n\n if (typeof context == 'object') {\n Object.keys(context).forEach(propName => {\n const definition = context[propName];\n const bindingType = definition.charAt(0);\n const bindingOptions = definition.charAt(1);\n const attrName = definition.substring(bindingOptions === '?' ? 2 : 1) || propName;\n\n // QUESTION: What about `=*`? Ignore? Throw? Support?\n\n const inputName = getInputPropertyMapName(attrName);\n const inputNameRename = `${inputName}: ${attrName}`;\n const outputName = getOutputPropertyMapName(attrName);\n const outputNameRename = `${outputName}: ${attrName}`;\n const outputNameRenameChange = `${outputNameRename}Change`;\n\n switch (bindingType) {\n case '@':\n case '<':\n this.inputs.push(inputName);\n this.inputsRename.push(inputNameRename);\n this.propertyMap[inputName] = propName;\n break;\n case '=':\n this.inputs.push(inputName);\n this.inputsRename.push(inputNameRename);\n this.propertyMap[inputName] = propName;\n\n this.outputs.push(outputName);\n this.outputsRename.push(outputNameRenameChange);\n this.propertyMap[outputName] = propName;\n\n this.checkProperties.push(propName);\n this.propertyOutputs.push(outputName);\n break;\n case '&':\n this.outputs.push(outputName);\n this.outputsRename.push(outputNameRename);\n this.propertyMap[outputName] = propName;\n break;\n default:\n let json = JSON.stringify(context);\n throw new Error(\n `Unexpected mapping '${bindingType}' in '${json}' in '${this.name}' directive.`);\n }\n });\n }\n }\n\n /**\n * Upgrade ng1 components into Angular.\n */\n static resolve(\n exportedComponents: {[name: string]: UpgradeNg1ComponentAdapterBuilder},\n $injector: IInjectorService): Promise {\n const promises = Object.entries(exportedComponents).map(([name, exportedComponent]) => {\n exportedComponent.directive = UpgradeHelper.getDirective($injector, name);\n exportedComponent.extractBindings();\n\n return Promise\n .resolve(UpgradeHelper.getTemplate($injector, exportedComponent.directive, true))\n .then(template => exportedComponent.template = template);\n });\n\n return Promise.all(promises);\n }\n}\n\n@Directive()\nclass UpgradeNg1ComponentAdapter implements OnInit, OnChanges, DoCheck {\n private controllerInstance: IControllerInstance|null = null;\n destinationObj: IBindingDestination|null = null;\n checkLastValues: any[] = [];\n directive: IDirective;\n element: Element;\n $element: any = null;\n componentScope: IScope;\n\n constructor(\n private helper: UpgradeHelper, scope: IScope, private template: string,\n private inputs: string[], private outputs: string[], private propOuts: string[],\n private checkProperties: string[], private propertyMap: {[key: string]: string}) {\n this.directive = helper.directive;\n this.element = helper.element;\n this.$element = helper.$element;\n this.componentScope = scope.$new(!!this.directive.scope);\n\n const controllerType = this.directive.controller;\n\n if (this.directive.bindToController && controllerType) {\n this.controllerInstance = this.helper.buildController(controllerType, this.componentScope);\n this.destinationObj = this.controllerInstance;\n } else {\n this.destinationObj = this.componentScope;\n }\n\n for (const input of this.inputs) {\n (this as any)[input] = null;\n }\n for (const output of this.outputs) {\n const emitter = (this as any)[output] = new EventEmitter();\n if (this.propOuts.indexOf(output) === -1) {\n this.setComponentProperty(\n output, (emitter => (value: any) => emitter.emit(value))(emitter));\n }\n }\n this.checkLastValues.push(...Array(propOuts.length).fill(INITIAL_VALUE));\n }\n\n ngOnInit() {\n // Collect contents, insert and compile template\n const attachChildNodes: ILinkFn|undefined = this.helper.prepareTransclusion();\n const linkFn = this.helper.compileTemplate(this.template);\n\n // Instantiate controller (if not already done so)\n const controllerType = this.directive.controller;\n const bindToController = this.directive.bindToController;\n if (controllerType && !bindToController) {\n this.controllerInstance = this.helper.buildController(controllerType, this.componentScope);\n }\n\n // Require other controllers\n const requiredControllers =\n this.helper.resolveAndBindRequiredControllers(this.controllerInstance);\n\n // Hook: $onInit\n if (this.controllerInstance && isFunction(this.controllerInstance.$onInit)) {\n this.controllerInstance.$onInit();\n }\n\n // Linking\n const link = this.directive.link;\n const preLink = typeof link == 'object' && link.pre;\n const postLink = typeof link == 'object' ? link.post : link;\n const attrs: IAttributes = NOT_SUPPORTED;\n const transcludeFn: ITranscludeFunction = NOT_SUPPORTED;\n if (preLink) {\n preLink(this.componentScope, this.$element, attrs, requiredControllers, transcludeFn);\n }\n\n linkFn(this.componentScope, null!, {parentBoundTranscludeFn: attachChildNodes});\n\n if (postLink) {\n postLink(this.componentScope, this.$element, attrs, requiredControllers, transcludeFn);\n }\n\n // Hook: $postLink\n if (this.controllerInstance && isFunction(this.controllerInstance.$postLink)) {\n this.controllerInstance.$postLink();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const ng1Changes: any = {};\n Object.keys(changes).forEach(propertyMapName => {\n const change: SimpleChange = changes[propertyMapName];\n this.setComponentProperty(propertyMapName, change.currentValue);\n ng1Changes[this.propertyMap[propertyMapName]] = change;\n });\n\n if (isFunction(this.destinationObj!.$onChanges)) {\n this.destinationObj!.$onChanges!(ng1Changes);\n }\n }\n\n ngDoCheck() {\n const destinationObj = this.destinationObj;\n const lastValues = this.checkLastValues;\n const checkProperties = this.checkProperties;\n const propOuts = this.propOuts;\n checkProperties.forEach((propName, i) => {\n const value = destinationObj![propName];\n const last = lastValues[i];\n if (!strictEquals(last, value)) {\n const eventEmitter: EventEmitter = (this as any)[propOuts[i]];\n eventEmitter.emit(lastValues[i] = value);\n }\n });\n\n if (this.controllerInstance && isFunction(this.controllerInstance.$doCheck)) {\n this.controllerInstance.$doCheck();\n }\n }\n\n ngOnDestroy() {\n this.helper.onDestroy(this.componentScope, this.controllerInstance);\n }\n\n setComponentProperty(name: string, value: any) {\n this.destinationObj![this.propertyMap[name]] = value;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Compiler, CompilerOptions, Injector, NgModule, NgModuleRef, NgZone, resolveForwardRef, StaticProvider, Testability, Type} from '@angular/core';\nimport {platformBrowserDynamic} from '@angular/platform-browser-dynamic';\n\nimport {bootstrap, element as angularElement, IAngularBootstrapConfig, IAugmentedJQuery, IInjectorService, IModule, IProvideService, IRootScopeService, ITestabilityService, module_ as angularModule} from '../../common/src/angular1';\nimport {$$TESTABILITY, $COMPILE, $INJECTOR, $ROOT_SCOPE, COMPILER_KEY, INJECTOR_KEY, LAZY_MODULE_REF, NG_ZONE_KEY, UPGRADE_APP_TYPE_KEY} from '../../common/src/constants';\nimport {downgradeComponent} from '../../common/src/downgrade_component';\nimport {downgradeInjectable} from '../../common/src/downgrade_injectable';\nimport {controllerKey, Deferred, destroyApp, LazyModuleRef, onError, UpgradeAppType} from '../../common/src/util';\n\nimport {UpgradeNg1ComponentAdapterBuilder} from './upgrade_ng1_adapter';\n\nlet upgradeCount: number = 0;\n\n/**\n * Use `UpgradeAdapter` to allow AngularJS and Angular to coexist in a single application.\n *\n * The `UpgradeAdapter` allows:\n * 1. creation of Angular component from AngularJS component directive\n * (See {@link UpgradeAdapter#upgradeNg1Component})\n * 2. creation of AngularJS directive from Angular component.\n * (See {@link UpgradeAdapter#downgradeNg2Component})\n * 3. Bootstrapping of a hybrid Angular application which contains both of the frameworks\n * coexisting in a single application.\n *\n * @usageNotes\n * ### Mental Model\n *\n * When reasoning about how a hybrid application works it is useful to have a mental model which\n * describes what is happening and explains what is happening at the lowest level.\n *\n * 1. There are two independent frameworks running in a single application, each framework treats\n * the other as a black box.\n * 2. Each DOM element on the page is owned exactly by one framework. Whichever framework\n * instantiated the element is the owner. Each framework only updates/interacts with its own\n * DOM elements and ignores others.\n * 3. AngularJS directives always execute inside AngularJS framework codebase regardless of\n * where they are instantiated.\n * 4. Angular components always execute inside Angular framework codebase regardless of\n * where they are instantiated.\n * 5. An AngularJS component can be upgraded to an Angular component. This creates an\n * Angular directive, which bootstraps the AngularJS component directive in that location.\n * 6. An Angular component can be downgraded to an AngularJS component directive. This creates\n * an AngularJS directive, which bootstraps the Angular component in that location.\n * 7. Whenever an adapter component is instantiated the host element is owned by the framework\n * doing the instantiation. The other framework then instantiates and owns the view for that\n * component. This implies that component bindings will always follow the semantics of the\n * instantiation framework. The syntax is always that of Angular syntax.\n * 8. AngularJS is always bootstrapped first and owns the bottom most view.\n * 9. The new application is running in Angular zone, and therefore it no longer needs calls to\n * `$apply()`.\n *\n * ### Example\n *\n * ```\n * const adapter = new UpgradeAdapter(forwardRef(() => MyNg2Module), myCompilerOptions);\n * const module = angular.module('myExample', []);\n * module.directive('ng2Comp', adapter.downgradeNg2Component(Ng2Component));\n *\n * module.directive('ng1Hello', function() {\n * return {\n * scope: { title: '=' },\n * template: 'ng1[Hello {{title}}!]()'\n * };\n * });\n *\n *\n * @Component({\n * selector: 'ng2-comp',\n * inputs: ['name'],\n * template: 'ng2[transclude]()',\n * directives:\n * })\n * class Ng2Component {\n * }\n *\n * @NgModule({\n * declarations: [Ng2Component, adapter.upgradeNg1Component('ng1Hello')],\n * imports: [BrowserModule]\n * })\n * class MyNg2Module {}\n *\n *\n * document.body.innerHTML = 'project';\n *\n * adapter.bootstrap(document.body, ['myExample']).ready(function() {\n * expect(document.body.textContent).toEqual(\n * \"ng2[ng1[Hello World!](transclude)](project)\");\n * });\n *\n * ```\n *\n * @deprecated Deprecated since v5. Use `upgrade/static` instead, which also supports\n * [Ahead-of-Time compilation](guide/aot-compiler).\n * @publicApi\n */\nexport class UpgradeAdapter {\n private idPrefix: string = `NG2_UPGRADE_${upgradeCount++}_`;\n private downgradedComponents: Type[] = [];\n /**\n * An internal map of ng1 components which need to up upgraded to ng2.\n *\n * We can't upgrade until injector is instantiated and we can retrieve the component metadata.\n * For this reason we keep a list of components to upgrade until ng1 injector is bootstrapped.\n *\n * @internal\n */\n private ng1ComponentsToBeUpgraded: {[name: string]: UpgradeNg1ComponentAdapterBuilder} = {};\n private upgradedProviders: StaticProvider[] = [];\n private moduleRef: NgModuleRef|null = null;\n\n constructor(private ng2AppModule: Type, private compilerOptions?: CompilerOptions) {\n if (!ng2AppModule) {\n throw new Error(\n 'UpgradeAdapter cannot be instantiated without an NgModule of the Angular app.');\n }\n }\n\n /**\n * Allows Angular Component to be used from AngularJS.\n *\n * Use `downgradeNg2Component` to create an AngularJS Directive Definition Factory from\n * Angular Component. The adapter will bootstrap Angular component from within the\n * AngularJS template.\n *\n * @usageNotes\n * ### Mental Model\n *\n * 1. The component is instantiated by being listed in AngularJS template. This means that the\n * host element is controlled by AngularJS, but the component's view will be controlled by\n * Angular.\n * 2. Even thought the component is instantiated in AngularJS, it will be using Angular\n * syntax. This has to be done, this way because we must follow Angular components do not\n * declare how the attributes should be interpreted.\n * 3. `ng-model` is controlled by AngularJS and communicates with the downgraded Angular component\n * by way of the `ControlValueAccessor` interface from @angular/forms. Only components that\n * implement this interface are eligible.\n *\n * ### Supported Features\n *\n * - Bindings:\n * - Attribute: ``\n * - Interpolation: ``\n * - Expression: ``\n * - Event: ``\n * - ng-model: ``\n * - Content projection: yes\n *\n * ### Example\n *\n * ```\n * const adapter = new UpgradeAdapter(forwardRef(() => MyNg2Module));\n * const module = angular.module('myExample', []);\n * module.directive('greet', adapter.downgradeNg2Component(Greeter));\n *\n * @Component({\n * selector: 'greet',\n * template: '{{salutation}} {{name}}! - '\n * })\n * class Greeter {\n * @Input() salutation: string;\n * @Input() name: string;\n * }\n *\n * @NgModule({\n * declarations: [Greeter],\n * imports: [BrowserModule]\n * })\n * class MyNg2Module {}\n *\n * document.body.innerHTML =\n * 'ng1 template: text';\n *\n * adapter.bootstrap(document.body, ['myExample']).ready(function() {\n * expect(document.body.textContent).toEqual(\"ng1 template: Hello world! - text\");\n * });\n * ```\n */\n downgradeNg2Component(component: Type): Function {\n this.downgradedComponents.push(component);\n\n return downgradeComponent({component});\n }\n\n /**\n * Allows AngularJS Component to be used from Angular.\n *\n * Use `upgradeNg1Component` to create an Angular component from AngularJS Component\n * directive. The adapter will bootstrap AngularJS component from within the Angular\n * template.\n *\n * @usageNotes\n * ### Mental Model\n *\n * 1. The component is instantiated by being listed in Angular template. This means that the\n * host element is controlled by Angular, but the component's view will be controlled by\n * AngularJS.\n *\n * ### Supported Features\n *\n * - Bindings:\n * - Attribute: ``\n * - Interpolation: ``\n * - Expression: ``\n * - Event: ``\n * - Transclusion: yes\n * - Only some of the features of\n * [Directive Definition Object](https://docs.angularjs.org/api/ng/service/$compile) are\n * supported:\n * - `compile`: not supported because the host element is owned by Angular, which does\n * not allow modifying DOM structure during compilation.\n * - `controller`: supported. (NOTE: injection of `$attrs` and `$transclude` is not supported.)\n * - `controllerAs`: supported.\n * - `bindToController`: supported.\n * - `link`: supported. (NOTE: only pre-link function is supported.)\n * - `name`: supported.\n * - `priority`: ignored.\n * - `replace`: not supported.\n * - `require`: supported.\n * - `restrict`: must be set to 'E'.\n * - `scope`: supported.\n * - `template`: supported.\n * - `templateUrl`: supported.\n * - `terminal`: ignored.\n * - `transclude`: supported.\n *\n *\n * ### Example\n *\n * ```\n * const adapter = new UpgradeAdapter(forwardRef(() => MyNg2Module));\n * const module = angular.module('myExample', []);\n *\n * module.directive('greet', function() {\n * return {\n * scope: {salutation: '=', name: '=' },\n * template: '{{salutation}} {{name}}! - '\n * };\n * });\n *\n * module.directive('ng2', adapter.downgradeNg2Component(Ng2Component));\n *\n * @Component({\n * selector: 'ng2',\n * template: 'ng2 template: text'\n * })\n * class Ng2Component {\n * }\n *\n * @NgModule({\n * declarations: [Ng2Component, adapter.upgradeNg1Component('greet')],\n * imports: [BrowserModule]\n * })\n * class MyNg2Module {}\n *\n * document.body.innerHTML = '';\n *\n * adapter.bootstrap(document.body, ['myExample']).ready(function() {\n * expect(document.body.textContent).toEqual(\"ng2 template: Hello world! - text\");\n * });\n * ```\n */\n upgradeNg1Component(name: string): Type {\n if (this.ng1ComponentsToBeUpgraded.hasOwnProperty(name)) {\n return this.ng1ComponentsToBeUpgraded[name].type;\n } else {\n return (this.ng1ComponentsToBeUpgraded[name] = new UpgradeNg1ComponentAdapterBuilder(name))\n .type;\n }\n }\n\n /**\n * Registers the adapter's AngularJS upgrade module for unit testing in AngularJS.\n * Use this instead of `angular.mock.module()` to load the upgrade module into\n * the AngularJS testing injector.\n *\n * @usageNotes\n * ### Example\n *\n * ```\n * const upgradeAdapter = new UpgradeAdapter(MyNg2Module);\n *\n * // configure the adapter with upgrade/downgrade components and services\n * upgradeAdapter.downgradeNg2Component(MyComponent);\n *\n * let upgradeAdapterRef: UpgradeAdapterRef;\n * let $compile, $rootScope;\n *\n * // We must register the adapter before any calls to `inject()`\n * beforeEach(() => {\n * upgradeAdapterRef = upgradeAdapter.registerForNg1Tests(['heroApp']);\n * });\n *\n * beforeEach(inject((_$compile_, _$rootScope_) => {\n * $compile = _$compile_;\n * $rootScope = _$rootScope_;\n * }));\n *\n * it(\"says hello\", (done) => {\n * upgradeAdapterRef.ready(() => {\n * const element = $compile(\"\")($rootScope);\n * $rootScope.$apply();\n * expect(element.html()).toContain(\"Hello World\");\n * done();\n * })\n * });\n *\n * ```\n *\n * @param modules any AngularJS modules that the upgrade module should depend upon\n * @returns an `UpgradeAdapterRef`, which lets you register a `ready()` callback to\n * run assertions once the Angular components are ready to test through AngularJS.\n */\n registerForNg1Tests(modules?: string[]): UpgradeAdapterRef {\n const windowNgMock = (window as any)['angular'].mock;\n if (!windowNgMock || !windowNgMock.module) {\n throw new Error('Failed to find \\'angular.mock.module\\'.');\n }\n const {ng1Module, ng2BootstrapDeferred} = this.declareNg1Module(modules);\n windowNgMock.module(ng1Module.name);\n const upgrade = new UpgradeAdapterRef();\n ng2BootstrapDeferred.promise.then((ng1Injector) => {\n // @ts-expect-error\n upgrade._bootstrapDone(this.moduleRef!, ng1Injector);\n }, onError);\n return upgrade;\n }\n\n /**\n * Bootstrap a hybrid AngularJS / Angular application.\n *\n * This `bootstrap` method is a direct replacement (takes same arguments) for AngularJS\n * [`bootstrap`](https://docs.angularjs.org/api/ng/function/angular.bootstrap) method. Unlike\n * AngularJS, this bootstrap is asynchronous.\n *\n * @usageNotes\n * ### Example\n *\n * ```\n * const adapter = new UpgradeAdapter(MyNg2Module);\n * const module = angular.module('myExample', []);\n * module.directive('ng2', adapter.downgradeNg2Component(Ng2));\n *\n * module.directive('ng1', function() {\n * return {\n * scope: { title: '=' },\n * template: 'ng1[Hello {{title}}!]()'\n * };\n * });\n *\n *\n * @Component({\n * selector: 'ng2',\n * inputs: ['name'],\n * template: 'ng2[transclude]()'\n * })\n * class Ng2 {\n * }\n *\n * @NgModule({\n * declarations: [Ng2, adapter.upgradeNg1Component('ng1')],\n * imports: [BrowserModule]\n * })\n * class MyNg2Module {}\n *\n * document.body.innerHTML = 'project';\n *\n * adapter.bootstrap(document.body, ['myExample']).ready(function() {\n * expect(document.body.textContent).toEqual(\n * \"ng2[ng1[Hello World!](transclude)](project)\");\n * });\n * ```\n */\n bootstrap(element: Element, modules?: any[], config?: IAngularBootstrapConfig):\n UpgradeAdapterRef {\n const {ng1Module, ng2BootstrapDeferred, ngZone} = this.declareNg1Module(modules);\n\n const upgrade = new UpgradeAdapterRef();\n\n // Make sure resumeBootstrap() only exists if the current bootstrap is deferred\n const windowAngular = (window as any)['angular'];\n windowAngular.resumeBootstrap = undefined;\n\n ngZone.run(() => {\n bootstrap(element, [ng1Module.name], config!);\n });\n const ng1BootstrapPromise = new Promise((resolve) => {\n if (windowAngular.resumeBootstrap) {\n const originalResumeBootstrap: () => void = windowAngular.resumeBootstrap;\n windowAngular.resumeBootstrap = function() {\n windowAngular.resumeBootstrap = originalResumeBootstrap;\n const r = windowAngular.resumeBootstrap.apply(this, arguments);\n resolve();\n return r;\n };\n } else {\n resolve();\n }\n });\n\n Promise.all([ng2BootstrapDeferred.promise, ng1BootstrapPromise]).then(([ng1Injector]) => {\n angularElement(element).data!(controllerKey(INJECTOR_KEY), this.moduleRef!.injector);\n this.moduleRef!.injector.get(NgZone).run(() => {\n // @ts-expect-error\n upgrade._bootstrapDone(this.moduleRef, ng1Injector);\n });\n }, onError);\n return upgrade;\n }\n\n /**\n * Allows AngularJS service to be accessible from Angular.\n *\n * @usageNotes\n * ### Example\n *\n * ```\n * class Login { ... }\n * class Server { ... }\n *\n * @Injectable()\n * class Example {\n * constructor(@Inject('server') server, login: Login) {\n * ...\n * }\n * }\n *\n * const module = angular.module('myExample', []);\n * module.service('server', Server);\n * module.service('login', Login);\n *\n * const adapter = new UpgradeAdapter(MyNg2Module);\n * adapter.upgradeNg1Provider('server');\n * adapter.upgradeNg1Provider('login', {asToken: Login});\n *\n * adapter.bootstrap(document.body, ['myExample']).ready((ref) => {\n * const example: Example = ref.ng2Injector.get(Example);\n * });\n *\n * ```\n */\n upgradeNg1Provider(name: string, options?: {asToken: any}) {\n const token = options && options.asToken || name;\n this.upgradedProviders.push({\n provide: token,\n useFactory: ($injector: IInjectorService) => $injector.get(name),\n deps: [$INJECTOR]\n });\n }\n\n /**\n * Allows Angular service to be accessible from AngularJS.\n *\n * @usageNotes\n * ### Example\n *\n * ```\n * class Example {\n * }\n *\n * const adapter = new UpgradeAdapter(MyNg2Module);\n *\n * const module = angular.module('myExample', []);\n * module.factory('example', adapter.downgradeNg2Provider(Example));\n *\n * adapter.bootstrap(document.body, ['myExample']).ready((ref) => {\n * const example: Example = ref.ng1Injector.get('example');\n * });\n *\n * ```\n */\n downgradeNg2Provider(token: any): Function {\n return downgradeInjectable(token);\n }\n\n /**\n * Declare the AngularJS upgrade module for this adapter without bootstrapping the whole\n * hybrid application.\n *\n * This method is automatically called by `bootstrap()` and `registerForNg1Tests()`.\n *\n * @param modules The AngularJS modules that this upgrade module should depend upon.\n * @returns The AngularJS upgrade module that is declared by this method\n *\n * @usageNotes\n * ### Example\n *\n * ```\n * const upgradeAdapter = new UpgradeAdapter(MyNg2Module);\n * upgradeAdapter.declareNg1Module(['heroApp']);\n * ```\n */\n private declareNg1Module(modules: string[] = []):\n {ng1Module: IModule, ng2BootstrapDeferred: Deferred, ngZone: NgZone} {\n const delayApplyExps: Function[] = [];\n let original$applyFn: Function;\n let rootScopePrototype: any;\n const upgradeAdapter = this;\n const ng1Module = angularModule(this.idPrefix, modules);\n const platformRef = platformBrowserDynamic();\n\n const ngZone =\n new NgZone({enableLongStackTrace: Zone.hasOwnProperty('longStackTraceZoneSpec')});\n const ng2BootstrapDeferred = new Deferred();\n ng1Module.constant(UPGRADE_APP_TYPE_KEY, UpgradeAppType.Dynamic)\n .factory(INJECTOR_KEY, () => this.moduleRef!.injector.get(Injector))\n .factory(\n LAZY_MODULE_REF, [INJECTOR_KEY, (injector: Injector) => ({injector} as LazyModuleRef)])\n .constant(NG_ZONE_KEY, ngZone)\n .factory(COMPILER_KEY, () => this.moduleRef!.injector.get(Compiler))\n .config([\n '$provide', '$injector',\n (provide: IProvideService, ng1Injector: IInjectorService) => {\n provide.decorator($ROOT_SCOPE, [\n '$delegate',\n function(rootScopeDelegate: IRootScopeService) {\n // Capture the root apply so that we can delay first call to $apply until we\n // bootstrap Angular and then we replay and restore the $apply.\n rootScopePrototype = rootScopeDelegate.constructor.prototype;\n if (rootScopePrototype.hasOwnProperty('$apply')) {\n original$applyFn = rootScopePrototype.$apply;\n rootScopePrototype.$apply = (exp: any) => delayApplyExps.push(exp);\n } else {\n throw new Error('Failed to find \\'$apply\\' on \\'$rootScope\\'!');\n }\n return rootScopeDelegate;\n }\n ]);\n if (ng1Injector.has($$TESTABILITY)) {\n provide.decorator($$TESTABILITY, [\n '$delegate',\n function(testabilityDelegate: ITestabilityService) {\n const originalWhenStable: Function = testabilityDelegate.whenStable;\n // Cannot use arrow function below because we need the context\n const newWhenStable = function(this: unknown, callback: Function) {\n originalWhenStable.call(this, function(this: unknown) {\n const ng2Testability: Testability =\n upgradeAdapter.moduleRef!.injector.get(Testability);\n if (ng2Testability.isStable()) {\n callback.apply(this, arguments);\n } else {\n ng2Testability.whenStable(newWhenStable.bind(this, callback));\n }\n });\n };\n\n testabilityDelegate.whenStable = newWhenStable;\n return testabilityDelegate;\n }\n ]);\n }\n }\n ]);\n\n ng1Module.run([\n '$injector', '$rootScope',\n (ng1Injector: IInjectorService, rootScope: IRootScopeService) => {\n UpgradeNg1ComponentAdapterBuilder.resolve(this.ng1ComponentsToBeUpgraded, ng1Injector)\n .then(() => {\n // At this point we have ng1 injector and we have prepared\n // ng1 components to be upgraded, we now can bootstrap ng2.\n @NgModule({\n jit: true,\n providers: [\n {provide: $INJECTOR, useFactory: () => ng1Injector},\n {provide: $COMPILE, useFactory: () => ng1Injector.get($COMPILE)},\n this.upgradedProviders\n ],\n imports: [resolveForwardRef(this.ng2AppModule)]\n })\n class DynamicNgUpgradeModule {\n ngDoBootstrap() {}\n }\n platformRef.bootstrapModule(DynamicNgUpgradeModule, [this.compilerOptions!, {ngZone}])\n .then((ref: NgModuleRef) => {\n this.moduleRef = ref;\n ngZone.run(() => {\n if (rootScopePrototype) {\n rootScopePrototype.$apply = original$applyFn; // restore original $apply\n while (delayApplyExps.length) {\n rootScope.$apply(delayApplyExps.shift());\n }\n rootScopePrototype = null;\n }\n });\n })\n .then(() => ng2BootstrapDeferred.resolve(ng1Injector), onError)\n .then(() => {\n let subscription = ngZone.onMicrotaskEmpty.subscribe({\n next: () => {\n if (rootScope.$$phase) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.warn(\n 'A digest was triggered while one was already in progress. This may mean that something is triggering digests outside the Angular zone.');\n }\n\n return rootScope.$evalAsync(() => {});\n }\n\n return rootScope.$digest();\n }\n });\n rootScope.$on('$destroy', () => {\n subscription.unsubscribe();\n });\n\n // Destroy the AngularJS app once the Angular `PlatformRef` is destroyed.\n // This does not happen in a typical SPA scenario, but it might be useful for\n // other use-cases where disposing of an Angular/AngularJS app is necessary\n // (such as Hot Module Replacement (HMR)).\n // See https://github.com/angular/angular/issues/39935.\n platformRef.onDestroy(() => destroyApp(ng1Injector));\n });\n })\n .catch((e) => ng2BootstrapDeferred.reject(e));\n }\n ]);\n\n return {ng1Module, ng2BootstrapDeferred, ngZone};\n }\n}\n\n/**\n * Use `UpgradeAdapterRef` to control a hybrid AngularJS / Angular application.\n *\n * @deprecated Deprecated since v5. Use `upgrade/static` instead, which also supports\n * [Ahead-of-Time compilation](guide/aot-compiler).\n * @publicApi\n */\nexport class UpgradeAdapterRef {\n /* @internal */\n private _readyFn: ((upgradeAdapterRef: UpgradeAdapterRef) => void)|null = null;\n\n public ng1RootScope: IRootScopeService = null!;\n public ng1Injector: IInjectorService = null!;\n public ng2ModuleRef: NgModuleRef = null!;\n public ng2Injector: Injector = null!;\n\n /* @internal */\n private _bootstrapDone(ngModuleRef: NgModuleRef, ng1Injector: IInjectorService) {\n this.ng2ModuleRef = ngModuleRef;\n this.ng2Injector = ngModuleRef.injector;\n this.ng1Injector = ng1Injector;\n this.ng1RootScope = ng1Injector.get($ROOT_SCOPE);\n this._readyFn && this._readyFn(this);\n }\n\n /**\n * Register a callback function which is notified upon successful hybrid AngularJS / Angular\n * application has been bootstrapped.\n *\n * The `ready` callback function is invoked inside the Angular zone, therefore it does not\n * require a call to `$apply()`.\n */\n public ready(fn: (upgradeAdapterRef: UpgradeAdapterRef) => void) {\n this._readyFn = fn;\n }\n\n /**\n * Dispose of running hybrid AngularJS / Angular application.\n */\n public dispose() {\n this.ng1Injector!.get($ROOT_SCOPE).$destroy();\n this.ng2ModuleRef!.destroy();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package. allowing\n * Angular 1 and Angular 2+ to run side by side in the same application.\n */\nexport {VERSION} from './src/common/src/version';\nexport {UpgradeAdapter, UpgradeAdapterRef} from './src/dynamic/src/upgrade_adapter';\n\n// This file only re-exports content of the `src` folder. Keep it that way.\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n// This file is not used to build this module. It is only used during editing\n// by the TypeScript language service and during build for verification. `ngc`\n// replaces this file with production index.ts when it rewrites private symbol\n// names.\n\nexport * from './public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["angularElement","INITIAL_VALUE","element","angularModule"],"mappings":";;;;;;;;;;;AAQA;;;;AAIG;AAIH;;AAEG;MACU,OAAO,GAAG,IAAI,OAAO,CAAC,mBAAmB;;AC4MtD,SAAS,IAAI,GAAA;AACX,IAAA,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,WAAW,IAA4B,MAAM,IAAI,EAAE,CAAQ,CAAC;AAClE,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC;AAE7B,IAAI,OAAO,GAYP;AACF,IAAA,SAAS,EAAE,IAAI;AACf,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,OAAO,EAAE,WAAW;AACpB,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,OAAO,EAAE,SAAgB;AACzB,IAAA,eAAe,EAAE,IAAI;AACrB,IAAA,cAAc,EAAE,IAAI;CACrB,CAAC;AAEF,IAAI;AACF,IAAA,IAAI,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;AACpC,QAAA,OAAO,GAAS,MAAO,CAAC,OAAO,CAAC;AACjC,KAAA;AACF,CAAA;AAAC,MAAM;;AAEP,CAAA;AAED;;;;AAIG;AACG,SAAU,aAAa,CAAC,EAAO,EAAA;IACnC,kBAAkB,CAAC,EAAE,CAAC,CAAC;AACzB,CAAC;AAED;;;;AAIG;SACa,aAAa,GAAA;IAC3B,OAAO,kBAAkB,EAAE,CAAC;AAC9B,CAAC;AAED;;;;;;AAMG;AACG,SAAU,kBAAkB,CAAC,EAAO,EAAA;IACxC,OAAO,GAAG,EAAE,CAAC;AACf,CAAC;AAED;;;;AAIG;SACa,kBAAkB,GAAA;AAChC,IAAA,OAAO,OAAO,CAAC;AACjB,CAAC;AAEM,MAAM,SAAS,GAA6B,CAAC,CAAC,EAAE,OAAO,EAAE,MAAO,KACnE,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAE1C;AACA;AACO,MAAM,OAAO,GAA0B,CAAC,MAAM,EAAE,YAAa,KAChE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAElC,MAAM,OAAO,IAA4B,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAA2B,CAAC;AACnG,OAAO,CAAC,SAAS,GAAG,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAEvD,MAAM,QAAQ,GACjB,CAAC,OAAkC,EAAE,QAAkB,KAAK,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAE7F,MAAM,eAAe,GAAmC,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC;AAExF,MAAM,cAAc,GAAkC,CAAC,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;;AClTpF,MAAM,QAAQ,GAAG,UAAU,CAAC;AAC5B,MAAM,WAAW,GAAG,aAAa,CAAC;AAClC,MAAM,SAAS,GAAG,WAAW,CAAC;AAC9B,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AAC/C,MAAM,aAAa,GAAG,cAAc,CAAC;AACrC,MAAM,SAAS,GAAG,WAAW,CAAC;AAC9B,MAAM,SAAS,GAAG,WAAW,CAAC;AAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC;AACxB,MAAM,QAAQ,GAAG,UAAU,CAAC;AAC5B,MAAM,aAAa,GAAG,cAAc,CAAC;AACrC,MAAM,WAAW,GAAG,YAAY,CAAC;AACjC,MAAM,MAAM,GAAG,QAAQ,CAAC;AACxB,MAAM,eAAe,GAAG,gBAAgB,CAAC;AACzC,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAE7C,MAAM,aAAa,GAAG,eAAe,CAAC;AAEtC,MAAM,YAAY,GAAG,mBAAmB,CAAC;AACzC,MAAM,2BAA2B,GAAG,gCAAgC,CAAC;AACrE,MAAM,2BAA2B,GAAG,gCAAgC,CAAC;AACrE,MAAM,YAAY,GAAG,mBAAmB,CAAC;AACzC,MAAM,eAAe,GAAG,wBAAwB,CAAC;AACjD,MAAM,WAAW,GAAG,iBAAiB,CAAC;AACtC,MAAM,oBAAoB,GAAG,yBAAyB,CAAC;AAEvD,MAAM,gBAAgB,GAAG,KAAK,GAAG,YAAY,CAAC;AAC9C,MAAM,gBAAgB,GAAG,UAAU,CAAC;AAEpC,MAAM,mBAAmB,GAAG,iBAAiB;;AC5BpD;;;;;AAKG;MACU,eAAe,CAAA;IAQ1B,WAAmB,CAAA,IAAY,EAAS,IAAY,EAAA;QAAjC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;QAAS,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;QAClD,IAAI,CAAC,WAAW,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,IAAI,GAAG,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,IAAI,GAAG,CAAC;QAClC,IAAI,CAAC,gBAAgB,GAAG,CAAA,EAAA,EAAK,IAAI,CAAC,IAAI,IAAI,CAAC;QAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3E,QAAA,IAAI,CAAC,MAAM,GAAG,CAAK,EAAA,EAAA,WAAW,EAAE,CAAC;AACjC,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAO,IAAA,EAAA,WAAW,EAAE,CAAC;AACrC,QAAA,IAAI,CAAC,UAAU,GAAG,CAAS,MAAA,EAAA,WAAW,EAAE,CAAC;KAC1C;AACF;;AClBD,MAAM,uBAAuB,GAAG,oBAAoB,CAAC;AACrD,MAAM,8BAA8B,GAAG,aAAa,CAAC;AAE/C,SAAU,OAAO,CAAC,CAAM,EAAA;;IAE5B,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AAC1B,IAAA,MAAM,CAAC,CAAC;AACV,CAAC;AAED;;;;;;;;;;;AAWG;AACG,SAAU,SAAS,CAAC,IAAU,EAAA;AAClC,IAAAA,OAAc,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACjC,IAAA,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE;QACtBA,OAAc,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;AACtD,KAAA;AACH,CAAC;AAEK,SAAU,aAAa,CAAC,IAAY,EAAA;AACxC,IAAA,OAAO,GAAG,GAAG,IAAI,GAAG,YAAY,CAAC;AACnC,CAAC;AAED;;;;;;;;AAQG;AACG,SAAU,UAAU,CAAC,SAA2B,EAAA;IACpD,MAAM,YAAY,GAAqB,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACpE,MAAM,UAAU,GAAsB,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAEjE,UAAU,CAAC,QAAQ,EAAE,CAAC;AACtB,IAAA,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7B,CAAC;AAEK,SAAU,kBAAkB,CAAC,IAAY,EAAA;AAC7C,IAAA,OAAO,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC;AAC3C,SAAA,OAAO,CAAC,8BAA8B,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;AACpF,CAAC;AAEK,SAAU,WAAW,CAAC,IAAe,EAAA;;IAEzC,OAAQ,IAAY,CAAC,cAAc,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACrF,CAAC;AAEK,SAAU,wBAAwB,CAAC,SAA2B,EAAA;AAClE,IAAA,OAAO,SAAS,CAAC,GAAG,CAAC,2BAA2B,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,2BAA2B,CAAC;AAC1C,QAAA,CAAC,CAAC;AACxD,CAAC;AAEK,SAAU,iBAAiB,CAAC,SAA2B,EAAA;AAC3D,IAAA,OAAO,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC;oCACf;AACnE,CAAC;AAEK,SAAU,UAAU,CAAC,KAAU,EAAA;AACnC,IAAA,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC;AACrC,CAAC;AAEK,SAAU,cAAc,CAAC,KAAU,EAAA;;IAEvC,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,YAAY,CAAC,IAAqB,EAAA;AACzC,IAAA,OAAO,UAAU,CAAE,IAA8B,CAAC,gBAAgB,CAAC,CAAC;AACtE,CAAC;AAEK,SAAU,oBAAoB,CAChC,SAA2B,EAAE,gBAAwB,EAAE,YAAoB,EAC3E,eAAuB,EAAA;AACzB,IAAA,MAAM,cAAc,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;AACpD,IAAA,MAAM,qBAAqB,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;;AAGlE,IAAA,QAAQ,cAAc;QACpB,KAA4B,CAAA,8BAAA;AAC5B,QAAA,KAAA,CAAA;AACE,YAAA,IAAI,gBAAgB,EAAE;AACpB,gBAAA,MAAM,IAAI,KAAK,CACX,CAAA,YAAA,EAAe,eAAe,CAAgD,8CAAA,CAAA;oBAC9E,sFAAsF;AACtF,oBAAA,2DAA2D,CAAC,CAAC;AAClE,aAAA;YACD,MAAM;AACR,QAAA,KAAA,CAAA;YACE,IAAI,CAAC,gBAAgB,KAAK,qBAAqB,IAAI,CAAC,CAAC,EAAE;AACrD,gBAAA,MAAM,IAAI,KAAK,CACX,CAAA,YAAA,EAAe,eAAe,CAAuC,qCAAA,CAAA;oBACrE,sFAAsF;AACtF,oBAAA,kFAAkF,CAAC,CAAC;AACzF,aAAA;AAED,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;AAChC,gBAAA,MAAM,IAAI,KAAK,CACX,CAAA,YAAA,EAAe,eAAe,CAAqD,mDAAA,CAAA;oBACnF,+EAA+E;AAC/E,oBAAA,cAAc,CAAC,CAAC;AACrB,aAAA;YAED,MAAM;AACR,QAAA;AACE,YAAA,MAAM,IAAI,KAAK,CACX,CAAA,YAAA,EAAe,eAAe,CAAiD,+CAAA,CAAA;gBAC/E,+EAA+E;AAC/E,gBAAA,cAAc,CAAC,CAAC;AACvB,KAAA;AACH,CAAC;MAEY,QAAQ,CAAA;AAKnB,IAAA,WAAA,GAAA;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,KAAI;AACtC,YAAA,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;AACnB,YAAA,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;AACpB,SAAC,CAAC,CAAC;KACJ;AACF,CAAA;AAqBD;;;;AAIG;AACH,SAAS,eAAe,CAAC,SAAc,EAAA;AACrC,IAAA,OAAO,OAAO,SAAS,CAAC,UAAU,KAAK,UAAU;AAC7C,QAAA,OAAO,SAAS,CAAC,gBAAgB,KAAK,UAAU,CAAC;AACvD,CAAC;AAED;;;AAGG;AACa,SAAA,aAAa,CAAC,OAA2B,EAAE,SAAc,EAAA;AACvE,IAAA,IAAI,OAAO,IAAI,eAAe,CAAC,SAAS,CAAC,EAAE;AACzC,QAAA,OAAO,CAAC,OAAO,GAAG,MAAK;AACrB,YAAA,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC3C,SAAC,CAAC;AACF,QAAA,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAChE,QAAA,IAAI,OAAO,SAAS,CAAC,iBAAiB,KAAK,UAAU,EAAE;AACrD,YAAA,SAAS,CAAC,iBAAiB,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAChE,SAAA;AACF,KAAA;AACH,CAAC;AAED;;AAEG;AACa,SAAA,YAAY,CAAC,IAAS,EAAE,IAAS,EAAA;AAC/C,IAAA,OAAO,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC;AAC3D;;ACxLA,MAAMC,eAAa,GAAG;AACpB,IAAA,iBAAiB,EAAE,IAAI;CACxB,CAAC;MAEW,yBAAyB,CAAA;AAMpC,IAAA,WAAA,CACY,OAAyB,EAAU,KAAkB,EAAU,KAAa,EAC5E,OAA2B,EAAU,cAAwB,EAC7D,QAAyB,EAAU,MAAqB,EACxD,gBAAuC,EACvC,YAAyC,EAAA;QAJzC,IAAO,CAAA,OAAA,GAAP,OAAO,CAAkB;QAAU,IAAK,CAAA,KAAA,GAAL,KAAK,CAAa;QAAU,IAAK,CAAA,KAAA,GAAL,KAAK,CAAQ;QAC5E,IAAO,CAAA,OAAA,GAAP,OAAO,CAAoB;QAAU,IAAc,CAAA,cAAA,GAAd,cAAc,CAAU;QAC7D,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;QAAU,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;QACxD,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAuB;QACvC,IAAY,CAAA,YAAA,GAAZ,YAAY,CAA6B;QAV7C,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAC;QAC5B,IAAgB,CAAA,gBAAA,GAAW,CAAC,CAAC;QAC7B,IAAY,CAAA,YAAA,GAAkB,EAAE,CAAC;AASvC,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;KACpC;IAED,eAAe,GAAA;QACb,MAAM,wBAAwB,GAAa,EAAE,CAAC;AAC9C,QAAA,MAAM,gBAAgB,GAAa,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAChE,QAAA,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAEpE,QAAA,IAAI,CAAC,OAAO,CAAC,KAAM,EAAE,CAAC;AAEtB,QAAA,OAAO,CAAC,OAAO,CAAC,MAAM,IAAG;YACvB,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAa,KAAI;AACnC,gBAAA,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACrC,gBAAA,IAAI,CAAC,OAAO,CAAC,MAAO,CAAC,KAAK,CAAC,CAAC;AAC9B,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,wBAAwB,CAAC;KACjC;IAED,uBAAuB,CACnB,gBAA0B,EAAE,kBAAkB,GAAG,KAAK,EACtD,eAAe,GAAG,IAAI,EAAA;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;QACzD,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;AACjE,QAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;AAC1C,QAAA,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAE7C,OAAO,SAAS,CAAC,YAAY,CAAC;KAC/B;AAEO,IAAA,eAAe,CAAC,gBAA0B,EAAA;AAChD,QAAA,MAAM,SAAS,GAAqB,CAAC,EAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAC,CAAC,CAAC;QACvF,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CACjC,EAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,2BAA2B,EAAC,CAAC,CAAC;AAE5F,QAAA,MAAM,YAAY,GACd,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,aAAa,EAAE,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,MAAM,kBAAkB,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AACxE,QAAA,MAAM,cAAc,GAAG,YAAY,CAAC,iBAAiB,CAAC;;;;;AAMtD,QAAA,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AACjE,QAAA,IAAI,WAAW,EAAE;AACf,YAAA,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC;iBACzC,mBAAmB,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;AAC5E,SAAA;QAED,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;AAEnD,QAAA,OAAO,EAAC,kBAAkB,EAAE,YAAY,EAAE,cAAc,EAAC,CAAC;KAC3D;AAEO,IAAA,WAAW,CACf,kBAA2B,EAAE,eAAe,GAAG,IAAI,EACnD,EAAC,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAgB,EAAA;AACnE,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,IAAI,EAAE,CAAC;AAClD,QAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AAC1B,YAAA,MAAM,YAAY,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;YAC7E,IAAI,IAAI,GAAgB,IAAI,CAAC;YAE7B,IAAI,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;AAC3C,gBAAA,MAAM,SAAS,GAAG,CAAC,IAAI,IAAG;oBACxB,IAAI,SAAS,GAAGA,eAAa,CAAC;oBAC9B,OAAO,CAAC,SAAc,KAAI;;AAExB,wBAAA,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE;4BACvC,IAAI,SAAS,KAAKA,eAAa,EAAE;gCAC/B,SAAS,GAAG,SAAS,CAAC;AACvB,6BAAA;4BAED,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;4BAC3D,SAAS,GAAG,SAAS,CAAC;AACvB,yBAAA;AACH,qBAAC,CAAC;AACJ,iBAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;gBACtB,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;;;;gBAK7C,IAAI,OAAO,GAAkB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAK;AAC3D,oBAAA,OAAQ,EAAE,CAAC;oBACX,OAAO,GAAG,IAAI,CAAC;oBACf,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;AACtC,iBAAC,CAAC,CAAC;AACJ,aAAA;iBAAM,IAAI,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;AACtD,gBAAA,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AACrC,aAAA;iBAAM,IAAI,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE;AACzD,gBAAA,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AACxC,aAAA;iBAAM,IAAI,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE;AACxD,gBAAA,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;AACvC,aAAA;iBAAM,IAAI,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,gBAAgB,CAAC,EAAE;AAC9D,gBAAA,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;AAC7C,aAAA;YACD,IAAI,IAAI,IAAI,IAAI,EAAE;AAChB,gBAAA,MAAM,OAAO,GACT,CAAC,CAAC,IAAI,KAAK,CAAC,SAAkB,EAAE,SAAkB,KAC7C,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;gBACxF,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC3C,aAAA;AACF,SAAA;;QAGD,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,aAAa,EAAE,CAAC;QAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,SAAS,CAAC;AAChE,QAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC,EAAE,SAAS,IAAgB,SAAU,CAAC,WAAW,CAAC,CAAC;AAE/E,QAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,MAAK;;YAE7E,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC5B,gBAAA,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;AACvC,gBAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACX,gBAAA,YAAY,CAAC,QAAS,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AAC9D,aAAA;YAED,kBAAkB,CAAC,YAAY,EAAE,CAAC;;YAGlC,IAAI,CAAC,eAAe,EAAE;AACpB,gBAAA,aAAa,EAAE,CAAC;AACjB,aAAA;SACF,CAAC,CAAC,CAAC;;AAGJ,QAAA,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC;AAC9D,SAAA;;;AAID,QAAA,IAAI,kBAAkB,IAAI,CAAC,eAAe,EAAE;YAC1C,IAAI,OAAO,GAAkB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAK;AAC3D,gBAAA,OAAQ,EAAE,CAAC;gBACX,OAAO,GAAG,IAAI,CAAC;gBAEf,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAiB,cAAc,CAAC,CAAC;AACvE,gBAAA,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AAC3C,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;AAEO,IAAA,YAAY,CAAC,YAA+B,EAAA;AAClD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,IAAI,EAAE,CAAC;AACpD,QAAA,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AAC5B,YAAA,MAAM,cAAc,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;AACjF,YAAA,MAAM,UAAU,GACZ,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACjF,MAAM,gBAAgB,GAAG,CACrB,EAAA,EAAA,cAAc,CAAC,gBAAgB,CAAC,SAAS,CACrC,CAAC,EAAE,cAAc,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC;;AAE3D,YAAA,IAAI,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE;AACpC,gBAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,cAAc,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;AAC/E,aAAA;AACD,YAAA,IAAI,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE;AAC1C,gBAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,cAAc,EAAE,KAAK,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC,CAAC;AACrF,aAAA;YACD,IAAI,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;AAC/C,gBAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;AACpF,aAAA;YACD,IAAI,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;AAClD,gBAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;AACvF,aAAA;AACF,SAAA;KACF;IAEO,iBAAiB,CACrB,YAA+B,EAAE,MAAuB,EAAE,IAAY,EACtE,eAAwB,KAAK,EAAA;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACjC,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC7B,QAAA,IAAI,YAAY,IAAI,CAAC,MAAM,EAAE;AAC3B,YAAA,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,CAAA,oBAAA,CAAsB,CAAC,CAAC;AAC5D,SAAA;QACD,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAsB,CAAC;AACxE,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC;AACrC,gBAAA,IAAI,EAAE,YAAY,GAAG,CAAC,CAAM,KAAK,MAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AAClC,oBAAA,CAAC,CAAM,KAAK,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,EAAC,QAAQ,EAAE,CAAC,EAAC,CAAC;AACnE,aAAA,CAAC,CAAC;YACH,YAAY,CAAC,SAAS,CAAC,MAAM,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;AAC1D,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,CAAC,IAAI,CAC3C,gBAAA,EAAA,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAA,EAAA,CAAI,CAAC,CAAC;AAC3D,SAAA;KACF;AAEO,IAAA,eAAe,CAAC,YAA+B,EAAA;QACrD,MAAM,mBAAmB,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AAC3E,QAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5E,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,IAAI,CAAC,OAAO,CAAC,EAAG,CAAC,UAAU,EAAE,MAAK;;;;AAIhC,YAAA,IAAI,CAAC,SAAS;AAAE,gBAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;AACjD,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,MAAK;YACvC,IAAI,CAAC,SAAS,EAAE;gBACd,SAAS,GAAG,IAAI,CAAC;gBACjB,mBAAmB,CAAC,qBAAqB,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;;;;;;;;;;;;;;;gBAgB/E,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAE3B,gBAAA,mBAAmB,EAAE,CAAC;AACvB,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AAEO,IAAA,WAAW,CACf,YAA+B,EAAE,IAAY,EAAE,SAAc,EAAE,SAAc,EAAA;QAC/E,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC5B,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC;AAC3F,SAAA;QAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,QAAA,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;KACzC;IAEO,qBAAqB,GAAA;AAC3B,QAAA,IAAI,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC;QAClE,OAAO,oBAAoB,CAAC,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAS,EAAE,CAAC,CAAC;KAC3E;AACF,CAAA;AAED;;AAEG;AACa,SAAA,oBAAoB,CAAC,kBAA4B,EAAE,KAAa,EAAA;IAC9E,MAAM,gBAAgB,GAAa,EAAE,CAAC;AAEtC,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;AAC3D,QAAA,gBAAgB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAC1B,KAAA;AAED,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;AAC9C,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,cAAc,GAAG,0BAA0B,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;QAC5E,IAAI,cAAc,IAAI,IAAI,EAAE;YAC1B,gBAAgB,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7C,SAAA;AACF,KAAA;AAED,IAAA,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,SAAS,0BAA0B,CAAC,OAAY,EAAE,kBAA4B,EAAA;IAC5E,MAAM,gBAAgB,GAAa,EAAE,CAAC;AACtC,IAAA,IAAI,sBAAsB,GAAW,CAAC,CAAC,CAAC;AACxC,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAClD,QAAA,MAAM,QAAQ,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;QACvC,IAAI,QAAQ,KAAK,GAAG,EAAE;YACpB,sBAAsB,GAAG,CAAC,CAAC;AAC5B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;AACtC,gBAAA,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1B,aAAA;AACF,SAAA;AACF,KAAA;IACD,gBAAgB,CAAC,IAAI,EAAE,CAAC;AAExB,IAAA,IAAI,sBAAsB,KAAK,CAAC,CAAC,EAAE;AACjC,QAAA,gBAAgB,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAC/C,KAAA;AACD,IAAA,OAAO,gBAAgB,CAAC,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAC9D,CAAC;AAED,SAAS,eAAe,CAAC,EAAO,EAAE,QAAgB,EAAA;AAChD,IAAA,MAAM,OAAO,GAAQ,OAAO,CAAC,SAAS,CAAC;AAEvC,IAAA,OAAO,EAAE,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY;;;AAGpC,YAAA,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC;AACjE,QAAA,KAAK,CAAC;AACZ;;ACzTM,SAAU,UAAU,CAAI,GAAY,EAAA;IACxC,OAAO,CAAC,CAAC,GAAG,IAAI,UAAU,CAAE,GAAW,CAAC,IAAI,CAAC,CAAC;AAChD,CAAC;AAED;;AAEG;MACU,WAAW,CAAA;AAAxB,IAAA,WAAA,GAAA;QAEU,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAS,CAAA,SAAA,GAA8B,EAAE,CAAC;KA0CnD;IAxCC,OAAO,GAAG,CAAI,gBAAmC,EAAA;AAC/C,QAAA,MAAM,WAAW,GAAG,IAAI,WAAW,EAAO,CAAC;QAE3C,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,MAAM,OAAO,GAAQ,EAAE,CAAC;AACxB,QAAA,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,KAAQ,KAAI;AACxC,YAAA,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACrB,YAAA,IAAI,EAAE,aAAa,KAAK,gBAAgB,CAAC,MAAM;AAAE,gBAAA,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAChF,SAAC,CAAC;QAEF,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,KAAI;AAClC,YAAA,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,gBAAA,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9B,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACjB,aAAA;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,WAAW,CAAC;KACpB;AAED,IAAA,OAAO,CAAC,KAAQ,EAAA;;QAEd,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;AAE1B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;;AAGrB,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACpD,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;KAC3B;AAED,IAAA,IAAI,CAAC,QAA+B,EAAA;QAClC,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,QAAQ,CAAC,IAAI,CAAC,KAAM,CAAC,CAAC;AACvB,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/B,SAAA;KACF;AACF;;ACjDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDG;AACG,SAAU,kBAAkB,CAAC,IAUlC,EAAA;AACC,IAAA,MAAM,gBAAgB,GAAuB,UACzC,QAAyB,EAAE,SAA2B,EAAE,MAAqB,EAAA;;;;;;;;;AAS/E,QAAA,MAAM,eAAe,GAAG,iBAAiB,CAAC,SAAS,CAAC,iCAAyB;AAC7E,QAAA,MAAM,YAAY,GACd,CAAC,eAAe,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,MAAM,MAAM,CAAC,eAAe,EAAE,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC/F,QAAA,IAAI,MAAc,CAAC;;AAGnB,QAAA,MAAM,4BAA4B,GAC9B,eAAe,KAAK,wBAAwB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QAEjE,OAAO;AACL,YAAA,QAAQ,EAAE,GAAG;AACb,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,OAAO,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;;;;;YAK7C,UAAU,EAAE,eAAa;YACzB,IAAI,EAAE,CAAC,KAAa,EAAE,OAAyB,EAAE,KAAkB,EAAE,QAAe,KAAI;;;;AAKtF,gBAAA,MAAM,OAAO,GAAuB,QAAQ,CAAC,CAAC,CAAC,CAAC;AAChD,gBAAA,MAAM,cAAc,GAA0C,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC1E,IAAI,cAAc,GAA0C,SAAS,CAAC;gBACtE,IAAI,QAAQ,GAAG,KAAK,CAAC;AAErB,gBAAA,IAAI,CAAC,cAAc,IAAI,4BAA4B,EAAE;AACnD,oBAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC;AACrD,oBAAA,MAAM,gBAAgB,GAAG,CAAA,EAAG,eAAe,CAAG,EAAA,gBAAgB,EAAE,CAAC;oBACjE,MAAM,eAAe,GAAG,CAAA,yBAAA,EAA4B,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA,CAAA,CAAG,CAAC;oBAEnF,oBAAoB,CAAC,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,CAAC,CAAC;oBAErF,MAAM,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAkB,CAAC;oBACvE,cAAc,GAAG,aAAa,CAAC,QAAQ,IAAI,aAAa,CAAC,OAAO,CAAC;AAClE,iBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCD,gBAAA,MAAM,mBAAmB,GAAG,cAAc,IAAI,cAAe,CAAC;;;;AAK9D,gBAAA,MAAM,mBAAmB,GAAG,cAAc,IAAI,cAAe,CAAC;AAE9D,gBAAA,MAAM,WAAW,GAAG,CAAC,QAAkB,EAAE,cAAwB,KAAI;;;oBAGnE,MAAM,wBAAwB,GAC1B,cAAc,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;oBACjD,MAAM,gBAAgB,GAClB,wBAAwB,CAAC,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAE,CAAC;oBAEtE,IAAI,CAAC,gBAAgB,EAAE;AACrB,wBAAA,MAAM,IAAI,KAAK,CAAC,CAAA,gCAAA,EAAmC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAE,CAAA,CAAC,CAAC;AACnF,qBAAA;AAED,oBAAA,MAAM,eAAe,GAAG,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC;oBAC3D,MAAM,MAAM,GAAG,IAAI,yBAAyB,CACxC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAC5E,YAAY,CAAC,CAAC;AAElB,oBAAA,MAAM,gBAAgB,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;AAClD,oBAAA,MAAM,YAAY,GAAG,MAAM,CAAC,uBAAuB,CAC/C,gBAAgB,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AAE7D,oBAAA,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AAE/C,oBAAA,IAAI,QAAQ,EAAE;;;wBAGZ,KAAK,CAAC,UAAU,CAAC,MAAO,GAAC,CAAC,CAAC;AAC5B,qBAAA;AACH,iBAAC,CAAC;AAEF,gBAAA,MAAM,WAAW,GACb,CAAC,eAAe,GAAG,WAAW,GAAG,CAAC,SAAmB,EAAE,SAAmB,KAAI;oBAC5E,IAAI,CAAC,MAAM,EAAE;AACX,wBAAA,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAChC,qBAAA;AAED,oBAAA,YAAY,CAAC,MAAM,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;AAC1D,iBAAC,CAAC;;;;;gBAMN,WAAW,CAAC,GAAG,CAAC,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;AACtD,qBAAA,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,KAAK,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;gBAEzE,QAAQ,GAAG,IAAI,CAAC;aACjB;SACF,CAAC;AACJ,KAAC,CAAC;;IAGF,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AAC5D,IAAA,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED;;;AAGG;AACH,MAAM,qBAAsB,SAAQ,WAAqB,CAAA;AAGvD,IAAA,WAAA,CAAoB,OAAyB,EAAA;AAC3C,QAAA,KAAK,EAAE,CAAC;QADU,IAAO,CAAA,OAAA,GAAP,OAAO,CAAkB;AAFrC,QAAA,IAAA,CAAA,WAAW,GAAW,aAAa,CAAC,YAAY,CAAC,CAAC;;QAMxD,OAAO,CAAC,IAAK,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;KACvC;AAEQ,IAAA,OAAO,CAAC,QAAkB,EAAA;;QAEjC,IAAI,CAAC,OAAO,CAAC,IAAK,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;;AAG/C,QAAA,IAAI,CAAC,OAAO,GAAG,IAAK,CAAC;;AAGrB,QAAA,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;KACzB;AACF;;ACzOD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2DG;SACa,mBAAmB,CAAC,KAAU,EAAE,mBAA2B,EAAE,EAAA;IAC3E,MAAM,OAAO,GAAG,UAAS,SAA2B,EAAA;AAClD,QAAA,MAAM,WAAW,GAAG,CAAA,EAAG,YAAY,CAAG,EAAA,gBAAgB,EAAE,CAAC;QACzD,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9E,QAAA,MAAM,eAAe,GAAG,CAA6B,0BAAA,EAAA,cAAc,GAAG,CAAC;QAEvE,oBAAoB,CAAC,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;QAEhF,IAAI;YACF,MAAM,QAAQ,GAAa,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACtD,YAAA,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC5B,SAAA;AAAC,QAAA,OAAO,GAAG,EAAE;AACZ,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,YAAA,EAAe,eAAe,CAAA,EAAA,EAAM,GAAa,CAAC,OAAO,IAAI,GAAG,CAAA,CAAE,CAAC,CAAC;AACrF,SAAA;AACH,KAAC,CAAC;AACD,IAAA,OAAe,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAE1C,IAAA,OAAO,OAAO,CAAC;AACjB;;AC5EA;AACA,MAAM,iBAAiB,GAAG,wBAAwB,CAAC;AAenD;MACa,aAAa,CAAA;AASxB,IAAA,WAAA,CACI,QAAkB,EAAU,IAAY,EAAE,UAAsB,EAAE,SAAsB,EAAA;QAA5D,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;QAC1C,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAEnD,QAAA,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,aAAa,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAGD,OAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAE7C,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;KAChF;AAED,IAAA,OAAO,YAAY,CAAC,SAA2B,EAAE,IAAY,EAAA;QAC3D,MAAM,UAAU,GAAiB,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,WAAW,CAAC,CAAC;AACnE,QAAA,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AACzB,YAAA,MAAM,IAAI,KAAK,CAAC,iDAAiD,IAAI,CAAA,CAAE,CAAC,CAAC;AAC1E,SAAA;AAED,QAAA,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;;;AAIhC,QAAA,IAAI,SAAS,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI;AAAE,YAAA,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACxE,IAAI,SAAS,CAAC,OAAO;AAAE,YAAA,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACrD,IAAI,SAAS,CAAC,QAAQ;AAAE,YAAA,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAEvD,QAAA,OAAO,SAAS,CAAC;KAClB;IAED,OAAO,WAAW,CACd,SAA2B,EAAE,SAAqB,EAAE,mBAAmB,GAAG,KAAK,EAC/E,QAA2B,EAAA;AAC7B,QAAA,IAAI,SAAS,CAAC,QAAQ,KAAK,SAAS,EAAE;YACpC,OAAO,SAAS,CAAS,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACxD,SAAA;aAAM,IAAI,SAAS,CAAC,WAAW,EAAE;YAChC,MAAM,cAAc,GAAG,SAAS,CAAC,GAAG,CAAC,eAAe,CAA0B,CAAC;YAC/E,MAAM,GAAG,GAAG,SAAS,CAAS,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAC/D,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAEzC,IAAI,QAAQ,KAAK,SAAS,EAAE;AAC1B,gBAAA,OAAO,QAAQ,CAAC;AACjB,aAAA;iBAAM,IAAI,CAAC,mBAAmB,EAAE;AAC/B,gBAAA,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;AAChF,aAAA;YAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;gBACrC,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,aAAa,CAAwB,CAAC;AACzE,gBAAA,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,MAAc,EAAE,QAAgB,KAAI;oBAClE,IAAI,MAAM,KAAK,GAAG,EAAE;wBAClB,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC5C,qBAAA;AAAM,yBAAA;wBACL,MAAM,CAAC,gCAAgC,GAAG,CAAA,YAAA,EAAe,MAAM,CAAK,EAAA,EAAA,QAAQ,CAAG,CAAA,CAAA,CAAC,CAAC;AAClF,qBAAA;AACH,iBAAC,CAAC,CAAC;AACL,aAAC,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;YACL,MAAM,IAAI,KAAK,CAAC,CAAA,WAAA,EAAc,SAAS,CAAC,IAAI,CAA+C,6CAAA,CAAA,CAAC,CAAC;AAC9F,SAAA;KACF;IAED,eAAe,CAAC,cAA2B,EAAE,MAAc,EAAA;;;AAGzD,QAAA,MAAM,MAAM,GAAG,EAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAC,CAAC;AAC7D,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;AAE/F,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAK,CAAC,EAAE,UAAU,CAAC,CAAC;AAEtE,QAAA,OAAO,UAAU,CAAC;KACnB;AAED,IAAA,eAAe,CAAC,QAAiB,EAAA;QAC/B,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,QAAQ;AACJ,gBAAA,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAW,CAAC;AAC/F,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;KACnC;IAED,SAAS,CAAC,MAAc,EAAE,kBAAwB,EAAA;QAChD,IAAI,kBAAkB,IAAI,UAAU,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE;YACnE,kBAAkB,CAAC,UAAU,EAAE,CAAC;AACjC,SAAA;QACD,MAAM,CAAC,QAAQ,EAAE,CAAC;AAClB,QAAA,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACzB;IAED,mBAAmB,GAAA;AACjB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;AAC7C,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACnD,QAAA,MAAM,gBAAgB,GAAY,CAAC,KAAK,EAAE,aAAa,KAAI;;;;;YAKzD,KAAK,GAAG,KAAK,IAAI,EAAC,QAAQ,EAAE,MAAM,SAAS,EAAC,CAAC;AAC7C,YAAA,OAAO,aAAc,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAC1C,SAAC,CAAC;QACF,IAAI,SAAS,GAAG,iBAAiB,CAAC;AAElC,QAAA,IAAI,UAAU,EAAE;YACd,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAElC,YAAA,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;gBAClC,SAAS,GAAG,EAAE,CAAC;gBAEf,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACpC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;;gBAGxC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAG;AACzC,oBAAA,IAAI,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;oBACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AAC5C,oBAAA,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;AAEvD,oBAAA,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;AAC7B,oBAAA,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;AACvB,oBAAA,WAAW,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;AACnC,iBAAC,CAAC,CAAC;;AAGH,gBAAA,iBAAiB,CAAC,OAAO,CAAC,IAAI,IAAG;AAC/B,oBAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAC1E,oBAAA,IAAI,QAAQ,EAAE;AACZ,wBAAA,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;wBAC7B,KAAK,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;wBACxC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,qBAAA;AAAM,yBAAA;AACL,wBAAA,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,qBAAA;AACH,iBAAC,CAAC,CAAC;;gBAGH,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAG;AAC1C,oBAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;wBAC1B,MAAM,IAAI,KAAK,CAAC,CAA+B,4BAAA,EAAA,QAAQ,CAAmB,gBAAA,EAAA,IAAI,CAAC,IAAI,CAAE,CAAA,CAAC,CAAC;AACxF,qBAAA;AACH,iBAAC,CAAC,CAAC;gBAEH,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAG;AACxE,oBAAA,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;oBAC9B,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAa,EAAE,WAAiC,KAAI;AACrE,wBAAA,OAAO,WAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACpC,qBAAC,CAAC;AACJ,iBAAC,CAAC,CAAC;AACJ,aAAA;;AAGD,YAAA,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;;;;;;;;;;;AAYjC,YAAA,SAAS,CAAC,OAAO,CAAC,IAAI,IAAG;AACvB,gBAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACvD,oBAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC3B,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;AAED,QAAA,OAAO,gBAAgB,CAAC;KACzB;AAED,IAAA,iCAAiC,CAAC,kBAA4C,EAAA;AAC5E,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACpD,MAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;AAElE,QAAA,IAAI,kBAAkB,IAAI,IAAI,CAAC,SAAS,CAAC,gBAAgB,IAAI,KAAK,CAAC,gBAAgB,CAAC,EAAE;YACpF,MAAM,sBAAsB,GAAG,mBAA2D,CAAC;YAC3F,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAAC,GAAG,IAAG;gBAChD,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;AACxD,aAAC,CAAC,CAAC;AACJ,SAAA;AAED,QAAA,OAAO,mBAAmB,CAAC;KAC5B;AAEO,IAAA,WAAW,CAAC,IAAY,EAAA;AAC9B,QAAA,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;KAC/C;IAEO,iBAAiB,GAAA;QACvB,MAAM,UAAU,GAAW,EAAE,CAAC;AAC9B,QAAA,IAAI,SAAoB,CAAC;AAEzB,QAAA,OAAO,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;AAC1C,YAAA,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AACpC,YAAA,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC5B,SAAA;AAED,QAAA,OAAO,UAAU,CAAC;KACnB;IAEO,mBAAmB,GAAA;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,KAAK,IAAI,CAAC,SAAS,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAE,CAAC;AAE9F,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE;AAClB,YAAA,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;gBAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAE,CAAC;AAC9C,gBAAA,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAE9C,IAAI,CAAC,IAAI,EAAE;oBACT,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAC/B,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;AAED,QAAA,OAAO,OAAO,CAAC;KAChB;AAEO,IAAA,cAAc,CAAC,OAAiC,EAAA;QAEtD,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAAM,aAAA,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AACjC,YAAA,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AACrD,SAAA;AAAM,aAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YACtC,MAAM,KAAK,GAAyC,EAAE,CAAC;YACvD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC;AACrF,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AAAM,aAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YACtC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAE,CAAC;YAChD,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;AAEzC,YAAA,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAChD,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9B,YAAA,MAAM,aAAa,GAAG,CAAC,CAAC,WAAW,CAAC;AACpC,YAAA,MAAM,aAAa,GAAG,WAAW,KAAK,IAAI,CAAC;AAE3C,YAAA,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;AACpC,YAAA,MAAM,IAAI,GAAG,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAO,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrE,MAAM,KAAK,GAAG,aAAa,GAAG,IAAI,CAAC,aAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,IAAK,CAAC,OAAO,CAAC,CAAC;AAEjF,YAAA,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE;gBACzB,MAAM,IAAI,KAAK,CACX,CAA4B,yBAAA,EAAA,OAAO,CAA4B,yBAAA,EAAA,IAAI,CAAC,IAAI,CAAI,EAAA,CAAA,CAAC,CAAC;AACnF,aAAA;AAED,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AAAM,aAAA;YACL,MAAM,IAAI,KAAK,CACX,CAAwD,qDAAA,EAAA,IAAI,CAAC,IAAI,CAAM,GAAA,EAAA,OAAO,CAAE,CAAA,CAAC,CAAC;AACvF,SAAA;KACF;AACF,CAAA;AAED,SAAS,SAAS,CAAI,QAAoB,EAAE,GAAG,IAAW,EAAA;AACxD,IAAA,OAAO,UAAU,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC,GAAG,QAAQ,CAAC;AAC7D,CAAC;AAED;AACA,SAAS,KAAK,CAAI,KAA2B,EAAA;AAC3C,IAAA,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;AACrE,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,OAAe,EAAA;IACjD,MAAM,IAAI,KAAK,CAAC,CAAA,oBAAA,EAAuB,IAAI,CAAoC,iCAAA,EAAA,OAAO,CAAI,EAAA,CAAA,CAAC,CAAC;AAC9F;;ACpSA,MAAM,UAAU,GAAG,UAAU,CAAC;AAC9B,MAAM,aAAa,GAAG;AACpB,IAAA,iBAAiB,EAAE,IAAI;CACxB,CAAC;AACF,MAAM,aAAa,GAAQ,eAAe,CAAC;AAE3C,SAAS,uBAAuB,CAAC,IAAY,EAAA;IAC3C,OAAO,CAAA,MAAA,EAAS,IAAI,CAAA,CAAE,CAAC;AACzB,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAY,EAAA;IAC5C,OAAO,CAAA,OAAA,EAAU,IAAI,CAAA,CAAE,CAAC;AAC1B,CAAC;MAEY,iCAAiC,CAAA;AAY5C,IAAA,WAAA,CAAmB,IAAY,EAAA;QAAZ,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;QAV/B,IAAM,CAAA,MAAA,GAAa,EAAE,CAAC;QACtB,IAAY,CAAA,YAAA,GAAa,EAAE,CAAC;QAC5B,IAAO,CAAA,OAAA,GAAa,EAAE,CAAC;QACvB,IAAa,CAAA,aAAA,GAAa,EAAE,CAAC;QAC7B,IAAe,CAAA,eAAA,GAAa,EAAE,CAAC;QAC/B,IAAe,CAAA,eAAA,GAAa,EAAE,CAAC;QAC/B,IAAW,CAAA,WAAA,GAA6B,EAAE,CAAC;QAC3C,IAAS,CAAA,SAAA,GAAoB,IAAI,CAAC;QAIhC,MAAM,QAAQ,GACV,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,GAAW,EAAE,IAAY,KAAK,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACtF,MAAM,IAAI,GAAG,IAAI,CAAC;AAElB,QAAA,IAEM,OAAO,GAFb,MAEM,OAAQ,SAAQ,0BAA0B,CAAA;AAE9C,YAAA,WAAA,CAA4B,KAAa,EAAE,QAAkB,EAAE,UAAsB,EAAA;AACnF,gBAAA,KAAK,CACD,IAAI,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,EAAE,KAAK,EACjF,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,eAAe,EACpF,IAAI,CAAC,WAAW,CAAQ,CAAC;aAC9B;SACF,CAAA;QARK,OAAO,GAAA,UAAA,CAAA;YAFZ,SAAS,CACN,EAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAC,CAAC;AAG7E,YAAA,OAAA,CAAA,CAAA,EAAA,MAAM,CAAC,MAAM,CAAC,CAAA;AAA0B,YAAA,UAAA,CAAA,mBAAA,EAAA,CAAA,MAAA,EAAA,QAAQ,EAAc,UAAU,CAAA,CAAA;AAFjF,SAAA,EAAA,OAAO,CAQZ,CAAA;AACD,QAAA,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;KACrB;IAED,eAAe,GAAA;QACb,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,SAAU,CAAC,gBAAgB,KAAK,QAAQ,CAAC;AACzE,QAAA,IAAI,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAU,CAAC,KAAM,CAAC,CAAC,MAAM,EAAE;AAC7D,YAAA,MAAM,IAAI,KAAK,CACX,CAAA,+EAAA,CAAiF,CAAC,CAAC;AACxF,SAAA;QAED,MAAM,OAAO,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,SAAU,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAU,CAAC,KAAK,CAAC;AAEzF,QAAA,IAAI,OAAO,OAAO,IAAI,QAAQ,EAAE;YAC9B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAG;AACtC,gBAAA,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACrC,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACzC,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC5C,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,cAAc,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,QAAQ,CAAC;;AAIlF,gBAAA,MAAM,SAAS,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;AACpD,gBAAA,MAAM,eAAe,GAAG,CAAA,EAAG,SAAS,CAAK,EAAA,EAAA,QAAQ,EAAE,CAAC;AACpD,gBAAA,MAAM,UAAU,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;AACtD,gBAAA,MAAM,gBAAgB,GAAG,CAAA,EAAG,UAAU,CAAK,EAAA,EAAA,QAAQ,EAAE,CAAC;AACtD,gBAAA,MAAM,sBAAsB,GAAG,CAAG,EAAA,gBAAgB,QAAQ,CAAC;AAE3D,gBAAA,QAAQ,WAAW;AACjB,oBAAA,KAAK,GAAG,CAAC;AACT,oBAAA,KAAK,GAAG;AACN,wBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC5B,wBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACxC,wBAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC;wBACvC,MAAM;AACR,oBAAA,KAAK,GAAG;AACN,wBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC5B,wBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACxC,wBAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC;AAEvC,wBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC9B,wBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAChD,wBAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC;AAExC,wBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACpC,wBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBACtC,MAAM;AACR,oBAAA,KAAK,GAAG;AACN,wBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC9B,wBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC1C,wBAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC;wBACxC,MAAM;AACR,oBAAA;wBACE,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACnC,wBAAA,MAAM,IAAI,KAAK,CACX,CAAA,oBAAA,EAAuB,WAAW,CAAA,MAAA,EAAS,IAAI,CAAA,MAAA,EAAS,IAAI,CAAC,IAAI,CAAA,YAAA,CAAc,CAAC,CAAC;AACxF,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;AAED;;AAEG;AACH,IAAA,OAAO,OAAO,CACV,kBAAuE,EACvE,SAA2B,EAAA;AAC7B,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,iBAAiB,CAAC,KAAI;YACpF,iBAAiB,CAAC,SAAS,GAAG,aAAa,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC1E,iBAAiB,CAAC,eAAe,EAAE,CAAC;AAEpC,YAAA,OAAO,OAAO;AACT,iBAAA,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,SAAS,EAAE,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;iBAChF,IAAI,CAAC,QAAQ,IAAI,iBAAiB,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;AAC/D,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;KAC9B;AACF,CAAA;AAED,MACM,0BAA0B,CAAA;AAS9B,IAAA,WAAA,CACY,MAAqB,EAAE,KAAa,EAAU,QAAgB,EAC9D,MAAgB,EAAU,OAAiB,EAAU,QAAkB,EACvE,eAAyB,EAAU,WAAoC,EAAA;QAFvE,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;QAAyB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAQ;QAC9D,IAAM,CAAA,MAAA,GAAN,MAAM,CAAU;QAAU,IAAO,CAAA,OAAA,GAAP,OAAO,CAAU;QAAU,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QACvE,IAAe,CAAA,eAAA,GAAf,eAAe,CAAU;QAAU,IAAW,CAAA,WAAA,GAAX,WAAW,CAAyB;QAX3E,IAAkB,CAAA,kBAAA,GAA6B,IAAI,CAAC;QAC5D,IAAc,CAAA,cAAA,GAA6B,IAAI,CAAC;QAChD,IAAe,CAAA,eAAA,GAAU,EAAE,CAAC;QAG5B,IAAQ,CAAA,QAAA,GAAQ,IAAI,CAAC;AAOnB,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAClC,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAC9B,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAChC,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAEzD,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;AAEjD,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,gBAAgB,IAAI,cAAc,EAAE;AACrD,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AAC3F,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC;AAC/C,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;AAC3C,SAAA;AAED,QAAA,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;AAC9B,YAAA,IAAY,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;AAC7B,SAAA;AACD,QAAA,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YACjC,MAAM,OAAO,GAAI,IAAY,CAAC,MAAM,CAAC,GAAG,IAAI,YAAY,EAAE,CAAC;YAC3D,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;gBACxC,IAAI,CAAC,oBAAoB,CACrB,MAAM,EAAE,CAAC,OAAO,IAAI,CAAC,KAAU,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AACxE,aAAA;AACF,SAAA;AACD,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;KAC1E;IAED,QAAQ,GAAA;;QAEN,MAAM,gBAAgB,GAAsB,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;AAC9E,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;AAG1D,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;AACjD,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;AACzD,QAAA,IAAI,cAAc,IAAI,CAAC,gBAAgB,EAAE;AACvC,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AAC5F,SAAA;;AAGD,QAAA,MAAM,mBAAmB,GACrB,IAAI,CAAC,MAAM,CAAC,iCAAiC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;;AAG3E,QAAA,IAAI,IAAI,CAAC,kBAAkB,IAAI,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE;AAC1E,YAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC;AACnC,SAAA;;AAGD,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QACjC,MAAM,OAAO,GAAG,OAAO,IAAI,IAAI,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC;AACpD,QAAA,MAAM,QAAQ,GAAG,OAAO,IAAI,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAC5D,MAAM,KAAK,GAAgB,aAAa,CAAC;QACzC,MAAM,YAAY,GAAwB,aAAa,CAAC;AACxD,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,mBAAmB,EAAE,YAAY,CAAC,CAAC;AACvF,SAAA;AAED,QAAA,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,IAAK,EAAE,EAAC,uBAAuB,EAAE,gBAAgB,EAAC,CAAC,CAAC;AAEhF,QAAA,IAAI,QAAQ,EAAE;AACZ,YAAA,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,mBAAmB,EAAE,YAAY,CAAC,CAAC;AACxF,SAAA;;AAGD,QAAA,IAAI,IAAI,CAAC,kBAAkB,IAAI,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE;AAC5E,YAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC;AACrC,SAAA;KACF;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,MAAM,UAAU,GAAQ,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,eAAe,IAAG;AAC7C,YAAA,MAAM,MAAM,GAAiB,OAAO,CAAC,eAAe,CAAC,CAAC;YACtD,IAAI,CAAC,oBAAoB,CAAC,eAAe,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;YAChE,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,GAAG,MAAM,CAAC;AACzD,SAAC,CAAC,CAAC;QAEH,IAAI,UAAU,CAAC,IAAI,CAAC,cAAe,CAAC,UAAU,CAAC,EAAE;AAC/C,YAAA,IAAI,CAAC,cAAe,CAAC,UAAW,CAAC,UAAU,CAAC,CAAC;AAC9C,SAAA;KACF;IAED,SAAS,GAAA;AACP,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;AAC3C,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC;AACxC,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;AAC7C,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,eAAe,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAI;AACtC,YAAA,MAAM,KAAK,GAAG,cAAe,CAAC,QAAQ,CAAC,CAAC;AACxC,YAAA,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAC3B,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;gBAC9B,MAAM,YAAY,GAAuB,IAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnE,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;AAC1C,aAAA;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,IAAI,CAAC,kBAAkB,IAAI,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE;AAC3E,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC;AACpC,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;KACrE;IAED,oBAAoB,CAAC,IAAY,EAAE,KAAU,EAAA;AAC3C,QAAA,IAAI,CAAC,cAAe,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;KACtD;yHAzHG,0BAA0B,EAAA,IAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;6GAA1B,0BAA0B,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;sGAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAD/B,SAAS;;;ACtHV,IAAI,YAAY,GAAW,CAAC,CAAC;AAE7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiFG;MACU,cAAc,CAAA;IAezB,WAAoB,CAAA,YAAuB,EAAU,eAAiC,EAAA;QAAlE,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAW;QAAU,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;AAd9E,QAAA,IAAA,CAAA,QAAQ,GAAW,CAAA,YAAA,EAAe,YAAY,EAAE,GAAG,CAAC;QACpD,IAAoB,CAAA,oBAAA,GAAgB,EAAE,CAAC;AAC/C;;;;;;;AAOG;QACK,IAAyB,CAAA,yBAAA,GAAwD,EAAE,CAAC;QACpF,IAAiB,CAAA,iBAAA,GAAqB,EAAE,CAAC;QACzC,IAAS,CAAA,SAAA,GAA0B,IAAI,CAAC;QAG9C,IAAI,CAAC,YAAY,EAAE;AACjB,YAAA,MAAM,IAAI,KAAK,CACX,+EAA+E,CAAC,CAAC;AACtF,SAAA;KACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2DG;AACH,IAAA,qBAAqB,CAAC,SAAoB,EAAA;AACxC,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAE1C,QAAA,OAAO,kBAAkB,CAAC,EAAC,SAAS,EAAC,CAAC,CAAC;KACxC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6EG;AACH,IAAA,mBAAmB,CAAC,IAAY,EAAA;QAC9B,IAAI,IAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;YACvD,OAAO,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;AAClD,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,GAAG,IAAI,iCAAiC,CAAC,IAAI,CAAC;AACrF,iBAAA,IAAI,CAAC;AACX,SAAA;KACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCG;AACH,IAAA,mBAAmB,CAAC,OAAkB,EAAA;QACpC,MAAM,YAAY,GAAI,MAAc,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;AACrD,QAAA,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;AACzC,YAAA,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;AAC5D,SAAA;AACD,QAAA,MAAM,EAAC,SAAS,EAAE,oBAAoB,EAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;AACzE,QAAA,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACpC,QAAA,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACxC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,KAAI;;YAEhD,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,SAAU,EAAE,WAAW,CAAC,CAAC;SACtD,EAAE,OAAO,CAAC,CAAC;AACZ,QAAA,OAAO,OAAO,CAAC;KAChB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CG;AACH,IAAA,SAAS,CAACE,SAAgB,EAAE,OAAe,EAAE,MAAgC,EAAA;AAE3E,QAAA,MAAM,EAAC,SAAS,EAAE,oBAAoB,EAAE,MAAM,EAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAEjF,QAAA,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAE,CAAC;;AAGxC,QAAA,MAAM,aAAa,GAAI,MAAc,CAAC,SAAS,CAAC,CAAC;AACjD,QAAA,aAAa,CAAC,eAAe,GAAG,SAAS,CAAC;AAE1C,QAAA,MAAM,CAAC,GAAG,CAAC,MAAK;YACd,SAAS,CAACA,SAAO,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAO,CAAC,CAAC;AAChD,SAAC,CAAC,CAAC;QACH,MAAM,mBAAmB,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,KAAI;YACxD,IAAI,aAAa,CAAC,eAAe,EAAE;AACjC,gBAAA,MAAM,uBAAuB,GAAe,aAAa,CAAC,eAAe,CAAC;gBAC1E,aAAa,CAAC,eAAe,GAAG,YAAA;AAC9B,oBAAA,aAAa,CAAC,eAAe,GAAG,uBAAuB,CAAC;AACxD,oBAAA,MAAM,CAAC,GAAG,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC/D,oBAAA,OAAO,EAAE,CAAC;AACV,oBAAA,OAAO,CAAC,CAAC;AACX,iBAAC,CAAC;AACH,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,EAAE,CAAC;AACX,aAAA;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,KAAI;AACtF,YAAAF,OAAc,CAACE,SAAO,CAAC,CAAC,IAAK,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,SAAU,CAAC,QAAQ,CAAC,CAAC;AACrF,YAAA,IAAI,CAAC,SAAU,CAAC,QAAQ,CAAC,GAAG,CAAS,MAAM,CAAC,CAAC,GAAG,CAAC,MAAK;;gBAEpD,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AACtD,aAAC,CAAC,CAAC;SACJ,EAAE,OAAO,CAAC,CAAC;AACZ,QAAA,OAAO,OAAO,CAAC;KAChB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BG;IACH,kBAAkB,CAAC,IAAY,EAAE,OAAwB,EAAA;QACvD,MAAM,KAAK,GAAG,OAAO,IAAI,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC;AACjD,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;AAC1B,YAAA,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,CAAC,SAA2B,KAAK,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;YAChE,IAAI,EAAE,CAAC,SAAS,CAAC;AAClB,SAAA,CAAC,CAAC;KACJ;AAED;;;;;;;;;;;;;;;;;;;;AAoBG;AACH,IAAA,oBAAoB,CAAC,KAAU,EAAA;AAC7B,QAAA,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;KACnC;AAED;;;;;;;;;;;;;;;;AAgBG;IACK,gBAAgB,CAAC,UAAoB,EAAE,EAAA;QAE7C,MAAM,cAAc,GAAe,EAAE,CAAC;AACtC,QAAA,IAAI,gBAA0B,CAAC;AAC/B,QAAA,IAAI,kBAAuB,CAAC;QAC5B,MAAM,cAAc,GAAG,IAAI,CAAC;QAC5B,MAAM,SAAS,GAAGC,OAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACxD,QAAA,MAAM,WAAW,GAAG,sBAAsB,EAAE,CAAC;AAE7C,QAAA,MAAM,MAAM,GACR,IAAI,MAAM,CAAC,EAAC,oBAAoB,EAAE,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,EAAC,CAAC,CAAC;AACtF,QAAA,MAAM,oBAAoB,GAAG,IAAI,QAAQ,EAAoB,CAAC;AAC9D,QAAA,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAyB,CAAA,8BAAA;AAC3D,aAAA,OAAO,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,SAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACnE,aAAA,OAAO,CACJ,eAAe,EAAE,CAAC,YAAY,EAAE,CAAC,QAAkB,MAAM,EAAC,QAAQ,EAAmB,CAAA,CAAC,CAAC;AAC1F,aAAA,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;AAC7B,aAAA,OAAO,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,SAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACnE,aAAA,MAAM,CAAC;AACN,YAAA,UAAU,EAAE,WAAW;AACvB,YAAA,CAAC,OAAwB,EAAE,WAA6B,KAAI;AAC1D,gBAAA,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE;oBAC7B,WAAW;AACX,oBAAA,UAAS,iBAAoC,EAAA;;;AAG3C,wBAAA,kBAAkB,GAAG,iBAAiB,CAAC,WAAW,CAAC,SAAS,CAAC;AAC7D,wBAAA,IAAI,kBAAkB,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;AAC/C,4BAAA,gBAAgB,GAAG,kBAAkB,CAAC,MAAM,CAAC;AAC7C,4BAAA,kBAAkB,CAAC,MAAM,GAAG,CAAC,GAAQ,KAAK,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpE,yBAAA;AAAM,6BAAA;AACL,4BAAA,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;AACjE,yBAAA;AACD,wBAAA,OAAO,iBAAiB,CAAC;qBAC1B;AACF,iBAAA,CAAC,CAAC;AACH,gBAAA,IAAI,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;AAClC,oBAAA,OAAO,CAAC,SAAS,CAAC,aAAa,EAAE;wBAC/B,WAAW;AACX,wBAAA,UAAS,mBAAwC,EAAA;AAC/C,4BAAA,MAAM,kBAAkB,GAAa,mBAAmB,CAAC,UAAU,CAAC;;4BAEpE,MAAM,aAAa,GAAG,UAAwB,QAAkB,EAAA;AAC9D,gCAAA,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,YAAA;AAC5B,oCAAA,MAAM,cAAc,GAChB,cAAc,CAAC,SAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACxD,oCAAA,IAAI,cAAc,CAAC,QAAQ,EAAE,EAAE;AAC7B,wCAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACjC,qCAAA;AAAM,yCAAA;AACL,wCAAA,cAAc,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC/D,qCAAA;AACH,iCAAC,CAAC,CAAC;AACL,6BAAC,CAAC;AAEF,4BAAA,mBAAmB,CAAC,UAAU,GAAG,aAAa,CAAC;AAC/C,4BAAA,OAAO,mBAAmB,CAAC;yBAC5B;AACF,qBAAA,CAAC,CAAC;AACJ,iBAAA;aACF;AACF,SAAA,CAAC,CAAC;QAEP,SAAS,CAAC,GAAG,CAAC;AACZ,YAAA,WAAW,EAAE,YAAY;AACzB,YAAA,CAAC,WAA6B,EAAE,SAA4B,KAAI;gBAC9D,iCAAiC,CAAC,OAAO,CAAC,IAAI,CAAC,yBAAyB,EAAE,WAAW,CAAC;qBACjF,IAAI,CAAC,MAAK;;;oBAYT,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB,CAAA;AAC1B,wBAAA,aAAa,MAAK;qBACnB,CAAA;oBAFK,sBAAsB,GAAA,UAAA,CAAA;AAT3B,wBAAA,QAAQ,CAAC;AACR,4BAAA,GAAG,EAAE,IAAI;AACT,4BAAA,SAAS,EAAE;gCACT,EAAC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,WAAW,EAAC;AACnD,gCAAA,EAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAC;AAChE,gCAAA,IAAI,CAAC,iBAAiB;AACvB,6BAAA;4BACD,OAAO,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;yBAChD,CAAC;AACI,qBAAA,EAAA,sBAAsB,CAE3B,CAAA;AACD,oBAAA,WAAW,CAAC,eAAe,CAAC,sBAAsB,EAAE,CAAC,IAAI,CAAC,eAAgB,EAAE,EAAC,MAAM,EAAC,CAAC,CAAC;AACjF,yBAAA,IAAI,CAAC,CAAC,GAAqB,KAAI;AAC9B,wBAAA,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;AACrB,wBAAA,MAAM,CAAC,GAAG,CAAC,MAAK;AACd,4BAAA,IAAI,kBAAkB,EAAE;AACtB,gCAAA,kBAAkB,CAAC,MAAM,GAAG,gBAAgB,CAAC;gCAC7C,OAAO,cAAc,CAAC,MAAM,EAAE;oCAC5B,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC;AAC1C,iCAAA;gCACD,kBAAkB,GAAG,IAAI,CAAC;AAC3B,6BAAA;AACH,yBAAC,CAAC,CAAC;AACL,qBAAC,CAAC;AACD,yBAAA,IAAI,CAAC,MAAM,oBAAoB,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;yBAC9D,IAAI,CAAC,MAAK;AACT,wBAAA,IAAI,YAAY,GAAG,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC;4BACnD,IAAI,EAAE,MAAK;gCACT,IAAI,SAAS,CAAC,OAAO,EAAE;AACrB,oCAAA,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,EAAE;AACjD,wCAAA,OAAO,CAAC,IAAI,CACR,wIAAwI,CAAC,CAAC;AAC/I,qCAAA;oCAED,OAAO,SAAS,CAAC,UAAU,CAAC,MAAK,GAAG,CAAC,CAAC;AACvC,iCAAA;AAED,gCAAA,OAAO,SAAS,CAAC,OAAO,EAAE,CAAC;6BAC5B;AACF,yBAAA,CAAC,CAAC;AACH,wBAAA,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,MAAK;4BAC7B,YAAY,CAAC,WAAW,EAAE,CAAC;AAC7B,yBAAC,CAAC,CAAC;;;;;;wBAOH,WAAW,CAAC,SAAS,CAAC,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;AACvD,qBAAC,CAAC,CAAC;AACT,iBAAC,CAAC;AACD,qBAAA,KAAK,CAAC,CAAC,CAAC,KAAK,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;aACnD;AACF,SAAA,CAAC,CAAC;AAEH,QAAA,OAAO,EAAC,SAAS,EAAE,oBAAoB,EAAE,MAAM,EAAC,CAAC;KAClD;AACF,CAAA;AAED;;;;;;AAMG;MACU,iBAAiB,CAAA;AAA9B,IAAA,WAAA,GAAA;;QAEU,IAAQ,CAAA,QAAA,GAA0D,IAAI,CAAC;QAExE,IAAY,CAAA,YAAA,GAAsB,IAAK,CAAC;QACxC,IAAW,CAAA,WAAA,GAAqB,IAAK,CAAC;QACtC,IAAY,CAAA,YAAA,GAAqB,IAAK,CAAC;QACvC,IAAW,CAAA,WAAA,GAAa,IAAK,CAAC;KA6BtC;;IA1BS,cAAc,CAAC,WAA6B,EAAE,WAA6B,EAAA;AACjF,QAAA,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;AAChC,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC;AACxC,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KACtC;AAED;;;;;;AAMG;AACI,IAAA,KAAK,CAAC,EAAkD,EAAA;AAC7D,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAED;;AAEG;IACI,OAAO,GAAA;QACZ,IAAI,CAAC,WAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC9C,QAAA,IAAI,CAAC,YAAa,CAAC,OAAO,EAAE,CAAC;KAC9B;AACF;;ACxpBD;;;;;AAKG;AAIH;;ACTA;;ACRA;;AAEG;;;;"} \ No newline at end of file diff --git a/index.d.ts b/index.d.ts index 27111e189b2..e6d448c4d9f 100755 --- a/index.d.ts +++ b/index.d.ts @@ -1,5 +1,5 @@ /** - * @license Angular v17.0.0-next.2+sha-bb47f81 + * @license Angular v17.0.0-next.2+sha-b9ba6e6 * (c) 2010-2022 Google LLC. https://angular.io/ * License: MIT */ diff --git a/package.json b/package.json index c4832800a34..df3cdbf1a20 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@angular/upgrade", - "version": "17.0.0-next.2+sha-bb47f81", + "version": "17.0.0-next.2+sha-b9ba6e6", "description": "Angular - the library for easing update from v1 to v2", "author": "angular", "license": "MIT", @@ -11,10 +11,10 @@ "tslib": "^2.3.0" }, "peerDependencies": { - "@angular/core": "17.0.0-next.2+sha-bb47f81", - "@angular/compiler": "17.0.0-next.2+sha-bb47f81", - "@angular/platform-browser": "17.0.0-next.2+sha-bb47f81", - "@angular/platform-browser-dynamic": "17.0.0-next.2+sha-bb47f81" + "@angular/core": "17.0.0-next.2+sha-b9ba6e6", + "@angular/compiler": "17.0.0-next.2+sha-b9ba6e6", + "@angular/platform-browser": "17.0.0-next.2+sha-b9ba6e6", + "@angular/platform-browser-dynamic": "17.0.0-next.2+sha-b9ba6e6" }, "repository": { "type": "git", diff --git a/static/index.d.ts b/static/index.d.ts index e01f16acbf4..29bf9346d83 100755 --- a/static/index.d.ts +++ b/static/index.d.ts @@ -1,5 +1,5 @@ /** - * @license Angular v17.0.0-next.2+sha-bb47f81 + * @license Angular v17.0.0-next.2+sha-b9ba6e6 * (c) 2010-2022 Google LLC. https://angular.io/ * License: MIT */ diff --git a/static/testing/index.d.ts b/static/testing/index.d.ts index 163747317aa..f52be670762 100755 --- a/static/testing/index.d.ts +++ b/static/testing/index.d.ts @@ -1,5 +1,5 @@ /** - * @license Angular v17.0.0-next.2+sha-bb47f81 + * @license Angular v17.0.0-next.2+sha-b9ba6e6 * (c) 2010-2022 Google LLC. https://angular.io/ * License: MIT */