{ "errors": [], "warnings": [], "version": "4.44.2", "hash": "c3fa974322d02cd968e2", "publicPath": "", "outputPath": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\dist", "assetsByChunkName": { "runtime": [ "runtime-es2015.079cdaf7df823193c268.js", "runtime-es2015.079cdaf7df823193c268.js.map" ], "default~code-code-example-module~code-code-tabs-module": [ "default~code-code-example-module~code-code-tabs-module-es2015.48e4e1c9f1670b9cec23.js", "default~code-code-example-module~code-code-tabs-module-es2015.48e4e1c9f1670b9cec23.js.map" ], "announcement-bar-announcement-bar-module": [ "announcement-bar-announcement-bar-module-es2015.1b5b762c9c8837c770f8.js", "announcement-bar-announcement-bar-module-es2015.1b5b762c9c8837c770f8.js.map" ], "api-api-list-module": [ "api-api-list-module-es2015.40a43cd22f50f64d63bb.js", "api-api-list-module-es2015.40a43cd22f50f64d63bb.js.map" ], "assets-js-prettify-js": [ "assets-js-prettify-js-es2015.b6cbad02a0e3ac8af12a.js", "assets-js-prettify-js-es2015.b6cbad02a0e3ac8af12a.js.map" ], "code-code-example-module": [ "code-code-example-module-es2015.af6b398dde18d5f1d877.js", "code-code-example-module-es2015.af6b398dde18d5f1d877.js.map" ], "code-code-tabs-module": [ "code-code-tabs-module-es2015.1a6c55229832dae43d3d.js", "code-code-tabs-module-es2015.1a6c55229832dae43d3d.js.map" ], "contributor-contributor-list-module": [ "contributor-contributor-list-module-es2015.c8325875e1dc65af0dc6.js", "contributor-contributor-list-module-es2015.c8325875e1dc65af0dc6.js.map" ], "events-events-module": [ "events-events-module-es2015.6447f4bc09fdcfbb5676.js", "events-events-module-es2015.6447f4bc09fdcfbb5676.js.map" ], "live-example-live-example-module": [ "live-example-live-example-module-es2015.e26ac21b0f5aff3a4dc7.js", "live-example-live-example-module-es2015.e26ac21b0f5aff3a4dc7.js.map" ], "main": [ "main-es2015.a732537ab43995de39e0.js", "main-es2015.a732537ab43995de39e0.js.map" ], "polyfills": [ "polyfills-es2015.dab278a6cdc36392250c.js", "polyfills-es2015.dab278a6cdc36392250c.js.map" ], "polyfills-es5": [ "polyfills-es5.7e97e7ebaa63597ff553.js", "polyfills-es5.7e97e7ebaa63597ff553.js.map" ], "resource-resource-list-module": [ "resource-resource-list-module-es2015.c10f93cd4e05eaabbcfd.js", "resource-resource-list-module-es2015.c10f93cd4e05eaabbcfd.js.map" ], "search-file-not-found-search-module": [ "search-file-not-found-search-module-es2015.5f87faadeb778e77ea33.js", "search-file-not-found-search-module-es2015.5f87faadeb778e77ea33.js.map" ], "styles": [ "styles.5085b7b02ef106b54735.css", "styles.5085b7b02ef106b54735.css.map" ], "toc-toc-module": [ "toc-toc-module-es2015.d1fa63cbc4f8ec0088ea.js", "toc-toc-module-es2015.d1fa63cbc4f8ec0088ea.js.map" ] }, "assets": [ { "name": "0-es2015.7a5fef4c81f66c534036.worker.js", "size": 42865, "chunks": [], "chunkNames": [], "info": { "immutable": true, "minimized": true }, "emitted": false }, { "name": "0-es2015.7a5fef4c81f66c534036.worker.js.map", "size": 154742, "chunks": [], "chunkNames": [], "info": { "development": true }, "emitted": false }, { "name": "3rdpartylicenses.txt", "size": 20109, "chunks": [], "chunkNames": [], "info": {}, "emitted": false }, { "name": "announcement-bar-announcement-bar-module-es2015.1b5b762c9c8837c770f8.js", "size": 2942, "chunks": [ 2 ], "chunkNames": [ "announcement-bar-announcement-bar-module" ], "info": { "immutable": true, "minimized": true }, "emitted": false }, { "name": "announcement-bar-announcement-bar-module-es2015.1b5b762c9c8837c770f8.js.map", "size": 4914, "chunks": [ 2 ], "chunkNames": [ "announcement-bar-announcement-bar-module" ], "info": { "development": true }, "emitted": false }, { "name": "api-api-list-module-es2015.40a43cd22f50f64d63bb.js", "size": 8472, "chunks": [ 3 ], "chunkNames": [ "api-api-list-module" ], "info": { "immutable": true, "minimized": true }, "emitted": false }, { "name": "api-api-list-module-es2015.40a43cd22f50f64d63bb.js.map", "size": 15416, "chunks": [ 3 ], "chunkNames": [ "api-api-list-module" ], "info": { "development": true }, "emitted": false }, { "name": "assets-js-prettify-js-es2015.b6cbad02a0e3ac8af12a.js", "size": 14871, "chunks": [ 4 ], "chunkNames": [ "assets-js-prettify-js" ], "info": { "immutable": true, "minimized": true }, "emitted": false }, { "name": "assets-js-prettify-js-es2015.b6cbad02a0e3ac8af12a.js.map", "size": 32736, "chunks": [ 4 ], "chunkNames": [ "assets-js-prettify-js" ], "info": { "development": true }, "emitted": false }, { "name": "code-code-example-module-es2015.af6b398dde18d5f1d877.js", "size": 3086, "chunks": [ 5 ], "chunkNames": [ "code-code-example-module" ], "info": { "immutable": true, "minimized": true }, "emitted": false }, { "name": "code-code-example-module-es2015.af6b398dde18d5f1d877.js.map", "size": 4464, "chunks": [ 5 ], "chunkNames": [ "code-code-example-module" ], "info": { "development": true }, "emitted": false }, { "name": "code-code-tabs-module-es2015.1a6c55229832dae43d3d.js", "size": 45751, "chunks": [ 6 ], "chunkNames": [ "code-code-tabs-module" ], "info": { "immutable": true, "minimized": true }, "emitted": false }, { "name": "code-code-tabs-module-es2015.1a6c55229832dae43d3d.js.map", "size": 196033, "chunks": [ 6 ], "chunkNames": [ "code-code-tabs-module" ], "info": { "development": true }, "emitted": false }, { "name": "contributor-contributor-list-module-es2015.c8325875e1dc65af0dc6.js", "size": 8118, "chunks": [ 7 ], "chunkNames": [ "contributor-contributor-list-module" ], "info": { "immutable": true, "minimized": true }, "emitted": false }, { "name": "contributor-contributor-list-module-es2015.c8325875e1dc65af0dc6.js.map", "size": 10032, "chunks": [ 7 ], "chunkNames": [ "contributor-contributor-list-module" ], "info": { "development": true }, "emitted": false }, { "name": "default~code-code-example-module~code-code-tabs-module-es2015.48e4e1c9f1670b9cec23.js", "size": 78202, "chunks": [ 1 ], "chunkNames": [ "default~code-code-example-module~code-code-tabs-module" ], "info": { "immutable": true, "minimized": true }, "emitted": false }, { "name": "default~code-code-example-module~code-code-tabs-module-es2015.48e4e1c9f1670b9cec23.js.map", "size": 311068, "chunks": [ 1 ], "chunkNames": [ "default~code-code-example-module~code-code-tabs-module" ], "info": { "development": true }, "emitted": false }, { "name": "events-events-module-es2015.6447f4bc09fdcfbb5676.js", "size": 6662, "chunks": [ 8 ], "chunkNames": [ "events-events-module" ], "info": { "immutable": true, "minimized": true }, "emitted": false }, { "name": "events-events-module-es2015.6447f4bc09fdcfbb5676.js.map", "size": 9467, "chunks": [ 8 ], "chunkNames": [ "events-events-module" ], "info": { "development": true }, "emitted": false }, { "name": "live-example-live-example-module-es2015.e26ac21b0f5aff3a4dc7.js", "size": 6488, "chunks": [ 9 ], "chunkNames": [ "live-example-live-example-module" ], "info": { "immutable": true, "minimized": true }, "emitted": false }, { "name": "live-example-live-example-module-es2015.e26ac21b0f5aff3a4dc7.js.map", "size": 12884, "chunks": [ 9 ], "chunkNames": [ "live-example-live-example-module" ], "info": { "development": true }, "emitted": false }, { "name": "main-es2015.a732537ab43995de39e0.js", "size": 750428, "chunks": [ 10 ], "chunkNames": [ "main" ], "info": { "immutable": true, "minimized": true }, "emitted": false }, { "name": "main-es2015.a732537ab43995de39e0.js.map", "size": 3627377, "chunks": [ 10 ], "chunkNames": [ "main" ], "info": { "development": true }, "emitted": false }, { "name": "polyfills-es2015.dab278a6cdc36392250c.js", "size": 80059, "chunks": [ 11 ], "chunkNames": [ "polyfills" ], "info": { "immutable": true, "minimized": true }, "emitted": false }, { "name": "polyfills-es2015.dab278a6cdc36392250c.js.map", "size": 222154, "chunks": [ 11 ], "chunkNames": [ "polyfills" ], "info": { "development": true }, "emitted": false }, { "name": "polyfills-es5.7e97e7ebaa63597ff553.js", "size": 261062, "chunks": [ 12 ], "chunkNames": [ "polyfills-es5" ], "info": { "immutable": true, "minimized": true }, "emitted": false }, { "name": "polyfills-es5.7e97e7ebaa63597ff553.js.map", "size": 682009, "chunks": [ 12 ], "chunkNames": [ "polyfills-es5" ], "info": { "development": true }, "emitted": false }, { "name": "resource-resource-list-module-es2015.c10f93cd4e05eaabbcfd.js", "size": 5550, "chunks": [ 13 ], "chunkNames": [ "resource-resource-list-module" ], "info": { "immutable": true, "minimized": true }, "emitted": false }, { "name": "resource-resource-list-module-es2015.c10f93cd4e05eaabbcfd.js.map", "size": 8341, "chunks": [ 13 ], "chunkNames": [ "resource-resource-list-module" ], "info": { "development": true }, "emitted": false }, { "name": "runtime-es2015.079cdaf7df823193c268.js", "size": 4997, "chunks": [ 0 ], "chunkNames": [ "runtime" ], "info": { "immutable": true, "minimized": true }, "emitted": false }, { "name": "runtime-es2015.079cdaf7df823193c268.js.map", "size": 13611, "chunks": [ 0 ], "chunkNames": [ "runtime" ], "info": { "development": true }, "emitted": false }, { "name": "search-file-not-found-search-module-es2015.5f87faadeb778e77ea33.js", "size": 2082, "chunks": [ 14 ], "chunkNames": [ "search-file-not-found-search-module" ], "info": { "immutable": true, "minimized": true }, "emitted": false }, { "name": "search-file-not-found-search-module-es2015.5f87faadeb778e77ea33.js.map", "size": 2447, "chunks": [ 14 ], "chunkNames": [ "search-file-not-found-search-module" ], "info": { "development": true }, "emitted": false }, { "name": "styles.5085b7b02ef106b54735.css", "size": 142688, "chunks": [ 15 ], "chunkNames": [ "styles" ], "info": { "immutable": true }, "emitted": false }, { "name": "styles.5085b7b02ef106b54735.css.map", "size": 527034, "chunks": [ 15 ], "chunkNames": [ "styles" ], "info": { "development": true }, "emitted": false }, { "name": "toc-toc-module-es2015.d1fa63cbc4f8ec0088ea.js", "size": 7353, "chunks": [ 16 ], "chunkNames": [ "toc-toc-module" ], "info": { "immutable": true, "minimized": true }, "emitted": false }, { "name": "toc-toc-module-es2015.d1fa63cbc4f8ec0088ea.js.map", "size": 10513, "chunks": [ 16 ], "chunkNames": [ "toc-toc-module" ], "info": { "development": true }, "emitted": false } ], "filteredAssets": 0, "entrypoints": { "main": { "chunks": [ 0, 10 ], "assets": [ "runtime-es2015.079cdaf7df823193c268.js", "runtime-es2015.079cdaf7df823193c268.js.map", "main-es2015.a732537ab43995de39e0.js", "main-es2015.a732537ab43995de39e0.js.map" ], "children": {}, "childAssets": {} }, "polyfills-es5": { "chunks": [ 0, 12 ], "assets": [ "runtime-es2015.079cdaf7df823193c268.js", "runtime-es2015.079cdaf7df823193c268.js.map", "polyfills-es5.7e97e7ebaa63597ff553.js", "polyfills-es5.7e97e7ebaa63597ff553.js.map" ], "children": {}, "childAssets": {} }, "polyfills": { "chunks": [ 0, 11 ], "assets": [ "runtime-es2015.079cdaf7df823193c268.js", "runtime-es2015.079cdaf7df823193c268.js.map", "polyfills-es2015.dab278a6cdc36392250c.js", "polyfills-es2015.dab278a6cdc36392250c.js.map" ], "children": {}, "childAssets": {} }, "styles": { "chunks": [ 0, 15 ], "assets": [ "runtime-es2015.079cdaf7df823193c268.js", "runtime-es2015.079cdaf7df823193c268.js.map", "styles.5085b7b02ef106b54735.css", "styles.5085b7b02ef106b54735.css.map" ], "children": {}, "childAssets": {} } }, "namedChunkGroups": { "main": { "chunks": [ 0, 10 ], "assets": [ "runtime-es2015.079cdaf7df823193c268.js", "runtime-es2015.079cdaf7df823193c268.js.map", "main-es2015.a732537ab43995de39e0.js", "main-es2015.a732537ab43995de39e0.js.map" ], "children": {}, "childAssets": {} }, "polyfills-es5": { "chunks": [ 0, 12 ], "assets": [ "runtime-es2015.079cdaf7df823193c268.js", "runtime-es2015.079cdaf7df823193c268.js.map", "polyfills-es5.7e97e7ebaa63597ff553.js", "polyfills-es5.7e97e7ebaa63597ff553.js.map" ], "children": {}, "childAssets": {} }, "polyfills": { "chunks": [ 0, 11 ], "assets": [ "runtime-es2015.079cdaf7df823193c268.js", "runtime-es2015.079cdaf7df823193c268.js.map", "polyfills-es2015.dab278a6cdc36392250c.js", "polyfills-es2015.dab278a6cdc36392250c.js.map" ], "children": {}, "childAssets": {} }, "styles": { "chunks": [ 0, 15 ], "assets": [ "runtime-es2015.079cdaf7df823193c268.js", "runtime-es2015.079cdaf7df823193c268.js.map", "styles.5085b7b02ef106b54735.css", "styles.5085b7b02ef106b54735.css.map" ], "children": {}, "childAssets": {} }, "announcement-bar-announcement-bar-module": { "chunks": [ 2 ], "assets": [ "announcement-bar-announcement-bar-module-es2015.1b5b762c9c8837c770f8.js", "announcement-bar-announcement-bar-module-es2015.1b5b762c9c8837c770f8.js.map" ], "children": {}, "childAssets": {} }, "api-api-list-module": { "chunks": [ 3 ], "assets": [ "api-api-list-module-es2015.40a43cd22f50f64d63bb.js", "api-api-list-module-es2015.40a43cd22f50f64d63bb.js.map" ], "children": {}, "childAssets": {} }, "contributor-contributor-list-module": { "chunks": [ 7 ], "assets": [ "contributor-contributor-list-module-es2015.c8325875e1dc65af0dc6.js", "contributor-contributor-list-module-es2015.c8325875e1dc65af0dc6.js.map" ], "children": {}, "childAssets": {} }, "search-file-not-found-search-module": { "chunks": [ 14 ], "assets": [ "search-file-not-found-search-module-es2015.5f87faadeb778e77ea33.js", "search-file-not-found-search-module-es2015.5f87faadeb778e77ea33.js.map" ], "children": {}, "childAssets": {} }, "resource-resource-list-module": { "chunks": [ 13 ], "assets": [ "resource-resource-list-module-es2015.c10f93cd4e05eaabbcfd.js", "resource-resource-list-module-es2015.c10f93cd4e05eaabbcfd.js.map" ], "children": {}, "childAssets": {} }, "toc-toc-module": { "chunks": [ 16 ], "assets": [ "toc-toc-module-es2015.d1fa63cbc4f8ec0088ea.js", "toc-toc-module-es2015.d1fa63cbc4f8ec0088ea.js.map" ], "children": {}, "childAssets": {} }, "code-code-example-module": { "chunks": [ 1, 5 ], "assets": [ "default~code-code-example-module~code-code-tabs-module-es2015.48e4e1c9f1670b9cec23.js", "default~code-code-example-module~code-code-tabs-module-es2015.48e4e1c9f1670b9cec23.js.map", "code-code-example-module-es2015.af6b398dde18d5f1d877.js", "code-code-example-module-es2015.af6b398dde18d5f1d877.js.map" ], "children": {}, "childAssets": {} }, "code-code-tabs-module": { "chunks": [ 1, 6 ], "assets": [ "default~code-code-example-module~code-code-tabs-module-es2015.48e4e1c9f1670b9cec23.js", "default~code-code-example-module~code-code-tabs-module-es2015.48e4e1c9f1670b9cec23.js.map", "code-code-tabs-module-es2015.1a6c55229832dae43d3d.js", "code-code-tabs-module-es2015.1a6c55229832dae43d3d.js.map" ], "children": {}, "childAssets": {} }, "live-example-live-example-module": { "chunks": [ 9 ], "assets": [ "live-example-live-example-module-es2015.e26ac21b0f5aff3a4dc7.js", "live-example-live-example-module-es2015.e26ac21b0f5aff3a4dc7.js.map" ], "children": {}, "childAssets": {} }, "events-events-module": { "chunks": [ 8 ], "assets": [ "events-events-module-es2015.6447f4bc09fdcfbb5676.js", "events-events-module-es2015.6447f4bc09fdcfbb5676.js.map" ], "children": {}, "childAssets": {} }, "assets-js-prettify-js": { "chunks": [ 4 ], "assets": [ "assets-js-prettify-js-es2015.b6cbad02a0e3ac8af12a.js", "assets-js-prettify-js-es2015.b6cbad02a0e3ac8af12a.js.map" ], "children": {}, "childAssets": {} } }, "chunks": [ { "id": 0, "rendered": true, "initial": true, "entry": true, "size": 0, "names": [ "runtime" ], "files": [ "runtime-es2015.079cdaf7df823193c268.js", "runtime-es2015.079cdaf7df823193c268.js.map" ], "hash": "079cdaf7df823193c268", "siblings": [ 10, 11, 12, 15 ], "parents": [], "children": [ 1, 2, 3, 5, 6, 7, 8, 9, 13, 14, 16 ], "childrenByOrder": {}, "modules": [], "filteredModules": 0, "origins": [ { "module": "", "moduleIdentifier": "", "moduleName": "", "loc": "main", "request": null, "reasons": [] }, { "module": "", "moduleIdentifier": "", "moduleName": "", "loc": "polyfills", "request": null, "reasons": [] }, { "module": "", "moduleIdentifier": "", "moduleName": "", "loc": "polyfills-es5", "request": null, "reasons": [] }, { "module": "", "moduleIdentifier": "", "moduleName": "", "loc": "styles", "request": null, "reasons": [] } ] }, { "id": 1, "rendered": true, "initial": false, "entry": false, "reason": "split chunk (cache group: default) (name: default~code-code-example-module~code-code-tabs-module)", "size": 226709, "names": [ "default~code-code-example-module~code-code-tabs-module" ], "files": [ "default~code-code-example-module~code-code-tabs-module-es2015.48e4e1c9f1670b9cec23.js", "default~code-code-example-module~code-code-tabs-module-es2015.48e4e1c9f1670b9cec23.js.map" ], "hash": "48e4e1c9f1670b9cec23", "siblings": [ 5, 6 ], "parents": [ 0, 10 ], "children": [ 4 ], "childrenByOrder": {}, "modules": [ { "id": "+rOU", "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\cdk\\__ivy_ngcc__\\fesm2015\\portal.js", "name": "./node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/portal.js", "index": 501, "index2": 497, "size": 24446, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [ 1 ], "issuer": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\tabs.js", "issuerId": null, "issuerName": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/tabs.js", "issuerPath": [ { "id": 0, "identifier": "multi C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "multi ./src/main.ts", "profile": { "factory": 1, "building": 4 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "./src/main.ts", "profile": { "factory": 1577, "building": 684 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\app.module.ts", "name": "./src/app/app.module.ts", "profile": { "factory": 7434, "building": 6719, "dependencies": 19440 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\custom-elements.module.ts", "name": "./src/app/custom-elements/custom-elements.module.ts", "profile": { "factory": 26179, "building": 975, "dependencies": 19070 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "name": "./src/app/custom-elements/element-registry.ts", "profile": { "factory": 6786, "building": 1923, "dependencies": 1080 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.module.ts", "name": "./src/app/custom-elements/code/code-tabs.module.ts", "profile": { "factory": 3142, "building": 22, "dependencies": 2295 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\tabs.js", "name": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/tabs.js", "profile": { "factory": 4129, "building": 938, "dependencies": 2786 } } ], "profile": { "factory": 2075, "building": 178, "dependencies": 6 }, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": "dNgK", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\snack-bar.js 5270793f0283c274b2c2ed0d819b1a14", "module": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js + 4 modules", "moduleName": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js + 4 modules", "type": "harmony side effect evaluation", "userRequest": "@angular/cdk/portal", "loc": "2:0-119" }, { "moduleId": "dNgK", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\snack-bar.js 5270793f0283c274b2c2ed0d819b1a14", "module": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js + 4 modules", "moduleName": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js + 4 modules", "type": "harmony side effect evaluation", "userRequest": "@angular/cdk/portal", "loc": "13:0-84" }, { "moduleId": "dNgK", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\snack-bar.js 5270793f0283c274b2c2ed0d819b1a14", "module": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js + 4 modules", "moduleName": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js + 4 modules", "type": "harmony side effect evaluation", "userRequest": "@angular/cdk/portal", "loc": "25:0-46" }, { "moduleId": "dNgK", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\snack-bar.js 5270793f0283c274b2c2ed0d819b1a14", "module": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js + 4 modules", "moduleName": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js + 4 modules", "type": "harmony import specifier", "userRequest": "@angular/cdk/portal", "loc": "217:39-55" }, { "moduleId": "dNgK", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\snack-bar.js 5270793f0283c274b2c2ed0d819b1a14", "module": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js + 4 modules", "moduleName": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js + 4 modules", "type": "harmony import specifier", "userRequest": "@angular/cdk/portal", "loc": "396:35-50" }, { "moduleId": "dNgK", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\snack-bar.js 5270793f0283c274b2c2ed0d819b1a14", "module": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js + 4 modules", "moduleName": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js + 4 modules", "type": "harmony import specifier", "userRequest": "@angular/cdk/portal", "loc": "420:24-46" }, { "moduleId": "dNgK", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\snack-bar.js 5270793f0283c274b2c2ed0d819b1a14", "module": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js + 4 modules", "moduleName": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js + 4 modules", "type": "harmony import specifier", "userRequest": "@angular/cdk/portal", "loc": "429:16-28" }, { "moduleId": "dNgK", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\snack-bar.js 5270793f0283c274b2c2ed0d819b1a14", "module": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js + 4 modules", "moduleName": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js + 4 modules", "type": "harmony import specifier", "userRequest": "@angular/cdk/portal", "loc": "439:16-28" }, { "moduleId": "dNgK", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\snack-bar.js 5270793f0283c274b2c2ed0d819b1a14", "module": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js + 4 modules", "moduleName": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js + 4 modules", "type": "harmony import specifier", "userRequest": "@angular/cdk/portal", "loc": "557:40-55" }, { "moduleId": "dNgK", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\snack-bar.js 5270793f0283c274b2c2ed0d819b1a14", "module": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js + 4 modules", "moduleName": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js + 4 modules", "type": "harmony import specifier", "userRequest": "@angular/cdk/portal", "loc": "571:35-49" }, { "moduleId": "dNgK", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\snack-bar.js 5270793f0283c274b2c2ed0d819b1a14", "module": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js + 4 modules", "moduleName": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js + 4 modules", "type": "harmony import specifier", "userRequest": "@angular/cdk/portal", "loc": "579:35-50" }, { "moduleId": "dNgK", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\snack-bar.js 5270793f0283c274b2c2ed0d819b1a14", "module": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js + 4 modules", "moduleName": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js + 4 modules", "type": "harmony import specifier", "userRequest": "@angular/cdk/portal", "loc": "2486:23-38" }, { "moduleId": "dNgK", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\snack-bar.js 5270793f0283c274b2c2ed0d819b1a14", "module": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js + 4 modules", "moduleName": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js + 4 modules", "type": "harmony import specifier", "userRequest": "@angular/cdk/portal", "loc": "2574:39-53" }, { "moduleId": "dNgK", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\snack-bar.js 5270793f0283c274b2c2ed0d819b1a14", "module": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js + 4 modules", "moduleName": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js + 4 modules", "type": "harmony import specifier", "userRequest": "@angular/cdk/portal", "loc": "2785:34-46" }, { "moduleId": "dNgK", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\snack-bar.js 5270793f0283c274b2c2ed0d819b1a14", "module": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js + 4 modules", "moduleName": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js + 4 modules", "type": "harmony import specifier", "userRequest": "@angular/cdk/portal", "loc": "2788:245-257" }, { "moduleId": "g5Zp", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.module.ts 2d473952cbc52f3b0d84229606a38e44", "module": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "moduleName": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "type": "harmony side effect evaluation", "userRequest": "@angular/cdk/portal", "loc": "3:0-95" }, { "moduleId": "g5Zp", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.module.ts 2d473952cbc52f3b0d84229606a38e44", "module": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "moduleName": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "type": "harmony side effect evaluation", "userRequest": "@angular/cdk/portal", "loc": "29:0-46" }, { "moduleId": "g5Zp", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.module.ts 2d473952cbc52f3b0d84229606a38e44", "module": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "moduleName": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "type": "harmony import specifier", "userRequest": "@angular/cdk/portal", "loc": "212:30-39" }, { "moduleId": "g5Zp", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.module.ts 2d473952cbc52f3b0d84229606a38e44", "module": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "moduleName": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "type": "harmony import specifier", "userRequest": "@angular/cdk/portal", "loc": "279:38-52" }, { "moduleId": "g5Zp", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.module.ts 2d473952cbc52f3b0d84229606a38e44", "module": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "moduleName": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "type": "harmony import specifier", "userRequest": "@angular/cdk/portal", "loc": "358:35-50" }, { "moduleId": "g5Zp", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.module.ts 2d473952cbc52f3b0d84229606a38e44", "module": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "moduleName": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "type": "harmony import specifier", "userRequest": "@angular/cdk/portal", "loc": "505:35-50" }, { "moduleId": "g5Zp", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.module.ts 2d473952cbc52f3b0d84229606a38e44", "module": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "moduleName": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "type": "harmony import specifier", "userRequest": "@angular/cdk/portal", "loc": "835:150-172" }, { "moduleId": "g5Zp", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.module.ts 2d473952cbc52f3b0d84229606a38e44", "module": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "moduleName": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "type": "harmony import specifier", "userRequest": "@angular/cdk/portal", "loc": "1615:16-28" }, { "moduleId": "g5Zp", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.module.ts 2d473952cbc52f3b0d84229606a38e44", "module": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "moduleName": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "type": "harmony import specifier", "userRequest": "@angular/cdk/portal", "loc": "1626:16-28" } ], "usedExports": [ "BasePortalOutlet", "CdkPortal", "CdkPortalOutlet", "ComponentPortal", "DomPortalOutlet", "PortalModule", "TemplatePortal" ], "providedExports": [ "BasePortalHost", "BasePortalOutlet", "CdkPortal", "CdkPortalOutlet", "ComponentPortal", "DomPortal", "DomPortalHost", "DomPortalOutlet", "Portal", "PortalHostDirective", "PortalInjector", "PortalModule", "TemplatePortal", "TemplatePortalDirective" ], "optimizationBailout": [], "depth": 7, "source": "import { ElementRef, Directive, TemplateRef, ViewContainerRef, EventEmitter, ComponentFactoryResolver, Inject, Output, NgModule } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\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 * Throws an exception when attempting to attach a null portal to a host.\n * @docs-private\n */\nimport * as ɵngcc0 from '@angular/core';\nfunction throwNullPortalError() {\n throw Error('Must provide a portal to attach');\n}\n/**\n * Throws an exception when attempting to attach a portal to a host that is already attached.\n * @docs-private\n */\nfunction throwPortalAlreadyAttachedError() {\n throw Error('Host already has a portal attached');\n}\n/**\n * Throws an exception when attempting to attach a portal to an already-disposed host.\n * @docs-private\n */\nfunction throwPortalOutletAlreadyDisposedError() {\n throw Error('This PortalOutlet has already been disposed');\n}\n/**\n * Throws an exception when attempting to attach an unknown portal type.\n * @docs-private\n */\nfunction throwUnknownPortalTypeError() {\n throw Error('Attempting to attach an unknown Portal type. BasePortalOutlet accepts either ' +\n 'a ComponentPortal or a TemplatePortal.');\n}\n/**\n * Throws an exception when attempting to attach a portal to a null host.\n * @docs-private\n */\nfunction throwNullPortalOutletError() {\n throw Error('Attempting to attach a portal to a null PortalOutlet');\n}\n/**\n * Throws an exception when attempting to detach a portal that is not attached.\n * @docs-private\n */\nfunction throwNoPortalAttachedError() {\n throw Error('Attempting to detach a portal that is not attached to a host');\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 * A `Portal` is something that you want to render somewhere else.\n * It can be attach to / detached from a `PortalOutlet`.\n */\nclass Portal {\n /** Attach this portal to a host. */\n attach(host) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (host == null) {\n throwNullPortalOutletError();\n }\n if (host.hasAttached()) {\n throwPortalAlreadyAttachedError();\n }\n }\n this._attachedHost = host;\n return host.attach(this);\n }\n /** Detach this portal from its host */\n detach() {\n let host = this._attachedHost;\n if (host != null) {\n this._attachedHost = null;\n host.detach();\n }\n else if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throwNoPortalAttachedError();\n }\n }\n /** Whether this portal is attached to a host. */\n get isAttached() {\n return this._attachedHost != null;\n }\n /**\n * Sets the PortalOutlet reference without performing `attach()`. This is used directly by\n * the PortalOutlet when it is performing an `attach()` or `detach()`.\n */\n setAttachedHost(host) {\n this._attachedHost = host;\n }\n}\n/**\n * A `ComponentPortal` is a portal that instantiates some Component upon attachment.\n */\nclass ComponentPortal extends Portal {\n constructor(component, viewContainerRef, injector, componentFactoryResolver) {\n super();\n this.component = component;\n this.viewContainerRef = viewContainerRef;\n this.injector = injector;\n this.componentFactoryResolver = componentFactoryResolver;\n }\n}\n/**\n * A `TemplatePortal` is a portal that represents some embedded template (TemplateRef).\n */\nclass TemplatePortal extends Portal {\n constructor(template, viewContainerRef, context) {\n super();\n this.templateRef = template;\n this.viewContainerRef = viewContainerRef;\n this.context = context;\n }\n get origin() {\n return this.templateRef.elementRef;\n }\n /**\n * Attach the portal to the provided `PortalOutlet`.\n * When a context is provided it will override the `context` property of the `TemplatePortal`\n * instance.\n */\n attach(host, context = this.context) {\n this.context = context;\n return super.attach(host);\n }\n detach() {\n this.context = undefined;\n return super.detach();\n }\n}\n/**\n * A `DomPortal` is a portal whose DOM element will be taken from its current position\n * in the DOM and moved into a portal outlet, when it is attached. On detach, the content\n * will be restored to its original position.\n */\nclass DomPortal extends Portal {\n constructor(element) {\n super();\n this.element = element instanceof ElementRef ? element.nativeElement : element;\n }\n}\n/**\n * Partial implementation of PortalOutlet that handles attaching\n * ComponentPortal and TemplatePortal.\n */\nclass BasePortalOutlet {\n constructor() {\n /** Whether this host has already been permanently disposed. */\n this._isDisposed = false;\n // @breaking-change 10.0.0 `attachDomPortal` to become a required abstract method.\n this.attachDomPortal = null;\n }\n /** Whether this host has an attached portal. */\n hasAttached() {\n return !!this._attachedPortal;\n }\n /** Attaches a portal. */\n attach(portal) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!portal) {\n throwNullPortalError();\n }\n if (this.hasAttached()) {\n throwPortalAlreadyAttachedError();\n }\n if (this._isDisposed) {\n throwPortalOutletAlreadyDisposedError();\n }\n }\n if (portal instanceof ComponentPortal) {\n this._attachedPortal = portal;\n return this.attachComponentPortal(portal);\n }\n else if (portal instanceof TemplatePortal) {\n this._attachedPortal = portal;\n return this.attachTemplatePortal(portal);\n // @breaking-change 10.0.0 remove null check for `this.attachDomPortal`.\n }\n else if (this.attachDomPortal && portal instanceof DomPortal) {\n this._attachedPortal = portal;\n return this.attachDomPortal(portal);\n }\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throwUnknownPortalTypeError();\n }\n }\n /** Detaches a previously attached portal. */\n detach() {\n if (this._attachedPortal) {\n this._attachedPortal.setAttachedHost(null);\n this._attachedPortal = null;\n }\n this._invokeDisposeFn();\n }\n /** Permanently dispose of this portal host. */\n dispose() {\n if (this.hasAttached()) {\n this.detach();\n }\n this._invokeDisposeFn();\n this._isDisposed = true;\n }\n /** @docs-private */\n setDisposeFn(fn) {\n this._disposeFn = fn;\n }\n _invokeDisposeFn() {\n if (this._disposeFn) {\n this._disposeFn();\n this._disposeFn = null;\n }\n }\n}\n/**\n * @deprecated Use `BasePortalOutlet` instead.\n * @breaking-change 9.0.0\n */\nclass BasePortalHost extends BasePortalOutlet {\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 * A PortalOutlet for attaching portals to an arbitrary DOM element outside of the Angular\n * application context.\n */\nclass DomPortalOutlet extends BasePortalOutlet {\n constructor(\n /** Element into which the content is projected. */\n outletElement, _componentFactoryResolver, _appRef, _defaultInjector, \n /**\n * @deprecated `_document` Parameter to be made required.\n * @breaking-change 10.0.0\n */\n _document) {\n super();\n this.outletElement = outletElement;\n this._componentFactoryResolver = _componentFactoryResolver;\n this._appRef = _appRef;\n this._defaultInjector = _defaultInjector;\n /**\n * Attaches a DOM portal by transferring its content into the outlet.\n * @param portal Portal to be attached.\n * @deprecated To be turned into a method.\n * @breaking-change 10.0.0\n */\n this.attachDomPortal = (portal) => {\n // @breaking-change 10.0.0 Remove check and error once the\n // `_document` constructor parameter is required.\n if (!this._document && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Cannot attach DOM portal without _document constructor parameter');\n }\n const element = portal.element;\n if (!element.parentNode && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('DOM portal content must be attached to a parent node.');\n }\n // Anchor used to save the element's previous position so\n // that we can restore it when the portal is detached.\n const anchorNode = this._document.createComment('dom-portal');\n element.parentNode.insertBefore(anchorNode, element);\n this.outletElement.appendChild(element);\n super.setDisposeFn(() => {\n // We can't use `replaceWith` here because IE doesn't support it.\n if (anchorNode.parentNode) {\n anchorNode.parentNode.replaceChild(element, anchorNode);\n }\n });\n };\n this._document = _document;\n }\n /**\n * Attach the given ComponentPortal to DOM element using the ComponentFactoryResolver.\n * @param portal Portal to be attached\n * @returns Reference to the created component.\n */\n attachComponentPortal(portal) {\n const resolver = portal.componentFactoryResolver || this._componentFactoryResolver;\n const componentFactory = resolver.resolveComponentFactory(portal.component);\n let componentRef;\n // If the portal specifies a ViewContainerRef, we will use that as the attachment point\n // for the component (in terms of Angular's component tree, not rendering).\n // When the ViewContainerRef is missing, we use the factory to create the component directly\n // and then manually attach the view to the application.\n if (portal.viewContainerRef) {\n componentRef = portal.viewContainerRef.createComponent(componentFactory, portal.viewContainerRef.length, portal.injector || portal.viewContainerRef.injector);\n this.setDisposeFn(() => componentRef.destroy());\n }\n else {\n componentRef = componentFactory.create(portal.injector || this._defaultInjector);\n this._appRef.attachView(componentRef.hostView);\n this.setDisposeFn(() => {\n this._appRef.detachView(componentRef.hostView);\n componentRef.destroy();\n });\n }\n // At this point the component has been instantiated, so we move it to the location in the DOM\n // where we want it to be rendered.\n this.outletElement.appendChild(this._getComponentRootNode(componentRef));\n return componentRef;\n }\n /**\n * Attaches a template portal to the DOM as an embedded view.\n * @param portal Portal to be attached.\n * @returns Reference to the created embedded view.\n */\n attachTemplatePortal(portal) {\n let viewContainer = portal.viewContainerRef;\n let viewRef = viewContainer.createEmbeddedView(portal.templateRef, portal.context);\n // The method `createEmbeddedView` will add the view as a child of the viewContainer.\n // But for the DomPortalOutlet the view can be added everywhere in the DOM\n // (e.g Overlay Container) To move the view to the specified host element. We just\n // re-append the existing root nodes.\n viewRef.rootNodes.forEach(rootNode => this.outletElement.appendChild(rootNode));\n // Note that we want to detect changes after the nodes have been moved so that\n // any directives inside the portal that are looking at the DOM inside a lifecycle\n // hook won't be invoked too early.\n viewRef.detectChanges();\n this.setDisposeFn((() => {\n let index = viewContainer.indexOf(viewRef);\n if (index !== -1) {\n viewContainer.remove(index);\n }\n }));\n // TODO(jelbourn): Return locals from view.\n return viewRef;\n }\n /**\n * Clears out a portal from the DOM.\n */\n dispose() {\n super.dispose();\n if (this.outletElement.parentNode != null) {\n this.outletElement.parentNode.removeChild(this.outletElement);\n }\n }\n /** Gets the root HTMLElement for an instantiated component. */\n _getComponentRootNode(componentRef) {\n return componentRef.hostView.rootNodes[0];\n }\n}\n/**\n * @deprecated Use `DomPortalOutlet` instead.\n * @breaking-change 9.0.0\n */\nclass DomPortalHost extends DomPortalOutlet {\n}\nlet CdkPortal = /*@__PURE__*/ (() => {\n class CdkPortal extends TemplatePortal {\n constructor(templateRef, viewContainerRef) {\n super(templateRef, viewContainerRef);\n }\n }\n CdkPortal.ɵfac = function CdkPortal_Factory(t) { return new (t || CdkPortal)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef)); };\n CdkPortal.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CdkPortal, selectors: [[\"\", \"cdkPortal\", \"\"]], exportAs: [\"cdkPortal\"], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n return CdkPortal;\n})();\nlet TemplatePortalDirective = /*@__PURE__*/ (() => {\n class TemplatePortalDirective extends CdkPortal {\n }\n TemplatePortalDirective.ɵfac = function TemplatePortalDirective_Factory(t) { return ɵTemplatePortalDirective_BaseFactory(t || TemplatePortalDirective); };\n TemplatePortalDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: TemplatePortalDirective, selectors: [[\"\", \"cdk-portal\", \"\"], [\"\", \"portal\", \"\"]], exportAs: [\"cdkPortal\"], features: [/*@__PURE__*/ ɵngcc0.ɵɵProvidersFeature([{\n provide: CdkPortal,\n useExisting: TemplatePortalDirective\n }]), ɵngcc0.ɵɵInheritDefinitionFeature] });\n return TemplatePortalDirective;\n})();\nconst ɵTemplatePortalDirective_BaseFactory = /*@__PURE__*/ /*@__PURE__*/ ɵngcc0.ɵɵgetInheritedFactory(TemplatePortalDirective);\nlet CdkPortalOutlet = /*@__PURE__*/ (() => {\n class CdkPortalOutlet extends BasePortalOutlet {\n constructor(_componentFactoryResolver, _viewContainerRef, \n /**\n * @deprecated `_document` parameter to be made required.\n * @breaking-change 9.0.0\n */\n _document) {\n super();\n this._componentFactoryResolver = _componentFactoryResolver;\n this._viewContainerRef = _viewContainerRef;\n /** Whether the portal component is initialized. */\n this._isInitialized = false;\n /** Emits when a portal is attached to the outlet. */\n this.attached = new EventEmitter();\n /**\n * Attaches the given DomPortal to this PortalHost by moving all of the portal content into it.\n * @param portal Portal to be attached.\n * @deprecated To be turned into a method.\n * @breaking-change 10.0.0\n */\n this.attachDomPortal = (portal) => {\n // @breaking-change 9.0.0 Remove check and error once the\n // `_document` constructor parameter is required.\n if (!this._document && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Cannot attach DOM portal without _document constructor parameter');\n }\n const element = portal.element;\n if (!element.parentNode && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('DOM portal content must be attached to a parent node.');\n }\n // Anchor used to save the element's previous position so\n // that we can restore it when the portal is detached.\n const anchorNode = this._document.createComment('dom-portal');\n portal.setAttachedHost(this);\n element.parentNode.insertBefore(anchorNode, element);\n this._getRootNode().appendChild(element);\n super.setDisposeFn(() => {\n if (anchorNode.parentNode) {\n anchorNode.parentNode.replaceChild(element, anchorNode);\n }\n });\n };\n this._document = _document;\n }\n /** Portal associated with the Portal outlet. */\n get portal() {\n return this._attachedPortal;\n }\n set portal(portal) {\n // Ignore the cases where the `portal` is set to a falsy value before the lifecycle hooks have\n // run. This handles the cases where the user might do something like `
`\n // and attach a portal programmatically in the parent component. When Angular does the first CD\n // round, it will fire the setter with empty string, causing the user's content to be cleared.\n if (this.hasAttached() && !portal && !this._isInitialized) {\n return;\n }\n if (this.hasAttached()) {\n super.detach();\n }\n if (portal) {\n super.attach(portal);\n }\n this._attachedPortal = portal;\n }\n /** Component or view reference that is attached to the portal. */\n get attachedRef() {\n return this._attachedRef;\n }\n ngOnInit() {\n this._isInitialized = true;\n }\n ngOnDestroy() {\n super.dispose();\n this._attachedPortal = null;\n this._attachedRef = null;\n }\n /**\n * Attach the given ComponentPortal to this PortalOutlet using the ComponentFactoryResolver.\n *\n * @param portal Portal to be attached to the portal outlet.\n * @returns Reference to the created component.\n */\n attachComponentPortal(portal) {\n portal.setAttachedHost(this);\n // If the portal specifies an origin, use that as the logical location of the component\n // in the application tree. Otherwise use the location of this PortalOutlet.\n const viewContainerRef = portal.viewContainerRef != null ?\n portal.viewContainerRef :\n this._viewContainerRef;\n const resolver = portal.componentFactoryResolver || this._componentFactoryResolver;\n const componentFactory = resolver.resolveComponentFactory(portal.component);\n const ref = viewContainerRef.createComponent(componentFactory, viewContainerRef.length, portal.injector || viewContainerRef.injector);\n // If we're using a view container that's different from the injected one (e.g. when the portal\n // specifies its own) we need to move the component into the outlet, otherwise it'll be rendered\n // inside of the alternate view container.\n if (viewContainerRef !== this._viewContainerRef) {\n this._getRootNode().appendChild(ref.hostView.rootNodes[0]);\n }\n super.setDisposeFn(() => ref.destroy());\n this._attachedPortal = portal;\n this._attachedRef = ref;\n this.attached.emit(ref);\n return ref;\n }\n /**\n * Attach the given TemplatePortal to this PortalHost as an embedded View.\n * @param portal Portal to be attached.\n * @returns Reference to the created embedded view.\n */\n attachTemplatePortal(portal) {\n portal.setAttachedHost(this);\n const viewRef = this._viewContainerRef.createEmbeddedView(portal.templateRef, portal.context);\n super.setDisposeFn(() => this._viewContainerRef.clear());\n this._attachedPortal = portal;\n this._attachedRef = viewRef;\n this.attached.emit(viewRef);\n return viewRef;\n }\n /** Gets the root node of the portal outlet. */\n _getRootNode() {\n const nativeElement = this._viewContainerRef.element.nativeElement;\n // The directive could be set on a template which will result in a comment\n // node being the root. Use the comment's parent node if that is the case.\n return (nativeElement.nodeType === nativeElement.ELEMENT_NODE ?\n nativeElement : nativeElement.parentNode);\n }\n }\n CdkPortalOutlet.ɵfac = function CdkPortalOutlet_Factory(t) { return new (t || CdkPortalOutlet)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ComponentFactoryResolver), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(DOCUMENT)); };\n CdkPortalOutlet.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CdkPortalOutlet, selectors: [[\"\", \"cdkPortalOutlet\", \"\"]], inputs: { portal: [\"cdkPortalOutlet\", \"portal\"] }, outputs: { attached: \"attached\" }, exportAs: [\"cdkPortalOutlet\"], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n return CdkPortalOutlet;\n})();\nlet PortalHostDirective = /*@__PURE__*/ (() => {\n class PortalHostDirective extends CdkPortalOutlet {\n }\n PortalHostDirective.ɵfac = function PortalHostDirective_Factory(t) { return ɵPortalHostDirective_BaseFactory(t || PortalHostDirective); };\n PortalHostDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: PortalHostDirective, selectors: [[\"\", \"cdkPortalHost\", \"\"], [\"\", \"portalHost\", \"\"]], inputs: { portal: [\"cdkPortalHost\", \"portal\"] }, exportAs: [\"cdkPortalHost\"], features: [/*@__PURE__*/ ɵngcc0.ɵɵProvidersFeature([{\n provide: CdkPortalOutlet,\n useExisting: PortalHostDirective\n }]), ɵngcc0.ɵɵInheritDefinitionFeature] });\n return PortalHostDirective;\n})();\nconst ɵPortalHostDirective_BaseFactory = /*@__PURE__*/ /*@__PURE__*/ ɵngcc0.ɵɵgetInheritedFactory(PortalHostDirective);\nlet PortalModule = /*@__PURE__*/ (() => {\n class PortalModule {\n }\n PortalModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: PortalModule });\n PortalModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ factory: function PortalModule_Factory(t) { return new (t || PortalModule)(); } });\n return PortalModule;\n})();\n/*@__PURE__*/ (function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(PortalModule, { declarations: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective], exports: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective] }); })();\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 * Custom injector to be used when providing custom\n * injection tokens to components inside a portal.\n * @docs-private\n * @deprecated Use `Injector.create` instead.\n * @breaking-change 11.0.0\n */\nclass PortalInjector {\n constructor(_parentInjector, _customTokens) {\n this._parentInjector = _parentInjector;\n this._customTokens = _customTokens;\n }\n get(token, notFoundValue) {\n const value = this._customTokens.get(token);\n if (typeof value !== 'undefined') {\n return value;\n }\n return this._parentInjector.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/**\n * Generated bundle index. Do not edit.\n */\nexport { BasePortalHost, BasePortalOutlet, CdkPortal, CdkPortalOutlet, ComponentPortal, DomPortal, DomPortalHost, DomPortalOutlet, Portal, PortalHostDirective, PortalInjector, PortalModule, TemplatePortal, TemplatePortalDirective };\n\n\n\n" }, { "id": "6CTB", "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code.component.ts f2fc8e4b420fe88cba99c1b8ae794933", "name": "./src/app/custom-elements/code/code.component.ts + 1 modules", "index": 498, "index2": 504, "size": 16904, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [ 1 ], "issuer": null, "issuerId": null, "issuerName": null, "issuerPath": null, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": "DzVX", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-example.module.ts 2aa228a2ff7587f7bce947b2697ececf", "module": "./src/app/custom-elements/code/code-example.module.ts + 1 modules", "moduleName": "./src/app/custom-elements/code/code-example.module.ts + 1 modules", "type": "harmony side effect evaluation", "userRequest": "./code.component", "loc": "1:0-49" }, { "moduleId": "DzVX", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-example.module.ts 2aa228a2ff7587f7bce947b2697ececf", "module": "./src/app/custom-elements/code/code-example.module.ts + 1 modules", "moduleName": "./src/app/custom-elements/code/code-example.module.ts + 1 modules", "type": "harmony side effect evaluation", "userRequest": "./code.component", "loc": "4:0-39" }, { "moduleId": "DzVX", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-example.module.ts 2aa228a2ff7587f7bce947b2697ececf", "module": "./src/app/custom-elements/code/code-example.module.ts + 1 modules", "moduleName": "./src/app/custom-elements/code/code-example.module.ts + 1 modules", "type": "harmony import specifier", "userRequest": "./code.component", "loc": "70:31-44" }, { "moduleId": "DzVX", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-example.module.ts 2aa228a2ff7587f7bce947b2697ececf", "module": "./src/app/custom-elements/code/code-example.module.ts + 1 modules", "moduleName": "./src/app/custom-elements/code/code-example.module.ts + 1 modules", "type": "harmony import specifier", "userRequest": "./code.component", "loc": "96:33-49" }, { "moduleId": "g5Zp", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.module.ts 2d473952cbc52f3b0d84229606a38e44", "module": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "moduleName": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "type": "harmony side effect evaluation", "userRequest": "./code.component", "loc": "1:0-49" }, { "moduleId": "g5Zp", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.module.ts 2d473952cbc52f3b0d84229606a38e44", "module": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "moduleName": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "type": "harmony side effect evaluation", "userRequest": "./code.component", "loc": "6:0-39" }, { "moduleId": "g5Zp", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.module.ts 2d473952cbc52f3b0d84229606a38e44", "module": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "moduleName": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "type": "harmony import specifier", "userRequest": "./code.component", "loc": "81:31-44" }, { "moduleId": "g5Zp", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.module.ts 2d473952cbc52f3b0d84229606a38e44", "module": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "moduleName": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "type": "harmony import specifier", "userRequest": "./code.component", "loc": "106:91-107" } ], "usedExports": [ "CodeComponent" ], "providedExports": [ "CodeComponent" ], "optimizationBailout": [ "ModuleConcatenation bailout: Cannot concat with ./src/app/custom-elements/code/pretty-printer.service.ts because of ./src/app/custom-elements/code/code-example.module.ts", "ModuleConcatenation bailout: Cannot concat with ./src/app/shared/logger.service.ts", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/common/__ivy_ngcc__/fesm2015/common.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js because of ./src/app/custom-elements/code/code-example.module.ts", "ModuleConcatenation bailout: Cannot concat with ./node_modules/rxjs/_esm2015/internal/operators/tap.js" ], "depth": 7, "modules": [ { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code.component.ts", "name": "./src/app/custom-elements/code/code.component.ts", "index": 498, "index2": 504, "size": 7895, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [], "issuer": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-example.component.ts", "issuerId": null, "issuerName": "./src/app/custom-elements/code/code-example.component.ts", "issuerPath": [ { "id": 0, "identifier": "multi C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "multi ./src/main.ts", "profile": { "factory": 1, "building": 4 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "./src/main.ts", "profile": { "factory": 1577, "building": 684 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\app.module.ts", "name": "./src/app/app.module.ts", "profile": { "factory": 7434, "building": 6719, "dependencies": 19440 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\custom-elements.module.ts", "name": "./src/app/custom-elements/custom-elements.module.ts", "profile": { "factory": 26179, "building": 975, "dependencies": 19070 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "name": "./src/app/custom-elements/element-registry.ts", "profile": { "factory": 6786, "building": 1923, "dependencies": 1080 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-example.module.ts", "name": "./src/app/custom-elements/code/code-example.module.ts", "profile": { "factory": 3142, "building": 22, "dependencies": 2295 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-example.component.ts", "name": "./src/app/custom-elements/code/code-example.component.ts", "profile": { "factory": 1279, "building": 17, "dependencies": 3 } } ], "profile": { "factory": 610, "building": 117, "dependencies": 2490 }, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": "DzVX", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-example.module.ts 2aa228a2ff7587f7bce947b2697ececf", "module": "./src/app/custom-elements/code/code-example.module.ts + 1 modules", "moduleName": "./src/app/custom-elements/code/code-example.module.ts + 1 modules", "type": "harmony side effect evaluation", "userRequest": "./code.component", "loc": "1:0-49" }, { "moduleId": "DzVX", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-example.module.ts 2aa228a2ff7587f7bce947b2697ececf", "module": "./src/app/custom-elements/code/code-example.module.ts + 1 modules", "moduleName": "./src/app/custom-elements/code/code-example.module.ts + 1 modules", "type": "harmony side effect evaluation", "userRequest": "./code.component", "loc": "4:0-39" }, { "moduleId": "DzVX", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-example.module.ts 2aa228a2ff7587f7bce947b2697ececf", "module": "./src/app/custom-elements/code/code-example.module.ts + 1 modules", "moduleName": "./src/app/custom-elements/code/code-example.module.ts + 1 modules", "type": "harmony import specifier", "userRequest": "./code.component", "loc": "70:31-44" }, { "moduleId": "DzVX", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-example.module.ts 2aa228a2ff7587f7bce947b2697ececf", "module": "./src/app/custom-elements/code/code-example.module.ts + 1 modules", "moduleName": "./src/app/custom-elements/code/code-example.module.ts + 1 modules", "type": "harmony import specifier", "userRequest": "./code.component", "loc": "96:33-49" }, { "moduleId": "g5Zp", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.module.ts 2d473952cbc52f3b0d84229606a38e44", "module": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "moduleName": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "type": "harmony side effect evaluation", "userRequest": "./code.component", "loc": "1:0-49" }, { "moduleId": "g5Zp", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.module.ts 2d473952cbc52f3b0d84229606a38e44", "module": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "moduleName": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "type": "harmony side effect evaluation", "userRequest": "./code.component", "loc": "6:0-39" }, { "moduleId": "g5Zp", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.module.ts 2d473952cbc52f3b0d84229606a38e44", "module": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "moduleName": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "type": "harmony import specifier", "userRequest": "./code.component", "loc": "81:31-44" }, { "moduleId": "g5Zp", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.module.ts 2d473952cbc52f3b0d84229606a38e44", "module": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "moduleName": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "type": "harmony import specifier", "userRequest": "./code.component", "loc": "106:91-107" } ], "usedExports": [ "CodeComponent" ], "providedExports": [ "CodeComponent" ], "optimizationBailout": [], "depth": 7, "source": "import { EventEmitter } from '@angular/core';\nimport { tap } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/snack-bar\";\nimport * as i2 from \"./pretty-printer.service\";\nimport * as i3 from \"@angular/cdk/clipboard\";\nimport * as i4 from \"app/shared/logger.service\";\nimport * as i5 from \"@angular/common\";\nconst _c0 = [\"codeContainer\"];\nfunction CodeComponent_button_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 3);\n i0.ɵɵlistener(\"click\", function CodeComponent_button_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r2 = i0.ɵɵnextContext(); return ctx_r2.doCopy(); });\n i0.ɵɵtext(1, \"\\n \");\n i0.ɵɵelementStart(2, \"span\", 4);\n i0.ɵɵtext(3, \"content_copy\");\n i0.ɵɵelementEnd();\n i0.ɵɵtext(4, \"\\n \");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵattribute(\"aria-label\", ctx_r0.ariaLabel);\n }\n}\n/**\n * Formatted Code Block\n *\n * Pretty renders a code block, used in the docs and API reference by the code-example and\n * code-tabs embedded components.\n * It includes a \"copy\" button that will send the content to the clipboard when clicked\n *\n * Example usage:\n *\n * ```\n * \n * \n * ```\n *\n *\n * Renders code provided through the `updateCode` method.\n */\nexport let CodeComponent = /*@__PURE__*/ (() => {\n class CodeComponent {\n constructor(snackbar, pretty, clipboard, logger) {\n this.snackbar = snackbar;\n this.pretty = pretty;\n this.clipboard = clipboard;\n this.logger = logger;\n this.ariaLabel = '';\n this.codeFormatted = new EventEmitter();\n }\n /** Code that should be formatted with current inputs and displayed in the view. */\n set code(code) {\n this._code = code;\n if (!this._code || !this._code.trim()) {\n this.showMissingCodeMessage();\n }\n else {\n this.formatDisplayedCode();\n }\n }\n get code() { return this._code; }\n /** Optional header to be displayed above the code. */\n set header(header) {\n this._header = header;\n this.ariaLabel = this.header ? `Copy code snippet from ${this.header}` : '';\n }\n get header() { return this._header; }\n ngOnChanges() {\n // If some inputs have changed and there is code displayed, update the view with the latest\n // formatted code.\n if (this.code) {\n this.formatDisplayedCode();\n }\n }\n formatDisplayedCode() {\n const leftAlignedCode = leftAlign(this.code);\n this.setCodeHtml(leftAlignedCode); // start with unformatted code\n this.codeText = this.getCodeText(); // store the unformatted code as text (for copying)\n this.pretty\n .formatCode(leftAlignedCode, this.language, this.getLinenums())\n .pipe(tap(() => this.codeFormatted.emit()))\n .subscribe(c => this.setCodeHtml(c), () => { });\n }\n /** Sets the message showing that the code could not be found. */\n showMissingCodeMessage() {\n const src = this.path ? this.path + (this.region ? '#' + this.region : '') : '';\n const srcMsg = src ? ` for\\n${src}` : '.';\n this.setCodeHtml(`

The code sample is missing${srcMsg}

`);\n }\n /** Sets the innerHTML of the code container to the provided code string. */\n setCodeHtml(formattedCode) {\n // **Security:** Code example content is provided by docs authors and as such its considered to\n // be safe for innerHTML purposes.\n this.codeContainer.nativeElement.innerHTML = formattedCode;\n }\n /** Gets the textContent of the displayed code element. */\n getCodeText() {\n // `prettify` may remove newlines, e.g. when `linenums` are on. Retrieve the content of the\n // container as text, before prettifying it.\n // We take the textContent because we don't want it to be HTML encoded.\n return this.codeContainer.nativeElement.textContent;\n }\n /** Copies the code snippet to the user's clipboard. */\n doCopy() {\n const code = this.codeText;\n const successfullyCopied = this.clipboard.copy(code);\n if (successfullyCopied) {\n this.logger.log('Copied code to clipboard:', code);\n this.snackbar.open('Code Copied', '', { duration: 800 });\n }\n else {\n this.logger.error(new Error(`ERROR copying code to clipboard: \"${code}\"`));\n this.snackbar.open('Copy failed. Please try again!', '', { duration: 800 });\n }\n }\n /** Gets the calculated value of linenums (boolean/number). */\n getLinenums() {\n const linenums = typeof this.linenums === 'boolean' ? this.linenums :\n this.linenums === 'true' ? true :\n this.linenums === 'false' ? false :\n typeof this.linenums === 'string' ? parseInt(this.linenums, 10) :\n this.linenums;\n return (linenums != null) && !isNaN(linenums) && linenums;\n }\n }\n CodeComponent.ɵfac = function CodeComponent_Factory(t) { return new (t || CodeComponent)(i0.ɵɵdirectiveInject(i1.MatSnackBar), i0.ɵɵdirectiveInject(i2.PrettyPrinter), i0.ɵɵdirectiveInject(i3.Clipboard), i0.ɵɵdirectiveInject(i4.Logger)); };\n CodeComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CodeComponent, selectors: [[\"aio-code\"]], viewQuery: function CodeComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 3);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.codeContainer = _t.first);\n }\n }, inputs: { hideCopy: \"hideCopy\", language: \"language\", linenums: \"linenums\", path: \"path\", region: \"region\", header: \"header\" }, outputs: { codeFormatted: \"codeFormatted\" }, features: [i0.ɵɵNgOnChangesFeature], decls: 7, vars: 4, consts: [[\"class\", \"material-icons copy-button no-print\", \"title\", \"Copy code snippet\", 3, \"click\", 4, \"ngIf\"], [1, \"animated\", \"fadeIn\"], [\"codeContainer\", \"\"], [\"title\", \"Copy code snippet\", 1, \"material-icons\", \"copy-button\", \"no-print\", 3, \"click\"], [\"aria-hidden\", \"true\"]], template: function CodeComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"pre\");\n i0.ɵɵtext(1, \" \");\n i0.ɵɵtemplate(2, CodeComponent_button_2_Template, 5, 1, \"button\", 0);\n i0.ɵɵtext(3, \"\\n \");\n i0.ɵɵelement(4, \"code\", 1, 2);\n i0.ɵɵtext(6, \"\\n \");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵclassMapInterpolate1(\"prettyprint lang-\", ctx.language, \"\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", !ctx.hideCopy);\n }\n }, directives: [i5.NgIf], encapsulation: 2 });\n return CodeComponent;\n})();\nfunction leftAlign(text) {\n let indent = Number.MAX_VALUE;\n const lines = text.split('\\n');\n lines.forEach(line => {\n const lineIndent = line.search(/\\S/);\n if (lineIndent !== -1) {\n indent = Math.min(lineIndent, indent);\n }\n });\n return lines.map(line => line.substr(indent)).join('\\n').trim();\n}\n\n" }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\cdk\\__ivy_ngcc__\\fesm2015\\clipboard.js", "name": "./node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/clipboard.js", "index": 506, "index2": 503, "size": 8979, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [], "issuer": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code.component.ts", "issuerId": null, "issuerName": "./src/app/custom-elements/code/code.component.ts", "issuerPath": [ { "id": 0, "identifier": "multi C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "multi ./src/main.ts", "profile": { "factory": 1, "building": 4 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "./src/main.ts", "profile": { "factory": 1577, "building": 684 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\app.module.ts", "name": "./src/app/app.module.ts", "profile": { "factory": 7434, "building": 6719, "dependencies": 19440 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\custom-elements.module.ts", "name": "./src/app/custom-elements/custom-elements.module.ts", "profile": { "factory": 26179, "building": 975, "dependencies": 19070 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "name": "./src/app/custom-elements/element-registry.ts", "profile": { "factory": 6786, "building": 1923, "dependencies": 1080 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-example.module.ts", "name": "./src/app/custom-elements/code/code-example.module.ts", "profile": { "factory": 3142, "building": 22, "dependencies": 2295 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-example.component.ts", "name": "./src/app/custom-elements/code/code-example.component.ts", "profile": { "factory": 1279, "building": 17, "dependencies": 3 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code.component.ts", "name": "./src/app/custom-elements/code/code.component.ts", "profile": { "factory": 610, "building": 117, "dependencies": 2490 } } ], "profile": { "factory": 3309, "building": 56, "dependencies": 1799 }, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code.component.ts", "module": "./src/app/custom-elements/code/code.component.ts", "moduleName": "./src/app/custom-elements/code/code.component.ts", "type": "harmony side effect evaluation", "userRequest": "@angular/cdk/clipboard", "loc": "6:0-45" }, { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code.component.ts", "module": "./src/app/custom-elements/code/code.component.ts", "moduleName": "./src/app/custom-elements/code/code.component.ts", "type": "harmony import specifier", "userRequest": "@angular/cdk/clipboard", "loc": "133:192-204" } ], "usedExports": [ "Clipboard" ], "providedExports": [ "CDK_COPY_TO_CLIPBOARD_CONFIG", "CKD_COPY_TO_CLIPBOARD_CONFIG", "CdkCopyToClipboard", "Clipboard", "ClipboardModule", "PendingCopy" ], "optimizationBailout": [], "depth": 8, "source": "import { DOCUMENT } from '@angular/common';\nimport { ɵɵdefineInjectable, ɵɵinject, Injectable, Inject, InjectionToken, EventEmitter, Directive, NgZone, Optional, Input, Output, NgModule } from '@angular/core';\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 * A pending copy-to-clipboard operation.\n *\n * The implementation of copying text to the clipboard modifies the DOM and\n * forces a relayout. This relayout can take too long if the string is large,\n * causing the execCommand('copy') to happen too long after the user clicked.\n * This results in the browser refusing to copy. This object lets the\n * relayout happen in a separate tick from copying by providing a copy function\n * that can be called later.\n *\n * Destroy must be called when no longer in use, regardless of whether `copy` is\n * called.\n */\nimport * as ɵngcc0 from '@angular/core';\nclass PendingCopy {\n constructor(text, _document) {\n this._document = _document;\n const textarea = this._textarea = this._document.createElement('textarea');\n const styles = textarea.style;\n // Hide the element for display and accessibility. Set a fixed position so the page layout\n // isn't affected. We use `fixed` with `top: 0`, because focus is moved into the textarea\n // for a split second and if it's off-screen, some browsers will attempt to scroll it into view.\n styles.position = 'fixed';\n styles.top = styles.opacity = '0';\n styles.left = '-999em';\n textarea.setAttribute('aria-hidden', 'true');\n textarea.value = text;\n this._document.body.appendChild(textarea);\n }\n /** Finishes copying the text. */\n copy() {\n const textarea = this._textarea;\n let successful = false;\n try { // Older browsers could throw if copy is not supported.\n if (textarea) {\n const currentFocus = this._document.activeElement;\n textarea.select();\n textarea.setSelectionRange(0, textarea.value.length);\n successful = this._document.execCommand('copy');\n if (currentFocus) {\n currentFocus.focus();\n }\n }\n }\n catch (_a) {\n // Discard error.\n // Initial setting of {@code successful} will represent failure here.\n }\n return successful;\n }\n /** Cleans up DOM changes used to perform the copy operation. */\n destroy() {\n const textarea = this._textarea;\n if (textarea) {\n if (textarea.parentNode) {\n textarea.parentNode.removeChild(textarea);\n }\n this._textarea = undefined;\n }\n }\n}\nlet Clipboard = /*@__PURE__*/ (() => {\n class Clipboard {\n constructor(document) {\n this._document = document;\n }\n /**\n * Copies the provided text into the user's clipboard.\n *\n * @param text The string to copy.\n * @returns Whether the operation was successful.\n */\n copy(text) {\n const pendingCopy = this.beginCopy(text);\n const successful = pendingCopy.copy();\n pendingCopy.destroy();\n return successful;\n }\n /**\n * Prepares a string to be copied later. This is useful for large strings\n * which take too long to successfully render and be copied in the same tick.\n *\n * The caller must call `destroy` on the returned `PendingCopy`.\n *\n * @param text The string to copy.\n * @returns the pending copy operation.\n */\n beginCopy(text) {\n return new PendingCopy(text, this._document);\n }\n }\n Clipboard.ɵfac = function Clipboard_Factory(t) { return new (t || Clipboard)(ɵngcc0.ɵɵinject(DOCUMENT)); };\n Clipboard.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ factory: function Clipboard_Factory() { return new Clipboard(ɵɵinject(DOCUMENT)); }, token: Clipboard, providedIn: \"root\" });\n return Clipboard;\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/** Injection token that can be used to provide the default options to `CdkCopyToClipboard`. */\nconst CDK_COPY_TO_CLIPBOARD_CONFIG = /*@__PURE__*/ new InjectionToken('CDK_COPY_TO_CLIPBOARD_CONFIG');\n/**\n * @deprecated Use `CDK_COPY_TO_CLIPBOARD_CONFIG` instead.\n * @breaking-change 13.0.0\n */\nconst CKD_COPY_TO_CLIPBOARD_CONFIG = CDK_COPY_TO_CLIPBOARD_CONFIG;\nlet CdkCopyToClipboard = /*@__PURE__*/ (() => {\n class CdkCopyToClipboard {\n constructor(_clipboard, _ngZone, config) {\n this._clipboard = _clipboard;\n this._ngZone = _ngZone;\n /** Content to be copied. */\n this.text = '';\n /**\n * How many times to attempt to copy the text. This may be necessary for longer text, because\n * the browser needs time to fill an intermediate textarea element and copy the content.\n */\n this.attempts = 1;\n /**\n * Emits when some text is copied to the clipboard. The\n * emitted value indicates whether copying was successful.\n */\n this.copied = new EventEmitter();\n /** Copies that are currently being attempted. */\n this._pending = new Set();\n if (config && config.attempts != null) {\n this.attempts = config.attempts;\n }\n }\n /** Copies the current text to the clipboard. */\n copy(attempts = this.attempts) {\n if (attempts > 1) {\n let remainingAttempts = attempts;\n const pending = this._clipboard.beginCopy(this.text);\n this._pending.add(pending);\n const attempt = () => {\n const successful = pending.copy();\n if (!successful && --remainingAttempts && !this._destroyed) {\n // We use 1 for the timeout since it's more predictable when flushing in unit tests.\n this._currentTimeout = this._ngZone.runOutsideAngular(() => setTimeout(attempt, 1));\n }\n else {\n this._currentTimeout = null;\n this._pending.delete(pending);\n pending.destroy();\n this.copied.emit(successful);\n }\n };\n attempt();\n }\n else {\n this.copied.emit(this._clipboard.copy(this.text));\n }\n }\n ngOnDestroy() {\n if (this._currentTimeout) {\n clearTimeout(this._currentTimeout);\n }\n this._pending.forEach(copy => copy.destroy());\n this._pending.clear();\n this._destroyed = true;\n }\n }\n CdkCopyToClipboard.ɵfac = function CdkCopyToClipboard_Factory(t) { return new (t || CdkCopyToClipboard)(ɵngcc0.ɵɵdirectiveInject(Clipboard), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(CKD_COPY_TO_CLIPBOARD_CONFIG, 8)); };\n CdkCopyToClipboard.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CdkCopyToClipboard, selectors: [[\"\", \"cdkCopyToClipboard\", \"\"]], hostBindings: function CdkCopyToClipboard_HostBindings(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function CdkCopyToClipboard_click_HostBindingHandler() { return ctx.copy(); });\n }\n }, inputs: { text: [\"cdkCopyToClipboard\", \"text\"], attempts: [\"cdkCopyToClipboardAttempts\", \"attempts\"] }, outputs: { copied: \"cdkCopyToClipboardCopied\" } });\n return CdkCopyToClipboard;\n})();\nlet ClipboardModule = /*@__PURE__*/ (() => {\n class ClipboardModule {\n }\n ClipboardModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: ClipboardModule });\n ClipboardModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ factory: function ClipboardModule_Factory(t) { return new (t || ClipboardModule)(); } });\n return ClipboardModule;\n})();\n/*@__PURE__*/ (function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(ClipboardModule, { declarations: [CdkCopyToClipboard], exports: [CdkCopyToClipboard] }); })();\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 * Generated bundle index. Do not edit.\n */\nexport { CDK_COPY_TO_CLIPBOARD_CONFIG, CKD_COPY_TO_CLIPBOARD_CONFIG, CdkCopyToClipboard, Clipboard, ClipboardModule, PendingCopy };\n\n\n\n" } ], "filteredModules": 0 }, { "id": "V90o", "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code.module.ts", "name": "./src/app/custom-elements/code/code.module.ts", "index": 507, "index2": 506, "size": 583, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [ 1 ], "issuer": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-example.module.ts", "issuerId": null, "issuerName": "./src/app/custom-elements/code/code-example.module.ts", "issuerPath": [ { "id": 0, "identifier": "multi C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "multi ./src/main.ts", "profile": { "factory": 1, "building": 4 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "./src/main.ts", "profile": { "factory": 1577, "building": 684 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\app.module.ts", "name": "./src/app/app.module.ts", "profile": { "factory": 7434, "building": 6719, "dependencies": 19440 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\custom-elements.module.ts", "name": "./src/app/custom-elements/custom-elements.module.ts", "profile": { "factory": 26179, "building": 975, "dependencies": 19070 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "name": "./src/app/custom-elements/element-registry.ts", "profile": { "factory": 6786, "building": 1923, "dependencies": 1080 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-example.module.ts", "name": "./src/app/custom-elements/code/code-example.module.ts", "profile": { "factory": 3142, "building": 22, "dependencies": 2295 } } ], "profile": { "factory": 1279, "building": 17, "dependencies": 3 }, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": "DzVX", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-example.module.ts 2aa228a2ff7587f7bce947b2697ececf", "module": "./src/app/custom-elements/code/code-example.module.ts + 1 modules", "moduleName": "./src/app/custom-elements/code/code-example.module.ts + 1 modules", "type": "harmony side effect evaluation", "userRequest": "./code.module", "loc": "3:0-43" }, { "moduleId": "DzVX", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-example.module.ts 2aa228a2ff7587f7bce947b2697ececf", "module": "./src/app/custom-elements/code/code-example.module.ts + 1 modules", "moduleName": "./src/app/custom-elements/code/code-example.module.ts + 1 modules", "type": "harmony import specifier", "userRequest": "./code.module", "loc": "12:167-177" }, { "moduleId": "g5Zp", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.module.ts 2d473952cbc52f3b0d84229606a38e44", "module": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "moduleName": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "type": "harmony side effect evaluation", "userRequest": "./code.module", "loc": "5:0-43" }, { "moduleId": "g5Zp", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.module.ts 2d473952cbc52f3b0d84229606a38e44", "module": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "moduleName": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "type": "harmony import specifier", "userRequest": "./code.module", "loc": "14:188-198" } ], "usedExports": [ "CodeModule" ], "providedExports": [ "CodeModule" ], "optimizationBailout": [], "depth": 6, "source": "import { CommonModule } from '@angular/common';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { PrettyPrinter } from './pretty-printer.service';\nimport * as i0 from \"@angular/core\";\nexport let CodeModule = /*@__PURE__*/ (() => {\n class CodeModule {\n }\n CodeModule.ɵmod = i0.ɵɵdefineNgModule({ type: CodeModule });\n CodeModule.ɵinj = i0.ɵɵdefineInjector({ factory: function CodeModule_Factory(t) { return new (t || CodeModule)(); }, providers: [PrettyPrinter], imports: [[CommonModule, MatSnackBarModule]] });\n return CodeModule;\n})();\n\n" }, { "id": "dNgK", "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\snack-bar.js 5270793f0283c274b2c2ed0d819b1a14", "name": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js + 4 modules", "index": 500, "index2": 502, "size": 182336, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [ 1 ], "issuer": null, "issuerId": null, "issuerName": null, "issuerPath": null, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": "6CTB", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code.component.ts f2fc8e4b420fe88cba99c1b8ae794933", "module": "./src/app/custom-elements/code/code.component.ts + 1 modules", "moduleName": "./src/app/custom-elements/code/code.component.ts + 1 modules", "type": "harmony side effect evaluation", "userRequest": "@angular/material/snack-bar", "loc": "4:0-50" }, { "moduleId": "6CTB", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code.component.ts f2fc8e4b420fe88cba99c1b8ae794933", "module": "./src/app/custom-elements/code/code.component.ts + 1 modules", "moduleName": "./src/app/custom-elements/code/code.component.ts + 1 modules", "type": "harmony import specifier", "userRequest": "@angular/material/snack-bar", "loc": "133:114-128" }, { "moduleId": "V90o", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code.module.ts", "module": "./src/app/custom-elements/code/code.module.ts", "moduleName": "./src/app/custom-elements/code/code.module.ts", "type": "harmony side effect evaluation", "userRequest": "@angular/material/snack-bar", "loc": "2:0-64" }, { "moduleId": "V90o", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code.module.ts", "module": "./src/app/custom-elements/code/code.module.ts", "moduleName": "./src/app/custom-elements/code/code.module.ts", "type": "harmony import specifier", "userRequest": "@angular/material/snack-bar", "loc": "9:174-191" } ], "usedExports": [ "MatSnackBar", "MatSnackBarModule" ], "providedExports": [ "MAT_SNACK_BAR_DATA", "MAT_SNACK_BAR_DEFAULT_OPTIONS", "MAT_SNACK_BAR_DEFAULT_OPTIONS_FACTORY", "MatSnackBar", "MatSnackBarConfig", "MatSnackBarContainer", "MatSnackBarModule", "MatSnackBarRef", "SimpleSnackBar", "matSnackBarAnimations" ], "optimizationBailout": [ "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/animations/__ivy_ngcc__/fesm2015/animations.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/a11y.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/bidi.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/keycodes.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/platform.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/portal.js because of ./node_modules/@angular/material/__ivy_ngcc__/fesm2015/tabs.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/scrolling.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/cdk/fesm2015/coercion.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/common/__ivy_ngcc__/fesm2015/common.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/material/__ivy_ngcc__/fesm2015/button.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/material/__ivy_ngcc__/fesm2015/core.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/rxjs/_esm2015/internal/Observable.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/rxjs/_esm2015/internal/Subject.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/rxjs/_esm2015/internal/Subscriber.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/rxjs/_esm2015/internal/Subscription.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/rxjs/_esm2015/internal/observable/combineLatest.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/rxjs/_esm2015/internal/observable/concat.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/rxjs/_esm2015/internal/observable/merge.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/rxjs/_esm2015/internal/operators/debounceTime.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/rxjs/_esm2015/internal/operators/map.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/rxjs/_esm2015/internal/operators/startWith.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/rxjs/_esm2015/internal/operators/take.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/rxjs/_esm2015/internal/operators/takeUntil.js" ], "depth": 7, "modules": [ { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\rxjs\\_esm2015\\internal\\operators\\takeWhile.js", "name": "./node_modules/rxjs/_esm2015/internal/operators/takeWhile.js", "index": 503, "index2": 498, "size": 1344, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [], "issuer": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\rxjs\\_esm2015\\operators\\index.js", "issuerId": "kU1M", "issuerName": "./node_modules/rxjs/_esm2015/operators/index.js", "issuerPath": [ { "id": 0, "identifier": "multi C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "multi ./src/main.ts", "profile": { "factory": 1, "building": 4 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "./src/main.ts", "profile": { "factory": 1577, "building": 684 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\app.module.ts", "name": "./src/app/app.module.ts", "profile": { "factory": 7434, "building": 6719, "dependencies": 19440 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\sw-updates\\sw-updates.module.ts", "name": "./src/app/sw-updates/sw-updates.module.ts", "profile": { "factory": 26179, "building": 975, "dependencies": 19070 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\sw-updates\\sw-updates.service.ts", "name": "./src/app/sw-updates/sw-updates.service.ts", "profile": { "factory": 19070, "building": 212, "dependencies": 5641 } }, { "id": "kU1M", "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\rxjs\\_esm2015\\operators\\index.js", "name": "./node_modules/rxjs/_esm2015/operators/index.js", "profile": { "factory": 12891, "building": 1110, "dependencies": 12893 } } ], "profile": { "factory": 2423, "building": 2022, "dependencies": 2648 }, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\cdk\\__ivy_ngcc__\\fesm2015\\overlay.js", "module": "./node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/overlay.js", "moduleName": "./node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/overlay.js", "type": "harmony import specifier", "explanation": "(skipped side-effect-free modules)", "userRequest": "rxjs/operators", "loc": "2746:26-35" }, { "moduleId": "kU1M", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\rxjs\\_esm2015\\operators\\index.js", "module": "./node_modules/rxjs/_esm2015/operators/index.js", "moduleName": "./node_modules/rxjs/_esm2015/operators/index.js", "type": "harmony side effect evaluation", "userRequest": "../internal/operators/takeWhile", "loc": "87:0-60" }, { "moduleId": "kU1M", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\rxjs\\_esm2015\\operators\\index.js", "module": "./node_modules/rxjs/_esm2015/operators/index.js", "moduleName": "./node_modules/rxjs/_esm2015/operators/index.js", "type": "harmony export imported specifier", "userRequest": "../internal/operators/takeWhile", "loc": "87:0-60" } ], "usedExports": [ "takeWhile" ], "providedExports": [ "takeWhile" ], "optimizationBailout": [], "depth": 4, "source": "import { Subscriber } from '../Subscriber';\nexport function takeWhile(predicate, inclusive = false) {\n return (source) => source.lift(new TakeWhileOperator(predicate, inclusive));\n}\nclass TakeWhileOperator {\n constructor(predicate, inclusive) {\n this.predicate = predicate;\n this.inclusive = inclusive;\n }\n call(subscriber, source) {\n return source.subscribe(new TakeWhileSubscriber(subscriber, this.predicate, this.inclusive));\n }\n}\nclass TakeWhileSubscriber extends Subscriber {\n constructor(destination, predicate, inclusive) {\n super(destination);\n this.predicate = predicate;\n this.inclusive = inclusive;\n this.index = 0;\n }\n _next(value) {\n const destination = this.destination;\n let result;\n try {\n result = this.predicate(value, this.index++);\n }\n catch (err) {\n destination.error(err);\n return;\n }\n this.nextOrComplete(value, result);\n }\n nextOrComplete(value, predicateResult) {\n const destination = this.destination;\n if (Boolean(predicateResult)) {\n destination.next(value);\n }\n else {\n if (this.inclusive) {\n destination.next(value);\n }\n destination.complete();\n }\n }\n}\n\n\n\n" }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\rxjs\\_esm2015\\internal\\operators\\skip.js", "name": "./node_modules/rxjs/_esm2015/internal/operators/skip.js", "index": 505, "index2": 500, "size": 614, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [], "issuer": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\rxjs\\_esm2015\\operators\\index.js", "issuerId": "kU1M", "issuerName": "./node_modules/rxjs/_esm2015/operators/index.js", "issuerPath": [ { "id": 0, "identifier": "multi C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "multi ./src/main.ts", "profile": { "factory": 1, "building": 4 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "./src/main.ts", "profile": { "factory": 1577, "building": 684 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\app.module.ts", "name": "./src/app/app.module.ts", "profile": { "factory": 7434, "building": 6719, "dependencies": 19440 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\sw-updates\\sw-updates.module.ts", "name": "./src/app/sw-updates/sw-updates.module.ts", "profile": { "factory": 26179, "building": 975, "dependencies": 19070 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\sw-updates\\sw-updates.service.ts", "name": "./src/app/sw-updates/sw-updates.service.ts", "profile": { "factory": 19070, "building": 212, "dependencies": 5641 } }, { "id": "kU1M", "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\rxjs\\_esm2015\\operators\\index.js", "name": "./node_modules/rxjs/_esm2015/operators/index.js", "profile": { "factory": 12891, "building": 1110, "dependencies": 12893 } } ], "profile": { "factory": 2423, "building": 2022, "dependencies": 2648 }, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\cdk\\__ivy_ngcc__\\fesm2015\\layout.js", "module": "./node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/layout.js", "moduleName": "./node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/layout.js", "type": "harmony import specifier", "explanation": "(skipped side-effect-free modules)", "userRequest": "rxjs/operators", "loc": "130:89-93" }, { "moduleId": "kU1M", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\rxjs\\_esm2015\\operators\\index.js", "module": "./node_modules/rxjs/_esm2015/operators/index.js", "moduleName": "./node_modules/rxjs/_esm2015/operators/index.js", "type": "harmony side effect evaluation", "userRequest": "../internal/operators/skip", "loc": "75:0-50" }, { "moduleId": "kU1M", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\rxjs\\_esm2015\\operators\\index.js", "module": "./node_modules/rxjs/_esm2015/operators/index.js", "moduleName": "./node_modules/rxjs/_esm2015/operators/index.js", "type": "harmony export imported specifier", "userRequest": "../internal/operators/skip", "loc": "75:0-50" } ], "usedExports": [ "skip" ], "providedExports": [ "skip" ], "optimizationBailout": [], "depth": 4, "source": "import { Subscriber } from '../Subscriber';\nexport function skip(count) {\n return (source) => source.lift(new SkipOperator(count));\n}\nclass SkipOperator {\n constructor(total) {\n this.total = total;\n }\n call(subscriber, source) {\n return source.subscribe(new SkipSubscriber(subscriber, this.total));\n }\n}\nclass SkipSubscriber extends Subscriber {\n constructor(destination, total) {\n super(destination);\n this.total = total;\n this.count = 0;\n }\n _next(x) {\n if (++this.count > this.total) {\n this.destination.next(x);\n }\n }\n}\n\n\n\n" }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\snack-bar.js", "name": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js", "index": 500, "index2": 502, "size": 34316, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [], "issuer": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code.module.ts", "issuerId": "V90o", "issuerName": "./src/app/custom-elements/code/code.module.ts", "issuerPath": [ { "id": 0, "identifier": "multi C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "multi ./src/main.ts", "profile": { "factory": 1, "building": 4 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "./src/main.ts", "profile": { "factory": 1577, "building": 684 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\app.module.ts", "name": "./src/app/app.module.ts", "profile": { "factory": 7434, "building": 6719, "dependencies": 19440 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\custom-elements.module.ts", "name": "./src/app/custom-elements/custom-elements.module.ts", "profile": { "factory": 26179, "building": 975, "dependencies": 19070 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "name": "./src/app/custom-elements/element-registry.ts", "profile": { "factory": 6786, "building": 1923, "dependencies": 1080 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-example.module.ts", "name": "./src/app/custom-elements/code/code-example.module.ts", "profile": { "factory": 3142, "building": 22, "dependencies": 2295 } }, { "id": "V90o", "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code.module.ts", "name": "./src/app/custom-elements/code/code.module.ts", "profile": { "factory": 1279, "building": 17, "dependencies": 3 } } ], "profile": { "factory": 3196, "building": 796, "dependencies": 1880 }, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": "6CTB", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code.component.ts f2fc8e4b420fe88cba99c1b8ae794933", "module": "./src/app/custom-elements/code/code.component.ts + 1 modules", "moduleName": "./src/app/custom-elements/code/code.component.ts + 1 modules", "type": "harmony side effect evaluation", "userRequest": "@angular/material/snack-bar", "loc": "4:0-50" }, { "moduleId": "6CTB", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code.component.ts f2fc8e4b420fe88cba99c1b8ae794933", "module": "./src/app/custom-elements/code/code.component.ts + 1 modules", "moduleName": "./src/app/custom-elements/code/code.component.ts + 1 modules", "type": "harmony import specifier", "userRequest": "@angular/material/snack-bar", "loc": "133:114-128" }, { "moduleId": "V90o", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code.module.ts", "module": "./src/app/custom-elements/code/code.module.ts", "moduleName": "./src/app/custom-elements/code/code.module.ts", "type": "harmony side effect evaluation", "userRequest": "@angular/material/snack-bar", "loc": "2:0-64" }, { "moduleId": "V90o", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code.module.ts", "module": "./src/app/custom-elements/code/code.module.ts", "moduleName": "./src/app/custom-elements/code/code.module.ts", "type": "harmony import specifier", "userRequest": "@angular/material/snack-bar", "loc": "9:174-191" } ], "usedExports": [ "MatSnackBar", "MatSnackBarModule" ], "providedExports": [ "MAT_SNACK_BAR_DATA", "MAT_SNACK_BAR_DEFAULT_OPTIONS", "MAT_SNACK_BAR_DEFAULT_OPTIONS_FACTORY", "MatSnackBar", "MatSnackBarConfig", "MatSnackBarContainer", "MatSnackBarModule", "MatSnackBarRef", "SimpleSnackBar", "matSnackBarAnimations" ], "optimizationBailout": [], "depth": 7, "source": "import { OverlayModule, OverlayConfig, Overlay } from '@angular/cdk/overlay';\nimport { BasePortalOutlet, CdkPortalOutlet, PortalModule, ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { InjectionToken, Component, ViewEncapsulation, ChangeDetectionStrategy, Inject, NgZone, ElementRef, ChangeDetectorRef, ViewChild, NgModule, Injector, TemplateRef, ɵɵdefineInjectable, ɵɵinject, INJECTOR, Injectable, Optional, SkipSelf } from '@angular/core';\nimport { MatCommonModule } from '@angular/material/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { Subject } from 'rxjs';\nimport { Platform } from '@angular/cdk/platform';\nimport { take, takeUntil } from 'rxjs/operators';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport { LiveAnnouncer } from '@angular/cdk/a11y';\nimport { Breakpoints, BreakpointObserver } from '@angular/cdk/layout';\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/** Injection token that can be used to access the data that was passed in to a snack bar. */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/common';\nimport * as ɵngcc2 from '@angular/material/button';\nimport * as ɵngcc3 from '@angular/cdk/platform';\nimport * as ɵngcc4 from '@angular/cdk/portal';\nimport * as ɵngcc5 from '@angular/cdk/overlay';\nimport * as ɵngcc6 from '@angular/cdk/a11y';\nimport * as ɵngcc7 from '@angular/cdk/layout';\nfunction SimpleSnackBar_div_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r2 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 1);\n ɵngcc0.ɵɵelementStart(1, \"button\", 2);\n ɵngcc0.ɵɵlistener(\"click\", function SimpleSnackBar_div_2_Template_button_click_1_listener() { ɵngcc0.ɵɵrestoreView(_r2); const ctx_r1 = ɵngcc0.ɵɵnextContext(); return ctx_r1.action(); });\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate(ctx_r0.data.action);\n }\n}\nfunction MatSnackBarContainer_ng_template_1_Template(rf, ctx) { }\nconst MAT_SNACK_BAR_DATA = /*@__PURE__*/ new InjectionToken('MatSnackBarData');\n/**\n * Configuration used when opening a snack-bar.\n */\nclass MatSnackBarConfig {\n constructor() {\n /** The politeness level for the MatAriaLiveAnnouncer announcement. */\n this.politeness = 'assertive';\n /**\n * Message to be announced by the LiveAnnouncer. When opening a snackbar without a custom\n * component or template, the announcement message will default to the specified message.\n */\n this.announcementMessage = '';\n /** The length of time in milliseconds to wait before automatically dismissing the snack bar. */\n this.duration = 0;\n /** Data being injected into the child component. */\n this.data = null;\n /** The horizontal position to place the snack bar. */\n this.horizontalPosition = 'center';\n /** The vertical position to place the snack bar. */\n this.verticalPosition = 'bottom';\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/** Maximum amount of milliseconds that can be passed into setTimeout. */\nconst MAX_TIMEOUT = /*@__PURE__*/ Math.pow(2, 31) - 1;\n/**\n * Reference to a snack bar dispatched from the snack bar service.\n */\nclass MatSnackBarRef {\n constructor(containerInstance, _overlayRef) {\n this._overlayRef = _overlayRef;\n /** Subject for notifying the user that the snack bar has been dismissed. */\n this._afterDismissed = new Subject();\n /** Subject for notifying the user that the snack bar has opened and appeared. */\n this._afterOpened = new Subject();\n /** Subject for notifying the user that the snack bar action was called. */\n this._onAction = new Subject();\n /** Whether the snack bar was dismissed using the action button. */\n this._dismissedByAction = false;\n this.containerInstance = containerInstance;\n // Dismiss snackbar on action.\n this.onAction().subscribe(() => this.dismiss());\n containerInstance._onExit.subscribe(() => this._finishDismiss());\n }\n /** Dismisses the snack bar. */\n dismiss() {\n if (!this._afterDismissed.closed) {\n this.containerInstance.exit();\n }\n clearTimeout(this._durationTimeoutId);\n }\n /** Marks the snackbar action clicked. */\n dismissWithAction() {\n if (!this._onAction.closed) {\n this._dismissedByAction = true;\n this._onAction.next();\n this._onAction.complete();\n }\n }\n /**\n * Marks the snackbar action clicked.\n * @deprecated Use `dismissWithAction` instead.\n * @breaking-change 8.0.0\n */\n closeWithAction() {\n this.dismissWithAction();\n }\n /** Dismisses the snack bar after some duration */\n _dismissAfter(duration) {\n // Note that we need to cap the duration to the maximum value for setTimeout, because\n // it'll revert to 1 if somebody passes in something greater (e.g. `Infinity`). See #17234.\n this._durationTimeoutId = setTimeout(() => this.dismiss(), Math.min(duration, MAX_TIMEOUT));\n }\n /** Marks the snackbar as opened */\n _open() {\n if (!this._afterOpened.closed) {\n this._afterOpened.next();\n this._afterOpened.complete();\n }\n }\n /** Cleans up the DOM after closing. */\n _finishDismiss() {\n this._overlayRef.dispose();\n if (!this._onAction.closed) {\n this._onAction.complete();\n }\n this._afterDismissed.next({ dismissedByAction: this._dismissedByAction });\n this._afterDismissed.complete();\n this._dismissedByAction = false;\n }\n /** Gets an observable that is notified when the snack bar is finished closing. */\n afterDismissed() {\n return this._afterDismissed;\n }\n /** Gets an observable that is notified when the snack bar has opened and appeared. */\n afterOpened() {\n return this.containerInstance._onEnter;\n }\n /** Gets an observable that is notified when the snack bar action is called. */\n onAction() {\n return this._onAction;\n }\n}\nlet SimpleSnackBar = /*@__PURE__*/ (() => {\n class SimpleSnackBar {\n constructor(snackBarRef, data) {\n this.snackBarRef = snackBarRef;\n this.data = data;\n }\n /** Performs the action on the snack bar. */\n action() {\n this.snackBarRef.dismissWithAction();\n }\n /** If the action button should be shown. */\n get hasAction() {\n return !!this.data.action;\n }\n }\n SimpleSnackBar.ɵfac = function SimpleSnackBar_Factory(t) { return new (t || SimpleSnackBar)(ɵngcc0.ɵɵdirectiveInject(MatSnackBarRef), ɵngcc0.ɵɵdirectiveInject(MAT_SNACK_BAR_DATA)); };\n SimpleSnackBar.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SimpleSnackBar, selectors: [[\"simple-snack-bar\"]], hostAttrs: [1, \"mat-simple-snackbar\"], decls: 3, vars: 2, consts: [[\"class\", \"mat-simple-snackbar-action\", 4, \"ngIf\"], [1, \"mat-simple-snackbar-action\"], [\"mat-button\", \"\", 3, \"click\"]], template: function SimpleSnackBar_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\");\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(2, SimpleSnackBar_div_2_Template, 3, 1, \"div\", 0);\n }\n if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx.data.message);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.hasAction);\n }\n }, directives: [ɵngcc1.NgIf, ɵngcc2.MatButton], styles: [\".mat-simple-snackbar{display:flex;justify-content:space-between;align-items:center;line-height:20px;opacity:1}.mat-simple-snackbar-action{flex-shrink:0;margin:-8px -8px -8px 8px}.mat-simple-snackbar-action button{max-height:36px;min-width:0}[dir=rtl] .mat-simple-snackbar-action{margin-left:-8px;margin-right:8px}\\n\"], encapsulation: 2, changeDetection: 0 });\n return SimpleSnackBar;\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 * Animations used by the Material snack bar.\n * @docs-private\n */\nconst matSnackBarAnimations = {\n /** Animation that shows and hides a snack bar. */\n snackBarState: /*@__PURE__*/ trigger('state', [\n /*@__PURE__*/ state('void, hidden', /*@__PURE__*/ style({\n transform: 'scale(0.8)',\n opacity: 0,\n })),\n /*@__PURE__*/ state('visible', /*@__PURE__*/ style({\n transform: 'scale(1)',\n opacity: 1,\n })),\n /*@__PURE__*/ transition('* => visible', /*@__PURE__*/ animate('150ms cubic-bezier(0, 0, 0.2, 1)')),\n /*@__PURE__*/ transition('* => void, * => hidden', /*@__PURE__*/ animate('75ms cubic-bezier(0.4, 0.0, 1, 1)', /*@__PURE__*/ style({\n opacity: 0\n }))),\n ])\n};\nlet MatSnackBarContainer = /*@__PURE__*/ (() => {\n class MatSnackBarContainer extends BasePortalOutlet {\n constructor(_ngZone, _elementRef, _changeDetectorRef, _platform, \n /** The snack bar configuration. */\n snackBarConfig) {\n super();\n this._ngZone = _ngZone;\n this._elementRef = _elementRef;\n this._changeDetectorRef = _changeDetectorRef;\n this._platform = _platform;\n this.snackBarConfig = snackBarConfig;\n /** The number of milliseconds to wait before announcing the snack bar's content. */\n this._announceDelay = 150;\n /** Whether the component has been destroyed. */\n this._destroyed = false;\n /** Subject for notifying that the snack bar has announced to screen readers. */\n this._onAnnounce = new Subject();\n /** Subject for notifying that the snack bar has exited from view. */\n this._onExit = new Subject();\n /** Subject for notifying that the snack bar has finished entering the view. */\n this._onEnter = new Subject();\n /** The state of the snack bar animations. */\n this._animationState = 'void';\n /**\n * Attaches a DOM portal to the snack bar container.\n * @deprecated To be turned into a method.\n * @breaking-change 10.0.0\n */\n this.attachDomPortal = (portal) => {\n this._assertNotAttached();\n this._applySnackBarClasses();\n return this._portalOutlet.attachDomPortal(portal);\n };\n // Use aria-live rather than a live role like 'alert' or 'status'\n // because NVDA and JAWS have show inconsistent behavior with live roles.\n if (snackBarConfig.politeness === 'assertive' && !snackBarConfig.announcementMessage) {\n this._live = 'assertive';\n }\n else if (snackBarConfig.politeness === 'off') {\n this._live = 'off';\n }\n else {\n this._live = 'polite';\n }\n // Only set role for Firefox. Set role based on aria-live because setting role=\"alert\" implies\n // aria-live=\"assertive\" which may cause issues if aria-live is set to \"polite\" above.\n if (this._platform.FIREFOX) {\n if (this._live === 'polite') {\n this._role = 'status';\n }\n if (this._live === 'assertive') {\n this._role = 'alert';\n }\n }\n }\n /** Attach a component portal as content to this snack bar container. */\n attachComponentPortal(portal) {\n this._assertNotAttached();\n this._applySnackBarClasses();\n return this._portalOutlet.attachComponentPortal(portal);\n }\n /** Attach a template portal as content to this snack bar container. */\n attachTemplatePortal(portal) {\n this._assertNotAttached();\n this._applySnackBarClasses();\n return this._portalOutlet.attachTemplatePortal(portal);\n }\n /** Handle end of animations, updating the state of the snackbar. */\n onAnimationEnd(event) {\n const { fromState, toState } = event;\n if ((toState === 'void' && fromState !== 'void') || toState === 'hidden') {\n this._completeExit();\n }\n if (toState === 'visible') {\n // Note: we shouldn't use `this` inside the zone callback,\n // because it can cause a memory leak.\n const onEnter = this._onEnter;\n this._ngZone.run(() => {\n onEnter.next();\n onEnter.complete();\n });\n }\n }\n /** Begin animation of snack bar entrance into view. */\n enter() {\n if (!this._destroyed) {\n this._animationState = 'visible';\n this._changeDetectorRef.detectChanges();\n this._screenReaderAnnounce();\n }\n }\n /** Begin animation of the snack bar exiting from view. */\n exit() {\n // Note: this one transitions to `hidden`, rather than `void`, in order to handle the case\n // where multiple snack bars are opened in quick succession (e.g. two consecutive calls to\n // `MatSnackBar.open`).\n this._animationState = 'hidden';\n // Mark this element with an 'exit' attribute to indicate that the snackbar has\n // been dismissed and will soon be removed from the DOM. This is used by the snackbar\n // test harness.\n this._elementRef.nativeElement.setAttribute('mat-exit', '');\n // If the snack bar hasn't been announced by the time it exits it wouldn't have been open\n // long enough to visually read it either, so clear the timeout for announcing.\n clearTimeout(this._announceTimeoutId);\n return this._onExit;\n }\n /** Makes sure the exit callbacks have been invoked when the element is destroyed. */\n ngOnDestroy() {\n this._destroyed = true;\n this._completeExit();\n }\n /**\n * Waits for the zone to settle before removing the element. Helps prevent\n * errors where we end up removing an element which is in the middle of an animation.\n */\n _completeExit() {\n this._ngZone.onMicrotaskEmpty.pipe(take(1)).subscribe(() => {\n this._onExit.next();\n this._onExit.complete();\n });\n }\n /** Applies the various positioning and user-configured CSS classes to the snack bar. */\n _applySnackBarClasses() {\n const element = this._elementRef.nativeElement;\n const panelClasses = this.snackBarConfig.panelClass;\n if (panelClasses) {\n if (Array.isArray(panelClasses)) {\n // Note that we can't use a spread here, because IE doesn't support multiple arguments.\n panelClasses.forEach(cssClass => element.classList.add(cssClass));\n }\n else {\n element.classList.add(panelClasses);\n }\n }\n if (this.snackBarConfig.horizontalPosition === 'center') {\n element.classList.add('mat-snack-bar-center');\n }\n if (this.snackBarConfig.verticalPosition === 'top') {\n element.classList.add('mat-snack-bar-top');\n }\n }\n /** Asserts that no content is already attached to the container. */\n _assertNotAttached() {\n if (this._portalOutlet.hasAttached() && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Attempting to attach snack bar content after content is already attached');\n }\n }\n /**\n * Starts a timeout to move the snack bar content to the live region so screen readers will\n * announce it.\n */\n _screenReaderAnnounce() {\n if (!this._announceTimeoutId) {\n this._ngZone.runOutsideAngular(() => {\n this._announceTimeoutId = setTimeout(() => {\n const inertElement = this._elementRef.nativeElement.querySelector('[aria-hidden]');\n const liveElement = this._elementRef.nativeElement.querySelector('[aria-live]');\n if (inertElement && liveElement) {\n // If an element in the snack bar content is focused before being moved\n // track it and restore focus after moving to the live region.\n let focusedElement = null;\n if (this._platform.isBrowser &&\n document.activeElement instanceof HTMLElement &&\n inertElement.contains(document.activeElement)) {\n focusedElement = document.activeElement;\n }\n inertElement.removeAttribute('aria-hidden');\n liveElement.appendChild(inertElement);\n focusedElement === null || focusedElement === void 0 ? void 0 : focusedElement.focus();\n this._onAnnounce.next();\n this._onAnnounce.complete();\n }\n }, this._announceDelay);\n });\n }\n }\n }\n MatSnackBarContainer.ɵfac = function MatSnackBarContainer_Factory(t) { return new (t || MatSnackBarContainer)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc3.Platform), ɵngcc0.ɵɵdirectiveInject(MatSnackBarConfig)); };\n MatSnackBarContainer.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: MatSnackBarContainer, selectors: [[\"snack-bar-container\"]], viewQuery: function MatSnackBarContainer_Query(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(CdkPortalOutlet, 3);\n }\n if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._portalOutlet = _t.first);\n }\n }, hostAttrs: [1, \"mat-snack-bar-container\"], hostVars: 1, hostBindings: function MatSnackBarContainer_HostBindings(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵsyntheticHostListener(\"@state.done\", function MatSnackBarContainer_animation_state_done_HostBindingHandler($event) { return ctx.onAnimationEnd($event); });\n }\n if (rf & 2) {\n ɵngcc0.ɵɵsyntheticHostProperty(\"@state\", ctx._animationState);\n }\n }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 3, vars: 2, consts: [[\"aria-hidden\", \"true\"], [\"cdkPortalOutlet\", \"\"]], template: function MatSnackBarContainer_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 0);\n ɵngcc0.ɵɵtemplate(1, MatSnackBarContainer_ng_template_1_Template, 0, 0, \"ng-template\", 1);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelement(2, \"div\");\n }\n if (rf & 2) {\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵattribute(\"aria-live\", ctx._live)(\"role\", ctx._role);\n }\n }, directives: [ɵngcc4.CdkPortalOutlet], styles: [\".mat-snack-bar-container{border-radius:4px;box-sizing:border-box;display:block;margin:24px;max-width:33vw;min-width:344px;padding:14px 16px;min-height:48px;transform-origin:center}.cdk-high-contrast-active .mat-snack-bar-container{border:solid 1px}.mat-snack-bar-handset{width:100%}.mat-snack-bar-handset .mat-snack-bar-container{margin:8px;max-width:100%;min-width:0;width:100%}\\n\"], encapsulation: 2, data: { animation: [matSnackBarAnimations.snackBarState] } });\n return MatSnackBarContainer;\n})();\nlet MatSnackBarModule = /*@__PURE__*/ (() => {\n class MatSnackBarModule {\n }\n MatSnackBarModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: MatSnackBarModule });\n MatSnackBarModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ factory: function MatSnackBarModule_Factory(t) { return new (t || MatSnackBarModule)(); }, imports: [[\n OverlayModule,\n PortalModule,\n CommonModule,\n MatButtonModule,\n MatCommonModule,\n ], MatCommonModule] });\n return MatSnackBarModule;\n})();\n/*@__PURE__*/ (function () {\n (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(MatSnackBarModule, { declarations: function () { return [MatSnackBarContainer, SimpleSnackBar]; }, imports: function () {\n return [OverlayModule,\n PortalModule,\n CommonModule,\n MatButtonModule,\n MatCommonModule];\n }, exports: function () { return [MatSnackBarContainer, MatCommonModule]; } });\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/** Injection token that can be used to specify default snack bar. */\nconst MAT_SNACK_BAR_DEFAULT_OPTIONS = /*@__PURE__*/ new InjectionToken('mat-snack-bar-default-options', {\n providedIn: 'root',\n factory: MAT_SNACK_BAR_DEFAULT_OPTIONS_FACTORY,\n});\n/** @docs-private */\nfunction MAT_SNACK_BAR_DEFAULT_OPTIONS_FACTORY() {\n return new MatSnackBarConfig();\n}\nlet MatSnackBar = /*@__PURE__*/ (() => {\n class MatSnackBar {\n constructor(_overlay, _live, _injector, _breakpointObserver, _parentSnackBar, _defaultConfig) {\n this._overlay = _overlay;\n this._live = _live;\n this._injector = _injector;\n this._breakpointObserver = _breakpointObserver;\n this._parentSnackBar = _parentSnackBar;\n this._defaultConfig = _defaultConfig;\n /**\n * Reference to the current snack bar in the view *at this level* (in the Angular injector tree).\n * If there is a parent snack-bar service, all operations should delegate to that parent\n * via `_openedSnackBarRef`.\n */\n this._snackBarRefAtThisLevel = null;\n /** The component that should be rendered as the snack bar's simple component. */\n this.simpleSnackBarComponent = SimpleSnackBar;\n /** The container component that attaches the provided template or component. */\n this.snackBarContainerComponent = MatSnackBarContainer;\n /** The CSS class to applie for handset mode. */\n this.handsetCssClass = 'mat-snack-bar-handset';\n }\n /** Reference to the currently opened snackbar at *any* level. */\n get _openedSnackBarRef() {\n const parent = this._parentSnackBar;\n return parent ? parent._openedSnackBarRef : this._snackBarRefAtThisLevel;\n }\n set _openedSnackBarRef(value) {\n if (this._parentSnackBar) {\n this._parentSnackBar._openedSnackBarRef = value;\n }\n else {\n this._snackBarRefAtThisLevel = value;\n }\n }\n /**\n * Creates and dispatches a snack bar with a custom component for the content, removing any\n * currently opened snack bars.\n *\n * @param component Component to be instantiated.\n * @param config Extra configuration for the snack bar.\n */\n openFromComponent(component, config) {\n return this._attach(component, config);\n }\n /**\n * Creates and dispatches a snack bar with a custom template for the content, removing any\n * currently opened snack bars.\n *\n * @param template Template to be instantiated.\n * @param config Extra configuration for the snack bar.\n */\n openFromTemplate(template, config) {\n return this._attach(template, config);\n }\n /**\n * Opens a snackbar with a message and an optional action.\n * @param message The message to show in the snackbar.\n * @param action The label for the snackbar action.\n * @param config Additional configuration options for the snackbar.\n */\n open(message, action = '', config) {\n const _config = Object.assign(Object.assign({}, this._defaultConfig), config);\n // Since the user doesn't have access to the component, we can\n // override the data to pass in our own message and action.\n _config.data = { message, action };\n // Since the snack bar has `role=\"alert\"`, we don't\n // want to announce the same message twice.\n if (_config.announcementMessage === message) {\n _config.announcementMessage = undefined;\n }\n return this.openFromComponent(this.simpleSnackBarComponent, _config);\n }\n /**\n * Dismisses the currently-visible snack bar.\n */\n dismiss() {\n if (this._openedSnackBarRef) {\n this._openedSnackBarRef.dismiss();\n }\n }\n ngOnDestroy() {\n // Only dismiss the snack bar at the current level on destroy.\n if (this._snackBarRefAtThisLevel) {\n this._snackBarRefAtThisLevel.dismiss();\n }\n }\n /**\n * Attaches the snack bar container component to the overlay.\n */\n _attachSnackBarContainer(overlayRef, config) {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n const injector = Injector.create({\n parent: userInjector || this._injector,\n providers: [{ provide: MatSnackBarConfig, useValue: config }]\n });\n const containerPortal = new ComponentPortal(this.snackBarContainerComponent, config.viewContainerRef, injector);\n const containerRef = overlayRef.attach(containerPortal);\n containerRef.instance.snackBarConfig = config;\n return containerRef.instance;\n }\n /**\n * Places a new component or a template as the content of the snack bar container.\n */\n _attach(content, userConfig) {\n const config = Object.assign(Object.assign(Object.assign({}, new MatSnackBarConfig()), this._defaultConfig), userConfig);\n const overlayRef = this._createOverlay(config);\n const container = this._attachSnackBarContainer(overlayRef, config);\n const snackBarRef = new MatSnackBarRef(container, overlayRef);\n if (content instanceof TemplateRef) {\n const portal = new TemplatePortal(content, null, {\n $implicit: config.data,\n snackBarRef\n });\n snackBarRef.instance = container.attachTemplatePortal(portal);\n }\n else {\n const injector = this._createInjector(config, snackBarRef);\n const portal = new ComponentPortal(content, undefined, injector);\n const contentRef = container.attachComponentPortal(portal);\n // We can't pass this via the injector, because the injector is created earlier.\n snackBarRef.instance = contentRef.instance;\n }\n // Subscribe to the breakpoint observer and attach the mat-snack-bar-handset class as\n // appropriate. This class is applied to the overlay element because the overlay must expand to\n // fill the width of the screen for full width snackbars.\n this._breakpointObserver.observe(Breakpoints.HandsetPortrait).pipe(takeUntil(overlayRef.detachments())).subscribe(state => {\n const classList = overlayRef.overlayElement.classList;\n state.matches ? classList.add(this.handsetCssClass) : classList.remove(this.handsetCssClass);\n });\n if (config.announcementMessage) {\n // Wait until the snack bar contents have been announced then deliver this message.\n container._onAnnounce.subscribe(() => {\n this._live.announce(config.announcementMessage, config.politeness);\n });\n }\n this._animateSnackBar(snackBarRef, config);\n this._openedSnackBarRef = snackBarRef;\n return this._openedSnackBarRef;\n }\n /** Animates the old snack bar out and the new one in. */\n _animateSnackBar(snackBarRef, config) {\n // When the snackbar is dismissed, clear the reference to it.\n snackBarRef.afterDismissed().subscribe(() => {\n // Clear the snackbar ref if it hasn't already been replaced by a newer snackbar.\n if (this._openedSnackBarRef == snackBarRef) {\n this._openedSnackBarRef = null;\n }\n if (config.announcementMessage) {\n this._live.clear();\n }\n });\n if (this._openedSnackBarRef) {\n // If a snack bar is already in view, dismiss it and enter the\n // new snack bar after exit animation is complete.\n this._openedSnackBarRef.afterDismissed().subscribe(() => {\n snackBarRef.containerInstance.enter();\n });\n this._openedSnackBarRef.dismiss();\n }\n else {\n // If no snack bar is in view, enter the new snack bar.\n snackBarRef.containerInstance.enter();\n }\n // If a dismiss timeout is provided, set up dismiss based on after the snackbar is opened.\n if (config.duration && config.duration > 0) {\n snackBarRef.afterOpened().subscribe(() => snackBarRef._dismissAfter(config.duration));\n }\n }\n /**\n * Creates a new overlay and places it in the correct location.\n * @param config The user-specified snack bar config.\n */\n _createOverlay(config) {\n const overlayConfig = new OverlayConfig();\n overlayConfig.direction = config.direction;\n let positionStrategy = this._overlay.position().global();\n // Set horizontal position.\n const isRtl = config.direction === 'rtl';\n const isLeft = (config.horizontalPosition === 'left' ||\n (config.horizontalPosition === 'start' && !isRtl) ||\n (config.horizontalPosition === 'end' && isRtl));\n const isRight = !isLeft && config.horizontalPosition !== 'center';\n if (isLeft) {\n positionStrategy.left('0');\n }\n else if (isRight) {\n positionStrategy.right('0');\n }\n else {\n positionStrategy.centerHorizontally();\n }\n // Set horizontal position.\n if (config.verticalPosition === 'top') {\n positionStrategy.top('0');\n }\n else {\n positionStrategy.bottom('0');\n }\n overlayConfig.positionStrategy = positionStrategy;\n return this._overlay.create(overlayConfig);\n }\n /**\n * Creates an injector to be used inside of a snack bar component.\n * @param config Config that was used to create the snack bar.\n * @param snackBarRef Reference to the snack bar.\n */\n _createInjector(config, snackBarRef) {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n return Injector.create({\n parent: userInjector || this._injector,\n providers: [\n { provide: MatSnackBarRef, useValue: snackBarRef },\n { provide: MAT_SNACK_BAR_DATA, useValue: config.data }\n ]\n });\n }\n }\n MatSnackBar.ɵfac = function MatSnackBar_Factory(t) { return new (t || MatSnackBar)(ɵngcc0.ɵɵinject(ɵngcc5.Overlay), ɵngcc0.ɵɵinject(ɵngcc6.LiveAnnouncer), ɵngcc0.ɵɵinject(ɵngcc0.Injector), ɵngcc0.ɵɵinject(ɵngcc7.BreakpointObserver), ɵngcc0.ɵɵinject(MatSnackBar, 12), ɵngcc0.ɵɵinject(MAT_SNACK_BAR_DEFAULT_OPTIONS)); };\n MatSnackBar.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ factory: function MatSnackBar_Factory() { return new MatSnackBar(ɵɵinject(Overlay), ɵɵinject(LiveAnnouncer), ɵɵinject(INJECTOR), ɵɵinject(BreakpointObserver), ɵɵinject(MatSnackBar, 12), ɵɵinject(MAT_SNACK_BAR_DEFAULT_OPTIONS)); }, token: MatSnackBar, providedIn: MatSnackBarModule });\n return MatSnackBar;\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 * Generated bundle index. Do not edit.\n */\nexport { MAT_SNACK_BAR_DATA, MAT_SNACK_BAR_DEFAULT_OPTIONS, MAT_SNACK_BAR_DEFAULT_OPTIONS_FACTORY, MatSnackBar, MatSnackBarConfig, MatSnackBarContainer, MatSnackBarModule, MatSnackBarRef, SimpleSnackBar, matSnackBarAnimations };\n\n\n\n" }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\cdk\\__ivy_ngcc__\\fesm2015\\overlay.js", "name": "./node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/overlay.js", "index": 502, "index2": 499, "size": 135652, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [], "issuer": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\snack-bar.js", "issuerId": null, "issuerName": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js", "issuerPath": [ { "id": 0, "identifier": "multi C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "multi ./src/main.ts", "profile": { "factory": 1, "building": 4 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "./src/main.ts", "profile": { "factory": 1577, "building": 684 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\app.module.ts", "name": "./src/app/app.module.ts", "profile": { "factory": 7434, "building": 6719, "dependencies": 19440 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\custom-elements.module.ts", "name": "./src/app/custom-elements/custom-elements.module.ts", "profile": { "factory": 26179, "building": 975, "dependencies": 19070 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "name": "./src/app/custom-elements/element-registry.ts", "profile": { "factory": 6786, "building": 1923, "dependencies": 1080 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-example.module.ts", "name": "./src/app/custom-elements/code/code-example.module.ts", "profile": { "factory": 3142, "building": 22, "dependencies": 2295 } }, { "id": "V90o", "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code.module.ts", "name": "./src/app/custom-elements/code/code.module.ts", "profile": { "factory": 1279, "building": 17, "dependencies": 3 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\snack-bar.js", "name": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js", "profile": { "factory": 3196, "building": 796, "dependencies": 1880 } } ], "profile": { "factory": 2064, "building": 456, "dependencies": 16 }, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\snack-bar.js", "module": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js", "moduleName": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js", "type": "harmony side effect evaluation", "userRequest": "@angular/cdk/overlay", "loc": "1:0-77" }, { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\snack-bar.js", "module": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js", "moduleName": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js", "type": "harmony side effect evaluation", "userRequest": "@angular/cdk/overlay", "loc": "26:0-47" }, { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\snack-bar.js", "module": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js", "moduleName": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js", "type": "harmony import specifier", "userRequest": "@angular/cdk/overlay", "loc": "428:16-29" }, { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\snack-bar.js", "module": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js", "moduleName": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js", "type": "harmony import specifier", "userRequest": "@angular/cdk/overlay", "loc": "438:20-33" }, { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\snack-bar.js", "module": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js", "moduleName": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js", "type": "harmony import specifier", "userRequest": "@angular/cdk/overlay", "loc": "635:38-51" }, { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\snack-bar.js", "module": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js", "moduleName": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js", "type": "harmony import specifier", "userRequest": "@angular/cdk/overlay", "loc": "679:103-117" }, { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\snack-bar.js", "module": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js", "moduleName": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js", "type": "harmony import specifier", "userRequest": "@angular/cdk/overlay", "loc": "680:133-140" } ], "usedExports": [ "OverlayModule", "OverlayConfig", "Overlay" ], "providedExports": [ "CdkScrollable", "ScrollDispatcher", "ViewportRuler", "BlockScrollStrategy", "CdkConnectedOverlay", "CdkOverlayOrigin", "CloseScrollStrategy", "ConnectedOverlayPositionChange", "ConnectedPositionStrategy", "ConnectionPositionPair", "FlexibleConnectedPositionStrategy", "FullscreenOverlayContainer", "GlobalPositionStrategy", "NoopScrollStrategy", "Overlay", "OverlayConfig", "OverlayContainer", "OverlayKeyboardDispatcher", "OverlayModule", "OverlayOutsideClickDispatcher", "OverlayPositionBuilder", "OverlayRef", "RepositionScrollStrategy", "ScrollStrategyOptions", "ScrollingVisibility", "validateHorizontalPosition", "validateVerticalPosition", "ɵangular_material_src_cdk_overlay_overlay_a", "ɵangular_material_src_cdk_overlay_overlay_b", "ɵangular_material_src_cdk_overlay_overlay_c", "ɵangular_material_src_cdk_overlay_overlay_d" ], "optimizationBailout": [], "depth": 8, "source": "import { ScrollDispatcher, ViewportRuler, ScrollingModule } from '@angular/cdk/scrolling';\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/cdk/scrolling';\nimport * as ɵngcc2 from '@angular/cdk/platform';\nimport * as ɵngcc3 from '@angular/cdk/bidi';\nimport * as ɵngcc4 from '@angular/common';\nexport { CdkScrollable, ScrollDispatcher, ViewportRuler } from '@angular/cdk/scrolling';\nimport { DOCUMENT, Location } from '@angular/common';\nimport { ɵɵdefineInjectable, ɵɵinject, NgZone, Injectable, Inject, Optional, ElementRef, ApplicationRef, ComponentFactoryResolver, Injector, InjectionToken, Directive, EventEmitter, TemplateRef, ViewContainerRef, Input, Output, NgModule } from '@angular/core';\nimport { coerceCssPixelValue, coerceArray, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { supportsScrollBehavior, Platform } from '@angular/cdk/platform';\nimport { Directionality, BidiModule } from '@angular/cdk/bidi';\nimport { DomPortalOutlet, TemplatePortal, PortalModule } from '@angular/cdk/portal';\nimport { Subject, Subscription, merge } from 'rxjs';\nimport { take, takeUntil, takeWhile } from 'rxjs/operators';\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\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 */\nconst scrollBehaviorSupported = /*@__PURE__*/ supportsScrollBehavior();\n/**\n * Strategy that will prevent the user from scrolling while the overlay is visible.\n */\nclass BlockScrollStrategy {\n constructor(_viewportRuler, document) {\n this._viewportRuler = _viewportRuler;\n this._previousHTMLStyles = { top: '', left: '' };\n this._isEnabled = false;\n this._document = document;\n }\n /** Attaches this scroll strategy to an overlay. */\n attach() { }\n /** Blocks page-level scroll while the attached overlay is open. */\n enable() {\n if (this._canBeEnabled()) {\n const root = this._document.documentElement;\n this._previousScrollPosition = this._viewportRuler.getViewportScrollPosition();\n // Cache the previous inline styles in case the user had set them.\n this._previousHTMLStyles.left = root.style.left || '';\n this._previousHTMLStyles.top = root.style.top || '';\n // Note: we're using the `html` node, instead of the `body`, because the `body` may\n // have the user agent margin, whereas the `html` is guaranteed not to have one.\n root.style.left = coerceCssPixelValue(-this._previousScrollPosition.left);\n root.style.top = coerceCssPixelValue(-this._previousScrollPosition.top);\n root.classList.add('cdk-global-scrollblock');\n this._isEnabled = true;\n }\n }\n /** Unblocks page-level scroll while the attached overlay is open. */\n disable() {\n if (this._isEnabled) {\n const html = this._document.documentElement;\n const body = this._document.body;\n const htmlStyle = html.style;\n const bodyStyle = body.style;\n const previousHtmlScrollBehavior = htmlStyle.scrollBehavior || '';\n const previousBodyScrollBehavior = bodyStyle.scrollBehavior || '';\n this._isEnabled = false;\n htmlStyle.left = this._previousHTMLStyles.left;\n htmlStyle.top = this._previousHTMLStyles.top;\n html.classList.remove('cdk-global-scrollblock');\n // Disable user-defined smooth scrolling temporarily while we restore the scroll position.\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-behavior\n // Note that we don't mutate the property if the browser doesn't support `scroll-behavior`,\n // because it can throw off feature detections in `supportsScrollBehavior` which\n // checks for `'scrollBehavior' in documentElement.style`.\n if (scrollBehaviorSupported) {\n htmlStyle.scrollBehavior = bodyStyle.scrollBehavior = 'auto';\n }\n window.scroll(this._previousScrollPosition.left, this._previousScrollPosition.top);\n if (scrollBehaviorSupported) {\n htmlStyle.scrollBehavior = previousHtmlScrollBehavior;\n bodyStyle.scrollBehavior = previousBodyScrollBehavior;\n }\n }\n }\n _canBeEnabled() {\n // Since the scroll strategies can't be singletons, we have to use a global CSS class\n // (`cdk-global-scrollblock`) to make sure that we don't try to disable global\n // scrolling multiple times.\n const html = this._document.documentElement;\n if (html.classList.contains('cdk-global-scrollblock') || this._isEnabled) {\n return false;\n }\n const body = this._document.body;\n const viewport = this._viewportRuler.getViewportSize();\n return body.scrollHeight > viewport.height || body.scrollWidth > viewport.width;\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 * Returns an error to be thrown when attempting to attach an already-attached scroll strategy.\n */\nfunction getMatScrollStrategyAlreadyAttachedError() {\n return Error(`Scroll strategy has already been attached.`);\n}\n/**\n * Strategy that will close the overlay as soon as the user starts scrolling.\n */\nclass CloseScrollStrategy {\n constructor(_scrollDispatcher, _ngZone, _viewportRuler, _config) {\n this._scrollDispatcher = _scrollDispatcher;\n this._ngZone = _ngZone;\n this._viewportRuler = _viewportRuler;\n this._config = _config;\n this._scrollSubscription = null;\n /** Detaches the overlay ref and disables the scroll strategy. */\n this._detach = () => {\n this.disable();\n if (this._overlayRef.hasAttached()) {\n this._ngZone.run(() => this._overlayRef.detach());\n }\n };\n }\n /** Attaches this scroll strategy to an overlay. */\n attach(overlayRef) {\n if (this._overlayRef && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatScrollStrategyAlreadyAttachedError();\n }\n this._overlayRef = overlayRef;\n }\n /** Enables the closing of the attached overlay on scroll. */\n enable() {\n if (this._scrollSubscription) {\n return;\n }\n const stream = this._scrollDispatcher.scrolled(0);\n if (this._config && this._config.threshold && this._config.threshold > 1) {\n this._initialScrollPosition = this._viewportRuler.getViewportScrollPosition().top;\n this._scrollSubscription = stream.subscribe(() => {\n const scrollPosition = this._viewportRuler.getViewportScrollPosition().top;\n if (Math.abs(scrollPosition - this._initialScrollPosition) > this._config.threshold) {\n this._detach();\n }\n else {\n this._overlayRef.updatePosition();\n }\n });\n }\n else {\n this._scrollSubscription = stream.subscribe(this._detach);\n }\n }\n /** Disables the closing the attached overlay on scroll. */\n disable() {\n if (this._scrollSubscription) {\n this._scrollSubscription.unsubscribe();\n this._scrollSubscription = null;\n }\n }\n detach() {\n this.disable();\n this._overlayRef = null;\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/** Scroll strategy that doesn't do anything. */\nclass NoopScrollStrategy {\n /** Does nothing, as this scroll strategy is a no-op. */\n enable() { }\n /** Does nothing, as this scroll strategy is a no-op. */\n disable() { }\n /** Does nothing, as this scroll strategy is a no-op. */\n attach() { }\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// TODO(jelbourn): move this to live with the rest of the scrolling code\n// TODO(jelbourn): someday replace this with IntersectionObservers\n/**\n * Gets whether an element is scrolled outside of view by any of its parent scrolling containers.\n * @param element Dimensions of the element (from getBoundingClientRect)\n * @param scrollContainers Dimensions of element's scrolling containers (from getBoundingClientRect)\n * @returns Whether the element is scrolled out of view\n * @docs-private\n */\nfunction isElementScrolledOutsideView(element, scrollContainers) {\n return scrollContainers.some(containerBounds => {\n const outsideAbove = element.bottom < containerBounds.top;\n const outsideBelow = element.top > containerBounds.bottom;\n const outsideLeft = element.right < containerBounds.left;\n const outsideRight = element.left > containerBounds.right;\n return outsideAbove || outsideBelow || outsideLeft || outsideRight;\n });\n}\n/**\n * Gets whether an element is clipped by any of its scrolling containers.\n * @param element Dimensions of the element (from getBoundingClientRect)\n * @param scrollContainers Dimensions of element's scrolling containers (from getBoundingClientRect)\n * @returns Whether the element is clipped\n * @docs-private\n */\nfunction isElementClippedByScrolling(element, scrollContainers) {\n return scrollContainers.some(scrollContainerRect => {\n const clippedAbove = element.top < scrollContainerRect.top;\n const clippedBelow = element.bottom > scrollContainerRect.bottom;\n const clippedLeft = element.left < scrollContainerRect.left;\n const clippedRight = element.right > scrollContainerRect.right;\n return clippedAbove || clippedBelow || clippedLeft || clippedRight;\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 * Strategy that will update the element position as the user is scrolling.\n */\nclass RepositionScrollStrategy {\n constructor(_scrollDispatcher, _viewportRuler, _ngZone, _config) {\n this._scrollDispatcher = _scrollDispatcher;\n this._viewportRuler = _viewportRuler;\n this._ngZone = _ngZone;\n this._config = _config;\n this._scrollSubscription = null;\n }\n /** Attaches this scroll strategy to an overlay. */\n attach(overlayRef) {\n if (this._overlayRef && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatScrollStrategyAlreadyAttachedError();\n }\n this._overlayRef = overlayRef;\n }\n /** Enables repositioning of the attached overlay on scroll. */\n enable() {\n if (!this._scrollSubscription) {\n const throttle = this._config ? this._config.scrollThrottle : 0;\n this._scrollSubscription = this._scrollDispatcher.scrolled(throttle).subscribe(() => {\n this._overlayRef.updatePosition();\n // TODO(crisbeto): make `close` on by default once all components can handle it.\n if (this._config && this._config.autoClose) {\n const overlayRect = this._overlayRef.overlayElement.getBoundingClientRect();\n const { width, height } = this._viewportRuler.getViewportSize();\n // TODO(crisbeto): include all ancestor scroll containers here once\n // we have a way of exposing the trigger element to the scroll strategy.\n const parentRects = [{ width, height, bottom: height, right: width, top: 0, left: 0 }];\n if (isElementScrolledOutsideView(overlayRect, parentRects)) {\n this.disable();\n this._ngZone.run(() => this._overlayRef.detach());\n }\n }\n });\n }\n }\n /** Disables repositioning of the attached overlay on scroll. */\n disable() {\n if (this._scrollSubscription) {\n this._scrollSubscription.unsubscribe();\n this._scrollSubscription = null;\n }\n }\n detach() {\n this.disable();\n this._overlayRef = null;\n }\n}\nlet ScrollStrategyOptions = /*@__PURE__*/ (() => {\n class ScrollStrategyOptions {\n constructor(_scrollDispatcher, _viewportRuler, _ngZone, document) {\n this._scrollDispatcher = _scrollDispatcher;\n this._viewportRuler = _viewportRuler;\n this._ngZone = _ngZone;\n /** Do nothing on scroll. */\n this.noop = () => new NoopScrollStrategy();\n /**\n * Close the overlay as soon as the user scrolls.\n * @param config Configuration to be used inside the scroll strategy.\n */\n this.close = (config) => new CloseScrollStrategy(this._scrollDispatcher, this._ngZone, this._viewportRuler, config);\n /** Block scrolling. */\n this.block = () => new BlockScrollStrategy(this._viewportRuler, this._document);\n /**\n * Update the overlay's position on scroll.\n * @param config Configuration to be used inside the scroll strategy.\n * Allows debouncing the reposition calls.\n */\n this.reposition = (config) => new RepositionScrollStrategy(this._scrollDispatcher, this._viewportRuler, this._ngZone, config);\n this._document = document;\n }\n }\n ScrollStrategyOptions.ɵfac = function ScrollStrategyOptions_Factory(t) { return new (t || ScrollStrategyOptions)(ɵngcc0.ɵɵinject(ɵngcc1.ScrollDispatcher), ɵngcc0.ɵɵinject(ɵngcc1.ViewportRuler), ɵngcc0.ɵɵinject(ɵngcc0.NgZone), ɵngcc0.ɵɵinject(DOCUMENT)); };\n ScrollStrategyOptions.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ factory: function ScrollStrategyOptions_Factory() { return new ScrollStrategyOptions(ɵɵinject(ScrollDispatcher), ɵɵinject(ViewportRuler), ɵɵinject(NgZone), ɵɵinject(DOCUMENT)); }, token: ScrollStrategyOptions, providedIn: \"root\" });\n return ScrollStrategyOptions;\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 * @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/** Initial configuration used when creating an overlay. */\nclass OverlayConfig {\n constructor(config) {\n /** Strategy to be used when handling scroll events while the overlay is open. */\n this.scrollStrategy = new NoopScrollStrategy();\n /** Custom class to add to the overlay pane. */\n this.panelClass = '';\n /** Whether the overlay has a backdrop. */\n this.hasBackdrop = false;\n /** Custom class to add to the backdrop */\n this.backdropClass = 'cdk-overlay-dark-backdrop';\n /**\n * Whether the overlay should be disposed of when the user goes backwards/forwards in history.\n * Note that this usually doesn't include clicking on links (unless the user is using\n * the `HashLocationStrategy`).\n */\n this.disposeOnNavigation = false;\n if (config) {\n // Use `Iterable` instead of `Array` because TypeScript, as of 3.6.3,\n // loses the array generic type in the `for of`. But we *also* have to use `Array` because\n // typescript won't iterate over an `Iterable` unless you compile with `--downlevelIteration`\n const configKeys = Object.keys(config);\n for (const key of configKeys) {\n if (config[key] !== undefined) {\n // TypeScript, as of version 3.5, sees the left-hand-side of this expression\n // as \"I don't know *which* key this is, so the only valid value is the intersection\n // of all the posible values.\" In this case, that happens to be `undefined`. TypeScript\n // is not smart enough to see that the right-hand-side is actually an access of the same\n // exact type with the same exact key, meaning that the value type must be identical.\n // So we use `any` to work around this.\n this[key] = config[key];\n }\n }\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/** The points of the origin element and the overlay element to connect. */\nclass ConnectionPositionPair {\n constructor(origin, overlay, \n /** Offset along the X axis. */\n offsetX, \n /** Offset along the Y axis. */\n offsetY, \n /** Class(es) to be applied to the panel while this position is active. */\n panelClass) {\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n this.panelClass = panelClass;\n this.originX = origin.originX;\n this.originY = origin.originY;\n this.overlayX = overlay.overlayX;\n this.overlayY = overlay.overlayY;\n }\n}\n/**\n * Set of properties regarding the position of the origin and overlay relative to the viewport\n * with respect to the containing Scrollable elements.\n *\n * The overlay and origin are clipped if any part of their bounding client rectangle exceeds the\n * bounds of any one of the strategy's Scrollable's bounding client rectangle.\n *\n * The overlay and origin are outside view if there is no overlap between their bounding client\n * rectangle and any one of the strategy's Scrollable's bounding client rectangle.\n *\n * ----------- -----------\n * | outside | | clipped |\n * | view | --------------------------\n * | | | | | |\n * ---------- | ----------- |\n * -------------------------- | |\n * | | | Scrollable |\n * | | | |\n * | | --------------------------\n * | Scrollable |\n * | |\n * --------------------------\n *\n * @docs-private\n */\nclass ScrollingVisibility {\n}\n/** The change event emitted by the strategy when a fallback position is used. */\nclass ConnectedOverlayPositionChange {\n constructor(\n /** The position used as a result of this change. */\n connectionPair, \n /** @docs-private */\n scrollableViewProperties) {\n this.connectionPair = connectionPair;\n this.scrollableViewProperties = scrollableViewProperties;\n }\n}\n/**\n * Validates whether a vertical position property matches the expected values.\n * @param property Name of the property being validated.\n * @param value Value of the property being validated.\n * @docs-private\n */\nfunction validateVerticalPosition(property, value) {\n if (value !== 'top' && value !== 'bottom' && value !== 'center') {\n throw Error(`ConnectedPosition: Invalid ${property} \"${value}\". ` +\n `Expected \"top\", \"bottom\" or \"center\".`);\n }\n}\n/**\n * Validates whether a horizontal position property matches the expected values.\n * @param property Name of the property being validated.\n * @param value Value of the property being validated.\n * @docs-private\n */\nfunction validateHorizontalPosition(property, value) {\n if (value !== 'start' && value !== 'end' && value !== 'center') {\n throw Error(`ConnectedPosition: Invalid ${property} \"${value}\". ` +\n `Expected \"start\", \"end\" or \"center\".`);\n }\n}\nlet BaseOverlayDispatcher = /*@__PURE__*/ (() => {\n class BaseOverlayDispatcher {\n constructor(document) {\n /** Currently attached overlays in the order they were attached. */\n this._attachedOverlays = [];\n this._document = document;\n }\n ngOnDestroy() {\n this.detach();\n }\n /** Add a new overlay to the list of attached overlay refs. */\n add(overlayRef) {\n // Ensure that we don't get the same overlay multiple times.\n this.remove(overlayRef);\n this._attachedOverlays.push(overlayRef);\n }\n /** Remove an overlay from the list of attached overlay refs. */\n remove(overlayRef) {\n const index = this._attachedOverlays.indexOf(overlayRef);\n if (index > -1) {\n this._attachedOverlays.splice(index, 1);\n }\n // Remove the global listener once there are no more overlays.\n if (this._attachedOverlays.length === 0) {\n this.detach();\n }\n }\n }\n BaseOverlayDispatcher.ɵfac = function BaseOverlayDispatcher_Factory(t) { return new (t || BaseOverlayDispatcher)(ɵngcc0.ɵɵinject(DOCUMENT)); };\n BaseOverlayDispatcher.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ factory: function BaseOverlayDispatcher_Factory() { return new BaseOverlayDispatcher(ɵɵinject(DOCUMENT)); }, token: BaseOverlayDispatcher, providedIn: \"root\" });\n return BaseOverlayDispatcher;\n})();\nlet OverlayKeyboardDispatcher = /*@__PURE__*/ (() => {\n class OverlayKeyboardDispatcher extends BaseOverlayDispatcher {\n constructor(document) {\n super(document);\n /** Keyboard event listener that will be attached to the body. */\n this._keydownListener = (event) => {\n const overlays = this._attachedOverlays;\n for (let i = overlays.length - 1; i > -1; i--) {\n // Dispatch the keydown event to the top overlay which has subscribers to its keydown events.\n // We want to target the most recent overlay, rather than trying to match where the event came\n // from, because some components might open an overlay, but keep focus on a trigger element\n // (e.g. for select and autocomplete). We skip overlays without keydown event subscriptions,\n // because we don't want overlays that don't handle keyboard events to block the ones below\n // them that do.\n if (overlays[i]._keydownEvents.observers.length > 0) {\n overlays[i]._keydownEvents.next(event);\n break;\n }\n }\n };\n }\n /** Add a new overlay to the list of attached overlay refs. */\n add(overlayRef) {\n super.add(overlayRef);\n // Lazily start dispatcher once first overlay is added\n if (!this._isAttached) {\n this._document.body.addEventListener('keydown', this._keydownListener);\n this._isAttached = true;\n }\n }\n /** Detaches the global keyboard event listener. */\n detach() {\n if (this._isAttached) {\n this._document.body.removeEventListener('keydown', this._keydownListener);\n this._isAttached = false;\n }\n }\n }\n OverlayKeyboardDispatcher.ɵfac = function OverlayKeyboardDispatcher_Factory(t) { return new (t || OverlayKeyboardDispatcher)(ɵngcc0.ɵɵinject(DOCUMENT)); };\n OverlayKeyboardDispatcher.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ factory: function OverlayKeyboardDispatcher_Factory() { return new OverlayKeyboardDispatcher(ɵɵinject(DOCUMENT)); }, token: OverlayKeyboardDispatcher, providedIn: \"root\" });\n return OverlayKeyboardDispatcher;\n})();\nlet OverlayOutsideClickDispatcher = /*@__PURE__*/ (() => {\n class OverlayOutsideClickDispatcher extends BaseOverlayDispatcher {\n constructor(document, _platform) {\n super(document);\n this._platform = _platform;\n this._cursorStyleIsSet = false;\n /** Click event listener that will be attached to the body propagate phase. */\n this._clickListener = (event) => {\n // Get the target through the `composedPath` if possible to account for shadow DOM.\n const target = event.composedPath ? event.composedPath()[0] : event.target;\n // We copy the array because the original may be modified asynchronously if the\n // outsidePointerEvents listener decides to detach overlays resulting in index errors inside\n // the for loop.\n const overlays = this._attachedOverlays.slice();\n // Dispatch the mouse event to the top overlay which has subscribers to its mouse events.\n // We want to target all overlays for which the click could be considered as outside click.\n // As soon as we reach an overlay for which the click is not outside click we break off\n // the loop.\n for (let i = overlays.length - 1; i > -1; i--) {\n const overlayRef = overlays[i];\n if (overlayRef._outsidePointerEvents.observers.length < 1 || !overlayRef.hasAttached()) {\n continue;\n }\n // If it's a click inside the overlay, just break - we should do nothing\n // If it's an outside click dispatch the mouse event, and proceed with the next overlay\n if (overlayRef.overlayElement.contains(target)) {\n break;\n }\n overlayRef._outsidePointerEvents.next(event);\n }\n };\n }\n /** Add a new overlay to the list of attached overlay refs. */\n add(overlayRef) {\n super.add(overlayRef);\n // tslint:disable: max-line-length\n // Safari on iOS does not generate click events for non-interactive\n // elements. However, we want to receive a click for any element outside\n // the overlay. We can force a \"clickable\" state by setting\n // `cursor: pointer` on the document body.\n // See https://developer.mozilla.org/en-US/docs/Web/API/Element/click_event#Safari_Mobile\n // and https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html\n // tslint:enable: max-line-length\n if (!this._isAttached) {\n this._document.body.addEventListener('click', this._clickListener, true);\n this._document.body.addEventListener('contextmenu', this._clickListener, true);\n // click event is not fired on iOS. To make element \"clickable\" we are\n // setting the cursor to pointer\n if (this._platform.IOS && !this._cursorStyleIsSet) {\n this._cursorOriginalValue = this._document.body.style.cursor;\n this._document.body.style.cursor = 'pointer';\n this._cursorStyleIsSet = true;\n }\n this._isAttached = true;\n }\n }\n /** Detaches the global keyboard event listener. */\n detach() {\n if (this._isAttached) {\n this._document.body.removeEventListener('click', this._clickListener, true);\n this._document.body.removeEventListener('contextmenu', this._clickListener, true);\n if (this._platform.IOS && this._cursorStyleIsSet) {\n this._document.body.style.cursor = this._cursorOriginalValue;\n this._cursorStyleIsSet = false;\n }\n this._isAttached = false;\n }\n }\n }\n OverlayOutsideClickDispatcher.ɵfac = function OverlayOutsideClickDispatcher_Factory(t) { return new (t || OverlayOutsideClickDispatcher)(ɵngcc0.ɵɵinject(DOCUMENT), ɵngcc0.ɵɵinject(ɵngcc2.Platform)); };\n OverlayOutsideClickDispatcher.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ factory: function OverlayOutsideClickDispatcher_Factory() { return new OverlayOutsideClickDispatcher(ɵɵinject(DOCUMENT), ɵɵinject(Platform)); }, token: OverlayOutsideClickDispatcher, providedIn: \"root\" });\n return OverlayOutsideClickDispatcher;\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 * Whether we're in a testing environment.\n * TODO(crisbeto): remove this once we have an overlay testing module.\n */\nconst isTestEnvironment = typeof window !== 'undefined' && !!window &&\n !!(window.__karma__ || window.jasmine);\nlet OverlayContainer = /*@__PURE__*/ (() => {\n class OverlayContainer {\n constructor(document, _platform) {\n this._platform = _platform;\n this._document = document;\n }\n ngOnDestroy() {\n const container = this._containerElement;\n if (container && container.parentNode) {\n container.parentNode.removeChild(container);\n }\n }\n /**\n * This method returns the overlay container element. It will lazily\n * create the element the first time it is called to facilitate using\n * the container in non-browser environments.\n * @returns the container element\n */\n getContainerElement() {\n if (!this._containerElement) {\n this._createContainer();\n }\n return this._containerElement;\n }\n /**\n * Create the overlay container element, which is simply a div\n * with the 'cdk-overlay-container' class on the document body.\n */\n _createContainer() {\n const containerClass = 'cdk-overlay-container';\n if (this._platform.isBrowser || isTestEnvironment) {\n const oppositePlatformContainers = this._document.querySelectorAll(`.${containerClass}[platform=\"server\"], ` +\n `.${containerClass}[platform=\"test\"]`);\n // Remove any old containers from the opposite platform.\n // This can happen when transitioning from the server to the client.\n for (let i = 0; i < oppositePlatformContainers.length; i++) {\n oppositePlatformContainers[i].parentNode.removeChild(oppositePlatformContainers[i]);\n }\n }\n const container = this._document.createElement('div');\n container.classList.add(containerClass);\n // A long time ago we kept adding new overlay containers whenever a new app was instantiated,\n // but at some point we added logic which clears the duplicate ones in order to avoid leaks.\n // The new logic was a little too aggressive since it was breaking some legitimate use cases.\n // To mitigate the problem we made it so that only containers from a different platform are\n // cleared, but the side-effect was that people started depending on the overly-aggressive\n // logic to clean up their tests for them. Until we can introduce an overlay-specific testing\n // module which does the cleanup, we try to detect that we're in a test environment and we\n // always clear the container. See #17006.\n // TODO(crisbeto): remove the test environment check once we have an overlay testing module.\n if (isTestEnvironment) {\n container.setAttribute('platform', 'test');\n }\n else if (!this._platform.isBrowser) {\n container.setAttribute('platform', 'server');\n }\n this._document.body.appendChild(container);\n this._containerElement = container;\n }\n }\n OverlayContainer.ɵfac = function OverlayContainer_Factory(t) { return new (t || OverlayContainer)(ɵngcc0.ɵɵinject(DOCUMENT), ɵngcc0.ɵɵinject(ɵngcc2.Platform)); };\n OverlayContainer.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ factory: function OverlayContainer_Factory() { return new OverlayContainer(ɵɵinject(DOCUMENT), ɵɵinject(Platform)); }, token: OverlayContainer, providedIn: \"root\" });\n return OverlayContainer;\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 * Reference to an overlay that has been created with the Overlay service.\n * Used to manipulate or dispose of said overlay.\n */\nclass OverlayRef {\n constructor(_portalOutlet, _host, _pane, _config, _ngZone, _keyboardDispatcher, _document, _location, _outsideClickDispatcher) {\n this._portalOutlet = _portalOutlet;\n this._host = _host;\n this._pane = _pane;\n this._config = _config;\n this._ngZone = _ngZone;\n this._keyboardDispatcher = _keyboardDispatcher;\n this._document = _document;\n this._location = _location;\n this._outsideClickDispatcher = _outsideClickDispatcher;\n this._backdropElement = null;\n this._backdropClick = new Subject();\n this._attachments = new Subject();\n this._detachments = new Subject();\n this._locationChanges = Subscription.EMPTY;\n this._backdropClickHandler = (event) => this._backdropClick.next(event);\n /** Stream of keydown events dispatched to this overlay. */\n this._keydownEvents = new Subject();\n /** Stream of mouse outside events dispatched to this overlay. */\n this._outsidePointerEvents = new Subject();\n if (_config.scrollStrategy) {\n this._scrollStrategy = _config.scrollStrategy;\n this._scrollStrategy.attach(this);\n }\n this._positionStrategy = _config.positionStrategy;\n }\n /** The overlay's HTML element */\n get overlayElement() {\n return this._pane;\n }\n /** The overlay's backdrop HTML element. */\n get backdropElement() {\n return this._backdropElement;\n }\n /**\n * Wrapper around the panel element. Can be used for advanced\n * positioning where a wrapper with specific styling is\n * required around the overlay pane.\n */\n get hostElement() {\n return this._host;\n }\n /**\n * Attaches content, given via a Portal, to the overlay.\n * If the overlay is configured to have a backdrop, it will be created.\n *\n * @param portal Portal instance to which to attach the overlay.\n * @returns The portal attachment result.\n */\n attach(portal) {\n let attachResult = this._portalOutlet.attach(portal);\n // Update the pane element with the given configuration.\n if (!this._host.parentElement && this._previousHostParent) {\n this._previousHostParent.appendChild(this._host);\n }\n if (this._positionStrategy) {\n this._positionStrategy.attach(this);\n }\n this._updateStackingOrder();\n this._updateElementSize();\n this._updateElementDirection();\n if (this._scrollStrategy) {\n this._scrollStrategy.enable();\n }\n // Update the position once the zone is stable so that the overlay will be fully rendered\n // before attempting to position it, as the position may depend on the size of the rendered\n // content.\n this._ngZone.onStable\n .pipe(take(1))\n .subscribe(() => {\n // The overlay could've been detached before the zone has stabilized.\n if (this.hasAttached()) {\n this.updatePosition();\n }\n });\n // Enable pointer events for the overlay pane element.\n this._togglePointerEvents(true);\n if (this._config.hasBackdrop) {\n this._attachBackdrop();\n }\n if (this._config.panelClass) {\n this._toggleClasses(this._pane, this._config.panelClass, true);\n }\n // Only emit the `attachments` event once all other setup is done.\n this._attachments.next();\n // Track this overlay by the keyboard dispatcher\n this._keyboardDispatcher.add(this);\n if (this._config.disposeOnNavigation) {\n this._locationChanges = this._location.subscribe(() => this.dispose());\n }\n this._outsideClickDispatcher.add(this);\n return attachResult;\n }\n /**\n * Detaches an overlay from a portal.\n * @returns The portal detachment result.\n */\n detach() {\n if (!this.hasAttached()) {\n return;\n }\n this.detachBackdrop();\n // When the overlay is detached, the pane element should disable pointer events.\n // This is necessary because otherwise the pane element will cover the page and disable\n // pointer events therefore. Depends on the position strategy and the applied pane boundaries.\n this._togglePointerEvents(false);\n if (this._positionStrategy && this._positionStrategy.detach) {\n this._positionStrategy.detach();\n }\n if (this._scrollStrategy) {\n this._scrollStrategy.disable();\n }\n const detachmentResult = this._portalOutlet.detach();\n // Only emit after everything is detached.\n this._detachments.next();\n // Remove this overlay from keyboard dispatcher tracking.\n this._keyboardDispatcher.remove(this);\n // Keeping the host element in the DOM can cause scroll jank, because it still gets\n // rendered, even though it's transparent and unclickable which is why we remove it.\n this._detachContentWhenStable();\n this._locationChanges.unsubscribe();\n this._outsideClickDispatcher.remove(this);\n return detachmentResult;\n }\n /** Cleans up the overlay from the DOM. */\n dispose() {\n const isAttached = this.hasAttached();\n if (this._positionStrategy) {\n this._positionStrategy.dispose();\n }\n this._disposeScrollStrategy();\n this.detachBackdrop();\n this._locationChanges.unsubscribe();\n this._keyboardDispatcher.remove(this);\n this._portalOutlet.dispose();\n this._attachments.complete();\n this._backdropClick.complete();\n this._keydownEvents.complete();\n this._outsidePointerEvents.complete();\n this._outsideClickDispatcher.remove(this);\n if (this._host && this._host.parentNode) {\n this._host.parentNode.removeChild(this._host);\n this._host = null;\n }\n this._previousHostParent = this._pane = null;\n if (isAttached) {\n this._detachments.next();\n }\n this._detachments.complete();\n }\n /** Whether the overlay has attached content. */\n hasAttached() {\n return this._portalOutlet.hasAttached();\n }\n /** Gets an observable that emits when the backdrop has been clicked. */\n backdropClick() {\n return this._backdropClick;\n }\n /** Gets an observable that emits when the overlay has been attached. */\n attachments() {\n return this._attachments;\n }\n /** Gets an observable that emits when the overlay has been detached. */\n detachments() {\n return this._detachments;\n }\n /** Gets an observable of keydown events targeted to this overlay. */\n keydownEvents() {\n return this._keydownEvents;\n }\n /** Gets an observable of pointer events targeted outside this overlay. */\n outsidePointerEvents() {\n return this._outsidePointerEvents;\n }\n /** Gets the current overlay configuration, which is immutable. */\n getConfig() {\n return this._config;\n }\n /** Updates the position of the overlay based on the position strategy. */\n updatePosition() {\n if (this._positionStrategy) {\n this._positionStrategy.apply();\n }\n }\n /** Switches to a new position strategy and updates the overlay position. */\n updatePositionStrategy(strategy) {\n if (strategy === this._positionStrategy) {\n return;\n }\n if (this._positionStrategy) {\n this._positionStrategy.dispose();\n }\n this._positionStrategy = strategy;\n if (this.hasAttached()) {\n strategy.attach(this);\n this.updatePosition();\n }\n }\n /** Update the size properties of the overlay. */\n updateSize(sizeConfig) {\n this._config = Object.assign(Object.assign({}, this._config), sizeConfig);\n this._updateElementSize();\n }\n /** Sets the LTR/RTL direction for the overlay. */\n setDirection(dir) {\n this._config = Object.assign(Object.assign({}, this._config), { direction: dir });\n this._updateElementDirection();\n }\n /** Add a CSS class or an array of classes to the overlay pane. */\n addPanelClass(classes) {\n if (this._pane) {\n this._toggleClasses(this._pane, classes, true);\n }\n }\n /** Remove a CSS class or an array of classes from the overlay pane. */\n removePanelClass(classes) {\n if (this._pane) {\n this._toggleClasses(this._pane, classes, false);\n }\n }\n /**\n * Returns the layout direction of the overlay panel.\n */\n getDirection() {\n const direction = this._config.direction;\n if (!direction) {\n return 'ltr';\n }\n return typeof direction === 'string' ? direction : direction.value;\n }\n /** Switches to a new scroll strategy. */\n updateScrollStrategy(strategy) {\n if (strategy === this._scrollStrategy) {\n return;\n }\n this._disposeScrollStrategy();\n this._scrollStrategy = strategy;\n if (this.hasAttached()) {\n strategy.attach(this);\n strategy.enable();\n }\n }\n /** Updates the text direction of the overlay panel. */\n _updateElementDirection() {\n this._host.setAttribute('dir', this.getDirection());\n }\n /** Updates the size of the overlay element based on the overlay config. */\n _updateElementSize() {\n if (!this._pane) {\n return;\n }\n const style = this._pane.style;\n style.width = coerceCssPixelValue(this._config.width);\n style.height = coerceCssPixelValue(this._config.height);\n style.minWidth = coerceCssPixelValue(this._config.minWidth);\n style.minHeight = coerceCssPixelValue(this._config.minHeight);\n style.maxWidth = coerceCssPixelValue(this._config.maxWidth);\n style.maxHeight = coerceCssPixelValue(this._config.maxHeight);\n }\n /** Toggles the pointer events for the overlay pane element. */\n _togglePointerEvents(enablePointer) {\n this._pane.style.pointerEvents = enablePointer ? '' : 'none';\n }\n /** Attaches a backdrop for this overlay. */\n _attachBackdrop() {\n const showingClass = 'cdk-overlay-backdrop-showing';\n this._backdropElement = this._document.createElement('div');\n this._backdropElement.classList.add('cdk-overlay-backdrop');\n if (this._config.backdropClass) {\n this._toggleClasses(this._backdropElement, this._config.backdropClass, true);\n }\n // Insert the backdrop before the pane in the DOM order,\n // in order to handle stacked overlays properly.\n this._host.parentElement.insertBefore(this._backdropElement, this._host);\n // Forward backdrop clicks such that the consumer of the overlay can perform whatever\n // action desired when such a click occurs (usually closing the overlay).\n this._backdropElement.addEventListener('click', this._backdropClickHandler);\n // Add class to fade-in the backdrop after one frame.\n if (typeof requestAnimationFrame !== 'undefined') {\n this._ngZone.runOutsideAngular(() => {\n requestAnimationFrame(() => {\n if (this._backdropElement) {\n this._backdropElement.classList.add(showingClass);\n }\n });\n });\n }\n else {\n this._backdropElement.classList.add(showingClass);\n }\n }\n /**\n * Updates the stacking order of the element, moving it to the top if necessary.\n * This is required in cases where one overlay was detached, while another one,\n * that should be behind it, was destroyed. The next time both of them are opened,\n * the stacking will be wrong, because the detached element's pane will still be\n * in its original DOM position.\n */\n _updateStackingOrder() {\n if (this._host.nextSibling) {\n this._host.parentNode.appendChild(this._host);\n }\n }\n /** Detaches the backdrop (if any) associated with the overlay. */\n detachBackdrop() {\n let backdropToDetach = this._backdropElement;\n if (!backdropToDetach) {\n return;\n }\n let timeoutId;\n let finishDetach = () => {\n // It may not be attached to anything in certain cases (e.g. unit tests).\n if (backdropToDetach) {\n backdropToDetach.removeEventListener('click', this._backdropClickHandler);\n backdropToDetach.removeEventListener('transitionend', finishDetach);\n if (backdropToDetach.parentNode) {\n backdropToDetach.parentNode.removeChild(backdropToDetach);\n }\n }\n // It is possible that a new portal has been attached to this overlay since we started\n // removing the backdrop. If that is the case, only clear the backdrop reference if it\n // is still the same instance that we started to remove.\n if (this._backdropElement == backdropToDetach) {\n this._backdropElement = null;\n }\n if (this._config.backdropClass) {\n this._toggleClasses(backdropToDetach, this._config.backdropClass, false);\n }\n clearTimeout(timeoutId);\n };\n backdropToDetach.classList.remove('cdk-overlay-backdrop-showing');\n this._ngZone.runOutsideAngular(() => {\n backdropToDetach.addEventListener('transitionend', finishDetach);\n });\n // If the backdrop doesn't have a transition, the `transitionend` event won't fire.\n // In this case we make it unclickable and we try to remove it after a delay.\n backdropToDetach.style.pointerEvents = 'none';\n // Run this outside the Angular zone because there's nothing that Angular cares about.\n // If it were to run inside the Angular zone, every test that used Overlay would have to be\n // either async or fakeAsync.\n timeoutId = this._ngZone.runOutsideAngular(() => setTimeout(finishDetach, 500));\n }\n /** Toggles a single CSS class or an array of classes on an element. */\n _toggleClasses(element, cssClasses, isAdd) {\n const classList = element.classList;\n coerceArray(cssClasses).forEach(cssClass => {\n // We can't do a spread here, because IE doesn't support setting multiple classes.\n // Also trying to add an empty string to a DOMTokenList will throw.\n if (cssClass) {\n isAdd ? classList.add(cssClass) : classList.remove(cssClass);\n }\n });\n }\n /** Detaches the overlay content next time the zone stabilizes. */\n _detachContentWhenStable() {\n // Normally we wouldn't have to explicitly run this outside the `NgZone`, however\n // if the consumer is using `zone-patch-rxjs`, the `Subscription.unsubscribe` call will\n // be patched to run inside the zone, which will throw us into an infinite loop.\n this._ngZone.runOutsideAngular(() => {\n // We can't remove the host here immediately, because the overlay pane's content\n // might still be animating. This stream helps us avoid interrupting the animation\n // by waiting for the pane to become empty.\n const subscription = this._ngZone.onStable\n .pipe(takeUntil(merge(this._attachments, this._detachments)))\n .subscribe(() => {\n // Needs a couple of checks for the pane and host, because\n // they may have been removed by the time the zone stabilizes.\n if (!this._pane || !this._host || this._pane.children.length === 0) {\n if (this._pane && this._config.panelClass) {\n this._toggleClasses(this._pane, this._config.panelClass, false);\n }\n if (this._host && this._host.parentElement) {\n this._previousHostParent = this._host.parentElement;\n this._previousHostParent.removeChild(this._host);\n }\n subscription.unsubscribe();\n }\n });\n });\n }\n /** Disposes of a scroll strategy. */\n _disposeScrollStrategy() {\n const scrollStrategy = this._scrollStrategy;\n if (scrollStrategy) {\n scrollStrategy.disable();\n if (scrollStrategy.detach) {\n scrollStrategy.detach();\n }\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// TODO: refactor clipping detection into a separate thing (part of scrolling module)\n// TODO: doesn't handle both flexible width and height when it has to scroll along both axis.\n/** Class to be added to the overlay bounding box. */\nconst boundingBoxClass = 'cdk-overlay-connected-position-bounding-box';\n/** Regex used to split a string on its CSS units. */\nconst cssUnitPattern = /([A-Za-z%]+)$/;\n/**\n * A strategy for positioning overlays. Using this strategy, an overlay is given an\n * implicit position relative some origin element. The relative position is defined in terms of\n * a point on the origin element that is connected to a point on the overlay element. For example,\n * a basic dropdown is connecting the bottom-left corner of the origin to the top-left corner\n * of the overlay.\n */\nclass FlexibleConnectedPositionStrategy {\n constructor(connectedTo, _viewportRuler, _document, _platform, _overlayContainer) {\n this._viewportRuler = _viewportRuler;\n this._document = _document;\n this._platform = _platform;\n this._overlayContainer = _overlayContainer;\n /** Last size used for the bounding box. Used to avoid resizing the overlay after open. */\n this._lastBoundingBoxSize = { width: 0, height: 0 };\n /** Whether the overlay was pushed in a previous positioning. */\n this._isPushed = false;\n /** Whether the overlay can be pushed on-screen on the initial open. */\n this._canPush = true;\n /** Whether the overlay can grow via flexible width/height after the initial open. */\n this._growAfterOpen = false;\n /** Whether the overlay's width and height can be constrained to fit within the viewport. */\n this._hasFlexibleDimensions = true;\n /** Whether the overlay position is locked. */\n this._positionLocked = false;\n /** Amount of space that must be maintained between the overlay and the edge of the viewport. */\n this._viewportMargin = 0;\n /** The Scrollable containers used to check scrollable view properties on position change. */\n this._scrollables = [];\n /** Ordered list of preferred positions, from most to least desirable. */\n this._preferredPositions = [];\n /** Subject that emits whenever the position changes. */\n this._positionChanges = new Subject();\n /** Subscription to viewport size changes. */\n this._resizeSubscription = Subscription.EMPTY;\n /** Default offset for the overlay along the x axis. */\n this._offsetX = 0;\n /** Default offset for the overlay along the y axis. */\n this._offsetY = 0;\n /** Keeps track of the CSS classes that the position strategy has applied on the overlay panel. */\n this._appliedPanelClasses = [];\n /** Observable sequence of position changes. */\n this.positionChanges = this._positionChanges;\n this.setOrigin(connectedTo);\n }\n /** Ordered list of preferred positions, from most to least desirable. */\n get positions() {\n return this._preferredPositions;\n }\n /** Attaches this position strategy to an overlay. */\n attach(overlayRef) {\n if (this._overlayRef && overlayRef !== this._overlayRef &&\n (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('This position strategy is already attached to an overlay');\n }\n this._validatePositions();\n overlayRef.hostElement.classList.add(boundingBoxClass);\n this._overlayRef = overlayRef;\n this._boundingBox = overlayRef.hostElement;\n this._pane = overlayRef.overlayElement;\n this._isDisposed = false;\n this._isInitialRender = true;\n this._lastPosition = null;\n this._resizeSubscription.unsubscribe();\n this._resizeSubscription = this._viewportRuler.change().subscribe(() => {\n // When the window is resized, we want to trigger the next reposition as if it\n // was an initial render, in order for the strategy to pick a new optimal position,\n // otherwise position locking will cause it to stay at the old one.\n this._isInitialRender = true;\n this.apply();\n });\n }\n /**\n * Updates the position of the overlay element, using whichever preferred position relative\n * to the origin best fits on-screen.\n *\n * The selection of a position goes as follows:\n * - If any positions fit completely within the viewport as-is,\n * choose the first position that does so.\n * - If flexible dimensions are enabled and at least one satifies the given minimum width/height,\n * choose the position with the greatest available size modified by the positions' weight.\n * - If pushing is enabled, take the position that went off-screen the least and push it\n * on-screen.\n * - If none of the previous criteria were met, use the position that goes off-screen the least.\n * @docs-private\n */\n apply() {\n // We shouldn't do anything if the strategy was disposed or we're on the server.\n if (this._isDisposed || !this._platform.isBrowser) {\n return;\n }\n // If the position has been applied already (e.g. when the overlay was opened) and the\n // consumer opted into locking in the position, re-use the old position, in order to\n // prevent the overlay from jumping around.\n if (!this._isInitialRender && this._positionLocked && this._lastPosition) {\n this.reapplyLastPosition();\n return;\n }\n this._clearPanelClasses();\n this._resetOverlayElementStyles();\n this._resetBoundingBoxStyles();\n // We need the bounding rects for the origin and the overlay to determine how to position\n // the overlay relative to the origin.\n // We use the viewport rect to determine whether a position would go off-screen.\n this._viewportRect = this._getNarrowedViewportRect();\n this._originRect = this._getOriginRect();\n this._overlayRect = this._pane.getBoundingClientRect();\n const originRect = this._originRect;\n const overlayRect = this._overlayRect;\n const viewportRect = this._viewportRect;\n // Positions where the overlay will fit with flexible dimensions.\n const flexibleFits = [];\n // Fallback if none of the preferred positions fit within the viewport.\n let fallback;\n // Go through each of the preferred positions looking for a good fit.\n // If a good fit is found, it will be applied immediately.\n for (let pos of this._preferredPositions) {\n // Get the exact (x, y) coordinate for the point-of-origin on the origin element.\n let originPoint = this._getOriginPoint(originRect, pos);\n // From that point-of-origin, get the exact (x, y) coordinate for the top-left corner of the\n // overlay in this position. We use the top-left corner for calculations and later translate\n // this into an appropriate (top, left, bottom, right) style.\n let overlayPoint = this._getOverlayPoint(originPoint, overlayRect, pos);\n // Calculate how well the overlay would fit into the viewport with this point.\n let overlayFit = this._getOverlayFit(overlayPoint, overlayRect, viewportRect, pos);\n // If the overlay, without any further work, fits into the viewport, use this position.\n if (overlayFit.isCompletelyWithinViewport) {\n this._isPushed = false;\n this._applyPosition(pos, originPoint);\n return;\n }\n // If the overlay has flexible dimensions, we can use this position\n // so long as there's enough space for the minimum dimensions.\n if (this._canFitWithFlexibleDimensions(overlayFit, overlayPoint, viewportRect)) {\n // Save positions where the overlay will fit with flexible dimensions. We will use these\n // if none of the positions fit *without* flexible dimensions.\n flexibleFits.push({\n position: pos,\n origin: originPoint,\n overlayRect,\n boundingBoxRect: this._calculateBoundingBoxRect(originPoint, pos)\n });\n continue;\n }\n // If the current preferred position does not fit on the screen, remember the position\n // if it has more visible area on-screen than we've seen and move onto the next preferred\n // position.\n if (!fallback || fallback.overlayFit.visibleArea < overlayFit.visibleArea) {\n fallback = { overlayFit, overlayPoint, originPoint, position: pos, overlayRect };\n }\n }\n // If there are any positions where the overlay would fit with flexible dimensions, choose the\n // one that has the greatest area available modified by the position's weight\n if (flexibleFits.length) {\n let bestFit = null;\n let bestScore = -1;\n for (const fit of flexibleFits) {\n const score = fit.boundingBoxRect.width * fit.boundingBoxRect.height * (fit.position.weight || 1);\n if (score > bestScore) {\n bestScore = score;\n bestFit = fit;\n }\n }\n this._isPushed = false;\n this._applyPosition(bestFit.position, bestFit.origin);\n return;\n }\n // When none of the preferred positions fit within the viewport, take the position\n // that went off-screen the least and attempt to push it on-screen.\n if (this._canPush) {\n // TODO(jelbourn): after pushing, the opening \"direction\" of the overlay might not make sense.\n this._isPushed = true;\n this._applyPosition(fallback.position, fallback.originPoint);\n return;\n }\n // All options for getting the overlay within the viewport have been exhausted, so go with the\n // position that went off-screen the least.\n this._applyPosition(fallback.position, fallback.originPoint);\n }\n detach() {\n this._clearPanelClasses();\n this._lastPosition = null;\n this._previousPushAmount = null;\n this._resizeSubscription.unsubscribe();\n }\n /** Cleanup after the element gets destroyed. */\n dispose() {\n if (this._isDisposed) {\n return;\n }\n // We can't use `_resetBoundingBoxStyles` here, because it resets\n // some properties to zero, rather than removing them.\n if (this._boundingBox) {\n extendStyles(this._boundingBox.style, {\n top: '',\n left: '',\n right: '',\n bottom: '',\n height: '',\n width: '',\n alignItems: '',\n justifyContent: '',\n });\n }\n if (this._pane) {\n this._resetOverlayElementStyles();\n }\n if (this._overlayRef) {\n this._overlayRef.hostElement.classList.remove(boundingBoxClass);\n }\n this.detach();\n this._positionChanges.complete();\n this._overlayRef = this._boundingBox = null;\n this._isDisposed = true;\n }\n /**\n * This re-aligns the overlay element with the trigger in its last calculated position,\n * even if a position higher in the \"preferred positions\" list would now fit. This\n * allows one to re-align the panel without changing the orientation of the panel.\n */\n reapplyLastPosition() {\n if (!this._isDisposed && (!this._platform || this._platform.isBrowser)) {\n this._originRect = this._getOriginRect();\n this._overlayRect = this._pane.getBoundingClientRect();\n this._viewportRect = this._getNarrowedViewportRect();\n const lastPosition = this._lastPosition || this._preferredPositions[0];\n const originPoint = this._getOriginPoint(this._originRect, lastPosition);\n this._applyPosition(lastPosition, originPoint);\n }\n }\n /**\n * Sets the list of Scrollable containers that host the origin element so that\n * on reposition we can evaluate if it or the overlay has been clipped or outside view. Every\n * Scrollable must be an ancestor element of the strategy's origin element.\n */\n withScrollableContainers(scrollables) {\n this._scrollables = scrollables;\n return this;\n }\n /**\n * Adds new preferred positions.\n * @param positions List of positions options for this overlay.\n */\n withPositions(positions) {\n this._preferredPositions = positions;\n // If the last calculated position object isn't part of the positions anymore, clear\n // it in order to avoid it being picked up if the consumer tries to re-apply.\n if (positions.indexOf(this._lastPosition) === -1) {\n this._lastPosition = null;\n }\n this._validatePositions();\n return this;\n }\n /**\n * Sets a minimum distance the overlay may be positioned to the edge of the viewport.\n * @param margin Required margin between the overlay and the viewport edge in pixels.\n */\n withViewportMargin(margin) {\n this._viewportMargin = margin;\n return this;\n }\n /** Sets whether the overlay's width and height can be constrained to fit within the viewport. */\n withFlexibleDimensions(flexibleDimensions = true) {\n this._hasFlexibleDimensions = flexibleDimensions;\n return this;\n }\n /** Sets whether the overlay can grow after the initial open via flexible width/height. */\n withGrowAfterOpen(growAfterOpen = true) {\n this._growAfterOpen = growAfterOpen;\n return this;\n }\n /** Sets whether the overlay can be pushed on-screen if none of the provided positions fit. */\n withPush(canPush = true) {\n this._canPush = canPush;\n return this;\n }\n /**\n * Sets whether the overlay's position should be locked in after it is positioned\n * initially. When an overlay is locked in, it won't attempt to reposition itself\n * when the position is re-applied (e.g. when the user scrolls away).\n * @param isLocked Whether the overlay should locked in.\n */\n withLockedPosition(isLocked = true) {\n this._positionLocked = isLocked;\n return this;\n }\n /**\n * Sets the origin, relative to which to position the overlay.\n * Using an element origin is useful for building components that need to be positioned\n * relatively to a trigger (e.g. dropdown menus or tooltips), whereas using a point can be\n * used for cases like contextual menus which open relative to the user's pointer.\n * @param origin Reference to the new origin.\n */\n setOrigin(origin) {\n this._origin = origin;\n return this;\n }\n /**\n * Sets the default offset for the overlay's connection point on the x-axis.\n * @param offset New offset in the X axis.\n */\n withDefaultOffsetX(offset) {\n this._offsetX = offset;\n return this;\n }\n /**\n * Sets the default offset for the overlay's connection point on the y-axis.\n * @param offset New offset in the Y axis.\n */\n withDefaultOffsetY(offset) {\n this._offsetY = offset;\n return this;\n }\n /**\n * Configures that the position strategy should set a `transform-origin` on some elements\n * inside the overlay, depending on the current position that is being applied. This is\n * useful for the cases where the origin of an animation can change depending on the\n * alignment of the overlay.\n * @param selector CSS selector that will be used to find the target\n * elements onto which to set the transform origin.\n */\n withTransformOriginOn(selector) {\n this._transformOriginSelector = selector;\n return this;\n }\n /**\n * Gets the (x, y) coordinate of a connection point on the origin based on a relative position.\n */\n _getOriginPoint(originRect, pos) {\n let x;\n if (pos.originX == 'center') {\n // Note: when centering we should always use the `left`\n // offset, otherwise the position will be wrong in RTL.\n x = originRect.left + (originRect.width / 2);\n }\n else {\n const startX = this._isRtl() ? originRect.right : originRect.left;\n const endX = this._isRtl() ? originRect.left : originRect.right;\n x = pos.originX == 'start' ? startX : endX;\n }\n let y;\n if (pos.originY == 'center') {\n y = originRect.top + (originRect.height / 2);\n }\n else {\n y = pos.originY == 'top' ? originRect.top : originRect.bottom;\n }\n return { x, y };\n }\n /**\n * Gets the (x, y) coordinate of the top-left corner of the overlay given a given position and\n * origin point to which the overlay should be connected.\n */\n _getOverlayPoint(originPoint, overlayRect, pos) {\n // Calculate the (overlayStartX, overlayStartY), the start of the\n // potential overlay position relative to the origin point.\n let overlayStartX;\n if (pos.overlayX == 'center') {\n overlayStartX = -overlayRect.width / 2;\n }\n else if (pos.overlayX === 'start') {\n overlayStartX = this._isRtl() ? -overlayRect.width : 0;\n }\n else {\n overlayStartX = this._isRtl() ? 0 : -overlayRect.width;\n }\n let overlayStartY;\n if (pos.overlayY == 'center') {\n overlayStartY = -overlayRect.height / 2;\n }\n else {\n overlayStartY = pos.overlayY == 'top' ? 0 : -overlayRect.height;\n }\n // The (x, y) coordinates of the overlay.\n return {\n x: originPoint.x + overlayStartX,\n y: originPoint.y + overlayStartY,\n };\n }\n /** Gets how well an overlay at the given point will fit within the viewport. */\n _getOverlayFit(point, rawOverlayRect, viewport, position) {\n // Round the overlay rect when comparing against the\n // viewport, because the viewport is always rounded.\n const overlay = getRoundedBoundingClientRect(rawOverlayRect);\n let { x, y } = point;\n let offsetX = this._getOffset(position, 'x');\n let offsetY = this._getOffset(position, 'y');\n // Account for the offsets since they could push the overlay out of the viewport.\n if (offsetX) {\n x += offsetX;\n }\n if (offsetY) {\n y += offsetY;\n }\n // How much the overlay would overflow at this position, on each side.\n let leftOverflow = 0 - x;\n let rightOverflow = (x + overlay.width) - viewport.width;\n let topOverflow = 0 - y;\n let bottomOverflow = (y + overlay.height) - viewport.height;\n // Visible parts of the element on each axis.\n let visibleWidth = this._subtractOverflows(overlay.width, leftOverflow, rightOverflow);\n let visibleHeight = this._subtractOverflows(overlay.height, topOverflow, bottomOverflow);\n let visibleArea = visibleWidth * visibleHeight;\n return {\n visibleArea,\n isCompletelyWithinViewport: (overlay.width * overlay.height) === visibleArea,\n fitsInViewportVertically: visibleHeight === overlay.height,\n fitsInViewportHorizontally: visibleWidth == overlay.width,\n };\n }\n /**\n * Whether the overlay can fit within the viewport when it may resize either its width or height.\n * @param fit How well the overlay fits in the viewport at some position.\n * @param point The (x, y) coordinates of the overlat at some position.\n * @param viewport The geometry of the viewport.\n */\n _canFitWithFlexibleDimensions(fit, point, viewport) {\n if (this._hasFlexibleDimensions) {\n const availableHeight = viewport.bottom - point.y;\n const availableWidth = viewport.right - point.x;\n const minHeight = getPixelValue(this._overlayRef.getConfig().minHeight);\n const minWidth = getPixelValue(this._overlayRef.getConfig().minWidth);\n const verticalFit = fit.fitsInViewportVertically ||\n (minHeight != null && minHeight <= availableHeight);\n const horizontalFit = fit.fitsInViewportHorizontally ||\n (minWidth != null && minWidth <= availableWidth);\n return verticalFit && horizontalFit;\n }\n return false;\n }\n /**\n * Gets the point at which the overlay can be \"pushed\" on-screen. If the overlay is larger than\n * the viewport, the top-left corner will be pushed on-screen (with overflow occuring on the\n * right and bottom).\n *\n * @param start Starting point from which the overlay is pushed.\n * @param overlay Dimensions of the overlay.\n * @param scrollPosition Current viewport scroll position.\n * @returns The point at which to position the overlay after pushing. This is effectively a new\n * originPoint.\n */\n _pushOverlayOnScreen(start, rawOverlayRect, scrollPosition) {\n // If the position is locked and we've pushed the overlay already, reuse the previous push\n // amount, rather than pushing it again. If we were to continue pushing, the element would\n // remain in the viewport, which goes against the expectations when position locking is enabled.\n if (this._previousPushAmount && this._positionLocked) {\n return {\n x: start.x + this._previousPushAmount.x,\n y: start.y + this._previousPushAmount.y\n };\n }\n // Round the overlay rect when comparing against the\n // viewport, because the viewport is always rounded.\n const overlay = getRoundedBoundingClientRect(rawOverlayRect);\n const viewport = this._viewportRect;\n // Determine how much the overlay goes outside the viewport on each\n // side, which we'll use to decide which direction to push it.\n const overflowRight = Math.max(start.x + overlay.width - viewport.width, 0);\n const overflowBottom = Math.max(start.y + overlay.height - viewport.height, 0);\n const overflowTop = Math.max(viewport.top - scrollPosition.top - start.y, 0);\n const overflowLeft = Math.max(viewport.left - scrollPosition.left - start.x, 0);\n // Amount by which to push the overlay in each axis such that it remains on-screen.\n let pushX = 0;\n let pushY = 0;\n // If the overlay fits completely within the bounds of the viewport, push it from whichever\n // direction is goes off-screen. Otherwise, push the top-left corner such that its in the\n // viewport and allow for the trailing end of the overlay to go out of bounds.\n if (overlay.width <= viewport.width) {\n pushX = overflowLeft || -overflowRight;\n }\n else {\n pushX = start.x < this._viewportMargin ? (viewport.left - scrollPosition.left) - start.x : 0;\n }\n if (overlay.height <= viewport.height) {\n pushY = overflowTop || -overflowBottom;\n }\n else {\n pushY = start.y < this._viewportMargin ? (viewport.top - scrollPosition.top) - start.y : 0;\n }\n this._previousPushAmount = { x: pushX, y: pushY };\n return {\n x: start.x + pushX,\n y: start.y + pushY,\n };\n }\n /**\n * Applies a computed position to the overlay and emits a position change.\n * @param position The position preference\n * @param originPoint The point on the origin element where the overlay is connected.\n */\n _applyPosition(position, originPoint) {\n this._setTransformOrigin(position);\n this._setOverlayElementStyles(originPoint, position);\n this._setBoundingBoxStyles(originPoint, position);\n if (position.panelClass) {\n this._addPanelClasses(position.panelClass);\n }\n // Save the last connected position in case the position needs to be re-calculated.\n this._lastPosition = position;\n // Notify that the position has been changed along with its change properties.\n // We only emit if we've got any subscriptions, because the scroll visibility\n // calculcations can be somewhat expensive.\n if (this._positionChanges.observers.length) {\n const scrollableViewProperties = this._getScrollVisibility();\n const changeEvent = new ConnectedOverlayPositionChange(position, scrollableViewProperties);\n this._positionChanges.next(changeEvent);\n }\n this._isInitialRender = false;\n }\n /** Sets the transform origin based on the configured selector and the passed-in position. */\n _setTransformOrigin(position) {\n if (!this._transformOriginSelector) {\n return;\n }\n const elements = this._boundingBox.querySelectorAll(this._transformOriginSelector);\n let xOrigin;\n let yOrigin = position.overlayY;\n if (position.overlayX === 'center') {\n xOrigin = 'center';\n }\n else if (this._isRtl()) {\n xOrigin = position.overlayX === 'start' ? 'right' : 'left';\n }\n else {\n xOrigin = position.overlayX === 'start' ? 'left' : 'right';\n }\n for (let i = 0; i < elements.length; i++) {\n elements[i].style.transformOrigin = `${xOrigin} ${yOrigin}`;\n }\n }\n /**\n * Gets the position and size of the overlay's sizing container.\n *\n * This method does no measuring and applies no styles so that we can cheaply compute the\n * bounds for all positions and choose the best fit based on these results.\n */\n _calculateBoundingBoxRect(origin, position) {\n const viewport = this._viewportRect;\n const isRtl = this._isRtl();\n let height, top, bottom;\n if (position.overlayY === 'top') {\n // Overlay is opening \"downward\" and thus is bound by the bottom viewport edge.\n top = origin.y;\n height = viewport.height - top + this._viewportMargin;\n }\n else if (position.overlayY === 'bottom') {\n // Overlay is opening \"upward\" and thus is bound by the top viewport edge. We need to add\n // the viewport margin back in, because the viewport rect is narrowed down to remove the\n // margin, whereas the `origin` position is calculated based on its `ClientRect`.\n bottom = viewport.height - origin.y + this._viewportMargin * 2;\n height = viewport.height - bottom + this._viewportMargin;\n }\n else {\n // If neither top nor bottom, it means that the overlay is vertically centered on the\n // origin point. Note that we want the position relative to the viewport, rather than\n // the page, which is why we don't use something like `viewport.bottom - origin.y` and\n // `origin.y - viewport.top`.\n const smallestDistanceToViewportEdge = Math.min(viewport.bottom - origin.y + viewport.top, origin.y);\n const previousHeight = this._lastBoundingBoxSize.height;\n height = smallestDistanceToViewportEdge * 2;\n top = origin.y - smallestDistanceToViewportEdge;\n if (height > previousHeight && !this._isInitialRender && !this._growAfterOpen) {\n top = origin.y - (previousHeight / 2);\n }\n }\n // The overlay is opening 'right-ward' (the content flows to the right).\n const isBoundedByRightViewportEdge = (position.overlayX === 'start' && !isRtl) ||\n (position.overlayX === 'end' && isRtl);\n // The overlay is opening 'left-ward' (the content flows to the left).\n const isBoundedByLeftViewportEdge = (position.overlayX === 'end' && !isRtl) ||\n (position.overlayX === 'start' && isRtl);\n let width, left, right;\n if (isBoundedByLeftViewportEdge) {\n right = viewport.width - origin.x + this._viewportMargin;\n width = origin.x - this._viewportMargin;\n }\n else if (isBoundedByRightViewportEdge) {\n left = origin.x;\n width = viewport.right - origin.x;\n }\n else {\n // If neither start nor end, it means that the overlay is horizontally centered on the\n // origin point. Note that we want the position relative to the viewport, rather than\n // the page, which is why we don't use something like `viewport.right - origin.x` and\n // `origin.x - viewport.left`.\n const smallestDistanceToViewportEdge = Math.min(viewport.right - origin.x + viewport.left, origin.x);\n const previousWidth = this._lastBoundingBoxSize.width;\n width = smallestDistanceToViewportEdge * 2;\n left = origin.x - smallestDistanceToViewportEdge;\n if (width > previousWidth && !this._isInitialRender && !this._growAfterOpen) {\n left = origin.x - (previousWidth / 2);\n }\n }\n return { top: top, left: left, bottom: bottom, right: right, width, height };\n }\n /**\n * Sets the position and size of the overlay's sizing wrapper. The wrapper is positioned on the\n * origin's connection point and stetches to the bounds of the viewport.\n *\n * @param origin The point on the origin element where the overlay is connected.\n * @param position The position preference\n */\n _setBoundingBoxStyles(origin, position) {\n const boundingBoxRect = this._calculateBoundingBoxRect(origin, position);\n // It's weird if the overlay *grows* while scrolling, so we take the last size into account\n // when applying a new size.\n if (!this._isInitialRender && !this._growAfterOpen) {\n boundingBoxRect.height = Math.min(boundingBoxRect.height, this._lastBoundingBoxSize.height);\n boundingBoxRect.width = Math.min(boundingBoxRect.width, this._lastBoundingBoxSize.width);\n }\n const styles = {};\n if (this._hasExactPosition()) {\n styles.top = styles.left = '0';\n styles.bottom = styles.right = styles.maxHeight = styles.maxWidth = '';\n styles.width = styles.height = '100%';\n }\n else {\n const maxHeight = this._overlayRef.getConfig().maxHeight;\n const maxWidth = this._overlayRef.getConfig().maxWidth;\n styles.height = coerceCssPixelValue(boundingBoxRect.height);\n styles.top = coerceCssPixelValue(boundingBoxRect.top);\n styles.bottom = coerceCssPixelValue(boundingBoxRect.bottom);\n styles.width = coerceCssPixelValue(boundingBoxRect.width);\n styles.left = coerceCssPixelValue(boundingBoxRect.left);\n styles.right = coerceCssPixelValue(boundingBoxRect.right);\n // Push the pane content towards the proper direction.\n if (position.overlayX === 'center') {\n styles.alignItems = 'center';\n }\n else {\n styles.alignItems = position.overlayX === 'end' ? 'flex-end' : 'flex-start';\n }\n if (position.overlayY === 'center') {\n styles.justifyContent = 'center';\n }\n else {\n styles.justifyContent = position.overlayY === 'bottom' ? 'flex-end' : 'flex-start';\n }\n if (maxHeight) {\n styles.maxHeight = coerceCssPixelValue(maxHeight);\n }\n if (maxWidth) {\n styles.maxWidth = coerceCssPixelValue(maxWidth);\n }\n }\n this._lastBoundingBoxSize = boundingBoxRect;\n extendStyles(this._boundingBox.style, styles);\n }\n /** Resets the styles for the bounding box so that a new positioning can be computed. */\n _resetBoundingBoxStyles() {\n extendStyles(this._boundingBox.style, {\n top: '0',\n left: '0',\n right: '0',\n bottom: '0',\n height: '',\n width: '',\n alignItems: '',\n justifyContent: '',\n });\n }\n /** Resets the styles for the overlay pane so that a new positioning can be computed. */\n _resetOverlayElementStyles() {\n extendStyles(this._pane.style, {\n top: '',\n left: '',\n bottom: '',\n right: '',\n position: '',\n transform: '',\n });\n }\n /** Sets positioning styles to the overlay element. */\n _setOverlayElementStyles(originPoint, position) {\n const styles = {};\n const hasExactPosition = this._hasExactPosition();\n const hasFlexibleDimensions = this._hasFlexibleDimensions;\n const config = this._overlayRef.getConfig();\n if (hasExactPosition) {\n const scrollPosition = this._viewportRuler.getViewportScrollPosition();\n extendStyles(styles, this._getExactOverlayY(position, originPoint, scrollPosition));\n extendStyles(styles, this._getExactOverlayX(position, originPoint, scrollPosition));\n }\n else {\n styles.position = 'static';\n }\n // Use a transform to apply the offsets. We do this because the `center` positions rely on\n // being in the normal flex flow and setting a `top` / `left` at all will completely throw\n // off the position. We also can't use margins, because they won't have an effect in some\n // cases where the element doesn't have anything to \"push off of\". Finally, this works\n // better both with flexible and non-flexible positioning.\n let transformString = '';\n let offsetX = this._getOffset(position, 'x');\n let offsetY = this._getOffset(position, 'y');\n if (offsetX) {\n transformString += `translateX(${offsetX}px) `;\n }\n if (offsetY) {\n transformString += `translateY(${offsetY}px)`;\n }\n styles.transform = transformString.trim();\n // If a maxWidth or maxHeight is specified on the overlay, we remove them. We do this because\n // we need these values to both be set to \"100%\" for the automatic flexible sizing to work.\n // The maxHeight and maxWidth are set on the boundingBox in order to enforce the constraint.\n // Note that this doesn't apply when we have an exact position, in which case we do want to\n // apply them because they'll be cleared from the bounding box.\n if (config.maxHeight) {\n if (hasExactPosition) {\n styles.maxHeight = coerceCssPixelValue(config.maxHeight);\n }\n else if (hasFlexibleDimensions) {\n styles.maxHeight = '';\n }\n }\n if (config.maxWidth) {\n if (hasExactPosition) {\n styles.maxWidth = coerceCssPixelValue(config.maxWidth);\n }\n else if (hasFlexibleDimensions) {\n styles.maxWidth = '';\n }\n }\n extendStyles(this._pane.style, styles);\n }\n /** Gets the exact top/bottom for the overlay when not using flexible sizing or when pushing. */\n _getExactOverlayY(position, originPoint, scrollPosition) {\n // Reset any existing styles. This is necessary in case the\n // preferred position has changed since the last `apply`.\n let styles = { top: '', bottom: '' };\n let overlayPoint = this._getOverlayPoint(originPoint, this._overlayRect, position);\n if (this._isPushed) {\n overlayPoint = this._pushOverlayOnScreen(overlayPoint, this._overlayRect, scrollPosition);\n }\n let virtualKeyboardOffset = this._overlayContainer.getContainerElement().getBoundingClientRect().top;\n // Normally this would be zero, however when the overlay is attached to an input (e.g. in an\n // autocomplete), mobile browsers will shift everything in order to put the input in the middle\n // of the screen and to make space for the virtual keyboard. We need to account for this offset,\n // otherwise our positioning will be thrown off.\n overlayPoint.y -= virtualKeyboardOffset;\n // We want to set either `top` or `bottom` based on whether the overlay wants to appear\n // above or below the origin and the direction in which the element will expand.\n if (position.overlayY === 'bottom') {\n // When using `bottom`, we adjust the y position such that it is the distance\n // from the bottom of the viewport rather than the top.\n const documentHeight = this._document.documentElement.clientHeight;\n styles.bottom = `${documentHeight - (overlayPoint.y + this._overlayRect.height)}px`;\n }\n else {\n styles.top = coerceCssPixelValue(overlayPoint.y);\n }\n return styles;\n }\n /** Gets the exact left/right for the overlay when not using flexible sizing or when pushing. */\n _getExactOverlayX(position, originPoint, scrollPosition) {\n // Reset any existing styles. This is necessary in case the preferred position has\n // changed since the last `apply`.\n let styles = { left: '', right: '' };\n let overlayPoint = this._getOverlayPoint(originPoint, this._overlayRect, position);\n if (this._isPushed) {\n overlayPoint = this._pushOverlayOnScreen(overlayPoint, this._overlayRect, scrollPosition);\n }\n // We want to set either `left` or `right` based on whether the overlay wants to appear \"before\"\n // or \"after\" the origin, which determines the direction in which the element will expand.\n // For the horizontal axis, the meaning of \"before\" and \"after\" change based on whether the\n // page is in RTL or LTR.\n let horizontalStyleProperty;\n if (this._isRtl()) {\n horizontalStyleProperty = position.overlayX === 'end' ? 'left' : 'right';\n }\n else {\n horizontalStyleProperty = position.overlayX === 'end' ? 'right' : 'left';\n }\n // When we're setting `right`, we adjust the x position such that it is the distance\n // from the right edge of the viewport rather than the left edge.\n if (horizontalStyleProperty === 'right') {\n const documentWidth = this._document.documentElement.clientWidth;\n styles.right = `${documentWidth - (overlayPoint.x + this._overlayRect.width)}px`;\n }\n else {\n styles.left = coerceCssPixelValue(overlayPoint.x);\n }\n return styles;\n }\n /**\n * Gets the view properties of the trigger and overlay, including whether they are clipped\n * or completely outside the view of any of the strategy's scrollables.\n */\n _getScrollVisibility() {\n // Note: needs fresh rects since the position could've changed.\n const originBounds = this._getOriginRect();\n const overlayBounds = this._pane.getBoundingClientRect();\n // TODO(jelbourn): instead of needing all of the client rects for these scrolling containers\n // every time, we should be able to use the scrollTop of the containers if the size of those\n // containers hasn't changed.\n const scrollContainerBounds = this._scrollables.map(scrollable => {\n return scrollable.getElementRef().nativeElement.getBoundingClientRect();\n });\n return {\n isOriginClipped: isElementClippedByScrolling(originBounds, scrollContainerBounds),\n isOriginOutsideView: isElementScrolledOutsideView(originBounds, scrollContainerBounds),\n isOverlayClipped: isElementClippedByScrolling(overlayBounds, scrollContainerBounds),\n isOverlayOutsideView: isElementScrolledOutsideView(overlayBounds, scrollContainerBounds),\n };\n }\n /** Subtracts the amount that an element is overflowing on an axis from its length. */\n _subtractOverflows(length, ...overflows) {\n return overflows.reduce((currentValue, currentOverflow) => {\n return currentValue - Math.max(currentOverflow, 0);\n }, length);\n }\n /** Narrows the given viewport rect by the current _viewportMargin. */\n _getNarrowedViewportRect() {\n // We recalculate the viewport rect here ourselves, rather than using the ViewportRuler,\n // because we want to use the `clientWidth` and `clientHeight` as the base. The difference\n // being that the client properties don't include the scrollbar, as opposed to `innerWidth`\n // and `innerHeight` that do. This is necessary, because the overlay container uses\n // 100% `width` and `height` which don't include the scrollbar either.\n const width = this._document.documentElement.clientWidth;\n const height = this._document.documentElement.clientHeight;\n const scrollPosition = this._viewportRuler.getViewportScrollPosition();\n return {\n top: scrollPosition.top + this._viewportMargin,\n left: scrollPosition.left + this._viewportMargin,\n right: scrollPosition.left + width - this._viewportMargin,\n bottom: scrollPosition.top + height - this._viewportMargin,\n width: width - (2 * this._viewportMargin),\n height: height - (2 * this._viewportMargin),\n };\n }\n /** Whether the we're dealing with an RTL context */\n _isRtl() {\n return this._overlayRef.getDirection() === 'rtl';\n }\n /** Determines whether the overlay uses exact or flexible positioning. */\n _hasExactPosition() {\n return !this._hasFlexibleDimensions || this._isPushed;\n }\n /** Retrieves the offset of a position along the x or y axis. */\n _getOffset(position, axis) {\n if (axis === 'x') {\n // We don't do something like `position['offset' + axis]` in\n // order to avoid breking minifiers that rename properties.\n return position.offsetX == null ? this._offsetX : position.offsetX;\n }\n return position.offsetY == null ? this._offsetY : position.offsetY;\n }\n /** Validates that the current position match the expected values. */\n _validatePositions() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._preferredPositions.length) {\n throw Error('FlexibleConnectedPositionStrategy: At least one position is required.');\n }\n // TODO(crisbeto): remove these once Angular's template type\n // checking is advanced enough to catch these cases.\n this._preferredPositions.forEach(pair => {\n validateHorizontalPosition('originX', pair.originX);\n validateVerticalPosition('originY', pair.originY);\n validateHorizontalPosition('overlayX', pair.overlayX);\n validateVerticalPosition('overlayY', pair.overlayY);\n });\n }\n }\n /** Adds a single CSS class or an array of classes on the overlay panel. */\n _addPanelClasses(cssClasses) {\n if (this._pane) {\n coerceArray(cssClasses).forEach(cssClass => {\n if (cssClass !== '' && this._appliedPanelClasses.indexOf(cssClass) === -1) {\n this._appliedPanelClasses.push(cssClass);\n this._pane.classList.add(cssClass);\n }\n });\n }\n }\n /** Clears the classes that the position strategy has applied from the overlay panel. */\n _clearPanelClasses() {\n if (this._pane) {\n this._appliedPanelClasses.forEach(cssClass => {\n this._pane.classList.remove(cssClass);\n });\n this._appliedPanelClasses = [];\n }\n }\n /** Returns the ClientRect of the current origin. */\n _getOriginRect() {\n const origin = this._origin;\n if (origin instanceof ElementRef) {\n return origin.nativeElement.getBoundingClientRect();\n }\n // Check for Element so SVG elements are also supported.\n if (origin instanceof Element) {\n return origin.getBoundingClientRect();\n }\n const width = origin.width || 0;\n const height = origin.height || 0;\n // If the origin is a point, return a client rect as if it was a 0x0 element at the point.\n return {\n top: origin.y,\n bottom: origin.y + height,\n left: origin.x,\n right: origin.x + width,\n height,\n width\n };\n }\n}\n/** Shallow-extends a stylesheet object with another stylesheet object. */\nfunction extendStyles(destination, source) {\n for (let key in source) {\n if (source.hasOwnProperty(key)) {\n destination[key] = source[key];\n }\n }\n return destination;\n}\n/**\n * Extracts the pixel value as a number from a value, if it's a number\n * or a CSS pixel string (e.g. `1337px`). Otherwise returns null.\n */\nfunction getPixelValue(input) {\n if (typeof input !== 'number' && input != null) {\n const [value, units] = input.split(cssUnitPattern);\n return (!units || units === 'px') ? parseFloat(value) : null;\n }\n return input || null;\n}\n/**\n * Gets a version of an element's bounding `ClientRect` where all the values are rounded down to\n * the nearest pixel. This allows us to account for the cases where there may be sub-pixel\n * deviations in the `ClientRect` returned by the browser (e.g. when zoomed in with a percentage\n * size, see #21350).\n */\nfunction getRoundedBoundingClientRect(clientRect) {\n return {\n top: Math.floor(clientRect.top),\n right: Math.floor(clientRect.right),\n bottom: Math.floor(clientRect.bottom),\n left: Math.floor(clientRect.left),\n width: Math.floor(clientRect.width),\n height: Math.floor(clientRect.height)\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 * A strategy for positioning overlays. Using this strategy, an overlay is given an\n * implicit position relative to some origin element. The relative position is defined in terms of\n * a point on the origin element that is connected to a point on the overlay element. For example,\n * a basic dropdown is connecting the bottom-left corner of the origin to the top-left corner\n * of the overlay.\n * @deprecated Use `FlexibleConnectedPositionStrategy` instead.\n * @breaking-change 8.0.0\n */\nclass ConnectedPositionStrategy {\n constructor(originPos, overlayPos, connectedTo, viewportRuler, document, platform, overlayContainer) {\n /** Ordered list of preferred positions, from most to least desirable. */\n this._preferredPositions = [];\n // Since the `ConnectedPositionStrategy` is deprecated and we don't want to maintain\n // the extra logic, we create an instance of the positioning strategy that has some\n // defaults that make it behave as the old position strategy and to which we'll\n // proxy all of the API calls.\n this._positionStrategy = new FlexibleConnectedPositionStrategy(connectedTo, viewportRuler, document, platform, overlayContainer)\n .withFlexibleDimensions(false)\n .withPush(false)\n .withViewportMargin(0);\n this.withFallbackPosition(originPos, overlayPos);\n this.onPositionChange = this._positionStrategy.positionChanges;\n }\n /** Ordered list of preferred positions, from most to least desirable. */\n get positions() {\n return this._preferredPositions;\n }\n /** Attach this position strategy to an overlay. */\n attach(overlayRef) {\n this._overlayRef = overlayRef;\n this._positionStrategy.attach(overlayRef);\n if (this._direction) {\n overlayRef.setDirection(this._direction);\n this._direction = null;\n }\n }\n /** Disposes all resources used by the position strategy. */\n dispose() {\n this._positionStrategy.dispose();\n }\n /** @docs-private */\n detach() {\n this._positionStrategy.detach();\n }\n /**\n * Updates the position of the overlay element, using whichever preferred position relative\n * to the origin fits on-screen.\n * @docs-private\n */\n apply() {\n this._positionStrategy.apply();\n }\n /**\n * Re-positions the overlay element with the trigger in its last calculated position,\n * even if a position higher in the \"preferred positions\" list would now fit. This\n * allows one to re-align the panel without changing the orientation of the panel.\n */\n recalculateLastPosition() {\n this._positionStrategy.reapplyLastPosition();\n }\n /**\n * Sets the list of Scrollable containers that host the origin element so that\n * on reposition we can evaluate if it or the overlay has been clipped or outside view. Every\n * Scrollable must be an ancestor element of the strategy's origin element.\n */\n withScrollableContainers(scrollables) {\n this._positionStrategy.withScrollableContainers(scrollables);\n }\n /**\n * Adds a new preferred fallback position.\n * @param originPos\n * @param overlayPos\n */\n withFallbackPosition(originPos, overlayPos, offsetX, offsetY) {\n const position = new ConnectionPositionPair(originPos, overlayPos, offsetX, offsetY);\n this._preferredPositions.push(position);\n this._positionStrategy.withPositions(this._preferredPositions);\n return this;\n }\n /**\n * Sets the layout direction so the overlay's position can be adjusted to match.\n * @param dir New layout direction.\n */\n withDirection(dir) {\n // Since the direction might be declared before the strategy is attached,\n // we save the value in a temporary property and we'll transfer it to the\n // overlay ref on attachment.\n if (this._overlayRef) {\n this._overlayRef.setDirection(dir);\n }\n else {\n this._direction = dir;\n }\n return this;\n }\n /**\n * Sets an offset for the overlay's connection point on the x-axis\n * @param offset New offset in the X axis.\n */\n withOffsetX(offset) {\n this._positionStrategy.withDefaultOffsetX(offset);\n return this;\n }\n /**\n * Sets an offset for the overlay's connection point on the y-axis\n * @param offset New offset in the Y axis.\n */\n withOffsetY(offset) {\n this._positionStrategy.withDefaultOffsetY(offset);\n return this;\n }\n /**\n * Sets whether the overlay's position should be locked in after it is positioned\n * initially. When an overlay is locked in, it won't attempt to reposition itself\n * when the position is re-applied (e.g. when the user scrolls away).\n * @param isLocked Whether the overlay should locked in.\n */\n withLockedPosition(isLocked) {\n this._positionStrategy.withLockedPosition(isLocked);\n return this;\n }\n /**\n * Overwrites the current set of positions with an array of new ones.\n * @param positions Position pairs to be set on the strategy.\n */\n withPositions(positions) {\n this._preferredPositions = positions.slice();\n this._positionStrategy.withPositions(this._preferredPositions);\n return this;\n }\n /**\n * Sets the origin element, relative to which to position the overlay.\n * @param origin Reference to the new origin element.\n */\n setOrigin(origin) {\n this._positionStrategy.setOrigin(origin);\n return this;\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/** Class to be added to the overlay pane wrapper. */\nconst wrapperClass = 'cdk-global-overlay-wrapper';\n/**\n * A strategy for positioning overlays. Using this strategy, an overlay is given an\n * explicit position relative to the browser's viewport. We use flexbox, instead of\n * transforms, in order to avoid issues with subpixel rendering which can cause the\n * element to become blurry.\n */\nclass GlobalPositionStrategy {\n constructor() {\n this._cssPosition = 'static';\n this._topOffset = '';\n this._bottomOffset = '';\n this._leftOffset = '';\n this._rightOffset = '';\n this._alignItems = '';\n this._justifyContent = '';\n this._width = '';\n this._height = '';\n }\n attach(overlayRef) {\n const config = overlayRef.getConfig();\n this._overlayRef = overlayRef;\n if (this._width && !config.width) {\n overlayRef.updateSize({ width: this._width });\n }\n if (this._height && !config.height) {\n overlayRef.updateSize({ height: this._height });\n }\n overlayRef.hostElement.classList.add(wrapperClass);\n this._isDisposed = false;\n }\n /**\n * Sets the top position of the overlay. Clears any previously set vertical position.\n * @param value New top offset.\n */\n top(value = '') {\n this._bottomOffset = '';\n this._topOffset = value;\n this._alignItems = 'flex-start';\n return this;\n }\n /**\n * Sets the left position of the overlay. Clears any previously set horizontal position.\n * @param value New left offset.\n */\n left(value = '') {\n this._rightOffset = '';\n this._leftOffset = value;\n this._justifyContent = 'flex-start';\n return this;\n }\n /**\n * Sets the bottom position of the overlay. Clears any previously set vertical position.\n * @param value New bottom offset.\n */\n bottom(value = '') {\n this._topOffset = '';\n this._bottomOffset = value;\n this._alignItems = 'flex-end';\n return this;\n }\n /**\n * Sets the right position of the overlay. Clears any previously set horizontal position.\n * @param value New right offset.\n */\n right(value = '') {\n this._leftOffset = '';\n this._rightOffset = value;\n this._justifyContent = 'flex-end';\n return this;\n }\n /**\n * Sets the overlay width and clears any previously set width.\n * @param value New width for the overlay\n * @deprecated Pass the `width` through the `OverlayConfig`.\n * @breaking-change 8.0.0\n */\n width(value = '') {\n if (this._overlayRef) {\n this._overlayRef.updateSize({ width: value });\n }\n else {\n this._width = value;\n }\n return this;\n }\n /**\n * Sets the overlay height and clears any previously set height.\n * @param value New height for the overlay\n * @deprecated Pass the `height` through the `OverlayConfig`.\n * @breaking-change 8.0.0\n */\n height(value = '') {\n if (this._overlayRef) {\n this._overlayRef.updateSize({ height: value });\n }\n else {\n this._height = value;\n }\n return this;\n }\n /**\n * Centers the overlay horizontally with an optional offset.\n * Clears any previously set horizontal position.\n *\n * @param offset Overlay offset from the horizontal center.\n */\n centerHorizontally(offset = '') {\n this.left(offset);\n this._justifyContent = 'center';\n return this;\n }\n /**\n * Centers the overlay vertically with an optional offset.\n * Clears any previously set vertical position.\n *\n * @param offset Overlay offset from the vertical center.\n */\n centerVertically(offset = '') {\n this.top(offset);\n this._alignItems = 'center';\n return this;\n }\n /**\n * Apply the position to the element.\n * @docs-private\n */\n apply() {\n // Since the overlay ref applies the strategy asynchronously, it could\n // have been disposed before it ends up being applied. If that is the\n // case, we shouldn't do anything.\n if (!this._overlayRef || !this._overlayRef.hasAttached()) {\n return;\n }\n const styles = this._overlayRef.overlayElement.style;\n const parentStyles = this._overlayRef.hostElement.style;\n const config = this._overlayRef.getConfig();\n const { width, height, maxWidth, maxHeight } = config;\n const shouldBeFlushHorizontally = (width === '100%' || width === '100vw') &&\n (!maxWidth || maxWidth === '100%' || maxWidth === '100vw');\n const shouldBeFlushVertically = (height === '100%' || height === '100vh') &&\n (!maxHeight || maxHeight === '100%' || maxHeight === '100vh');\n styles.position = this._cssPosition;\n styles.marginLeft = shouldBeFlushHorizontally ? '0' : this._leftOffset;\n styles.marginTop = shouldBeFlushVertically ? '0' : this._topOffset;\n styles.marginBottom = this._bottomOffset;\n styles.marginRight = this._rightOffset;\n if (shouldBeFlushHorizontally) {\n parentStyles.justifyContent = 'flex-start';\n }\n else if (this._justifyContent === 'center') {\n parentStyles.justifyContent = 'center';\n }\n else if (this._overlayRef.getConfig().direction === 'rtl') {\n // In RTL the browser will invert `flex-start` and `flex-end` automatically, but we\n // don't want that because our positioning is explicitly `left` and `right`, hence\n // why we do another inversion to ensure that the overlay stays in the same position.\n // TODO: reconsider this if we add `start` and `end` methods.\n if (this._justifyContent === 'flex-start') {\n parentStyles.justifyContent = 'flex-end';\n }\n else if (this._justifyContent === 'flex-end') {\n parentStyles.justifyContent = 'flex-start';\n }\n }\n else {\n parentStyles.justifyContent = this._justifyContent;\n }\n parentStyles.alignItems = shouldBeFlushVertically ? 'flex-start' : this._alignItems;\n }\n /**\n * Cleans up the DOM changes from the position strategy.\n * @docs-private\n */\n dispose() {\n if (this._isDisposed || !this._overlayRef) {\n return;\n }\n const styles = this._overlayRef.overlayElement.style;\n const parent = this._overlayRef.hostElement;\n const parentStyles = parent.style;\n parent.classList.remove(wrapperClass);\n parentStyles.justifyContent = parentStyles.alignItems = styles.marginTop =\n styles.marginBottom = styles.marginLeft = styles.marginRight = styles.position = '';\n this._overlayRef = null;\n this._isDisposed = true;\n }\n}\nlet OverlayPositionBuilder = /*@__PURE__*/ (() => {\n class OverlayPositionBuilder {\n constructor(_viewportRuler, _document, _platform, _overlayContainer) {\n this._viewportRuler = _viewportRuler;\n this._document = _document;\n this._platform = _platform;\n this._overlayContainer = _overlayContainer;\n }\n /**\n * Creates a global position strategy.\n */\n global() {\n return new GlobalPositionStrategy();\n }\n /**\n * Creates a relative position strategy.\n * @param elementRef\n * @param originPos\n * @param overlayPos\n * @deprecated Use `flexibleConnectedTo` instead.\n * @breaking-change 8.0.0\n */\n connectedTo(elementRef, originPos, overlayPos) {\n return new ConnectedPositionStrategy(originPos, overlayPos, elementRef, this._viewportRuler, this._document, this._platform, this._overlayContainer);\n }\n /**\n * Creates a flexible position strategy.\n * @param origin Origin relative to which to position the overlay.\n */\n flexibleConnectedTo(origin) {\n return new FlexibleConnectedPositionStrategy(origin, this._viewportRuler, this._document, this._platform, this._overlayContainer);\n }\n }\n OverlayPositionBuilder.ɵfac = function OverlayPositionBuilder_Factory(t) { return new (t || OverlayPositionBuilder)(ɵngcc0.ɵɵinject(ɵngcc1.ViewportRuler), ɵngcc0.ɵɵinject(DOCUMENT), ɵngcc0.ɵɵinject(ɵngcc2.Platform), ɵngcc0.ɵɵinject(OverlayContainer)); };\n OverlayPositionBuilder.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ factory: function OverlayPositionBuilder_Factory() { return new OverlayPositionBuilder(ɵɵinject(ViewportRuler), ɵɵinject(DOCUMENT), ɵɵinject(Platform), ɵɵinject(OverlayContainer)); }, token: OverlayPositionBuilder, providedIn: \"root\" });\n return OverlayPositionBuilder;\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/** Next overlay unique ID. */\nlet nextUniqueId = 0;\nlet Overlay = /*@__PURE__*/ (() => {\n class Overlay {\n constructor(\n /** Scrolling strategies that can be used when creating an overlay. */\n scrollStrategies, _overlayContainer, _componentFactoryResolver, _positionBuilder, _keyboardDispatcher, _injector, _ngZone, _document, _directionality, _location, _outsideClickDispatcher) {\n this.scrollStrategies = scrollStrategies;\n this._overlayContainer = _overlayContainer;\n this._componentFactoryResolver = _componentFactoryResolver;\n this._positionBuilder = _positionBuilder;\n this._keyboardDispatcher = _keyboardDispatcher;\n this._injector = _injector;\n this._ngZone = _ngZone;\n this._document = _document;\n this._directionality = _directionality;\n this._location = _location;\n this._outsideClickDispatcher = _outsideClickDispatcher;\n }\n /**\n * Creates an overlay.\n * @param config Configuration applied to the overlay.\n * @returns Reference to the created overlay.\n */\n create(config) {\n const host = this._createHostElement();\n const pane = this._createPaneElement(host);\n const portalOutlet = this._createPortalOutlet(pane);\n const overlayConfig = new OverlayConfig(config);\n overlayConfig.direction = overlayConfig.direction || this._directionality.value;\n return new OverlayRef(portalOutlet, host, pane, overlayConfig, this._ngZone, this._keyboardDispatcher, this._document, this._location, this._outsideClickDispatcher);\n }\n /**\n * Gets a position builder that can be used, via fluent API,\n * to construct and configure a position strategy.\n * @returns An overlay position builder.\n */\n position() {\n return this._positionBuilder;\n }\n /**\n * Creates the DOM element for an overlay and appends it to the overlay container.\n * @returns Newly-created pane element\n */\n _createPaneElement(host) {\n const pane = this._document.createElement('div');\n pane.id = `cdk-overlay-${nextUniqueId++}`;\n pane.classList.add('cdk-overlay-pane');\n host.appendChild(pane);\n return pane;\n }\n /**\n * Creates the host element that wraps around an overlay\n * and can be used for advanced positioning.\n * @returns Newly-create host element.\n */\n _createHostElement() {\n const host = this._document.createElement('div');\n this._overlayContainer.getContainerElement().appendChild(host);\n return host;\n }\n /**\n * Create a DomPortalOutlet into which the overlay content can be loaded.\n * @param pane The DOM element to turn into a portal outlet.\n * @returns A portal outlet for the given DOM element.\n */\n _createPortalOutlet(pane) {\n // We have to resolve the ApplicationRef later in order to allow people\n // to use overlay-based providers during app initialization.\n if (!this._appRef) {\n this._appRef = this._injector.get(ApplicationRef);\n }\n return new DomPortalOutlet(pane, this._componentFactoryResolver, this._appRef, this._injector, this._document);\n }\n }\n Overlay.ɵfac = function Overlay_Factory(t) { return new (t || Overlay)(ɵngcc0.ɵɵinject(ScrollStrategyOptions), ɵngcc0.ɵɵinject(OverlayContainer), ɵngcc0.ɵɵinject(ɵngcc0.ComponentFactoryResolver), ɵngcc0.ɵɵinject(OverlayPositionBuilder), ɵngcc0.ɵɵinject(OverlayKeyboardDispatcher), ɵngcc0.ɵɵinject(ɵngcc0.Injector), ɵngcc0.ɵɵinject(ɵngcc0.NgZone), ɵngcc0.ɵɵinject(DOCUMENT), ɵngcc0.ɵɵinject(ɵngcc3.Directionality), ɵngcc0.ɵɵinject(ɵngcc4.Location), ɵngcc0.ɵɵinject(OverlayOutsideClickDispatcher)); };\n Overlay.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: Overlay, factory: Overlay.ɵfac });\n return Overlay;\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/** Default set of positions for the overlay. Follows the behavior of a dropdown. */\nconst defaultPositionList = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom'\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom'\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top'\n }\n];\n/** Injection token that determines the scroll handling while the connected overlay is open. */\nconst CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY = /*@__PURE__*/ new InjectionToken('cdk-connected-overlay-scroll-strategy');\nlet CdkOverlayOrigin = /*@__PURE__*/ (() => {\n class CdkOverlayOrigin {\n constructor(\n /** Reference to the element on which the directive is applied. */\n elementRef) {\n this.elementRef = elementRef;\n }\n }\n CdkOverlayOrigin.ɵfac = function CdkOverlayOrigin_Factory(t) { return new (t || CdkOverlayOrigin)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\n CdkOverlayOrigin.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CdkOverlayOrigin, selectors: [[\"\", \"cdk-overlay-origin\", \"\"], [\"\", \"overlay-origin\", \"\"], [\"\", \"cdkOverlayOrigin\", \"\"]], exportAs: [\"cdkOverlayOrigin\"] });\n return CdkOverlayOrigin;\n})();\nlet CdkConnectedOverlay = /*@__PURE__*/ (() => {\n class CdkConnectedOverlay {\n // TODO(jelbourn): inputs for size, scroll behavior, animation, etc.\n constructor(_overlay, templateRef, viewContainerRef, scrollStrategyFactory, _dir) {\n this._overlay = _overlay;\n this._dir = _dir;\n this._hasBackdrop = false;\n this._lockPosition = false;\n this._growAfterOpen = false;\n this._flexibleDimensions = false;\n this._push = false;\n this._backdropSubscription = Subscription.EMPTY;\n this._attachSubscription = Subscription.EMPTY;\n this._detachSubscription = Subscription.EMPTY;\n this._positionSubscription = Subscription.EMPTY;\n /** Margin between the overlay and the viewport edges. */\n this.viewportMargin = 0;\n /** Whether the overlay is open. */\n this.open = false;\n /** Whether the overlay can be closed by user interaction. */\n this.disableClose = false;\n /** Event emitted when the backdrop is clicked. */\n this.backdropClick = new EventEmitter();\n /** Event emitted when the position has changed. */\n this.positionChange = new EventEmitter();\n /** Event emitted when the overlay has been attached. */\n this.attach = new EventEmitter();\n /** Event emitted when the overlay has been detached. */\n this.detach = new EventEmitter();\n /** Emits when there are keyboard events that are targeted at the overlay. */\n this.overlayKeydown = new EventEmitter();\n /** Emits when there are mouse outside click events that are targeted at the overlay. */\n this.overlayOutsideClick = new EventEmitter();\n this._templatePortal = new TemplatePortal(templateRef, viewContainerRef);\n this._scrollStrategyFactory = scrollStrategyFactory;\n this.scrollStrategy = this._scrollStrategyFactory();\n }\n /** The offset in pixels for the overlay connection point on the x-axis */\n get offsetX() { return this._offsetX; }\n set offsetX(offsetX) {\n this._offsetX = offsetX;\n if (this._position) {\n this._updatePositionStrategy(this._position);\n }\n }\n /** The offset in pixels for the overlay connection point on the y-axis */\n get offsetY() { return this._offsetY; }\n set offsetY(offsetY) {\n this._offsetY = offsetY;\n if (this._position) {\n this._updatePositionStrategy(this._position);\n }\n }\n /** Whether or not the overlay should attach a backdrop. */\n get hasBackdrop() { return this._hasBackdrop; }\n set hasBackdrop(value) { this._hasBackdrop = coerceBooleanProperty(value); }\n /** Whether or not the overlay should be locked when scrolling. */\n get lockPosition() { return this._lockPosition; }\n set lockPosition(value) { this._lockPosition = coerceBooleanProperty(value); }\n /** Whether the overlay's width and height can be constrained to fit within the viewport. */\n get flexibleDimensions() { return this._flexibleDimensions; }\n set flexibleDimensions(value) {\n this._flexibleDimensions = coerceBooleanProperty(value);\n }\n /** Whether the overlay can grow after the initial open when flexible positioning is turned on. */\n get growAfterOpen() { return this._growAfterOpen; }\n set growAfterOpen(value) { this._growAfterOpen = coerceBooleanProperty(value); }\n /** Whether the overlay can be pushed on-screen if none of the provided positions fit. */\n get push() { return this._push; }\n set push(value) { this._push = coerceBooleanProperty(value); }\n /** The associated overlay reference. */\n get overlayRef() {\n return this._overlayRef;\n }\n /** The element's layout direction. */\n get dir() {\n return this._dir ? this._dir.value : 'ltr';\n }\n ngOnDestroy() {\n this._attachSubscription.unsubscribe();\n this._detachSubscription.unsubscribe();\n this._backdropSubscription.unsubscribe();\n this._positionSubscription.unsubscribe();\n if (this._overlayRef) {\n this._overlayRef.dispose();\n }\n }\n ngOnChanges(changes) {\n if (this._position) {\n this._updatePositionStrategy(this._position);\n this._overlayRef.updateSize({\n width: this.width,\n minWidth: this.minWidth,\n height: this.height,\n minHeight: this.minHeight,\n });\n if (changes['origin'] && this.open) {\n this._position.apply();\n }\n }\n if (changes['open']) {\n this.open ? this._attachOverlay() : this._detachOverlay();\n }\n }\n /** Creates an overlay */\n _createOverlay() {\n if (!this.positions || !this.positions.length) {\n this.positions = defaultPositionList;\n }\n const overlayRef = this._overlayRef = this._overlay.create(this._buildConfig());\n this._attachSubscription = overlayRef.attachments().subscribe(() => this.attach.emit());\n this._detachSubscription = overlayRef.detachments().subscribe(() => this.detach.emit());\n overlayRef.keydownEvents().subscribe((event) => {\n this.overlayKeydown.next(event);\n if (event.keyCode === ESCAPE && !this.disableClose && !hasModifierKey(event)) {\n event.preventDefault();\n this._detachOverlay();\n }\n });\n this._overlayRef.outsidePointerEvents().subscribe((event) => {\n this.overlayOutsideClick.next(event);\n });\n }\n /** Builds the overlay config based on the directive's inputs */\n _buildConfig() {\n const positionStrategy = this._position =\n this.positionStrategy || this._createPositionStrategy();\n const overlayConfig = new OverlayConfig({\n direction: this._dir,\n positionStrategy,\n scrollStrategy: this.scrollStrategy,\n hasBackdrop: this.hasBackdrop\n });\n if (this.width || this.width === 0) {\n overlayConfig.width = this.width;\n }\n if (this.height || this.height === 0) {\n overlayConfig.height = this.height;\n }\n if (this.minWidth || this.minWidth === 0) {\n overlayConfig.minWidth = this.minWidth;\n }\n if (this.minHeight || this.minHeight === 0) {\n overlayConfig.minHeight = this.minHeight;\n }\n if (this.backdropClass) {\n overlayConfig.backdropClass = this.backdropClass;\n }\n if (this.panelClass) {\n overlayConfig.panelClass = this.panelClass;\n }\n return overlayConfig;\n }\n /** Updates the state of a position strategy, based on the values of the directive inputs. */\n _updatePositionStrategy(positionStrategy) {\n const positions = this.positions.map(currentPosition => ({\n originX: currentPosition.originX,\n originY: currentPosition.originY,\n overlayX: currentPosition.overlayX,\n overlayY: currentPosition.overlayY,\n offsetX: currentPosition.offsetX || this.offsetX,\n offsetY: currentPosition.offsetY || this.offsetY,\n panelClass: currentPosition.panelClass || undefined,\n }));\n return positionStrategy\n .setOrigin(this.origin.elementRef)\n .withPositions(positions)\n .withFlexibleDimensions(this.flexibleDimensions)\n .withPush(this.push)\n .withGrowAfterOpen(this.growAfterOpen)\n .withViewportMargin(this.viewportMargin)\n .withLockedPosition(this.lockPosition)\n .withTransformOriginOn(this.transformOriginSelector);\n }\n /** Returns the position strategy of the overlay to be set on the overlay config */\n _createPositionStrategy() {\n const strategy = this._overlay.position().flexibleConnectedTo(this.origin.elementRef);\n this._updatePositionStrategy(strategy);\n return strategy;\n }\n /** Attaches the overlay and subscribes to backdrop clicks if backdrop exists */\n _attachOverlay() {\n if (!this._overlayRef) {\n this._createOverlay();\n }\n else {\n // Update the overlay size, in case the directive's inputs have changed\n this._overlayRef.getConfig().hasBackdrop = this.hasBackdrop;\n }\n if (!this._overlayRef.hasAttached()) {\n this._overlayRef.attach(this._templatePortal);\n }\n if (this.hasBackdrop) {\n this._backdropSubscription = this._overlayRef.backdropClick().subscribe(event => {\n this.backdropClick.emit(event);\n });\n }\n else {\n this._backdropSubscription.unsubscribe();\n }\n this._positionSubscription.unsubscribe();\n // Only subscribe to `positionChanges` if requested, because putting\n // together all the information for it can be expensive.\n if (this.positionChange.observers.length > 0) {\n this._positionSubscription = this._position.positionChanges\n .pipe(takeWhile(() => this.positionChange.observers.length > 0))\n .subscribe(position => {\n this.positionChange.emit(position);\n if (this.positionChange.observers.length === 0) {\n this._positionSubscription.unsubscribe();\n }\n });\n }\n }\n /** Detaches the overlay and unsubscribes to backdrop clicks if backdrop exists */\n _detachOverlay() {\n if (this._overlayRef) {\n this._overlayRef.detach();\n }\n this._backdropSubscription.unsubscribe();\n this._positionSubscription.unsubscribe();\n }\n }\n CdkConnectedOverlay.ɵfac = function CdkConnectedOverlay_Factory(t) { return new (t || CdkConnectedOverlay)(ɵngcc0.ɵɵdirectiveInject(Overlay), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY), ɵngcc0.ɵɵdirectiveInject(ɵngcc3.Directionality, 8)); };\n CdkConnectedOverlay.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CdkConnectedOverlay, selectors: [[\"\", \"cdk-connected-overlay\", \"\"], [\"\", \"connected-overlay\", \"\"], [\"\", \"cdkConnectedOverlay\", \"\"]], inputs: { viewportMargin: [\"cdkConnectedOverlayViewportMargin\", \"viewportMargin\"], open: [\"cdkConnectedOverlayOpen\", \"open\"], disableClose: [\"cdkConnectedOverlayDisableClose\", \"disableClose\"], scrollStrategy: [\"cdkConnectedOverlayScrollStrategy\", \"scrollStrategy\"], offsetX: [\"cdkConnectedOverlayOffsetX\", \"offsetX\"], offsetY: [\"cdkConnectedOverlayOffsetY\", \"offsetY\"], hasBackdrop: [\"cdkConnectedOverlayHasBackdrop\", \"hasBackdrop\"], lockPosition: [\"cdkConnectedOverlayLockPosition\", \"lockPosition\"], flexibleDimensions: [\"cdkConnectedOverlayFlexibleDimensions\", \"flexibleDimensions\"], growAfterOpen: [\"cdkConnectedOverlayGrowAfterOpen\", \"growAfterOpen\"], push: [\"cdkConnectedOverlayPush\", \"push\"], positions: [\"cdkConnectedOverlayPositions\", \"positions\"], origin: [\"cdkConnectedOverlayOrigin\", \"origin\"], positionStrategy: [\"cdkConnectedOverlayPositionStrategy\", \"positionStrategy\"], width: [\"cdkConnectedOverlayWidth\", \"width\"], height: [\"cdkConnectedOverlayHeight\", \"height\"], minWidth: [\"cdkConnectedOverlayMinWidth\", \"minWidth\"], minHeight: [\"cdkConnectedOverlayMinHeight\", \"minHeight\"], backdropClass: [\"cdkConnectedOverlayBackdropClass\", \"backdropClass\"], panelClass: [\"cdkConnectedOverlayPanelClass\", \"panelClass\"], transformOriginSelector: [\"cdkConnectedOverlayTransformOriginOn\", \"transformOriginSelector\"] }, outputs: { backdropClick: \"backdropClick\", positionChange: \"positionChange\", attach: \"attach\", detach: \"detach\", overlayKeydown: \"overlayKeydown\", overlayOutsideClick: \"overlayOutsideClick\" }, exportAs: [\"cdkConnectedOverlay\"], features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n return CdkConnectedOverlay;\n})();\n/** @docs-private */\nfunction CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay) {\n return () => overlay.scrollStrategies.reposition();\n}\n/** @docs-private */\nconst CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER = {\n provide: CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY,\n};\nlet OverlayModule = /*@__PURE__*/ (() => {\n class OverlayModule {\n }\n OverlayModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: OverlayModule });\n OverlayModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ factory: function OverlayModule_Factory(t) { return new (t || OverlayModule)(); }, providers: [\n Overlay,\n CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER,\n ], imports: [[BidiModule, PortalModule, ScrollingModule], ScrollingModule] });\n return OverlayModule;\n})();\n/*@__PURE__*/ (function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(OverlayModule, { declarations: function () { return [CdkConnectedOverlay, CdkOverlayOrigin]; }, imports: function () { return [BidiModule, PortalModule, ScrollingModule]; }, exports: function () { return [CdkConnectedOverlay, CdkOverlayOrigin, ScrollingModule]; } }); })();\nlet FullscreenOverlayContainer = /*@__PURE__*/ (() => {\n class FullscreenOverlayContainer extends OverlayContainer {\n constructor(_document, platform) {\n super(_document, platform);\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n if (this._fullScreenEventName && this._fullScreenListener) {\n this._document.removeEventListener(this._fullScreenEventName, this._fullScreenListener);\n }\n }\n _createContainer() {\n super._createContainer();\n this._adjustParentForFullscreenChange();\n this._addFullscreenChangeListener(() => this._adjustParentForFullscreenChange());\n }\n _adjustParentForFullscreenChange() {\n if (!this._containerElement) {\n return;\n }\n const fullscreenElement = this.getFullscreenElement();\n const parent = fullscreenElement || this._document.body;\n parent.appendChild(this._containerElement);\n }\n _addFullscreenChangeListener(fn) {\n const eventName = this._getEventName();\n if (eventName) {\n if (this._fullScreenListener) {\n this._document.removeEventListener(eventName, this._fullScreenListener);\n }\n this._document.addEventListener(eventName, fn);\n this._fullScreenListener = fn;\n }\n }\n _getEventName() {\n if (!this._fullScreenEventName) {\n const _document = this._document;\n if (_document.fullscreenEnabled) {\n this._fullScreenEventName = 'fullscreenchange';\n }\n else if (_document.webkitFullscreenEnabled) {\n this._fullScreenEventName = 'webkitfullscreenchange';\n }\n else if (_document.mozFullScreenEnabled) {\n this._fullScreenEventName = 'mozfullscreenchange';\n }\n else if (_document.msFullscreenEnabled) {\n this._fullScreenEventName = 'MSFullscreenChange';\n }\n }\n return this._fullScreenEventName;\n }\n /**\n * When the page is put into fullscreen mode, a specific element is specified.\n * Only that element and its children are visible when in fullscreen mode.\n */\n getFullscreenElement() {\n const _document = this._document;\n return _document.fullscreenElement ||\n _document.webkitFullscreenElement ||\n _document.mozFullScreenElement ||\n _document.msFullscreenElement ||\n null;\n }\n }\n FullscreenOverlayContainer.ɵfac = function FullscreenOverlayContainer_Factory(t) { return new (t || FullscreenOverlayContainer)(ɵngcc0.ɵɵinject(DOCUMENT), ɵngcc0.ɵɵinject(ɵngcc2.Platform)); };\n FullscreenOverlayContainer.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ factory: function FullscreenOverlayContainer_Factory() { return new FullscreenOverlayContainer(ɵɵinject(DOCUMENT), ɵɵinject(Platform)); }, token: FullscreenOverlayContainer, providedIn: \"root\" });\n return FullscreenOverlayContainer;\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 * Generated bundle index. Do not edit.\n */\nexport { BlockScrollStrategy, CdkConnectedOverlay, CdkOverlayOrigin, CloseScrollStrategy, ConnectedOverlayPositionChange, ConnectedPositionStrategy, ConnectionPositionPair, FlexibleConnectedPositionStrategy, FullscreenOverlayContainer, GlobalPositionStrategy, NoopScrollStrategy, Overlay, OverlayConfig, OverlayContainer, OverlayKeyboardDispatcher, OverlayModule, OverlayOutsideClickDispatcher, OverlayPositionBuilder, OverlayRef, RepositionScrollStrategy, ScrollStrategyOptions, ScrollingVisibility, validateHorizontalPosition, validateVerticalPosition, CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY as ɵangular_material_src_cdk_overlay_overlay_a, CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY as ɵangular_material_src_cdk_overlay_overlay_b, CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER as ɵangular_material_src_cdk_overlay_overlay_c, BaseOverlayDispatcher as ɵangular_material_src_cdk_overlay_overlay_d };\n\n\n\n" }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\cdk\\__ivy_ngcc__\\fesm2015\\layout.js", "name": "./node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/layout.js", "index": 504, "index2": 501, "size": 10290, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [], "issuer": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\snack-bar.js", "issuerId": null, "issuerName": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js", "issuerPath": [ { "id": 0, "identifier": "multi C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "multi ./src/main.ts", "profile": { "factory": 1, "building": 4 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "./src/main.ts", "profile": { "factory": 1577, "building": 684 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\app.module.ts", "name": "./src/app/app.module.ts", "profile": { "factory": 7434, "building": 6719, "dependencies": 19440 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\custom-elements.module.ts", "name": "./src/app/custom-elements/custom-elements.module.ts", "profile": { "factory": 26179, "building": 975, "dependencies": 19070 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "name": "./src/app/custom-elements/element-registry.ts", "profile": { "factory": 6786, "building": 1923, "dependencies": 1080 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-example.module.ts", "name": "./src/app/custom-elements/code/code-example.module.ts", "profile": { "factory": 3142, "building": 22, "dependencies": 2295 } }, { "id": "V90o", "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code.module.ts", "name": "./src/app/custom-elements/code/code.module.ts", "profile": { "factory": 1279, "building": 17, "dependencies": 3 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\snack-bar.js", "name": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js", "profile": { "factory": 3196, "building": 796, "dependencies": 1880 } } ], "profile": { "factory": 2064, "building": 456, "dependencies": 16 }, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\snack-bar.js", "module": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js", "moduleName": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js", "type": "harmony side effect evaluation", "userRequest": "@angular/cdk/layout", "loc": "12:0-70" }, { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\snack-bar.js", "module": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js", "moduleName": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js", "type": "harmony side effect evaluation", "userRequest": "@angular/cdk/layout", "loc": "28:0-46" }, { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\snack-bar.js", "module": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js", "moduleName": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js", "type": "harmony import specifier", "userRequest": "@angular/cdk/layout", "loc": "587:45-56" }, { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\snack-bar.js", "module": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js", "moduleName": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js", "type": "harmony import specifier", "userRequest": "@angular/cdk/layout", "loc": "679:209-234" }, { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\snack-bar.js", "module": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js", "moduleName": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js", "type": "harmony import specifier", "userRequest": "@angular/cdk/layout", "loc": "680:197-215" } ], "usedExports": [ "Breakpoints", "BreakpointObserver" ], "providedExports": [ "BreakpointObserver", "Breakpoints", "LayoutModule", "MediaMatcher" ], "optimizationBailout": [], "depth": 8, "source": "import { NgModule, ɵɵdefineInjectable, ɵɵinject, Injectable, NgZone } from '@angular/core';\nimport { coerceArray } from '@angular/cdk/coercion';\nimport { Subject, combineLatest, concat, Observable } from 'rxjs';\nimport { take, skip, debounceTime, map, startWith, takeUntil } from 'rxjs/operators';\nimport { Platform } from '@angular/cdk/platform';\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 */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/cdk/platform';\nlet LayoutModule = /*@__PURE__*/ (() => {\n class LayoutModule {\n }\n LayoutModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: LayoutModule });\n LayoutModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ factory: function LayoutModule_Factory(t) { return new (t || LayoutModule)(); } });\n return LayoutModule;\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/** Global registry for all dynamically-created, injected media queries. */\nconst mediaQueriesForWebkitCompatibility = /*@__PURE__*/ new Set();\n/** Style tag that holds all of the dynamically-created media queries. */\nlet mediaQueryStyleNode;\nlet MediaMatcher = /*@__PURE__*/ (() => {\n class MediaMatcher {\n constructor(_platform) {\n this._platform = _platform;\n this._matchMedia = this._platform.isBrowser && window.matchMedia ?\n // matchMedia is bound to the window scope intentionally as it is an illegal invocation to\n // call it from a different scope.\n window.matchMedia.bind(window) :\n noopMatchMedia;\n }\n /**\n * Evaluates the given media query and returns the native MediaQueryList from which results\n * can be retrieved.\n * Confirms the layout engine will trigger for the selector query provided and returns the\n * MediaQueryList for the query provided.\n */\n matchMedia(query) {\n if (this._platform.WEBKIT) {\n createEmptyStyleRule(query);\n }\n return this._matchMedia(query);\n }\n }\n MediaMatcher.ɵfac = function MediaMatcher_Factory(t) { return new (t || MediaMatcher)(ɵngcc0.ɵɵinject(ɵngcc1.Platform)); };\n MediaMatcher.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ factory: function MediaMatcher_Factory() { return new MediaMatcher(ɵɵinject(Platform)); }, token: MediaMatcher, providedIn: \"root\" });\n return MediaMatcher;\n})();\n/**\n * For Webkit engines that only trigger the MediaQueryListListener when\n * there is at least one CSS selector for the respective media query.\n */\nfunction createEmptyStyleRule(query) {\n if (mediaQueriesForWebkitCompatibility.has(query)) {\n return;\n }\n try {\n if (!mediaQueryStyleNode) {\n mediaQueryStyleNode = document.createElement('style');\n mediaQueryStyleNode.setAttribute('type', 'text/css');\n document.head.appendChild(mediaQueryStyleNode);\n }\n if (mediaQueryStyleNode.sheet) {\n mediaQueryStyleNode.sheet\n .insertRule(`@media ${query} {.fx-query-test{ }}`, 0);\n mediaQueriesForWebkitCompatibility.add(query);\n }\n }\n catch (e) {\n console.error(e);\n }\n}\n/** No-op matchMedia replacement for non-browser platforms. */\nfunction noopMatchMedia(query) {\n // Use `as any` here to avoid adding additional necessary properties for\n // the noop matcher.\n return {\n matches: query === 'all' || query === '',\n media: query,\n addListener: () => { },\n removeListener: () => { }\n };\n}\nlet BreakpointObserver = /*@__PURE__*/ (() => {\n class BreakpointObserver {\n constructor(_mediaMatcher, _zone) {\n this._mediaMatcher = _mediaMatcher;\n this._zone = _zone;\n /** A map of all media queries currently being listened for. */\n this._queries = new Map();\n /** A subject for all other observables to takeUntil based on. */\n this._destroySubject = new Subject();\n }\n /** Completes the active subject, signalling to all other observables to complete. */\n ngOnDestroy() {\n this._destroySubject.next();\n this._destroySubject.complete();\n }\n /**\n * Whether one or more media queries match the current viewport size.\n * @param value One or more media queries to check.\n * @returns Whether any of the media queries match.\n */\n isMatched(value) {\n const queries = splitQueries(coerceArray(value));\n return queries.some(mediaQuery => this._registerQuery(mediaQuery).mql.matches);\n }\n /**\n * Gets an observable of results for the given queries that will emit new results for any changes\n * in matching of the given queries.\n * @param value One or more media queries to check.\n * @returns A stream of matches for the given queries.\n */\n observe(value) {\n const queries = splitQueries(coerceArray(value));\n const observables = queries.map(query => this._registerQuery(query).observable);\n let stateObservable = combineLatest(observables);\n // Emit the first state immediately, and then debounce the subsequent emissions.\n stateObservable = concat(stateObservable.pipe(take(1)), stateObservable.pipe(skip(1), debounceTime(0)));\n return stateObservable.pipe(map(breakpointStates => {\n const response = {\n matches: false,\n breakpoints: {},\n };\n breakpointStates.forEach(({ matches, query }) => {\n response.matches = response.matches || matches;\n response.breakpoints[query] = matches;\n });\n return response;\n }));\n }\n /** Registers a specific query to be listened for. */\n _registerQuery(query) {\n // Only set up a new MediaQueryList if it is not already being listened for.\n if (this._queries.has(query)) {\n return this._queries.get(query);\n }\n const mql = this._mediaMatcher.matchMedia(query);\n // Create callback for match changes and add it is as a listener.\n const queryObservable = new Observable((observer) => {\n // Listener callback methods are wrapped to be placed back in ngZone. Callbacks must be placed\n // back into the zone because matchMedia is only included in Zone.js by loading the\n // webapis-media-query.js file alongside the zone.js file. Additionally, some browsers do not\n // have MediaQueryList inherit from EventTarget, which causes inconsistencies in how Zone.js\n // patches it.\n const handler = (e) => this._zone.run(() => observer.next(e));\n mql.addListener(handler);\n return () => {\n mql.removeListener(handler);\n };\n }).pipe(startWith(mql), map(({ matches }) => ({ query, matches })), takeUntil(this._destroySubject));\n // Add the MediaQueryList to the set of queries.\n const output = { observable: queryObservable, mql };\n this._queries.set(query, output);\n return output;\n }\n }\n BreakpointObserver.ɵfac = function BreakpointObserver_Factory(t) { return new (t || BreakpointObserver)(ɵngcc0.ɵɵinject(MediaMatcher), ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\n BreakpointObserver.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ factory: function BreakpointObserver_Factory() { return new BreakpointObserver(ɵɵinject(MediaMatcher), ɵɵinject(NgZone)); }, token: BreakpointObserver, providedIn: \"root\" });\n return BreakpointObserver;\n})();\n/**\n * Split each query string into separate query strings if two queries are provided as comma\n * separated.\n */\nfunction splitQueries(queries) {\n return queries.map(query => query.split(','))\n .reduce((a1, a2) => a1.concat(a2))\n .map(query => query.trim());\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// PascalCase is being used as Breakpoints is used like an enum.\n// tslint:disable-next-line:variable-name\nconst Breakpoints = {\n XSmall: '(max-width: 599.98px)',\n Small: '(min-width: 600px) and (max-width: 959.98px)',\n Medium: '(min-width: 960px) and (max-width: 1279.98px)',\n Large: '(min-width: 1280px) and (max-width: 1919.98px)',\n XLarge: '(min-width: 1920px)',\n Handset: '(max-width: 599.98px) and (orientation: portrait), ' +\n '(max-width: 959.98px) and (orientation: landscape)',\n Tablet: '(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait), ' +\n '(min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)',\n Web: '(min-width: 840px) and (orientation: portrait), ' +\n '(min-width: 1280px) and (orientation: landscape)',\n HandsetPortrait: '(max-width: 599.98px) and (orientation: portrait)',\n TabletPortrait: '(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait)',\n WebPortrait: '(min-width: 840px) and (orientation: portrait)',\n HandsetLandscape: '(max-width: 959.98px) and (orientation: landscape)',\n TabletLandscape: '(min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)',\n WebLandscape: '(min-width: 1280px) and (orientation: landscape)',\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 * Generated bundle index. Do not edit.\n */\nexport { BreakpointObserver, Breakpoints, LayoutModule, MediaMatcher };\n\n\n\n" } ], "filteredModules": 0 }, { "id": "vVVL", "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\pretty-printer.service.ts", "name": "./src/app/custom-elements/code/pretty-printer.service.ts", "index": 499, "index2": 496, "size": 2440, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [ 1 ], "issuer": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code.module.ts", "issuerId": "V90o", "issuerName": "./src/app/custom-elements/code/code.module.ts", "issuerPath": [ { "id": 0, "identifier": "multi C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "multi ./src/main.ts", "profile": { "factory": 1, "building": 4 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "./src/main.ts", "profile": { "factory": 1577, "building": 684 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\app.module.ts", "name": "./src/app/app.module.ts", "profile": { "factory": 7434, "building": 6719, "dependencies": 19440 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\custom-elements.module.ts", "name": "./src/app/custom-elements/custom-elements.module.ts", "profile": { "factory": 26179, "building": 975, "dependencies": 19070 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "name": "./src/app/custom-elements/element-registry.ts", "profile": { "factory": 6786, "building": 1923, "dependencies": 1080 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-example.module.ts", "name": "./src/app/custom-elements/code/code-example.module.ts", "profile": { "factory": 3142, "building": 22, "dependencies": 2295 } }, { "id": "V90o", "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code.module.ts", "name": "./src/app/custom-elements/code/code.module.ts", "profile": { "factory": 1279, "building": 17, "dependencies": 3 } } ], "profile": { "factory": 3196, "building": 796, "dependencies": 1880 }, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": "6CTB", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code.component.ts f2fc8e4b420fe88cba99c1b8ae794933", "module": "./src/app/custom-elements/code/code.component.ts + 1 modules", "moduleName": "./src/app/custom-elements/code/code.component.ts + 1 modules", "type": "harmony side effect evaluation", "userRequest": "./pretty-printer.service", "loc": "5:0-47" }, { "moduleId": "6CTB", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code.component.ts f2fc8e4b420fe88cba99c1b8ae794933", "module": "./src/app/custom-elements/code/code.component.ts + 1 modules", "moduleName": "./src/app/custom-elements/code/code.component.ts + 1 modules", "type": "harmony import specifier", "userRequest": "./pretty-printer.service", "loc": "133:152-168" }, { "moduleId": "V90o", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code.module.ts", "module": "./src/app/custom-elements/code/code.module.ts", "moduleName": "./src/app/custom-elements/code/code.module.ts", "type": "harmony side effect evaluation", "userRequest": "./pretty-printer.service", "loc": "3:0-57" }, { "moduleId": "V90o", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code.module.ts", "module": "./src/app/custom-elements/code/code.module.ts", "moduleName": "./src/app/custom-elements/code/code.module.ts", "type": "harmony import specifier", "userRequest": "./pretty-printer.service", "loc": "9:133-146" } ], "usedExports": [ "PrettyPrinter" ], "providedExports": [ "PrettyPrinter" ], "optimizationBailout": [], "depth": 7, "source": "import { from } from 'rxjs';\nimport { first, map, share } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"app/shared/logger.service\";\n/**\n * Wrapper around the prettify.js library\n */\nexport let PrettyPrinter = /*@__PURE__*/ (() => {\n class PrettyPrinter {\n constructor(logger) {\n this.logger = logger;\n this.prettyPrintOne = from(this.getPrettyPrintOne()).pipe(share());\n }\n getPrettyPrintOne() {\n const ppo = window.prettyPrintOne;\n return ppo ? Promise.resolve(ppo) :\n // `prettyPrintOne` is not on `window`, which means `prettify.js` has not been loaded yet.\n // Import it; ad a side-effect it will add `prettyPrintOne` on `window`.\n import('assets/js/prettify.js')\n .then(() => window.prettyPrintOne, err => {\n const msg = `Cannot get prettify.js from server: ${err.message}`;\n this.logger.error(new Error(msg));\n // return a pretty print fn that always fails.\n return () => { throw new Error(msg); };\n });\n }\n /**\n * Format code snippet as HTML\n * @param code - the code snippet to format; should already be HTML encoded\n * @param [language] - The language of the code to render (could be javascript, html, typescript, etc)\n * @param [linenums] - Whether to display line numbers:\n * - false: don't display\n * - true: do display\n * - number: do display but start at the given number\n * @returns Observable - Observable of formatted code\n */\n formatCode(code, language, linenums) {\n return this.prettyPrintOne.pipe(map(ppo => {\n try {\n return ppo(code, language, linenums);\n }\n catch (err) {\n const msg = `Could not format code that begins '${code.substr(0, 50)}...'.`;\n console.error(msg, err);\n throw new Error(msg);\n }\n }), first());\n }\n }\n PrettyPrinter.ɵfac = function PrettyPrinter_Factory(t) { return new (t || PrettyPrinter)(i0.ɵɵinject(i1.Logger)); };\n PrettyPrinter.ɵprov = i0.ɵɵdefineInjectable({ token: PrettyPrinter, factory: PrettyPrinter.ɵfac });\n return PrettyPrinter;\n})();\n\n" } ], "filteredModules": 0, "origins": [ { "moduleId": null, "module": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "moduleName": "./src/app/custom-elements/element-registry.ts", "loc": "32:28-64", "request": "./code/code-example.module", "reasons": [] }, { "moduleId": null, "module": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "moduleName": "./src/app/custom-elements/element-registry.ts", "loc": "36:28-61", "request": "./code/code-tabs.module", "reasons": [] } ] }, { "id": 2, "rendered": true, "initial": false, "entry": false, "size": 4967, "names": [ "announcement-bar-announcement-bar-module" ], "files": [ "announcement-bar-announcement-bar-module-es2015.1b5b762c9c8837c770f8.js", "announcement-bar-announcement-bar-module-es2015.1b5b762c9c8837c770f8.js.map" ], "hash": "1b5b762c9c8837c770f8", "siblings": [], "parents": [ 0, 10 ], "children": [], "childrenByOrder": {}, "modules": [ { "id": "5UAH", "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\announcement-bar\\announcement-bar.module.ts dedf442512cccbadcdf60209ef756e51", "name": "./src/app/custom-elements/announcement-bar/announcement-bar.module.ts + 1 modules", "index": 478, "index2": 479, "size": 4967, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [ 2 ], "issuer": null, "issuerId": null, "issuerName": null, "issuerPath": null, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "module": "./src/app/custom-elements/element-registry.ts", "moduleName": "./src/app/custom-elements/element-registry.ts", "type": "import()", "userRequest": "./announcement-bar/announcement-bar.module", "loc": "8:28-80" } ], "usedExports": true, "providedExports": [ "AnnouncementBarModule" ], "optimizationBailout": [ "ModuleConcatenation bailout: Cannot concat with ./src/app/documents/document.service.ts", "ModuleConcatenation bailout: Cannot concat with ./src/app/shared/logger.service.ts", "ModuleConcatenation bailout: Cannot concat with ./src/app/shared/shared.module.ts", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/common/__ivy_ngcc__/fesm2015/common.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/common/__ivy_ngcc__/fesm2015/http.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/rxjs/_esm2015/internal/operators/catchError.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/rxjs/_esm2015/internal/operators/map.js" ], "depth": 5, "modules": [ { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\announcement-bar\\announcement-bar.module.ts", "name": "./src/app/custom-elements/announcement-bar/announcement-bar.module.ts", "index": 478, "index2": 479, "size": 824, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [], "issuer": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "issuerId": null, "issuerName": "./src/app/custom-elements/element-registry.ts", "issuerPath": [ { "id": 0, "identifier": "multi C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "multi ./src/main.ts", "profile": { "factory": 1, "building": 4 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "./src/main.ts", "profile": { "factory": 1577, "building": 684 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\app.module.ts", "name": "./src/app/app.module.ts", "profile": { "factory": 7434, "building": 6719, "dependencies": 19440 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\custom-elements.module.ts", "name": "./src/app/custom-elements/custom-elements.module.ts", "profile": { "factory": 26179, "building": 975, "dependencies": 19070 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "name": "./src/app/custom-elements/element-registry.ts", "profile": { "factory": 6786, "building": 1923, "dependencies": 1080 } } ], "profile": { "factory": 3142, "building": 22, "dependencies": 2295 }, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "module": "./src/app/custom-elements/element-registry.ts", "moduleName": "./src/app/custom-elements/element-registry.ts", "type": "import()", "userRequest": "./announcement-bar/announcement-bar.module", "loc": "8:28-80" } ], "usedExports": true, "providedExports": [ "AnnouncementBarModule" ], "optimizationBailout": [ "ModuleConcatenation bailout: Module is referenced from these modules with unsupported syntax: ./src/app/custom-elements/element-registry.ts (referenced with import())" ], "depth": 5, "source": "import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { SharedModule } from '../../shared/shared.module';\nimport { AnnouncementBarComponent } from './announcement-bar.component';\nimport * as i0 from \"@angular/core\";\nexport let AnnouncementBarModule = /*@__PURE__*/ (() => {\n class AnnouncementBarModule {\n constructor() {\n this.customElementComponent = AnnouncementBarComponent;\n }\n }\n AnnouncementBarModule.ɵmod = i0.ɵɵdefineNgModule({ type: AnnouncementBarModule });\n AnnouncementBarModule.ɵinj = i0.ɵɵdefineInjector({ factory: function AnnouncementBarModule_Factory(t) { return new (t || AnnouncementBarModule)(); }, imports: [[CommonModule, SharedModule, HttpClientModule]] });\n return AnnouncementBarModule;\n})();\n\n" }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\announcement-bar\\announcement-bar.component.ts", "name": "./src/app/custom-elements/announcement-bar/announcement-bar.component.ts", "index": 479, "index2": 478, "size": 4103, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [], "issuer": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\announcement-bar\\announcement-bar.module.ts", "issuerId": null, "issuerName": "./src/app/custom-elements/announcement-bar/announcement-bar.module.ts", "issuerPath": [ { "id": 0, "identifier": "multi C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "multi ./src/main.ts", "profile": { "factory": 1, "building": 4 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "./src/main.ts", "profile": { "factory": 1577, "building": 684 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\app.module.ts", "name": "./src/app/app.module.ts", "profile": { "factory": 7434, "building": 6719, "dependencies": 19440 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\custom-elements.module.ts", "name": "./src/app/custom-elements/custom-elements.module.ts", "profile": { "factory": 26179, "building": 975, "dependencies": 19070 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "name": "./src/app/custom-elements/element-registry.ts", "profile": { "factory": 6786, "building": 1923, "dependencies": 1080 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\announcement-bar\\announcement-bar.module.ts", "name": "./src/app/custom-elements/announcement-bar/announcement-bar.module.ts", "profile": { "factory": 3142, "building": 22, "dependencies": 2295 } } ], "profile": { "factory": 2295, "building": 77, "dependencies": 1747 }, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\announcement-bar\\announcement-bar.module.ts", "module": "./src/app/custom-elements/announcement-bar/announcement-bar.module.ts", "moduleName": "./src/app/custom-elements/announcement-bar/announcement-bar.module.ts", "type": "harmony side effect evaluation", "userRequest": "./announcement-bar.component", "loc": "4:0-72" }, { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\announcement-bar\\announcement-bar.module.ts", "module": "./src/app/custom-elements/announcement-bar/announcement-bar.module.ts", "moduleName": "./src/app/custom-elements/announcement-bar/announcement-bar.module.ts", "type": "harmony import specifier", "userRequest": "./announcement-bar.component", "loc": "9:42-66" } ], "usedExports": [ "AnnouncementBarComponent" ], "providedExports": [ "AnnouncementBarComponent" ], "optimizationBailout": [], "depth": 6, "source": "import { catchError, map } from 'rxjs/operators';\nimport { CONTENT_URL_PREFIX } from 'app/documents/document.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common/http\";\nimport * as i2 from \"app/shared/logger.service\";\nimport * as i3 from \"@angular/common\";\nfunction AnnouncementBarComponent_div_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 1);\n i0.ɵɵelementStart(1, \"div\", 2);\n i0.ɵɵelement(2, \"img\", 3);\n i0.ɵɵelement(3, \"p\", 4);\n i0.ɵɵelementStart(4, \"a\", 5);\n i0.ɵɵtext(5, \"Learn More\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"src\", ctx_r0.announcement.imageUrl, i0.ɵɵsanitizeUrl);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"innerHTML\", ctx_r0.announcement.message, i0.ɵɵsanitizeHtml);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"href\", ctx_r0.announcement.linkUrl, i0.ɵɵsanitizeUrl);\n }\n}\nconst announcementsPath = CONTENT_URL_PREFIX + 'announcements.json';\n/**\n * Display the latest live announcement. This is used on the homepage.\n *\n * The data for the announcements is kept in `aio/content/marketing/announcements.json`.\n *\n * The format for that data file looks like:\n *\n * ```\n * [\n * {\n * \"startDate\": \"2018-02-01\",\n * \"endDate\": \"2018-03-01\",\n * \"message\": \"This is an important announcement\",\n * \"imageUrl\": \"url/to/image\",\n * \"linkUrl\": \"url/to/website\"\n * },\n * ...\n * ]\n * ```\n *\n * Only one announcement will be shown at any time. This is determined as the first \"live\"\n * announcement in the file, where \"live\" means that its start date is before today, and its\n * end date is after today.\n *\n * **Security Note:**\n * The `message` field can contain unsanitized HTML but this field should only updated by\n * verified members of the Angular team.\n */\nexport let AnnouncementBarComponent = /*@__PURE__*/ (() => {\n class AnnouncementBarComponent {\n constructor(http, logger) {\n this.http = http;\n this.logger = logger;\n }\n ngOnInit() {\n this.http.get(announcementsPath)\n .pipe(catchError(error => {\n this.logger.error(new Error(`${announcementsPath} request failed: ${error.message}`));\n return [];\n }), map(announcements => this.findCurrentAnnouncement(announcements)), catchError(error => {\n this.logger.error(new Error(`${announcementsPath} contains invalid data: ${error.message}`));\n return [];\n }))\n .subscribe(announcement => this.announcement = announcement);\n }\n /**\n * Get the first date in the list that is \"live\" now\n */\n findCurrentAnnouncement(announcements) {\n return announcements\n .filter(announcement => new Date(announcement.startDate).valueOf() < Date.now())\n .filter(announcement => new Date(announcement.endDate).valueOf() > Date.now())[0];\n }\n }\n AnnouncementBarComponent.ɵfac = function AnnouncementBarComponent_Factory(t) { return new (t || AnnouncementBarComponent)(i0.ɵɵdirectiveInject(i1.HttpClient), i0.ɵɵdirectiveInject(i2.Logger)); };\n AnnouncementBarComponent.ɵcmp = i0.ɵɵdefineComponent({ type: AnnouncementBarComponent, selectors: [[\"aio-announcement-bar\"]], decls: 1, vars: 1, consts: [[\"class\", \"homepage-container\", 4, \"ngIf\"], [1, \"homepage-container\"], [1, \"announcement-bar\"], [\"alt\", \"\", 3, \"src\"], [3, \"innerHTML\"], [1, \"button\", 3, \"href\"]], template: function AnnouncementBarComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, AnnouncementBarComponent_div_0_Template, 6, 3, \"div\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.announcement);\n }\n }, directives: [i3.NgIf], encapsulation: 2 });\n return AnnouncementBarComponent;\n})();\n\n" } ], "filteredModules": 0 } ], "filteredModules": 0, "origins": [ { "moduleId": null, "module": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "moduleName": "./src/app/custom-elements/element-registry.ts", "loc": "8:28-80", "request": "./announcement-bar/announcement-bar.module", "reasons": [] } ] }, { "id": 3, "rendered": true, "initial": false, "entry": false, "size": 14535, "names": [ "api-api-list-module" ], "files": [ "api-api-list-module-es2015.40a43cd22f50f64d63bb.js", "api-api-list-module-es2015.40a43cd22f50f64d63bb.js.map" ], "hash": "40a43cd22f50f64d63bb", "siblings": [], "parents": [ 0, 10 ], "children": [], "childrenByOrder": {}, "modules": [ { "id": "dth9", "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\api\\api-list.module.ts 98b00530cb3b563cb336dde85d28114c", "name": "./src/app/custom-elements/api/api-list.module.ts + 2 modules", "index": 480, "index2": 482, "size": 14535, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [ 3 ], "issuer": null, "issuerId": null, "issuerName": null, "issuerPath": null, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "module": "./src/app/custom-elements/element-registry.ts", "moduleName": "./src/app/custom-elements/element-registry.ts", "type": "import()", "userRequest": "./api/api-list.module", "loc": "12:28-59" } ], "usedExports": true, "providedExports": [ "ApiListModule" ], "optimizationBailout": [ "ModuleConcatenation bailout: Cannot concat with ./src/app/documents/document.service.ts", "ModuleConcatenation bailout: Cannot concat with ./src/app/shared/location.service.ts", "ModuleConcatenation bailout: Cannot concat with ./src/app/shared/logger.service.ts", "ModuleConcatenation bailout: Cannot concat with ./src/app/shared/select/select.component.ts", "ModuleConcatenation bailout: Cannot concat with ./src/app/shared/shared.module.ts", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/common/__ivy_ngcc__/fesm2015/common.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/common/__ivy_ngcc__/fesm2015/http.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/rxjs/_esm2015/internal/ReplaySubject.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/rxjs/_esm2015/internal/Subject.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/rxjs/_esm2015/internal/observable/combineLatest.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/rxjs/_esm2015/internal/operators/map.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/rxjs/_esm2015/internal/operators/takeUntil.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/rxjs/_esm2015/internal/operators/tap.js" ], "depth": 5, "modules": [ { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\api\\api-list.module.ts", "name": "./src/app/custom-elements/api/api-list.module.ts", "index": 480, "index2": 482, "size": 805, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [], "issuer": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "issuerId": null, "issuerName": "./src/app/custom-elements/element-registry.ts", "issuerPath": [ { "id": 0, "identifier": "multi C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "multi ./src/main.ts", "profile": { "factory": 1, "building": 4 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "./src/main.ts", "profile": { "factory": 1577, "building": 684 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\app.module.ts", "name": "./src/app/app.module.ts", "profile": { "factory": 7434, "building": 6719, "dependencies": 19440 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\custom-elements.module.ts", "name": "./src/app/custom-elements/custom-elements.module.ts", "profile": { "factory": 26179, "building": 975, "dependencies": 19070 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "name": "./src/app/custom-elements/element-registry.ts", "profile": { "factory": 6786, "building": 1923, "dependencies": 1080 } } ], "profile": { "factory": 3142, "building": 22, "dependencies": 2295 }, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "module": "./src/app/custom-elements/element-registry.ts", "moduleName": "./src/app/custom-elements/element-registry.ts", "type": "import()", "userRequest": "./api/api-list.module", "loc": "12:28-59" } ], "usedExports": true, "providedExports": [ "ApiListModule" ], "optimizationBailout": [ "ModuleConcatenation bailout: Module is referenced from these modules with unsupported syntax: ./src/app/custom-elements/element-registry.ts (referenced with import())" ], "depth": 5, "source": "import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { SharedModule } from '../../shared/shared.module';\nimport { ApiListComponent } from './api-list.component';\nimport { ApiService } from './api.service';\nimport * as i0 from \"@angular/core\";\nexport let ApiListModule = /*@__PURE__*/ (() => {\n class ApiListModule {\n constructor() {\n this.customElementComponent = ApiListComponent;\n }\n }\n ApiListModule.ɵmod = i0.ɵɵdefineNgModule({ type: ApiListModule });\n ApiListModule.ɵinj = i0.ɵɵdefineInjector({ factory: function ApiListModule_Factory(t) { return new (t || ApiListModule)(); }, providers: [ApiService], imports: [[CommonModule, SharedModule, HttpClientModule]] });\n return ApiListModule;\n})();\n\n" }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\api\\api.service.ts", "name": "./src/app/custom-elements/api/api.service.ts", "index": 482, "index2": 480, "size": 2902, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [], "issuer": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\api\\api-list.module.ts", "issuerId": null, "issuerName": "./src/app/custom-elements/api/api-list.module.ts", "issuerPath": [ { "id": 0, "identifier": "multi C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "multi ./src/main.ts", "profile": { "factory": 1, "building": 4 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "./src/main.ts", "profile": { "factory": 1577, "building": 684 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\app.module.ts", "name": "./src/app/app.module.ts", "profile": { "factory": 7434, "building": 6719, "dependencies": 19440 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\custom-elements.module.ts", "name": "./src/app/custom-elements/custom-elements.module.ts", "profile": { "factory": 26179, "building": 975, "dependencies": 19070 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "name": "./src/app/custom-elements/element-registry.ts", "profile": { "factory": 6786, "building": 1923, "dependencies": 1080 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\api\\api-list.module.ts", "name": "./src/app/custom-elements/api/api-list.module.ts", "profile": { "factory": 3142, "building": 22, "dependencies": 2295 } } ], "profile": { "factory": 2270, "building": 59, "dependencies": 1429 }, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\api\\api-list.component.ts", "module": "./src/app/custom-elements/api/api-list.component.ts", "moduleName": "./src/app/custom-elements/api/api-list.component.ts", "type": "harmony side effect evaluation", "userRequest": "./api.service", "loc": "4:0-36" }, { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\api\\api-list.module.ts", "module": "./src/app/custom-elements/api/api-list.module.ts", "moduleName": "./src/app/custom-elements/api/api-list.module.ts", "type": "harmony side effect evaluation", "userRequest": "./api.service", "loc": "5:0-43" }, { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\api\\api-list.module.ts", "module": "./src/app/custom-elements/api/api-list.module.ts", "moduleName": "./src/app/custom-elements/api/api-list.module.ts", "type": "harmony import specifier", "userRequest": "./api.service", "loc": "14:142-152" }, { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\api\\api-list.component.ts", "module": "./src/app/custom-elements/api/api-list.component.ts", "moduleName": "./src/app/custom-elements/api/api-list.component.ts", "type": "harmony import specifier", "userRequest": "./api.service", "loc": "182:123-136" } ], "usedExports": [ "ApiService" ], "providedExports": [ "ApiService" ], "optimizationBailout": [], "depth": 6, "source": "import { ReplaySubject, Subject } from 'rxjs';\nimport { takeUntil, tap } from 'rxjs/operators';\nimport { DOC_CONTENT_URL_PREFIX } from 'app/documents/document.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common/http\";\nimport * as i2 from \"app/shared/logger.service\";\nexport let ApiService = /*@__PURE__*/ (() => {\n class ApiService {\n constructor(http, logger) {\n this.http = http;\n this.logger = logger;\n this.apiBase = DOC_CONTENT_URL_PREFIX + 'api/';\n this.apiListJsonDefault = 'api-list.json';\n this.firstTime = true;\n this.onDestroy = new Subject();\n this.sectionsSubject = new ReplaySubject(1);\n this._sections = this.sectionsSubject.pipe(takeUntil(this.onDestroy));\n }\n /**\n * Return a cached observable of API sections from a JSON file.\n * API sections is an array of Angular top modules and metadata about their API documents (items).\n */\n get sections() {\n if (this.firstTime) {\n this.firstTime = false;\n this.fetchSections(); // TODO: get URL for fetchSections by configuration?\n // makes sectionsSubject hot; subscribe ensures stays alive (always refCount > 0);\n this._sections.subscribe(sections => this.logger.log(`ApiService got API ${sections.length} section(s)`));\n }\n return this._sections.pipe(tap(sections => {\n sections.forEach(section => {\n section.deprecated = !!section.items &&\n section.items.every(item => item.stability === 'deprecated');\n });\n }));\n }\n ngOnDestroy() {\n this.onDestroy.next();\n }\n /**\n * Fetch API sections from a JSON file.\n * API sections is an array of Angular top modules and metadata about their API documents (items).\n * Updates `sections` observable\n *\n * @param [src] - Name of the api list JSON file\n */\n fetchSections(src) {\n // TODO: get URL by configuration?\n const url = this.apiBase + (src || this.apiListJsonDefault);\n this.http.get(url)\n .pipe(takeUntil(this.onDestroy), tap(() => this.logger.log(`Got API sections from ${url}`)))\n .subscribe(sections => this.sectionsSubject.next(sections), (err) => {\n // TODO: handle error\n this.logger.error(err);\n throw err; // rethrow for now.\n });\n }\n }\n ApiService.ɵfac = function ApiService_Factory(t) { return new (t || ApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.Logger)); };\n ApiService.ɵprov = i0.ɵɵdefineInjectable({ token: ApiService, factory: ApiService.ɵfac });\n return ApiService;\n})();\n\n" }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\api\\api-list.component.ts", "name": "./src/app/custom-elements/api/api-list.component.ts", "index": 481, "index2": 481, "size": 10758, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [], "issuer": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\api\\api-list.module.ts", "issuerId": null, "issuerName": "./src/app/custom-elements/api/api-list.module.ts", "issuerPath": [ { "id": 0, "identifier": "multi C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "multi ./src/main.ts", "profile": { "factory": 1, "building": 4 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "./src/main.ts", "profile": { "factory": 1577, "building": 684 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\app.module.ts", "name": "./src/app/app.module.ts", "profile": { "factory": 7434, "building": 6719, "dependencies": 19440 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\custom-elements.module.ts", "name": "./src/app/custom-elements/custom-elements.module.ts", "profile": { "factory": 26179, "building": 975, "dependencies": 19070 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "name": "./src/app/custom-elements/element-registry.ts", "profile": { "factory": 6786, "building": 1923, "dependencies": 1080 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\api\\api-list.module.ts", "name": "./src/app/custom-elements/api/api-list.module.ts", "profile": { "factory": 3142, "building": 22, "dependencies": 2295 } } ], "profile": { "factory": 2270, "building": 59, "dependencies": 1429 }, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\api\\api-list.module.ts", "module": "./src/app/custom-elements/api/api-list.module.ts", "moduleName": "./src/app/custom-elements/api/api-list.module.ts", "type": "harmony side effect evaluation", "userRequest": "./api-list.component", "loc": "4:0-56" }, { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\api\\api-list.module.ts", "module": "./src/app/custom-elements/api/api-list.module.ts", "moduleName": "./src/app/custom-elements/api/api-list.module.ts", "type": "harmony import specifier", "userRequest": "./api-list.component", "loc": "10:42-58" } ], "usedExports": [ "ApiListComponent" ], "providedExports": [ "ApiListComponent" ], "optimizationBailout": [], "depth": 6, "source": "import { combineLatest, ReplaySubject } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./api.service\";\nimport * as i2 from \"app/shared/location.service\";\nimport * as i3 from \"../../shared/select/select.component\";\nimport * as i4 from \"@angular/common\";\nconst _c0 = [\"filter\"];\nfunction ApiListComponent_div_9_h2_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"h2\");\n i0.ɵɵelementStart(1, \"a\", 11);\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const section_r2 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵadvance(1);\n i0.ɵɵclassProp(\"deprecated-api-item\", section_r2.deprecated);\n i0.ɵɵproperty(\"href\", section_r2.path, i0.ɵɵsanitizeUrl);\n i0.ɵɵadvance(1);\n i0.ɵɵtextInterpolate(section_r2.title);\n }\n}\nfunction ApiListComponent_div_9_ul_2_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"li\", 13);\n i0.ɵɵelementStart(2, \"a\", 11);\n i0.ɵɵelement(3, \"span\");\n i0.ɵɵtext(4);\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const item_r7 = ctx.$implicit;\n i0.ɵɵadvance(2);\n i0.ɵɵclassProp(\"deprecated-api-item\", item_r7.stability === \"deprecated\");\n i0.ɵɵproperty(\"href\", item_r7.path, i0.ɵɵsanitizeUrl);\n i0.ɵɵadvance(1);\n i0.ɵɵclassMapInterpolate1(\"symbol \", item_r7.docType, \"\");\n i0.ɵɵadvance(1);\n i0.ɵɵtextInterpolate1(\" \", item_r7.title, \" \");\n }\n}\nfunction ApiListComponent_div_9_ul_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ul\", 12);\n i0.ɵɵtemplate(1, ApiListComponent_div_9_ul_2_ng_container_1_Template, 5, 7, \"ng-container\", 8);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const section_r2 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngForOf\", section_r2.items);\n }\n}\nfunction ApiListComponent_div_9_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\");\n i0.ɵɵtemplate(1, ApiListComponent_div_9_h2_1_Template, 3, 4, \"h2\", 9);\n i0.ɵɵtemplate(2, ApiListComponent_div_9_ul_2_Template, 2, 1, \"ul\", 10);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const section_r2 = ctx.$implicit;\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", section_r2.items);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", section_r2.items && section_r2.items.length);\n }\n}\nclass SearchCriteria {\n constructor() {\n this.query = '';\n this.status = 'all';\n this.type = 'all';\n }\n}\nexport let ApiListComponent = /*@__PURE__*/ (() => {\n class ApiListComponent {\n constructor(apiService, locationService) {\n this.apiService = apiService;\n this.locationService = locationService;\n this.showStatusMenu = false;\n this.showTypeMenu = false;\n this.criteriaSubject = new ReplaySubject(1);\n this.searchCriteria = new SearchCriteria();\n // API types\n this.types = [\n { value: 'all', title: 'All' },\n { value: 'class', title: 'Class' },\n { value: 'const', title: 'Const' },\n { value: 'decorator', title: 'Decorator' },\n { value: 'directive', title: 'Directive' },\n { value: 'enum', title: 'Enum' },\n { value: 'function', title: 'Function' },\n { value: 'interface', title: 'Interface' },\n { value: 'pipe', title: 'Pipe' },\n { value: 'ngmodule', title: 'NgModule' },\n { value: 'type-alias', title: 'Type alias' },\n { value: 'package', title: 'Package' }\n ];\n this.statuses = [\n { value: 'all', title: 'All' },\n { value: 'stable', title: 'Stable' },\n { value: 'deprecated', title: 'Deprecated' },\n { value: 'security-risk', title: 'Security Risk' }\n ];\n }\n ngOnInit() {\n this.filteredSections =\n combineLatest([\n this.apiService.sections,\n this.criteriaSubject,\n ]).pipe(map(results => ({ sections: results[0], criteria: results[1] })), map(results => (results.sections\n .map(section => (Object.assign(Object.assign({}, section), { items: this.filterSection(section, results.criteria) }))))));\n this.initializeSearchCriteria();\n }\n // TODO: may need to debounce as the original did\n // although there shouldn't be any perf consequences if we don't\n setQuery(query) {\n this.setSearchCriteria({ query: (query || '').toLowerCase().trim() });\n }\n setStatus(status) {\n this.toggleStatusMenu();\n this.status = status;\n this.setSearchCriteria({ status: status.value });\n }\n setType(type) {\n this.toggleTypeMenu();\n this.type = type;\n this.setSearchCriteria({ type: type.value });\n }\n toggleStatusMenu() {\n this.showStatusMenu = !this.showStatusMenu;\n }\n toggleTypeMenu() {\n this.showTypeMenu = !this.showTypeMenu;\n }\n //////// Private //////////\n filterSection(section, { query, status, type }) {\n const sectionNameMatches = !query || section.name.indexOf(query) !== -1;\n const matchesQuery = (item) => sectionNameMatches || item.name.indexOf(query) !== -1;\n const matchesStatus = (item) => status === 'all' || status === item.stability || (status === 'security-risk' && item.securityRisk);\n const matchesType = (item) => type === 'all' || type === item.docType;\n const items = (section.items || []).filter(item => matchesType(item) && matchesStatus(item) && matchesQuery(item));\n // If there are no items we still return an empty array if the section name matches and the type is 'package'\n return items.length ? items : (sectionNameMatches && type === 'package') ? [] : null;\n }\n // Get initial search criteria from URL search params\n initializeSearchCriteria() {\n const { query, status, type } = this.locationService.search();\n const q = (query || '').toLowerCase();\n // Hack: can't bind to query because input cursor always forced to end-of-line.\n this.queryEl.nativeElement.value = q;\n this.status = this.statuses.find(x => x.value === status) || this.statuses[0];\n this.type = this.types.find(x => x.value === type) || this.types[0];\n this.searchCriteria = {\n query: q,\n status: this.status.value,\n type: this.type.value\n };\n this.criteriaSubject.next(this.searchCriteria);\n }\n setLocationSearch() {\n const { query, status, type } = this.searchCriteria;\n const params = {\n query: query ? query : undefined,\n status: status !== 'all' ? status : undefined,\n type: type !== 'all' ? type : undefined\n };\n this.locationService.setSearch('API Search', params);\n }\n setSearchCriteria(criteria) {\n this.criteriaSubject.next(Object.assign(this.searchCriteria, criteria));\n this.setLocationSearch();\n }\n }\n ApiListComponent.ɵfac = function ApiListComponent_Factory(t) { return new (t || ApiListComponent)(i0.ɵɵdirectiveInject(i1.ApiService), i0.ɵɵdirectiveInject(i2.LocationService)); };\n ApiListComponent.ɵcmp = i0.ɵɵdefineComponent({ type: ApiListComponent, selectors: [[\"aio-api-list\"]], viewQuery: function ApiListComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 3);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.queryEl = _t.first);\n }\n }, decls: 11, vars: 9, consts: [[1, \"l-flex-wrap\", \"api-filter\"], [\"label\", \"Type:\", 3, \"options\", \"selected\", \"showSymbol\", \"change\"], [\"label\", \"Status:\", 3, \"options\", \"selected\", \"disabled\", \"change\"], [1, \"form-search\"], [\"placeholder\", \"Filter\", \"aria-label\", \"Filter Search\", 3, \"input\"], [\"filter\", \"\"], [1, \"material-icons\"], [1, \"api-list-container\"], [4, \"ngFor\", \"ngForOf\"], [4, \"ngIf\"], [\"class\", \"api-list\", 4, \"ngIf\"], [3, \"href\"], [1, \"api-list\"], [1, \"api-item\"]], template: function ApiListComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵelementStart(1, \"aio-select\", 1);\n i0.ɵɵlistener(\"change\", function ApiListComponent_Template_aio_select_change_1_listener($event) { return ctx.setType($event.option); });\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(2, \"aio-select\", 2);\n i0.ɵɵlistener(\"change\", function ApiListComponent_Template_aio_select_change_2_listener($event) { return ctx.setStatus($event.option); });\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"div\", 3);\n i0.ɵɵelementStart(4, \"input\", 4, 5);\n i0.ɵɵlistener(\"input\", function ApiListComponent_Template_input_input_4_listener($event) { return ctx.setQuery($event.target.value); });\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(6, \"i\", 6);\n i0.ɵɵtext(7, \"search\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(8, \"article\", 7);\n i0.ɵɵtemplate(9, ApiListComponent_div_9_Template, 3, 2, \"div\", 8);\n i0.ɵɵpipe(10, \"async\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"options\", ctx.types)(\"selected\", ctx.type)(\"showSymbol\", true);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"options\", ctx.statuses)(\"selected\", ctx.status)(\"disabled\", ctx.type.value === \"package\");\n i0.ɵɵadvance(7);\n i0.ɵɵproperty(\"ngForOf\", i0.ɵɵpipeBind1(10, 7, ctx.filteredSections));\n }\n }, directives: [i3.SelectComponent, i4.NgForOf, i4.NgIf], pipes: [i4.AsyncPipe], encapsulation: 2 });\n return ApiListComponent;\n})();\n\n" } ], "filteredModules": 0 } ], "filteredModules": 0, "origins": [ { "moduleId": null, "module": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "moduleName": "./src/app/custom-elements/element-registry.ts", "loc": "12:28-59", "request": "./api/api-list.module", "reasons": [] } ] }, { "id": 4, "rendered": true, "initial": false, "entry": false, "size": 15502, "names": [ "assets-js-prettify-js" ], "files": [ "assets-js-prettify-js-es2015.b6cbad02a0e3ac8af12a.js", "assets-js-prettify-js-es2015.b6cbad02a0e3ac8af12a.js.map" ], "hash": "b6cbad02a0e3ac8af12a", "siblings": [], "parents": [ 1, 5, 6 ], "children": [], "childrenByOrder": {}, "modules": [ { "id": "Ue1H", "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\source-map-loader\\dist\\cjs.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\assets\\js\\prettify.js", "name": "./src/assets/js/prettify.js", "index": 518, "index2": 518, "size": 15502, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [ 4 ], "issuer": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\pretty-printer.service.ts", "issuerId": "vVVL", "issuerName": "./src/app/custom-elements/code/pretty-printer.service.ts", "issuerPath": [ { "id": 0, "identifier": "multi C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "multi ./src/main.ts", "profile": { "factory": 1, "building": 4 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "./src/main.ts", "profile": { "factory": 1577, "building": 684 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\app.module.ts", "name": "./src/app/app.module.ts", "profile": { "factory": 7434, "building": 6719, "dependencies": 19440 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\custom-elements.module.ts", "name": "./src/app/custom-elements/custom-elements.module.ts", "profile": { "factory": 26179, "building": 975, "dependencies": 19070 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "name": "./src/app/custom-elements/element-registry.ts", "profile": { "factory": 6786, "building": 1923, "dependencies": 1080 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-example.module.ts", "name": "./src/app/custom-elements/code/code-example.module.ts", "profile": { "factory": 3142, "building": 22, "dependencies": 2295 } }, { "id": "V90o", "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code.module.ts", "name": "./src/app/custom-elements/code/code.module.ts", "profile": { "factory": 1279, "building": 17, "dependencies": 3 } }, { "id": "vVVL", "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\pretty-printer.service.ts", "name": "./src/app/custom-elements/code/pretty-printer.service.ts", "profile": { "factory": 3196, "building": 796, "dependencies": 1880 } } ], "profile": { "factory": 2000, "building": 409 }, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": "vVVL", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\pretty-printer.service.ts", "module": "./src/app/custom-elements/code/pretty-printer.service.ts", "moduleName": "./src/app/custom-elements/code/pretty-printer.service.ts", "type": "import()", "userRequest": "assets/js/prettify.js", "loc": "19:16-47" } ], "usedExports": true, "providedExports": null, "optimizationBailout": [ "ModuleConcatenation bailout: Module is not an ECMAScript module" ], "depth": 8, "source": "!function(){/*\n\n Copyright (C) 2006 Google Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\nwindow.PR_SHOULD_USE_CONTINUATION=!0;\n(function(){function T(a){function d(e){var b=e.charCodeAt(0);if(92!==b)return b;var a=e.charAt(1);return(b=w[a])?b:\"0\"<=a&&\"7\">=a?parseInt(e.substring(1),8):\"u\"===a||\"x\"===a?parseInt(e.substring(2),16):e.charCodeAt(1)}function f(e){if(32>e)return(16>e?\"\\\\x0\":\"\\\\x\")+e.toString(16);e=String.fromCharCode(e);return\"\\\\\"===e||\"-\"===e||\"]\"===e||\"^\"===e?\"\\\\\"+e:e}function b(e){var b=e.substring(1,e.length-1).match(/\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]/g);e=\n[];var a=\"^\"===b[0],c=[\"[\"];a&&c.push(\"^\");for(var a=a?1:0,g=b.length;ak||122k||90k||122h[0]&&(h[1]+1>h[0]&&c.push(\"-\"),c.push(f(h[1])));c.push(\"]\");return c.join(\"\")}function v(e){for(var a=e.source.match(/(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)/g),c=a.length,d=[],g=0,h=0;g/,null])):d.push([\"com\",/^#[^\\r\\n]*/,null,\"#\"]));a.cStyleComments&&(f.push([\"com\",/^\\/\\/[^\\r\\n]*/,null]),f.push([\"com\",/^\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,null]));if(b=a.regexLiterals){var v=(b=1|\\\\/=?|::?|<>?>?=?|,|;|\\\\?|@|\\\\[|~|{|\\\\^\\\\^?=?|\\\\|\\\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\\\s*(\"+\n(\"/(?=[^/*\"+b+\"])(?:[^/\\\\x5B\\\\x5C\"+b+\"]|\\\\x5C\"+v+\"|\\\\x5B(?:[^\\\\x5C\\\\x5D\"+b+\"]|\\\\x5C\"+v+\")*(?:\\\\x5D|$))+/\")+\")\")])}(b=a.types)&&f.push([\"typ\",b]);b=(\"\"+a.keywords).replace(/^ | $/g,\"\");b.length&&f.push([\"kwd\",new RegExp(\"^(?:\"+b.replace(/[\\s,]+/g,\"|\")+\")\\\\b\"),null]);d.push([\"pln\",/^\\s+/,null,\" \\r\\n\\t\\u00a0\"]);b=\"^.[^\\\\s\\\\w.$@'\\\"`/\\\\\\\\]*\";a.regexLiterals&&(b+=\"(?!s*/)\");f.push([\"lit\",/^@[a-z_$][a-z_$@0-9]*/i,null],[\"typ\",/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\\w+_t\\b)/,null],[\"pln\",/^[a-z_$][a-z_$@0-9]*/i,\nnull],[\"lit\",/^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*/i,null,\"0123456789\"],[\"pln\",/^\\\\[\\s\\S]?/,null],[\"pun\",new RegExp(b),null]);return G(d,f)}function L(a,d,f){function b(a){var c=a.nodeType;if(1==c&&!A.test(a.className))if(\"br\"===a.nodeName)v(a),a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)b(a);else if((3==c||4==c)&&f){var d=a.nodeValue,q=d.match(n);q&&(c=d.substring(0,q.index),a.nodeValue=c,(d=d.substring(q.index+q[0].length))&&\na.parentNode.insertBefore(l.createTextNode(d),a.nextSibling),v(a),c||a.parentNode.removeChild(a))}}function v(a){function b(a,c){var d=c?a.cloneNode(!1):a,k=a.parentNode;if(k){var k=b(k,1),e=a.nextSibling;k.appendChild(d);for(var f=e;f;f=e)e=f.nextSibling,k.appendChild(f)}return d}for(;!a.nextSibling;)if(a=a.parentNode,!a)return;a=b(a.nextSibling,0);for(var d;(d=a.parentNode)&&1===d.nodeType;)a=d;c.push(a)}for(var A=/(?:^|\\s)nocode(?:\\s|$)/,n=/\\r\\n?|\\n/,l=a.ownerDocument,m=l.createElement(\"li\");a.firstChild;)m.appendChild(a.firstChild);\nfor(var c=[m],p=0;p=+v[1],d=/\\n/g,A=a.a,n=A.length,f=0,l=a.c,m=l.length,b=0,c=a.g,p=c.length,w=0;c[p]=n;var r,e;for(e=r=0;e=h&&(b+=2);f>=k&&(w+=2)}}finally{g&&(g.style.display=a)}}catch(x){E.console&&console.log(x&&x.stack||x)}}var E=window,C=[\"break,continue,do,else,for,if,return,while\"],\nF=[[C,\"auto,case,char,const,default,double,enum,extern,float,goto,inline,int,long,register,restrict,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile\"],\"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof\"],H=[F,\"alignas,alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,delegate,dynamic_cast,explicit,export,friend,generic,late_check,mutable,namespace,noexcept,noreturn,nullptr,property,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where\"],\nO=[F,\"abstract,assert,boolean,byte,extends,finally,final,implements,import,instanceof,interface,null,native,package,strictfp,super,synchronized,throws,transient\"],P=[F,\"abstract,add,alias,as,ascending,async,await,base,bool,by,byte,checked,decimal,delegate,descending,dynamic,event,finally,fixed,foreach,from,get,global,group,implicit,in,interface,internal,into,is,join,let,lock,null,object,out,override,orderby,params,partial,readonly,ref,remove,sbyte,sealed,select,set,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,value,var,virtual,where,yield\"],\nF=[F,\"abstract,async,await,constructor,debugger,enum,eval,export,function,get,implements,instanceof,interface,let,null,set,undefined,var,with,yield,Infinity,NaN\"],Q=[C,\"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None\"],R=[C,\"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END\"],C=[C,\"case,done,elif,esac,eval,fi,function,in,local,set,then,until\"],\nS=/^(DIR|FILE|array|vector|(de|priority_)?queue|(forward_)?list|stack|(const_)?(reverse_)?iterator|(unordered_)?(multi)?(set|map)|bitset|u?(int|float)\\d*)\\b/,W=/\\S/,X=y({keywords:[H,P,O,F,\"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END\",Q,R,C],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),I={};t(X,[\"default-code\"]);t(G([],[[\"pln\",/^[^]*(?:>|$)/],[\"com\",/^<\\!--[\\s\\S]*?(?:-\\->|$)/],[\"lang-\",/^<\\?([\\s\\S]+?)(?:\\?>|$)/],[\"lang-\",/^<%([\\s\\S]+?)(?:%>|$)/],[\"pun\",/^(?:<[%?]|[%?]>)/],[\"lang-\",/^]*>([\\s\\S]+?)<\\/xmp\\b[^>]*>/i],[\"lang-js\",/^]*>([\\s\\S]*?)(<\\/script\\b[^>]*>)/i],[\"lang-css\",/^]*>([\\s\\S]*?)(<\\/style\\b[^>]*>)/i],[\"lang-in.tag\",/^(<\\/?[a-z][^<>]*>)/i]]),\"default-markup htm html mxml xhtml xml xsl\".split(\" \"));t(G([[\"pln\",/^[\\s]+/,null,\" \\t\\r\\n\"],[\"atv\",/^(?:\\\"[^\\\"]*\\\"?|\\'[^\\']*\\'?)/,null,\n\"\\\"'\"]],[[\"tag\",/^^<\\/?[a-z](?:[\\w.:-]*\\w)?|\\/?>$/i],[\"atn\",/^(?!style[\\s=]|on)[a-z](?:[\\w:-]*\\w)?/i],[\"lang-uq.val\",/^=\\s*([^>\\'\\\"\\s]*(?:[^>\\'\\\"\\s\\/]|\\/(?=\\s)))/],[\"pun\",/^[=<>\\/]+/],[\"lang-js\",/^on\\w+\\s*=\\s*\\\"([^\\\"]+)\\\"/i],[\"lang-js\",/^on\\w+\\s*=\\s*\\'([^\\']+)\\'/i],[\"lang-js\",/^on\\w+\\s*=\\s*([^\\\"\\'>\\s]+)/i],[\"lang-css\",/^style\\s*=\\s*\\\"([^\\\"]+)\\\"/i],[\"lang-css\",/^style\\s*=\\s*\\'([^\\']+)\\'/i],[\"lang-css\",/^style\\s*=\\s*([^\\\"\\'>\\s]+)/i]]),[\"in.tag\"]);t(G([],[[\"atv\",/^[\\s\\S]+/]]),[\"uq.val\"]);t(y({keywords:H,\nhashComments:!0,cStyleComments:!0,types:S}),\"c cc cpp cxx cyc m\".split(\" \"));t(y({keywords:\"null,true,false\"}),[\"json\"]);t(y({keywords:P,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:S}),[\"cs\"]);t(y({keywords:O,cStyleComments:!0}),[\"java\"]);t(y({keywords:C,hashComments:!0,multiLineStrings:!0}),[\"bash\",\"bsh\",\"csh\",\"sh\"]);t(y({keywords:Q,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),[\"cv\",\"py\",\"python\"]);t(y({keywords:\"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END\",\nhashComments:!0,multiLineStrings:!0,regexLiterals:2}),[\"perl\",\"pl\",\"pm\"]);t(y({keywords:R,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),[\"rb\",\"ruby\"]);t(y({keywords:F,cStyleComments:!0,regexLiterals:!0}),[\"javascript\",\"js\",\"ts\",\"typescript\"]);t(y({keywords:\"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes\",hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,\nregexLiterals:!0}),[\"coffee\"]);t(G([],[[\"str\",/^[\\s\\S]+/]]),[\"regex\"]);var Y=E.PR={createSimpleLexer:G,registerLangHandler:t,sourceDecorator:y,PR_ATTRIB_NAME:\"atn\",PR_ATTRIB_VALUE:\"atv\",PR_COMMENT:\"com\",PR_DECLARATION:\"dec\",PR_KEYWORD:\"kwd\",PR_LITERAL:\"lit\",PR_NOCODE:\"nocode\",PR_PLAIN:\"pln\",PR_PUNCTUATION:\"pun\",PR_SOURCE:\"src\",PR_STRING:\"str\",PR_TAG:\"tag\",PR_TYPE:\"typ\",prettyPrintOne:E.prettyPrintOne=function(a,d,f){f=f||!1;d=d||null;var b=document.createElement(\"div\");b.innerHTML=\"
\"+a+\"
\";\nb=b.firstChild;f&&L(b,f,!0);M({j:d,m:f,h:b,l:1,a:null,i:null,c:null,g:null});return b.innerHTML},prettyPrint:E.prettyPrint=function(a,d){function f(){for(var b=E.PR_SHOULD_USE_CONTINUATION?c.now()+250:Infinity;p {\n class CodeExampleModule {\n constructor() {\n this.customElementComponent = CodeExampleComponent;\n }\n }\n CodeExampleModule.ɵmod = i0.ɵɵdefineNgModule({ type: CodeExampleModule });\n CodeExampleModule.ɵinj = i0.ɵɵdefineInjector({ factory: function CodeExampleModule_Factory(t) { return new (t || CodeExampleModule)(); }, imports: [[CommonModule, CodeModule]] });\n return CodeExampleModule;\n})();\n\n" }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-example.component.ts", "name": "./src/app/custom-elements/code/code-example.component.ts", "index": 497, "index2": 505, "size": 4245, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [], "issuer": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-example.module.ts", "issuerId": null, "issuerName": "./src/app/custom-elements/code/code-example.module.ts", "issuerPath": [ { "id": 0, "identifier": "multi C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "multi ./src/main.ts", "profile": { "factory": 1, "building": 4 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "./src/main.ts", "profile": { "factory": 1577, "building": 684 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\app.module.ts", "name": "./src/app/app.module.ts", "profile": { "factory": 7434, "building": 6719, "dependencies": 19440 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\custom-elements.module.ts", "name": "./src/app/custom-elements/custom-elements.module.ts", "profile": { "factory": 26179, "building": 975, "dependencies": 19070 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "name": "./src/app/custom-elements/element-registry.ts", "profile": { "factory": 6786, "building": 1923, "dependencies": 1080 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-example.module.ts", "name": "./src/app/custom-elements/code/code-example.module.ts", "profile": { "factory": 3142, "building": 22, "dependencies": 2295 } } ], "profile": { "factory": 1279, "building": 17, "dependencies": 3 }, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-example.module.ts", "module": "./src/app/custom-elements/code/code-example.module.ts", "moduleName": "./src/app/custom-elements/code/code-example.module.ts", "type": "harmony side effect evaluation", "userRequest": "./code-example.component", "loc": "2:0-64" }, { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-example.module.ts", "module": "./src/app/custom-elements/code/code-example.module.ts", "moduleName": "./src/app/custom-elements/code/code-example.module.ts", "type": "harmony import specifier", "userRequest": "./code-example.component", "loc": "8:42-62" } ], "usedExports": [ "CodeExampleComponent" ], "providedExports": [ "CodeExampleComponent" ], "optimizationBailout": [], "depth": 6, "source": "import { CodeComponent } from './code.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"./code.component\";\nconst _c0 = [\"content\"];\nfunction CodeExampleComponent_header_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"header\");\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance(1);\n i0.ɵɵtextInterpolate(ctx_r1.header);\n }\n}\nconst _c1 = [\"*\"];\n/**\n * An embeddable code block that displays nicely formatted code.\n * Example usage:\n *\n * ```\n * \n * // a code block\n * console.log('do stuff');\n * \n * ```\n */\nexport let CodeExampleComponent = /*@__PURE__*/ (() => {\n class CodeExampleComponent {\n constructor() {\n this._path = '';\n this.isAvoid = false;\n }\n set header(header) {\n this._header = header;\n this.classes = {\n 'headed-code': !!this.header,\n 'simple-code': !this.header,\n };\n }\n get header() { return this._header; }\n set path(path) {\n this._path = path;\n this.isAvoid = this.path.indexOf('.avoid.') !== -1;\n }\n get path() { return this._path; }\n set hidecopy(hidecopy) {\n // Coerce the boolean value.\n this._hidecopy = hidecopy != null && `${hidecopy}` !== 'false';\n }\n get hidecopy() { return this._hidecopy; }\n set hyphenatedHideCopy(hidecopy) {\n this.hidecopy = hidecopy;\n }\n set capitalizedHideCopy(hidecopy) {\n this.hidecopy = hidecopy;\n }\n ngAfterViewInit() {\n const contentElem = this.content.nativeElement;\n this.aioCode.code = contentElem.innerHTML;\n contentElem.innerHTML = ''; // Remove DOM nodes that are no longer needed.\n }\n }\n CodeExampleComponent.ɵfac = function CodeExampleComponent_Factory(t) { return new (t || CodeExampleComponent)(); };\n CodeExampleComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CodeExampleComponent, selectors: [[\"code-example\"]], viewQuery: function CodeExampleComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 3);\n i0.ɵɵviewQuery(CodeComponent, 3);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.content = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.aioCode = _t.first);\n }\n }, hostVars: 2, hostBindings: function CodeExampleComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"avoidFile\", ctx.isAvoid);\n }\n }, inputs: { language: \"language\", linenums: \"linenums\", region: \"region\", header: \"header\", path: \"path\", hidecopy: \"hidecopy\", hyphenatedHideCopy: [\"hide-copy\", \"hyphenatedHideCopy\"], capitalizedHideCopy: [\"hideCopy\", \"capitalizedHideCopy\"] }, ngContentSelectors: _c1, decls: 5, vars: 8, consts: [[2, \"display\", \"none\"], [\"content\", \"\"], [4, \"ngIf\"], [3, \"ngClass\", \"language\", \"linenums\", \"path\", \"region\", \"hideCopy\", \"header\"]], template: function CodeExampleComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"div\", 0, 1);\n i0.ɵɵprojection(2);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(3, CodeExampleComponent_header_3_Template, 2, 1, \"header\", 2);\n i0.ɵɵelement(4, \"aio-code\", 3);\n }\n if (rf & 2) {\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", ctx.header);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngClass\", ctx.classes)(\"language\", ctx.language)(\"linenums\", ctx.linenums)(\"path\", ctx.path)(\"region\", ctx.region)(\"hideCopy\", ctx.hidecopy)(\"header\", ctx.header);\n }\n }, directives: [i1.NgIf, i2.CodeComponent, i1.NgClass], encapsulation: 2 });\n return CodeExampleComponent;\n})();\n\n" } ], "filteredModules": 0 } ], "filteredModules": 0, "origins": [ { "moduleId": null, "module": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "moduleName": "./src/app/custom-elements/element-registry.ts", "loc": "32:28-64", "request": "./code/code-example.module", "reasons": [] } ] }, { "id": 6, "rendered": true, "initial": false, "entry": false, "size": 120966, "names": [ "code-code-tabs-module" ], "files": [ "code-code-tabs-module-es2015.1a6c55229832dae43d3d.js", "code-code-tabs-module-es2015.1a6c55229832dae43d3d.js.map" ], "hash": "1a6c55229832dae43d3d", "siblings": [ 1 ], "parents": [ 0, 10 ], "children": [ 4 ], "childrenByOrder": {}, "modules": [ { "id": "g5Zp", "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.module.ts 2d473952cbc52f3b0d84229606a38e44", "name": "./src/app/custom-elements/code/code-tabs.module.ts + 3 modules", "index": 508, "index2": 511, "size": 120966, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [ 6 ], "issuer": null, "issuerId": null, "issuerName": null, "issuerPath": null, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "module": "./src/app/custom-elements/element-registry.ts", "moduleName": "./src/app/custom-elements/element-registry.ts", "type": "import()", "userRequest": "./code/code-tabs.module", "loc": "36:28-61" } ], "usedExports": true, "providedExports": [ "CodeTabsModule" ], "optimizationBailout": [ "ModuleConcatenation bailout: Cannot concat with ./src/app/custom-elements/code/code.component.ts", "ModuleConcatenation bailout: Cannot concat with ./src/app/custom-elements/code/code.module.ts", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/animations/__ivy_ngcc__/fesm2015/animations.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/a11y.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/bidi.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/keycodes.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/observers.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/platform.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/portal.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/scrolling.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/cdk/fesm2015/coercion.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/common/__ivy_ngcc__/fesm2015/common.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/material/__ivy_ngcc__/fesm2015/core.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/platform-browser/__ivy_ngcc__/fesm2015/animations.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/rxjs/_esm2015/internal/Subject.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/rxjs/_esm2015/internal/Subscription.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/rxjs/_esm2015/internal/observable/fromEvent.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/rxjs/_esm2015/internal/observable/merge.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/rxjs/_esm2015/internal/observable/of.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/rxjs/_esm2015/internal/observable/timer.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/rxjs/_esm2015/internal/operators/distinctUntilChanged.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/rxjs/_esm2015/internal/operators/startWith.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/rxjs/_esm2015/internal/operators/takeUntil.js" ], "depth": 5, "modules": [ { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.module.ts", "name": "./src/app/custom-elements/code/code-tabs.module.ts", "index": 508, "index2": 511, "size": 797, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [], "issuer": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "issuerId": null, "issuerName": "./src/app/custom-elements/element-registry.ts", "issuerPath": [ { "id": 0, "identifier": "multi C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "multi ./src/main.ts", "profile": { "factory": 1, "building": 4 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "./src/main.ts", "profile": { "factory": 1577, "building": 684 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\app.module.ts", "name": "./src/app/app.module.ts", "profile": { "factory": 7434, "building": 6719, "dependencies": 19440 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\custom-elements.module.ts", "name": "./src/app/custom-elements/custom-elements.module.ts", "profile": { "factory": 26179, "building": 975, "dependencies": 19070 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "name": "./src/app/custom-elements/element-registry.ts", "profile": { "factory": 6786, "building": 1923, "dependencies": 1080 } } ], "profile": { "factory": 3142, "building": 22, "dependencies": 2295 }, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "module": "./src/app/custom-elements/element-registry.ts", "moduleName": "./src/app/custom-elements/element-registry.ts", "type": "import()", "userRequest": "./code/code-tabs.module", "loc": "36:28-61" } ], "usedExports": true, "providedExports": [ "CodeTabsModule" ], "optimizationBailout": [ "ModuleConcatenation bailout: Module is referenced from these modules with unsupported syntax: ./src/app/custom-elements/element-registry.ts (referenced with import())" ], "depth": 5, "source": "import { CommonModule } from '@angular/common';\nimport { CodeTabsComponent } from './code-tabs.component';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { CodeModule } from './code.module';\nimport * as i0 from \"@angular/core\";\nexport let CodeTabsModule = /*@__PURE__*/ (() => {\n class CodeTabsModule {\n constructor() {\n this.customElementComponent = CodeTabsComponent;\n }\n }\n CodeTabsModule.ɵmod = i0.ɵɵdefineNgModule({ type: CodeTabsModule });\n CodeTabsModule.ɵinj = i0.ɵɵdefineInjector({ factory: function CodeTabsModule_Factory(t) { return new (t || CodeTabsModule)(); }, imports: [[CommonModule, MatCardModule, MatTabsModule, CodeModule]] });\n return CodeTabsModule;\n})();\n\n" }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\card.js", "name": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/card.js", "index": 510, "index2": 508, "size": 13377, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [], "issuer": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.module.ts", "issuerId": null, "issuerName": "./src/app/custom-elements/code/code-tabs.module.ts", "issuerPath": [ { "id": 0, "identifier": "multi C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "multi ./src/main.ts", "profile": { "factory": 1, "building": 4 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "./src/main.ts", "profile": { "factory": 1577, "building": 684 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\app.module.ts", "name": "./src/app/app.module.ts", "profile": { "factory": 7434, "building": 6719, "dependencies": 19440 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\custom-elements.module.ts", "name": "./src/app/custom-elements/custom-elements.module.ts", "profile": { "factory": 26179, "building": 975, "dependencies": 19070 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "name": "./src/app/custom-elements/element-registry.ts", "profile": { "factory": 6786, "building": 1923, "dependencies": 1080 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.module.ts", "name": "./src/app/custom-elements/code/code-tabs.module.ts", "profile": { "factory": 3142, "building": 22, "dependencies": 2295 } } ], "profile": { "factory": 4129, "building": 938, "dependencies": 2786 }, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.module.ts", "module": "./src/app/custom-elements/code/code-tabs.module.ts", "moduleName": "./src/app/custom-elements/code/code-tabs.module.ts", "type": "harmony side effect evaluation", "userRequest": "@angular/material/card", "loc": "3:0-55" }, { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.component.ts", "module": "./src/app/custom-elements/code/code-tabs.component.ts", "moduleName": "./src/app/custom-elements/code/code-tabs.component.ts", "type": "harmony side effect evaluation", "userRequest": "@angular/material/card", "loc": "3:0-45" }, { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.module.ts", "module": "./src/app/custom-elements/code/code-tabs.module.ts", "moduleName": "./src/app/custom-elements/code/code-tabs.module.ts", "type": "harmony import specifier", "userRequest": "@angular/material/card", "loc": "14:158-171" }, { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.component.ts", "module": "./src/app/custom-elements/code/code-tabs.component.ts", "moduleName": "./src/app/custom-elements/code/code-tabs.component.ts", "type": "harmony import specifier", "userRequest": "@angular/material/card", "loc": "106:24-34" } ], "usedExports": [ "MatCardModule", "MatCard" ], "providedExports": [ "MatCard", "MatCardActions", "MatCardAvatar", "MatCardContent", "MatCardFooter", "MatCardHeader", "MatCardImage", "MatCardLgImage", "MatCardMdImage", "MatCardModule", "MatCardSmImage", "MatCardSubtitle", "MatCardTitle", "MatCardTitleGroup", "MatCardXlImage" ], "optimizationBailout": [], "depth": 6, "source": "import { Directive, Input, Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, Inject, NgModule } from '@angular/core';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { MatCommonModule } from '@angular/material/core';\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 * Content of a card, needed as it's used as a selector in the API.\n * @docs-private\n */\nimport * as ɵngcc0 from '@angular/core';\nconst _c0 = [\"*\", [[\"mat-card-footer\"]]];\nconst _c1 = [\"*\", \"mat-card-footer\"];\nconst _c2 = [[[\"\", \"mat-card-avatar\", \"\"], [\"\", \"matCardAvatar\", \"\"]], [[\"mat-card-title\"], [\"mat-card-subtitle\"], [\"\", \"mat-card-title\", \"\"], [\"\", \"mat-card-subtitle\", \"\"], [\"\", \"matCardTitle\", \"\"], [\"\", \"matCardSubtitle\", \"\"]], \"*\"];\nconst _c3 = [\"[mat-card-avatar], [matCardAvatar]\", \"mat-card-title, mat-card-subtitle,\\n [mat-card-title], [mat-card-subtitle],\\n [matCardTitle], [matCardSubtitle]\", \"*\"];\nconst _c4 = [[[\"mat-card-title\"], [\"mat-card-subtitle\"], [\"\", \"mat-card-title\", \"\"], [\"\", \"mat-card-subtitle\", \"\"], [\"\", \"matCardTitle\", \"\"], [\"\", \"matCardSubtitle\", \"\"]], [[\"img\"]], \"*\"];\nconst _c5 = [\"mat-card-title, mat-card-subtitle,\\n [mat-card-title], [mat-card-subtitle],\\n [matCardTitle], [matCardSubtitle]\", \"img\", \"*\"];\nlet MatCardContent = /*@__PURE__*/ (() => {\n class MatCardContent {\n }\n MatCardContent.ɵfac = function MatCardContent_Factory(t) { return new (t || MatCardContent)(); };\n MatCardContent.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MatCardContent, selectors: [[\"mat-card-content\"], [\"\", \"mat-card-content\", \"\"], [\"\", \"matCardContent\", \"\"]], hostAttrs: [1, \"mat-card-content\"] });\n return MatCardContent;\n})();\nlet MatCardTitle = /*@__PURE__*/ (() => {\n class MatCardTitle {\n }\n MatCardTitle.ɵfac = function MatCardTitle_Factory(t) { return new (t || MatCardTitle)(); };\n MatCardTitle.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MatCardTitle, selectors: [[\"mat-card-title\"], [\"\", \"mat-card-title\", \"\"], [\"\", \"matCardTitle\", \"\"]], hostAttrs: [1, \"mat-card-title\"] });\n return MatCardTitle;\n})();\nlet MatCardSubtitle = /*@__PURE__*/ (() => {\n class MatCardSubtitle {\n }\n MatCardSubtitle.ɵfac = function MatCardSubtitle_Factory(t) { return new (t || MatCardSubtitle)(); };\n MatCardSubtitle.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MatCardSubtitle, selectors: [[\"mat-card-subtitle\"], [\"\", \"mat-card-subtitle\", \"\"], [\"\", \"matCardSubtitle\", \"\"]], hostAttrs: [1, \"mat-card-subtitle\"] });\n return MatCardSubtitle;\n})();\nlet MatCardActions = /*@__PURE__*/ (() => {\n class MatCardActions {\n constructor() {\n /** Position of the actions inside the card. */\n this.align = 'start';\n }\n }\n MatCardActions.ɵfac = function MatCardActions_Factory(t) { return new (t || MatCardActions)(); };\n MatCardActions.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MatCardActions, selectors: [[\"mat-card-actions\"]], hostAttrs: [1, \"mat-card-actions\"], hostVars: 2, hostBindings: function MatCardActions_HostBindings(rf, ctx) {\n if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"mat-card-actions-align-end\", ctx.align === \"end\");\n }\n }, inputs: { align: \"align\" }, exportAs: [\"matCardActions\"] });\n return MatCardActions;\n})();\nlet MatCardFooter = /*@__PURE__*/ (() => {\n class MatCardFooter {\n }\n MatCardFooter.ɵfac = function MatCardFooter_Factory(t) { return new (t || MatCardFooter)(); };\n MatCardFooter.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MatCardFooter, selectors: [[\"mat-card-footer\"]], hostAttrs: [1, \"mat-card-footer\"] });\n return MatCardFooter;\n})();\nlet MatCardImage = /*@__PURE__*/ (() => {\n class MatCardImage {\n }\n MatCardImage.ɵfac = function MatCardImage_Factory(t) { return new (t || MatCardImage)(); };\n MatCardImage.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MatCardImage, selectors: [[\"\", \"mat-card-image\", \"\"], [\"\", \"matCardImage\", \"\"]], hostAttrs: [1, \"mat-card-image\"] });\n return MatCardImage;\n})();\nlet MatCardSmImage = /*@__PURE__*/ (() => {\n class MatCardSmImage {\n }\n MatCardSmImage.ɵfac = function MatCardSmImage_Factory(t) { return new (t || MatCardSmImage)(); };\n MatCardSmImage.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MatCardSmImage, selectors: [[\"\", \"mat-card-sm-image\", \"\"], [\"\", \"matCardImageSmall\", \"\"]], hostAttrs: [1, \"mat-card-sm-image\"] });\n return MatCardSmImage;\n})();\nlet MatCardMdImage = /*@__PURE__*/ (() => {\n class MatCardMdImage {\n }\n MatCardMdImage.ɵfac = function MatCardMdImage_Factory(t) { return new (t || MatCardMdImage)(); };\n MatCardMdImage.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MatCardMdImage, selectors: [[\"\", \"mat-card-md-image\", \"\"], [\"\", \"matCardImageMedium\", \"\"]], hostAttrs: [1, \"mat-card-md-image\"] });\n return MatCardMdImage;\n})();\nlet MatCardLgImage = /*@__PURE__*/ (() => {\n class MatCardLgImage {\n }\n MatCardLgImage.ɵfac = function MatCardLgImage_Factory(t) { return new (t || MatCardLgImage)(); };\n MatCardLgImage.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MatCardLgImage, selectors: [[\"\", \"mat-card-lg-image\", \"\"], [\"\", \"matCardImageLarge\", \"\"]], hostAttrs: [1, \"mat-card-lg-image\"] });\n return MatCardLgImage;\n})();\nlet MatCardXlImage = /*@__PURE__*/ (() => {\n class MatCardXlImage {\n }\n MatCardXlImage.ɵfac = function MatCardXlImage_Factory(t) { return new (t || MatCardXlImage)(); };\n MatCardXlImage.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MatCardXlImage, selectors: [[\"\", \"mat-card-xl-image\", \"\"], [\"\", \"matCardImageXLarge\", \"\"]], hostAttrs: [1, \"mat-card-xl-image\"] });\n return MatCardXlImage;\n})();\nlet MatCardAvatar = /*@__PURE__*/ (() => {\n class MatCardAvatar {\n }\n MatCardAvatar.ɵfac = function MatCardAvatar_Factory(t) { return new (t || MatCardAvatar)(); };\n MatCardAvatar.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MatCardAvatar, selectors: [[\"\", \"mat-card-avatar\", \"\"], [\"\", \"matCardAvatar\", \"\"]], hostAttrs: [1, \"mat-card-avatar\"] });\n return MatCardAvatar;\n})();\nlet MatCard = /*@__PURE__*/ (() => {\n class MatCard {\n // @breaking-change 9.0.0 `_animationMode` parameter to be made required.\n constructor(_animationMode) {\n this._animationMode = _animationMode;\n }\n }\n MatCard.ɵfac = function MatCard_Factory(t) { return new (t || MatCard)(ɵngcc0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8)); };\n MatCard.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: MatCard, selectors: [[\"mat-card\"]], hostAttrs: [1, \"mat-card\", \"mat-focus-indicator\"], hostVars: 2, hostBindings: function MatCard_HostBindings(rf, ctx) {\n if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\");\n }\n }, exportAs: [\"matCard\"], ngContentSelectors: _c1, decls: 2, vars: 0, template: function MatCard_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef(_c0);\n ɵngcc0.ɵɵprojection(0);\n ɵngcc0.ɵɵprojection(1, 1);\n }\n }, styles: [\".mat-card{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);display:block;position:relative;padding:16px;border-radius:4px}._mat-animation-noopable.mat-card{transition:none;animation:none}.mat-card .mat-divider-horizontal{position:absolute;left:0;width:100%}[dir=rtl] .mat-card .mat-divider-horizontal{left:auto;right:0}.mat-card .mat-divider-horizontal.mat-divider-inset{position:static;margin:0}[dir=rtl] .mat-card .mat-divider-horizontal.mat-divider-inset{margin-right:0}.cdk-high-contrast-active .mat-card{outline:solid 1px}.mat-card-actions,.mat-card-subtitle,.mat-card-content{display:block;margin-bottom:16px}.mat-card-title{display:block;margin-bottom:8px}.mat-card-actions{margin-left:-8px;margin-right:-8px;padding:8px 0}.mat-card-actions-align-end{display:flex;justify-content:flex-end}.mat-card-image{width:calc(100% + 32px);margin:0 -16px 16px -16px}.mat-card-footer{display:block;margin:0 -16px -16px -16px}.mat-card-actions .mat-button,.mat-card-actions .mat-raised-button,.mat-card-actions .mat-stroked-button{margin:0 8px}.mat-card-header{display:flex;flex-direction:row}.mat-card-header .mat-card-title{margin-bottom:12px}.mat-card-header-text{margin:0 16px}.mat-card-avatar{height:40px;width:40px;border-radius:50%;flex-shrink:0;object-fit:cover}.mat-card-title-group{display:flex;justify-content:space-between}.mat-card-sm-image{width:80px;height:80px}.mat-card-md-image{width:112px;height:112px}.mat-card-lg-image{width:152px;height:152px}.mat-card-xl-image{width:240px;height:240px;margin:-8px}.mat-card-title-group>.mat-card-xl-image{margin:-8px 0 8px}@media(max-width: 599px){.mat-card-title-group{margin:0}.mat-card-xl-image{margin-left:0;margin-right:0}}.mat-card>:first-child,.mat-card-content>:first-child{margin-top:0}.mat-card>:last-child:not(.mat-card-footer),.mat-card-content>:last-child:not(.mat-card-footer){margin-bottom:0}.mat-card-image:first-child{margin-top:-16px;border-top-left-radius:inherit;border-top-right-radius:inherit}.mat-card>.mat-card-actions:last-child{margin-bottom:-8px;padding-bottom:0}.mat-card-actions .mat-button:first-child,.mat-card-actions .mat-raised-button:first-child,.mat-card-actions .mat-stroked-button:first-child{margin-left:0;margin-right:0}.mat-card-title:not(:first-child),.mat-card-subtitle:not(:first-child){margin-top:-4px}.mat-card-header .mat-card-subtitle:not(:first-child){margin-top:-8px}.mat-card>.mat-card-xl-image:first-child{margin-top:-8px}.mat-card>.mat-card-xl-image:last-child{margin-bottom:-8px}\\n\"], encapsulation: 2, changeDetection: 0 });\n return MatCard;\n})();\nlet MatCardHeader = /*@__PURE__*/ (() => {\n class MatCardHeader {\n }\n MatCardHeader.ɵfac = function MatCardHeader_Factory(t) { return new (t || MatCardHeader)(); };\n MatCardHeader.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: MatCardHeader, selectors: [[\"mat-card-header\"]], hostAttrs: [1, \"mat-card-header\"], ngContentSelectors: _c3, decls: 4, vars: 0, consts: [[1, \"mat-card-header-text\"]], template: function MatCardHeader_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef(_c2);\n ɵngcc0.ɵɵprojection(0);\n ɵngcc0.ɵɵelementStart(1, \"div\", 0);\n ɵngcc0.ɵɵprojection(2, 1);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵprojection(3, 2);\n }\n }, encapsulation: 2, changeDetection: 0 });\n return MatCardHeader;\n})();\nlet MatCardTitleGroup = /*@__PURE__*/ (() => {\n class MatCardTitleGroup {\n }\n MatCardTitleGroup.ɵfac = function MatCardTitleGroup_Factory(t) { return new (t || MatCardTitleGroup)(); };\n MatCardTitleGroup.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: MatCardTitleGroup, selectors: [[\"mat-card-title-group\"]], hostAttrs: [1, \"mat-card-title-group\"], ngContentSelectors: _c5, decls: 4, vars: 0, template: function MatCardTitleGroup_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef(_c4);\n ɵngcc0.ɵɵelementStart(0, \"div\");\n ɵngcc0.ɵɵprojection(1);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵprojection(2, 1);\n ɵngcc0.ɵɵprojection(3, 2);\n }\n }, encapsulation: 2, changeDetection: 0 });\n return MatCardTitleGroup;\n})();\nlet MatCardModule = /*@__PURE__*/ (() => {\n class MatCardModule {\n }\n MatCardModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: MatCardModule });\n MatCardModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ factory: function MatCardModule_Factory(t) { return new (t || MatCardModule)(); }, imports: [[MatCommonModule], MatCommonModule] });\n return MatCardModule;\n})();\n/*@__PURE__*/ (function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(MatCardModule, { declarations: function () { return [MatCard, MatCardHeader, MatCardTitleGroup, MatCardContent, MatCardTitle, MatCardSubtitle, MatCardActions, MatCardFooter, MatCardSmImage, MatCardMdImage, MatCardLgImage, MatCardImage, MatCardXlImage, MatCardAvatar]; }, imports: function () { return [MatCommonModule]; }, exports: function () { return [MatCard, MatCardHeader, MatCardTitleGroup, MatCardContent, MatCardTitle, MatCardSubtitle, MatCardActions, MatCardFooter, MatCardSmImage, MatCardMdImage, MatCardLgImage, MatCardImage, MatCardXlImage, MatCardAvatar, MatCommonModule]; } }); })();\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 * Generated bundle index. Do not edit.\n */\nexport { MatCard, MatCardActions, MatCardAvatar, MatCardContent, MatCardFooter, MatCardHeader, MatCardImage, MatCardLgImage, MatCardMdImage, MatCardModule, MatCardSmImage, MatCardSubtitle, MatCardTitle, MatCardTitleGroup, MatCardXlImage };\n\n\n\n" }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular\\material\\__ivy_ngcc__\\fesm2015\\tabs.js", "name": "./node_modules/@angular/material/__ivy_ngcc__/fesm2015/tabs.js", "index": 511, "index2": 509, "size": 101568, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [], "issuer": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.module.ts", "issuerId": null, "issuerName": "./src/app/custom-elements/code/code-tabs.module.ts", "issuerPath": [ { "id": 0, "identifier": "multi C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "multi ./src/main.ts", "profile": { "factory": 1, "building": 4 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "./src/main.ts", "profile": { "factory": 1577, "building": 684 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\app.module.ts", "name": "./src/app/app.module.ts", "profile": { "factory": 7434, "building": 6719, "dependencies": 19440 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\custom-elements.module.ts", "name": "./src/app/custom-elements/custom-elements.module.ts", "profile": { "factory": 26179, "building": 975, "dependencies": 19070 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "name": "./src/app/custom-elements/element-registry.ts", "profile": { "factory": 6786, "building": 1923, "dependencies": 1080 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.module.ts", "name": "./src/app/custom-elements/code/code-tabs.module.ts", "profile": { "factory": 3142, "building": 22, "dependencies": 2295 } } ], "profile": { "factory": 4129, "building": 938, "dependencies": 2786 }, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.module.ts", "module": "./src/app/custom-elements/code/code-tabs.module.ts", "moduleName": "./src/app/custom-elements/code/code-tabs.module.ts", "type": "harmony side effect evaluation", "userRequest": "@angular/material/tabs", "loc": "4:0-55" }, { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.component.ts", "module": "./src/app/custom-elements/code/code-tabs.component.ts", "moduleName": "./src/app/custom-elements/code/code-tabs.component.ts", "type": "harmony side effect evaluation", "userRequest": "@angular/material/tabs", "loc": "4:0-45" }, { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.module.ts", "module": "./src/app/custom-elements/code/code-tabs.module.ts", "moduleName": "./src/app/custom-elements/code/code-tabs.module.ts", "type": "harmony import specifier", "userRequest": "@angular/material/tabs", "loc": "14:173-186" }, { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.component.ts", "module": "./src/app/custom-elements/code/code-tabs.component.ts", "moduleName": "./src/app/custom-elements/code/code-tabs.component.ts", "type": "harmony import specifier", "userRequest": "@angular/material/tabs", "loc": "106:36-50" }, { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.component.ts", "module": "./src/app/custom-elements/code/code-tabs.component.ts", "moduleName": "./src/app/custom-elements/code/code-tabs.component.ts", "type": "harmony import specifier", "userRequest": "@angular/material/tabs", "loc": "106:64-73" }, { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.component.ts", "module": "./src/app/custom-elements/code/code-tabs.component.ts", "moduleName": "./src/app/custom-elements/code/code-tabs.component.ts", "type": "harmony import specifier", "userRequest": "@angular/material/tabs", "loc": "106:75-89" } ], "usedExports": [ "MatTabsModule", "MatTabGroup", "MatTab", "MatTabLabel" ], "providedExports": [ "MAT_TABS_CONFIG", "MAT_TAB_GROUP", "MatInkBar", "MatTab", "MatTabBody", "MatTabBodyPortal", "MatTabChangeEvent", "MatTabContent", "MatTabGroup", "MatTabHeader", "MatTabLabel", "MatTabLabelWrapper", "MatTabLink", "MatTabNav", "MatTabsModule", "_MAT_INK_BAR_POSITIONER", "_MatTabBodyBase", "_MatTabGroupBase", "_MatTabHeaderBase", "_MatTabLinkBase", "_MatTabNavBase", "matTabsAnimations", "ɵangular_material_src_material_tabs_tabs_a", "ɵangular_material_src_material_tabs_tabs_b", "ɵangular_material_src_material_tabs_tabs_c", "ɵangular_material_src_material_tabs_tabs_d" ], "optimizationBailout": [], "depth": 6, "source": "import { FocusKeyManager, FocusMonitor, A11yModule } from '@angular/cdk/a11y';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { CdkPortal, TemplatePortal, CdkPortalOutlet, PortalModule } from '@angular/cdk/portal';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport { InjectionToken, Directive, ElementRef, NgZone, Inject, Optional, TemplateRef, Component, ChangeDetectionStrategy, ViewEncapsulation, ViewContainerRef, ContentChild, ViewChild, Input, ComponentFactoryResolver, forwardRef, EventEmitter, ChangeDetectorRef, Output, QueryList, ContentChildren, Attribute, NgModule } from '@angular/core';\nimport { mixinDisabled, mixinColor, mixinDisableRipple, mixinTabIndex, MAT_RIPPLE_GLOBAL_OPTIONS, RippleRenderer, MatCommonModule, MatRippleModule } from '@angular/material/core';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { Subject, Subscription, merge, fromEvent, of, timer } from 'rxjs';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport { startWith, distinctUntilChanged, takeUntil } from 'rxjs/operators';\nimport { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport { normalizePassiveListenerOptions, Platform } from '@angular/cdk/platform';\nimport { hasModifierKey, SPACE, ENTER } from '@angular/cdk/keycodes';\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/** Injection token for the MatInkBar's Positioner. */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/cdk/bidi';\nimport * as ɵngcc2 from '@angular/common';\nimport * as ɵngcc3 from '@angular/material/core';\nimport * as ɵngcc4 from '@angular/cdk/a11y';\nimport * as ɵngcc5 from '@angular/cdk/portal';\nimport * as ɵngcc6 from '@angular/cdk/scrolling';\nimport * as ɵngcc7 from '@angular/cdk/platform';\nimport * as ɵngcc8 from '@angular/cdk/observers';\nfunction MatTab_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵprojection(0);\n }\n}\nconst _c0 = [\"*\"];\nfunction MatTabBody_ng_template_2_Template(rf, ctx) { }\nconst _c1 = function (a0) { return { animationDuration: a0 }; };\nconst _c2 = function (a0, a1) { return { value: a0, params: a1 }; };\nconst _c3 = [\"tabBodyWrapper\"];\nconst _c4 = [\"tabHeader\"];\nfunction MatTabGroup_div_2_ng_template_2_ng_template_0_Template(rf, ctx) { }\nfunction MatTabGroup_div_2_ng_template_2_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, MatTabGroup_div_2_ng_template_2_ng_template_0_Template, 0, 0, \"ng-template\", 9);\n }\n if (rf & 2) {\n const tab_r4 = ɵngcc0.ɵɵnextContext().$implicit;\n ɵngcc0.ɵɵproperty(\"cdkPortalOutlet\", tab_r4.templateLabel);\n }\n}\nfunction MatTabGroup_div_2_ng_template_3_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n }\n if (rf & 2) {\n const tab_r4 = ɵngcc0.ɵɵnextContext().$implicit;\n ɵngcc0.ɵɵtextInterpolate(tab_r4.textLabel);\n }\n}\nfunction MatTabGroup_div_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r12 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 6);\n ɵngcc0.ɵɵlistener(\"click\", function MatTabGroup_div_2_Template_div_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r12); const tab_r4 = ctx.$implicit; const i_r5 = ctx.index; const ctx_r11 = ɵngcc0.ɵɵnextContext(); const _r0 = ɵngcc0.ɵɵreference(1); return ctx_r11._handleClick(tab_r4, _r0, i_r5); })(\"cdkFocusChange\", function MatTabGroup_div_2_Template_div_cdkFocusChange_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r12); const i_r5 = ctx.index; const ctx_r13 = ɵngcc0.ɵɵnextContext(); return ctx_r13._tabFocusChanged($event, i_r5); });\n ɵngcc0.ɵɵelementStart(1, \"div\", 7);\n ɵngcc0.ɵɵtemplate(2, MatTabGroup_div_2_ng_template_2_Template, 1, 1, \"ng-template\", 8);\n ɵngcc0.ɵɵtemplate(3, MatTabGroup_div_2_ng_template_3_Template, 1, 1, \"ng-template\", 8);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const tab_r4 = ctx.$implicit;\n const i_r5 = ctx.index;\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"mat-tab-label-active\", ctx_r1.selectedIndex == i_r5);\n ɵngcc0.ɵɵproperty(\"id\", ctx_r1._getTabLabelId(i_r5))(\"disabled\", tab_r4.disabled)(\"matRippleDisabled\", tab_r4.disabled || ctx_r1.disableRipple);\n ɵngcc0.ɵɵattribute(\"tabIndex\", ctx_r1._getTabIndex(tab_r4, i_r5))(\"aria-posinset\", i_r5 + 1)(\"aria-setsize\", ctx_r1._tabs.length)(\"aria-controls\", ctx_r1._getTabContentId(i_r5))(\"aria-selected\", ctx_r1.selectedIndex == i_r5)(\"aria-label\", tab_r4.ariaLabel || null)(\"aria-labelledby\", !tab_r4.ariaLabel && tab_r4.ariaLabelledby ? tab_r4.ariaLabelledby : null);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", tab_r4.templateLabel);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !tab_r4.templateLabel);\n }\n}\nfunction MatTabGroup_mat_tab_body_5_Template(rf, ctx) {\n if (rf & 1) {\n const _r17 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"mat-tab-body\", 10);\n ɵngcc0.ɵɵlistener(\"_onCentered\", function MatTabGroup_mat_tab_body_5_Template_mat_tab_body__onCentered_0_listener() { ɵngcc0.ɵɵrestoreView(_r17); const ctx_r16 = ɵngcc0.ɵɵnextContext(); return ctx_r16._removeTabBodyWrapperHeight(); })(\"_onCentering\", function MatTabGroup_mat_tab_body_5_Template_mat_tab_body__onCentering_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r17); const ctx_r18 = ɵngcc0.ɵɵnextContext(); return ctx_r18._setTabBodyWrapperHeight($event); });\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const tab_r14 = ctx.$implicit;\n const i_r15 = ctx.index;\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"mat-tab-body-active\", ctx_r3.selectedIndex == i_r15);\n ɵngcc0.ɵɵproperty(\"id\", ctx_r3._getTabContentId(i_r15))(\"content\", tab_r14.content)(\"position\", tab_r14.position)(\"origin\", tab_r14.origin)(\"animationDuration\", ctx_r3.animationDuration);\n ɵngcc0.ɵɵattribute(\"aria-labelledby\", ctx_r3._getTabLabelId(i_r15));\n }\n}\nconst _c5 = [\"tabListContainer\"];\nconst _c6 = [\"tabList\"];\nconst _c7 = [\"nextPaginator\"];\nconst _c8 = [\"previousPaginator\"];\nconst _c9 = [\"mat-tab-nav-bar\", \"\"];\nconst _MAT_INK_BAR_POSITIONER = /*@__PURE__*/ new InjectionToken('MatInkBarPositioner', {\n providedIn: 'root',\n factory: _MAT_INK_BAR_POSITIONER_FACTORY\n});\n/**\n * The default positioner function for the MatInkBar.\n * @docs-private\n */\nfunction _MAT_INK_BAR_POSITIONER_FACTORY() {\n const method = (element) => ({\n left: element ? (element.offsetLeft || 0) + 'px' : '0',\n width: element ? (element.offsetWidth || 0) + 'px' : '0',\n });\n return method;\n}\nlet MatInkBar = /*@__PURE__*/ (() => {\n class MatInkBar {\n constructor(_elementRef, _ngZone, _inkBarPositioner, _animationMode) {\n this._elementRef = _elementRef;\n this._ngZone = _ngZone;\n this._inkBarPositioner = _inkBarPositioner;\n this._animationMode = _animationMode;\n }\n /**\n * Calculates the styles from the provided element in order to align the ink-bar to that element.\n * Shows the ink bar if previously set as hidden.\n * @param element\n */\n alignToElement(element) {\n this.show();\n if (typeof requestAnimationFrame !== 'undefined') {\n this._ngZone.runOutsideAngular(() => {\n requestAnimationFrame(() => this._setStyles(element));\n });\n }\n else {\n this._setStyles(element);\n }\n }\n /** Shows the ink bar. */\n show() {\n this._elementRef.nativeElement.style.visibility = 'visible';\n }\n /** Hides the ink bar. */\n hide() {\n this._elementRef.nativeElement.style.visibility = 'hidden';\n }\n /**\n * Sets the proper styles to the ink bar element.\n * @param element\n */\n _setStyles(element) {\n const positions = this._inkBarPositioner(element);\n const inkBar = this._elementRef.nativeElement;\n inkBar.style.left = positions.left;\n inkBar.style.width = positions.width;\n }\n }\n MatInkBar.ɵfac = function MatInkBar_Factory(t) { return new (t || MatInkBar)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(_MAT_INK_BAR_POSITIONER), ɵngcc0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8)); };\n MatInkBar.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MatInkBar, selectors: [[\"mat-ink-bar\"]], hostAttrs: [1, \"mat-ink-bar\"], hostVars: 2, hostBindings: function MatInkBar_HostBindings(rf, ctx) {\n if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\");\n }\n } });\n return MatInkBar;\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 * Injection token that can be used to reference instances of `MatTabContent`. It serves as\n * alternative token to the actual `MatTabContent` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst MAT_TAB_CONTENT = /*@__PURE__*/ new InjectionToken('MatTabContent');\nlet MatTabContent = /*@__PURE__*/ (() => {\n class MatTabContent {\n constructor(\n /** Content for the tab. */ template) {\n this.template = template;\n }\n }\n MatTabContent.ɵfac = function MatTabContent_Factory(t) { return new (t || MatTabContent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\n MatTabContent.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MatTabContent, selectors: [[\"\", \"matTabContent\", \"\"]], features: [/*@__PURE__*/ ɵngcc0.ɵɵProvidersFeature([{ provide: MAT_TAB_CONTENT, useExisting: MatTabContent }])] });\n return MatTabContent;\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 * Injection token that can be used to reference instances of `MatTabLabel`. It serves as\n * alternative token to the actual `MatTabLabel` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst MAT_TAB_LABEL = /*@__PURE__*/ new InjectionToken('MatTabLabel');\nlet MatTabLabel = /*@__PURE__*/ (() => {\n class MatTabLabel extends CdkPortal {\n }\n MatTabLabel.ɵfac = function MatTabLabel_Factory(t) { return ɵMatTabLabel_BaseFactory(t || MatTabLabel); };\n MatTabLabel.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MatTabLabel, selectors: [[\"\", \"mat-tab-label\", \"\"], [\"\", \"matTabLabel\", \"\"]], features: [/*@__PURE__*/ ɵngcc0.ɵɵProvidersFeature([{ provide: MAT_TAB_LABEL, useExisting: MatTabLabel }]), ɵngcc0.ɵɵInheritDefinitionFeature] });\n return MatTabLabel;\n})();\nconst ɵMatTabLabel_BaseFactory = /*@__PURE__*/ /*@__PURE__*/ ɵngcc0.ɵɵgetInheritedFactory(MatTabLabel);\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// Boilerplate for applying mixins to MatTab.\n/** @docs-private */\nclass MatTabBase {\n}\nconst _MatTabMixinBase = /*@__PURE__*/ mixinDisabled(MatTabBase);\n/**\n * Used to provide a tab group to a tab without causing a circular dependency.\n * @docs-private\n */\nconst MAT_TAB_GROUP = /*@__PURE__*/ new InjectionToken('MAT_TAB_GROUP');\nlet MatTab = /*@__PURE__*/ (() => {\n class MatTab extends _MatTabMixinBase {\n constructor(_viewContainerRef, _closestTabGroup) {\n super();\n this._viewContainerRef = _viewContainerRef;\n this._closestTabGroup = _closestTabGroup;\n /** Plain text label for the tab, used when there is no template label. */\n this.textLabel = '';\n /** Portal that will be the hosted content of the tab */\n this._contentPortal = null;\n /** Emits whenever the internal state of the tab changes. */\n this._stateChanges = new Subject();\n /**\n * The relatively indexed position where 0 represents the center, negative is left, and positive\n * represents the right.\n */\n this.position = null;\n /**\n * The initial relatively index origin of the tab if it was created and selected after there\n * was already a selected tab. Provides context of what position the tab should originate from.\n */\n this.origin = null;\n /**\n * Whether the tab is currently active.\n */\n this.isActive = false;\n }\n /** Content for the tab label given by ``. */\n get templateLabel() { return this._templateLabel; }\n set templateLabel(value) { this._setTemplateLabelInput(value); }\n /** @docs-private */\n get content() {\n return this._contentPortal;\n }\n ngOnChanges(changes) {\n if (changes.hasOwnProperty('textLabel') || changes.hasOwnProperty('disabled')) {\n this._stateChanges.next();\n }\n }\n ngOnDestroy() {\n this._stateChanges.complete();\n }\n ngOnInit() {\n this._contentPortal = new TemplatePortal(this._explicitContent || this._implicitContent, this._viewContainerRef);\n }\n /**\n * This has been extracted to a util because of TS 4 and VE.\n * View Engine doesn't support property rename inheritance.\n * TS 4.0 doesn't allow properties to override accessors or vice-versa.\n * @docs-private\n */\n _setTemplateLabelInput(value) {\n // Only update the templateLabel via query if there is actually\n // a MatTabLabel found. This works around an issue where a user may have\n // manually set `templateLabel` during creation mode, which would then get clobbered\n // by `undefined` when this query resolves.\n if (value) {\n this._templateLabel = value;\n }\n }\n }\n MatTab.ɵfac = function MatTab_Factory(t) { return new (t || MatTab)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(MAT_TAB_GROUP)); };\n MatTab.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: MatTab, selectors: [[\"mat-tab\"]], contentQueries: function MatTab_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, MAT_TAB_LABEL, 1);\n ɵngcc0.ɵɵcontentQuery(dirIndex, MAT_TAB_CONTENT, 3, TemplateRef);\n }\n if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.templateLabel = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._explicitContent = _t.first);\n }\n }, viewQuery: function MatTab_Query(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(TemplateRef, 3);\n }\n if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._implicitContent = _t.first);\n }\n }, inputs: { disabled: \"disabled\", textLabel: [\"label\", \"textLabel\"], ariaLabel: [\"aria-label\", \"ariaLabel\"], ariaLabelledby: [\"aria-labelledby\", \"ariaLabelledby\"] }, exportAs: [\"matTab\"], features: [ɵngcc0.ɵɵInheritDefinitionFeature, ɵngcc0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function MatTab_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵtemplate(0, MatTab_ng_template_0_Template, 1, 0, \"ng-template\");\n }\n }, encapsulation: 2 });\n return MatTab;\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 * Animations used by the Material tabs.\n * @docs-private\n */\nconst matTabsAnimations = {\n /** Animation translates a tab along the X axis. */\n translateTab: /*@__PURE__*/ trigger('translateTab', [\n // Note: transitions to `none` instead of 0, because some browsers might blur the content.\n /*@__PURE__*/ state('center, void, left-origin-center, right-origin-center', /*@__PURE__*/ style({ transform: 'none' })),\n // If the tab is either on the left or right, we additionally add a `min-height` of 1px\n // in order to ensure that the element has a height before its state changes. This is\n // necessary because Chrome does seem to skip the transition in RTL mode if the element does\n // not have a static height and is not rendered. See related issue: #9465\n /*@__PURE__*/ state('left', /*@__PURE__*/ style({ transform: 'translate3d(-100%, 0, 0)', minHeight: '1px' })),\n /*@__PURE__*/ state('right', /*@__PURE__*/ style({ transform: 'translate3d(100%, 0, 0)', minHeight: '1px' })),\n /*@__PURE__*/ transition('* => left, * => right, left => center, right => center', /*@__PURE__*/ animate('{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)')),\n /*@__PURE__*/ transition('void => left-origin-center', [\n /*@__PURE__*/ style({ transform: 'translate3d(-100%, 0, 0)' }),\n /*@__PURE__*/ animate('{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)')\n ]),\n /*@__PURE__*/ transition('void => right-origin-center', [\n /*@__PURE__*/ style({ transform: 'translate3d(100%, 0, 0)' }),\n /*@__PURE__*/ animate('{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)')\n ])\n ])\n};\nlet MatTabBodyPortal = /*@__PURE__*/ (() => {\n class MatTabBodyPortal extends CdkPortalOutlet {\n constructor(componentFactoryResolver, viewContainerRef, _host, _document) {\n super(componentFactoryResolver, viewContainerRef, _document);\n this._host = _host;\n /** Subscription to events for when the tab body begins centering. */\n this._centeringSub = Subscription.EMPTY;\n /** Subscription to events for when the tab body finishes leaving from center position. */\n this._leavingSub = Subscription.EMPTY;\n }\n /** Set initial visibility or set up subscription for changing visibility. */\n ngOnInit() {\n super.ngOnInit();\n this._centeringSub = this._host._beforeCentering\n .pipe(startWith(this._host._isCenterPosition(this._host._position)))\n .subscribe((isCentering) => {\n if (isCentering && !this.hasAttached()) {\n this.attach(this._host._content);\n }\n });\n this._leavingSub = this._host._afterLeavingCenter.subscribe(() => {\n this.detach();\n });\n }\n /** Clean up centering subscription. */\n ngOnDestroy() {\n super.ngOnDestroy();\n this._centeringSub.unsubscribe();\n this._leavingSub.unsubscribe();\n }\n }\n MatTabBodyPortal.ɵfac = function MatTabBodyPortal_Factory(t) { return new (t || MatTabBodyPortal)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ComponentFactoryResolver), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(forwardRef(() => MatTabBody)), ɵngcc0.ɵɵdirectiveInject(DOCUMENT)); };\n MatTabBodyPortal.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MatTabBodyPortal, selectors: [[\"\", \"matTabBodyHost\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n return MatTabBodyPortal;\n})();\nlet _MatTabBodyBase = /*@__PURE__*/ (() => {\n class _MatTabBodyBase {\n constructor(_elementRef, _dir, changeDetectorRef) {\n this._elementRef = _elementRef;\n this._dir = _dir;\n /** Subscription to the directionality change observable. */\n this._dirChangeSubscription = Subscription.EMPTY;\n /** Emits when an animation on the tab is complete. */\n this._translateTabComplete = new Subject();\n /** Event emitted when the tab begins to animate towards the center as the active tab. */\n this._onCentering = new EventEmitter();\n /** Event emitted before the centering of the tab begins. */\n this._beforeCentering = new EventEmitter();\n /** Event emitted before the centering of the tab begins. */\n this._afterLeavingCenter = new EventEmitter();\n /** Event emitted when the tab completes its animation towards the center. */\n this._onCentered = new EventEmitter(true);\n // Note that the default value will always be overwritten by `MatTabBody`, but we need one\n // anyway to prevent the animations module from throwing an error if the body is used on its own.\n /** Duration for the tab's animation. */\n this.animationDuration = '500ms';\n if (_dir) {\n this._dirChangeSubscription = _dir.change.subscribe((dir) => {\n this._computePositionAnimationState(dir);\n changeDetectorRef.markForCheck();\n });\n }\n // Ensure that we get unique animation events, because the `.done` callback can get\n // invoked twice in some browsers. See https://github.com/angular/angular/issues/24084.\n this._translateTabComplete.pipe(distinctUntilChanged((x, y) => {\n return x.fromState === y.fromState && x.toState === y.toState;\n })).subscribe(event => {\n // If the transition to the center is complete, emit an event.\n if (this._isCenterPosition(event.toState) && this._isCenterPosition(this._position)) {\n this._onCentered.emit();\n }\n if (this._isCenterPosition(event.fromState) && !this._isCenterPosition(this._position)) {\n this._afterLeavingCenter.emit();\n }\n });\n }\n /** The shifted index position of the tab body, where zero represents the active center tab. */\n set position(position) {\n this._positionIndex = position;\n this._computePositionAnimationState();\n }\n /**\n * After initialized, check if the content is centered and has an origin. If so, set the\n * special position states that transition the tab from the left or right before centering.\n */\n ngOnInit() {\n if (this._position == 'center' && this.origin != null) {\n this._position = this._computePositionFromOrigin(this.origin);\n }\n }\n ngOnDestroy() {\n this._dirChangeSubscription.unsubscribe();\n this._translateTabComplete.complete();\n }\n _onTranslateTabStarted(event) {\n const isCentering = this._isCenterPosition(event.toState);\n this._beforeCentering.emit(isCentering);\n if (isCentering) {\n this._onCentering.emit(this._elementRef.nativeElement.clientHeight);\n }\n }\n /** The text direction of the containing app. */\n _getLayoutDirection() {\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\n }\n /** Whether the provided position state is considered center, regardless of origin. */\n _isCenterPosition(position) {\n return position == 'center' ||\n position == 'left-origin-center' ||\n position == 'right-origin-center';\n }\n /** Computes the position state that will be used for the tab-body animation trigger. */\n _computePositionAnimationState(dir = this._getLayoutDirection()) {\n if (this._positionIndex < 0) {\n this._position = dir == 'ltr' ? 'left' : 'right';\n }\n else if (this._positionIndex > 0) {\n this._position = dir == 'ltr' ? 'right' : 'left';\n }\n else {\n this._position = 'center';\n }\n }\n /**\n * Computes the position state based on the specified origin position. This is used if the\n * tab is becoming visible immediately after creation.\n */\n _computePositionFromOrigin(origin) {\n const dir = this._getLayoutDirection();\n if ((dir == 'ltr' && origin <= 0) || (dir == 'rtl' && origin > 0)) {\n return 'left-origin-center';\n }\n return 'right-origin-center';\n }\n }\n _MatTabBodyBase.ɵfac = function _MatTabBodyBase_Factory(t) { return new (t || _MatTabBodyBase)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.Directionality, 8), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\n _MatTabBodyBase.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: _MatTabBodyBase, inputs: { animationDuration: \"animationDuration\", position: \"position\", _content: [\"content\", \"_content\"], origin: \"origin\" }, outputs: { _onCentering: \"_onCentering\", _beforeCentering: \"_beforeCentering\", _afterLeavingCenter: \"_afterLeavingCenter\", _onCentered: \"_onCentered\" } });\n return _MatTabBodyBase;\n})();\nlet MatTabBody = /*@__PURE__*/ (() => {\n class MatTabBody extends _MatTabBodyBase {\n constructor(elementRef, dir, changeDetectorRef) {\n super(elementRef, dir, changeDetectorRef);\n }\n }\n MatTabBody.ɵfac = function MatTabBody_Factory(t) { return new (t || MatTabBody)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.Directionality, 8), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\n MatTabBody.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: MatTabBody, selectors: [[\"mat-tab-body\"]], viewQuery: function MatTabBody_Query(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(CdkPortalOutlet, 1);\n }\n if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._portalHost = _t.first);\n }\n }, hostAttrs: [1, \"mat-tab-body\"], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 3, vars: 6, consts: [[\"cdkScrollable\", \"\", 1, \"mat-tab-body-content\"], [\"content\", \"\"], [\"matTabBodyHost\", \"\"]], template: function MatTabBody_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 0, 1);\n ɵngcc0.ɵɵlistener(\"@translateTab.start\", function MatTabBody_Template_div_animation_translateTab_start_0_listener($event) { return ctx._onTranslateTabStarted($event); })(\"@translateTab.done\", function MatTabBody_Template_div_animation_translateTab_done_0_listener($event) { return ctx._translateTabComplete.next($event); });\n ɵngcc0.ɵɵtemplate(2, MatTabBody_ng_template_2_Template, 0, 0, \"ng-template\", 2);\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"@translateTab\", ɵngcc0.ɵɵpureFunction2(3, _c2, ctx._position, ɵngcc0.ɵɵpureFunction1(1, _c1, ctx.animationDuration)));\n }\n }, directives: [MatTabBodyPortal], styles: [\".mat-tab-body-content{height:100%;overflow:auto}.mat-tab-group-dynamic-height .mat-tab-body-content{overflow:hidden}\\n\"], encapsulation: 2, data: { animation: [matTabsAnimations.translateTab] } });\n return MatTabBody;\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/** Injection token that can be used to provide the default options the tabs module. */\nconst MAT_TABS_CONFIG = /*@__PURE__*/ new InjectionToken('MAT_TABS_CONFIG');\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/** Used to generate unique ID's for each tab component */\nlet nextId = 0;\n/** A simple change event emitted on focus or selection changes. */\nclass MatTabChangeEvent {\n}\n// Boilerplate for applying mixins to MatTabGroup.\n/** @docs-private */\nclass MatTabGroupMixinBase {\n constructor(_elementRef) {\n this._elementRef = _elementRef;\n }\n}\nconst _MatTabGroupMixinBase = /*@__PURE__*/ mixinColor(/*@__PURE__*/ mixinDisableRipple(MatTabGroupMixinBase), 'primary');\nlet _MatTabGroupBase = /*@__PURE__*/ (() => {\n class _MatTabGroupBase extends _MatTabGroupMixinBase {\n constructor(elementRef, _changeDetectorRef, defaultConfig, _animationMode) {\n super(elementRef);\n this._changeDetectorRef = _changeDetectorRef;\n this._animationMode = _animationMode;\n /** All of the tabs that belong to the group. */\n this._tabs = new QueryList();\n /** The tab index that should be selected after the content has been checked. */\n this._indexToSelect = 0;\n /** Snapshot of the height of the tab body wrapper before another tab is activated. */\n this._tabBodyWrapperHeight = 0;\n /** Subscription to tabs being added/removed. */\n this._tabsSubscription = Subscription.EMPTY;\n /** Subscription to changes in the tab labels. */\n this._tabLabelSubscription = Subscription.EMPTY;\n this._selectedIndex = null;\n /** Position of the tab header. */\n this.headerPosition = 'above';\n /** Output to enable support for two-way binding on `[(selectedIndex)]` */\n this.selectedIndexChange = new EventEmitter();\n /** Event emitted when focus has changed within a tab group. */\n this.focusChange = new EventEmitter();\n /** Event emitted when the body animation has completed */\n this.animationDone = new EventEmitter();\n /** Event emitted when the tab selection has changed. */\n this.selectedTabChange = new EventEmitter(true);\n this._groupId = nextId++;\n this.animationDuration = defaultConfig && defaultConfig.animationDuration ?\n defaultConfig.animationDuration : '500ms';\n this.disablePagination = defaultConfig && defaultConfig.disablePagination != null ?\n defaultConfig.disablePagination : false;\n this.dynamicHeight = defaultConfig && defaultConfig.dynamicHeight != null ?\n defaultConfig.dynamicHeight : false;\n }\n /** Whether the tab group should grow to the size of the active tab. */\n get dynamicHeight() { return this._dynamicHeight; }\n set dynamicHeight(value) { this._dynamicHeight = coerceBooleanProperty(value); }\n /** The index of the active tab. */\n get selectedIndex() { return this._selectedIndex; }\n set selectedIndex(value) {\n this._indexToSelect = coerceNumberProperty(value, null);\n }\n /** Duration for the tab animation. Will be normalized to milliseconds if no units are set. */\n get animationDuration() { return this._animationDuration; }\n set animationDuration(value) {\n this._animationDuration = /^\\d+$/.test(value) ? value + 'ms' : value;\n }\n /** Background color of the tab group. */\n get backgroundColor() { return this._backgroundColor; }\n set backgroundColor(value) {\n const nativeElement = this._elementRef.nativeElement;\n nativeElement.classList.remove(`mat-background-${this.backgroundColor}`);\n if (value) {\n nativeElement.classList.add(`mat-background-${value}`);\n }\n this._backgroundColor = value;\n }\n /**\n * After the content is checked, this component knows what tabs have been defined\n * and what the selected index should be. This is where we can know exactly what position\n * each tab should be in according to the new selected index, and additionally we know how\n * a new selected tab should transition in (from the left or right).\n */\n ngAfterContentChecked() {\n // Don't clamp the `indexToSelect` immediately in the setter because it can happen that\n // the amount of tabs changes before the actual change detection runs.\n const indexToSelect = this._indexToSelect = this._clampTabIndex(this._indexToSelect);\n // If there is a change in selected index, emit a change event. Should not trigger if\n // the selected index has not yet been initialized.\n if (this._selectedIndex != indexToSelect) {\n const isFirstRun = this._selectedIndex == null;\n if (!isFirstRun) {\n this.selectedTabChange.emit(this._createChangeEvent(indexToSelect));\n }\n // Changing these values after change detection has run\n // since the checked content may contain references to them.\n Promise.resolve().then(() => {\n this._tabs.forEach((tab, index) => tab.isActive = index === indexToSelect);\n if (!isFirstRun) {\n this.selectedIndexChange.emit(indexToSelect);\n }\n });\n }\n // Setup the position for each tab and optionally setup an origin on the next selected tab.\n this._tabs.forEach((tab, index) => {\n tab.position = index - indexToSelect;\n // If there is already a selected tab, then set up an origin for the next selected tab\n // if it doesn't have one already.\n if (this._selectedIndex != null && tab.position == 0 && !tab.origin) {\n tab.origin = indexToSelect - this._selectedIndex;\n }\n });\n if (this._selectedIndex !== indexToSelect) {\n this._selectedIndex = indexToSelect;\n this._changeDetectorRef.markForCheck();\n }\n }\n ngAfterContentInit() {\n this._subscribeToAllTabChanges();\n this._subscribeToTabLabels();\n // Subscribe to changes in the amount of tabs, in order to be\n // able to re-render the content as new tabs are added or removed.\n this._tabsSubscription = this._tabs.changes.subscribe(() => {\n const indexToSelect = this._clampTabIndex(this._indexToSelect);\n // Maintain the previously-selected tab if a new tab is added or removed and there is no\n // explicit change that selects a different tab.\n if (indexToSelect === this._selectedIndex) {\n const tabs = this._tabs.toArray();\n for (let i = 0; i < tabs.length; i++) {\n if (tabs[i].isActive) {\n // Assign both to the `_indexToSelect` and `_selectedIndex` so we don't fire a changed\n // event, otherwise the consumer may end up in an infinite loop in some edge cases like\n // adding a tab within the `selectedIndexChange` event.\n this._indexToSelect = this._selectedIndex = i;\n break;\n }\n }\n }\n this._changeDetectorRef.markForCheck();\n });\n }\n /** Listens to changes in all of the tabs. */\n _subscribeToAllTabChanges() {\n // Since we use a query with `descendants: true` to pick up the tabs, we may end up catching\n // some that are inside of nested tab groups. We filter them out manually by checking that\n // the closest group to the tab is the current one.\n this._allTabs.changes\n .pipe(startWith(this._allTabs))\n .subscribe((tabs) => {\n this._tabs.reset(tabs.filter(tab => tab._closestTabGroup === this));\n this._tabs.notifyOnChanges();\n });\n }\n ngOnDestroy() {\n this._tabs.destroy();\n this._tabsSubscription.unsubscribe();\n this._tabLabelSubscription.unsubscribe();\n }\n /** Re-aligns the ink bar to the selected tab element. */\n realignInkBar() {\n if (this._tabHeader) {\n this._tabHeader._alignInkBarToSelectedTab();\n }\n }\n _focusChanged(index) {\n this.focusChange.emit(this._createChangeEvent(index));\n }\n _createChangeEvent(index) {\n const event = new MatTabChangeEvent;\n event.index = index;\n if (this._tabs && this._tabs.length) {\n event.tab = this._tabs.toArray()[index];\n }\n return event;\n }\n /**\n * Subscribes to changes in the tab labels. This is needed, because the @Input for the label is\n * on the MatTab component, whereas the data binding is inside the MatTabGroup. In order for the\n * binding to be updated, we need to subscribe to changes in it and trigger change detection\n * manually.\n */\n _subscribeToTabLabels() {\n if (this._tabLabelSubscription) {\n this._tabLabelSubscription.unsubscribe();\n }\n this._tabLabelSubscription = merge(...this._tabs.map(tab => tab._stateChanges))\n .subscribe(() => this._changeDetectorRef.markForCheck());\n }\n /** Clamps the given index to the bounds of 0 and the tabs length. */\n _clampTabIndex(index) {\n // Note the `|| 0`, which ensures that values like NaN can't get through\n // and which would otherwise throw the component into an infinite loop\n // (since Math.max(NaN, 0) === NaN).\n return Math.min(this._tabs.length - 1, Math.max(index || 0, 0));\n }\n /** Returns a unique id for each tab label element */\n _getTabLabelId(i) {\n return `mat-tab-label-${this._groupId}-${i}`;\n }\n /** Returns a unique id for each tab content element */\n _getTabContentId(i) {\n return `mat-tab-content-${this._groupId}-${i}`;\n }\n /**\n * Sets the height of the body wrapper to the height of the activating tab if dynamic\n * height property is true.\n */\n _setTabBodyWrapperHeight(tabHeight) {\n if (!this._dynamicHeight || !this._tabBodyWrapperHeight) {\n return;\n }\n const wrapper = this._tabBodyWrapper.nativeElement;\n wrapper.style.height = this._tabBodyWrapperHeight + 'px';\n // This conditional forces the browser to paint the height so that\n // the animation to the new height can have an origin.\n if (this._tabBodyWrapper.nativeElement.offsetHeight) {\n wrapper.style.height = tabHeight + 'px';\n }\n }\n /** Removes the height of the tab body wrapper. */\n _removeTabBodyWrapperHeight() {\n const wrapper = this._tabBodyWrapper.nativeElement;\n this._tabBodyWrapperHeight = wrapper.clientHeight;\n wrapper.style.height = '';\n this.animationDone.emit();\n }\n /** Handle click events, setting new selected index if appropriate. */\n _handleClick(tab, tabHeader, index) {\n if (!tab.disabled) {\n this.selectedIndex = tabHeader.focusIndex = index;\n }\n }\n /** Retrieves the tabindex for the tab. */\n _getTabIndex(tab, idx) {\n if (tab.disabled) {\n return null;\n }\n return this.selectedIndex === idx ? 0 : -1;\n }\n /** Callback for when the focused state of a tab has changed. */\n _tabFocusChanged(focusOrigin, index) {\n if (focusOrigin) {\n this._tabHeader.focusIndex = index;\n }\n }\n }\n _MatTabGroupBase.ɵfac = function _MatTabGroupBase_Factory(t) { return new (t || _MatTabGroupBase)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(MAT_TABS_CONFIG, 8), ɵngcc0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8)); };\n _MatTabGroupBase.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: _MatTabGroupBase, inputs: { headerPosition: \"headerPosition\", animationDuration: \"animationDuration\", disablePagination: \"disablePagination\", dynamicHeight: \"dynamicHeight\", selectedIndex: \"selectedIndex\", backgroundColor: \"backgroundColor\" }, outputs: { selectedIndexChange: \"selectedIndexChange\", focusChange: \"focusChange\", animationDone: \"animationDone\", selectedTabChange: \"selectedTabChange\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n return _MatTabGroupBase;\n})();\nlet MatTabGroup = /*@__PURE__*/ (() => {\n class MatTabGroup extends _MatTabGroupBase {\n constructor(elementRef, changeDetectorRef, defaultConfig, animationMode) {\n super(elementRef, changeDetectorRef, defaultConfig, animationMode);\n }\n }\n MatTabGroup.ɵfac = function MatTabGroup_Factory(t) { return new (t || MatTabGroup)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(MAT_TABS_CONFIG, 8), ɵngcc0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8)); };\n MatTabGroup.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: MatTabGroup, selectors: [[\"mat-tab-group\"]], contentQueries: function MatTabGroup_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, MatTab, 1);\n }\n if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._allTabs = _t);\n }\n }, viewQuery: function MatTabGroup_Query(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c3, 1);\n ɵngcc0.ɵɵviewQuery(_c4, 1);\n }\n if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._tabBodyWrapper = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._tabHeader = _t.first);\n }\n }, hostAttrs: [1, \"mat-tab-group\"], hostVars: 4, hostBindings: function MatTabGroup_HostBindings(rf, ctx) {\n if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"mat-tab-group-dynamic-height\", ctx.dynamicHeight)(\"mat-tab-group-inverted-header\", ctx.headerPosition === \"below\");\n }\n }, inputs: { color: \"color\", disableRipple: \"disableRipple\" }, exportAs: [\"matTabGroup\"], features: [/*@__PURE__*/ ɵngcc0.ɵɵProvidersFeature([{\n provide: MAT_TAB_GROUP,\n useExisting: MatTabGroup\n }]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 6, vars: 7, consts: [[3, \"selectedIndex\", \"disableRipple\", \"disablePagination\", \"indexFocused\", \"selectFocusedIndex\"], [\"tabHeader\", \"\"], [\"class\", \"mat-tab-label mat-focus-indicator\", \"role\", \"tab\", \"matTabLabelWrapper\", \"\", \"mat-ripple\", \"\", \"cdkMonitorElementFocus\", \"\", 3, \"id\", \"mat-tab-label-active\", \"disabled\", \"matRippleDisabled\", \"click\", \"cdkFocusChange\", 4, \"ngFor\", \"ngForOf\"], [1, \"mat-tab-body-wrapper\"], [\"tabBodyWrapper\", \"\"], [\"role\", \"tabpanel\", 3, \"id\", \"mat-tab-body-active\", \"content\", \"position\", \"origin\", \"animationDuration\", \"_onCentered\", \"_onCentering\", 4, \"ngFor\", \"ngForOf\"], [\"role\", \"tab\", \"matTabLabelWrapper\", \"\", \"mat-ripple\", \"\", \"cdkMonitorElementFocus\", \"\", 1, \"mat-tab-label\", \"mat-focus-indicator\", 3, \"id\", \"disabled\", \"matRippleDisabled\", \"click\", \"cdkFocusChange\"], [1, \"mat-tab-label-content\"], [3, \"ngIf\"], [3, \"cdkPortalOutlet\"], [\"role\", \"tabpanel\", 3, \"id\", \"content\", \"position\", \"origin\", \"animationDuration\", \"_onCentered\", \"_onCentering\"]], template: function MatTabGroup_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"mat-tab-header\", 0, 1);\n ɵngcc0.ɵɵlistener(\"indexFocused\", function MatTabGroup_Template_mat_tab_header_indexFocused_0_listener($event) { return ctx._focusChanged($event); })(\"selectFocusedIndex\", function MatTabGroup_Template_mat_tab_header_selectFocusedIndex_0_listener($event) { return ctx.selectedIndex = $event; });\n ɵngcc0.ɵɵtemplate(2, MatTabGroup_div_2_Template, 4, 14, \"div\", 2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(3, \"div\", 3, 4);\n ɵngcc0.ɵɵtemplate(5, MatTabGroup_mat_tab_body_5_Template, 1, 8, \"mat-tab-body\", 5);\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"selectedIndex\", ctx.selectedIndex || 0)(\"disableRipple\", ctx.disableRipple)(\"disablePagination\", ctx.disablePagination);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx._tabs);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\");\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx._tabs);\n }\n }, directives: function () { return [MatTabHeader, ɵngcc2.NgForOf, MatTabLabelWrapper, ɵngcc3.MatRipple, ɵngcc4.CdkMonitorFocus, ɵngcc2.NgIf, ɵngcc5.CdkPortalOutlet, MatTabBody]; }, styles: [\".mat-tab-group{display:flex;flex-direction:column}.mat-tab-group.mat-tab-group-inverted-header{flex-direction:column-reverse}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:none}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}.cdk-high-contrast-active .mat-tab-label:focus{outline:dotted 2px;outline-offset:-2px}.mat-tab-label.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-label.mat-tab-disabled{opacity:.5}.mat-tab-label .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-label{opacity:1}@media(max-width: 599px){.mat-tab-label{padding:0 12px}}@media(max-width: 959px){.mat-tab-label{padding:0 12px}}.mat-tab-group[mat-stretch-tabs]>.mat-tab-header .mat-tab-label{flex-basis:0;flex-grow:1}.mat-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable.mat-tab-body-wrapper{transition:none;animation:none}.mat-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;flex-basis:100%}.mat-tab-body.mat-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-tab-group.mat-tab-group-dynamic-height .mat-tab-body.mat-tab-body-active{overflow-y:hidden}\\n\"], encapsulation: 2 });\n return MatTabGroup;\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// Boilerplate for applying mixins to MatTabLabelWrapper.\n/** @docs-private */\nclass MatTabLabelWrapperBase {\n}\nconst _MatTabLabelWrapperMixinBase = /*@__PURE__*/ mixinDisabled(MatTabLabelWrapperBase);\nlet MatTabLabelWrapper = /*@__PURE__*/ (() => {\n class MatTabLabelWrapper extends _MatTabLabelWrapperMixinBase {\n constructor(elementRef) {\n super();\n this.elementRef = elementRef;\n }\n /** Sets focus on the wrapper element */\n focus() {\n this.elementRef.nativeElement.focus();\n }\n getOffsetLeft() {\n return this.elementRef.nativeElement.offsetLeft;\n }\n getOffsetWidth() {\n return this.elementRef.nativeElement.offsetWidth;\n }\n }\n MatTabLabelWrapper.ɵfac = function MatTabLabelWrapper_Factory(t) { return new (t || MatTabLabelWrapper)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\n MatTabLabelWrapper.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MatTabLabelWrapper, selectors: [[\"\", \"matTabLabelWrapper\", \"\"]], hostVars: 3, hostBindings: function MatTabLabelWrapper_HostBindings(rf, ctx) {\n if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"aria-disabled\", !!ctx.disabled);\n ɵngcc0.ɵɵclassProp(\"mat-tab-disabled\", ctx.disabled);\n }\n }, inputs: { disabled: \"disabled\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n return MatTabLabelWrapper;\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/** Config used to bind passive event listeners */\nconst passiveEventListenerOptions = /*@__PURE__*/ normalizePassiveListenerOptions({ passive: true });\n/**\n * The distance in pixels that will be overshot when scrolling a tab label into view. This helps\n * provide a small affordance to the label next to it.\n */\nconst EXAGGERATED_OVERSCROLL = 60;\n/**\n * Amount of milliseconds to wait before starting to scroll the header automatically.\n * Set a little conservatively in order to handle fake events dispatched on touch devices.\n */\nconst HEADER_SCROLL_DELAY = 650;\n/**\n * Interval in milliseconds at which to scroll the header\n * while the user is holding their pointer.\n */\nconst HEADER_SCROLL_INTERVAL = 100;\nlet MatPaginatedTabHeader = /*@__PURE__*/ (() => {\n class MatPaginatedTabHeader {\n constructor(_elementRef, _changeDetectorRef, _viewportRuler, _dir, _ngZone, _platform, _animationMode) {\n this._elementRef = _elementRef;\n this._changeDetectorRef = _changeDetectorRef;\n this._viewportRuler = _viewportRuler;\n this._dir = _dir;\n this._ngZone = _ngZone;\n this._platform = _platform;\n this._animationMode = _animationMode;\n /** The distance in pixels that the tab labels should be translated to the left. */\n this._scrollDistance = 0;\n /** Whether the header should scroll to the selected index after the view has been checked. */\n this._selectedIndexChanged = false;\n /** Emits when the component is destroyed. */\n this._destroyed = new Subject();\n /** Whether the controls for pagination should be displayed */\n this._showPaginationControls = false;\n /** Whether the tab list can be scrolled more towards the end of the tab label list. */\n this._disableScrollAfter = true;\n /** Whether the tab list can be scrolled more towards the beginning of the tab label list. */\n this._disableScrollBefore = true;\n /** Stream that will stop the automated scrolling. */\n this._stopScrolling = new Subject();\n /**\n * Whether pagination should be disabled. This can be used to avoid unnecessary\n * layout recalculations if it's known that pagination won't be required.\n */\n this.disablePagination = false;\n this._selectedIndex = 0;\n /** Event emitted when the option is selected. */\n this.selectFocusedIndex = new EventEmitter();\n /** Event emitted when a label is focused. */\n this.indexFocused = new EventEmitter();\n // Bind the `mouseleave` event on the outside since it doesn't change anything in the view.\n _ngZone.runOutsideAngular(() => {\n fromEvent(_elementRef.nativeElement, 'mouseleave')\n .pipe(takeUntil(this._destroyed))\n .subscribe(() => {\n this._stopInterval();\n });\n });\n }\n /** The index of the active tab. */\n get selectedIndex() { return this._selectedIndex; }\n set selectedIndex(value) {\n value = coerceNumberProperty(value);\n if (this._selectedIndex != value) {\n this._selectedIndexChanged = true;\n this._selectedIndex = value;\n if (this._keyManager) {\n this._keyManager.updateActiveItem(value);\n }\n }\n }\n ngAfterViewInit() {\n // We need to handle these events manually, because we want to bind passive event listeners.\n fromEvent(this._previousPaginator.nativeElement, 'touchstart', passiveEventListenerOptions)\n .pipe(takeUntil(this._destroyed))\n .subscribe(() => {\n this._handlePaginatorPress('before');\n });\n fromEvent(this._nextPaginator.nativeElement, 'touchstart', passiveEventListenerOptions)\n .pipe(takeUntil(this._destroyed))\n .subscribe(() => {\n this._handlePaginatorPress('after');\n });\n }\n ngAfterContentInit() {\n const dirChange = this._dir ? this._dir.change : of(null);\n const resize = this._viewportRuler.change(150);\n const realign = () => {\n this.updatePagination();\n this._alignInkBarToSelectedTab();\n };\n this._keyManager = new FocusKeyManager(this._items)\n .withHorizontalOrientation(this._getLayoutDirection())\n .withHomeAndEnd()\n .withWrap();\n this._keyManager.updateActiveItem(this._selectedIndex);\n // Defer the first call in order to allow for slower browsers to lay out the elements.\n // This helps in cases where the user lands directly on a page with paginated tabs.\n typeof requestAnimationFrame !== 'undefined' ? requestAnimationFrame(realign) : realign();\n // On dir change or window resize, realign the ink bar and update the orientation of\n // the key manager if the direction has changed.\n merge(dirChange, resize, this._items.changes).pipe(takeUntil(this._destroyed)).subscribe(() => {\n // We need to defer this to give the browser some time to recalculate the element dimensions.\n Promise.resolve().then(realign);\n this._keyManager.withHorizontalOrientation(this._getLayoutDirection());\n });\n // If there is a change in the focus key manager we need to emit the `indexFocused`\n // event in order to provide a public event that notifies about focus changes. Also we realign\n // the tabs container by scrolling the new focused tab into the visible section.\n this._keyManager.change.pipe(takeUntil(this._destroyed)).subscribe(newFocusIndex => {\n this.indexFocused.emit(newFocusIndex);\n this._setTabFocus(newFocusIndex);\n });\n }\n ngAfterContentChecked() {\n // If the number of tab labels have changed, check if scrolling should be enabled\n if (this._tabLabelCount != this._items.length) {\n this.updatePagination();\n this._tabLabelCount = this._items.length;\n this._changeDetectorRef.markForCheck();\n }\n // If the selected index has changed, scroll to the label and check if the scrolling controls\n // should be disabled.\n if (this._selectedIndexChanged) {\n this._scrollToLabel(this._selectedIndex);\n this._checkScrollingControls();\n this._alignInkBarToSelectedTab();\n this._selectedIndexChanged = false;\n this._changeDetectorRef.markForCheck();\n }\n // If the scroll distance has been changed (tab selected, focused, scroll controls activated),\n // then translate the header to reflect this.\n if (this._scrollDistanceChanged) {\n this._updateTabScrollPosition();\n this._scrollDistanceChanged = false;\n this._changeDetectorRef.markForCheck();\n }\n }\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n this._stopScrolling.complete();\n }\n /** Handles keyboard events on the header. */\n _handleKeydown(event) {\n // We don't handle any key bindings with a modifier key.\n if (hasModifierKey(event)) {\n return;\n }\n switch (event.keyCode) {\n case ENTER:\n case SPACE:\n if (this.focusIndex !== this.selectedIndex) {\n this.selectFocusedIndex.emit(this.focusIndex);\n this._itemSelected(event);\n }\n break;\n default:\n this._keyManager.onKeydown(event);\n }\n }\n /**\n * Callback for when the MutationObserver detects that the content has changed.\n */\n _onContentChanges() {\n const textContent = this._elementRef.nativeElement.textContent;\n // We need to diff the text content of the header, because the MutationObserver callback\n // will fire even if the text content didn't change which is inefficient and is prone\n // to infinite loops if a poorly constructed expression is passed in (see #14249).\n if (textContent !== this._currentTextContent) {\n this._currentTextContent = textContent || '';\n // The content observer runs outside the `NgZone` by default, which\n // means that we need to bring the callback back in ourselves.\n this._ngZone.run(() => {\n this.updatePagination();\n this._alignInkBarToSelectedTab();\n this._changeDetectorRef.markForCheck();\n });\n }\n }\n /**\n * Updates the view whether pagination should be enabled or not.\n *\n * WARNING: Calling this method can be very costly in terms of performance. It should be called\n * as infrequently as possible from outside of the Tabs component as it causes a reflow of the\n * page.\n */\n updatePagination() {\n this._checkPaginationEnabled();\n this._checkScrollingControls();\n this._updateTabScrollPosition();\n }\n /** Tracks which element has focus; used for keyboard navigation */\n get focusIndex() {\n return this._keyManager ? this._keyManager.activeItemIndex : 0;\n }\n /** When the focus index is set, we must manually send focus to the correct label */\n set focusIndex(value) {\n if (!this._isValidIndex(value) || this.focusIndex === value || !this._keyManager) {\n return;\n }\n this._keyManager.setActiveItem(value);\n }\n /**\n * Determines if an index is valid. If the tabs are not ready yet, we assume that the user is\n * providing a valid index and return true.\n */\n _isValidIndex(index) {\n if (!this._items) {\n return true;\n }\n const tab = this._items ? this._items.toArray()[index] : null;\n return !!tab && !tab.disabled;\n }\n /**\n * Sets focus on the HTML element for the label wrapper and scrolls it into the view if\n * scrolling is enabled.\n */\n _setTabFocus(tabIndex) {\n if (this._showPaginationControls) {\n this._scrollToLabel(tabIndex);\n }\n if (this._items && this._items.length) {\n this._items.toArray()[tabIndex].focus();\n // Do not let the browser manage scrolling to focus the element, this will be handled\n // by using translation. In LTR, the scroll left should be 0. In RTL, the scroll width\n // should be the full width minus the offset width.\n const containerEl = this._tabListContainer.nativeElement;\n const dir = this._getLayoutDirection();\n if (dir == 'ltr') {\n containerEl.scrollLeft = 0;\n }\n else {\n containerEl.scrollLeft = containerEl.scrollWidth - containerEl.offsetWidth;\n }\n }\n }\n /** The layout direction of the containing app. */\n _getLayoutDirection() {\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\n }\n /** Performs the CSS transformation on the tab list that will cause the list to scroll. */\n _updateTabScrollPosition() {\n if (this.disablePagination) {\n return;\n }\n const scrollDistance = this.scrollDistance;\n const translateX = this._getLayoutDirection() === 'ltr' ? -scrollDistance : scrollDistance;\n // Don't use `translate3d` here because we don't want to create a new layer. A new layer\n // seems to cause flickering and overflow in Internet Explorer. For example, the ink bar\n // and ripples will exceed the boundaries of the visible tab bar.\n // See: https://github.com/angular/components/issues/10276\n // We round the `transform` here, because transforms with sub-pixel precision cause some\n // browsers to blur the content of the element.\n this._tabList.nativeElement.style.transform = `translateX(${Math.round(translateX)}px)`;\n // Setting the `transform` on IE will change the scroll offset of the parent, causing the\n // position to be thrown off in some cases. We have to reset it ourselves to ensure that\n // it doesn't get thrown off. Note that we scope it only to IE and Edge, because messing\n // with the scroll position throws off Chrome 71+ in RTL mode (see #14689).\n if (this._platform.TRIDENT || this._platform.EDGE) {\n this._tabListContainer.nativeElement.scrollLeft = 0;\n }\n }\n /** Sets the distance in pixels that the tab header should be transformed in the X-axis. */\n get scrollDistance() { return this._scrollDistance; }\n set scrollDistance(value) {\n this._scrollTo(value);\n }\n /**\n * Moves the tab list in the 'before' or 'after' direction (towards the beginning of the list or\n * the end of the list, respectively). The distance to scroll is computed to be a third of the\n * length of the tab list view window.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n */\n _scrollHeader(direction) {\n const viewLength = this._tabListContainer.nativeElement.offsetWidth;\n // Move the scroll distance one-third the length of the tab list's viewport.\n const scrollAmount = (direction == 'before' ? -1 : 1) * viewLength / 3;\n return this._scrollTo(this._scrollDistance + scrollAmount);\n }\n /** Handles click events on the pagination arrows. */\n _handlePaginatorClick(direction) {\n this._stopInterval();\n this._scrollHeader(direction);\n }\n /**\n * Moves the tab list such that the desired tab label (marked by index) is moved into view.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n */\n _scrollToLabel(labelIndex) {\n if (this.disablePagination) {\n return;\n }\n const selectedLabel = this._items ? this._items.toArray()[labelIndex] : null;\n if (!selectedLabel) {\n return;\n }\n // The view length is the visible width of the tab labels.\n const viewLength = this._tabListContainer.nativeElement.offsetWidth;\n const { offsetLeft, offsetWidth } = selectedLabel.elementRef.nativeElement;\n let labelBeforePos, labelAfterPos;\n if (this._getLayoutDirection() == 'ltr') {\n labelBeforePos = offsetLeft;\n labelAfterPos = labelBeforePos + offsetWidth;\n }\n else {\n labelAfterPos = this._tabList.nativeElement.offsetWidth - offsetLeft;\n labelBeforePos = labelAfterPos - offsetWidth;\n }\n const beforeVisiblePos = this.scrollDistance;\n const afterVisiblePos = this.scrollDistance + viewLength;\n if (labelBeforePos < beforeVisiblePos) {\n // Scroll header to move label to the before direction\n this.scrollDistance -= beforeVisiblePos - labelBeforePos + EXAGGERATED_OVERSCROLL;\n }\n else if (labelAfterPos > afterVisiblePos) {\n // Scroll header to move label to the after direction\n this.scrollDistance += labelAfterPos - afterVisiblePos + EXAGGERATED_OVERSCROLL;\n }\n }\n /**\n * Evaluate whether the pagination controls should be displayed. If the scroll width of the\n * tab list is wider than the size of the header container, then the pagination controls should\n * be shown.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n */\n _checkPaginationEnabled() {\n if (this.disablePagination) {\n this._showPaginationControls = false;\n }\n else {\n const isEnabled = this._tabList.nativeElement.scrollWidth > this._elementRef.nativeElement.offsetWidth;\n if (!isEnabled) {\n this.scrollDistance = 0;\n }\n if (isEnabled !== this._showPaginationControls) {\n this._changeDetectorRef.markForCheck();\n }\n this._showPaginationControls = isEnabled;\n }\n }\n /**\n * Evaluate whether the before and after controls should be enabled or disabled.\n * If the header is at the beginning of the list (scroll distance is equal to 0) then disable the\n * before button. If the header is at the end of the list (scroll distance is equal to the\n * maximum distance we can scroll), then disable the after button.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n */\n _checkScrollingControls() {\n if (this.disablePagination) {\n this._disableScrollAfter = this._disableScrollBefore = true;\n }\n else {\n // Check if the pagination arrows should be activated.\n this._disableScrollBefore = this.scrollDistance == 0;\n this._disableScrollAfter = this.scrollDistance == this._getMaxScrollDistance();\n this._changeDetectorRef.markForCheck();\n }\n }\n /**\n * Determines what is the maximum length in pixels that can be set for the scroll distance. This\n * is equal to the difference in width between the tab list container and tab header container.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n */\n _getMaxScrollDistance() {\n const lengthOfTabList = this._tabList.nativeElement.scrollWidth;\n const viewLength = this._tabListContainer.nativeElement.offsetWidth;\n return (lengthOfTabList - viewLength) || 0;\n }\n /** Tells the ink-bar to align itself to the current label wrapper */\n _alignInkBarToSelectedTab() {\n const selectedItem = this._items && this._items.length ?\n this._items.toArray()[this.selectedIndex] : null;\n const selectedLabelWrapper = selectedItem ? selectedItem.elementRef.nativeElement : null;\n if (selectedLabelWrapper) {\n this._inkBar.alignToElement(selectedLabelWrapper);\n }\n else {\n this._inkBar.hide();\n }\n }\n /** Stops the currently-running paginator interval. */\n _stopInterval() {\n this._stopScrolling.next();\n }\n /**\n * Handles the user pressing down on one of the paginators.\n * Starts scrolling the header after a certain amount of time.\n * @param direction In which direction the paginator should be scrolled.\n */\n _handlePaginatorPress(direction, mouseEvent) {\n // Don't start auto scrolling for right mouse button clicks. Note that we shouldn't have to\n // null check the `button`, but we do it so we don't break tests that use fake events.\n if (mouseEvent && mouseEvent.button != null && mouseEvent.button !== 0) {\n return;\n }\n // Avoid overlapping timers.\n this._stopInterval();\n // Start a timer after the delay and keep firing based on the interval.\n timer(HEADER_SCROLL_DELAY, HEADER_SCROLL_INTERVAL)\n // Keep the timer going until something tells it to stop or the component is destroyed.\n .pipe(takeUntil(merge(this._stopScrolling, this._destroyed)))\n .subscribe(() => {\n const { maxScrollDistance, distance } = this._scrollHeader(direction);\n // Stop the timer if we've reached the start or the end.\n if (distance === 0 || distance >= maxScrollDistance) {\n this._stopInterval();\n }\n });\n }\n /**\n * Scrolls the header to a given position.\n * @param position Position to which to scroll.\n * @returns Information on the current scroll distance and the maximum.\n */\n _scrollTo(position) {\n if (this.disablePagination) {\n return { maxScrollDistance: 0, distance: 0 };\n }\n const maxScrollDistance = this._getMaxScrollDistance();\n this._scrollDistance = Math.max(0, Math.min(maxScrollDistance, position));\n // Mark that the scroll distance has changed so that after the view is checked, the CSS\n // transformation can move the header.\n this._scrollDistanceChanged = true;\n this._checkScrollingControls();\n return { maxScrollDistance, distance: this._scrollDistance };\n }\n }\n MatPaginatedTabHeader.ɵfac = function MatPaginatedTabHeader_Factory(t) { return new (t || MatPaginatedTabHeader)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc6.ViewportRuler), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.Directionality, 8), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc7.Platform), ɵngcc0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8)); };\n MatPaginatedTabHeader.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MatPaginatedTabHeader, inputs: { disablePagination: \"disablePagination\" } });\n return MatPaginatedTabHeader;\n})();\nlet _MatTabHeaderBase = /*@__PURE__*/ (() => {\n class _MatTabHeaderBase extends MatPaginatedTabHeader {\n constructor(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode) {\n super(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode);\n this._disableRipple = false;\n }\n /** Whether the ripple effect is disabled or not. */\n get disableRipple() { return this._disableRipple; }\n set disableRipple(value) { this._disableRipple = coerceBooleanProperty(value); }\n _itemSelected(event) {\n event.preventDefault();\n }\n }\n _MatTabHeaderBase.ɵfac = function _MatTabHeaderBase_Factory(t) { return new (t || _MatTabHeaderBase)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc6.ViewportRuler), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.Directionality, 8), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc7.Platform), ɵngcc0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8)); };\n _MatTabHeaderBase.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: _MatTabHeaderBase, inputs: { disableRipple: \"disableRipple\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n return _MatTabHeaderBase;\n})();\nlet MatTabHeader = /*@__PURE__*/ (() => {\n class MatTabHeader extends _MatTabHeaderBase {\n constructor(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode) {\n super(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode);\n }\n }\n MatTabHeader.ɵfac = function MatTabHeader_Factory(t) { return new (t || MatTabHeader)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc6.ViewportRuler), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.Directionality, 8), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc7.Platform), ɵngcc0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8)); };\n MatTabHeader.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: MatTabHeader, selectors: [[\"mat-tab-header\"]], contentQueries: function MatTabHeader_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, MatTabLabelWrapper, 0);\n }\n if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._items = _t);\n }\n }, viewQuery: function MatTabHeader_Query(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(MatInkBar, 3);\n ɵngcc0.ɵɵviewQuery(_c5, 3);\n ɵngcc0.ɵɵviewQuery(_c6, 3);\n ɵngcc0.ɵɵviewQuery(_c7, 1);\n ɵngcc0.ɵɵviewQuery(_c8, 1);\n }\n if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._inkBar = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._tabListContainer = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._tabList = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._nextPaginator = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._previousPaginator = _t.first);\n }\n }, hostAttrs: [1, \"mat-tab-header\"], hostVars: 4, hostBindings: function MatTabHeader_HostBindings(rf, ctx) {\n if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"mat-tab-header-pagination-controls-enabled\", ctx._showPaginationControls)(\"mat-tab-header-rtl\", ctx._getLayoutDirection() == \"rtl\");\n }\n }, inputs: { selectedIndex: \"selectedIndex\" }, outputs: { selectFocusedIndex: \"selectFocusedIndex\", indexFocused: \"indexFocused\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0, decls: 13, vars: 8, consts: [[\"aria-hidden\", \"true\", \"mat-ripple\", \"\", 1, \"mat-tab-header-pagination\", \"mat-tab-header-pagination-before\", \"mat-elevation-z4\", 3, \"matRippleDisabled\", \"click\", \"mousedown\", \"touchend\"], [\"previousPaginator\", \"\"], [1, \"mat-tab-header-pagination-chevron\"], [1, \"mat-tab-label-container\", 3, \"keydown\"], [\"tabListContainer\", \"\"], [\"role\", \"tablist\", 1, \"mat-tab-list\", 3, \"cdkObserveContent\"], [\"tabList\", \"\"], [1, \"mat-tab-labels\"], [\"aria-hidden\", \"true\", \"mat-ripple\", \"\", 1, \"mat-tab-header-pagination\", \"mat-tab-header-pagination-after\", \"mat-elevation-z4\", 3, \"matRippleDisabled\", \"mousedown\", \"click\", \"touchend\"], [\"nextPaginator\", \"\"]], template: function MatTabHeader_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelementStart(0, \"div\", 0, 1);\n ɵngcc0.ɵɵlistener(\"click\", function MatTabHeader_Template_div_click_0_listener() { return ctx._handlePaginatorClick(\"before\"); })(\"mousedown\", function MatTabHeader_Template_div_mousedown_0_listener($event) { return ctx._handlePaginatorPress(\"before\", $event); })(\"touchend\", function MatTabHeader_Template_div_touchend_0_listener() { return ctx._stopInterval(); });\n ɵngcc0.ɵɵelement(2, \"div\", 2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(3, \"div\", 3, 4);\n ɵngcc0.ɵɵlistener(\"keydown\", function MatTabHeader_Template_div_keydown_3_listener($event) { return ctx._handleKeydown($event); });\n ɵngcc0.ɵɵelementStart(5, \"div\", 5, 6);\n ɵngcc0.ɵɵlistener(\"cdkObserveContent\", function MatTabHeader_Template_div_cdkObserveContent_5_listener() { return ctx._onContentChanges(); });\n ɵngcc0.ɵɵelementStart(7, \"div\", 7);\n ɵngcc0.ɵɵprojection(8);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelement(9, \"mat-ink-bar\");\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(10, \"div\", 8, 9);\n ɵngcc0.ɵɵlistener(\"mousedown\", function MatTabHeader_Template_div_mousedown_10_listener($event) { return ctx._handlePaginatorPress(\"after\", $event); })(\"click\", function MatTabHeader_Template_div_click_10_listener() { return ctx._handlePaginatorClick(\"after\"); })(\"touchend\", function MatTabHeader_Template_div_touchend_10_listener() { return ctx._stopInterval(); });\n ɵngcc0.ɵɵelement(12, \"div\", 2);\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"mat-tab-header-pagination-disabled\", ctx._disableScrollBefore);\n ɵngcc0.ɵɵproperty(\"matRippleDisabled\", ctx._disableScrollBefore || ctx.disableRipple);\n ɵngcc0.ɵɵadvance(5);\n ɵngcc0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\");\n ɵngcc0.ɵɵadvance(5);\n ɵngcc0.ɵɵclassProp(\"mat-tab-header-pagination-disabled\", ctx._disableScrollAfter);\n ɵngcc0.ɵɵproperty(\"matRippleDisabled\", ctx._disableScrollAfter || ctx.disableRipple);\n }\n }, directives: [ɵngcc3.MatRipple, ɵngcc8.CdkObserveContent, MatInkBar], styles: [\".mat-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mat-tab-header-pagination{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:transparent;touch-action:none}.mat-tab-header-pagination-controls-enabled .mat-tab-header-pagination{display:flex}.mat-tab-header-pagination-before,.mat-tab-header-rtl .mat-tab-header-pagination-after{padding-left:4px}.mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-tab-header-rtl .mat-tab-header-pagination-before,.mat-tab-header-pagination-after{padding-right:4px}.mat-tab-header-rtl .mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;content:\\\"\\\";height:8px;width:8px}.mat-tab-header-pagination-disabled{box-shadow:none;cursor:default}.mat-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable.mat-ink-bar{transition:none;animation:none}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}.cdk-high-contrast-active .mat-ink-bar{outline:solid 2px;height:0}.mat-tab-labels{display:flex}[mat-align-tabs=center]>.mat-tab-header .mat-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-tab-header .mat-tab-labels{justify-content:flex-end}.mat-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}._mat-animation-noopable.mat-tab-list{transition:none;animation:none}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:none}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}.cdk-high-contrast-active .mat-tab-label:focus{outline:dotted 2px;outline-offset:-2px}.mat-tab-label.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-label.mat-tab-disabled{opacity:.5}.mat-tab-label .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-label{opacity:1}@media(max-width: 599px){.mat-tab-label{min-width:72px}}\\n\"], encapsulation: 2 });\n return MatTabHeader;\n})();\nlet _MatTabNavBase = /*@__PURE__*/ (() => {\n class _MatTabNavBase extends MatPaginatedTabHeader {\n constructor(elementRef, dir, ngZone, changeDetectorRef, viewportRuler, platform, animationMode) {\n super(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode);\n this._disableRipple = false;\n /** Theme color of the nav bar. */\n this.color = 'primary';\n }\n /** Background color of the tab nav. */\n get backgroundColor() { return this._backgroundColor; }\n set backgroundColor(value) {\n const classList = this._elementRef.nativeElement.classList;\n classList.remove(`mat-background-${this.backgroundColor}`);\n if (value) {\n classList.add(`mat-background-${value}`);\n }\n this._backgroundColor = value;\n }\n /** Whether the ripple effect is disabled or not. */\n get disableRipple() { return this._disableRipple; }\n set disableRipple(value) { this._disableRipple = coerceBooleanProperty(value); }\n _itemSelected() {\n // noop\n }\n ngAfterContentInit() {\n // We need this to run before the `changes` subscription in parent to ensure that the\n // selectedIndex is up-to-date by the time the super class starts looking for it.\n this._items.changes.pipe(startWith(null), takeUntil(this._destroyed)).subscribe(() => {\n this.updateActiveLink();\n });\n super.ngAfterContentInit();\n }\n /** Notifies the component that the active link has been changed. */\n updateActiveLink() {\n if (!this._items) {\n return;\n }\n const items = this._items.toArray();\n for (let i = 0; i < items.length; i++) {\n if (items[i].active) {\n this.selectedIndex = i;\n this._changeDetectorRef.markForCheck();\n return;\n }\n }\n // The ink bar should hide itself if no items are active.\n this.selectedIndex = -1;\n this._inkBar.hide();\n }\n }\n _MatTabNavBase.ɵfac = function _MatTabNavBase_Factory(t) { return new (t || _MatTabNavBase)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.Directionality, 8), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc6.ViewportRuler), ɵngcc0.ɵɵdirectiveInject(ɵngcc7.Platform), ɵngcc0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8)); };\n _MatTabNavBase.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: _MatTabNavBase, inputs: { color: \"color\", backgroundColor: \"backgroundColor\", disableRipple: \"disableRipple\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n return _MatTabNavBase;\n})();\nlet MatTabNav = /*@__PURE__*/ (() => {\n class MatTabNav extends _MatTabNavBase {\n constructor(elementRef, dir, ngZone, changeDetectorRef, viewportRuler, platform, animationMode) {\n super(elementRef, dir, ngZone, changeDetectorRef, viewportRuler, platform, animationMode);\n }\n }\n MatTabNav.ɵfac = function MatTabNav_Factory(t) { return new (t || MatTabNav)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.Directionality, 8), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc6.ViewportRuler), ɵngcc0.ɵɵdirectiveInject(ɵngcc7.Platform), ɵngcc0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8)); };\n MatTabNav.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: MatTabNav, selectors: [[\"\", \"mat-tab-nav-bar\", \"\"]], contentQueries: function MatTabNav_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, MatTabLink, 1);\n }\n if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._items = _t);\n }\n }, viewQuery: function MatTabNav_Query(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(MatInkBar, 3);\n ɵngcc0.ɵɵviewQuery(_c5, 3);\n ɵngcc0.ɵɵviewQuery(_c6, 3);\n ɵngcc0.ɵɵviewQuery(_c7, 1);\n ɵngcc0.ɵɵviewQuery(_c8, 1);\n }\n if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._inkBar = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._tabListContainer = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._tabList = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._nextPaginator = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._previousPaginator = _t.first);\n }\n }, hostAttrs: [1, \"mat-tab-nav-bar\", \"mat-tab-header\"], hostVars: 10, hostBindings: function MatTabNav_HostBindings(rf, ctx) {\n if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"mat-tab-header-pagination-controls-enabled\", ctx._showPaginationControls)(\"mat-tab-header-rtl\", ctx._getLayoutDirection() == \"rtl\")(\"mat-primary\", ctx.color !== \"warn\" && ctx.color !== \"accent\")(\"mat-accent\", ctx.color === \"accent\")(\"mat-warn\", ctx.color === \"warn\");\n }\n }, inputs: { color: \"color\" }, exportAs: [\"matTabNavBar\", \"matTabNav\"], features: [ɵngcc0.ɵɵInheritDefinitionFeature], attrs: _c9, ngContentSelectors: _c0, decls: 13, vars: 8, consts: [[\"aria-hidden\", \"true\", \"mat-ripple\", \"\", 1, \"mat-tab-header-pagination\", \"mat-tab-header-pagination-before\", \"mat-elevation-z4\", 3, \"matRippleDisabled\", \"click\", \"mousedown\", \"touchend\"], [\"previousPaginator\", \"\"], [1, \"mat-tab-header-pagination-chevron\"], [1, \"mat-tab-link-container\", 3, \"keydown\"], [\"tabListContainer\", \"\"], [1, \"mat-tab-list\", 3, \"cdkObserveContent\"], [\"tabList\", \"\"], [1, \"mat-tab-links\"], [\"aria-hidden\", \"true\", \"mat-ripple\", \"\", 1, \"mat-tab-header-pagination\", \"mat-tab-header-pagination-after\", \"mat-elevation-z4\", 3, \"matRippleDisabled\", \"mousedown\", \"click\", \"touchend\"], [\"nextPaginator\", \"\"]], template: function MatTabNav_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelementStart(0, \"div\", 0, 1);\n ɵngcc0.ɵɵlistener(\"click\", function MatTabNav_Template_div_click_0_listener() { return ctx._handlePaginatorClick(\"before\"); })(\"mousedown\", function MatTabNav_Template_div_mousedown_0_listener($event) { return ctx._handlePaginatorPress(\"before\", $event); })(\"touchend\", function MatTabNav_Template_div_touchend_0_listener() { return ctx._stopInterval(); });\n ɵngcc0.ɵɵelement(2, \"div\", 2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(3, \"div\", 3, 4);\n ɵngcc0.ɵɵlistener(\"keydown\", function MatTabNav_Template_div_keydown_3_listener($event) { return ctx._handleKeydown($event); });\n ɵngcc0.ɵɵelementStart(5, \"div\", 5, 6);\n ɵngcc0.ɵɵlistener(\"cdkObserveContent\", function MatTabNav_Template_div_cdkObserveContent_5_listener() { return ctx._onContentChanges(); });\n ɵngcc0.ɵɵelementStart(7, \"div\", 7);\n ɵngcc0.ɵɵprojection(8);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelement(9, \"mat-ink-bar\");\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(10, \"div\", 8, 9);\n ɵngcc0.ɵɵlistener(\"mousedown\", function MatTabNav_Template_div_mousedown_10_listener($event) { return ctx._handlePaginatorPress(\"after\", $event); })(\"click\", function MatTabNav_Template_div_click_10_listener() { return ctx._handlePaginatorClick(\"after\"); })(\"touchend\", function MatTabNav_Template_div_touchend_10_listener() { return ctx._stopInterval(); });\n ɵngcc0.ɵɵelement(12, \"div\", 2);\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"mat-tab-header-pagination-disabled\", ctx._disableScrollBefore);\n ɵngcc0.ɵɵproperty(\"matRippleDisabled\", ctx._disableScrollBefore || ctx.disableRipple);\n ɵngcc0.ɵɵadvance(5);\n ɵngcc0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\");\n ɵngcc0.ɵɵadvance(5);\n ɵngcc0.ɵɵclassProp(\"mat-tab-header-pagination-disabled\", ctx._disableScrollAfter);\n ɵngcc0.ɵɵproperty(\"matRippleDisabled\", ctx._disableScrollAfter || ctx.disableRipple);\n }\n }, directives: [ɵngcc3.MatRipple, ɵngcc8.CdkObserveContent, MatInkBar], styles: [\".mat-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mat-tab-header-pagination{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:transparent;touch-action:none}.mat-tab-header-pagination-controls-enabled .mat-tab-header-pagination{display:flex}.mat-tab-header-pagination-before,.mat-tab-header-rtl .mat-tab-header-pagination-after{padding-left:4px}.mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-tab-header-rtl .mat-tab-header-pagination-before,.mat-tab-header-pagination-after{padding-right:4px}.mat-tab-header-rtl .mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;content:\\\"\\\";height:8px;width:8px}.mat-tab-header-pagination-disabled{box-shadow:none;cursor:default}.mat-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-tab-links{display:flex}[mat-align-tabs=center]>.mat-tab-link-container .mat-tab-links{justify-content:center}[mat-align-tabs=end]>.mat-tab-link-container .mat-tab-links{justify-content:flex-end}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable.mat-ink-bar{transition:none;animation:none}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}.cdk-high-contrast-active .mat-ink-bar{outline:solid 2px;height:0}.mat-tab-link-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-tab-link{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;vertical-align:top;text-decoration:none;position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent}.mat-tab-link:focus{outline:none}.mat-tab-link:focus:not(.mat-tab-disabled){opacity:1}.cdk-high-contrast-active .mat-tab-link:focus{outline:dotted 2px;outline-offset:-2px}.mat-tab-link.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-link.mat-tab-disabled{opacity:.5}.mat-tab-link .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-link{opacity:1}[mat-stretch-tabs] .mat-tab-link{flex-basis:0;flex-grow:1}.mat-tab-link.mat-tab-disabled{pointer-events:none}@media(max-width: 599px){.mat-tab-link{min-width:72px}}\\n\"], encapsulation: 2 });\n return MatTabNav;\n})();\n// Boilerplate for applying mixins to MatTabLink.\nclass MatTabLinkMixinBase {\n}\nconst _MatTabLinkMixinBase = /*@__PURE__*/ mixinTabIndex(/*@__PURE__*/ mixinDisableRipple(/*@__PURE__*/ mixinDisabled(MatTabLinkMixinBase)));\nlet _MatTabLinkBase = /*@__PURE__*/ (() => {\n class _MatTabLinkBase extends _MatTabLinkMixinBase {\n constructor(_tabNavBar, \n /** @docs-private */ elementRef, globalRippleOptions, tabIndex, _focusMonitor, animationMode) {\n super();\n this._tabNavBar = _tabNavBar;\n this.elementRef = elementRef;\n this._focusMonitor = _focusMonitor;\n /** Whether the tab link is active or not. */\n this._isActive = false;\n this.rippleConfig = globalRippleOptions || {};\n this.tabIndex = parseInt(tabIndex) || 0;\n if (animationMode === 'NoopAnimations') {\n this.rippleConfig.animation = { enterDuration: 0, exitDuration: 0 };\n }\n }\n /** Whether the link is active. */\n get active() { return this._isActive; }\n set active(value) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this._isActive) {\n this._isActive = value;\n this._tabNavBar.updateActiveLink();\n }\n }\n /**\n * Whether ripples are disabled on interaction.\n * @docs-private\n */\n get rippleDisabled() {\n return this.disabled || this.disableRipple || this._tabNavBar.disableRipple ||\n !!this.rippleConfig.disabled;\n }\n /** Focuses the tab link. */\n focus() {\n this.elementRef.nativeElement.focus();\n }\n ngAfterViewInit() {\n this._focusMonitor.monitor(this.elementRef);\n }\n ngOnDestroy() {\n this._focusMonitor.stopMonitoring(this.elementRef);\n }\n }\n _MatTabLinkBase.ɵfac = function _MatTabLinkBase_Factory(t) { return new (t || _MatTabLinkBase)(ɵngcc0.ɵɵdirectiveInject(_MatTabNavBase), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(MAT_RIPPLE_GLOBAL_OPTIONS, 8), ɵngcc0.ɵɵinjectAttribute('tabindex'), ɵngcc0.ɵɵdirectiveInject(ɵngcc4.FocusMonitor), ɵngcc0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8)); };\n _MatTabLinkBase.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: _MatTabLinkBase, inputs: { active: \"active\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n return _MatTabLinkBase;\n})();\nlet MatTabLink = /*@__PURE__*/ (() => {\n class MatTabLink extends _MatTabLinkBase {\n constructor(tabNavBar, elementRef, ngZone, platform, globalRippleOptions, tabIndex, focusMonitor, animationMode) {\n super(tabNavBar, elementRef, globalRippleOptions, tabIndex, focusMonitor, animationMode);\n this._tabLinkRipple = new RippleRenderer(this, ngZone, elementRef, platform);\n this._tabLinkRipple.setupTriggerEvents(elementRef.nativeElement);\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n this._tabLinkRipple._removeTriggerEvents();\n }\n }\n MatTabLink.ɵfac = function MatTabLink_Factory(t) { return new (t || MatTabLink)(ɵngcc0.ɵɵdirectiveInject(MatTabNav), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc7.Platform), ɵngcc0.ɵɵdirectiveInject(MAT_RIPPLE_GLOBAL_OPTIONS, 8), ɵngcc0.ɵɵinjectAttribute('tabindex'), ɵngcc0.ɵɵdirectiveInject(ɵngcc4.FocusMonitor), ɵngcc0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8)); };\n MatTabLink.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MatTabLink, selectors: [[\"\", \"mat-tab-link\", \"\"], [\"\", \"matTabLink\", \"\"]], hostAttrs: [1, \"mat-tab-link\", \"mat-focus-indicator\"], hostVars: 7, hostBindings: function MatTabLink_HostBindings(rf, ctx) {\n if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"aria-current\", ctx.active ? \"page\" : null)(\"aria-disabled\", ctx.disabled)(\"tabIndex\", ctx.tabIndex);\n ɵngcc0.ɵɵclassProp(\"mat-tab-disabled\", ctx.disabled)(\"mat-tab-label-active\", ctx.active);\n }\n }, inputs: { disabled: \"disabled\", disableRipple: \"disableRipple\", tabIndex: \"tabIndex\" }, exportAs: [\"matTabLink\"], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n return MatTabLink;\n})();\nlet MatTabsModule = /*@__PURE__*/ (() => {\n class MatTabsModule {\n }\n MatTabsModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: MatTabsModule });\n MatTabsModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ factory: function MatTabsModule_Factory(t) { return new (t || MatTabsModule)(); }, imports: [[\n CommonModule,\n MatCommonModule,\n PortalModule,\n MatRippleModule,\n ObserversModule,\n A11yModule,\n ], MatCommonModule] });\n return MatTabsModule;\n})();\n/*@__PURE__*/ (function () {\n (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(MatTabsModule, { declarations: function () { return [MatTabGroup, MatTabLabel, MatTab, MatInkBar, MatTabLabelWrapper, MatTabNav, MatTabLink, MatTabBody, MatTabBodyPortal, MatTabHeader, MatTabContent]; }, imports: function () {\n return [CommonModule,\n MatCommonModule,\n PortalModule,\n MatRippleModule,\n ObserversModule,\n A11yModule];\n }, exports: function () { return [MatCommonModule, MatTabGroup, MatTabLabel, MatTab, MatTabNav, MatTabLink, MatTabContent]; } });\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 * @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 * Generated bundle index. Do not edit.\n */\nexport { MAT_TABS_CONFIG, MAT_TAB_GROUP, MatInkBar, MatTab, MatTabBody, MatTabBodyPortal, MatTabChangeEvent, MatTabContent, MatTabGroup, MatTabHeader, MatTabLabel, MatTabLabelWrapper, MatTabLink, MatTabNav, MatTabsModule, _MAT_INK_BAR_POSITIONER, _MatTabBodyBase, _MatTabGroupBase, _MatTabHeaderBase, _MatTabLinkBase, _MatTabNavBase, matTabsAnimations, _MAT_INK_BAR_POSITIONER_FACTORY as ɵangular_material_src_material_tabs_tabs_a, MAT_TAB_LABEL as ɵangular_material_src_material_tabs_tabs_b, MAT_TAB_CONTENT as ɵangular_material_src_material_tabs_tabs_c, MatPaginatedTabHeader as ɵangular_material_src_material_tabs_tabs_d };\n\n\n\n" }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.component.ts", "name": "./src/app/custom-elements/code/code-tabs.component.ts", "index": 509, "index2": 510, "size": 5104, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [], "issuer": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.module.ts", "issuerId": null, "issuerName": "./src/app/custom-elements/code/code-tabs.module.ts", "issuerPath": [ { "id": 0, "identifier": "multi C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "multi ./src/main.ts", "profile": { "factory": 1, "building": 4 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "./src/main.ts", "profile": { "factory": 1577, "building": 684 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\app.module.ts", "name": "./src/app/app.module.ts", "profile": { "factory": 7434, "building": 6719, "dependencies": 19440 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\custom-elements.module.ts", "name": "./src/app/custom-elements/custom-elements.module.ts", "profile": { "factory": 26179, "building": 975, "dependencies": 19070 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "name": "./src/app/custom-elements/element-registry.ts", "profile": { "factory": 6786, "building": 1923, "dependencies": 1080 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.module.ts", "name": "./src/app/custom-elements/code/code-tabs.module.ts", "profile": { "factory": 3142, "building": 22, "dependencies": 2295 } } ], "profile": { "factory": 4129, "building": 938, "dependencies": 2786 }, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.module.ts", "module": "./src/app/custom-elements/code/code-tabs.module.ts", "moduleName": "./src/app/custom-elements/code/code-tabs.module.ts", "type": "harmony side effect evaluation", "userRequest": "./code-tabs.component", "loc": "2:0-58" }, { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\code\\code-tabs.module.ts", "module": "./src/app/custom-elements/code/code-tabs.module.ts", "moduleName": "./src/app/custom-elements/code/code-tabs.module.ts", "type": "harmony import specifier", "userRequest": "./code-tabs.component", "loc": "10:42-59" } ], "usedExports": [ "CodeTabsComponent" ], "providedExports": [ "CodeTabsComponent" ], "optimizationBailout": [], "depth": 6, "source": "import { CodeComponent } from './code.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/card\";\nimport * as i2 from \"@angular/material/tabs\";\nimport * as i3 from \"@angular/common\";\nimport * as i4 from \"./code.component\";\nconst _c0 = [\"content\"];\nfunction CodeTabsComponent_mat_tab_5_ng_template_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\");\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const tab_r2 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵclassMap(tab_r2.class);\n i0.ɵɵadvance(1);\n i0.ɵɵtextInterpolate(tab_r2.header);\n }\n}\nfunction CodeTabsComponent_mat_tab_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"mat-tab\", 4);\n i0.ɵɵtemplate(1, CodeTabsComponent_mat_tab_5_ng_template_1_Template, 2, 4, \"ng-template\", 5);\n i0.ɵɵelement(2, \"aio-code\", 6);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const tab_r2 = ctx.$implicit;\n i0.ɵɵadvance(2);\n i0.ɵɵclassMap(tab_r2.class);\n i0.ɵɵproperty(\"language\", tab_r2.language)(\"linenums\", tab_r2.linenums)(\"path\", tab_r2.path)(\"region\", tab_r2.region)(\"header\", tab_r2.header);\n }\n}\nconst _c1 = [\"*\"];\n/**\n * Renders a set of tab group of code snippets.\n *\n * The innerHTML of the `` component should contain `` elements.\n * Each `` has the same interface as the embedded `` component.\n * The optional `linenums` attribute is the default `linenums` for each code pane.\n */\nexport let CodeTabsComponent = /*@__PURE__*/ (() => {\n class CodeTabsComponent {\n ngOnInit() {\n this.tabs = [];\n const contentElem = this.content.nativeElement;\n const codeExamples = Array.from(contentElem.querySelectorAll('code-pane'));\n for (const tabContent of codeExamples) {\n this.tabs.push(this.getTabInfo(tabContent));\n }\n // Remove DOM nodes that are no longer needed.\n //\n // NOTE:\n // In IE11, doing this also empties the `` nodes captured in `codeExamples` ¯\\_(ツ)_/¯\n // Only remove the unnecessary nodes after having captured the `` contents.\n contentElem.innerHTML = '';\n }\n ngAfterViewInit() {\n this.codeComponents.toArray().forEach((codeComponent, i) => {\n codeComponent.code = this.tabs[i].code;\n });\n }\n /** Gets the extracted TabInfo data from the provided code-pane element. */\n getTabInfo(tabContent) {\n return {\n class: tabContent.getAttribute('class') || '',\n code: tabContent.innerHTML,\n path: tabContent.getAttribute('path') || '',\n region: tabContent.getAttribute('region') || '',\n header: tabContent.getAttribute('header') || undefined,\n language: tabContent.getAttribute('language') || undefined,\n linenums: tabContent.getAttribute('linenums') || this.linenums,\n };\n }\n }\n CodeTabsComponent.ɵfac = function CodeTabsComponent_Factory(t) { return new (t || CodeTabsComponent)(); };\n CodeTabsComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CodeTabsComponent, selectors: [[\"code-tabs\"]], viewQuery: function CodeTabsComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 3);\n i0.ɵɵviewQuery(CodeComponent, 1);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.content = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.codeComponents = _t);\n }\n }, inputs: { linenums: \"linenums\" }, ngContentSelectors: _c1, decls: 6, vars: 2, consts: [[2, \"display\", \"none\"], [\"content\", \"\"], [1, \"code-tab-group\", 3, \"disableRipple\"], [\"style\", \"overflow-y: hidden;\", 4, \"ngFor\", \"ngForOf\"], [2, \"overflow-y\", \"hidden\"], [\"mat-tab-label\", \"\"], [3, \"language\", \"linenums\", \"path\", \"region\", \"header\"]], template: function CodeTabsComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"div\", 0, 1);\n i0.ɵɵprojection(2);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"mat-card\");\n i0.ɵɵelementStart(4, \"mat-tab-group\", 2);\n i0.ɵɵtemplate(5, CodeTabsComponent_mat_tab_5_Template, 3, 8, \"mat-tab\", 3);\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"disableRipple\", true);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngForOf\", ctx.tabs);\n }\n }, directives: [i1.MatCard, i2.MatTabGroup, i3.NgForOf, i2.MatTab, i2.MatTabLabel, i4.CodeComponent], encapsulation: 2 });\n return CodeTabsComponent;\n})();\n\n" } ], "filteredModules": 0 } ], "filteredModules": 0, "origins": [ { "moduleId": null, "module": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "moduleName": "./src/app/custom-elements/element-registry.ts", "loc": "36:28-61", "request": "./code/code-tabs.module", "reasons": [] } ] }, { "id": 7, "rendered": true, "initial": false, "entry": false, "size": 13506, "names": [ "contributor-contributor-list-module" ], "files": [ "contributor-contributor-list-module-es2015.c8325875e1dc65af0dc6.js", "contributor-contributor-list-module-es2015.c8325875e1dc65af0dc6.js.map" ], "hash": "c8325875e1dc65af0dc6", "siblings": [], "parents": [ 0, 10 ], "children": [], "childrenByOrder": {}, "modules": [ { "id": "fPy6", "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\contributor\\contributor-list.module.ts 2f10c22313a6d2850b90559ab3b577db", "name": "./src/app/custom-elements/contributor/contributor-list.module.ts + 3 modules", "index": 483, "index2": 486, "size": 13506, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [ 7 ], "issuer": null, "issuerId": null, "issuerName": null, "issuerPath": null, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "module": "./src/app/custom-elements/element-registry.ts", "moduleName": "./src/app/custom-elements/element-registry.ts", "type": "import()", "userRequest": "./contributor/contributor-list.module", "loc": "16:28-75" } ], "usedExports": true, "providedExports": [ "ContributorListModule" ], "optimizationBailout": [ "ModuleConcatenation bailout: Cannot concat with ./src/app/documents/document.service.ts", "ModuleConcatenation bailout: Cannot concat with ./src/app/shared/location.service.ts", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/common/__ivy_ngcc__/fesm2015/common.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/common/__ivy_ngcc__/fesm2015/http.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/material/__ivy_ngcc__/fesm2015/icon.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/rxjs/_esm2015/internal/operators/map.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/rxjs/_esm2015/internal/operators/publishLast.js" ], "depth": 5, "modules": [ { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\contributor\\contributor-list.module.ts", "name": "./src/app/custom-elements/contributor/contributor-list.module.ts", "index": 483, "index2": 486, "size": 840, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [], "issuer": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "issuerId": null, "issuerName": "./src/app/custom-elements/element-registry.ts", "issuerPath": [ { "id": 0, "identifier": "multi C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "multi ./src/main.ts", "profile": { "factory": 1, "building": 4 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "./src/main.ts", "profile": { "factory": 1577, "building": 684 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\app.module.ts", "name": "./src/app/app.module.ts", "profile": { "factory": 7434, "building": 6719, "dependencies": 19440 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\custom-elements.module.ts", "name": "./src/app/custom-elements/custom-elements.module.ts", "profile": { "factory": 26179, "building": 975, "dependencies": 19070 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "name": "./src/app/custom-elements/element-registry.ts", "profile": { "factory": 6786, "building": 1923, "dependencies": 1080 } } ], "profile": { "factory": 3142, "building": 22, "dependencies": 2295 }, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "module": "./src/app/custom-elements/element-registry.ts", "moduleName": "./src/app/custom-elements/element-registry.ts", "type": "import()", "userRequest": "./contributor/contributor-list.module", "loc": "16:28-75" } ], "usedExports": true, "providedExports": [ "ContributorListModule" ], "optimizationBailout": [ "ModuleConcatenation bailout: Module is referenced from these modules with unsupported syntax: ./src/app/custom-elements/element-registry.ts (referenced with import())" ], "depth": 5, "source": "import { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { ContributorListComponent } from './contributor-list.component';\nimport { ContributorService } from './contributor.service';\nimport * as i0 from \"@angular/core\";\nexport let ContributorListModule = /*@__PURE__*/ (() => {\n class ContributorListModule {\n constructor() {\n this.customElementComponent = ContributorListComponent;\n }\n }\n ContributorListModule.ɵmod = i0.ɵɵdefineNgModule({ type: ContributorListModule });\n ContributorListModule.ɵinj = i0.ɵɵdefineInjector({ factory: function ContributorListModule_Factory(t) { return new (t || ContributorListModule)(); }, providers: [ContributorService], imports: [[CommonModule, MatIconModule]] });\n return ContributorListModule;\n})();\n\n" }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\contributor\\contributor.service.ts", "name": "./src/app/custom-elements/contributor/contributor.service.ts", "index": 485, "index2": 483, "size": 2428, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [], "issuer": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\contributor\\contributor-list.module.ts", "issuerId": null, "issuerName": "./src/app/custom-elements/contributor/contributor-list.module.ts", "issuerPath": [ { "id": 0, "identifier": "multi C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "multi ./src/main.ts", "profile": { "factory": 1, "building": 4 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "./src/main.ts", "profile": { "factory": 1577, "building": 684 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\app.module.ts", "name": "./src/app/app.module.ts", "profile": { "factory": 7434, "building": 6719, "dependencies": 19440 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\custom-elements.module.ts", "name": "./src/app/custom-elements/custom-elements.module.ts", "profile": { "factory": 26179, "building": 975, "dependencies": 19070 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "name": "./src/app/custom-elements/element-registry.ts", "profile": { "factory": 6786, "building": 1923, "dependencies": 1080 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\contributor\\contributor-list.module.ts", "name": "./src/app/custom-elements/contributor/contributor-list.module.ts", "profile": { "factory": 3142, "building": 22, "dependencies": 2295 } } ], "profile": { "factory": 2239, "building": 60, "dependencies": 1196 }, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\contributor\\contributor-list.component.ts", "module": "./src/app/custom-elements/contributor/contributor-list.component.ts", "moduleName": "./src/app/custom-elements/contributor/contributor-list.component.ts", "type": "harmony side effect evaluation", "userRequest": "./contributor.service", "loc": "2:0-44" }, { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\contributor\\contributor-list.module.ts", "module": "./src/app/custom-elements/contributor/contributor-list.module.ts", "moduleName": "./src/app/custom-elements/contributor/contributor-list.module.ts", "type": "harmony side effect evaluation", "userRequest": "./contributor.service", "loc": "4:0-59" }, { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\contributor\\contributor-list.module.ts", "module": "./src/app/custom-elements/contributor/contributor-list.module.ts", "moduleName": "./src/app/custom-elements/contributor/contributor-list.module.ts", "type": "harmony import specifier", "userRequest": "./contributor.service", "loc": "13:166-184" }, { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\contributor\\contributor-list.component.ts", "module": "./src/app/custom-elements/contributor/contributor-list.component.ts", "moduleName": "./src/app/custom-elements/contributor/contributor-list.component.ts", "type": "harmony import specifier", "userRequest": "./contributor.service", "loc": "67:147-168" } ], "usedExports": [ "ContributorService" ], "providedExports": [ "ContributorService" ], "optimizationBailout": [], "depth": 6, "source": "import { map, publishLast } from 'rxjs/operators';\n// TODO(andrewjs): Look into changing this so that we don't import the service just to get the const\nimport { CONTENT_URL_PREFIX } from 'app/documents/document.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common/http\";\nconst contributorsPath = CONTENT_URL_PREFIX + 'contributors.json';\nconst knownGroups = ['Angular', 'Collaborators', 'GDE'];\nexport let ContributorService = /*@__PURE__*/ (() => {\n class ContributorService {\n constructor(http) {\n this.http = http;\n this.contributors = this.getContributors();\n }\n getContributors() {\n const contributors = this.http.get(contributorsPath).pipe(\n // Create group map\n map(contribs => {\n const contribMap = {};\n Object.keys(contribs).forEach(key => {\n const contributor = contribs[key];\n contributor.groups.forEach(group => {\n const contribGroup = contribMap[group] || (contribMap[group] = []);\n contribGroup.push(contributor);\n });\n });\n return contribMap;\n }), \n // Flatten group map into sorted group array of sorted contributors\n map(cmap => {\n return Object.keys(cmap).map(key => {\n const order = knownGroups.indexOf(key);\n return {\n name: key,\n order: order === -1 ? knownGroups.length : order,\n contributors: cmap[key].sort(compareContributors)\n };\n })\n .sort(compareGroups);\n }), publishLast());\n contributors.connect();\n return contributors;\n }\n }\n ContributorService.ɵfac = function ContributorService_Factory(t) { return new (t || ContributorService)(i0.ɵɵinject(i1.HttpClient)); };\n ContributorService.ɵprov = i0.ɵɵdefineInjectable({ token: ContributorService, factory: ContributorService.ɵfac });\n return ContributorService;\n})();\nfunction compareContributors(l, r) {\n return l.name.toUpperCase() > r.name.toUpperCase() ? 1 : -1;\n}\nfunction compareGroups(l, r) {\n return l.order === r.order ?\n (l.name > r.name ? 1 : -1) :\n l.order > r.order ? 1 : -1;\n}\n\n" }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\contributor\\contributor-list.component.ts", "name": "./src/app/custom-elements/contributor/contributor-list.component.ts", "index": 484, "index2": 485, "size": 4389, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [], "issuer": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\contributor\\contributor-list.module.ts", "issuerId": null, "issuerName": "./src/app/custom-elements/contributor/contributor-list.module.ts", "issuerPath": [ { "id": 0, "identifier": "multi C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "multi ./src/main.ts", "profile": { "factory": 1, "building": 4 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "./src/main.ts", "profile": { "factory": 1577, "building": 684 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\app.module.ts", "name": "./src/app/app.module.ts", "profile": { "factory": 7434, "building": 6719, "dependencies": 19440 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\custom-elements.module.ts", "name": "./src/app/custom-elements/custom-elements.module.ts", "profile": { "factory": 26179, "building": 975, "dependencies": 19070 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "name": "./src/app/custom-elements/element-registry.ts", "profile": { "factory": 6786, "building": 1923, "dependencies": 1080 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\contributor\\contributor-list.module.ts", "name": "./src/app/custom-elements/contributor/contributor-list.module.ts", "profile": { "factory": 3142, "building": 22, "dependencies": 2295 } } ], "profile": { "factory": 2239, "building": 60, "dependencies": 1196 }, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\contributor\\contributor-list.module.ts", "module": "./src/app/custom-elements/contributor/contributor-list.module.ts", "moduleName": "./src/app/custom-elements/contributor/contributor-list.module.ts", "type": "harmony side effect evaluation", "userRequest": "./contributor-list.component", "loc": "3:0-72" }, { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\contributor\\contributor-list.module.ts", "module": "./src/app/custom-elements/contributor/contributor-list.module.ts", "moduleName": "./src/app/custom-elements/contributor/contributor-list.module.ts", "type": "harmony import specifier", "userRequest": "./contributor-list.component", "loc": "9:42-66" } ], "usedExports": [ "ContributorListComponent" ], "providedExports": [ "ContributorListComponent" ], "optimizationBailout": [], "depth": 6, "source": "import * as i0 from \"@angular/core\";\nimport * as i1 from \"./contributor.service\";\nimport * as i2 from \"app/shared/location.service\";\nimport * as i3 from \"@angular/common\";\nimport * as i4 from \"./contributor.component\";\nfunction ContributorListComponent_a_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"a\", 3);\n i0.ɵɵlistener(\"click\", function ContributorListComponent_a_1_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r4); const name_r2 = ctx.$implicit; const ctx_r3 = i0.ɵɵnextContext(); return ctx_r3.selectGroup(name_r2); })(\"keyup.enter\", function ContributorListComponent_a_1_Template_a_keyup_enter_0_listener() { i0.ɵɵrestoreView(_r4); const name_r2 = ctx.$implicit; const ctx_r5 = i0.ɵɵnextContext(); return ctx_r5.selectGroup(name_r2); });\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const name_r2 = ctx.$implicit;\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"selected\", name_r2 == ctx_r0.selectedGroup.name);\n i0.ɵɵadvance(1);\n i0.ɵɵtextInterpolate(name_r2);\n }\n}\nfunction ContributorListComponent_section_2_aio_contributor_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"aio-contributor\", 7);\n }\n if (rf & 2) {\n const person_r7 = ctx.$implicit;\n i0.ɵɵproperty(\"person\", person_r7);\n }\n}\nfunction ContributorListComponent_section_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"section\", 4);\n i0.ɵɵelementStart(1, \"div\", 5);\n i0.ɵɵtemplate(2, ContributorListComponent_section_2_aio_contributor_2_Template, 1, 1, \"aio-contributor\", 6);\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.selectedGroup.contributors);\n }\n}\nexport let ContributorListComponent = /*@__PURE__*/ (() => {\n class ContributorListComponent {\n constructor(contributorService, locationService) {\n this.contributorService = contributorService;\n this.locationService = locationService;\n }\n ngOnInit() {\n const groupName = this.locationService.search().group || '';\n // no need to unsubscribe because `contributors` completes\n this.contributorService.contributors\n .subscribe(grps => {\n this.groups = grps;\n this.groupNames = grps.map(g => g.name);\n this.selectGroup(groupName);\n });\n }\n selectGroup(name) {\n name = name.toLowerCase();\n this.selectedGroup = this.groups.find(g => g.name.toLowerCase() === name) || this.groups[0];\n this.locationService.setSearch('', { group: this.selectedGroup.name });\n }\n }\n ContributorListComponent.ɵfac = function ContributorListComponent_Factory(t) { return new (t || ContributorListComponent)(i0.ɵɵdirectiveInject(i1.ContributorService), i0.ɵɵdirectiveInject(i2.LocationService)); };\n ContributorListComponent.ɵcmp = i0.ɵɵdefineComponent({ type: ContributorListComponent, selectors: [[\"aio-contributor-list\"]], decls: 3, vars: 2, consts: [[1, \"flex-center\", \"group-buttons\"], [\"class\", \"button mat-button filter-button\", 3, \"selected\", \"click\", \"keyup.enter\", 4, \"ngFor\", \"ngForOf\"], [\"class\", \"grid-fluid\", 4, \"ngIf\"], [1, \"button\", \"mat-button\", \"filter-button\", 3, \"click\", \"keyup.enter\"], [1, \"grid-fluid\"], [1, \"contributor-group\"], [3, \"person\", 4, \"ngFor\", \"ngForOf\"], [3, \"person\"]], template: function ContributorListComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵtemplate(1, ContributorListComponent_a_1_Template, 2, 3, \"a\", 1);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(2, ContributorListComponent_section_2_Template, 3, 1, \"section\", 2);\n }\n if (rf & 2) {\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngForOf\", ctx.groupNames);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx.selectedGroup);\n }\n }, directives: [i3.NgForOf, i3.NgIf, i4.ContributorComponent], encapsulation: 2 });\n return ContributorListComponent;\n})();\n\n" }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\contributor\\contributor.component.ts", "name": "./src/app/custom-elements/contributor/contributor.component.ts", "index": 486, "index2": 484, "size": 5809, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [], "issuer": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\contributor\\contributor-list.component.ts", "issuerId": null, "issuerName": "./src/app/custom-elements/contributor/contributor-list.component.ts", "issuerPath": [ { "id": 0, "identifier": "multi C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "multi ./src/main.ts", "profile": { "factory": 1, "building": 4 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "./src/main.ts", "profile": { "factory": 1577, "building": 684 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\app.module.ts", "name": "./src/app/app.module.ts", "profile": { "factory": 7434, "building": 6719, "dependencies": 19440 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\custom-elements.module.ts", "name": "./src/app/custom-elements/custom-elements.module.ts", "profile": { "factory": 26179, "building": 975, "dependencies": 19070 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "name": "./src/app/custom-elements/element-registry.ts", "profile": { "factory": 6786, "building": 1923, "dependencies": 1080 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\contributor\\contributor-list.module.ts", "name": "./src/app/custom-elements/contributor/contributor-list.module.ts", "profile": { "factory": 3142, "building": 22, "dependencies": 2295 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\contributor\\contributor-list.component.ts", "name": "./src/app/custom-elements/contributor/contributor-list.component.ts", "profile": { "factory": 2239, "building": 60, "dependencies": 1196 } } ], "profile": { "factory": 1010, "building": 74, "dependencies": 260 }, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\contributor\\contributor-list.component.ts", "module": "./src/app/custom-elements/contributor/contributor-list.component.ts", "moduleName": "./src/app/custom-elements/contributor/contributor-list.component.ts", "type": "harmony side effect evaluation", "userRequest": "./contributor.component", "loc": "5:0-46" }, { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\contributor\\contributor-list.component.ts", "module": "./src/app/custom-elements/contributor/contributor-list.component.ts", "moduleName": "./src/app/custom-elements/contributor/contributor-list.component.ts", "type": "harmony import specifier", "userRequest": "./contributor.component", "loc": "81:45-68" } ], "usedExports": [ "ContributorComponent" ], "providedExports": [ "ContributorComponent" ], "optimizationBailout": [], "depth": 7, "source": "import { CONTENT_URL_PREFIX } from 'app/documents/document.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@angular/material/icon\";\nfunction ContributorComponent_a_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"a\", 7);\n i0.ɵɵtext(1, \" View Bio \");\n i0.ɵɵelementEnd();\n }\n}\nfunction ContributorComponent_a_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"a\", 8);\n i0.ɵɵlistener(\"click\", function ContributorComponent_a_7_Template_a_click_0_listener($event) { return $event.stopPropagation(); });\n i0.ɵɵelement(1, \"mat-icon\", 9);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵpropertyInterpolate1(\"href\", \"https://twitter.com/\", ctx_r1.person.twitter, \"\", i0.ɵɵsanitizeUrl);\n }\n}\nfunction ContributorComponent_a_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"a\", 8);\n i0.ɵɵlistener(\"click\", function ContributorComponent_a_8_Template_a_click_0_listener($event) { return $event.stopPropagation(); });\n i0.ɵɵelementStart(1, \"mat-icon\", 10);\n i0.ɵɵtext(2, \"link\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵpropertyInterpolate(\"href\", ctx_r2.person.website, i0.ɵɵsanitizeUrl);\n }\n}\nfunction ContributorComponent_div_9_Template(rf, ctx) {\n if (rf & 1) {\n const _r7 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 11);\n i0.ɵɵlistener(\"click\", function ContributorComponent_div_9_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r6 = i0.ɵɵnextContext(); return ctx_r6.flipCard(ctx_r6.person); })(\"keyup.enter\", function ContributorComponent_div_9_Template_div_keyup_enter_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r8 = i0.ɵɵnextContext(); return ctx_r8.flipCard(ctx_r8.person); });\n i0.ɵɵelementStart(1, \"h3\");\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"p\", 12);\n i0.ɵɵtext(4);\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r3.person.name);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r3.person.bio);\n }\n}\nconst _c0 = function (a0) { return { \"flipped\": a0 }; };\nexport let ContributorComponent = /*@__PURE__*/ (() => {\n class ContributorComponent {\n constructor() {\n this.noPicture = '_no-one.png';\n this.pictureBase = CONTENT_URL_PREFIX + 'images/bios/';\n }\n flipCard(person) {\n person.isFlipped = !person.isFlipped;\n }\n }\n ContributorComponent.ɵfac = function ContributorComponent_Factory(t) { return new (t || ContributorComponent)(); };\n ContributorComponent.ɵcmp = i0.ɵɵdefineComponent({ type: ContributorComponent, selectors: [[\"aio-contributor\"]], inputs: { person: \"person\" }, decls: 10, vars: 10, consts: [[1, \"contributor-card\", 3, \"ngClass\"], [1, \"card-front\", 3, \"click\", \"keyup.enter\"], [1, \"contributor-image\"], [1, \"contributor-info\"], [\"mat-button\", \"\", \"class\", \"info-item\", 4, \"ngIf\"], [\"mat-icon-button\", \"\", \"class\", \"info-item icon\", \"target\", \"_blank\", 3, \"href\", \"click\", 4, \"ngIf\"], [\"class\", \"card-back\", 3, \"click\", \"keyup.enter\", 4, \"ngIf\"], [\"mat-button\", \"\", 1, \"info-item\"], [\"mat-icon-button\", \"\", \"target\", \"_blank\", 1, \"info-item\", \"icon\", 3, \"href\", \"click\"], [\"svgIcon\", \"logos:twitter\"], [1, \"link-icon\"], [1, \"card-back\", 3, \"click\", \"keyup.enter\"], [1, \"contributor-bio\"]], template: function ContributorComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵelementStart(1, \"div\", 1);\n i0.ɵɵlistener(\"click\", function ContributorComponent_Template_div_click_1_listener() { return ctx.flipCard(ctx.person); })(\"keyup.enter\", function ContributorComponent_Template_div_keyup_enter_1_listener() { return ctx.flipCard(ctx.person); });\n i0.ɵɵelementStart(2, \"h3\");\n i0.ɵɵtext(3);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"div\", 2);\n i0.ɵɵelementStart(5, \"div\", 3);\n i0.ɵɵtemplate(6, ContributorComponent_a_6_Template, 2, 0, \"a\", 4);\n i0.ɵɵtemplate(7, ContributorComponent_a_7_Template, 2, 1, \"a\", 5);\n i0.ɵɵtemplate(8, ContributorComponent_a_8_Template, 3, 1, \"a\", 5);\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(9, ContributorComponent_div_9_Template, 5, 2, \"div\", 6);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction1(8, _c0, ctx.person.isFlipped));\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate(ctx.person.name);\n i0.ɵɵadvance(1);\n i0.ɵɵstyleProp(\"background-image\", \"url(\" + ctx.pictureBase + (ctx.person.picture || ctx.noPicture) + \")\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.person.bio);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx.person.twitter);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx.person.website);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx.person.isFlipped);\n }\n }, directives: [i1.NgClass, i1.NgIf, i2.MatIcon], encapsulation: 2 });\n return ContributorComponent;\n})();\n\n" } ], "filteredModules": 0 } ], "filteredModules": 0, "origins": [ { "moduleId": null, "module": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "moduleName": "./src/app/custom-elements/element-registry.ts", "loc": "16:28-75", "request": "./contributor/contributor-list.module", "reasons": [] } ] }, { "id": 8, "rendered": true, "initial": false, "entry": false, "size": 11431, "names": [ "events-events-module" ], "files": [ "events-events-module-es2015.6447f4bc09fdcfbb5676.js", "events-events-module-es2015.6447f4bc09fdcfbb5676.js.map" ], "hash": "6447f4bc09fdcfbb5676", "siblings": [], "parents": [ 0, 10 ], "children": [], "childrenByOrder": {}, "modules": [ { "id": "tpRh", "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\events\\events.module.ts 6d1e1d5dfd94291b445253bc914e8f86", "name": "./src/app/custom-elements/events/events.module.ts + 2 modules", "index": 515, "index2": 517, "size": 11431, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [ 8 ], "issuer": null, "issuerId": null, "issuerName": null, "issuerPath": null, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "module": "./src/app/custom-elements/element-registry.ts", "moduleName": "./src/app/custom-elements/element-registry.ts", "type": "import()", "userRequest": "./events/events.module", "loc": "44:28-60" } ], "usedExports": true, "providedExports": [ "EventsModule" ], "optimizationBailout": [ "ModuleConcatenation bailout: Cannot concat with ./src/app/documents/document.service.ts", "ModuleConcatenation bailout: Cannot concat with ./src/app/shared/logger.service.ts", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/common/__ivy_ngcc__/fesm2015/common.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/common/__ivy_ngcc__/fesm2015/http.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/rxjs/_esm2015/internal/observable/of.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/rxjs/_esm2015/internal/operators/catchError.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/rxjs/_esm2015/internal/operators/publishLast.js" ], "depth": 5, "modules": [ { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\events\\events.module.ts", "name": "./src/app/custom-elements/events/events.module.ts", "index": 515, "index2": 517, "size": 654, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [], "issuer": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "issuerId": null, "issuerName": "./src/app/custom-elements/element-registry.ts", "issuerPath": [ { "id": 0, "identifier": "multi C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "multi ./src/main.ts", "profile": { "factory": 1, "building": 4 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "./src/main.ts", "profile": { "factory": 1577, "building": 684 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\app.module.ts", "name": "./src/app/app.module.ts", "profile": { "factory": 7434, "building": 6719, "dependencies": 19440 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\custom-elements.module.ts", "name": "./src/app/custom-elements/custom-elements.module.ts", "profile": { "factory": 26179, "building": 975, "dependencies": 19070 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "name": "./src/app/custom-elements/element-registry.ts", "profile": { "factory": 6786, "building": 1923, "dependencies": 1080 } } ], "profile": { "factory": 3142, "building": 22, "dependencies": 2295 }, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "module": "./src/app/custom-elements/element-registry.ts", "moduleName": "./src/app/custom-elements/element-registry.ts", "type": "import()", "userRequest": "./events/events.module", "loc": "44:28-60" } ], "usedExports": true, "providedExports": [ "EventsModule" ], "optimizationBailout": [ "ModuleConcatenation bailout: Module is referenced from these modules with unsupported syntax: ./src/app/custom-elements/element-registry.ts (referenced with import())" ], "depth": 5, "source": "import { CommonModule } from '@angular/common';\nimport { EventsComponent } from './events.component';\nimport { EventsService } from './events.service';\nimport * as i0 from \"@angular/core\";\nexport let EventsModule = /*@__PURE__*/ (() => {\n class EventsModule {\n constructor() {\n this.customElementComponent = EventsComponent;\n }\n }\n EventsModule.ɵmod = i0.ɵɵdefineNgModule({ type: EventsModule });\n EventsModule.ɵinj = i0.ɵɵdefineInjector({ factory: function EventsModule_Factory(t) { return new (t || EventsModule)(); }, providers: [EventsService], imports: [[CommonModule]] });\n return EventsModule;\n})();\n\n" }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\events\\events.service.ts", "name": "./src/app/custom-elements/events/events.service.ts", "index": 517, "index2": 515, "size": 1198, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [], "issuer": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\events\\events.module.ts", "issuerId": null, "issuerName": "./src/app/custom-elements/events/events.module.ts", "issuerPath": [ { "id": 0, "identifier": "multi C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "multi ./src/main.ts", "profile": { "factory": 1, "building": 4 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "./src/main.ts", "profile": { "factory": 1577, "building": 684 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\app.module.ts", "name": "./src/app/app.module.ts", "profile": { "factory": 7434, "building": 6719, "dependencies": 19440 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\custom-elements.module.ts", "name": "./src/app/custom-elements/custom-elements.module.ts", "profile": { "factory": 26179, "building": 975, "dependencies": 19070 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "name": "./src/app/custom-elements/element-registry.ts", "profile": { "factory": 6786, "building": 1923, "dependencies": 1080 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\events\\events.module.ts", "name": "./src/app/custom-elements/events/events.module.ts", "profile": { "factory": 3142, "building": 22, "dependencies": 2295 } } ], "profile": { "factory": 1588, "building": 36, "dependencies": 418 }, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\events\\events.component.ts", "module": "./src/app/custom-elements/events/events.component.ts", "moduleName": "./src/app/custom-elements/events/events.component.ts", "type": "harmony side effect evaluation", "userRequest": "./events.service", "loc": "2:0-39" }, { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\events\\events.module.ts", "module": "./src/app/custom-elements/events/events.module.ts", "moduleName": "./src/app/custom-elements/events/events.module.ts", "type": "harmony side effect evaluation", "userRequest": "./events.service", "loc": "3:0-49" }, { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\events\\events.module.ts", "module": "./src/app/custom-elements/events/events.module.ts", "moduleName": "./src/app/custom-elements/events/events.module.ts", "type": "harmony import specifier", "userRequest": "./events.service", "loc": "12:139-152" }, { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\events\\events.component.ts", "module": "./src/app/custom-elements/events/events.component.ts", "moduleName": "./src/app/custom-elements/events/events.component.ts", "type": "harmony import specifier", "userRequest": "./events.service", "loc": "171:120-136" } ], "usedExports": [ "EventsService" ], "providedExports": [ "EventsService" ], "optimizationBailout": [], "depth": 6, "source": "import { of } from 'rxjs';\nimport { catchError, publishLast } from 'rxjs/operators';\nimport { CONTENT_URL_PREFIX } from 'app/documents/document.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common/http\";\nimport * as i2 from \"app/shared/logger.service\";\nconst eventsPath = CONTENT_URL_PREFIX + 'events.json';\nexport let EventsService = /*@__PURE__*/ (() => {\n class EventsService {\n constructor(http, logger) {\n this.http = http;\n this.logger = logger;\n this.events = this.getEvents();\n }\n getEvents() {\n const events = this.http.get(eventsPath).pipe(catchError(error => {\n this.logger.error(new Error(`${eventsPath} request failed: ${error.message}`));\n return of([]);\n }), publishLast());\n events.connect();\n return events;\n }\n }\n EventsService.ɵfac = function EventsService_Factory(t) { return new (t || EventsService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.Logger)); };\n EventsService.ɵprov = i0.ɵɵdefineInjectable({ token: EventsService, factory: EventsService.ɵfac });\n return EventsService;\n})();\n\n" }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\events\\events.component.ts", "name": "./src/app/custom-elements/events/events.component.ts", "index": 516, "index2": 516, "size": 9539, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [], "issuer": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\events\\events.module.ts", "issuerId": null, "issuerName": "./src/app/custom-elements/events/events.module.ts", "issuerPath": [ { "id": 0, "identifier": "multi C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "multi ./src/main.ts", "profile": { "factory": 1, "building": 4 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "./src/main.ts", "profile": { "factory": 1577, "building": 684 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\app.module.ts", "name": "./src/app/app.module.ts", "profile": { "factory": 7434, "building": 6719, "dependencies": 19440 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\custom-elements.module.ts", "name": "./src/app/custom-elements/custom-elements.module.ts", "profile": { "factory": 26179, "building": 975, "dependencies": 19070 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "name": "./src/app/custom-elements/element-registry.ts", "profile": { "factory": 6786, "building": 1923, "dependencies": 1080 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\events\\events.module.ts", "name": "./src/app/custom-elements/events/events.module.ts", "profile": { "factory": 3142, "building": 22, "dependencies": 2295 } } ], "profile": { "factory": 1588, "building": 36, "dependencies": 418 }, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\events\\events.module.ts", "module": "./src/app/custom-elements/events/events.module.ts", "moduleName": "./src/app/custom-elements/events/events.module.ts", "type": "harmony side effect evaluation", "userRequest": "./events.component", "loc": "2:0-53" }, { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\events\\events.module.ts", "module": "./src/app/custom-elements/events/events.module.ts", "moduleName": "./src/app/custom-elements/events/events.module.ts", "type": "harmony import specifier", "userRequest": "./events.component", "loc": "8:42-57" } ], "usedExports": [ "EventsComponent" ], "providedExports": [ "EventsComponent" ], "optimizationBailout": [], "depth": 6, "source": "import * as i0 from \"@angular/core\";\nimport * as i1 from \"./events.service\";\nimport * as i2 from \"@angular/common\";\nfunction EventsComponent_div_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\");\n i0.ɵɵelementStart(1, \"p\");\n i0.ɵɵtext(2, \"We don't have any upcoming speaking engagements at the moment.\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"p\");\n i0.ɵɵtext(4, \"Until something comes up, make sure you check our \");\n i0.ɵɵelementStart(5, \"a\", 4);\n i0.ɵɵtext(6, \"YouTube channel\");\n i0.ɵɵelementEnd();\n i0.ɵɵtext(7, \" and follow us on \");\n i0.ɵɵelementStart(8, \"a\", 5);\n i0.ɵɵtext(9, \"social media\");\n i0.ɵɵelementEnd();\n i0.ɵɵtext(10, \".\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(11, \"p\");\n i0.ɵɵtext(12, \"If you want us to be part of your event reach out on \");\n i0.ɵɵelementStart(13, \"a\", 6);\n i0.ɵɵtext(14, \"devrel@angular.io\");\n i0.ɵɵelementEnd();\n i0.ɵɵtext(15, \"!\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n }\n}\nfunction EventsComponent_table_3_tr_10_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"tr\");\n i0.ɵɵelementStart(1, \"th\");\n i0.ɵɵelementStart(2, \"a\", 7);\n i0.ɵɵtext(3);\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"td\");\n i0.ɵɵtext(5);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(6, \"td\");\n i0.ɵɵelementStart(7, \"div\");\n i0.ɵɵtext(8);\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const event_r4 = ctx.$implicit;\n const ctx_r3 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(2);\n i0.ɵɵpropertyInterpolate(\"href\", event_r4.linkUrl, i0.ɵɵsanitizeUrl);\n i0.ɵɵpropertyInterpolate(\"title\", event_r4.tooltip);\n i0.ɵɵadvance(1);\n i0.ɵɵtextInterpolate(event_r4.name);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(event_r4.location);\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate1(\" \", ctx_r3.getEventDates(event_r4), \" \");\n }\n}\nfunction EventsComponent_table_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"table\", 2);\n i0.ɵɵelementStart(1, \"thead\");\n i0.ɵɵelementStart(2, \"tr\");\n i0.ɵɵelementStart(3, \"th\");\n i0.ɵɵtext(4, \"Event\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"th\");\n i0.ɵɵtext(6, \"Location\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(7, \"th\");\n i0.ɵɵtext(8, \"Date\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(9, \"tbody\");\n i0.ɵɵtemplate(10, EventsComponent_table_3_tr_10_Template, 9, 5, \"tr\", 3);\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance(10);\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.upcomingEvents);\n }\n}\nfunction EventsComponent_tr_17_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"tr\");\n i0.ɵɵelementStart(1, \"th\");\n i0.ɵɵelementStart(2, \"a\", 7);\n i0.ɵɵtext(3);\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"td\");\n i0.ɵɵtext(5);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(6, \"td\");\n i0.ɵɵelementStart(7, \"div\");\n i0.ɵɵtext(8);\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const event_r5 = ctx.$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵpropertyInterpolate(\"href\", event_r5.linkUrl, i0.ɵɵsanitizeUrl);\n i0.ɵɵpropertyInterpolate(\"title\", event_r5.tooltip);\n i0.ɵɵadvance(1);\n i0.ɵɵtextInterpolate(event_r5.name);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(event_r5.location);\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate1(\" \", ctx_r2.getEventDates(event_r5), \" \");\n }\n}\nconst DAY = 24 * 60 * 60 * 1000;\nconst MONTHS = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n];\nexport let EventsComponent = /*@__PURE__*/ (() => {\n class EventsComponent {\n constructor(eventsService) {\n this.eventsService = eventsService;\n }\n ngOnInit() {\n this.eventsService.events.subscribe(events => {\n this.pastEvents = events\n .filter(event => new Date(event.date.end).getTime() < Date.now() - DAY)\n .sort((l, r) => isBefore(l.date, r.date) ? 1 : -1);\n this.upcomingEvents = events\n .filter(event => new Date(event.date.end).getTime() >= Date.now() - DAY)\n .sort((l, r) => isBefore(l.date, r.date) ? -1 : 1);\n });\n }\n getEventDates(event) {\n let dateString;\n // Check if there is a workshop\n if (event.workshopsDate) {\n const mainEventDateString = `${processDate(event.date)} (conference)`;\n const workshopsDateString = `${processDate(event.workshopsDate)} (workshops)`;\n const areWorkshopsBeforeEvent = isBefore(event.workshopsDate, event.date);\n dateString = areWorkshopsBeforeEvent ?\n `${workshopsDateString}, ${mainEventDateString}` :\n `${mainEventDateString}, ${workshopsDateString}`;\n }\n else {\n // If no work shop date create conference date string\n dateString = processDate(event.date);\n }\n dateString = `${dateString}, ${new Date(event.date.end).getUTCFullYear()}`;\n return dateString;\n }\n }\n EventsComponent.ɵfac = function EventsComponent_Factory(t) { return new (t || EventsComponent)(i0.ɵɵdirectiveInject(i1.EventsService)); };\n EventsComponent.ɵcmp = i0.ɵɵdefineComponent({ type: EventsComponent, selectors: [[\"aio-events\"]], decls: 18, vars: 3, consts: [[4, \"ngIf\"], [\"class\", \"is-full-width\", 4, \"ngIf\"], [1, \"is-full-width\"], [4, \"ngFor\", \"ngForOf\"], [\"href\", \"https://www.youtube.com/angular\"], [\"href\", \"https://twitter.com/angular\"], [\"href\", \"mailto:devrel@angular.io\"], [3, \"href\", \"title\"]], template: function EventsComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"h2\");\n i0.ɵɵtext(1, \"Where we'll be presenting:\");\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(2, EventsComponent_div_2_Template, 16, 0, \"div\", 0);\n i0.ɵɵtemplate(3, EventsComponent_table_3_Template, 11, 1, \"table\", 1);\n i0.ɵɵelement(4, \"br\");\n i0.ɵɵelementStart(5, \"h2\");\n i0.ɵɵtext(6, \"Where we already presented:\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(7, \"table\", 2);\n i0.ɵɵelementStart(8, \"thead\");\n i0.ɵɵelementStart(9, \"tr\");\n i0.ɵɵelementStart(10, \"th\");\n i0.ɵɵtext(11, \"Event\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(12, \"th\");\n i0.ɵɵtext(13, \"Location\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(14, \"th\");\n i0.ɵɵtext(15, \"Date\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(16, \"tbody\");\n i0.ɵɵtemplate(17, EventsComponent_tr_17_Template, 9, 5, \"tr\", 3);\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", !(ctx.upcomingEvents == null ? null : ctx.upcomingEvents.length));\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx.upcomingEvents == null ? null : ctx.upcomingEvents.length);\n i0.ɵɵadvance(14);\n i0.ɵɵproperty(\"ngForOf\", ctx.pastEvents);\n }\n }, directives: [i2.NgIf, i2.NgForOf], encapsulation: 2 });\n return EventsComponent;\n})();\nfunction processDate(dates) {\n // Covert Date sting to date object for comparisons\n const startDate = new Date(dates.start);\n const endDate = new Date(dates.end);\n // Create a date string in the start like January 31\n let processedDate = `${MONTHS[startDate.getUTCMonth()]} ${startDate.getUTCDate()}`;\n // If they are in different months add the string '- February 2' Making the final string January 31 - February 2\n if (startDate.getUTCMonth() !== endDate.getUTCMonth()) {\n processedDate = `${processedDate} - ${MONTHS[endDate.getUTCMonth()]} ${endDate.getUTCDate()}`;\n }\n else if (startDate.getUTCDate() !== endDate.getUTCDate()) {\n // If not add - date eg it will make // January 30-31\n processedDate = `${processedDate}-${endDate.getUTCDate()}`;\n }\n return processedDate;\n}\nfunction isBefore(duration1, duration2) {\n return (duration1.start < duration2.start) ||\n (duration1.start === duration2.start && duration1.end < duration2.end);\n}\n\n" } ], "filteredModules": 0 } ], "filteredModules": 0, "origins": [ { "moduleId": null, "module": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "moduleName": "./src/app/custom-elements/element-registry.ts", "loc": "44:28-60", "request": "./events/events.module", "reasons": [] } ] }, { "id": 9, "rendered": true, "initial": false, "entry": false, "size": 14033, "names": [ "live-example-live-example-module" ], "files": [ "live-example-live-example-module-es2015.e26ac21b0f5aff3a4dc7.js", "live-example-live-example-module-es2015.e26ac21b0f5aff3a4dc7.js.map" ], "hash": "e26ac21b0f5aff3a4dc7", "siblings": [], "parents": [ 0, 10 ], "children": [], "childrenByOrder": {}, "modules": [ { "id": "m7ka", "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\live-example\\live-example.module.ts aa8b42a9fa9d3094c6f8e04f09ff7f37", "name": "./src/app/custom-elements/live-example/live-example.module.ts + 2 modules", "index": 512, "index2": 514, "size": 14033, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [ 9 ], "issuer": null, "issuerId": null, "issuerName": null, "issuerPath": null, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "module": "./src/app/custom-elements/element-registry.ts", "moduleName": "./src/app/custom-elements/element-registry.ts", "type": "import()", "userRequest": "./live-example/live-example.module", "loc": "40:28-72" } ], "usedExports": true, "providedExports": [ "LiveExampleModule" ], "optimizationBailout": [ "ModuleConcatenation bailout: Cannot concat with ./src/app/documents/document.service.ts", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/common/__ivy_ngcc__/fesm2015/common.js", "ModuleConcatenation bailout: Cannot concat with ./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js" ], "depth": 5, "modules": [ { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\live-example\\live-example.module.ts", "name": "./src/app/custom-elements/live-example/live-example.module.ts", "index": 512, "index2": 514, "size": 632, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [], "issuer": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "issuerId": null, "issuerName": "./src/app/custom-elements/element-registry.ts", "issuerPath": [ { "id": 0, "identifier": "multi C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "multi ./src/main.ts", "profile": { "factory": 1, "building": 4 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "./src/main.ts", "profile": { "factory": 1577, "building": 684 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\app.module.ts", "name": "./src/app/app.module.ts", "profile": { "factory": 7434, "building": 6719, "dependencies": 19440 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\custom-elements.module.ts", "name": "./src/app/custom-elements/custom-elements.module.ts", "profile": { "factory": 26179, "building": 975, "dependencies": 19070 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "name": "./src/app/custom-elements/element-registry.ts", "profile": { "factory": 6786, "building": 1923, "dependencies": 1080 } } ], "profile": { "factory": 3142, "building": 22, "dependencies": 2295 }, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "module": "./src/app/custom-elements/element-registry.ts", "moduleName": "./src/app/custom-elements/element-registry.ts", "type": "import()", "userRequest": "./live-example/live-example.module", "loc": "40:28-72" } ], "usedExports": true, "providedExports": [ "LiveExampleModule" ], "optimizationBailout": [ "ModuleConcatenation bailout: Module is referenced from these modules with unsupported syntax: ./src/app/custom-elements/element-registry.ts (referenced with import())" ], "depth": 5, "source": "import { CommonModule } from '@angular/common';\nimport { LiveExampleComponent } from './live-example.component';\nimport * as i0 from \"@angular/core\";\nexport let LiveExampleModule = /*@__PURE__*/ (() => {\n class LiveExampleModule {\n constructor() {\n this.customElementComponent = LiveExampleComponent;\n }\n }\n LiveExampleModule.ɵmod = i0.ɵɵdefineNgModule({ type: LiveExampleModule });\n LiveExampleModule.ɵinj = i0.ɵɵdefineInjector({ factory: function LiveExampleModule_Factory(t) { return new (t || LiveExampleModule)(); }, imports: [[CommonModule]] });\n return LiveExampleModule;\n})();\n\n" }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\live-example\\live-example.component.ts", "name": "./src/app/custom-elements/live-example/live-example.component.ts", "index": 513, "index2": 513, "size": 11657, "cacheable": true, "built": true, "optional": false, "prefetched": false, "chunks": [], "issuer": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\live-example\\live-example.module.ts", "issuerId": null, "issuerName": "./src/app/custom-elements/live-example/live-example.module.ts", "issuerPath": [ { "id": 0, "identifier": "multi C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "multi ./src/main.ts", "profile": { "factory": 1, "building": 4 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\main.ts", "name": "./src/main.ts", "profile": { "factory": 1577, "building": 684 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\app.module.ts", "name": "./src/app/app.module.ts", "profile": { "factory": 7434, "building": 6719, "dependencies": 19440 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\custom-elements.module.ts", "name": "./src/app/custom-elements/custom-elements.module.ts", "profile": { "factory": 26179, "building": 975, "dependencies": 19070 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\element-registry.ts", "name": "./src/app/custom-elements/element-registry.ts", "profile": { "factory": 6786, "building": 1923, "dependencies": 1080 } }, { "id": null, "identifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\live-example\\live-example.module.ts", "name": "./src/app/custom-elements/live-example/live-example.module.ts", "profile": { "factory": 3142, "building": 22, "dependencies": 2295 } } ], "profile": { "factory": 1311, "building": 123, "dependencies": 4 }, "failed": false, "errors": 0, "warnings": 0, "assets": [], "reasons": [ { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\live-example\\live-example.module.ts", "module": "./src/app/custom-elements/live-example/live-example.module.ts", "moduleName": "./src/app/custom-elements/live-example/live-example.module.ts", "type": "harmony side effect evaluation", "userRequest": "./live-example.component", "loc": "2:0-64" }, { "moduleId": null, "moduleIdentifier": "C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-angular\\src\\babel\\webpack-loader.js??ref--7-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--7-1!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@angular-devkit\\build-optimizer\\src\\build-optimizer\\webpack-loader.js??ref--17-0!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\node_modules\\@ngtools\\webpack\\src\\ivy\\index.js!C:\\WorkDir\\GitHub\\honeymoose\\angular-cn\\aio\\src\\app\\custom-elements\\live-example\\live-example.module.ts", "module": "./src/app/custom-elements/live-example/live-example.module.ts", "moduleName": "./src/app/custom-elements/live-example/live-example.module.ts", "type": "harmony import specifier", "userRequest": "./live-example.component", "loc": "7:42-62" } ], "usedExports": [ "LiveExampleComponent" ], "providedExports": [ "LiveExampleComponent", "EmbeddedStackblitzComponent" ], "optimizationBailout": [], "depth": 6, "source": "import { CONTENT_URL_PREFIX } from 'app/documents/document.service';\nimport { boolFromValue, getAttrs, getAttrValue } from 'app/shared/attribute-utils';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nconst _c0 = [\"content\"];\nfunction LiveExampleComponent_span_4_p_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"p\");\n i0.ɵɵtext(1, \" You can also \");\n i0.ɵɵelementStart(2, \"a\", 8);\n i0.ɵɵtext(3, \"download this example\");\n i0.ɵɵelementEnd();\n i0.ɵɵtext(4, \". \");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r4 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"href\", ctx_r4.zip, i0.ɵɵsanitizeUrl);\n }\n}\nfunction LiveExampleComponent_span_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\");\n i0.ɵɵelementStart(1, \"div\", 5);\n i0.ɵɵelement(2, \"aio-embedded-stackblitz\", 6);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(3, LiveExampleComponent_span_4_p_3_Template, 5, 1, \"p\", 7);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance(1);\n i0.ɵɵpropertyInterpolate(\"title\", ctx_r1.title);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"src\", ctx_r1.stackblitz);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.enableDownload);\n }\n}\nfunction LiveExampleComponent_span_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\");\n i0.ɵɵelementStart(1, \"a\", 9);\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance(1);\n i0.ɵɵpropertyInterpolate(\"title\", ctx_r2.title);\n i0.ɵɵproperty(\"href\", ctx_r2.zip, i0.ɵɵsanitizeUrl);\n i0.ɵɵadvance(1);\n i0.ɵɵtextInterpolate(ctx_r2.title);\n }\n}\nfunction LiveExampleComponent_span_6_span_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\");\n i0.ɵɵtext(1, \" / \");\n i0.ɵɵelementStart(2, \"a\", 8);\n i0.ɵɵtext(3, \"download example\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r5 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"href\", ctx_r5.zip, i0.ɵɵsanitizeUrl);\n }\n}\nfunction LiveExampleComponent_span_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\");\n i0.ɵɵelementStart(1, \"a\", 10);\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(3, LiveExampleComponent_span_6_span_3_Template, 4, 1, \"span\", 7);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext();\n i0.ɵɵadvance(1);\n i0.ɵɵpropertyInterpolate(\"title\", ctx_r3.title);\n i0.ɵɵproperty(\"href\", ctx_r3.stackblitz, i0.ɵɵsanitizeUrl);\n i0.ɵɵadvance(1);\n i0.ɵɵtextInterpolate(ctx_r3.title);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx_r3.enableDownload);\n }\n}\nconst _c1 = [\"*\"];\nconst _c2 = [\"iframe\"];\nconst LIVE_EXAMPLE_BASE = CONTENT_URL_PREFIX + 'live-examples/';\nconst ZIP_BASE = CONTENT_URL_PREFIX + 'zips/';\n/**\n * Angular.io Live Example Embedded Component\n *\n * Renders a link to a live/host example of the doc page.\n *\n * All attributes and the text content are optional\n *\n * Usage:\n * // text for live example link and tooltip\n * text // higher precedence way to specify text for live example link and tooltip\n * \n * Example:\n *

Run Try the live example

.\n * // ~/resources/live-examples/{page}/stackblitz.json\n *\n *

Run this example

.\n * // ~/resources/live-examples/toh-pt1/stackblitz.json\n *\n * // Link to the default stackblitz in the toh-pt1 sample\n * // The title overrides default (\"live example\") with \"Tour of Heroes - Part 1\"\n *

Run

.\n * // ~/resources/live-examples/toh-pt1/stackblitz.json\n *\n *

Run

.\n * // ~/resources/live-examples/{page}/minimal.stackblitz.json\n *\n * // Embed the current page's default stackblitz\n * // Text within tag is \"live example\"\n * // No title (no tooltip)\n * \n * // ~/resources/live-examples/{page}/stackblitz.json\n *\n * // Displays within the document page as an embedded style stackblitz editor\n * Tour of Heroes - Part 1\n * // ~/resources/live-examples/toh-pt1/minimal.stackblitz.json\n */\nexport let LiveExampleComponent = /*@__PURE__*/ (() => {\n class LiveExampleComponent {\n constructor(elementRef, location) {\n const attrs = getAttrs(elementRef);\n const exampleDir = this.getExampleDir(attrs, location.path(false));\n const stackblitzName = this.getStackblitzName(attrs);\n this.mode = this.getMode(attrs);\n this.enableDownload = this.getEnableDownload(attrs);\n this.stackblitz = this.getStackblitz(exampleDir, stackblitzName, this.mode === 'embedded');\n this.zip = this.getZip(exampleDir, stackblitzName);\n this.title = this.getTitle(attrs);\n }\n ngAfterContentInit() {\n // Angular will sanitize this title when displayed, so it should be plain text.\n const textContent = this.content.nativeElement.textContent.trim();\n if (textContent) {\n this.title = textContent;\n }\n }\n getEnableDownload(attrs) {\n const downloadDisabled = boolFromValue(getAttrValue(attrs, 'noDownload'));\n return !downloadDisabled;\n }\n getExampleDir(attrs, path) {\n let exampleDir = getAttrValue(attrs, 'name');\n if (!exampleDir) {\n // Take the last path segment, excluding query params and hash fragment.\n const match = path.match(/[^/?#]+(?=\\/?(?:\\?|#|$))/);\n exampleDir = match ? match[0] : 'index';\n }\n return exampleDir.trim();\n }\n getMode(attrs) {\n const downloadOnly = boolFromValue(getAttrValue(attrs, 'downloadOnly'));\n const isEmbedded = boolFromValue(getAttrValue(attrs, 'embedded'));\n return downloadOnly ? 'downloadOnly'\n : isEmbedded ? 'embedded' :\n 'default';\n }\n getStackblitz(exampleDir, stackblitzName, isEmbedded) {\n const urlQuery = isEmbedded ? '?ctl=1' : '';\n return `${LIVE_EXAMPLE_BASE}${exampleDir}/${stackblitzName}stackblitz.html${urlQuery}`;\n }\n getStackblitzName(attrs) {\n const attrValue = (getAttrValue(attrs, 'stackblitz') || '').trim();\n return attrValue && `${attrValue}.`;\n }\n getTitle(attrs) {\n return (getAttrValue(attrs, 'title') || 'live example').trim();\n }\n getZip(exampleDir, stackblitzName) {\n const zipName = exampleDir.split('/')[0];\n return `${ZIP_BASE}${exampleDir}/${stackblitzName}${zipName}.zip`;\n }\n }\n LiveExampleComponent.ɵfac = function LiveExampleComponent_Factory(t) { return new (t || LiveExampleComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Location)); };\n LiveExampleComponent.ɵcmp = i0.ɵɵdefineComponent({ type: LiveExampleComponent, selectors: [[\"live-example\"]], viewQuery: function LiveExampleComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 3);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.content = _t.first);\n }\n }, ngContentSelectors: _c1, decls: 7, vars: 3, consts: [[2, \"display\", \"none\"], [\"content\", \"\"], [3, \"ngSwitch\"], [4, \"ngSwitchCase\"], [4, \"ngSwitchDefault\"], [3, \"title\"], [3, \"src\"], [4, \"ngIf\"], [\"download\", \"\", \"title\", \"Download example\", 3, \"href\"], [\"download\", \"\", 3, \"href\", \"title\"], [\"target\", \"_blank\", 3, \"href\", \"title\"]], template: function LiveExampleComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"span\", 0, 1);\n i0.ɵɵprojection(2);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"span\", 2);\n i0.ɵɵtemplate(4, LiveExampleComponent_span_4_Template, 4, 3, \"span\", 3);\n i0.ɵɵtemplate(5, LiveExampleComponent_span_5_Template, 3, 3, \"span\", 3);\n i0.ɵɵtemplate(6, LiveExampleComponent_span_6_Template, 4, 4, \"span\", 4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngSwitch\", ctx.mode);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngSwitchCase\", \"embedded\");\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngSwitchCase\", \"downloadOnly\");\n }\n }, directives: function () { return [i1.NgSwitch, i1.NgSwitchCase, i1.NgSwitchDefault, EmbeddedStackblitzComponent, i1.NgIf]; }, encapsulation: 2 });\n return LiveExampleComponent;\n})();\n///// EmbeddedStackblitzComponent ///\n/**\n * Hides the