{"ast":null,"code":"var _class, _class2, _class3, _class4, _class5, _class6, _class7, _class8, _class9, _class10, _class12, _class13, _class14, _class15, _class16, _class17, _class18, _class19, _class20, _class21, _class22, _class23, _class24, _class25, _class26;\n/**\n * @license Angular v16.2.2\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { Subject, Subscription, BehaviorSubject, Observable, merge as merge$1, of } from 'rxjs';\nimport { share, switchMap, distinctUntilChanged, first } from 'rxjs/operators';\nfunction getClosureSafeProperty(objWithPropertyToExtract) {\n for (let key in objWithPropertyToExtract) {\n if (objWithPropertyToExtract[key] === getClosureSafeProperty) {\n return key;\n }\n }\n throw Error('Could not find renamed property on target object.');\n}\n/**\n * Sets properties on a target object from a source object, but only if\n * the property doesn't already exist on the target object.\n * @param target The target to set properties on\n * @param source The source of the property keys and values to set\n */\nfunction fillProperties(target, source) {\n for (const key in source) {\n if (source.hasOwnProperty(key) && !target.hasOwnProperty(key)) {\n target[key] = source[key];\n }\n }\n}\nfunction stringify(token) {\n if (typeof token === 'string') {\n return token;\n }\n if (Array.isArray(token)) {\n return '[' + token.map(stringify).join(', ') + ']';\n }\n if (token == null) {\n return '' + token;\n }\n if (token.overriddenName) {\n return `${token.overriddenName}`;\n }\n if (token.name) {\n return `${token.name}`;\n }\n const res = token.toString();\n if (res == null) {\n return '' + res;\n }\n const newLineIndex = res.indexOf('\\n');\n return newLineIndex === -1 ? res : res.substring(0, newLineIndex);\n}\n/**\n * Concatenates two strings with separator, allocating new strings only when necessary.\n *\n * @param before before string.\n * @param separator separator string.\n * @param after after string.\n * @returns concatenated string.\n */\nfunction concatStringsWithSpace(before, after) {\n return before == null || before === '' ? after === null ? '' : after : after == null || after === '' ? before : before + ' ' + after;\n}\nconst __forward_ref__ = getClosureSafeProperty({\n __forward_ref__: getClosureSafeProperty\n});\n/**\n * Allows to refer to references which are not yet defined.\n *\n * For instance, `forwardRef` is used when the `token` which we need to refer to for the purposes of\n * DI is declared, but not yet defined. It is also used when the `token` which we use when creating\n * a query is not yet defined.\n *\n * `forwardRef` is also used to break circularities in standalone components imports.\n *\n * @usageNotes\n * ### Circular dependency example\n * {@example core/di/ts/forward_ref/forward_ref_spec.ts region='forward_ref'}\n *\n * ### Circular standalone reference import example\n * ```ts\n * @Component({\n * standalone: true,\n * imports: [ChildComponent],\n * selector: 'app-parent',\n * template: `<app-child [hideParent]=\"hideParent\"></app-child>`,\n * })\n * export class ParentComponent {\n * @Input() hideParent: boolean;\n * }\n *\n *\n * @Component({\n * standalone: true,\n * imports: [CommonModule, forwardRef(() => ParentComponent)],\n * selector: 'app-child',\n * template: `<app-parent *ngIf=\"!hideParent\"></app-parent>`,\n * })\n * export class ChildComponent {\n * @Input() hideParent: boolean;\n * }\n * ```\n *\n * @publicApi\n */\nfunction forwardRef(forwardRefFn) {\n forwardRefFn.__forward_ref__ = forwardRef;\n forwardRefFn.toString = function () {\n return stringify(this());\n };\n return forwardRefFn;\n}\n/**\n * Lazily retrieves the reference value from a forwardRef.\n *\n * Acts as the identity function when given a non-forward-ref value.\n *\n * @usageNotes\n * ### Example\n *\n * {@example core/di/ts/forward_ref/forward_ref_spec.ts region='resolve_forward_ref'}\n *\n * @see {@link forwardRef}\n * @publicApi\n */\nfunction resolveForwardRef(type) {\n return isForwardRef(type) ? type() : type;\n}\n/** Checks whether a function is wrapped by a `forwardRef`. */\nfunction isForwardRef(fn) {\n return typeof fn === 'function' && fn.hasOwnProperty(__forward_ref__) && fn.__forward_ref__ === forwardRef;\n}\nfunction isEnvironmentProviders(value) {\n return value && !!value.ɵproviders;\n}\n\n/**\n * Base URL for the error details page.\n *\n * Keep this constant in sync across:\n * - packages/compiler-cli/src/ngtsc/diagnostics/src/error_details_base_url.ts\n * - packages/core/src/error_details_base_url.ts\n */\nconst ERROR_DETAILS_PAGE_BASE_URL = 'https://angular.io/errors';\n/**\n * URL for the XSS security documentation.\n */\nconst XSS_SECURITY_URL = 'https://g.co/ng/security#xss';\n\n/**\n * Class that represents a runtime error.\n * Formats and outputs the error message in a consistent way.\n *\n * Example:\n * ```\n * throw new RuntimeError(\n * RuntimeErrorCode.INJECTOR_ALREADY_DESTROYED,\n * ngDevMode && 'Injector has already been destroyed.');\n * ```\n *\n * Note: the `message` argument contains a descriptive error message as a string in development\n * mode (when the `ngDevMode` is defined). In production mode (after tree-shaking pass), the\n * `message` argument becomes `false`, thus we account for it in the typings and the runtime\n * logic.\n */\nclass RuntimeError extends Error {\n constructor(code, message) {\n super(formatRuntimeError(code, message));\n this.code = code;\n }\n}\n/**\n * Called to format a runtime error.\n * See additional info on the `message` argument type in the `RuntimeError` class description.\n */\nfunction formatRuntimeError(code, message) {\n // Error code might be a negative number, which is a special marker that instructs the logic to\n // generate a link to the error details page on angular.io.\n // We also prepend `0` to non-compile-time errors.\n const fullCode = `NG0${Math.abs(code)}`;\n let errorMessage = `${fullCode}${message ? ': ' + message : ''}`;\n if (ngDevMode && code < 0) {\n const addPeriodSeparator = !errorMessage.match(/[.,;!?\\n]$/);\n const separator = addPeriodSeparator ? '.' : '';\n errorMessage = `${errorMessage}${separator} Find more at ${ERROR_DETAILS_PAGE_BASE_URL}/${fullCode}`;\n }\n return errorMessage;\n}\n\n/**\n * Used for stringify render output in Ivy.\n * Important! This function is very performance-sensitive and we should\n * be extra careful not to introduce megamorphic reads in it.\n * Check `core/test/render3/perf/render_stringify` for benchmarks and alternate implementations.\n */\nfunction renderStringify(value) {\n if (typeof value === 'string') return value;\n if (value == null) return '';\n // Use `String` so that it invokes the `toString` method of the value. Note that this\n // appears to be faster than calling `value.toString` (see `render_stringify` benchmark).\n return String(value);\n}\n/**\n * Used to stringify a value so that it can be displayed in an error message.\n * Important! This function contains a megamorphic read and should only be\n * used for error messages.\n */\nfunction stringifyForError(value) {\n if (typeof value === 'function') return value.name || value.toString();\n if (typeof value === 'object' && value != null && typeof value.type === 'function') {\n return value.type.name || value.type.toString();\n }\n return renderStringify(value);\n}\n\n/** Called when directives inject each other (creating a circular dependency) */\nfunction throwCyclicDependencyError(token, path) {\n const depPath = path ? `. Dependency path: ${path.join(' > ')} > ${token}` : '';\n throw new RuntimeError(-200 /* RuntimeErrorCode.CYCLIC_DI_DEPENDENCY */, `Circular dependency in DI detected for ${token}${depPath}`);\n}\nfunction throwMixedMultiProviderError() {\n throw new Error(`Cannot mix multi providers and regular providers`);\n}\nfunction thr
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
Angular front end, express, node.js, JSON 聊天室 (1767个子文件)
group.component.css 643B
home.component.css 434B
login.component.css 186B
styles.css 80B
manage-user.component.css 62B
profile.component.css 57B
app.component.css 50B
.DS_Store 12KB
.DS_Store 8KB
.DS_Store 8KB
.DS_Store 8KB
.DS_Store 6KB
.editorconfig 274B
.gitignore 548B
.gitignore 31B
.gitkeep 0B
group.component.html 5KB
home.component.html 3KB
app.component.html 2KB
manage-user.component.html 1KB
login.component.html 1KB
profile.component.html 614B
index.html 501B
favicon.ico 948B
layout.jade 125B
error.jade 84B
index.jade 66B
group.js 3KB
user.js 1KB
channel.js 1KB
app.js 1KB
user.js 1KB
group.js 1KB
index.js 1KB
channel.js 846B
response.js 365B
index.js 353B
log.js 353B
log.js 311B
ebf663c4fc11ef553a8c03cea82f2788e8c8c5646bef7ddbe0ae1f016fcda39b.json 3.29MB
a3f0fc8709a75ffd0017a27030330c29337a9c932d4e96d5a0cfc8ee6af979e4.json 782KB
4b3875e9bb98d428ece17577b2ccd7401aa056260f947684910d3353c10b79df.json 755KB
e5ae675a3755fa9ccf549dd6cc571e54a331961b868d77e8e50e9cc07963f7c1.json 723KB
46f35841aee61ef4f161340c0f8610dfae2986db342e9aea2ca5be490d3e8f2b.json 323KB
5399568e26f677977e8c04826712f9a89a7858fa9169a4e47fa8c5ec112c874b.json 305KB
b4c11f2b9328eab5b2a5f8ef878de1da3e1c320447afea2dcbec45552dd0de2a.json 291KB
e26d4859098707c66401c82d4b3eb0e6165fe9e526ec48e8603dacd9ea729158.json 229KB
299d5a3e3ed8f50ad2c649a448cb523456c35e54f3fcf00709872a9c6325b96d.json 84KB
91224084116dccf8459d297d25dad90fe3cf2f0e58d47489127cdc40679be74f.json 66KB
5d191922b91c9bbd5d7ebb49b9dc61f88547d11ca8b98347453221c5f717c092.json 66KB
d62446a8c080ecb47ce1ab09447fcc2e5de2f8daf87bf9356232b2603979c462.json 66KB
b78e5a51c48660d0a8bfa2f65ef36a819d5657b6fec09d989dd84adec5788aa7.json 52KB
777c0aeeb1c891ea4a12b679cac061cba6a2cfb6e2d9c6c73f6ce3f5483f4da6.json 46KB
a75dfa7f411d1d7dc85e381d761015c60546b2cab0dc090d6fb2e3174d95dbd8.json 46KB
88076d43551712d89cc8e888c3d868b0869666f69e93ff181ed783f3ac0668a8.json 46KB
544532bbeeed5b7d8e32f8d61726e37880ffdabc434ebb7bceaf5cfc68223485.json 46KB
2a4e9fd76ad80d1ea13bc5ad25d07376f7e060bed17fd48c4a866d8959b77f1b.json 46KB
30cfd47f64dc722b61cac525a017487f98f2e36df4573396d445603c90ea8bfe.json 46KB
6cad7e8f00b709b8ec0a9025380a402f1f9efd3c8f7f4c6a196602c29a197d75.json 46KB
70b14f65f809d05f4e35795fe82c76747eb50a7b51d5028e3c19f73c1b78ce93.json 46KB
e724c8aee1e3225d78c712519ed74bbd03a34646ca10ea0618470d6a3366ead6.json 46KB
445ca054f2f7517c247105952bc2d7e7b708e63a14b763476e062dcbdf8d63be.json 46KB
356885f84e028311cc31c61920f0eaec1958f6de8d443cd1466d449e7a6d17b2.json 46KB
2974349e2489785bd7c6933d447f8286f65d8000d425eab1d8485e69f2b75a45.json 46KB
a2bfb4a27d04b7895e39937167e84e7e26036bd9abf9005ae2ee9e2977180e30.json 46KB
6ed9a687d323ab6ebd12ad369f08f5a1dc341d820a1439eb8fa815e21c6f9fba.json 46KB
65080a4562b16a81cfa84689b065ff6778b3f66a6ad5ce1da9d5d46a1ed5c28b.json 46KB
11228baae15486434f8468baa53f158c89965f94d0edb0db40b166f45a95f336.json 46KB
708c9a0c88c8ca8fb52127e7db13e6de733005d7803feb5ce85ba8ba2461ac4d.json 46KB
35de0c827feba776af6ee84f6711177c88a6e1e6f65b77148825ed1d82ac25f7.json 46KB
3b7ff275dd621a9ecd35c9e036f04e27375e6792ba5093d92b23e3f07fb2296e.json 46KB
62b8f3a0d984bc36a728fe4e8cd28c6961d70504e354ec203dbb6840f2679c06.json 46KB
a88277be0755cf0765562ab9d69b80e445a2d39c30e8423c70914a20b10b3a6b.json 46KB
ca58fd0a480905de1e18adafb2f990183de35556ec9850b6b7ef9d7a3cbf5752.json 46KB
9bed266761e2c36cc986a062f669c85687bcddfba8abda64df2e72cdaea5ce60.json 46KB
1c1438c9509efda20b602b3e39cd91344320c81047b2669b91558f7b74e010b2.json 46KB
c1dd73268d3182fd11e889f7c813d77768e1885e3b74165ad2847dc7a1c67d65.json 46KB
0db7a5715c51ce23019909605f0f59c64a5d6d413ce54764bcfa4e32f369c90b.json 46KB
a5ca627173fb494ad8674a02ade03b0a6dd85067ef8b82cd2d23aa7a197d8d63.json 46KB
d2806f24b9e85b6316f6973ad7b726dc3b8c3421b68f46a69337ffa18c96b7df.json 46KB
4ce0aebab0655ce3fac0d8f1684ab6a92a43566e77a77448c4a75703d9333239.json 46KB
e89f1bfb6f9b4eafe8d0cca30d955caa02e579782eb35a8f13d96ea7a0568181.json 46KB
a104996cc74c0d569cf8137134ba58bdf3a17b1d222422fd7f8481aeec27101f.json 46KB
bb22462169c2cddbc4937d884b22289c9b2326463ba1971c8a6c7fdaae3162d0.json 46KB
c33bd3e667ff509b86b3e4a74bd28287f3fd13b761de36a9ac6b89c53cd8053e.json 46KB
569187c18298b01bacd3a9faf32053d821d8cef1411b39682962faae2ba09395.json 46KB
504e0611693d90bec353eca6df46e24bd35f6f6e6b050d7d3bf45553202fa460.json 46KB
44edece727bdbbf80a0281b55ef3cee20326ca3ee47a33bc3751af7331220153.json 46KB
7abd0ecb4c22dc416dd5abe740fea6467d8c333395c2a5a9555378177b84da1a.json 46KB
2aac3d59ced114a1500911bbe38e7dd606317f385b65a837a43450abf9ec8482.json 46KB
787f7bf9a606cb98b9a3cf4a1b188b817098b8f1d43f2c6cfc701f28203407b2.json 46KB
eeab7e736f22cf03304acd19472d61700e89eade1b1b0443fc0d0b9dce47b479.json 46KB
693bab35eec7217513c387ef11e4ded40de5edc39ab8548c30cd0eb4328ffd98.json 46KB
410041af919f6519583474b05ea72701c0efd7bc97daf223362d0c98f3475cd5.json 46KB
5758ae7662fdbe3f66426ee1a1d9390da0808e214a4ad0754f4ef1c8e4ced2a9.json 46KB
ab2bc1da5c181c573e518a6d20c0b0b3eeadb2dfe25002928ff17c4a230b6377.json 45KB
e25998e429cc361127db6acc2a9fb18b8988a8333816f244b149344f974955ae.json 45KB
6cc372ff2b1ea9d7dca6479b527ca9642058801580d3d036d0b194c53f9f0e3c.json 45KB
376e02d2ba8a43927b89f6eda19d34265e6ebaedfef88f42b26623c445e3cccb.json 45KB
b95bd2b9edba523a4792891ac3dd842e31824b939b587dec101d9b39e7876dee.json 45KB
共 1767 条
- 1
- 2
- 3
- 4
- 5
- 6
- 18
资源评论
是温温啊
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功