diff --git a/.firebase/hosting.ZGlzdC9iaW4vYWRldi9idWlsZC9icm93c2Vy.cache b/.firebase/hosting.ZGlzdC9iaW4vYWRldi9idWlsZC9icm93c2Vy.cache new file mode 100644 index 000000000000..5d7d7a404272 --- /dev/null +++ b/.firebase/hosting.ZGlzdC9iaW4vYWRldi9idWlsZC9icm93c2Vy.cache @@ -0,0 +1,1538 @@ +api-reference-list.component.css.map,1742567121429,3717e963940fc92e764af43ef477f1dd144d300b3775ce91bde6f655420f5eef +chunk-5ELMQMYE.js,1742567121379,ca552ac856ce4830dd82ad5184c558863b3cb7ca13f1253dbaeb47d92aafbe96 +chunk-5ELMQMYE.js.map,1742567121378,afe29ad5572d18504a63c543c91e40ef902b48b96625e21db2e83eaafc69bedd +api-items-section.component.css.map,1742567121429,0b3eb5e5a63e24dd6b64252e663ac12dc7e9cb3f84160eb82d4fc805350fa186 +api-reference-details-page.component.css.map,1742567121429,1bb5eb331b733f0307df886dd2af571bb2d85f14d457f1ba08757852bf98678d +app.component.css.map,1742567121429,a5f8a814dc3a15b1fe8e093fb402ae429fc97c624f220768b2916b0ff0fd4de6 +chunk-DVZPGCWK.js.map,1742567121427,270b2ef8e517b9f0a5405ebc34c861360aad2e35562175783e45013fa2a11105 +chunk-DVZPGCWK.js,1742567121427,10d7d8a0e17b52ec076b660475e1277d07f3fee4b7c50aaa9efadc98a8133b30 +chunk-DYBZWTTG.js,1742567121379,5836a72867dc817df439ab9e330227195ffc8108784d46001f6b5b31596b872f +chunk-E4ZKEAWN.js,1742567121378,597c954b38d93537a16fd3f290e60b78c87e528824a89003a48e5bf230c68864 +chunk-EAIT4MI7.js,1742567121429,c83d668c016fb7f6797d8ba3d0f4b289ad83ee87b1e24f010dea01afe7f6bee7 +chunk-EAIT4MI7.js.map,1742567121433,8c7373bc1dbd7a2eab22866dbd83ab779a6e6229ba63aede4cf3619fb6f26323 +chunk-G5KYQXNF.js,1742567121379,5a078abc2ed24d7513eab0010a417c6d5ebdbfa8f8f8d5e9a221b74d7f35d3d0 +chunk-DYBZWTTG.js.map,1742567121379,310a9ec23a96a0e28203e56ca16251608a20141ee4a411b1f52cffd93d885ee7 +chunk-E4ZKEAWN.js.map,1742567121378,24171f8c67300e1a967d205245cb445c9f00ea2cdc657ad47c2da9ff13f2c67a +chunk-G5KYQXNF.js.map,1742567121379,a5fef018eb841db30e10a7919578f1554938f744069e78f6fda56c7fcd0db1e2 +chunk-L7FBWR7L.js,1742567121378,ed0b1501afba2375181a8ff774810e1950561e05669732e116e1549e22ec574b +chunk-L7FBWR7L.js.map,1742567121379,6ba208a4e780442a756715dc44c139be110ceba06d1e07f09d7cfb5dac5374ef +chunk-HJSZGJNU.js,1742567121428,b6cdab3de90cb4955055e47cfac04a44da3a4f2efebba5d10073c4530c1c78f1 +chunk-HJSZGJNU.js.map,1742567121428,c2399c3984c569fc2676efcda8f8408a7507c0f85a5d9db8ebd0d32ef1cfd706 +chunk-M76KBEJJ.js,1742567121379,25b4968af5b00267d0514e3d3624c2852f138c2a57e0ea6efc0ffab44768465e +chunk-NWFZAPIQ.js,1742567121427,8de25043a78a0bf742908d6ca87ba95d2c614edb0bd01d8218b82783949b33ae +chunk-OWI2WYQS.js.map,1742567121428,a89ca97d7b16f1d46f963db51a3d2d28a461143b671a909a22cda2f7b0ba5b9b +chunk-M76KBEJJ.js.map,1742567121378,6356c10eb6512ddf2c4b029dbb55fbab4f885cb2e5ad01ea521f11fc9f5e6bac +chunk-NWFZAPIQ.js.map,1742567121427,afe29ad5572d18504a63c543c91e40ef902b48b96625e21db2e83eaafc69bedd +chunk-OWI2WYQS.js,1742567121428,0d14f556870998cc3b8f297f116f8da644a052be3c7396daf2e7f44d3c04885c +chunk-ULLHZYJS.js,1742567121427,58b30537093890b8eb0ebbcc8fd704722d900b627da7a4679f75d916d44f862a +chunk-VDXNPWWZ.js.map,1742567121381,1de6a3736640b07f58a96acd054aea348ba8a03ea987950f4f7e628c48587c04 +chunk-VDXNPWWZ.js,1742567121379,b280a106449233c43931d2752577012593580c4778fe427da6cd953229e7e179 +chunk-ULLHZYJS.js.map,1742567121427,afe29ad5572d18504a63c543c91e40ef902b48b96625e21db2e83eaafc69bedd +chunk-FNRAOLJP.js,1742567121426,4f5877d85df5872e04b03eed7735452dcb6bdbe500ec7b309a3f952a568aa109 +chunk-B3AYJFXO.js,1742567121378,b02aab52cd1f26a6d18d6f57335475068a90857d6679546dbf3db46a431ba8da +chunk-B3AYJFXO.js.map,1742567121378,d3de085a0bdcf417ea82b65ab96c65c33dd338d6706ac0c3bed82191c3baa5d1 +chunk-FNRAOLJP.js.map,1742567121428,477bf599b5b77a4f3ba1da92f568b3526da0768c36da6d9126bbe5085c21fe05 +chunk-T3QFQXTK.js,1742567121427,5c0c236578f8e14dae85208811ff8e1a0a159899e2069e508f0bad4f4f980a73 +chunk-NRMPW26I.js,1742567121428,77a0590d09f70ec1d22ade1b8739dd005909a1ea4e98d81122e01e79654ec64d +chunk-Y54KV5WX.js,1742567121379,bbd87c865c253017cffd75ba315114122597e968f4e1cf9a09d1558f03dc8e80 +chunk-Y54KV5WX.js.map,1742567121381,47c38e4d40fedc27d9146b2fc117ac29bb5712c82645986b8b03b19eb12c8735 +cli-reference-details-page.component.css.map,1742567121429,03769318dc856cb436354dced3c1ca0ce7ab5f0ed3499277268f96fdc6c5a022 +code-editor.component.css.map,1742567121433,b9b07ae616b243ff06c6586ae3c6a2a2158c0eb3709f3c675841844907138ae5 +docs.component.css.map,1742567121429,4e16b82e529eccc3b05d96f5d95a264e5f7c658bacc87b8e09c1229c9972d5bd +error-snack-bar.css.map,1742567121429,11b4c655e391f0f7ce69a8e8276f519a21d75d4fb2b2c6ea6f47d7d04e987d23 +embedded-editor.component.css.map,1742567121429,d8fa310401dbb3ed798be3eaf8a34a08760bf39e16b9905811af27b7a5e7677b +home.component.css.map,1742567121438,ce24a4339ce411baf78fd2377d103a80e11bbda36f40281d4f0ccd5bbe9f4805 +footer.component.css.map,1742567121429,0e7116d9caf77a9958d00c05081e9bfd35b1c089a2f3d70309e5eff56ac94ef1 +favicon.ico,1742567120813,82d0472d0e7cd2b3f28ddc8563bee7b857747a9fb0c8cd112ac0b4052a955046 +index.csr.html,1742567121579,48fa666d8d8dcecea005228b71d0399481fee49ad02bd582a44705a4d14d2eda +home-animation.component.css.map,1742567121429,e4ff3e6e9fe1cf7982d6089a2ed21a6625d73692c850e967289ba868e90f604f +mini-menu.css.map,1742567121430,a779d2404fbc3681138880dbc0cd0300dc79558ec34dc8c1eed3b48c02fddbd5 +nav-item.css.map,1742567121429,524bc6e7e2375a034a0f17c551a937d3b7569000e81b29af1c9dfd61a76fd462 +navigation.component.css.map,1742567121429,aab1ff7f8afcbf943c2229c2e4e2fe306365d004e9407c316ce756c999d82395 +playground.component.css.map,1742567121429,9a9189f367aa4a75bf08b60f735f72ce218cf4091f9a8ab5d0beb4cf3af9d363 +preview-error.component.css.map,1742567121429,dffafaa2187f7fe749f85a53ab1b68104f62f396ae6125eb6673b549034bff72 +robots.txt,1742567120812,7c7dcbd76930edf38f916f3b93d4121ada1859632aa3f8e4b64d3571fe77a03e +preview.component.css.map,1742567121429,d0557919fbe139306a2eadee79862abd1d1b96246f054d7e7f86f01aa2e87915 +secondary-navigation.component.css.map,1742567121429,c0d4596210b3e433b9d07a62d418cd68f3984a24732f1bc53f9a7cef6b879457 +terminal.component.css.map,1742567121429,ff1b3ab69e8a4dbfa9d9ef92d8039bc21833aeec3e8035ee9be8cd7fea504159 +tutorial-navigation-list.css.map,1742567121429,4835115d74f9e11d949769d892091d8ee3a1771293807c54f668635f9146faae +chunk-T3QFQXTK.js.map,1742567121427,29854aa92e87c05ed6c02f73fe27a8a6306cf2a5186a72fcefd3716182c1456f +chunk-Y6PFTRUN.js,1742567121427,724777a5369456271bb7f01344afbdfccc902672f1a7c184ff40ffb65ab6c113 +tutorial-navigation.css.map,1742567121430,ccb32d20bcc96a3be6da1e47ffcc92b4317809a36ecc0bb8d4522edb80291737 +styles.css,1742567121579,3ae21d40cbd96458e24a6b9018c1e7dbc8aedacabcbb5a931d946e69e45a32e8 +tutorial.component.css.map,1742567121433,ea52077461e79837790b76a13b65db38c3891b80c154c38d596e1a36dcd6179a +chunk-NRMPW26I.js.map,1742567121427,c363132e22d825cc6ae039f0e268581306ebe2c75476b0bc54b51786a8b2dccc +update.component.css.map,1742567121429,0ebded68cbf39fef966d1a8101327dbee3294a9f0d808c92203571381b3cd82b +chunk-Y6PFTRUN.js.map,1742567121427,2a7fde991fd862a53913021659a8b6ecf6ab8abdafbbbb3703e98d5bc5664ed6 +styles.css.map,1742567121579,d4bebc4baba781ea6be68b9221c7406a15dbc999a10c613333f683804bd280a9 +assets/content/api/angular_animations_AUTO_STYLE_constant.html,1742567121123,87fb757c2d8eb1a273b430936f949e317e5fdffb51626acad320d6f75adbfe1b +assets/content/error.md.html,1742567120817,0af00bd9c4859603633b661cf2e232611881168631632533a7c35282f1acacac +assets/content/api/angular_animations_AnimateChildOptions_interface.html,1742567121133,b12f8a157dfb92c09a9b193b5c33a273538ef6fba247d7c479b73b818fe39b0c +assets/content/api/angular_animations_AnimationAnimateChildMetadata_interface.html,1742567121133,02133ced71faaa1d06495e33f31b55e1b1547d19bbf70719791f08c21078da85 +assets/content/api/angular_animations_AnimateTimings_type_alias.html,1742567121136,af3cd4e81f6ee7d1521610b9ef5b23b8b86e2e0eaa4aa316f86f2c5f08ed4283 +assets/content/api/angular_animations_AnimationAnimateRefMetadata_interface.html,1742567121133,a21dc8396e1c90bef36ffef412bc01eb04b0e38344c3a79252a0b7a1a2d0943b +assets/content/api/angular_animations_AnimationAnimateMetadata_interface.html,1742567121133,e22a501bc9dd074cdd37b1f1ae331555a7b9cae3374feea68ed257823ff72b9c +assets/content/api/angular_animations_AnimationBuilder_undecorated_class.html,1742567121135,84332e9aad01ecbb9dffa84f212ad5e9aebc83fd867cbcf829099751439f6c9d +assets/content/api/angular_animations_AnimationEvent_interface.html,1742567121135,940966e3870b1692399564295c997d989b6a16850815a571fc40c9b6d202d0c5 +assets/content/api/angular_animations_AnimationFactory_undecorated_class.html,1742567121134,ae45f67d6d7f44fed05e7962e1e47c66d210459b63cbb0caaed43b9eb3a26ba3 +assets/content/api/angular_animations_AnimationGroupMetadata_interface.html,1742567121134,d9d6d2e8e740199118aae40acc0dc9df5a6daf1d0275cf6fd72a6b6d86e31d87 +assets/content/api/angular_animations_AnimationKeyframesSequenceMetadata_interface.html,1742567121135,ba0e37fed8cf3ef9c64785b30ca9b262ccb43bbde16cb3cd39ecc32fa17cca74 +assets/content/api/angular_animations_AnimationMetadataType_enum.html,1742567121135,3be90dbbaa4cef14fc613bebe5463933fff61fceca522fd2ac2ba0f5d1bf9da8 +assets/content/api/angular_animations_AnimationMetadata_interface.html,1742567121136,17db5b0d6723cacc80e2a505382ed4d72bf57d1cdee151a370ff51bbfb16c3eb +assets/content/api/angular_animations_AnimationOptions_interface.html,1742567121135,9e9a4bbc9384151875512b3604480f37eeed765ddd56e2c1e83f4b22bbeb9bce +assets/content/api/angular_animations_AnimationQueryMetadata_interface.html,1742567121135,e2753b4f01bd0a9633add258ba894cbf17b023eb7695355b24f115b67f3797bc +assets/content/api/angular_animations_AnimationQueryOptions_interface.html,1742567121135,d128617d039eb6d96b3673f18ff81bf452ce1fe0a67e9918a018932c1a05fe7e +assets/content/api/angular_animations_AnimationPlayer_interface.html,1742567121137,3685640d17e68437d0327411093cb4f13432834863a9308058e585f7f7ea6666 +assets/content/api/angular_animations_AnimationReferenceMetadata_interface.html,1742567121136,f02d59b81a9f475b63a00e86426b0f4a6333b5ca56a84d8edde71c94eafcf25e +assets/content/api/angular_animations_AnimationSequenceMetadata_interface.html,1742567121136,2c6d943ba36ef18104028f48c5b5f1a2b34dd6128111fe2a41c079b140bfc31c +assets/content/api/angular_animations_AnimationStaggerMetadata_interface.html,1742567121136,4d0be0a0784bda18d8c29924130629b6af91e9f32d2b616cc1c5bef92c68b994 +assets/content/api/angular_animations_AnimationStateMetadata_interface.html,1742567121136,1c3219b2684afae3c90e6ad381e54474312731f0476bc7b5dae5c200a06a5e80 +assets/api/manifest.json,1742567120814,ff63cbef5572337a638b96a26a3cfd15942b6f0a9dac167f9f7dad7198937712 +assets/content/api/angular_animations_AnimationStyleMetadata_interface.html,1742567121136,70947d3f9bbcd60311f5765eadcf799ce9a2dcb2a85a75b53cf4c71110f4eb6f +assets/content/api/angular_animations_AnimationTransitionMetadata_interface.html,1742567121140,011ea0f1dab479f049acde49e418689bc3661f1774c0006acad6688b71dd7b15 +main.js,1742567121381,3671a025abc0262fe6087a44b36f78830c851de7051bc55888048f5dd6458a3f +assets/content/api/angular_animations_AnimationTriggerMetadata_interface.html,1742567121137,553f86e09d7b62b85539ff2fc381405e4ce35a60d1cbc4828b8d51b3e0e36ef8 +assets/content/api/angular_animations_NoopAnimationPlayer_undecorated_class.html,1742567121138,aeede638758d872a27040494d16ed2d79b2f42e68466b1bec332f88972d97bd1 +assets/content/api/angular_animations_animateChild_function.html,1742567121137,e541ac833f8505fbd1578fc5b812dc6109c42c7d1cd299fb852d1c503e117dd5 +assets/content/api/angular_animations_animate_function.html,1742567121138,f2452008efb8c1743520b6cf7042136995d8e913b18c9e79b98d74574253b81b +assets/content/api/angular_animations_animation_function.html,1742567121138,6a43e120796e55cf4bfd148b3b041161e59206c0b6e86c543d1ea3277ebd4780 +assets/content/api/angular_animations_browser_AnimationDriver_undecorated_class.html,1742567121139,f76d3519df12e9ae30ad919a93484286e0ecfe8eb517a015e7622396e38da076 +main.js.map,1742567121381,eb65a5b5c8b8c2f4dfdf49c229322759ab32a4fb2c471b465ebe206b9da3f5f5 +assets/content/api/angular_animations_browser_NoopAnimationDriver_undecorated_class.html,1742567121139,3fe70bbd5c1c72d30b9217c3393ad7cc540f3c9b71746b14876f844ff8d1890d +assets/content/api/angular_animations_browser_testing_MockAnimationDriver_undecorated_class.html,1742567121140,858e0404aed0f520e2424e7082af80aa04ab15528fd8cb5ce4af51594958ec3b +assets/content/api/angular_animations_browser_testing_MockAnimationPlayer_undecorated_class.html,1742567121140,aff0e020a3c68547e37a3ee69bd44f89a76b7cb9e2733db96b8c237a218270ed +assets/content/api/angular_animations_group_function.html,1742567121139,019a1acfc0de60c679cd937f091eaaa74db4b47de7eb90a778bc0e0da870b5c0 +assets/content/api/angular_animations_keyframes_function.html,1742567121139,e93ae470380ec7c973ebe93e3cb0d1419e942d3eab10e2ed08ea60e8658120f6 +assets/content/api/angular_animations_query_function.html,1742567121139,0920ea03daaf98077156e42f432166e2dd6418a827a59406b67b9c62d12fa15b +assets/content/api/angular_animations_sequence_function.html,1742567121140,b82c34c82f292a5908f6c8a2d7baf806c51bd4203b62df2f4f465e7b7c933200 +assets/content/api/angular_animations_stagger_function.html,1742567121141,9855a731936bf950a5846dd0014cc017bf08dbc93d5744f865cc98a0cb145191 +assets/content/api/angular_animations_state_function.html,1742567121140,bafe405e65c79e1bc4d314c50bbdd0669777ed1e27d1b19887458b66d5c64a31 +assets/content/api/angular_animations_style_function.html,1742567121140,b94f44d4c0d47258d18505feb21684c5e55d85700a84343a925ccfdfc0e731ba +assets/content/api/angular_animations_useAnimation_function.html,1742567121142,dad4e967dc653862996b5d65f36cd914402c33a326e56029d097fa52e9458fd5 +assets/content/api/angular_animations_transition_function.html,1742567121141,67de3656e59fb346c3214ead4fd262a7cd8d3efcfad824d4a3b31b594c7f1786 +assets/content/api/angular_animations_trigger_function.html,1742567121141,425fdc74ec0e3c119f945135367cd32410493dc3b9206d20b5d2f77ce09202da +assets/content/api/angular_common_APP_BASE_HREF_constant.html,1742567121142,a8d713835149c73da0db10f0613246ccf3ff0af68395efe735f877d0bac0cb42 +assets/content/api/angular_common_BrowserPlatformLocation_undecorated_class.html,1742567121142,8e6339f688198954a384122248ec632627ec0d9604748aa01670704180e34fc6 +assets/content/api/angular_common_AsyncPipe_pipe.html,1742567121142,937bf4b5b53aa67d3b89d37451472ccaf39cce5ba0a4a560edbd37bf2e057935 +assets/content/api/angular_common_CommonModule_ng_module.html,1742567121142,e92cc06dd4a2df4fa0c29dce224354b201961a8bb00e9da571c949538a1c7af9 +assets/content/api/angular_common_CurrencyPipe_pipe.html,1742567121143,10b1863b9d1094a2d0bf0fc15b33b9db476ff7a0a73364e1738a25bdfd45fd66 +assets/content/api/angular_common_DATE_PIPE_DEFAULT_OPTIONS_constant.html,1742567121143,0bb83c2b56806684ad23283e54016d430d69b0a78bcd5c4c6b7eba5512e454ae +assets/content/api/angular_common_DATE_PIPE_DEFAULT_TIMEZONE_constant.html,1742567121142,9ff2b044d1ea69b24366e77b0172484fa0e65340cff1bd13ec236afc36538350 +assets/content/api/angular_common_DOCUMENT_constant.html,1742567121143,ad85755f19f9094d283ce1fa448ac02d7509b37ace6146efb97d9c248cfe76ff +assets/content/api/angular_common_DatePipeConfig_interface.html,1742567121143,7e2140c75e7b8aa7f4c0da0fa12a8beaeb631ac8278cc6e5b649d5021098999f +assets/content/api/angular_common_DecimalPipe_pipe.html,1742567121143,8bb6d502c2a5e546fdfcada241a575e514df8e685f977baf3b27544f7e1dcbf3 +assets/content/api/angular_common_DatePipe_pipe.html,1742567121143,f4a129fc07b6b8227fc1b84a0f3cd4ca2df43c6c99ca8d765e85e784d71005ac +chunk-ZUJBENQB.js,1742567121428,2f1e14553797bf5614b122a751dc6fb6909363181f9f77de223e5d0710f1ad1b +assets/content/api/angular_common_FormStyle_enum.html,1742567121143,cf3d1f463506e18f217b9cb00af49021ea6a3c91eece1871a6f60f1cf59a3730 +assets/content/api/angular_common_FormatWidth_enum.html,1742567121143,88188c1b9c91fe1a390e54f41edcfadb57e3409d1f449e870e9e1607bb3b7270 +chunk-GZ4633PQ.js,1742567121427,40d695638d74f3fb63dc378a784f8e713bc9ca21b7089cb7c2cfa4d49357c9dd +assets/content/api/angular_common_HashLocationStrategy_undecorated_class.html,1742567121144,3ba24cfa2c9c92f5dd55244c8969eeea128de4d5f644e46299781425851c51b7 +assets/content/api/angular_common_I18nPluralPipe_pipe.html,1742567121144,78862b08fa4361508730e131ff0b3e52e7f0e3c631dce09bb663789b5d7a5a39 +assets/content/api/angular_common_I18nSelectPipe_pipe.html,1742567121144,c8e11842d8273598fcae9b65d5d9c5c29108cbdf58e6616ec9e012ab8f84a52f +assets/content/api/angular_common_IMAGE_CONFIG_constant.html,1742567121144,08bc55bbcddda4fa6aac342d7f7e469aa1fc89d00a8388d1bbaea459070a8d9d +assets/content/api/angular_common_IMAGE_LOADER_constant.html,1742567121144,f19ab1e6ac92c8b9c5929b45f364a29f63df9c4d418467e97e50cb858232f400 +assets/content/api/angular_common_ImageConfig_type_alias.html,1742567121145,5e7b86cc5eb7d7b65c8d99b9309b71f8ecce2b2ed434295eac745e6e40fd4477 +assets/content/api/angular_common_ImageLoaderConfig_interface.html,1742567121145,bd2e675687f90b55c6dcc7b03190f396d1de3dd3c09f3bb52ff5c249a0b8e37d +assets/content/api/angular_common_ImageLoader_type_alias.html,1742567121145,c7c756d77b876cd605a6a1458daea62f7db24458a2e8a379bf1bad7bb30d3361 +chunk-MLYXGPVM.js,1742567121427,80ff5e277fe97029645c676e14efe9eb28be36dc3e8fa3c18dfa1311ffc9e0c6 +assets/content/api/angular_common_ImagePlaceholderConfig_interface.html,1742567121145,b4d819e9d0441a9bc0cb8c32087ec9f6d6d8059aa84215ff76f4aa012faa8d14 +assets/content/api/angular_common_JsonPipe_pipe.html,1742567121145,61a26439f1d9737295ff529ced2cbed5b44cf94df9be4b4175fa54f0860a48a8 +assets/content/api/angular_common_KeyValue_interface.html,1742567121145,5b4dcdc1ea9f35225ad81717c9ef83d7063934c3423ea022dd31f3b7f3daddec +assets/content/api/angular_common_KeyValuePipe_pipe.html,1742567121146,2fa62d4ed43ec472648b4123a50b77c01b3d68f8c1563ef5909fdf72504510cf +assets/content/api/angular_common_LOCATION_INITIALIZED_constant.html,1742567121145,ba101b2e67eadbb4b0f9a91ea0c8a9053ce417483a6d2564cd2ad7ef9e213a31 +assets/content/api/angular_common_LocationChangeEvent_interface.html,1742567121145,724f00900cdc828c68c0f7ce50e22c2448df25d6a4d9e09142c462015ffb0f42 +assets/content/api/angular_common_LocationChangeListener_interface.html,1742567121145,6a8a49488ea12e30e58a030e4db7fb862df89ed5d40fb17846163b01634d7a5e +assets/content/api/angular_common_LocationStrategy_undecorated_class.html,1742567121147,06b0f91f92d16eef2a7b8b5d99e654dcbb6fc14403e045c9820567c42bebaeae +assets/content/api/angular_common_Location_undecorated_class.html,1742567121147,ac9821e01588bf8735f0880624edbd93de9236d8eff20ec069d778be42ebb55a +assets/content/api/angular_common_LowerCasePipe_pipe.html,1742567121147,c0155b02740cd004a72058ebcdaed3ab27be8f842d0d53491e1b49f4c43f1be8 +assets/content/api/angular_common_NgClass_directive.html,1742567121147,91e1cfde07509e7327ae096d5886b3294b243d66bb8da638e6c01688f511ab73 +assets/content/api/angular_common_NgComponentOutlet_directive.html,1742567121148,4c65de9820714819ee3d6448c44f38cf220ead960d8c1c3632425225dbda3b4e +assets/content/api/angular_common_NgForOfContext_undecorated_class.html,1742567121148,99b938539e0550c24d33043fccd329a8ab8d8653c33f5e54a5b4e6725c2d0f34 +assets/content/api/angular_common_NgForOf_directive.html,1742567121148,cdda800c7dbddaa0f1c6a559031f15459d90e3964695aa02583f00f94bc08c8e +assets/content/api/angular_common_NgIfContext_undecorated_class.html,1742567121148,b65fbb77a1c5e44dc5acf5ffe492f09122f8adf456585f6e24756ce4994e87c5 +assets/content/api/angular_common_NgLocalization_undecorated_class.html,1742567121148,f79bb9d778560d0c2a37da0615b821fc662aca18cff03840775e7fc8771a8d7c +assets/content/api/angular_common_NgLocaleLocalization_undecorated_class.html,1742567121148,d67b7a4eea5d2273ad749d2e7b6bf651fd6b2ffc8047ab523928327ab8b910f5 +assets/content/api/angular_common_NgFor_directive.html,1742567121148,04d4cac458ce99ebbf18e548d488515d921586d625bf86a9abb9eb61eff597c7 +assets/content/api/angular_common_NgOptimizedImage_directive.html,1742567121149,04e6bf48fee3a330a504dd8c663dd16a040d514142903aab8930322dfd64f948 +assets/content/api/angular_common_NgPluralCase_directive.html,1742567121149,fa3cf2e06449de3d1d5ee3bd180a5950d41cd5ef2710dc8fac02c86ce6727f2d +assets/content/api/angular_common_NgIf_directive.html,1742567121149,dfa213fb6d1c947b8c9dbb4898835693dd2bccc1bfe18ea37573b5b116fc44c1 +assets/content/api/angular_common_NgPlural_directive.html,1742567121149,4f3d21d3cc7ab40cfac1abc4136f29c95c18a5bed4b2c43f4fba7eefc0cfdae9 +assets/content/api/angular_common_NgStyle_directive.html,1742567121149,4fa23f1c774fcb4cd8c6144b6c6d715520795bd91ae0f17fbfb0f296b4b4c0e2 +assets/content/api/angular_common_NgSwitchCase_directive.html,1742567121149,4c12b216848a63fd8e026c528623346a3711a2c8aab97a58477fb178510e1529 +assets/content/api/angular_common_NgSwitchDefault_directive.html,1742567121150,6c5ed2a8d08e0e8253c9f2c10686d0c12cb38bd9124f56a1a29a9e42396e0110 +assets/content/api/angular_common_NgSwitch_directive.html,1742567121150,b79a7acdfc14224e196d933d98802b1acd13b7a735cafd96b829e18893db7e3e +assets/content/api/angular_common_NgTemplateOutlet_directive.html,1742567121150,582b4b723f89c1aedc228fbf2e7c95780c5a864f4b7954f84391b6e1622855d3 +assets/content/api/angular_common_NumberFormatStyle_enum.html,1742567121150,08e8de68f33ef9598eed1dcbd835fa22e74c7ac883a0004855b4df653534cf54 +assets/content/api/angular_common_NumberSymbol_enum.html,1742567121150,9c8483a280072f0a8c3c9f912b18886056f34a7c9ad841265c69464d1d86eaa4 +assets/content/api/angular_common_PRECONNECT_CHECK_BLOCKLIST_constant.html,1742567121150,28299d1c3114fdd8f951c581d23fda34a673eff200e206950acc830b79fa360a +assets/content/api/angular_common_PathLocationStrategy_undecorated_class.html,1742567121151,ee37f48d3d7deed9a61db0ac52d81b04f6fd4c1a228dc0360cf0ec5ad5d07ac5 +assets/content/api/angular_common_PercentPipe_pipe.html,1742567121151,b6348643c6392c2a878c555b8e64029e283d3bacf0ad3b1ac76060b6c4c9e98e +assets/content/api/angular_common_PlatformLocation_undecorated_class.html,1742567121151,f37b6cffd82aed92030df328f6eb3792b8698a24202bdf3d2e792a765d0415c7 +assets/content/api/angular_common_Plural_enum.html,1742567121151,8eeb4d66b286421876d6bc8fc3caa52f281533a39f78aa767da642029294f14a +chunk-QIQFGZBU.js,1742567121438,9cfe6882b80c91678ff3b8bb80130afd6632d0765332d9d8ab5003a2d0cdf1e2 +assets/content/api/angular_common_PopStateEvent_interface.html,1742567121151,d65910e241925ca60a321c4c68a15e40d1c24f0460405fddbbe0edffafe9ceb7 +assets/content/api/angular_common_Time_type_alias.html,1742567121152,cafdaa64f16e838aabbb338dd90d6e50830a8ed2f5a516c878ca0e250ed5fcee +assets/content/api/angular_common_SlicePipe_pipe.html,1742567121152,ac6a26af7e974054b22f9e969a66de6cb89db820e72f322f35b78fa947f158f8 +assets/content/api/angular_common_TitleCasePipe_pipe.html,1742567121151,831e5c3197cd41c4b14ac696701168b4049acd49b56c75959d503afe2c627665 +assets/content/api/angular_common_TranslationWidth_enum.html,1742567121151,86b31dbdf29306b7fc99c908018a8ebfe4c75be5f60e69b37a2a36677f583bb3 +assets/content/api/angular_common_UpperCasePipe_pipe.html,1742567121152,06aa63f983d7a317ecf0368494b3de89aa63639f07255f040699a6f341bdd4f4 +assets/content/api/angular_common_VERSION_constant.html,1742567121152,206c68cb83da0005c66d11f47fb89312a52d3f52d5d4e0e495e2279dad8c3d68 +assets/content/api/angular_common_ViewportScroller_undecorated_class.html,1742567121152,fc2f6d992d00ca4c5fa364f2c4ae10f1c6632b5bfe2ea3f2556c8a2c193967b1 +assets/content/api/angular_common_WeekDay_enum.html,1742567121153,f002af9a7469f394deaca1b854697508a60c079ed2d6b80a7bc0fac223c0ad3a +assets/content/api/angular_common_formatCurrency_function.html,1742567121153,e20ce57ac14d366beb6823df954f62a350c110eafbc7b22adb58e16fd009dafb +assets/content/api/angular_common_XhrFactory_undecorated_class.html,1742567121153,466916ae0d18fb84ce6e50b8e547dcb4d5ce856fcf2cacfb7f135321359595a7 +assets/content/api/angular_common_formatDate_function.html,1742567121154,acb9ca8c19ca5219446b03594036cb4f81870c96beecc3a83d216c36cae66f19 +assets/content/api/angular_common_formatNumber_function.html,1742567121154,97f327afefaa8196446441e48caf2108aae8d1d67b1c4a9272daa5479013fec3 +assets/content/api/angular_common_formatPercent_function.html,1742567121154,cbaa84fd943ba694478418a2aadec5db1e899360b7dd9fe08dce5327853bab7c +assets/content/api/angular_common_getCurrencySymbol_function.html,1742567121154,e492c632e69f451922e98ecd1d5e3c36bc61516391e3144fd545276d3a3622a0 +assets/content/api/angular_common_getLocaleCurrencyCode_function.html,1742567121155,d37fc8da2b89fb6f5277dccf486c0f53778d382878e85e14d913ef6b957641ed +assets/content/api/angular_common_getLocaleCurrencyName_function.html,1742567121155,2189ee3a963466e43fceaddf5ab1f2bf2fa4f713b6e97f983300ab1f7ecac8b0 +assets/content/api/angular_common_getLocaleCurrencySymbol_function.html,1742567121156,a4257a5899d40e810be105876cfe7c1243ba014c269fdb9d1263dd18503ea772 +assets/content/api/angular_common_getLocaleDateFormat_function.html,1742567121156,57e4857f9061403ced3300618dd3eb454f257fc6411b1bf0055861f0ee9e520c +assets/content/api/angular_common_getLocaleDateTimeFormat_function.html,1742567121156,1b4b5787e3e9e4f8f4c10f709ae19b506db68e0be2cb642338c73c60a25c9175 +assets/content/api/angular_common_getLocaleDayNames_function.html,1742567121156,9d9e5e21f29e3b3f64471fae560b5a361311d579bd39c062199f74e2e90b4296 +assets/content/api/angular_common_getLocaleDayPeriods_function.html,1742567121156,5c31d7b25b3c2ac9ea576011d5a41b2d9ef13d26586efbb3132b5ce1da52a14d +chunk-GZ4633PQ.js.map,1742567121439,9c2316f8671b11f334c79706329bff503805c1513d5460503cd1810105867dc0 +assets/content/api/angular_common_getLocaleDirection_function.html,1742567121156,d9d32bd7e1dcfc4f04ec8edbd513b7ce19e0f9adf5d0d2dc26d1cf6d8ef4c228 +assets/content/api/angular_common_getLocaleEraNames_function.html,1742567121156,d9607ed68c193657d5ff6b58f91effd8ff4aa23b5b931801362399cc169348e0 +assets/content/api/angular_common_getLocaleExtraDayPeriodRules_function.html,1742567121156,aec41951639035e48d61738cd129d4cdeffd90e08e9e2341d4c9f10abe13fa26 +assets/content/api/angular_common_getLocaleExtraDayPeriods_function.html,1742567121156,1654c20ee0ec08c702adb01c9709dc6bdd7f42636fbdb804b673b038c265e1c1 +assets/content/api/angular_common_getLocaleFirstDayOfWeek_function.html,1742567121156,f4bc31b78dac9550ef67e13b5f649e223554e4d46cddeb3a10ad171e444dcd96 +assets/content/api/angular_common_getLocaleId_function.html,1742567121156,69e869dd4e302325c86de580da2c80ebe1e372a6e88e220996570eb7d912b44c +assets/content/api/angular_common_getLocaleMonthNames_function.html,1742567121156,5fd8d0fcf2f1acdb664c20e0b676d4932fc8a1acc53be02de4f7c8caf5da1c3d +assets/content/api/angular_common_getLocaleNumberFormat_function.html,1742567121156,9304552c4b702edef15eb5a706a08221514e0b1d2c5b4442e4a81b850666478a +assets/content/api/angular_common_getLocaleNumberSymbol_function.html,1742567121156,df9fe1dc901e2f875fa393bc60f21ffbb392a0a323216b859e5191bddc267910 +assets/content/api/angular_common_getLocalePluralCase_constant.html,1742567121156,6be2ab804b7cdd26899a3568209ed17c26f635dec113a35722944bdd23341073 +assets/content/api/angular_common_getLocaleTimeFormat_function.html,1742567121156,64a48044be89fe9243d2eaafc9428d4148166533a57ce31ba3f89e3cbc5b2a0e +assets/content/api/angular_common_getLocaleWeekEndRange_function.html,1742567121157,b5189786bef25af96a89058706f45f2e3ccc798ebd2b3dc50bdb73bd29dfac28 +assets/content/api/angular_common_getNumberOfCurrencyDigits_function.html,1742567121157,b09f47a4de8fb57be7e3fef1a2daead9b9ecb89a9c203bf85d933e9230748c69 +assets/content/api/angular_common_http_FetchBackend_undecorated_class.html,1742567121158,2cb2457ff69a52c1db6c0f16b19a20fc220623ddb89ad48a7a41f7997a1f3076 +assets/content/api/angular_common_http_HTTP_INTERCEPTORS_constant.html,1742567121157,1b502ef350e370a1d4ebfd403831b4bc0a92337bed7c94f8823db805c359c5de +assets/content/api/angular_common_http_HTTP_TRANSFER_CACHE_ORIGIN_MAP_constant.html,1742567121158,068ba9c2307a99415f86fd20f8ba1cd5359445f0986d62c81aacbb41cb7b75ac +assets/content/api/angular_common_http_HttpBackend_undecorated_class.html,1742567121158,3f8056a7b5acf4058799e9633b8a440057a6c5d790485a06af543f1c6d427c4d +assets/content/api/angular_common_http_HttpClientJsonpModule_ng_module.html,1742567121157,0ff6f635b298efbd1e5d1cdb9ff31c61ab7db3e4a57fde65016aa288b1c74111 +assets/content/api/angular_common_http_HttpClientModule_ng_module.html,1742567121158,0815441a1b551a6a78bb6fa9074692719f1800840efccb4bf816a0bfce8805e1 +assets/content/api/angular_common_http_HttpClientXsrfModule_ng_module.html,1742567121158,ef52177fc72d03a0802f50bd11bef20cb4c96c7f4e8ce73880315d887b238215 +assets/content/api/angular_common_http_HttpContextToken_undecorated_class.html,1742567121158,19ac8cef378da1688de40bc6376a70d4e63221c996ac5bc7d542a656d5177556 +assets/content/api/angular_common_http_HttpContext_undecorated_class.html,1742567121158,7e3641d8401d5d69576c3a845cc636c2befd0bb96fe3a769ac1aa19c4d5f55a6 +assets/content/api/angular_common_http_HttpErrorResponse_undecorated_class.html,1742567121159,eaa71eb363e678d8aace877cbbc31c3a8f26b1a85de4596861d3b988ee5928c3 +assets/content/api/angular_common_http_HttpEventType_enum.html,1742567121159,48102cd0c126556b162c64ab6a54ad80c54a8aa7f3f36d974149bcbea5f82efb +assets/content/api/angular_common_http_HttpDownloadProgressEvent_interface.html,1742567121158,38aa0e8760df20d00f1dbf2c3ca8d3099375ab9b869ae0ffdc4484a374e986f6 +assets/content/api/angular_common_http_HttpFeatureKind_enum.html,1742567121159,cbaf9524dea977f9e4a04825adabfef5ff31327c752cdd433ec10a97fb40e5c7 +assets/content/api/angular_common_http_HttpEvent_type_alias.html,1742567121159,7ac99a9ec7f3e72ea0eb247c7f862e9f45700d1d716edd68d56199d8115cd240 +assets/content/api/angular_common_http_HttpHandlerFn_type_alias.html,1742567121159,0f7673dd3a82b77c4638cf3f6967fb7aaba626c97172a2cdde7f1300c5a496b0 +assets/content/api/angular_common_http_HttpHandler_undecorated_class.html,1742567121160,19ef9ef782e9b4910e4718be6e465f84dc3f670758e78c5d3ff5842c44dbfe28 +assets/content/api/angular_common_http_HttpFeature_interface.html,1742567121159,2b51856238af74fef2cc980ec4a794372f1b39a368d370882d20633be5edd9e2 +assets/content/api/angular_common_http_HttpHeaderResponse_undecorated_class.html,1742567121163,a7b0973b47dd66231892a3282e452633335bbfc76e104eef392c6ceaf7647b3c +assets/content/api/angular_common_http_HttpHeaders_undecorated_class.html,1742567121160,6dd766b2a8fe1fe840ff5b4f58f337afcaa260f433b7e511fc598194b6c53656 +assets/content/api/angular_common_http_HttpInterceptorFn_type_alias.html,1742567121163,f880499ee590231fabab8bfa8caeab7a8cb86bd7e63aed92dbe555fb416441ea +assets/content/api/angular_common_http_HttpInterceptor_interface.html,1742567121161,b52a8ae0d376ac70ff4bf3407cfb013eb2b12040e28249f2046ed052b3d25f2a +assets/content/api/angular_common_http_HttpParameterCodec_interface.html,1742567121163,ee24d31fce4d63e80c4e117b001c12243ae4cb08c101045b0b7b71fc16db0ba3 +assets/content/api/angular_common_http_HttpParamsOptions_interface.html,1742567121163,7b0bb27f987bcd409a38d588c6dd68de38ac9cf284075cdd2b2262fadbfc2c5b +assets/content/api/angular_common_http_HttpProgressEvent_interface.html,1742567121163,093dd9f477facb5379bcff081a19ce0aa018b5a36bd627c6a44784260abfabb5 +assets/content/api/angular_common_http_HttpParams_undecorated_class.html,1742567121164,dda7097a35b5e0ae1953d00a394d595228872c6417e87b80b4d976fd2a4df66f +assets/content/api/angular_common_http_HttpResourceOptions_interface.html,1742567121164,e606e5ec735cb2cd055277f1763a8f53dae4bde2049ae94b9b2daac53d5ad57e +assets/content/api/angular_common_http_HttpResourceFn_interface.html,1742567121164,c0df8fe37e8bc4e614d31bb308d2fc6c09aa784f54e6ddc8a303ee13c6e3bd28 +assets/content/api/angular_common_http_HttpResourceRef_interface.html,1742567121164,57944926124c241d5450dafd560a96f4c3b04351bc1620c8f7abd0f49d439197 +assets/content/api/angular_common_http_HttpResourceRequest_interface.html,1742567121165,65996490b1499f909a74b2fb68e808219f7ccbe2893d8a875a96b25e0012ab10 +assets/content/api/angular_common_http_HttpResponse_undecorated_class.html,1742567121165,8434dd2bb8dfe4a95f68d372abf1b6ebad9676c2e3ebab306298016b69c3e874 +assets/content/api/angular_common_http_HttpResponseBase_undecorated_class.html,1742567121165,94d0c1757e362fec911ab4f5dae4e2593a58e69a4833063455a32d8f56479e87 +chunk-ZUJBENQB.js.map,1742567121439,2e77b22898f82469c2a8220c571b6f65839983b1670a5d16318163dcd50483c2 +assets/content/api/angular_common_http_HttpSentEvent_interface.html,1742567121165,9b191ea0dad36c2fb92bb684fcbd8d210c66f18e4ca849d1e59a2408545f8bf2 +assets/content/api/angular_common_http_HttpTransferCacheOptions_type_alias.html,1742567121165,55161fd2fb89c98a7b0ec15843b42aa347573724ffc05a89a1e12ef752cbbe92 +assets/content/api/angular_common_http_HttpStatusCode_enum.html,1742567121166,d53e0ccbf4651d56a602acaf8c57754bcb5e221453207802554762dbcca0bca1 +assets/content/api/angular_common_http_HttpUploadProgressEvent_interface.html,1742567121166,3e473e8fb1f6287accee8e4fad722dcb5de0f183c6ea06be16614a9e4ef529a7 +assets/content/api/angular_common_http_HttpRequest_undecorated_class.html,1742567121165,27a0b4c28f93d76c02f9a7d22be3d932d383cb98b851b96101b036014cbaccc8 +assets/content/api/angular_common_http_HttpUrlEncodingCodec_undecorated_class.html,1742567121166,955ec4280ec255ee41f9a6f8c5b4201498731d389e93e31b066f7fb3ba41d2db +assets/content/api/angular_common_http_HttpUserEvent_interface.html,1742567121166,7f6be03b04c541d0c1dcd1aba72f8336c47998b13da628baf9943a05048245b2 +assets/content/api/angular_common_http_HttpXhrBackend_undecorated_class.html,1742567121167,4cec014812637de59f5f2b49b9df07545715b5e1788dbf912963f4d29aa0ee7e +assets/content/api/angular_common_http_HttpXsrfTokenExtractor_undecorated_class.html,1742567121166,36e602c248d91804a23402d23d80ca5f2a851fc5969cbb27e6fb55c6f9170584 +assets/content/api/angular_common_http_JsonpClientBackend_undecorated_class.html,1742567121167,a528de4589f4097d3d80243b91dddd3c498aabe05f26565019df663831e7b5b6 +assets/content/api/angular_common_http_JsonpInterceptor_undecorated_class.html,1742567121167,a17e3835e3f21f9a9170b4427015b7e18a2f4c5033e93a24d84d6bdf14c4aed0 +assets/content/api/angular_common_http_provideHttpClient_function.html,1742567121167,cb690ba89e8f40422f693410e20e199c949feb911740ed26d183873a739e53a4 +assets/content/api/angular_common_http_httpResource_initializer_api_function.html,1742567121169,e48239ff2bb14e6b28313cd8fe034e87feeb5499fb5c4437526aa256c4e808df +assets/content/api/angular_common_http_testing_HttpClientTestingModule_undecorated_class.html,1742567121168,2751987b6c4c57e6a10f1d7265f97a4487b7e9cce1855b8e0a847e53339de06f +assets/content/api/angular_common_http_testing_RequestMatch_interface.html,1742567121168,b4a43d197413e9c2fc4fc12387054f2ae951a12d4417a85dd245c2f9deca3289 +assets/content/api/angular_common_http_testing_TestRequest_undecorated_class.html,1742567121169,cdba11919d46f6813dc67b32a48964d6c2b0539a6f3e07b07868daf3f2f9f520 +assets/content/api/angular_common_http_testing_provideHttpClientTesting_function.html,1742567121168,1bc7de71400dda956e69a2c9a2ccecee365f3028f334e174440c275726807f19 +assets/content/api/angular_common_http_withFetch_function.html,1742567121169,ca52533495bf3d8929f5ef72f3ebde4032b1c037a05d92e0b508c254097ff6ae +assets/content/api/angular_common_http_withInterceptorsFromDi_function.html,1742567121169,b2c96d360062f341d2c4368bcee1fbfa8a65582fefe13f58f6d806ac5a3706f9 +assets/content/api/angular_common_http_withInterceptors_function.html,1742567121169,d2cdebfb654a4e87310fa53083c6c099aec2756a56ca504bde9535e97ce110e7 +assets/content/api/angular_common_http_withJsonpSupport_function.html,1742567121169,f9c3a7b8cddb17d21fcf81eedec691ec09d53620d36e8aa14eb59613518eac61 +assets/content/api/angular_common_http_withNoXsrfProtection_function.html,1742567121169,6c471df8f142f81629f620f3a8a942a0bc3784266c5fa17aadbffdf13725e55a +chunk-B7NVROQ5.js,1742567121438,9434c0ad8b3b00c9c2c4554a6d7c8afa515c818e90850ca306b5307d3696a9f3 +assets/content/api/angular_common_http_withRequestsMadeViaParent_function.html,1742567121170,da0fcb61af503786743e8a3c47766d76c9a4abdc5f2e18871a65012c1ddf2405 +assets/content/api/angular_common_isPlatformBrowser_function.html,1742567121171,aa8da606bbe08f6101a0eef308550486d33c8cd919228497f80f2e26717d3ffa +assets/content/api/angular_common_http_testing_HttpTestingController_undecorated_class.html,1742567121168,f4029d6d805651bdfd31f522e12c7739a99b2fd615b59e828ef8627731634385 +assets/content/api/angular_common_isPlatformServer_function.html,1742567121170,956f12792ea2ff549e16aa4f605370912445483c9d69bde9d8525f1dfdef230d +assets/content/api/angular_common_http_withXsrfConfiguration_function.html,1742567121170,c337315e95760b34c89be34fbcefe3c7289ca5b5289cfdef18ea6f9c95eddac6 +assets/content/api/angular_common_provideCloudflareLoader_constant.html,1742567121170,2dc07ea11ddb5d5a7b7a087396bc8d03080645f3a0ef61bf347b72256e402f69 +assets/content/api/angular_common_provideImageKitLoader_constant.html,1742567121171,62f4964333e97b86ff90b50a24b9416ce11717cf23d8426e2c348301f7824e92 +assets/content/api/angular_common_provideCloudinaryLoader_constant.html,1742567121171,1ea7dedafe6c51b867b10471e96f21c543772d5ebc639137d790fe158b1ff88f +assets/content/api/angular_common_provideImgixLoader_constant.html,1742567121171,7c373b08682a5d57ba79b49dd2f4daffe629e0b92fb68c875ca30fc72d68dfd1 +assets/content/api/angular_common_provideNetlifyLoader_function.html,1742567121171,305946573a1f29d2825853572f408e067f43fe1a9ac14618488c179970326d55 +assets/content/api/angular_common_testing_MOCK_PLATFORM_LOCATION_CONFIG_constant.html,1742567121172,40b37a479f42ed76eeff1efaed7ca561e4e88369da51c7b5cc795b4956b21e29 +assets/content/api/angular_common_registerLocaleData_function.html,1742567121172,5d91210bb028c65eb2d5aa6119ed1a4ec52c33f5a983e968bdac3cd4e1c046aa +assets/content/api/angular_common_testing_MockPlatformLocationConfig_interface.html,1742567121172,691dc33e5675203e7cef5a6a0392ae49d83f9df93933220b6a7d130606baf3d1 +assets/content/api/angular_common_testing_MockLocationStrategy_undecorated_class.html,1742567121175,0f29af69489f1334125ccc2794771c83222dbc71c493262bc30cd6cd6205830d +assets/content/api/angular_common_testing_MockPlatformLocation_undecorated_class.html,1742567121175,b543346bea4cc398470a04acbf63f2c9d159ff0e3df99423414a444b6e862c16 +assets/content/api/angular_common_testing_SpyLocation_undecorated_class.html,1742567121175,8dfb16e7a7a9225a7e2abfc368f8947f61253a392cec20ba55165da8e5bfc935 +assets/content/api/angular_common_testing_provideLocationMocks_function.html,1742567121174,a47faa9e26c9919a6baff99aab0a4d6ba8426759e6e4dc295229fd48c79769e2 +assets/content/api/angular_common_upgrade_$locationShimProvider_undecorated_class.html,1742567121175,f88da3589618c777f775b0a73038443581a4291a4e367f7c836dec3e19022182 +assets/content/api/angular_common_upgrade_AngularJSUrlCodec_undecorated_class.html,1742567121176,056c5d38781c69f5c69c531efb2b50f33a866bef89cb2ed29c89ae95cb3d2464 +assets/content/api/angular_common_upgrade_$locationShim_undecorated_class.html,1742567121177,ac965bb543517d587dff375be6cec0578fd0cc08db81f52849a07a2e0811f51a +assets/content/api/angular_common_upgrade_LOCATION_UPGRADE_CONFIGURATION_constant.html,1742567121175,abc12ece93bcae52654d9808a5b279154cf2a1c78953a910a92f751093b9f6fb +assets/content/api/angular_common_upgrade_LocationUpgradeConfig_interface.html,1742567121176,b2b230da9e9e8303d5c73775781ea71a0899d6b74e5238fbecab4011d035ab1e +assets/content/api/angular_common_upgrade_LocationUpgradeModule_ng_module.html,1742567121176,1eb92a254862dc092d4025b2724d4e9817850fdc204d87f1597c08aa984f946d +chunk-RQGIGR6X.js,1742567121439,9eb1425b9cb7fb1e7524553c1d83efa89057b1cf8ef59ae4f4bf35b75772e70c +assets/content/api/angular_core_@defer_block.html,1742567121177,dc891629d3433bd9e04bb55460974f4697f0dc1533eba99768624b3f41ea4dd0 +assets/content/api/angular_core_@for_block.html,1742567121177,13004debfe6f55ba41626c89a294b59c4af6d24f192f39dba5e799b1a7804e7e +assets/content/api/angular_common_upgrade_UrlCodec_undecorated_class.html,1742567121177,4f91d00d2dc06c68471a77b8e171c2119ea05b51caf383cc7aecf2e5ed40ca46 +assets/content/api/angular_core_@if_block.html,1742567121177,77d20d2b089a41bbc2d825d74529736cb156362239472ce9e748410e44de39c1 +assets/content/api/angular_core_@let_block.html,1742567121177,44e2e2c8deb73db4ace3b614bfa4ecb2c79c42bc73bdc7a49b74440f4945f0dd +assets/content/api/angular_core_@switch_block.html,1742567121178,0c7f9a4b034d0e4e6001d036aea3f07c97461875a98ca6a72e21396e760128bb +assets/content/api/angular_core_ANIMATION_MODULE_TYPE_constant.html,1742567121179,48280234a8ae5dcfe8dcdb2b48002c3c657d6382b618576dde1d7b734f948afb +assets/content/api/angular_core_APP_BOOTSTRAP_LISTENER_constant.html,1742567121180,78b5ebaf23319d654398543e8166211683cb38c509d7c941747ec9c7efa09b93 +chunk-MLYXGPVM.js.map,1742567121439,021e9f6712997b09b48f382715c8c3fe2ca79b859c208b6216dcdce9adb4858a +assets/content/api/angular_core_APP_ID_constant.html,1742567121180,5266006caba9616f170a2c66ec2c482287abd0fc33276edf747c86703d883456 +assets/content/api/angular_core_AbstractType_interface.html,1742567121180,23d2079dd894d36704950b791357e16466fbc89705f6d8707b2ad6a79dd05507 +assets/content/api/angular_core_APP_INITIALIZER_constant.html,1742567121180,e945845664d1f2263ed8df7e1b4cd802352e9943cf65f1a0233261c1f2e4b78f +assets/content/api/angular_core_AfterContentInit_interface.html,1742567121181,9ffdca8651d5e1c0dc5a693bcd2b56dd4bca6e152ee18f6db86c09088eb025ec +assets/content/api/angular_core_AfterContentChecked_interface.html,1742567121181,0c5c90566b24845337c97d2dd8740d79d2a3e7ac5cbcd6ca62dbabac283eed6e +assets/content/api/angular_core_AfterRenderOptions_interface.html,1742567121181,1cdddc04a8651f5974482c60c11d64e78f75b8e2f8d0f8aef42d773ecb4b08f4 +assets/content/api/angular_core_AfterRenderPhase_enum.html,1742567121181,fba5030069781e4983703e6c9a09d33242d0a97873d6849b4c1e056b032ea7a5 +assets/content/api/angular_core_AfterRenderRef_interface.html,1742567121181,9e25b15737d33e2e37786e666c08065944d54bd492b5c8b16361769fb32ae185 +assets/content/api/angular_core_AfterViewChecked_interface.html,1742567121182,d02e6ffeae9b8f202028d5ed16b4ec70b74c82ea0a40579760cc70dc4daa490e +assets/content/api/angular_core_AfterViewInit_interface.html,1742567121182,14464b64a226de05d73d370e6fc248fb01267e7541421eacac4d8956f31583d6 +assets/content/api/angular_core_ApplicationConfig_interface.html,1742567121182,e61a494c8bcf1e2b996109f942f58e1e82e11d9182f2445c3ba19b708b2320b7 +assets/content/api/angular_core_ApplicationModule_ng_module.html,1742567121182,efeaf2f22436a16f851bd53285d38af31afa07551f907ff1eec3e3adbfd6a563 +assets/content/api/angular_core_ApplicationInitStatus_undecorated_class.html,1742567121182,a8265158a55169f84bf02196f89c2f3fd23acc2a6afbbec43d5a11dc231cb886 +assets/content/api/angular_core_Attribute_decorator.html,1742567121182,6b1fc538fbc2dbdd8fd7cbd180722e269e0bbca23dbb4e522b7a47a55e8f9b7f +assets/content/api/angular_core_ApplicationRef_undecorated_class.html,1742567121182,a0b37a2f6d2d27ed091a2a23f8538089a5cd61620dec16601e80115d962cb058 +assets/content/api/angular_core_BaseResourceOptions_interface.html,1742567121182,1f8e132f7dfb78bd8c0a8aaeedb26858300dacb625678c9b9cad8eccb265b68b +assets/content/api/angular_core_COMPILER_OPTIONS_constant.html,1742567121183,c8a3310819e98a2a59a921991534841dd3c5065dad73d7bdaa29c353b0358a29 +assets/content/api/angular_core_CSP_NONCE_constant.html,1742567121183,759d6d6fc38ceba2d7427cfc2f6a213a66c77371baf0babe4f929a62fe017c82 +assets/content/api/angular_core_CUSTOM_ELEMENTS_SCHEMA_constant.html,1742567121183,217fadab6411d0a1700034bdcb7e6dbeb0c588c1324afbe26aab72b8900bbd2e +assets/content/api/angular_core_BootstrapOptions_interface.html,1742567121183,ea3409c6e6ae319febf97f46fbaa0672521f41da2148d3d7c4b81d5d24524910 +assets/content/api/angular_core_ChangeDetectionStrategy_enum.html,1742567121183,4153534381b756c4c0ced65a29d59a4488fabbf5313c294ab56e1b13995dd6a9 +assets/content/api/angular_core_ChangeDetectorRef_undecorated_class.html,1742567121185,9df9ad3c857f1f41661eda0c30d15f8e7d61520fed83e4cf8a30ba4d78fc7fd3 +assets/content/api/angular_core_ClassProvider_interface.html,1742567121183,baedc578c3bd02e5cc3db9a9c1e0cfa141e963068fa549761943b96687b74c75 +assets/content/api/angular_core_ClassSansProvider_interface.html,1742567121183,f640327898076be70bfdf39c5ac53ff8fedbe3838540b672360c0cb1c5a48cab +assets/content/api/angular_core_CompilerFactory_undecorated_class.html,1742567121183,f5659af325b4982aa63688078133e10633f27564398f0e366e7b3247aa910e9a +assets/content/api/angular_core_CompilerOptions_type_alias.html,1742567121185,1b4f26e53c87ea869fd05c356363d4621b5e4ebd33f3db53530fc55966260af7 +assets/content/api/angular_core_Compiler_undecorated_class.html,1742567121185,28ef5409d11967a130208983705aa9fea998d689dd17ec40f4daa01f1b410c29 +assets/content/api/angular_core_ComponentFactoryResolver_undecorated_class.html,1742567121185,32196889bb81505065aa84bb6cc2781666543c67751efeb0344c3f7825ed3363 +assets/content/api/angular_core_ComponentFactory_undecorated_class.html,1742567121186,c633f650c722fa2b95313b82629aecc07c2cb0d3b79016180247233a416f4562 +assets/content/api/angular_core_ComponentMirror_interface.html,1742567121185,e12ebced2c05593160a8d29a7b18f8f67ad3f44637bb1733dca51b5cb2aa73c2 +assets/content/api/angular_core_ComponentRef_undecorated_class.html,1742567121185,d9c7b612d0153c2082a6167d7e4754735e9f92bce8e22c50643f528288e9d491 +assets/content/api/angular_core_ConstructorProvider_interface.html,1742567121186,da63211a42c28a5722ff2691b4133b5fd8a1b4270c7171ef77fefd8abf57324c +assets/content/api/angular_core_ConstructorSansProvider_interface.html,1742567121186,007ff83835203e0df59084adde1281e3ae95b4f15d32b0fd16e70b10a04ea93f +assets/content/api/angular_core_CreateComputedOptions_interface.html,1742567121186,e89c2538417877463322a4b8052f9cbffeedf09ba50e891b2f40f254620dfe9d +assets/content/api/angular_core_ContentChild_decorator.html,1742567121186,20e69cb920afad81aeca823df14921e62901c1c8997f61a25c8efc538296fb5d +assets/content/api/angular_core_ContentChildren_decorator.html,1742567121187,5ff0d7454348de88e5a9c00c5e49b655b3d02f06c6dfbbfbec78ba43556e4625 +assets/content/api/angular_core_CreateEffectOptions_interface.html,1742567121187,a631b24a78b31d31f3111a2957fd873ae6a8ff0e2f1a2488b872655eb4e39e06 +assets/content/api/angular_core_CreateSignalOptions_interface.html,1742567121187,bf347a59a1a21659fff31c4d81617bab237bf20d5db14923eab0e98bd127225d +assets/content/api/angular_core_Component_decorator.html,1742567121187,5767e85af43efe438f2156f7496cc229dc1792caca197f910f47aca77fb01811 +assets/content/api/angular_core_DEFAULT_CURRENCY_CODE_constant.html,1742567121187,edafe9be2d5895da4fae639b19a598f88623b13f84411c52c7ca1f97156f4e77 +assets/content/api/angular_core_DebugEventListener_undecorated_class.html,1742567121187,d7c0819663e659a79747d583a37406fe04cd050245e0304bb0302faa0afa10d6 +assets/content/api/angular_core_DebugElement_undecorated_class.html,1742567121187,1551606e1cb49db4de7e7f6a091f9857021148dd2783b50f990562fff0b46b02 +assets/content/api/angular_core_DebugNode_undecorated_class.html,1742567121187,c4bb452718e8f0b3d63cf9e0119e128278c66cbda5eb70e56f62765ab2d79111 +assets/content/api/angular_core_DefaultIterableDiffer_undecorated_class.html,1742567121188,86800fce9af72586c8102808ee2b1d35c1b3b1de56742362906936eb61b26e1b +assets/content/api/angular_core_DestroyRef_undecorated_class.html,1742567121188,6558c2aff46e326a085d209a60a71b7a88a847461d2533f6cbe04d53186c57f2 +assets/content/api/angular_core_DestroyableInjector_interface.html,1742567121187,28dc2f61273e2fbfd5f128189a393f48be61bef283a5570273d4642f7dcb5eaa +assets/content/api/angular_core_Directive_decorator.html,1742567121188,d982ee0d4a0145c7593a331e28b9e53b32fc29ce3e87accf456ca95877fdb5ac +assets/content/api/angular_core_DoBootstrap_interface.html,1742567121188,571dac2435cced05c134a4e4ecdc2226b18c7eab368b796c103be6e8ab497cc0 +assets/content/api/angular_core_DoCheck_interface.html,1742567121188,72ea319a57b55ecdc6a3ae1efdcc709c53f54b9f34b56363b506bf25c4a08064 +assets/content/api/angular_core_EffectCleanupFn_type_alias.html,1742567121188,a73f6b4479c76becb60d9b90031ba6628a065ca93106be513adc0d5ccc303376 +assets/content/api/angular_core_ENVIRONMENT_INITIALIZER_constant.html,1742567121188,1b2601a8ae1ebe6dc632a54bace8ce7e5738cc366e72c6525d7ae2761c958244 +assets/content/api/angular_core_EffectRef_interface.html,1742567121188,b72471f4ab559c3cc3a646403b5ebaed4c7eed29ac2184c72b5329b83cd87ba1 +assets/content/api/angular_core_EffectCleanupRegisterFn_type_alias.html,1742567121188,4eb2ad1580e2b1df15b48076f04a14d77218b651f3e15571734623eded6a7e41 +assets/content/api/angular_core_ElementRef_undecorated_class.html,1742567121188,5cce33eaf1a9bcf840f3dc388ff8d8856a29659e3875ea18f5c5fab3702c6387 +assets/content/api/angular_core_EmbeddedViewRef_undecorated_class.html,1742567121189,833001ef3122fbd086f3137f9365a2132ab221e7e3f3b1a439b2a9bdbf65e630 +assets/content/api/angular_core_EnvironmentInjector_undecorated_class.html,1742567121189,7e9e386101cfece0e416db0e2b242a50a0886de6771e3bca69e1f7abcf51cb54 +assets/content/api/angular_core_EnvironmentProviders_type_alias.html,1742567121189,c9c82f0a390c6c6de1bfca907858084218e969663a628873b67860b43a6d06a4 +assets/content/api/angular_core_ErrorHandler_undecorated_class.html,1742567121189,8a74a6f197d26772b7813eb837565dcfc7d45e478384ad98c4c21df46d7e5110 +assets/content/api/angular_core_ExistingSansProvider_interface.html,1742567121189,008105cd0126ddff3a2790fefbd39f941a833d54ac282d9b7f0ece4df9dbf563 +assets/content/api/angular_core_ExistingProvider_interface.html,1742567121189,5e2f32087071f129ee5894714977d7ffe90de9b556276b46fea562902e120c06 +assets/content/api/angular_core_EventEmitter_constant.html,1742567121189,9ee3565ba6f662d9815fea6ed2a0a6ab527ec798746f7fd0dce39bac73180424 +assets/content/api/angular_core_FactorySansProvider_interface.html,1742567121189,c669eb0f368500831d37894b70b46a1c0b2b795ee1925f58e0529d66b97443da +assets/content/api/angular_core_FactoryProvider_interface.html,1742567121189,d13ddf58e25c46029828465a7dd5d5639a5836a0e9a6a565651fa85cf7ebb293 +assets/content/api/angular_core_ForwardRefFn_interface.html,1742567121189,a20594ee3edef6506302a06775a53e0e53f97d3305e8ccbe70764b86b7533bb2 +assets/content/api/angular_core_HOST_TAG_NAME_constant.html,1742567121189,a59ac53eb04b94ad92a8af4a184685ab0d98ff19872a8141c76a71b8375563f0 +assets/content/api/angular_core_HostAttributeToken_undecorated_class.html,1742567121190,32f04ac24687020e0a832897c0bbca7b2ad9bbd6827b051b8f1379370a79483e +assets/content/api/angular_core_HostBinding_decorator.html,1742567121190,8beef4e268c2e264ecfa7e6770079d18161c0e40b27ec010d08bb883909bd137 +assets/content/api/angular_core_HostListener_decorator.html,1742567121190,d5687952a19f46387ec477974793603ccf599b2e66464a283e834c886adaf7f5 +assets/content/api/angular_core_GetTestability_interface.html,1742567121189,d73e6ba68abbc444c677b092ae80b992a07533b3ff84f73f72050d165bc9f071 +assets/content/api/angular_core_Host_decorator.html,1742567121190,f5ed0995da92c0ce28724759c4ca23637b5217b824780ecb6206d77738f1c643 +assets/content/api/angular_core_INJECTOR_constant.html,1742567121190,6823ab6ae49fd9d3b5b8d39152965475430e3a4f99a1ddc02d1f99bec54a4d51 +assets/content/api/angular_core_ImportProvidersSource_type_alias.html,1742567121190,d28edd0d693cd372b99f502966c8306940cd2b73cd3c7f38fe1ed3f2c9fd74a4 +assets/content/api/angular_core_ImportedNgModuleProviders_type_alias.html,1742567121190,7db98f6692abe3f046ebed29f0ef3add75d7ea1c815caae7ad08147f5e62c2af +assets/content/api/angular_core_InjectOptions_interface.html,1742567121190,e51f15119c62b858859d49ba1c72e4edc91416eb5bc79485d4c16c706a9db16e +assets/content/api/angular_core_Inject_decorator.html,1742567121190,3b4e293995d5dc9b27fc7cfc0f7f779bc687307820f41a57f01799b56242119b +assets/content/api/angular_core_InjectableProvider_type_alias.html,1742567121190,e71be7c1a20fc737fc1b1d69b3c549032a3ba6869840a2d65c9c0b272d906b89 +assets/content/api/angular_core_InjectableType_interface.html,1742567121191,5f31b07b450bbffd2700b28ffbc937085c031f7ce63f2aecb17943de3ac778e7 +assets/content/api/angular_core_Injectable_decorator.html,1742567121191,1e6e7f05f528867a1a141f0c83353a5a7cdea69540ea0000020632f7d8df634d +assets/content/api/angular_core_InjectionToken_undecorated_class.html,1742567121191,1e64c0e174d8db33801fffe0bbe54ff7c649467c82c04a18befd02eddb9a58c1 +assets/content/api/angular_core_InjectorType_interface.html,1742567121191,615d619d937bcc32caee502d0bc38f4312748f2a1a03472e49e10ed6a8ffa3f5 +assets/content/api/angular_common_http_HttpClient_undecorated_class.html,1742567121166,a794dbcfc9aad16e30294d50561b4474a46558a9d8ce84d0eb3bf1c6bac0f015 +assets/content/api/angular_core_Injector_undecorated_class.html,1742567121192,122992257fda5bfaa5ad3446b40fa410bf5b9a1f33e9cff25eec70d4dc424bb5 +assets/content/api/angular_core_InputOptionsWithTransform_type_alias.html,1742567121191,cc0c347c49d16a915f14f53bf0e1947f2084e7a6e9aef453ebd8024749edc381 +assets/content/api/angular_core_InputOptionsWithoutTransform_type_alias.html,1742567121191,0075631ec6abe2c2727e0a3afe8248a318b47151207d5cf122babb3e4c67d5b2 +assets/content/api/angular_core_InputOptions_interface.html,1742567121193,2fc6046a5cb0246c150550ac22e94286cbf5a23437908fd0940e148d16aba4d0 +assets/content/api/angular_core_InputSignalWithTransform_interface.html,1742567121192,d18738ea0157ce1ffe4a05e8f3ebc79dc2987dac2b6462cc7c2aa6f4c68a1175 +assets/content/api/angular_core_InputSignal_interface.html,1742567121192,e56f798252cc6f711a88de6e8963ad6cd3541392f5dfd63a19d3a42718c1db0b +assets/content/api/angular_core_IterableChangeRecord_interface.html,1742567121193,3e1f547ad12bac27e46b5194d0e603055b17096b50fc2d4c43b33e7ad39aad42 +assets/content/api/angular_core_Input_decorator.html,1742567121192,5a74e4e502fe9397d2cf73f524aa9dbeb1771c436ffe314f9468143945ae0609 +assets/content/api/angular_core_IterableDifferFactory_interface.html,1742567121193,6dd70fc39ea9671e21c351cd5c7f44f51c21687f0d43d65bffdfbfb74bea613d +assets/content/api/angular_core_IterableChanges_interface.html,1742567121193,47ee87d4dd357acd36016603c4fc2c74898eab043f3d88eea6c747ae23defe60 +assets/content/api/angular_core_IterableDiffer_interface.html,1742567121193,06528bce7f4047ac3dd2ca631352dbe3618709f353cea2fa3f28ecaf215752d1 +assets/content/api/angular_core_KeyValueChangeRecord_interface.html,1742567121193,779e9c3a79f83a5cc7143e7f4b01b212a503bb1f3338f7538af70152e5e3fb3d +assets/content/api/angular_core_IterableDiffers_undecorated_class.html,1742567121193,2d5fa8dccaa491f6ff496a9735440e5eb493c9a06c832233bfeede997861c76a +assets/content/api/angular_core_KeyValueChanges_interface.html,1742567121193,9db7490cdd2530e67db883a167e4b242af69087604e72dba4618f1ad2f2d4e05 +assets/content/api/angular_core_LOCALE_ID_constant.html,1742567121193,1866a5d2c4ef8698cd00bd9cf8e0c5e781813d80222f035c7f2c4c5d091cd468 +assets/content/api/angular_core_KeyValueDiffer_interface.html,1742567121193,07ae9693cf6197b49b17fb615d5f55b4b420412540616cf636531dd522424c97 +assets/content/api/angular_core_KeyValueDiffers_undecorated_class.html,1742567121193,51ff35aa54ef9c04e130530f47784b7d30b4a5caa4d8563636a08f91d5103668 +assets/content/api/angular_core_MissingTranslationStrategy_enum.html,1742567121194,8ad6db47c61fbd616a1af73b7ca49c5d08814cc094b93bbbaceb3c6917338d47 +assets/content/api/angular_core_ModelOptions_interface.html,1742567121194,7b5b682b6b03eacb4b8053fe096f47e410eb1d87706cbad5f7749fc9cab8f82a +assets/content/api/angular_core_ListenerOptions_interface.html,1742567121193,a3adcdb05b822efa5a65d4280c594ea1702b04500bb35ba416b03045a6a6260d +assets/content/api/angular_core_ModelSignal_interface.html,1742567121194,8a5083aea4d22422c7261bf7500be429c2c8f556df275b945d7a82a0982cd45f +assets/content/api/angular_core_ModuleWithComponentFactories_undecorated_class.html,1742567121194,abb02322f1733350011ef261abb78d29f2940a20e2ebdff6ee05b4c80d840d5f +assets/content/api/angular_core_NO_ERRORS_SCHEMA_constant.html,1742567121194,39b6f164177280acc4bc70f698bfe1d7d1422dc3f0c02e4847040e1da7b5fe1e +assets/content/api/angular_core_ModuleWithProviders_interface.html,1742567121194,c27062a1dd34abe5dd6c61589631d95614b75b45859a884e582af20ef735da9e +assets/content/api/angular_core_NgIterable_type_alias.html,1742567121194,28a4907a27a79479db64c506323305b5676a41c76386f7ea84c193423c7a0a7a +assets/content/api/angular_core_NgModuleFactory_undecorated_class.html,1742567121194,53ffa424403121bba59495bc0ff5bdcea5f34e462a98866f3ec8042298a8addc +assets/content/api/angular_core_KeyValueDifferFactory_interface.html,1742567121193,4b52ac9441e799a85607d56d16325e2b16790bdcf49ee424f772be9545107432 +assets/content/api/angular_core_NgModule_decorator.html,1742567121194,3253b7c7c9c200a34d096925310c6ea881e2b908f7eefe3e4c8e7a6873a0fa60 +assets/content/api/angular_core_NgModuleRef_undecorated_class.html,1742567121194,6cf1547dacdefae236e8da0c6a930ec1017e882b4dd0f3cdfaa20e5b1dcfb874 +assets/content/api/angular_core_NgProbeToken_undecorated_class.html,1742567121194,a46654072f76e117e2b7112598dbb8bc394097fbe56962b0b0e02acb28f2dcb0 +assets/content/api/angular_core_NgZoneOptions_interface.html,1742567121194,c4587acbaef70e1b42bb105304f85071b0ba3b3b62467124b7f0009561c7afe1 +assets/content/api/angular_core_NgZone_undecorated_class.html,1742567121196,208a46d97527ce6fd39487d931d5d8045337663d1401077e34d54548451c128c +assets/content/api/angular_core_OnChanges_interface.html,1742567121194,0fd0d78c9790a3c8d25ff99bf38af9fe4613e4936d20e514047c72c51b8f827c +assets/content/api/angular_core_OnDestroy_interface.html,1742567121195,e64be2cef22030498614f74c00c9d6905c6ecc828ba0765bd5ef9a78743f2e29 +assets/content/api/angular_core_OnInit_interface.html,1742567121195,293be5c8602c91d40b6e1ccc563dee37a321640973f0f37e6ee5c292645aecb3 +assets/content/api/angular_core_Optional_decorator.html,1742567121195,50267adb728631034a65fe09a3a0e7350c00837b48908a0cdc4bed1718ce67c1 +assets/content/api/angular_core_OutputEmitterRef_undecorated_class.html,1742567121196,6ea4cb6e1f99ebd6575e436656cfe5e7e0fd5715e6ef0aba309871bfdb41cad7 +assets/content/api/angular_core_OutputOptions_interface.html,1742567121196,e982bed84ed97714b7edc1de6987718c846a7a7b768b8fddb668ef86b13f4baa +assets/content/api/angular_core_OutputRefSubscription_interface.html,1742567121196,85b71e8631ed0eb6889b31e958ef96e0ad85d91f262195a84b8d2794f38e476b +assets/content/api/angular_core_OutputRef_interface.html,1742567121197,24c21a97ffc1af3f85d2889a63e98a7f4c07e8418151d9636cf58babe46c6120 +assets/content/api/angular_core_Output_decorator.html,1742567121197,d1241f18ce2a3d79adba7eeae7b8a74bacd1fea911b8d166ade5bac9f43ed3b5 +assets/content/api/angular_core_PACKAGE_ROOT_URL_constant.html,1742567121196,b64e830aa31ad00c74243c9f9341d5f187680822649d2d1c9c181dabf54742e0 +assets/content/api/angular_core_PLATFORM_ID_constant.html,1742567121196,18fd9058b690186a3d49b7af268d44010997e033bb3f80ad7dfce274e79df30d +assets/content/api/angular_core_PLATFORM_INITIALIZER_constant.html,1742567121197,bca88b8a8e3a420433e6769b7597ccf261c9b97e118f8ea52e3d122371fda28b +assets/content/api/angular_core_PendingTasks_undecorated_class.html,1742567121197,3fc17015331fb7e176391d96f1df049cb6edfe1a49a46f46c8848f0a934aa1a2 +assets/content/api/angular_core_PipeTransform_interface.html,1742567121197,62ff598852855d754641cd8e34a5e29948012547f3c23eead65e5d851539f4b7 +assets/content/api/angular_core_Pipe_decorator.html,1742567121197,535b07b170e229fa2bf938ae8eb433881d5cbfd9b9cbcac97ccd012d8e69dbaf +assets/content/api/angular_core_Predicate_type_alias.html,1742567121197,7b36fcc046c30944227b803a4a318e62b5c8c094db2bb75733fcb74b3b67f9a1 +assets/content/api/angular_core_ProviderToken_type_alias.html,1742567121197,cb353b8e577e7ea7973d0366cc5c61904ad1c4d1b7fc67b42a368564867c19dd +assets/content/api/angular_core_Provider_type_alias.html,1742567121197,00f2a25abf010bab491cea3db73e9a3df2609457fe56cfab9f09ab4fe47443c2 +assets/content/api/angular_core_PromiseResourceOptions_interface.html,1742567121197,9f0d0fee17bc6727bb78a4baa0d2d7d662a3b955bff92f7940a110e18f248946 +assets/content/api/angular_core_Query_undecorated_class.html,1742567121198,ba13e9c5f50cc7c14c0cd71714a8707bcd7b531ee3ae8850453599957eaa12c6 +assets/content/api/angular_core_PlatformRef_undecorated_class.html,1742567121197,320c6f51d16c2522fab062120aec19edfdbf2a4c3149678f85bae3078673e209 +assets/content/api/angular_core_REQUEST_CONTEXT_constant.html,1742567121198,8e665709b57aaf2d707cda8222b36a7de0348d9f4d708fca295d38d09c19ac3c +assets/content/api/angular_core_REQUEST_constant.html,1742567121198,08a1f72ca3b755d4121110de6c66ae4847e00c9af49a2fbc572f9f1bf2450fc2 +assets/content/api/angular_core_RESPONSE_INIT_constant.html,1742567121198,36f64664573754a6103d3cab4a4517e84468fe996853126c1320dfca6cd6b5b7 +assets/content/api/angular_core_QueryList_undecorated_class.html,1742567121198,6cdead093026b7c0cb38195707fc023ce17a27d95929b9b7a70e2700807e69e6 +assets/content/api/angular_core_RendererFactory2_undecorated_class.html,1742567121198,e3114e5500196007ad413021980283d3a6e871b10fbb798727f1484f02f3119d +assets/content/api/angular_core_RendererType2_interface.html,1742567121198,63079ad025598c7ebdc3f5919a1a9f2b2864751b69afb81d7347b49f019b1bd3 +assets/content/api/angular_core_Renderer2_undecorated_class.html,1742567121200,52a62de9ad783af875ad1381f4c50176d4e3861e89429620b292afa626257718 +assets/content/api/angular_core_ResourceLoaderParams_interface.html,1742567121198,cb493533fb75e869b510c4a10087389df0e5e968d5a0f547c67f7f06f1a4ca01 +assets/content/api/angular_core_RendererStyleFlags2_enum.html,1742567121198,583bdf0b23c15169a2f7736dfb94205952853c9f2f807a10c1ad322952b11144 +assets/content/api/angular_core_ResourceLoader_type_alias.html,1742567121198,b2998a1ddbe7c920b5f9ef96b25f26975813af9409c09b67209658b272ff81f0 +assets/content/api/angular_core_ResourceRef_interface.html,1742567121201,3a4056dd41cb73e3dbf7c227971124184669803cf8cf02f0857b7fb730b0efb6 +assets/content/api/angular_core_ResourceOptions_type_alias.html,1742567121198,f76e1672169b8acdf169ec494201c3ef5b1b2131691daadf6fb26d0b2e079413 +assets/content/api/angular_core_ResourceStreamItem_type_alias.html,1742567121200,9810b832af6f55ef61448e68444f241b1563cfbd4a986aae9c0c039cbb9b7fd1 +assets/content/api/angular_core_ResourceStreamingLoader_type_alias.html,1742567121201,442566265ccf8bf4923ba9511c4bfb6c6c2d777eb4d4accc4c80cf7d3990a059 +assets/content/api/angular_core_ResourceStatus_enum.html,1742567121200,58db1548c7803f0012c122eb982813fb06b986e3d23ae0b98e143d3789c9c88e +assets/content/api/angular_core_Sanitizer_undecorated_class.html,1742567121201,f3a17093b6aaa70fd2f5c8c752f34f9997b0ee9ebb4ea5a9527ce0d85113ac08 +assets/content/api/angular_core_Resource_interface.html,1742567121201,4a013ec4e4681cfa300aa73bfc719964de9d1ef07c3871a31c3e19c17910a4fb +assets/content/api/angular_core_SecurityContext_enum.html,1742567121201,2b0ddd94dd5c5c07ad9c1983be1417833af2a342d1db489027bf83a0b3b3da2d +assets/content/api/angular_core_SchemaMetadata_interface.html,1742567121201,3f970ed71f98a2ca96501d14864e5e33834339c75e3dd1022bc912f2196154ab +assets/content/api/angular_core_Signal_type_alias.html,1742567121201,c6105af81b70449724f5573a2156c34ff0727f21319d68c7d9973a104e48f9bf +assets/content/api/angular_core_Self_decorator.html,1742567121201,6792bfacfcaa471d064fc8026e524cdc6aeadfb9ec640029f7309f9b3b1eaed5 +assets/content/api/angular_core_SimpleChanges_interface.html,1742567121202,2deb18dd98cec9537f51b0251b43691ae731e0d61896e79ce02b42d1aba2f0b4 +assets/content/api/angular_core_SimpleChange_undecorated_class.html,1742567121201,eda3b576c8d6edaa6f8e12a92ce758ce64ae44df82e93f96291c6c07dc0e19dd +chunk-QIQFGZBU.js.map,1742567121447,c8c3bea544c31b93a8eaa51e03d3a34eda320e4ecb10896ef917a499da426ad3 +assets/content/api/angular_core_SkipSelf_decorator.html,1742567121202,dc3986a233c1ed84d367be87ced3f0c9940d0f6db3270abfb9da5af5236e3aa4 +assets/content/api/angular_core_StateKey_type_alias.html,1742567121201,3de0e0f81368919f87997240e2f7e3855e02178da44f81e88af8731657453990 +assets/content/api/angular_core_StaticClassProvider_interface.html,1742567121202,838db19375cf275b2192f93708e7f2d195bd962fa56524c57a8f7c8453b51af4 +assets/content/api/angular_core_StaticClassSansProvider_interface.html,1742567121203,4cd52984e83d50897a49cabdd2f37e4e37acf4604cae1761ee73c1fa8fe9c80a +assets/content/api/angular_core_StaticProvider_type_alias.html,1742567121202,04eb7c7e136a7eefa379f11f96320149aa219e8308029183b416aef0871b4784 +assets/content/api/angular_core_StreamingResourceOptions_interface.html,1742567121202,9a6b93e5107992ca3211149b85e72fa9aeb2430e68f3cd321683ae7ae29a2b17 +assets/content/api/angular_core_TRANSLATIONS_FORMAT_constant.html,1742567121203,b4ab82474cad3ca83764b504000548b8fd273a5969132e8745fc016b36189160 +assets/content/api/angular_core_TRANSLATIONS_constant.html,1742567121204,cc24147968d05a38ae2e1311ad69d10ac24eb879480afcbe3dcbf377c0869501 +assets/content/api/angular_core_TemplateRef_undecorated_class.html,1742567121204,011e0254da1dc717140d98fb09148528789abb77730c0c9e0c343a46ed4334cd +assets/content/api/angular_core_TestabilityRegistry_undecorated_class.html,1742567121205,db02876a9737117920a98791b2d127bfbb69482138143e07124fa8997e0a550c +assets/content/api/angular_core_Testability_undecorated_class.html,1742567121204,d5e8ceb9b3483956f6288775a051c785b5497fa52db43ea4767e315b23a55ab9 +assets/content/api/angular_core_TrackByFunction_interface.html,1742567121204,92bdb6f31561c3e73dfb331c0c286a8c80862e046043af1ead3ab5176e838e6f +assets/content/api/angular_core_TransferState_undecorated_class.html,1742567121205,da1ecebadae162f6953c47579160c5609af558895cccb0c0a1f17c94ac96d569 +assets/content/api/angular_core_Type_constant.html,1742567121206,71b7bee25ff4b71fe9072b3dfd651453ea9ee7aad77f58bf128799e98ec8a5f3 +assets/content/api/angular_core_TypeProvider_interface.html,1742567121206,f4c305659bed418692eee6599ee454b8c96ed780423a44fd02b2f63818ff750b +assets/content/api/angular_core_VERSION_constant.html,1742567121206,656b1fc66c0af746fdf43e6504874416778f39678964f5fb7b0d22da3787c076 +assets/content/api/angular_core_ValueEqualityFn_type_alias.html,1742567121206,92fd1f04e8a49b6ac9bbafa78595d131ea7b4155758838c899aa31375b1f080f +assets/content/api/angular_core_ValueProvider_interface.html,1742567121206,cfb62540f5a68b4a1e06f3eed33b945a8d4ce4df446823fd86e88eb2d7a61a79 +assets/content/api/angular_core_Version_undecorated_class.html,1742567121207,130d51fc950546e59ad6559130f827085536fdf83644e1aa03b7853cc0ac2c1f +assets/content/api/angular_core_ViewChild_decorator.html,1742567121208,695a70119722eab64cf9d76c2c0d2293f8f969477e5921849ab4a8c758a7aff8 +assets/content/api/angular_core_ValueSansProvider_interface.html,1742567121206,a5cf5245f921cde454f2533c9f765b84f96d4a990cb97cdf481a2b545c7a1f75 +assets/content/api/angular_core_ViewEncapsulation_enum.html,1742567121208,ba8d48e984ccdd9452da585d0dfb64296bb36da5663ccdb0f39fa4dd908656e6 +assets/content/api/angular_core_ViewChildren_decorator.html,1742567121208,97b3037efcf48f40064b47fe7e83436dd7c3801d5b6a9d0c4771243fa8d25661 +assets/content/api/angular_core_ViewContainerRef_undecorated_class.html,1742567121209,a88957baf3f736faf1029d64f4a96378f9c9ec5f62017236cebf5c0f90d72f65 +assets/content/api/angular_core_ViewRef_undecorated_class.html,1742567121208,80405055f83b132bf7ed7fb943ca5e80f68452711160c336191bff1f0348c4ef +assets/content/api/angular_core_WritableResource_interface.html,1742567121208,7bafac645ae7a017e5452836e3df659c3fbbe31c87d6986cabac525a4828e5f6 +assets/content/api/angular_core_WritableSignal_interface.html,1742567121209,d0baf3c7e436376fda0ebb48e2c3801b84d7ba015393f87507951f2bcb0b21e6 +assets/content/api/angular_core_afterRenderEffect_function.html,1742567121209,dcc55a567c47133d0a1c5dcf105f12f1165fb597b52b5d781609992d0f6f4640 +assets/content/api/angular_core_asNativeElements_function.html,1742567121209,ceb9de53171c95f3551c32c5247795b5355a5b48df11005329c92a9bf0100728 +assets/content/api/angular_core_afterRender_function.html,1742567121209,815d8e845a73125003673413925235959452727d9f4b1ee1c903dd9be3a873cb +assets/content/api/angular_core_assertInInjectionContext_function.html,1742567121210,b88389423c6452bf5e80df60d83b51c4cb81c43ec4c33862b1667818ea9a91b2 +assets/content/api/angular_core_afterNextRender_function.html,1742567121209,c69cfd7261c4556e8afa5d6ea22094aa11e56daea35173de6c9a7cad4b81ee3c +assets/content/api/angular_core_assertNotInReactiveContext_function.html,1742567121210,7f6aa287cac83a3c8410c8c1639e491617bc024b849f12a3d0788ad972f9ea60 +assets/content/api/angular_core_assertPlatform_function.html,1742567121210,b2641df41f7d3effa5b91904e4ae1d5ba0994993728cb81e818bf2203e679065 +assets/content/api/angular_core_booleanAttribute_function.html,1742567121210,1a2790086944f52d8aba64e5d3ee71aed7ecced1c3e5fdcf74ad9ea52ab874fd +assets/content/api/angular_core_computed_function.html,1742567121210,1522ad697c5063a8059eead6650212de5da2a4297aad12596633e5bdd2577ccd +assets/content/api/angular_core_contentChild_initializer_api_function.html,1742567121210,9a81c9751ba2e32820c110d755937ab83fe7c33d98eb72da4b9067cb7e15a552 +assets/content/api/angular_core_contentChildren_initializer_api_function.html,1742567121210,252d68c35d5b625e687dd49924b1d0f6f0ce7c49fe284c20f80ce89e0d83ab7e +assets/content/api/angular_core_createComponent_function.html,1742567121210,25d45b84a13131631c96de77bda46940e41123d4dd732ced1effad6aff88f01a +assets/content/api/angular_core_createEnvironmentInjector_function.html,1742567121210,f13b9e351efccdcdd821ee65794ec492f8c13e645a3b7700b898053f79bd2ac2 +assets/content/api/angular_core_createNgModuleRef_constant.html,1742567121210,3ae48a5b1c493096fa205a018292fc61bc3983f0b22618a0a78a84af5017ef9e +assets/content/api/angular_core_createNgModule_function.html,1742567121210,d9d18f9f8cd419969f866992ff3b8682cdf98691bbc4f3fdd8f44c685b8b0616 +assets/content/api/angular_core_createPlatformFactory_function.html,1742567121211,0534301c79861ca5bfe18fcd78046661ba9f6dfcc9423cb9671ad21df017f808 +assets/content/api/angular_core_defineInjectable_constant.html,1742567121211,20131f02cf6e593c55a758ee536d36c6358738771e7555f3081966f1ce4eb888 +assets/content/api/angular_core_createPlatform_function.html,1742567121211,1d269e704ea10c9c95e464ce7ba97e9d170de2b5a3abfb2ef41e36ccfd26580b +assets/content/api/angular_core_destroyPlatform_function.html,1742567121211,abfc08fdb3ac3261aa6409adf4d79027839493b6ab98d8498918df6e4306a54f +assets/content/api/angular_core_effect_function.html,1742567121211,d6941a8b94b9fde4c4ef78bec9eb8f895d0145fd351d64d5f2a20fca22f727b5 +assets/content/api/angular_core_enableProdMode_function.html,1742567121213,ab2d9a2316e1d58dd7661afd3480d3e82ae88bce0f3da5fcfb4523c927bde795 +assets/content/api/angular_core_getDebugNode_function.html,1742567121213,2d614223e16744894c649a6aea74d0044b3d7bca9ba4bcf6458933dc60af5bd8 +assets/content/api/angular_core_getModuleFactory_function.html,1742567121213,e8f26a9000aa201fa8964a850da01bee93954a2ab625bd12bab25968e19b4c3b +assets/content/api/angular_core_forwardRef_function.html,1742567121215,b846357047906f0b24b9370bb033cf215d11c2bfe04808af049bbd49e4eb56d3 +assets/content/api/angular_core_getNgModuleById_function.html,1742567121215,d6b6d76b09969cd568699a39cfeb2acc6ee78e811b2c1d16d70d6569fa7efcd6 +assets/content/api/angular_core_getPlatform_function.html,1742567121215,101369425ef6f4919a932d68c15555021b4fdccb93a8c6d1b7e38ec5d0c0ab78 +assets/content/api/angular_core_globals_ComponentDebugMetadata_interface.html,1742567121216,d8c08d5456d8de6e332f560326f055c549551f03b4ac14f4698716ee328ad095 +assets/content/api/angular_core_globals_DirectiveDebugMetadata_interface.html,1742567121216,b1c489a09c3c3bdf2bdde7bd3fbdf837b8413a3d0fbd4d4d2be0a0d5288a9aa0 +assets/content/api/angular_core_globals_Listener_interface.html,1742567121216,99b09728c37885afe06f29dcf664ad9222d37ac6d4e0eaacad3d2ff517035f14 +chunk-AZHCMFIV.js,1742567121391,47dcad65575d34441efb1f17fd4bfceb467c8f5fbfba7d8fe230ad5fad418ef9 +assets/content/api/angular_core_globals_applyChanges_function.html,1742567121216,81e0b27380cbe74f2564bfd5c260260d74d1d831ad60b1dcf5803e145b5638f4 +assets/content/api/angular_core_globals_getComponent_function.html,1742567121216,25b67ca0177def283a5d295a1fbf5aba93cce095480300777afd3c04861d1066 +assets/content/api/angular_core_globals_getContext_function.html,1742567121216,44f46ed94eba70b0ea2f6647628ca37df735d0bbe73f729747c8b20b0d73c7d6 +assets/content/api/angular_core_globals_getDirectiveMetadata_function.html,1742567121216,c8bc79edd27a4c9e08223db5ff5d3af1561c6c7b7cef6f169c23c7cb98926aa0 +assets/content/api/angular_core_globals_getHostElement_function.html,1742567121217,7e596f064a6be514b296daa27c238c8cc49338c23e23c86487609ec5f8bfc203 +assets/content/api/angular_core_globals_getDirectives_function.html,1742567121217,d6ab4bec09d925f1e8090c84d18699c116411e51bc406a3497344f37f51168ec +assets/content/api/angular_core_globals_getInjector_function.html,1742567121217,107ad067f1ca042b4c6e890c7f919068e927c446f8027e7bf58da16173bb1616 +assets/content/api/angular_core_globals_getListeners_function.html,1742567121218,fd3f0c9bb082995c986544b7abbade4de9852d5e92fb6502899b9790b9da6b4a +assets/content/api/angular_core_globals_getOwningComponent_function.html,1742567121218,0416d46d96c77e53ac0fa7c1b34584bdd714b7c4206e67231db5835253148365 +assets/content/api/angular_core_globals_getRootComponents_function.html,1742567121218,a82a385305bb20bac5549b8e0b019a0a96001c0b17354ed8b5f4bba97b317d8a +assets/content/api/angular_core_importProvidersFrom_function.html,1742567121218,973157a8519f10d460086be421ee4e686fbb851393dd2777a2dfa46152664c02 +assets/content/api/angular_core_inputBinding_function.html,1742567121219,bef8491ac40ff96cdd9c572a76e9e2697ebbe61ada250e21b022460d7cfe1684 +assets/content/api/angular_core_isDevMode_function.html,1742567121219,febadb180f74f00c49d9799ff5690dfe519e6e9d70cda66a59e40bdfd3c8c55d +assets/content/api/angular_core_isSignal_function.html,1742567121219,4082a051c9aac12766c52508d712a3545087a65340bbb0d9fe9cba452671afac +assets/content/api/angular_core_input_initializer_api_function.html,1742567121219,a70c6cbe17e9c54d9fe851349e7180c8b9c91cce1a21e5206aaca6d2ced6cfe9 +assets/content/api/angular_core_inject_function.html,1742567121219,217b2df6dafc93a68fb59df26045ad5bddf2a77e075096a246d03e5150e094a1 +assets/content/api/angular_core_isStandalone_function.html,1742567121219,9c948c14cf01ee93aafdd095e5789d633e7425a9601e31a4f5d937de92d7c607 +assets/content/api/angular_core_linkedSignal_function.html,1742567121219,de5842c7b3ffb3f53a3839d48350ff0eacae2529456810f8bef576601e8f9865 +assets/content/api/angular_core_makeEnvironmentProviders_function.html,1742567121219,3e88ba6fa03528556b36c9953f89573b71839057f2908df4f9ab42bef2e544a2 +assets/content/api/angular_core_makeStateKey_function.html,1742567121219,d2869c8182707f371be88739cc51414bca3a04e3c7b8437778b85ce0dbc963f2 +assets/content/api/angular_core_mergeApplicationConfig_function.html,1742567121219,4d51e86a93c8d2f9b3d9288ea6cccdb560d8ca748dbff5ad7c209048b590279b +assets/content/api/angular_core_model_initializer_api_function.html,1742567121220,ee2c25d4926125ae49f15dd814b31bd804390cb9cf426cf622de4616647ae4f5 +assets/content/api/angular_core_ng-container_element.html,1742567121220,816dc5d0101407b1d37605b5b8aaecb816df8edde2377906dcee0f1aa99c0209 +assets/content/api/angular_core_ng-template_element.html,1742567121220,e7b5ba8d5b4bdf1c58bbce7b37b620b87d4b6ace858ecccbe940d5bf776cac75 +assets/content/api/angular_core_numberAttribute_function.html,1742567121220,560df4454efabd40525505026e3b1ff9ba23ac72d87a209a4a03714439a7d46f +assets/content/api/angular_core_outputBinding_function.html,1742567121220,f78155a877f52ad3daa53d2025a4622aa47f730e5b72053f4a22a3ae9add9aff +assets/content/api/angular_core_ng-content_element.html,1742567121220,5d1a0b00266ad622fa9869bc1eab854daead00244492039d6ff030a332ada8d4 +assets/content/api/angular_core_platformCore_constant.html,1742567121220,9a17aec63fbf5387dc7f918efd3b006b999e1cf1d0937fc83d0e313f688d78da +assets/content/api/angular_core_output_initializer_api_function.html,1742567121220,b9bb6925858ba1aac576d914f1963324df3782169ed3fcbbcf0f9e4f3caf71ec +assets/content/api/angular_core_provideAppInitializer_function.html,1742567121220,89a53d8db55fecf8802ded7cd48cc5ca6c06f4a320836b2a1ac54aa07044a21c +assets/content/api/angular_core_provideEnvironmentInitializer_function.html,1742567121220,4167c73c2cbf2c987db4753657996ea5ce422b20025dcc4c9de68c7d343494a3 +assets/content/api/angular_core_provideExperimentalCheckNoChangesForDebug_function.html,1742567121220,4bade93b3fa690ec8b8c948c188de0e3b9415967ceb206e73bd82682bffd229d +assets/content/api/angular_core_provideExperimentalZonelessChangeDetection_function.html,1742567121221,fc48765bfee6f4c9f2a217c977dcccf27492e7dbe66e72d86cb1211669727fb5 +assets/content/api/angular_core_providePlatformInitializer_function.html,1742567121221,c575f8ed836c8b1b9a8951501ac4bcc396e726b99e4c32e1e2225b2d3c64ca75 +assets/content/api/angular_core_provideZoneChangeDetection_function.html,1742567121222,3d84494576338a3a3734ec4c8086a691c2d7f5d8fdb039495f0670d71cbad153 +assets/content/api/angular_core_reflectComponentType_function.html,1742567121223,733749f3aadbaed613c048560af5d8683a3f6e029b2a98bb0c2915be7224bf11 +assets/content/api/angular_core_resolveForwardRef_function.html,1742567121222,801e924521e123b9602ad026d91bb68098127babe5c07a6047c7b8d23159a571 +assets/content/api/angular_core_resource_function.html,1742567121223,badba2759d03bd0f9ec8ed4299e78e97a7a0d28268dc76d72c0b72ff0ec34fb5 +assets/content/api/angular_core_runInInjectionContext_function.html,1742567121223,e62def98fa7f053a38372521a936128244403a3202e8b4583e6d6407aabbb955 +assets/content/api/angular_core_rxjs-interop_RxResourceOptions_interface.html,1742567121223,97d507d3d8987d3a475e96bd261a9b7a1f4d54b16e658a492adf4ee8759f25ec +assets/content/api/angular_core_rxjs-interop_ToObservableOptions_interface.html,1742567121224,086f508f473dd11a5c5f354f01d9c0e2918eecf5b1beae876932f77bbdd5c4d4 +assets/content/api/angular_core_rxjs-interop_ToSignalOptions_interface.html,1742567121224,4a7885fc15292faa9a8435123e93e5780d1417cc923ec213563543cdc896863b +assets/content/api/angular_core_rxjs-interop_outputFromObservable_function.html,1742567121224,f9f234749ace648bbefe9a59e898b34401c8cae22820d65828e2ab06dd98f6e0 +assets/content/api/angular_core_rxjs-interop_outputToObservable_function.html,1742567121224,b121c506bb4ec74cabbd7b57beba75c97dbac8e7460f62789583c598173c5538 +assets/content/api/angular_core_rxjs-interop_pendingUntilEvent_function.html,1742567121225,9b069dfe30eb78fd786f290d1352e2f97007603d11f149587a4cb6949442f516 +assets/content/api/angular_core_rxjs-interop_rxResource_function.html,1742567121225,5b8657d2e44345e1077424e0b190606d32491ce9e40e230695fb83f480ad54a8 +assets/content/api/angular_core_rxjs-interop_takeUntilDestroyed_function.html,1742567121225,1bd335f56ef48e3ca61d6d5514740673c422030d83c7f2db15ab28023ca3c806 +assets/content/api/angular_core_rxjs-interop_toObservable_function.html,1742567121225,6f8cb70a12d64a9a7b6953c2bf6476b904d045b3b5b9d4ebea0c03c11bbccc6a +assets/content/api/angular_core_rxjs-interop_toSignal_function.html,1742567121226,308f165efb5bf6c035d2cc716e2e57450b73aa8ee76e50a6924d676b71d68b8f +assets/content/api/angular_core_setTestabilityGetter_function.html,1742567121225,e8f986bc11565e7958a78f90d861bbe9485e0ff98691fec448ad7b5a0f7ca75e +assets/content/api/angular_core_signal_function.html,1742567121226,34c9f385a943b8cce860511766fa4554240925d926ce196c538fbce7b8697509 +assets/content/api/angular_core_testing_ComponentFixtureAutoDetect_constant.html,1742567121226,ba8af9486ce7676b21909d6c92687e6e7e4081073bba37a2b406050bf393d561 +assets/content/api/angular_core_testing_ComponentFixtureNoNgZone_constant.html,1742567121226,2415fc1b5fca332b9af6fa4dbebc9a3235c96b1f96dc5aa8cfd1bbf70e417991 +assets/content/api/angular_core_testing_DeferBlockBehavior_enum.html,1742567121227,fb07ec36ca09ea8588c16452563d90b8456517dd33ecbd8e85c4fef8196cdec6 +assets/content/api/angular_core_testing_DeferBlockFixture_undecorated_class.html,1742567121227,356654228300a56119f2b1f99b28d0e1972bd9dd65018e60771c8d40ec7c2284 +assets/content/api/angular_core_testing_DeferBlockState_enum.html,1742567121227,6d30b6bd51fd2aef2e87cc71667195a6ba6cf877cdd80ca72fc90ac192afd86a +assets/content/api/angular_core_testing_InjectSetupWrapper_undecorated_class.html,1742567121227,c1c1c9fa1c900000bcd3e591d4ee3929777f37f1db880b39c9bda43b34c27ee3 +assets/content/api/angular_core_testing_MetadataOverride_type_alias.html,1742567121227,9bed8345ded9a071a2f1ce5fc935e77967139f02f90e71ffc540860d26c9f538 +assets/content/api/angular_core_testing_ModuleTeardownOptions_interface.html,1742567121228,35925b814218ac3420ef748f9b6c0ea917111c306d1a07a948ed115568ec9a2e +assets/content/api/angular_core_testing_ComponentFixture_undecorated_class.html,1742567121227,c6833b9480d13ee2af401f768c3c3e60d721d7356fe07106adb96e7b2c7d9165 +assets/content/api/angular_core_testing_TestBed_constant.html,1742567121228,9ff13e4644b03068a29e588e23c5ad2a356d603e645a603dfaed3bae6d8b67c9 +assets/content/api/angular_core_testing_TestComponentRenderer_undecorated_class.html,1742567121228,f3306816463f9fe59a1597cea0baaf35c1f00d4e494df798e05d88d3d48c16b7 +assets/content/api/angular_core_testing_TestEnvironmentOptions_interface.html,1742567121228,45c79e70ccc78bd984340ddebf8a27565005474452354d76e5ee455caba5ff0b +assets/content/api/angular_core_testing_TestBedStatic_interface.html,1742567121229,44bc773780366ce50e5fdfe22ecb528c7c5f1c6eae78ce1e433b0b4f44230b0c +assets/content/api/angular_core_testing_TestModuleMetadata_interface.html,1742567121228,0af37b13216c668a91f6c4290f45962e8343ef8a90a26e46fe0df9aa843799d2 +assets/content/api/angular_core_testing_discardPeriodicTasks_function.html,1742567121228,0c85419d90674488958c15d0bd954f2065c166476db6d2d08fecffa4a11cdc1f +assets/content/api/angular_core_testing_flushMicrotasks_function.html,1742567121228,f4cc57a396a0dfa07179cb4ac1cf7d9ead6d64f3138e9342390ccf41ded3209d +assets/content/api/angular_core_testing_fakeAsync_function.html,1742567121228,7082e9ebb796f9f669ff390f1d6f7f5ac789256a15987d9c87088ef34ca0401d +assets/content/api/angular_core_testing_flush_function.html,1742567121228,3a1564ffa0e42dc6ca76ead0a1d17026798a6b0ace860ab10cc78ccf40c7f427 +assets/content/api/angular_core_testing_inject_function.html,1742567121229,c51fd60fd30d54987bdc4177e5fd604fecb32a04648e3cb2c92806a42c19e377 +assets/content/api/angular_core_testing_getTestBed_function.html,1742567121228,14c4991371d12c1a93193e52ffbafe367dcd322a7298634826a153598249ffb8 +assets/content/api/angular_core_testing_resetFakeAsyncZone_function.html,1742567121229,9842b5dae236782af623501fcd00a38d859a4e47cc7088dc62431283dbc63be8 +assets/content/api/angular_core_testing_tick_function.html,1742567121229,f249629bff9273e7d234578e003e1ec7ef40e77947fdee128bf8bfc8665d49cc +assets/content/api/angular_core_testing_waitForAsync_function.html,1742567121229,4e881b1291919b1548c9c1cd147047dd5c888857f4afd841ef664897a4e8afb2 +assets/content/api/angular_core_testing_withModule_function.html,1742567121229,adeba284a6988e6bc34c36d5d650369e0f824c97565fc6ea93a810b4b0a06287 +assets/content/api/angular_core_twoWayBinding_function.html,1742567121229,d1e9d6a237c13235fcc1c6e0ea174d2d8fcaac9c56eeac48aeb780bab0f16375 +assets/content/api/angular_core_untracked_function.html,1742567121229,d1a15ec50845b10aad27a864e0611de61a5cd424f4299ec996a464318a5cebdf +assets/content/api/angular_core_viewChildren_initializer_api_function.html,1742567121229,be01c61bd0e8f5cd032aeb50feab21ffdbbe9b7bd88f1ec9a942df45a46b01d5 +assets/content/api/angular_core_viewChild_initializer_api_function.html,1742567121230,e08cd8a9304b6eeb0a2cdaa4de54d6f39e7fdfb0fc590173f17dcca53bbee144 +assets/content/api/angular_elements_NgElementConfig_interface.html,1742567121230,2d86268025c7e5abe8a6b7a1d668bbf1aa413d2ab6e4e3cf2bfdd7818508b161 +assets/content/api/angular_elements_NgElementConstructor_interface.html,1742567121230,93ac441e5d763521f8ef1e2fd0f73203c31918a0bbb7d03c2b022ff49153db0e +assets/content/api/angular_elements_NgElementStrategyEvent_interface.html,1742567121230,86852f5eb7f5a01616171cb8cd995de65bf3a32348588a68c0fb42d615ecafde +assets/content/api/angular_elements_NgElementStrategyFactory_interface.html,1742567121230,4dfe9715395347625a06a2d093d5c772146a8b1fca1f42b95019be07170cbecc +assets/content/api/angular_elements_NgElementStrategy_interface.html,1742567121230,888594f8f9a8e57ead2897cf53cd7b99198dbf7f3d591b7997cf9b3df74d902f +assets/content/api/angular_elements_VERSION_constant.html,1742567121230,add54ec12ab627b5ac309f8cb3fef83aac3d29195d612ae63d03c2ded4d9e924 +assets/content/api/angular_elements_WithProperties_type_alias.html,1742567121230,18248fe3fd9a284fe8df0ff3bfbe1a9be747a6ca385cbb9f4359497b58207c3b +assets/content/api/angular_elements_createCustomElement_function.html,1742567121231,e054dac6fd3f7ac394e0dcb85abc411b2e01038802b8afa25b0db5bfcb018d0d +assets/content/api/angular_forms_AbstractControlOptions_interface.html,1742567121231,9fbeafa2a9034d0b62ee81e46a865c556597c31a856734ceedfac5a04c49b185 +assets/content/api/angular_forms_AbstractControlDirective_undecorated_class.html,1742567121231,2c3eb22a7a2e521b2961eeab4d1a8f692a89292442602f4ac8161711848edcd5 +assets/content/api/angular_forms_AbstractFormGroupDirective_directive.html,1742567121232,90a1a1e2c01b043e4f567b20c968fceb7296e33ea293fc61d1b87efa770a7997 +assets/content/api/angular_forms_AsyncValidatorFn_interface.html,1742567121232,cc6e538a3431b951b2722a97266d40e75dabb04fb9fb31b9edeb4448cf5c6d4d +assets/content/api/angular_forms_AsyncValidator_interface.html,1742567121232,5e338b2f2857bd7fab5b1b5f3fd18feede4427cbebc81278a6b528d14a72202d +assets/content/api/angular_forms_COMPOSITION_BUFFER_MODE_constant.html,1742567121232,3fc870942d254ef48958d07f4ad255794079e533fa574cc86fceb1bf072595c9 +assets/content/api/angular_forms_CheckboxControlValueAccessor_directive.html,1742567121232,81c140eb1eb4cb135879327107743ca3884e595e045aa8d730505cb98f153fa3 +assets/content/api/angular_forms_ControlConfig_type_alias.html,1742567121233,eca98c90e1074dc5bfa99253be94598aa00b2cc00d7794766d12e7b9352fe823 +assets/content/api/angular_forms_CheckboxRequiredValidator_directive.html,1742567121233,4d568af4856d638d537ca4ddc4f75be0ad93d23ba9c1947e3461ef4c0df5c1c4 +assets/content/api/angular_forms_ControlEvent_undecorated_class.html,1742567121233,d3b7e5312095b8cf7bcf9e350470a4de2fb6f84aa1ffa42bc3e8c31c3f73b729 +assets/content/api/angular_forms_DefaultValueAccessor_directive.html,1742567121235,d83bf25ddac140fcd57c928e26f9e7eea3aec59be9fed6ee3ad9efe29c223406 +assets/content/api/angular_forms_ControlValueAccessor_interface.html,1742567121235,6eb380bfc6447f106b2e2eba0b7e3643c13bfdb9ec0b0292cc419969f81114fc +assets/content/api/angular_forms_EmailValidator_directive.html,1742567121235,cdf16cc8e54ff1b7299d2b0dc667bcb7dd8b34070d78dc97b3ce9af5203ca314 +assets/content/api/angular_forms_ControlContainer_undecorated_class.html,1742567121235,27fc7851745bdb808d8fd7ba44034d60da6fbfeba1a1429d3a574626a5ab8201 +assets/content/api/angular_forms_FormArrayName_directive.html,1742567121238,65afb4fe95788d47fbfb6c86e12693be6ed5cde3f002fdfe3e655326f8b67eda +assets/content/api/angular_forms_FormBuilder_undecorated_class.html,1742567121237,8015af81d39d2b87e0be6771800c443a5815ddc353e8d5f3b17f734c2275e210 +assets/content/api/angular_forms_FormControlDirective_directive.html,1742567121238,baaeead700f274b5df4ccfcc00adaa94060150cbfef2f941c9c4b6aa87b19c04 +assets/content/api/angular_forms_FormControlOptions_interface.html,1742567121238,161c2c6cb0fde57a4e7be75e8b4a2eeb5009bb13ddd0ee33c35008556dc6c09f +assets/content/api/angular_forms_FormControlState_interface.html,1742567121238,72336ba95551c8a41f97d95c3dfdeedff1aae47b489b5776db40f5bb7e74c632 +assets/content/api/angular_forms_FormControlStatus_type_alias.html,1742567121238,5e3b844f57423c6fd6662e5fc2a5d6f474c087f89b8cdb899e3c853981cafd1d +assets/content/api/angular_forms_FormControlName_directive.html,1742567121238,ede24a1cd8db2f9dadc2840a7e2cee776e72d06a845bdddb06a6401411c1ee04 +assets/content/api/angular_forms_FormGroupName_directive.html,1742567121239,ee77231cd760561f4bc0c2a8eb755a4b993a6dbe59f2d375635f12a55d610f2b +assets/content/api/angular_forms_FormResetEvent_undecorated_class.html,1742567121240,7f20e3e98ab9a94f33f6d97cc3df062b80431acec292399db38c1a41c6d7022a +assets/content/api/angular_forms_FormSubmittedEvent_undecorated_class.html,1742567121240,40cc0cf49e522e6bf34b1dcd30be2cf2722ad31ff3a743948f7d743a8e97a679 +assets/content/api/angular_forms_FormsModule_ng_module.html,1742567121241,eb64385c5a19c549947562353783f86f54076468391568a2a275348f916cfdbd +assets/content/api/angular_forms_Form_interface.html,1742567121240,c7ec9bc16d9a651f04ad89e98e9f3448890e2564581af9e3f989511e77c9b1d9 +assets/content/api/angular_forms_MaxLengthValidator_directive.html,1742567121241,6878ec1a29d4a810987c57e0d82e63ddfb37d0a451e37e3af52478b5e21d48b9 +assets/content/api/angular_forms_MaxValidator_directive.html,1742567121241,27f9395cf9f06c2d81fcda16ad94e911589511754891e3f225f3cdd236067bec +assets/content/api/angular_forms_MinLengthValidator_directive.html,1742567121241,fae59041ac6bd3f933c760497680de3d967d8afcce63e62d75c3e6d3123a3b7c +assets/content/api/angular_forms_MinValidator_directive.html,1742567121241,553e1cb86cb6476f4a3a003f819c6076c8cfb97e1260ab8a6dc1b48df286cf1b +assets/content/api/angular_forms_FormGroupDirective_directive.html,1742567121239,c79785fb60a56b26343de37939334f89262894da4ae22e3c12ec6fcfff1579be +assets/content/api/angular_forms_NG_VALIDATORS_constant.html,1742567121242,d18334da4de542f1e007fb86bbc5d5e6c22463f06b94c2c014071c82ccc6c588 +assets/content/api/angular_forms_NG_VALUE_ACCESSOR_constant.html,1742567121242,ddfb8ed055e88331f88197283265e171343bc1c335f60fb65e13e36caddab2ff +assets/content/api/angular_forms_NG_ASYNC_VALIDATORS_constant.html,1742567121242,06e9a41d5929cfcb06ba9a25cacc6ea377a15d20c73f4d1a16d04026b3c4bdb5 +assets/content/api/angular_forms_NgControlStatusGroup_directive.html,1742567121242,8d725a9fbbff2bc079244b0ca0b58891053a057d527dff66edffd58054573c4e +assets/content/api/angular_forms_NgControlStatus_directive.html,1742567121242,715a5b546f19020f6df9281eb55a4e20261405536a81967bd9ed5f3253ff4bce +assets/content/api/angular_forms_AbstractControl_undecorated_class.html,1742567121232,9e05ce59ea24f0ac4e3ea72b85bea69c270c7dfb348f4234315af25b4dcdbdea +assets/content/api/angular_forms_FormArray_undecorated_class.html,1742567121238,1b19ee56b8b144ef2ed2f30b8b28cc33b229fb741b0e3becab401bd0433467aa +assets/content/api/angular_forms_FormControl_interface.html,1742567121239,62af87644c998feb3f14a1969889f6054464e1e44ae30bc0d2d59d56175074e0 +assets/content/api/angular_forms_NgControl_undecorated_class.html,1742567121244,d3622f8d10ad2d89466df28a6ca89f7ea891889214c36821cd443e53b5109bdd +assets/content/api/angular_forms_FormRecord_undecorated_class.html,1742567121241,a3fed2b54d6e1da25634211e036b4c4aaa6c661920eacfc3c84dac1db8e9cb27 +assets/content/api/angular_forms_NgModelGroup_directive.html,1742567121245,6007ccea2c60bab6c4d601eb8023654f5ed7789c430edef37e7c1c79a5df799b +assets/content/api/angular_forms_NgSelectOption_directive.html,1742567121244,66b91783779e846b7526201e096eff538a6e3121f0886a43af56a4fa740a352f +assets/content/api/angular_forms_NumberValueAccessor_directive.html,1742567121245,e6957b556eb3bea768e4ff171266f4c6bc283424c67341c9b569c278b8a63d16 +assets/content/api/angular_forms_NonNullableFormBuilder_undecorated_class.html,1742567121245,e44ee7d0fed0ab2e782d94191e653e605b404b1f587839539a8b68f38569d2be +assets/content/api/angular_forms_PatternValidator_directive.html,1742567121245,751020dc4a32c5fe17b167f44ac5f77f557a431002a919216b1ce98ab4fd05ba +assets/content/api/angular_forms_PristineChangeEvent_undecorated_class.html,1742567121245,81a598ef70357d4f9c598e6b18870453bc042c423629744f09e30e361f46c1eb +assets/content/api/angular_forms_RangeValueAccessor_directive.html,1742567121246,7020225e2851b651acddc6af7c011ab1fef1b82df363a1c0378393834b6d66ea +assets/content/api/angular_forms_ReactiveFormsModule_ng_module.html,1742567121245,f6f60e2b586413bf7629717938afcd0821eb09dd9b9b97044807e817827b39d9 +assets/content/api/angular_forms_RadioControlValueAccessor_directive.html,1742567121246,192d31eb3c8e43c6604505aaf7f145e83dcb992592aefeb3013c75e84408552b +assets/content/api/angular_forms_FormGroup_undecorated_class.html,1742567121241,b55a36f8bea5612245298841759aa84cb0f06019e8c206307898ca8f71e63fd4 +assets/content/api/angular_forms_SelectControlValueAccessor_directive.html,1742567121246,8b9669882703c15f9191ceb67016d4238992ed3d88084cf9ba5024c55a8da0bd +assets/content/api/angular_forms_RequiredValidator_directive.html,1742567121246,96f089d427e99360788bcf747dcb30f22e49d9d1bb36f6a5b5c82ac5723d9584 +assets/content/api/angular_forms_SelectMultipleControlValueAccessor_directive.html,1742567121246,49d4ed6eb42bd7b99f0ab0ad9eb6b69b897fc4c5004497788d0d9b4d4b30eaa8 +assets/content/api/angular_forms_StatusChangeEvent_undecorated_class.html,1742567121246,1f18afb8596fa5539c93bc9f383a535652e376f866a79845718c93fc9a9fa7f2 +assets/content/api/angular_forms_TouchedChangeEvent_undecorated_class.html,1742567121246,0a8653c1048dcf69204d0d0f83de4634fc7a4291619a85e677fa5fd9bef0f27a +assets/content/api/angular_forms_SetDisabledStateOption_type_alias.html,1742567121246,083759ff1e6165dc367fe8510ba5d00b5f8f2d4d05c8d1018709e19206142f02 +assets/content/api/angular_forms_UntypedFormArray_constant.html,1742567121246,b743b88b4b9f18462453fbe9de676e32cf1b6608437781b00efa356b28cb6c37 +assets/content/api/angular_forms_UntypedFormControl_constant.html,1742567121246,9a6863526ca119cfbf9408b4823c98e08441d12715ba80635717281f3b68524c +assets/content/api/angular_forms_UntypedFormGroup_constant.html,1742567121246,8cb8204d3c816d725c7aef5131c4b4c6a61af620e47e2de30194295a27e8ce9a +assets/content/api/angular_forms_VERSION_constant.html,1742567121246,0001e89500f8c88f0e5a7a16f0b23ffee8c3377d6840f0be7cd7490f227622cf +assets/content/api/angular_forms_UntypedFormBuilder_undecorated_class.html,1742567121247,26857eddb938c1b8d520211972e7d89ffa73d6b8a4ad065a44190f29f4947b47 +assets/content/api/angular_forms_ValidationErrors_type_alias.html,1742567121246,c60803ce76415b49a07b0ea74015700f41f88d09e51f547800f43a242819eb04 +assets/content/api/angular_forms_NgForm_directive.html,1742567121244,fe40cd3f23ce22fb4c350c6c74945b16c4356ae97e2007c74e7a9d554a681727 +assets/content/api/angular_forms_NgModel_directive.html,1742567121245,35794787250877695eeb80a82928a6ceca12c72457636e61609756224d3d9209 +assets/content/api/angular_forms_ValidatorFn_interface.html,1742567121247,90b4555db769e7e7333fc16fd8752b9f9379f41f06666aca1ca8469e4d19ad68 +assets/content/api/angular_forms_Validator_interface.html,1742567121247,93505bf435cf4d005c84e751145e333e73419d3ab548e6b2e9309507676d4eef +assets/content/api/angular_forms_Validators_undecorated_class.html,1742567121249,ae4ce7e42e6ebe4829ecf6015f2db15e3674176f7be14309a13887b80e2d27a1 +assets/content/api/angular_forms_isFormArray_constant.html,1742567121247,62628d4d2429af730a40872cc625418daf5414a205dc0d006291acb550278e16 +assets/content/api/angular_forms_ValueChangeEvent_undecorated_class.html,1742567121247,74f5c8deb05e79e80b0a086e0aad95342f4938a357db4bfaef85bde5ea030a55 +assets/content/api/angular_forms_isFormControl_constant.html,1742567121247,ee2a8f896d67c709b7b71691f90240f8986c0fbd988585a66367dc5d60d59be8 +assets/content/api/angular_forms_isFormGroup_constant.html,1742567121247,55f66062ccc105142cea13724be65d3e3050c04ac168659f43526bc29852e9c6 +assets/content/api/angular_forms_isFormRecord_constant.html,1742567121247,4db45ff9a42c473e3bc4e67ca8437852e73b956f99c5d32fb0b8230cd570a422 +assets/content/api/angular_localize_TargetMessage_type_alias.html,1742567121247,6eb9f326e6b99547564ecf1fa2b6c4da29118fb5eec39ca370ac76009887907b +assets/content/api/angular_localize_MessageId_type_alias.html,1742567121247,992134b22db6886a080f62501a079b900ab2ed0fc966183692922b7337301d77 +assets/content/api/angular_localize_clearTranslations_function.html,1742567121248,b5e89c47325d7b6226d3dfefa449dec6460de2f6a6a76e97b25588a7909ba236 +assets/content/api/angular_localize_init_$localize_constant.html,1742567121249,679d504931e11afb2749b920a4e6146ebc9a65a055dcda3acf93a485ea9cf00b +assets/content/api/angular_platform-browser-dynamic_VERSION_constant.html,1742567121249,244c2b1cdb3e2aaf06bf785162397beae28ce0afd2ae4941a0eab30a3d2a49c2 +assets/content/api/angular_localize_loadTranslations_function.html,1742567121249,e369f30ac1caa2a9c224bb4e0ef615fac0167e6568a65e5b616cc1e903a699c7 +assets/content/api/angular_platform-browser-dynamic_JitCompilerFactory_undecorated_class.html,1742567121249,cf8e592d31e4385bf2040022abd8a3734e09495c226e42c5c437daeacb3567af +assets/content/api/angular_platform-browser-dynamic_platformBrowserDynamic_constant.html,1742567121249,9b8c511c97f7e5ca3263b989b76a340bad72a87e2a4564e1e4cb6c6716b0a75e +assets/content/api/angular_platform-browser-dynamic_testing_BrowserDynamicTestingModule_undecorated_class.html,1742567121250,95e3cc091418bf29b5e77bff337640b5f2280c300cdea9ed88942758b2485cc8 +assets/content/api/angular_platform-browser-dynamic_testing_platformBrowserDynamicTesting_constant.html,1742567121250,889e4af8d15e8911d3bddefd59980e2e0dfd8f4f59f549ea749426c1644225f9 +assets/content/api/angular_platform-browser_ApplicationConfig_type_alias.html,1742567121250,3f0ff2361dff5aa22aa38791cd89b9788b6f1c2b6f6f249673663684fd21a0c7 +assets/content/api/angular_elements_NgElement_undecorated_class.html,1742567121234,99bc59d0d97cb61cb135da68eeb09d64270be9bb56e04e21e79bc85d10f7ff09 +assets/content/api/angular_platform-browser_BrowserModule_ng_module.html,1742567121250,af9ff04ab0e41cd5f65e8e0043b1ade4893e55c3791ade96cbae02990944f380 +chunk-RQGIGR6X.js.map,1742567121459,f97ee296743e59ccbee58836b9c16511568ade59e5d7ddc804a1f9d3dee75e9d +assets/content/api/angular_platform-browser_By_undecorated_class.html,1742567121250,54950ee9849cdf2d73ced79a107efd043ec0b10cdbcdbd0f39c3872368a78145 +assets/content/api/angular_platform-browser_DomSanitizer_undecorated_class.html,1742567121251,c87eb36d864347b66e8698327c82e7a7915bf3c93b51d3bb31413270c254603e +assets/content/api/angular_platform-browser_EVENT_MANAGER_PLUGINS_constant.html,1742567121251,a9ca961afe8eaa8d22ca6257628480233cc320c880b8f70ae5d9930c0430d2c0 +assets/content/api/angular_platform-browser_EventManager_undecorated_class.html,1742567121251,378eb439f85b4fc561bec0c05a19362960ee287a1d73df7e6779c75de6928c3b +assets/content/api/angular_platform-browser_HAMMER_GESTURE_CONFIG_constant.html,1742567121251,11107f1fa766f0764d66e438ef49f2ef15fcca5e24114afd1e7ff5eb3bfca2c4 +assets/content/api/angular_platform-browser_EventManagerPlugin_undecorated_class.html,1742567121251,8e380a6a2ac541c3eff804967a10c48d27d0082a3e73a8dd929f1f98d3ad21a7 +assets/content/api/angular_platform-browser_HAMMER_LOADER_constant.html,1742567121251,7e3328f34b5e7e0cfc27c81d8e329fde551d526639b52b477183039fb3523cc0 +assets/content/api/angular_platform-browser_HammerLoader_type_alias.html,1742567121251,8f6f68665be2f57d64a74c37ea8acf431cb742f0e3ab3d3298ea38d29fc9532f +assets/content/api/angular_platform-browser_HammerModule_ng_module.html,1742567121252,d7233283c6e81c3e51dbf2cd8b8758cfe024d256e2bc9a8a03340d946cdf6524 +assets/content/api/angular_platform-browser_HydrationFeatureKind_enum.html,1742567121252,e824be5f87c8b4aa9bf0bb12a41a90fb3c575b5bbda7843ae0df9d70ee6331b2 +assets/content/api/angular_platform-browser_HydrationFeature_interface.html,1742567121252,a333a213087e999bf74f6c3dbe7db86ff8225a34b1b72be686532978f38ade7b +assets/content/api/angular_platform-browser_HammerGestureConfig_undecorated_class.html,1742567121252,e91ee48f9bf1573557c18cb7857aec10deed249ed577a2d8af981c4cff553855 +assets/content/api/angular_platform-browser_MetaDefinition_type_alias.html,1742567121252,b6143690a868b88caec3ce3d60a0085f892ea6f62af1cd8bcc598d4fbabe85c4 +assets/content/api/angular_platform-browser_REMOVE_STYLES_ON_COMPONENT_DESTROY_constant.html,1742567121252,86e44eec61d7f23b15ddfee0de30d015e7f13244d9ea226519d49cfcefdf0b52 +assets/content/api/angular_platform-browser_SafeHtml_interface.html,1742567121254,3b3605536aaa7ded5eaec4a4c4d1fd8eb653d180a0d956653c0f3047badaf665 +assets/content/api/angular_platform-browser_SafeResourceUrl_interface.html,1742567121253,eb8aa2be526c8065a9beea1e0b16e04c6e7c82610ba5ab796d991cf98d45df69 +assets/content/api/angular_platform-browser_Meta_undecorated_class.html,1742567121253,2b2d8e71005e61dab175ac26d77003bb6b785eadcdf27fac12a8fcfdfb471ab0 +assets/content/api/angular_platform-browser_SafeStyle_interface.html,1742567121254,3685502cb00019efd5a99f6449c424dcb52bdfb429e240ea63dd441cb3e97a96 +assets/content/api/angular_platform-browser_SafeUrl_interface.html,1742567121254,6382ca28fde826796dfd405c20b9e504b64e41be99379741cf8e05568f49a7f5 +assets/content/api/angular_platform-browser_SafeScript_interface.html,1742567121253,fc693f0076ab86e39d5ea7f2e06ae181fd1e9921b751c371e3f2cbc3511ca8ce +assets/content/api/angular_platform-browser_SafeValue_interface.html,1742567121254,156838ae0e9445f50f39ca028abe33df9052d2840f674e795794ef023b0827ba +assets/content/api/angular_platform-browser_VERSION_constant.html,1742567121254,41a81b387562ad3e708ac2ae3ad969218071bd7363018eb64482859a282010f5 +assets/content/api/angular_platform-browser_Title_undecorated_class.html,1742567121254,2478e550372edd5ea01f224c97bf46f74e6865b95473dcf0e9b76d506e99802d +assets/content/api/angular_platform-browser_animations_ANIMATION_MODULE_TYPE_constant.html,1742567121254,fa7265df4605c1b5d104153ad570587b990073b3dc786725c6e5321221c95e15 +assets/content/api/angular_platform-browser_animations_BrowserAnimationsModuleConfig_interface.html,1742567121256,7eea8ce186a991618aa257ac077ca4999e19089c0c2bbe7e4a81177bb3fce8be +assets/content/api/angular_platform-browser_animations_BrowserAnimationsModule_ng_module.html,1742567121256,9094e4b57555ca1abb6650dc5ed39ac0763f4990d3880e420e7f76258b30ab5e +assets/content/api/angular_platform-browser_animations_NoopAnimationsModule_ng_module.html,1742567121254,64d16b01274e6ac62641416fbafcafd7da6a4b048cf031e63014818d03ef6de2 +assets/content/api/angular_platform-browser_animations_async_provideAnimationsAsync_function.html,1742567121256,d4ea1c39f7b0606ee6bbd92e1f5ac36cefdd502ff0793129d4a763f752b03e68 +assets/content/api/angular_platform-browser_animations_provideAnimations_function.html,1742567121256,9d51dbd661c7a77ce79ef0b7a0bebde15e5f2c346b9df9144b940301acf3dfa2 +assets/content/api/angular_platform-browser_animations_provideNoopAnimations_function.html,1742567121256,854826706aefc8672d2a192d187d5dc1d15535a6b860071d056906a60e0f5a5b +assets/content/api/angular_platform-browser_bootstrapApplication_function.html,1742567121256,04b270012e0c6a44b25a272c79b8f0509b9a05a78bcf9b64811c960bd0695005 +assets/content/api/angular_platform-browser_createApplication_function.html,1742567121256,567fd59884460f9219205fbad227d768650a9a2bf80274965ab0006782475b98 +assets/content/api/angular_platform-browser_disableDebugTools_function.html,1742567121256,0a036f761bc1362c7f1880247a5e576cf18cef76bc10c395553e9e2a95d154e6 +assets/content/api/angular_platform-browser_enableDebugTools_function.html,1742567121256,4650d7fe539fdd4ad7b7ef1913816e0fd60545aaa2f79b25915d636b7c9d5311 +assets/content/api/angular_platform-browser_platformBrowser_constant.html,1742567121256,4329c911ffe6e76d9fd540608b6f88ac53c03154a9085dd9cde4e961675fd464 +assets/content/api/angular_platform-browser_provideClientHydration_function.html,1742567121257,7df399a186b87369318ec4d3f356e0ecddb7ddb99079c40ef565e0a2ab72f788 +assets/content/api/angular_platform-browser_provideProtractorTestingSupport_function.html,1742567121257,486c7e8a407c6a14987c73518c8fd626c7e37b9550501803e02a94c4d2d5cc9d +assets/content/api/angular_platform-browser_testing_BrowserTestingModule_ng_module.html,1742567121258,b524476f909116140c33167669b1a6a3ee78e0fcb0e8f18d25b880a2957ea850 +assets/content/api/angular_platform-browser_testing_platformBrowserTesting_constant.html,1742567121258,2217981098a4115dacd0077fdc1b0d89e2db77a2698d8fe3625a25f9c0bfb5eb +assets/content/api/angular_platform-browser_withEventReplay_function.html,1742567121259,8e00d1f44dbcf63a7ed608962110c95139e11501cbb0046694bf8a5775b0aec8 +assets/content/api/angular_platform-browser_withHttpTransferCacheOptions_function.html,1742567121259,ec88baed0640e351e6085f8bcd0ab8959d77b4fcb1d3eb238ef2c4d9b19ae851 +assets/content/api/angular_platform-browser_withI18nSupport_function.html,1742567121258,ae0d73f74a6ccc06a82e87d7e903d3cfceba77b66d9cefae9e7e6fb8fcd54b0c +assets/content/api/angular_platform-browser_withIncrementalHydration_function.html,1742567121260,e2908195856359adafcd3fd8480245ea20e5592cfb47e6b66e26078e836ac600 +assets/content/api/angular_platform-browser_withNoHttpTransferCache_function.html,1742567121260,a91db250392dd6a00ceaeb86a42907e4acd3a7c1dd07b4e647b2202f9e5cc848 +assets/content/api/angular_platform-server_BEFORE_APP_SERIALIZED_constant.html,1742567121260,896e515a0a55cbb4cb8fc1ca60ebc58486147002f2510746c82a9af512637e77 +assets/content/api/angular_platform-server_INITIAL_CONFIG_constant.html,1742567121260,386730484ad4b119489c21605146420fc475b5a19e89658ce2998a5fde34325f +assets/content/api/angular_platform-server_PlatformConfig_interface.html,1742567121260,297f18bf51a92e495a5d20083a1b4ebf06f7101a17d2497df18c1bbb2580d2ca +assets/content/api/angular_platform-server_PlatformState_undecorated_class.html,1742567121261,d489a9a89b8df69b5808255656be965907266da89bdd7d2227fface21692ceb5 +assets/content/api/angular_platform-server_ServerModule_ng_module.html,1742567121261,c362e881af19d2a477cbfef21dc2595506b1c41e487e7eb17b1c073303dd6b77 +assets/content/api/angular_platform-server_platformServer_function.html,1742567121261,97e87a7f8f1c8f6f5239b55dd7ba1f11b5121622bd6981967a975fb46fe7c9cf +assets/content/api/angular_platform-server_VERSION_constant.html,1742567121261,b2789d919194a3d7f7bb443372c413ad8042d38a8e67682f27cc77f775db343f +assets/content/api/angular_platform-server_provideServerRendering_function.html,1742567121261,dc88d2799b4a010601480b2111ce8a91b0f4eecf0841b45eb571b91d5658d139 +assets/content/api/angular_platform-server_renderModule_function.html,1742567121263,95d5d5dd580e76f166415a26b7463976a55555481416187d4a4813c4dbc8b28a +assets/content/api/angular_platform-server_renderApplication_function.html,1742567121264,7871161a819b8835b889d7d10b28a5d1616781bbebbfdc8e339d559e78bc4486 +assets/content/api/angular_platform-server_testing_ServerTestingModule_undecorated_class.html,1742567121261,f7f604d94c8f6bed30a3e04591ea8f6072b31b6f648071058367122463968b06 +assets/content/api/angular_platform-server_testing_platformServerTesting_constant.html,1742567121262,e51d272bb0cbdeb8190e4dc6fc65956d7964dfb53a830cf0b6938655d907bd7b +assets/content/api/angular_router_ActivationEnd_undecorated_class.html,1742567121263,a071e7da7a809b9ea142c2f25100137e27981b362a522c281afd7a94820f5dc9 +assets/content/api/angular_router_ActivationStart_undecorated_class.html,1742567121264,d344d62e377cd9ef6e40125a1b0b152ff611d881bc909f05fdf0827170e6013b +assets/content/api/angular_router_CanActivateChildFn_type_alias.html,1742567121264,97e16be5f1a1b44b3b8255656db94ff04a4f7da51ea167ead9d924e30e06fc71 +assets/content/api/angular_router_ActivatedRouteSnapshot_undecorated_class.html,1742567121264,4403f258dc7ca0f2f3a1cdad912b9d4658e1fcb1ea384950232a0fc7854db9be +assets/content/api/angular_router_ActivatedRoute_undecorated_class.html,1742567121264,4a9d686bac3879932b8a206c85edf46efef313887fee59f5de9aa6f89c40e054 +assets/content/api/angular_router_CanActivateChild_interface.html,1742567121264,44dddac2a5414ec739e899b84709969c842d6a48e0a5277400f02b34d919ac71 +assets/content/api/angular_router_CanActivate_interface.html,1742567121264,9d4ee13b8398c2da4181c61608271793a634829e2f75da75e56bb3c84537e919 +assets/content/api/angular_router_BaseRouteReuseStrategy_undecorated_class.html,1742567121264,b99d3d0444be61a56c61ed4e5fa6499c17834da6a46390e442dd83bb5e9aeddf +assets/content/api/angular_router_CanActivateFn_type_alias.html,1742567121264,fb51af3be9f8db1503e1ff7b7a10eac7ba8f32f0cc9628ebeb9a5e29b6aa3cca +assets/content/api/angular_router_CanLoadFn_type_alias.html,1742567121265,576a98a544dca6712ce604a7351d1ab4e0bbc54c47d80ccad01274ee50243896 +assets/content/api/angular_router_CanDeactivateFn_type_alias.html,1742567121264,04fea21f69b906248ffea28fae79ac4bfe2aeba5cfad88ff64696548e3f16a4c +assets/content/api/angular_router_CanDeactivate_interface.html,1742567121265,18ae53b4f86de40658df38a29adc9ae099274ae0354743db61409096552ebf29 +assets/content/api/angular_router_CanMatchFn_type_alias.html,1742567121265,d3e5687f7f1ba7470a550578fd142091910580ffc61e26c691045f6a17e8ea6b +assets/content/api/angular_router_CanLoad_interface.html,1742567121265,abac941afd53ad782fd8926710f3c7bcab2a01f5780751a323e6516421615edc +assets/content/api/angular_router_ChildActivationEnd_undecorated_class.html,1742567121265,227b4d795a802d1f77eba9e30dc7dbd7c51c76adbb6fd8822614cb28a172ee85 +assets/content/api/angular_router_CanMatch_interface.html,1742567121265,798e63fade4ec34b792c84e5fef50e63559c5253fcadb43b3a915bcf367d1e5a +assets/content/api/angular_router_ChildActivationStart_undecorated_class.html,1742567121265,f9ebb072f330c27ad0ea2ee08250dcedf622e3a0598e3d1fc974ae040ffaecbb +assets/content/api/angular_router_ComponentInputBindingFeature_type_alias.html,1742567121265,b408ef1359752b87e7f7303d864d5de01e34cac2c0f40262f8737255e2b8ccce +assets/content/api/angular_router_ChildrenOutletContexts_undecorated_class.html,1742567121265,8aa4ebf7ab1b64e9ae4c4275af4e88d8506afdc364436b6a5afd0bcddebf520b +assets/content/api/angular_router_Data_type_alias.html,1742567121265,bb5b17b2ec76853bfd916ade3744a3c46b06cdbc48872405208c19443f2bb90a +assets/content/api/angular_router_DefaultExport_interface.html,1742567121267,b0a8fcb9981acdc74ae8c7e4f1d3304f9a59040c79993bf2bc8e0029bf70928f +assets/content/api/angular_router_DebugTracingFeature_type_alias.html,1742567121267,87d4fbffdca611b2121f1b71e4a22d1bb7d43f1da11034a5aa82c6d236590621 +assets/content/api/angular_router_DefaultTitleStrategy_undecorated_class.html,1742567121268,392b50c5ee46f5d1ca590c3cdf6a13bbf5cf7fd017405d653a756045ddbad97d +assets/content/api/angular_router_DefaultUrlSerializer_undecorated_class.html,1742567121269,4f0d567f89f7aee229647fa6d4a8af8556ee55c71ff3171935b416c2d51950ff +assets/content/api/angular_router_DeprecatedGuard_type_alias.html,1742567121268,50ce0ef43d778ebe1c91185d0758406d0e64e1b8ad99de7af54b096c28e25a21 +assets/content/api/angular_router_DetachedRouteHandle_type_alias.html,1742567121268,afdff400bee063a57e9c58e10c41c89b663e94a198ed728972b6c980cd9a259d +assets/content/api/angular_router_DisabledInitialNavigationFeature_type_alias.html,1742567121268,16f438b28750c3e52ff26acb20cb2c2f379f83d646fcd9e6e708ac49f4523dc8 +assets/content/api/angular_router_EnabledBlockingInitialNavigationFeature_type_alias.html,1742567121269,7d90811925adaefb03ab024e48a9d48d3e355d752d2209f1eae6548d83cca3ce +assets/content/api/angular_router_EventType_enum.html,1742567121269,da7cc3fc0de0afa19ac9c73ea8fb3cf89ae52d85201aa89f430efc800d9ea139 +assets/content/api/angular_router_Event_type_alias.html,1742567121269,22fc8696d908db4b73a9869ab4d6761cc776e59e64238b981e8bf0950344c2c4 +assets/content/api/angular_router_ExtraOptions_interface.html,1742567121270,d3ad1b952e2a00dd0052e1d29dd87ecb520da8c39b9349cd34fd53b0a1346ae6 +assets/content/api/angular_router_GuardResult_type_alias.html,1742567121269,76c475e797ac3ca922265b81ed4df1fe88ea029b0c2015dd8047b7579b3627ec +assets/content/api/angular_router_GuardsCheckEnd_undecorated_class.html,1742567121270,325a5123efcd38e2a7a9a7223c64457c4a32b0b4a27afb5b4384add38c2b14a5 +assets/content/api/angular_router_GuardsCheckStart_undecorated_class.html,1742567121270,2c1e696536573f0b2d03477ca25e870a245d1b25b32a5a85b74c6ce7abecc6fb +assets/content/api/angular_router_InMemoryScrollingFeature_type_alias.html,1742567121269,2c2ed3f035d2a5396727784851d5f1bd2149ecdf36d5a966d228ae254f0899af +assets/content/api/angular_router_InMemoryScrollingOptions_interface.html,1742567121270,2afdd31bde180d43100306cc1ea974b6084feed72fd720f4ab964904b3aca45b +assets/content/api/angular_router_InitialNavigationFeature_type_alias.html,1742567121270,0c57dbb6cdb8f44859e74f34161275102cc1dc1d76d180084c94606a1e743acb +assets/content/api/angular_router_InitialNavigation_type_alias.html,1742567121270,253199f605c1caed637280309a772be789712e569083696f267c6da878b13e87 +assets/content/api/angular_router_IsActiveMatchOptions_interface.html,1742567121270,287b1dc7c223b4e67823a4598c1ca7798711c4dae7040d25e1e05a5451eab404 +assets/content/api/angular_router_LoadChildrenCallback_type_alias.html,1742567121270,0c66989c9266c4a63683fd64610d1c9f35cd7581dd133c95655d0aea7644cc45 +assets/content/api/angular_router_LoadChildren_type_alias.html,1742567121270,f2d267fcf560709dfdb67176f1a18ae9584064061375ebf8662ba044e94ac550 +assets/content/api/angular_router_MaybeAsync_type_alias.html,1742567121270,4e060d2a29332456fe84b7527d956f10cc119172611d919dc555a82922db0895 +assets/content/api/angular_router_NavigationBehaviorOptions_interface.html,1742567121270,0b13e71c85fc32b49972b8171f6994829721e56cdf6922ad32168d98b0e94352 +assets/content/api/angular_router_NavigationCancellationCode_enum.html,1742567121271,665b0fe452dfd167e58d79e2ac2831b2fea9e7220f69995badd5e46d2319398e +assets/content/api/angular_router_NavigationCancel_undecorated_class.html,1742567121271,0e41024425f94df4b5481a8ae4d5a0cd9ff8fb1363ba200883946686ea6471d6 +assets/content/api/angular_router_NavigationErrorHandlerFeature_type_alias.html,1742567121271,432a24d2f3f33c919eb48e08b8f8e3b78a62fa81606fe85f04d62e949f31b66c +assets/content/api/angular_router_NavigationError_undecorated_class.html,1742567121271,60d6c9c75e9a8640a1e3d3389bc2e3f08851403725c25710d80019e51d1f78b4 +assets/content/api/angular_router_NavigationEnd_undecorated_class.html,1742567121271,af2d4e8eae66b2b6142faeb5eec4c0b7279d180b7c4303def44ff4776c6c9dab +assets/content/api/angular_router_NavigationSkippedCode_enum.html,1742567121272,8c1eb43c80927c5ac8ac756903e36cd57c25c99eaf245fe5c37e38434584fe82 +assets/content/api/angular_router_NavigationSkipped_undecorated_class.html,1742567121272,cbd75d00049986626822119ee97cee07321574ba57cbfbdb36ec9816c034a2f2 +assets/content/api/angular_router_NavigationExtras_interface.html,1742567121272,4bac9163ce61a707a59389fe67a46a2ec903d8647be3a46eb236321faa31b1cf +assets/content/api/angular_router_NavigationStart_undecorated_class.html,1742567121272,4bceecc0d630772e6ec49606c4fb64eea43e2827ec3fc8956e1f7eced262926f +assets/content/api/angular_router_Navigation_interface.html,1742567121272,90b8c100a95736d2caf0c65bb671df5e885cd04c17ccd00a0fa1ccb7f55e337b +assets/content/api/angular_router_OnSameUrlNavigation_type_alias.html,1742567121272,aeae73a8971fb1fc14f5ced8e1bffc466eed645cf5959472d1bdbfe4daa226a9 +assets/content/api/angular_router_NoPreloading_undecorated_class.html,1742567121272,3152c5ec5e42082840a2d9fdb252155218b4bc8f25505a8b44f3de2d961aad46 +assets/content/api/angular_router_OutletContext_undecorated_class.html,1742567121272,292f7ca39d76b52e5da347572552f53fc552713c8be1b2b101877837e1105360 +assets/content/api/angular_router_PRIMARY_OUTLET_constant.html,1742567121272,f2a1cd9ea66d9ecac9f9b11b425787235d161890dafde86cc1895336bf7b169f +assets/content/api/angular_router_ParamMap_interface.html,1742567121272,3ca65d9aa3c9e6d64a122cd667ac7b860f5bfb6705b1a3614602c18010de6760 +assets/content/api/angular_router_Params_type_alias.html,1742567121272,39fb73a853c54cc7f30e74e40568ed548cb1fbc5695fddfb39723d2e4b31763d +assets/content/api/angular_router_PreloadAllModules_undecorated_class.html,1742567121272,171be51744837febba091461eba7d9e0bfc85dff6402a2829006f086487ca0fe +assets/content/api/angular_router_PreloadingFeature_type_alias.html,1742567121272,a817c2edd814ff402228a9dc45142b339a7233183b7bd9af25907129253b520f +assets/content/api/angular_router_PreloadingStrategy_undecorated_class.html,1742567121273,4248ca2aae7b86fbcce8b274a92110b6c6f8bbf43e2a62c9e334eb30e758b137 +assets/content/api/angular_router_QueryParamsHandling_type_alias.html,1742567121273,a1fe2cb273ffb0beabfb74a1f7f09452d142f029f346a51b37e9a9cd7eaeb5ec +assets/content/api/angular_router_ROUTER_CONFIGURATION_constant.html,1742567121273,7d1ba2da6a982642a0e1ef4d553d8e299b5e39488df0ac706cbd1307ef1dc3ec +assets/content/api/angular_router_ROUTER_INITIALIZER_constant.html,1742567121273,214104c19613712cb9b87fc13220994e749b4bdcd4a9c80e27e1a2cd3283c3fe +assets/content/api/angular_router_ROUTER_OUTLET_DATA_constant.html,1742567121273,7cfca02a9d81cae13c237fa71903bc4ed0c32e011c58193eebf3f3cdcc8bacf9 +assets/content/api/angular_router_ROUTES_constant.html,1742567121273,9b9c84a074ec76ea0498ea80be8da2255723410d5c82d12ba22eb10726292aeb +assets/content/api/angular_router_RedirectCommand_undecorated_class.html,1742567121273,a3921a4f031f18f2fa74e83bef199c094d40e079868f213bf806027eacc12866 +assets/content/api/angular_router_RedirectFunction_type_alias.html,1742567121273,48f759c8e02e69ddf16568307eed8fbb9353a1c23be5c8a10c25f2ca2587fa7c +assets/content/api/angular_router_ResolveData_type_alias.html,1742567121273,4571fff4edf7ae791d4cb56b355ca30e624590946ee5ce0963bdbe87a11fe911 +assets/content/api/angular_router_ResolveEnd_undecorated_class.html,1742567121273,86212d74a3d338e43a250479a9ebb04cd5cd750b7e34abbbaaf696188d24e1af +assets/content/api/angular_router_ResolveStart_undecorated_class.html,1742567121273,5ef0a343007671fc3387b3c3983c8f0669a791efaeec5126c44de975ae0d7540 +assets/content/api/angular_router_ResolveFn_type_alias.html,1742567121274,af70ad525a19752d9a808997d311e28667d9c59f3628e6124d78caeb61c03ff3 +assets/content/api/angular_router_Resolve_interface.html,1742567121274,ff82feef2987d37c308928e53e0a0a5e7ac8530c2fdeba8847b4b671514dbd7b +assets/content/api/angular_router_RouteConfigLoadEnd_undecorated_class.html,1742567121275,39ce4e87ee81336b6109cc7de94c1d6af683dc9b556f3d2a4a66a5ea090a05e3 +assets/content/api/angular_router_RouteConfigLoadStart_undecorated_class.html,1742567121275,2a7eafd05890636aa22f8549ee335bc96793a0b55a234d71ccb639fa61348ef2 +assets/content/api/angular_router_RouteReuseStrategy_undecorated_class.html,1742567121275,37564946bc5f5593878f62732789397597419e742795e405b77e4744098e4ffc +assets/content/api/angular_router_Route_interface.html,1742567121275,dd92ff77804cf3fdb84e62496681f6443f6cb0b460c301d84747e762476bd206 +assets/content/api/angular_router_RouterConfigurationFeature_type_alias.html,1742567121275,e2a7ed67fddc01e88ddf6d47c118b60802781f6889610a6873e0fe320cd9499f +assets/content/api/angular_router_RouterConfigOptions_interface.html,1742567121275,7005aa49a0080ff32e2a950268f95362a5a753b18c99baa6286ff344de087b7b +assets/content/api/angular_router_RouterFeature_interface.html,1742567121275,3190fe7a73df93526ec3b9b21c2813b69902f762c4e5d8394edcbad397e411f9 +assets/content/api/angular_router_RouterEvent_undecorated_class.html,1742567121275,3cecab2e30982c0b753ecb0592d684acefe77199e4b085fb54f5ee782d9ebc12 +assets/content/api/angular_router_RouterHashLocationFeature_type_alias.html,1742567121275,5ce23a5097add5ef74370a7256b2a9aa5468b26fb1e25b0956061b885faf5d84 +assets/content/api/angular_router_RouterFeatures_type_alias.html,1742567121275,505ac612162e708bb6270f069ad66d2fca3686151331eec048672a51e72d9812 +assets/content/api/angular_router_RouterLinkActive_directive.html,1742567121276,7e02145f81132a980ab1ca24a2fda788d8519e47e6981b04105a8c20183c3518 +assets/content/api/angular_router_RouterLinkWithHref_directive.html,1742567121276,fec61767a7694d941465f16c37754588471ddd773927843dde4552467b0d28a4 +assets/content/api/angular_router_RouterModule_ng_module.html,1742567121277,3ea4041f35adb944c711068e1815595ea087df080aa98f94c5187792072b173c +assets/content/api/angular_router_RouterOutletContract_interface.html,1742567121277,c9acb0d145c507375e830da7707c76943fd2156a21e9bfa2743915a322c0c97d +assets/content/api/angular_router_RouterOutlet_directive.html,1742567121277,5b563314174abf55b7ca48e4b7a771b3481abe03022d7a86b98c9689879b888c +assets/content/api/angular_router_RouterPreloader_undecorated_class.html,1742567121277,43c3e4cbfe74f327a1d60f7076307dcf61ea530b8d0eda0ff72e7d1b5e58a3e1 +assets/content/api/angular_router_RouterLink_directive.html,1742567121277,0ad5ff38c2f7ba130538f85906745e97d2e2882c6d6e84af35a661c84ac240f6 +assets/content/api/angular_router_RouterStateSnapshot_undecorated_class.html,1742567121277,38b53285bb40938f902368b3ea43415c90c6d38f56f7994d3753b167e90d7425 +assets/content/api/angular_router_RouterState_undecorated_class.html,1742567121277,c133b3b03b517c2ad37b85668f4733163cd6c7e69a8ae2fdb35c79b0ba1935f4 +assets/content/api/angular_router_Router_undecorated_class.html,1742567121277,40f5b93d07d187f8cc18252f712d10961d2bd9b817abda076529123793817631 +assets/content/api/angular_router_RoutesRecognized_undecorated_class.html,1742567121277,76b531a00dbae8567559e40ca870358e9cbcf46feb2ad322bfda7ff5fa8e077d +assets/content/api/angular_router_Routes_type_alias.html,1742567121277,1d164e1ac365725a8a33190c31d4c7e79f50d94024b1143ba18a08c175bb13fc +assets/content/api/angular_router_RunGuardsAndResolvers_type_alias.html,1742567121278,c81ea5bcd8f413a145905c2beecde726fb332fb7c9d181d1263b7875d5f146cc +assets/content/api/angular_router_Scroll_undecorated_class.html,1742567121278,fefdf546b4ee4fc42e60634598a1bab901eb57faa381d64b224a7b7710a61b54 +assets/content/api/angular_router_TitleStrategy_undecorated_class.html,1742567121278,f14a1aa4106e913b88cfa2c3ef9ee344f3999555c4497cfee755998fac18ebef +assets/content/api/angular_router_UrlCreationOptions_interface.html,1742567121278,5b5b2061ceb5815319105a718e8fd6fadd841f7e2f00f8132f7e6f425136f42b +assets/content/api/angular_router_UrlHandlingStrategy_undecorated_class.html,1742567121278,287d55feb11903c735d279cd4984699ceaf7b9b0d17a6e6f8787da902d2d5faa +assets/content/api/angular_router_UrlMatchResult_type_alias.html,1742567121278,bb63e482957aba236e0bad6907054796e3e73747981bb67cb38db0677b2f8c6b +assets/content/api/angular_router_UrlMatcher_type_alias.html,1742567121278,19b845e584b10a704b4b9cee21e5722209e4ecf5a2d71fde45890c6f7c04ac49 +assets/content/api/angular_router_UrlSegmentGroup_undecorated_class.html,1742567121279,9100eab95c0a08e131a93a2bc21205f313af8ee7ce8f7b259b521408e5771f70 +assets/content/api/angular_router_UrlSegment_undecorated_class.html,1742567121279,db74327ef5990c2e9b2cfef1988997a1f5eff5e1270a0f934d9eec52dfb399f1 +assets/content/api/angular_router_UrlSerializer_undecorated_class.html,1742567121279,287358c42ae82172449f6c3778c23f819d2c7d0afa7c9ed7cfe791c6a80ed3b1 +assets/content/api/angular_router_UrlTree_undecorated_class.html,1742567121279,7a14bcd7bdfb938f50236abf4fb7981e189fd80c6f487afea33501a203384563 +assets/content/api/angular_router_VERSION_constant.html,1742567121279,4867feb44f17c581edba0880a73d84fb10585d423fdcabf2d12a4219de9d190f +assets/content/api/angular_router_ViewTransitionInfo_interface.html,1742567121279,6bf0e86371a81dadce26b324408e0a80de140852665a3008e5d743758d65be04 +assets/content/api/angular_router_ViewTransitionsFeatureOptions_interface.html,1742567121279,36e932aa520c11201a3f71598618095766cbc396d08549529c6bb5d80143a48a +assets/content/api/angular_router_ViewTransitionsFeature_type_alias.html,1742567121280,ec53fc55eefbff85618a992bf15702d3f6f34c5e6202d13e9a3780741de50d83 +assets/content/api/angular_router_convertToParamMap_function.html,1742567121280,baeac6f50475372d413176a4ab203a603631940133e8c65cd2694561aaa4c33b +assets/content/api/angular_router_createUrlTreeFromSnapshot_function.html,1742567121280,64c275de3a1048a650eaba58fc77eae6517f9a2d19286bfe97045a189df848b7 +assets/content/api/angular_router_defaultUrlMatcher_function.html,1742567121279,b12472076389a61927b92b5f0331849c80d872ecb6493e8cea8da7a48b55bfd3 +assets/content/api/angular_router_mapToCanActivate_function.html,1742567121280,b2aacca5cbe899eda649df83d3dc6c24bc9ab53099d2ec395f93abd9048530ca +assets/content/api/angular_router_mapToCanActivateChild_function.html,1742567121280,20663f60a04594713f411e644633763cbacf6c2a38b237e5607022a11df7069d +assets/content/api/angular_router_mapToCanDeactivate_function.html,1742567121280,2c4802712b4d2906a80818b6f75c1b7b83a1e3104fa3698d70e600c1449de23b +assets/content/api/angular_router_mapToCanMatch_function.html,1742567121280,fd4f5347cf28c4320d67eca68af269f7f925250993c2b41f515fb3d51cdce0ab +assets/content/api/angular_router_mapToResolve_function.html,1742567121280,e39c4ab3da14dfed978c40748558c0a29c55af1472d0c98bd8b6e5e8e6477717 +assets/content/api/angular_router_provideRouter_function.html,1742567121281,cc778b0f9df6ad909e51e4b627f71826c24e5928c22efb8ead421c0dc78a4222 +assets/content/api/angular_router_provideRoutes_function.html,1742567121280,0d234a611697c86d5f7a90154efaf762589635f04e1b22b3aff636e7e97cace1 +assets/content/api/angular_router_testing_RouterTestingModule_undecorated_class.html,1742567121282,c1c4ac6007a7afcaaed089b6154a035bb18cf7941f07fec5ff6bc23371c1e017 +assets/content/api/angular_router_testing_RouterTestingHarness_undecorated_class.html,1742567121282,39f45866bef9d116f6975b7d1f910cdef3dff7f0bf5fb42b6d0f6ed687a501df +assets/content/api/angular_router_upgrade_RouterUpgradeInitializer_constant.html,1742567121281,8721d4775171e75f3fc2bbfe6ad5d9e8278bc52b1045d36a3cf5885e5a8b435a +assets/content/api/angular_router_upgrade_locationSyncBootstrapListener_function.html,1742567121282,e5a61fa2de4e0986cab003bbc43f4bd35bd726291c74fbbc6c318d67e305ae46 +assets/content/api/angular_router_upgrade_setUpLocationSync_function.html,1742567121282,4e19cdae2293eb9d469ee30956eec00ca00164e4f224f4a23fb000cbd77ac6b2 +assets/content/api/angular_router_withComponentInputBinding_function.html,1742567121282,e7d57d89ab85cdb2214436dce9d14b7701da5a1830d761f3ae4918450b82aef8 +assets/content/api/angular_router_withDebugTracing_function.html,1742567121282,be651c3235bf4c02e2d8a62e7004d3316f2e32bb396aaa72ca1d9a1121735edd +assets/content/api/angular_router_withDisabledInitialNavigation_function.html,1742567121282,affbf85b812bc341b90eb7289641aa3c409ce788b6fd0f312516f5be0941fdb6 +assets/content/api/angular_router_withEnabledBlockingInitialNavigation_function.html,1742567121282,d59e62fbbf041e939e89fe1413f929ade886dd8aa02d541b649272076eecbc10 +assets/content/api/angular_router_withHashLocation_function.html,1742567121282,17a8507d541e9ccd227b31e4a715448eda51935265802e08098e54ca941645bd +assets/content/api/angular_router_withInMemoryScrolling_function.html,1742567121282,5dd29e8643ce0333009cf5247025367d51a19ed0170bee988090fd40a3cdfb37 +assets/content/api/angular_router_withNavigationErrorHandler_function.html,1742567121283,f2b1d32145241b5106614539527d0f992574c5e803becf99a9f53fdb4d388616 +assets/content/api/angular_router_withPreloading_function.html,1742567121283,9b016b50434c152da8c3d2147335ecb6f69153b4eb02c5fb738270a92ca6d953 +assets/content/api/angular_service-worker_NoNewVersionDetectedEvent_interface.html,1742567121283,d006030d8ad47d88b87b27894c2fe5ead7f745491cd1d3c830ae49255cdca531 +assets/content/api/angular_router_withViewTransitions_function.html,1742567121283,b412a8cccb3c616b29e4a25d2c1fb9c6c37724664d75c7e7330092513876c0e7 +assets/content/api/angular_router_withRouterConfig_function.html,1742567121283,a316b31bb538fe5abb002b812df730a4467e50cfd9471b40b0d1c1b4ec4629a5 +assets/content/api/angular_service-worker_ServiceWorkerModule_ng_module.html,1742567121283,44ada99f736f625bdf4f581f9d65cdf9fabfeba1d5e70a1109c172d70bbac805 +assets/content/api/angular_service-worker_SwRegistrationOptions_undecorated_class.html,1742567121283,006ae9cc05d15d78f325563bce636f19b4d56b032ebe42fd768e7a853285dffd +assets/content/api/angular_service-worker_SwUpdate_undecorated_class.html,1742567121283,9458320c17559731c3323c38d8591d93f6a89dbc7436cf4bdfa70eaf7dbe5bea +assets/content/api/angular_service-worker_VersionEvent_type_alias.html,1742567121284,fb8204d9e42bdcc0efe393aa1e7c98759220762c932d3077f17690dbd331bca5 +assets/content/api/angular_service-worker_VersionDetectedEvent_interface.html,1742567121283,d7203d6bc242192b5e961f6b885d273c112123c3b5b8c6815b540ca11df19f78 +assets/content/api/angular_service-worker_VersionInstallationFailedEvent_interface.html,1742567121284,919f235b7ecab5a709e29fbc5a5cbae16952858bf32987bf7dcf7f1a43d6aea0 +assets/content/api/angular_service-worker_UnrecoverableStateEvent_interface.html,1742567121283,4407053daf484fc9558da6cdc7e542f23ff7cd5d8ece24a8d509324581469d85 +assets/content/api/angular_service-worker_VersionReadyEvent_interface.html,1742567121284,2c7fe812ec03a226b670bc917ac1c86f105c3e668aad63aa79544dc3eb4ca59c +assets/content/api/angular_ssr_AngularAppEngine_undecorated_class.html,1742567121284,328a88ec5158edd37237b2184157fcd8a5880ea2b2a642486f8c6f8c592fd814 +assets/content/api/angular_service-worker_SwPush_undecorated_class.html,1742567121283,00b628ed6dbfe8f469fce9b0a101d3e1303c4dc7c83d845222e9717b8556c823 +assets/content/api/angular_service-worker_provideServiceWorker_function.html,1742567121284,1ed09221668c199804b2cc16c4b4bc26e729b39b88799066645a437b5a0cd825 +assets/content/api/angular_ssr_RenderMode_enum.html,1742567121284,0cfa7d497fcef05ee8cea0ce5680283352bcdba48245ef4353cf69da5c370ece +assets/content/api/angular_ssr_PrerenderFallback_enum.html,1742567121284,d91e1fd5327f469084a9c5a3f831dda2b5684783e86cec49fec98ca0d183e47b +assets/content/api/angular_ssr_RequestHandlerFunction_type_alias.html,1742567121284,a2e29b4d9ffd82f6fb74524ee21f6094cc6810f52947ae671d78ac30239e5a99 +assets/content/api/angular_ssr_ServerRouteClient_interface.html,1742567121285,611fcc5708c1314a5341ebb6c1538756dd2657d29c07f53f35ac36704ebc5897 +assets/content/api/angular_ssr_ServerRouteCommon_interface.html,1742567121285,58f78a95b1111c8fab75cd414434cc887e3060c62e17caa732bc4c93e3cf15e7 +assets/content/api/angular_ssr_ServerRoutePrerenderWithParams_interface.html,1742567121286,48d77e7f29a44c79b3feec001fad3bf485cede0fa154d11e629747ab70daece2 +assets/content/api/angular_ssr_ServerRoutePrerender_interface.html,1742567121286,60ea4080709a2cc011233a0e50299f6f15800aaec8ee726b784a0d68547e7b57 +assets/content/api/angular_ssr_ServerRoute_type_alias.html,1742567121286,a9cbb9b8d88bdcdd34764cf17d1d19692f8dab20cf3dc80a9f6ad0c941013ac4 +assets/content/api/angular_ssr_ServerRouteServer_interface.html,1742567121285,fac14fe5d8349d11d1dc39f5513d2ca9615bdc76f2a7a0b1865f8483e2db225b +assets/content/api/angular_ssr_createRequestHandler_function.html,1742567121286,68af08d85afef82240e0568723d3df12736fc9cda228376be5ac909419911ea5 +assets/content/api/angular_ssr_node_AngularNodeAppEngine_undecorated_class.html,1742567121286,2be05d384b67b2919b1bc01c9f96fe39a2cb5c9e5ae434ec3dc7614a26b146aa +assets/content/api/angular_ssr_node_CommonEngineRenderOptions_interface.html,1742567121287,8520d690253ffbed52ef38eb70eb6fbf651d27b9df4452974b67236d2e0194fc +assets/content/api/angular_ssr_node_CommonEngineOptions_interface.html,1742567121286,b69f38df49e875700a5fb389af036bf1899830121a9ad9314754bc51455e7959 +assets/content/api/angular_ssr_node_CommonEngine_undecorated_class.html,1742567121287,e50698d72b5456e92cdbd6715ead40ebfacbf99b25acd4c4e6e02dca5371ae4f +assets/content/api/angular_ssr_node_NodeRequestHandlerFunction_type_alias.html,1742567121287,4b4a077b79877bb6b87e0255d4b503c63e791e4be8207fa451afc0cc4724e0c9 +assets/content/api/angular_ssr_node_createWebRequestFromNodeRequest_function.html,1742567121287,70deaf4db9ecf1de5b795fc94a95b7b7e1d50f0b6b201d86b9b356f676d90d5d +assets/content/api/angular_ssr_node_createNodeRequestHandler_function.html,1742567121287,37c5cbfdd89df8b1269916c56a13bfed3dfc82183511da85549cfbed3a53d973 +assets/content/api/angular_ssr_node_isMainModule_function.html,1742567121287,88c056e67652df77ad0879d267c3951589159b94bd42206d9d49d650ff9bc0eb +assets/content/api/angular_ssr_node_writeResponseToNodeResponse_function.html,1742567121287,e203a71f1e2d72e1bedfbf45ddce82f56b324cf90f9588d2f9d0cc9ca092df53 +assets/content/api/angular_ssr_provideServerRouting_function.html,1742567121287,ab5fd5f7b108e13d41fc6800ef1e3c2e330746e8876fe02d23c7be94202c9985 +assets/content/api/angular_upgrade_UpgradeAdapterRef_undecorated_class.html,1742567121288,b5f609cb0f3410af0930332e9280855f2b700763d10d039d96d74a67e8ca4934 +assets/content/api/angular_ssr_withAppShell_function.html,1742567121288,7b39b6043d1402bb243fe04cd3af249cb2bf8edf20cc17ec29212f85e4510b07 +assets/content/api/angular_upgrade_static_UpgradeComponent_directive.html,1742567121288,0eac13167f7634b63f8406f0c7ad4ebcb26339184bd025fcb967e2d097d8580f +assets/content/api/angular_upgrade_static_UpgradeModule_ng_module.html,1742567121288,a68f2772f21b3b74d443c37e586fe7c91c1093f57f6b14c135d41a9ac6df034e +assets/content/api/angular_upgrade_static_VERSION_constant.html,1742567121288,744fee3c7642b65312e32855d7027a785cafd3233c5a92fc9ce3a9aeef91d7f0 +assets/content/api/angular_upgrade_UpgradeAdapter_undecorated_class.html,1742567121288,08fef0af8c7b1427a4031cf38aa1f310d47a840947668b6e1cb53eed48fe4ad0 +assets/content/api/angular_upgrade_static_downgradeInjectable_function.html,1742567121289,9a78bf2c22e2c8d882c10f22c975aa6cca69a5354af18afac0253d5c572db2ee +assets/content/api/angular_upgrade_static_getAngularJSGlobal_function.html,1742567121289,a0186165e4babebc1f850deb4cf877740cc8e63752d2a5d9053b881eb47bd08e +assets/content/api/angular_upgrade_static_downgradeComponent_function.html,1742567121289,659e3281e1ff3e6289028627e0c7e75b0ddbfb9d94f5870657f7f7ccd96c1a2a +assets/content/api/angular_upgrade_static_downgradeModule_function.html,1742567121289,f3dbddceb306d00be898986a1e5f9c042a23a80168364b20985472f893d15928 +assets/content/api/angular_upgrade_static_setAngularJSGlobal_function.html,1742567121289,f31a39ff8aef68fd8466f50bb7aa77bba16a9fe600712dc7827b8bd010da0581 +assets/content/api/angular_upgrade_static_getAngularLib_function.html,1742567121289,a86e5bd4ea1bc752bd9ef343cf5932e612793cf622a2d48b1fd1c3a9684e8f39 +assets/content/api/angular_upgrade_static_testing_createAngularTestingModule_function.html,1742567121290,d6d2776fb9b2c776ec74090194813d9fccfcc7e75c035ef5f6361dd6372dbdff +assets/content/api/angular_upgrade_static_testing_createAngularJSTestingModule_function.html,1742567121290,da0458c0f0058bc3db41c9b8d4974650705710102331000f821421d5a6de87f9 +assets/content/api/angular_upgrade_static_setAngularLib_function.html,1742567121290,02af501f3fc50e7ed4720a57498a085058ff6f98eec4f506dd30de6200e3b39f +assets/content/best-practices/update.md.html,1742567120857,76921e9ce97dde6ed78356e7fbbe0ea4ee782593419633d22eb77c2bd9dc682d +assets/content/best-practices/runtime-performance/overview.md.html,1742567121123,4fce47c75ca59b917bdbaff8b471d69e0c25075f6fea76e8f2162ff75e669705 +assets/content/best-practices/a11y.md.html,1742567120855,27ad695efe83bf50a86f6e2ded44ee248cc2f2c4f8a815f010c24d8a1349192e +assets/content/best-practices/runtime-performance/slow-computations.md.html,1742567121131,52bbd7fdd29107ef19cb382c2b5dabf904ebe935ae9fe4e485c174a95dd87ab2 +assets/content/cli/add.html,1742567120817,11f2fc9502ab7fd007868e3daf7133b8fcb67f8ffb2f10904abd091bbb1ea9bd +assets/content/cli/cache.html,1742567120858,630b72dcafb2124fba20193b5272f6baf76c24b39ba5b9b27efbee6df6fda32a +assets/content/cli/build.html,1742567120857,4c0a7714eb0bd526ba665a69a6ef9c011d7f89d351537be9a229f65ee0e3d830 +assets/content/cli/analytics.html,1742567120857,f8f1273a49f7a554654df92c5753548d310f214b3b1e6475f5cee7df4c026ba7 +assets/content/cli/config.html,1742567120860,17b725d0c94039cb48bcfc3d2551cc8721434b7516ef3bde2e35b3de8043a1c9 +assets/content/best-practices/runtime-performance/zone-pollution.md.html,1742567121133,b14c662bc051193c2408b5d29e0d7dce7c552f8c7f45984e7c9ea35cd747577f +assets/content/cli/completion.html,1742567120859,c2fc4a01d9a2bd4febf057bdfe52003eab012ed33082bfd704b2a9584882ea42 +assets/content/cli/deploy.html,1742567120860,c1d2ee40c2e975055006ca043ee679c852bd43ea4b30c0c307ccbd0fcaf3de28 +assets/content/cli/extract-i18n.html,1742567120860,d1af6959a16dbc8a7ab1544e66e61bc19b8b6e4a3814196ce896d791180948bc +assets/content/cli/generate.html,1742567120860,7b43141e5ef40634fcffcc5a0882181af5e07994227e894ead888ec965b3869e +assets/content/cli/e2e.html,1742567120860,bb04dc221d845cd05201f52f222688a099bbec491a946f4338a3d9010fb58856 +assets/content/cli/new.html,1742567120861,9c0a01eb0d38e216a6848016427b37b8e2d1f5d002b81f8125b07a7dcf0e0315 +assets/content/cli/lint.html,1742567120861,d26f0aad0e7be710b7ca409b63994bf37b9444fdc555367898db21b5b3ac2afc +assets/content/cli/run.html,1742567120861,147e634e822fe1a60095f639ebe40d98d15d1230076c1d6d15f85919005ab4a1 +assets/content/cli/serve.html,1742567120863,b16e974fa3325766dcf853de5af2667601383aecbcafaa99ccbe23dc38497210 +assets/content/best-practices/runtime-performance/skipping-subtrees.md.html,1742567121132,4fd17850d287f6d780dfeee9aa936054305d677ee0b20bd6d6ec935fe72717fd +assets/content/cli/test.html,1742567120863,731eac1276610cd0bac1147d202590e6fd951becd2bc526d645d6d4c5c4889d7 +assets/content/cli/update.html,1742567120863,8b1fe62ca60a9ba14cc02475e7ff0f2e3ea9513360c1c91b619f3d8e207e5131 +assets/content/cli/version.html,1742567120863,305aaa8f4bf2c1a0b512b560f3569157732b96769c30d4f6e0b58f31272e1f18 +assets/content/cli/analytics/disable.html,1742567121296,4fea08ff4d43bfe32676ebe7407c486d569f036ed1fbb175ee2f1fcd81f69057 +assets/content/cli/analytics/enable.html,1742567121299,9054bc8b0dfb2375076ba593fec42fcfa0adba0a388e593b154f19d842d4084e +assets/content/cli/analytics/info.html,1742567121300,be9210ced9c09c9ac8ca9e3514de9774ccf22871c3acfd3f2c3bddeae9822289 +assets/content/cli/analytics/prompt.html,1742567121299,d59a3ff095392d99aaed7674f2d54777580f4ca9155d65fd0485e3671b515d25 +assets/content/cli/cache/clean.html,1742567121291,c7f68418c1be87dfcb40d82eb70d21461a88fcf3e4f2aa6f00e47b629c060293 +assets/content/cli/cache/disable.html,1742567121292,a6af073a2e542e4f46dedf0e1edc4374b8c3a2961204c9ea1db030f7986b901a +assets/content/cli/cache/info.html,1742567121292,55d32ab16fde41563beeb4e2b26349227bea17e779652899fcd6a0ab67412c0b +assets/content/cli/completion/script.html,1742567121291,6ad08bd4d4b4b3fab11b18393d39b2e96626942160beda2f759a073a962c7b30 +assets/content/cli/cache/enable.html,1742567121292,252525b8d5bc0b2310f2a9bd98c517c1a2847ed8522465bc2f629222ce22131b +assets/content/cli/generate/app-shell.html,1742567121291,d51345d40aa3226649b352210cfa5ac8bff41ebe43e6f82f8e068d00ce800d0e +assets/content/cli/generate/class.html,1742567121292,e38e15e2e678908b47cfe81c2699a203268910bb1ac4c4ea76263c44675239a7 +assets/content/cli/generate/application.html,1742567121293,7009c9e5caa88e4a9753aff357486db9dbd4e8cdbafb19f2a68943a117b1e5f1 +assets/content/cli/generate/component.html,1742567121293,690339815e34ef43b503f980eeecf3dd5909a336eb137cf280871cd705b710f1 +assets/content/cli/generate/config.html,1742567121293,560923b5a4d877851709bace7cfb65b9aa811238a55182f89c128af259339fbd +assets/content/cli/generate/environments.html,1742567121294,77d3093d2ec7c46998e3f12abff62074d12fc963bce99c91a8c4ff203c01ef6c +assets/content/cli/generate/enum.html,1742567121293,d79b5da2a503c406a026d4874cb920c90fcb67d6ba080b6a6273ce9aca359917 +assets/content/cli/generate/directive.html,1742567121293,d1e272feacb0d0f5be2e0b67e6303336bbbc160c7ca522242e64b74d56828a6c +assets/content/cli/generate/interface.html,1742567121294,32bdfe713aaa533d08afa218688dc5c042dded6aff998dd9b64dbcd40c23100a +assets/content/cli/generate/interceptor.html,1742567121294,ea47033672669d3e8a802d5dae289bad8b20aaaf827da1fd1f771369ae9dd31f +assets/content/cli/generate/guard.html,1742567121294,a1d379fdb851261f09d7f061e271910e86eb6db034e45b77ea923134c905d358 +assets/content/cli/generate/library.html,1742567121294,16650351a3561de8b9d3633847bcb7fe862bd046242017b058bdbb54cddcc770 +assets/content/cli/generate/module.html,1742567121294,34f45c90167e0e9387aa4369844da1381fad915b83761313c684430236f51a76 +assets/content/cli/generate/pipe.html,1742567121294,21f3bc855668062ad12892f2296dbcd86b918c842a4f10972aff2243c0835dd2 +assets/content/cli/generate/resolver.html,1742567121294,1b8d99eaed9f8f43a23dc69d71775db5a7847b0a8c4bd902377e8daeabf68a98 +assets/content/cli/generate/service-worker.html,1742567121294,b3e1c011d829789350d77ec5af428040c3391e5733e69bdcd7c675f484d45d18 +assets/content/cli/generate/service.html,1742567121294,744dc339b4d4872ecba188dddfb6e3577dcb2264ab0458606cf5b1f28a4dcf14 +assets/content/cli/generate/web-worker.html,1742567121295,92cdc42da569c3858c59745fd72ef705f02d05455b8e5858b71c71a241b84089 +assets/content/ecosystem/web-workers.md.html,1742567120855,968a2a0cef454b67390b5a6066372d25b01e6d682fa150002a9ed01b2ac6d7a5 +assets/content/ecosystem/custom-build-pipeline.md.html,1742567120817,1bcdc94e71609d636a7003c50b2cb77bd411cab0063f22c3ea032be65ee72350 +assets/content/ecosystem/rxjs-interop/output-interop.md.html,1742567121290,2b0be3a6cd1be50f1746c330a7232c4464ba5992a0ef8cc7cc21063aa7879730 +assets/content/ecosystem/service-workers/app-shell.md.html,1742567121290,a3c6f43399db5b22f8fd1af659a9a2278305ee7e45458e99399f6359463fba8f +assets/content/ecosystem/rxjs-interop/signals-interop.md.html,1742567121292,e6a7799f2f209e6793d82a7835e139419a6ac9f942a2b03884137ca6575a148e +assets/content/ecosystem/service-workers/communications.md.html,1742567121291,5252d8424880aa02a1bb83d01ca21a32d84ed6e85deda5ef7b2d9c4a2e11b0e5 +assets/content/ecosystem/service-workers/getting-started.md.html,1742567121291,5041385deb2d34cbbb5fdbfecddce664cc8e8979045d9a3eafaad0d18a0e7734 +assets/content/ecosystem/service-workers/config.md.html,1742567121291,48db74977d3ad1ff3153f3d5d913068ff49e7c8a217ecaccb3a2e73a5fb750fb +assets/content/ecosystem/service-workers/devops.md.html,1742567121291,f5a0630e0e0f0a293bdbe6508d710c26bf7bdb1cf548d9c242c9539fd892d97a +assets/content/ecosystem/service-workers/overview.md.html,1742567121291,aaa58e25428cb959ba9c98540e3d676adba07bbf40d3bef00c30caba9fdd3cfb +assets/content/ecosystem/service-workers/push-notifications.md.html,1742567121292,53636c54d4776d0a0e0fa195f15587cc0c2fa76073d9449957677c5ca3ab8d22 +assets/content/guide/hydration.md.html,1742567120872,62e5db10bbc436b977771f9332c6f53d27cdacf9341470da6a3beb3194efb325 +assets/content/guide/incremental-hydration.md.html,1742567120876,e14712efb478f4ecdaed45f44cfab00473eb73c60c64e6cf16441bdf21fe5898 +assets/content/guide/elements.md.html,1742567120865,b6acf2cac81d9793caea520324b133f6bc3c382bcf23b415525da7191005f53f +assets/content/guide/zoneless.md.html,1742567120877,5e59e25f278b822b1fc75fea0bc35be113021a35a031cfa2ca4ddd1a32567789 +assets/content/guide/ssr.md.html,1742567120879,3c8ec5575f32d9efe6248628e75cf5202eb1ca06bba3e219f8129df658ff8b75 +assets/content/guide/animations/reusable-animations.md.html,1742567121300,ec89f80aa839ea46a2f0f5f6bf4f4e44c13d8a218bc97be3521ae1d975fd58a6 +assets/content/best-practices/style-guide.md.html,1742567120824,c0a4c87b3b86006b71c5540cf6e6189930fbd40a59e51448534dee1513cd2d1a +assets/content/guide/animations/route-animations.md.html,1742567121299,9f1599d79a6baf30a4b0247b1bf5e02fa099ba39345e1f97da2cc49d997b682a +assets/content/guide/components/advanced-configuration.md.html,1742567121296,93c0c2362f54f7c1b22d5f56f43e6bc90cff4726fcb9ba142b0f0e9258b2a28e +assets/content/guide/image-optimization.md.html,1742567120872,9a10bd17e39b5ce42abdc5b7076f3ddfd819b02a89d628b4f34ca81f8854e6d4 +assets/content/guide/security.md.html,1742567120875,b7c7272cef10aee795078859df9d6c01816e5fa5eed94c168c4d2c1f734d33ea +assets/content/guide/components/dom-apis.md.html,1742567121304,92b4f4a062f51f12fc82716d41d9328ebfc1b93b8a463608b8e2977564dd17f0 +assets/content/guide/components/content-projection.md.html,1742567121307,fb0ac5375b3beeaf03b717e3817b035076bdc48b9fe45170eab727a5d8c54df8 +assets/content/guide/animations/complex-sequences.md.html,1742567121297,1ede610aa092c0a167d43e5e68b2f73baee6a9a9d1cbd7b04879f947b51f4f9a +assets/content/guide/components/host-elements.md.html,1742567121301,c7442aeacd577e640820e0666a920e0cf1dc94111a768c12ab6f51b0588090e5 +assets/content/guide/components/inheritance.md.html,1742567121301,beb2bed5e25867af35df8a25ad7111a639af3d8b060c15474a5aed03066e0035 +assets/content/guide/components/inputs.md.html,1742567121302,da0b6e0d5f25cbfec5553faa0b6312b1f926ff633bbab3fbf20053e74093db25 +assets/content/guide/components/anatomy-of-components.md.html,1742567121301,937fde9466f2520403190bb4c8cd41b86a7d5a704ef3d3af61eaa9d694ad4f7b +assets/content/guide/components/outputs.md.html,1742567121303,60371457cbc56c53e10102cc20995aa3f4fb61a77437598033f29939a9344727 +assets/content/guide/components/programmatic-rendering.md.html,1742567121303,48dd7c79138019d6e2df586fedcf1fbff0b671de37963d25351fec3117845c37 +assets/content/guide/components/selectors.md.html,1742567121304,c69415d8963c38d6f5c6d775f1bee2e609d8cae9ea2eaa0f0094a10cb90896c8 +assets/content/guide/components/styling.md.html,1742567121304,a918a8355de3558d7251e35ebc63ac134fd384502a90bf5107c543d0d031dc3d +assets/content/guide/animations/overview.md.html,1742567121300,31ce749384fc1de7a6621b4b3f2e5ce80ad581c97d562b46029a3af58ae4eec9 +assets/content/guide/di/dependency-injection-providers.md.html,1742567121305,38e7911afbe7bbfb4709b9c95df1e229e8b9bd4ea3abc2334eaec7e9f6ec055f +assets/content/guide/di/di-in-action.md.html,1742567121305,e492b4ab6c905a28670b5d5e1f622046cca817a8404becee603fb2c4677330b3 +assets/content/guide/di/dependency-injection-context.md.html,1742567121304,6f4dc76268128c1a28f6608cd1add0a1dec1f0b8c63bb37e3bb470e496078a50 +assets/content/guide/di/dependency-injection.md.html,1742567121305,bae735fc1213f9adf234019191a7010f43c87716a3e5b4cdcffd94a9a91c9b1a +assets/content/guide/di/creating-injectable-service.md.html,1742567121296,7076b3579165e396a15244632687d1baeef62d9d442b8b7026959d2d8a054357 +assets/content/guide/di/lightweight-injection-tokens.md.html,1742567121306,fc457fdf2fec23a3fe8060267a6270f60c46bc03cbc788dadce83cf3d2c8cdb3 +assets/content/guide/di/overview.md.html,1742567121306,7661e67fde8f82116494070113c84bc18f24c4e4c04b4d618c81c35ebd9a49e6 +assets/content/guide/directives/directive-composition-api.md.html,1742567121308,b2b4371f4fa50b45d7c9bedeb8a96daf163e23d421b0d5501d25217eccc25f8d +chunk-B7NVROQ5.js.map,1742567121479,b1c35330b25a874fb1d3ff10efd6391f7716bbdb07e2816a0085ead489dba43c +assets/content/guide/directives/structural-directives.md.html,1742567121310,1707cd7d63f878053584142f412a865efdb62e48a0a44057004b9ccb8e51455d +assets/content/guide/components/lifecycle.md.html,1742567121303,c3adbdf9b86b035654d0bedc95022fe1e5d07a5a368922603d6011740509e0d6 +assets/content/guide/forms/typed-forms.md.html,1742567121316,20dd87dd79845c07654f49d6a76ed7afbce240e388fc8314a4dee2b9ff5821d3 +assets/content/guide/http/interceptors.md.html,1742567121297,a79fdb1b9f6c02c9775d8b351436031b258a8fc0d3c15451f7ce8d6159a804f1 +assets/content/guide/components/queries.md.html,1742567121304,467a0f5a4c754d01ae771b4da4d4069f3b0dfa149a9ea5fe5badabb802c0c7f6 +assets/content/guide/http/overview.md.html,1742567121309,fa295c4f24fd1aa8e2c5b11571fc2185a6a4d7d577fb958cf34b85d7d73eea97 +assets/content/guide/http/making-requests.md.html,1742567121309,e6ff547f9a44e74e59f6d4f5561af180391aba302489b7641a66ce9109454d1d +assets/content/guide/http/setup.md.html,1742567121309,7611a7b8c40a612f97bca188c249376f7fb07bca526cb5a66713783c8aba257a +assets/content/guide/http/security.md.html,1742567121309,d7e0839a0e7bc71c84d9024262a083316ef99d020043d67d0666c6472b3a261b +assets/content/guide/i18n/add-package.md.html,1742567121297,3a425e963950e302c9ca023385ff16b64fe5d0787f2e969a84f6ea6a046bd87c +assets/content/guide/i18n/deploy.md.html,1742567121317,1629dea8c6c0d7d2402efc71ba695e002b1777b245b11258760b8aaff1e3af87 +assets/content/guide/http/testing.md.html,1742567121310,fa9a9c0f3ddfcb094a7616392f549988a710a3237fc10c8930cb1e7bc9ace893 +assets/content/guide/i18n/example.md.html,1742567121319,fd63a163304b8b172f9e884921bbffdd3820a653366802693e35fc6af301096c +assets/content/guide/i18n/format-data-locale.md.html,1742567121320,28a3049a4c0b97782f7f4b871f7c0fd681e3c5a8e60c72f9cf45cbfa07bc5d5a +assets/content/guide/forms/dynamic-forms.md.html,1742567121298,58aa4c9336fe286b7a29313b0d61364d8e81b723865101a02211acd1f9fc8334 +assets/content/guide/i18n/import-global-variants.md.html,1742567121320,0854ff66a761451bb8ccc7c7d9697030fd2a5571cf7b44a0d3019984e139ec6a +assets/content/guide/i18n/locale-id.md.html,1742567121323,0addb62f0c31993ac16db47c35edc031cddc5f8198d25444cfe2052df9499797 +assets/content/guide/directives/attribute-directives.md.html,1742567121297,898e5c64d6d8a013de221ee230da3b6f463dbbc415bcfa99e75b4252f3b0cf1d +assets/content/guide/animations/transition-and-triggers.md.html,1742567121302,c669ad64f7be77ef42e6128f2f40e34f32ec2480e172839d9f5371b32f07830e +assets/content/guide/i18n/overview.md.html,1742567121324,6dc25fab6f274c75cab2d609aa25ba9e8d512d51eda3d8645c23a037005f2192 +assets/content/guide/ngmodules/overview.md.html,1742567121298,581bd4ab570db91f72601e9ca69e6ed9e10887bbaf8555c44c39a0e3f525515c +assets/content/guide/performance/overview.md.html,1742567121298,1cc1f9454623549153c3dc84a244a1dd37c81ca16b14f164871a41e6d97c03a4 +assets/content/guide/i18n/manage-marked-text.md.html,1742567121326,20488257ce60afa21b8571a0a697c737863b2046fa0a742195d9bec508e3e22e +assets/content/guide/routing/overview.md.html,1742567121302,e48f1a0df1a53155d3d9358277fed5f5b1a886ccc192ff2be25ca3ad5ad5bd61 +assets/content/guide/forms/overview.md.html,1742567121315,4739f04397f2a427a2f012f29f46e1a359be5afd614c77a3e6402fca79331f15 +assets/content/guide/routing/router-reference.md.html,1742567121329,a8d4bdab4b6f60e425fdfeff5664c4b7bdb8e019bdbc88f0d739bd9dd818d493 +assets/content/guide/routing/routing-with-urlmatcher.md.html,1742567121330,8c00677bf56d8ee7ba5d05a79e0f7cc16ad9423625f3ed40830d35f4f77c2fea +assets/content/guide/signals/linked-signal.md.html,1742567121333,026f4aaf58dcd8b187f98bd1846623a5dd735f79a8337a6af31c223c2cde6466 +assets/content/guide/signals/resource.md.html,1742567121334,ce5f6c148626cd4b647c22bf7561d75c50fd1ea49bf74243bea5170e2c62421c +assets/content/guide/templates/binding.md.html,1742567121338,8e5e3216d2b63e8dd98c060f1d12cb1ce28b1d83104dd4deb5e659fe474b2711 +assets/content/guide/templates/control-flow.md.html,1742567121333,a273a52596803c420b0f8293341bde6d21f36eedb75c32318c13ece41bed0294 +assets/content/guide/signals/overview.md.html,1742567121336,52b2f75562966473017ba505ae9557dedff830f70770fc61e39cbb9b74e77bcf +assets/content/guide/templates/event-listeners.md.html,1742567121336,a4f437ca575253dea3100e3791e6107f2bde1f6edf6396981870ea0a7526b356 +assets/content/guide/templates/defer.md.html,1742567121336,0566afd831de8c79c464786fc9ee97254c6836992259a31705439d8c326c8e4c +assets/content/guide/templates/ng-content.md.html,1742567121336,8a15bf8cb08310fa55ec617595f1f1d8fbf5dea2936be75b78f9d4e0cfcf186b +assets/content/guide/templates/expression-syntax.md.html,1742567121335,61659016b176db7df457ef16b41482f68734d11ddbf0bc49f520f36f60e520b0 +assets/content/guide/templates/ng-container.md.html,1742567121336,6f07e196f09bce40af0e1c08a55491627fc99d237fa921ea1485d4b0bdf46e91 +assets/content/guide/di/hierarchical-dependency-injection.md.html,1742567121308,b98a7960cf1aa5745aaed6f57866046c3a8f00866a1944868bf614a64333b2b3 +assets/content/guide/i18n/merge.md.html,1742567121328,81fd7ed02052fe8f3e5d0ce7391192dc8800714ea11580a78928b106240c9235 +assets/content/guide/routing/common-router-tasks.md.html,1742567121331,88f636395e55d35eb5d22acf02dd65c57adee743135f3c9eb4c761214d312de7 +assets/content/guide/templates/ng-template.md.html,1742567121337,477e676c866ec1278e8b43a0fd8653d1a37497af381b191c15dcb619c274f0b0 +assets/content/guide/templates/overview.md.html,1742567121336,d98978ae16dd9f39ff1216c89bc5e752c040dc6369ee24339a9c857e96b6a85e +assets/content/guide/i18n/prepare.md.html,1742567121329,b6a6529c1f02933767750305632c8cfc08947e8dcd61ad1e34336368e6f52ec7 +assets/content/guide/templates/two-way-binding.md.html,1742567121336,33c9974bb8c0903db7b1fbc418acbc009a28b725532558482eeca72f85485e27 +assets/content/guide/templates/pipes.md.html,1742567121337,d90a827c307d4fedbb5b0dda2cd592227369fc7ce3e39dff72c7b1160af07f02 +assets/content/guide/templates/whitespace.md.html,1742567121337,8811d47263e23efe4357da9c9d0d0e9f47e8d484911d9f721e66c3030a27741c +assets/content/guide/templates/variables.md.html,1742567121337,a4806578ff2a0a1d27c8fca3c5d5ce18d493c4d0b3e6ce5d07ff6efc28f0196e +assets/content/guide/routing/router-tutorial.md.html,1742567121332,1b4f5707ccc12afbc471ea4ee3523cf390d5ef940504b11c9b36f2c827a162f2 +assets/content/guide/testing/component-harnesses-overview.md.html,1742567121342,356753f08972db29b562bec5e0c9f1945d4bcefc4f04120b5ba3122544e74fec +assets/content/guide/testing/code-coverage.md.html,1742567121333,454c2a93ceacb086ca967309a2658a2499d54893a9e53c963d166125f60e2482 +assets/content/guide/testing/component-harnesses-testing-environments.md.html,1742567121340,5db0e33c91ae81889b16c82ea01d07c1290536507f52fb9dfbd0072455b972ce +assets/content/guide/testing/debugging.md.html,1742567121339,1d66280312684de0510adb8dc3d8a94fbc9a9620e12af240b5bef3771b121c19 +assets/content/guide/testing/overview.md.html,1742567121339,96feb1bb2574561f4a645e13ce6c2288b51c492d45d56d9493853717eca5afe6 +assets/content/guide/testing/creating-component-harnesses.md.html,1742567121339,c3ff684edac076cdd94ade73447caf99a9793526b2d749c587fa55f0ef847768 +assets/content/guide/testing/using-component-harnesses.md.html,1742567121341,ba9f575812cac0de4e82626ae1f71ee4baaed5b1bbf95a10aa75c9ebd17521d6 +assets/content/introduction/installation.md.html,1742567120865,9a008a4b38f92eb23b81d53f2d48c9c5df7ac04bfe0fe2300a2125cd1a1db371 +assets/content/guide/forms/form-validation.md.html,1742567121315,d4ea88e288a7a819c29b9b31f3c5c386e4972f6271435f849011e28fb5886f95 +assets/content/guide/testing/attribute-directives.md.html,1742567121338,9b63fbefee1f6559354ec97c9d93febb90edaefd305eb5d0d5722450d6c0feaa +assets/content/guide/testing/pipes.md.html,1742567121341,7ea955bbf91be00fb4ae4817890da6a6868087685bf9d459aa4e45e77fa89504 +assets/content/guide/forms/reactive-forms.md.html,1742567121320,359e767b174ec3ab4ea60204cb07a2c6dbf89972caf75dd27d38349a64a0033f +assets/content/introduction/what-is-angular.md.html,1742567120881,8ee95b77fc901dc0a943ec6cd172410dca76726fd72dd7df8ada73fcb4a7d544 +assets/content/introduction/essentials/next-steps.md.html,1742567121366,cecccab35ab3cce77fb66ac4eb378446444386c3ed41a14c8825e94ea609babc +assets/content/guide/i18n/translation-files.md.html,1742567121328,67663efb9594f3cf0632527f1a2376602ad2bad3a687ca659808b3a2b8435556 +assets/content/introduction/essentials/overview.md.html,1742567121366,ad54751b89245eb53714b08ebf98cb4a563e7d9c99acd1ec1760425ad7b99ccb +assets/content/introduction/essentials/dependency-injection.md.html,1742567121366,f9787978c8415109a175b5fcab298068f0d1ed86d713f9580424b93479758eea +assets/content/introduction/essentials/signals.md.html,1742567121367,9ed1411b45f2533a3e793b267ccd0d63cab31b622603f466c8e4413a67dbf890 +assets/content/reference/cli.md.html,1742567120864,58660292eb299a9b3c21ba4cbc97a6fa7fd8fcb001624bb38f70adb563110e0d +assets/content/reference/press-kit.md.html,1742567120880,8081d9e37ddc395bdb34dd03cba761c5b4b93df49850f0e3a1a588e08c657108 +assets/content/reference/license.md.html,1742567120878,f5dcc6f47c0f2f4d8da24f64041a36316b640808c0c3f5f2783de7cba9424d33 +assets/content/introduction/essentials/templates.md.html,1742567121368,168bf345b00668bee59f3fed9e25f5fa9e498ea63040ebb251f7904e9fc5a9c8 +assets/content/reference/releases.md.html,1742567120879,6e8496abb869ffb52b2485c7039704815a3642dd802243e0a59d751e99668e00 +assets/content/reference/versions.md.html,1742567120880,037e1c3377fee4aa6b6d4245cbb9dad41723a8cbf5324e4c673d53fb1e5a03f2 +assets/content/reference/concepts/overview.md.html,1742567121332,f89af52788cf2b46241b8b3b7eaef88ad09c3b3ec7e8adaaf1d551d560384af5 +assets/content/reference/roadmap.md.html,1742567120880,26d583f553beaf531a53578727d65a557100f8b7df2e920069f697b6d0611100 +assets/content/introduction/essentials/components.md.html,1742567121362,8224ba98c66e4072f829ac76388dbc9bcb315c52cbc609a85eaecc90336b5e9f +assets/content/reference/configs/npm-packages.md.html,1742567121337,399149fc707cb9a4be5adf851d65c02eceb6239d6ed3f805cbfb7ef3f51cac95 +assets/content/reference/configs/angular-compiler-options.md.html,1742567121334,dc3291e4c5de60873036684c7817a557bc108f993ef3b594f9df0f0e62d63fea +assets/content/reference/configs/file-structure.md.html,1742567121337,646849715b4efacc37a4811be47cb2b006a93eea5913529f0be6895894476662 +assets/content/reference/errors/NG0100.md.html,1742567121342,c7489c5bfc6523872c709cd26202fa2d568495fe565777fc9a3384a9d3676d25 +assets/content/reference/errors/NG01203.md.html,1742567121343,5d4ab8ab0529da236de727c18d2a0c5538bfb63c34a7d28f7144a5c9f5b1f5f2 +assets/content/reference/errors/NG0200.md.html,1742567121343,40ee2c58d0ec4b21f72aaa7bf1e4ea717d6eea41d689b73e2d0f3ff764e45940 +assets/content/reference/errors/NG01101.md.html,1742567121333,ed34c1feaa0bee7ec699edc493158dbb2b93099ce14cb8ff1b9d2da13abf253d +assets/content/reference/errors/NG0201.md.html,1742567121344,000cbf178253fd4a0ade2310a336c0b0b4ce4be894876d15f5ad359b46518975 +assets/content/reference/errors/NG0203.md.html,1742567121345,630969943609fdcdd7613cc9401f30a59df9e2c74bcc70ddcec3a4fd4a537922 +assets/content/reference/errors/NG0209.md.html,1742567121345,5465c0ad156dcb7182b34f18b3cd6b191e3101b8643e85e508e6c8b1c02def7e +assets/content/reference/errors/NG02800.md.html,1742567121346,2c718a1456119c4ab98d8b8d6fa922739851a30386b2e7a6ac5045cf0222edd7 +assets/content/reference/errors/NG02200.md.html,1742567121345,f877b8b2d20c574493b6bfd8fd3fc77215c8d3ef1ceec68cba6349efacf2674e +assets/content/reference/errors/NG0300.md.html,1742567121346,265ada081ff83f2a6dc4d7d2acf261170a3ff8d58ce98e87567661daca46fb31 +assets/content/reference/errors/NG0301.md.html,1742567121346,cc3466af493fe2384548e8b3cc4d59e4b02793ad36261f10ff026a6776d1bd8e +assets/content/reference/errors/NG0302.md.html,1742567121346,89608b118273e4459579c48ba7b28907658402e5567585fe366895e6d8f12eb5 +assets/content/reference/errors/NG0403.md.html,1742567121346,c3503768c35522b15308cbbdec1cdb1c2aa5c339db43220b4231fbbebb3040eb +assets/content/reference/errors/NG0500.md.html,1742567121347,89435113f519862fe44470b23a592826357dd73fbc03d1c9e0fec2835a502671 +assets/content/reference/errors/NG05000.md.html,1742567121347,0c36f7e098270e9193b5a34d926c08ef237330f8d5f5eed69a4fb53d930f37ba +assets/content/reference/errors/NG0501.md.html,1742567121348,3adcb55b3ce0de9b648e12e8fb20ef5de96052327556109cd9826570a64896d0 +assets/content/reference/configs/workspace-config.md.html,1742567121338,f40d51a98fd8789f50b4f5e72ef45583ce84a36739e68b287da98c34d97eb723 +assets/content/reference/errors/NG0502.md.html,1742567121348,502492e48e0c026b237515df4fec4c64ac4668474bf740ef1e1b7ebcc35d57d0 +assets/content/reference/errors/NG0503.md.html,1742567121352,3dc62dd239ef7a88eef803f418a85bf48f081ebfbc7a779e8b0256ed10a37a2c +assets/content/reference/errors/NG0505.md.html,1742567121349,99a53fe33503cc0d57eb565037b6eb13f46b34a4454dd79ec9a838f71b152e4b +assets/content/reference/errors/NG0504.md.html,1742567121350,b214f6f0a1ccb028af0278b848c8ae080508e4bf9afb6ad0fada093bc017e302 +assets/content/guide/testing/utility-apis.md.html,1742567121344,231602a7d4237cecf4ccc7ee606ebc9321b02a5b944576f6273b20adf1b073f2 +assets/content/guide/testing/components-basics.md.html,1742567121340,8465cac0b30fa20adb4b3bd277bdccc5e36cf02dbebe391e987b5a801205419f +assets/content/reference/errors/NG0507.md.html,1742567121350,55c0e5eef47957f4e4ebd8ee7622c48d2a844ed8dac43e70e24bb5651197a806 +assets/content/reference/errors/NG0506.md.html,1742567121350,85431638736caab678fa7d820db147dd243db928550bfec2ed49fc9f4f0822f4 +assets/content/reference/errors/NG05104.md.html,1742567121350,a3d313aba07c8cea5609589fd34d333bf8fb2ffc5854da542d10fe65ccc26912 +assets/content/reference/errors/NG0750.md.html,1742567121351,467fdb6fd223d5f6db20e04cc08bff696845f73e599d621de5f611148d0ef4ee +assets/content/reference/errors/NG0912.md.html,1742567121351,e169237df72adf0a8912c0e19496c405b8f2f0b455803e0967492fdf01e41bc5 +assets/content/reference/errors/NG0602.md.html,1742567121350,d6e557b07bb53a3cf463fde39a0e0909a40910ec2a3c6be221106c4b3563b3eb +assets/content/reference/errors/NG0913.md.html,1742567121352,f3aedeb60340f52b894934f9d5ac88a7289b00ea452b7d13b9aa0116aa7bc711 +assets/content/reference/errors/NG0950.md.html,1742567121352,dcf4ce7e2d1a37e01d766670454dc5d7de3746904200e9df20ad434ae86fe082 +assets/content/reference/errors/NG0951.md.html,1742567121353,3788ecffff9f11c3e4fcbe6e17a1fb655c9cba1ab97b3350ac5893045cdd2e22 +assets/content/reference/errors/NG0955.md.html,1742567121356,1c1459213071db8ed64e32ea018f1ce79ca7deafa81387130c5c63d9c8ebe244 +assets/content/reference/errors/NG0910.md.html,1742567121351,ab6e0508761bd74c97ac0c9ab23b39f3e3e3a1e4e9f2f50e00b22ea6c79617e3 +assets/content/reference/errors/NG2003.md.html,1742567121356,c90683fd985afab48c5cb268527bcb2d5fe3ef26520247217079b6a1da210958 +assets/content/reference/errors/NG2009.md.html,1742567121356,9e2acd8bc79c3e2f8d8b49e2e0a74e8ea9cd196bd99822c58c409b719e51b4b1 +assets/content/reference/errors/NG1001.md.html,1742567121356,b23af0143c075ca0eab80ce33095112ade272af6b8a491f9217ea6126d815025 +assets/content/reference/errors/NG0956.md.html,1742567121356,0a6995d7418b556d4568dbc8fa9bc577f460d87edfb14c0cedcd0523f9d89e56 +assets/content/reference/errors/NG3003.md.html,1742567121358,2728ce2fc42255ddc51cfeeafb74cc1c97b9bb79b2c8c65dce7d1a71e2906df7 +assets/content/reference/errors/NG6100.md.html,1742567121358,55ad65a3e6750bb2f174c1f3a21979da1fcd59c6ab765a3d3fcb72a27caf6e2b +assets/content/reference/errors/NG8001.md.html,1742567121360,8b7c9d7f8a8580f6368f9c73b61e874209b1d7eaa7aa4f6c1a9b9e65b1d4466d +assets/content/reference/errors/NG8002.md.html,1742567121358,2b8452d77c9ad52994d9822ec064d77e9bdb6492c6e0dd26ff7f499789b7f0d2 +assets/content/reference/errors/NG8003.md.html,1742567121358,4ffe8740e6abf4777658a54df2e9ada05929e84c7745eb1bf14d9ccf436b42ac +assets/content/reference/errors/routes.json,1742567121358,61d5f92fc91c3b967e51573d823ea2e17d814d68b3d170b2f4afb4a2a5dab44d +assets/content/reference/errors/overview.md.html,1742567121359,e3e06b797b5ded78d319713b2d85587cbea1821ff491de4d25581ced16e2321a +assets/content/reference/extended-diagnostics/NG8101.md.html,1742567121360,fd069d1c3d96770980b5ca0cc360193161accf28e4be605914ee3f34128cc548 +assets/content/reference/extended-diagnostics/NG8102.md.html,1742567121361,35ce9195233244d3950b03c7640f1319d371187026ebcb9480cf65cc07c4da41 +assets/content/reference/extended-diagnostics/NG8103.md.html,1742567121362,62f0a86d4df532b88cc0f1ecd163f0495ab16562bdc990d1ec8d50af4035b278 +assets/content/reference/extended-diagnostics/NG8104.md.html,1742567121363,0fda57236e8bc1b4fc3852fb5422ca6e0a1daa8d15bce980855dae35bce06c3e +assets/content/reference/extended-diagnostics/NG8106.md.html,1742567121363,f95f14c93c11d21eb5e1a0ef852ba9dd2f2e0763287719ba6bc461d6785a39ac +assets/content/reference/extended-diagnostics/NG8105.md.html,1742567121364,58b08850900721536c81eb88ac7e5b2612604e02e480b3fa4477c60f0472ae41 +assets/content/reference/extended-diagnostics/NG8108.md.html,1742567121364,84e39ae7f84621e272679adf2e88cb80ebb0a2723ec3e2b25b567c9fc20987ce +assets/content/reference/extended-diagnostics/NG8107.md.html,1742567121364,3d5c51c03296efd20cfd9c4405e66b1897bb8bff2c6b616b373e66c6b015f492 +assets/content/reference/extended-diagnostics/NG8109.md.html,1742567121364,aa54efeedfecd3824b141df16ffc55799fc22dd0b28be7c5e43222add0720091 +assets/content/reference/extended-diagnostics/NG8113.md.html,1742567121366,be6354033c161be35972c1724ff4fcd58078697f4b559c7c69bcdefa1af07285 +assets/content/reference/extended-diagnostics/NG8111.md.html,1742567121365,24e251df7f7f8b610b85d8b28f6c3a945cc6070b350fac6da270b5d227c5ae12 +assets/content/reference/extended-diagnostics/NG8114.md.html,1742567121365,7912f2f7c8a04c1e38764e33600ad490b6bc0ca32493ade1ea7d935b0cefac4b +assets/content/reference/extended-diagnostics/overview.md.html,1742567121366,66410bf3de857c791e05079473a95bfb51fa550a7a435c7f97386b4f70620f25 +assets/content/reference/extended-diagnostics/routes.json,1742567121365,f08939fa8e7ff8781808859303b41c081f617fa7f050b27d9f45d9c76183e675 +assets/content/reference/migrations/cleanup-unused-imports.md.html,1742567121360,397147a154a181d9ac1fe181944fa5e25a7247d5b85f852999f4e869c2d980e5 +assets/content/reference/migrations/control-flow.md.html,1742567121367,118e05d5032a98f57026b15aa2c4a4ab6f1fa1d55d3e4b6222452ffb82c71198 +assets/content/reference/migrations/inject-function.md.html,1742567121368,5fab72bbd8df444bd01e484844ab60c7c97a90a1551aa7e4f35db9cc36a2a217 +assets/content/reference/migrations/overview.md.html,1742567121368,7845fda0958ade6ef72bca6b45f0d4228e56900c231ed94df06b9d9d221d5a8b +assets/content/reference/migrations/outputs.md.html,1742567121368,c56b2c16ef059d0eaee5f703591c61e8a64792154533a0d6ae112be14ad77c47 +assets/content/reference/migrations/route-lazy-loading.md.html,1742567121369,deb8ba9864292d349b2653cc440fcdd7fc15850b6fa8f23ca7b660006f2cd0ba +assets/content/reference/migrations/self-closing-tags.md.html,1742567121370,afcc124e1a9d348a82a3edac8e46849d69e09bb6e17fa224927c5b65f938a95e +assets/content/reference/migrations/signal-inputs.md.html,1742567121370,a78c30e77d07abdf4395c329e38cadc8d2728f9aa82c775d2968500848b91bc3 +assets/content/reference/migrations/signal-queries.md.html,1742567121370,3a07d2d07e914abba9556cbb1b7b153183755659f99d7c90fbfd38709d2dfc0f +assets/content/reference/migrations/standalone.md.html,1742567121371,75920136de7a43eac21aaba619e355a06ffab04b90ebe15eb80ef6a8364814c6 +assets/content/tools/language-service.md.html,1742567120881,3edc7e123f29bf274b463a1fba1b93731f809b2aab299531b16d67620b4af658 +assets/content/tools/devtools.md.html,1742567120865,1d0827f951d92e54f671dbfbb8f74752c5e9b3aee19ac1e6f514b27ae8c00ace +assets/content/tools/cli/aot-compiler.md.html,1742567121362,a9cb8bb40ca8c6a6e7e91b39f74dc81dea59e740a23fb2da91167895b7d0caa1 +assets/content/tools/cli/aot-metadata-errors.md.html,1742567121373,f5ef2089c776125de7f258c0f3d946291f34da9261f4145a82818e4fac34fe33 +assets/content/tools/cli/deployment.md.html,1742567121373,cbd0b05bfe663d99b096c8af6b1e17e97e169e41c305a39d66a15bd2cfebb780 +assets/content/tools/cli/end-to-end.md.html,1742567121373,6f547d063954935fcfff989bf24109b74ac24bc8c327ca809471038ae4463f22 +assets/content/tools/cli/build.md.html,1742567121372,488925852b6ea3713f332d359b2fb9c09d2c4ca4b228bbaa690d561dae2da41c +assets/content/tools/cli/overview.md.html,1742567121373,70aef6cee4820b6cae416730db2d1908ec37b51b61ee20ec4fbad397a9c01462 +assets/content/tools/cli/environments.md.html,1742567121373,701989d56c342a3cf103b9eff87a3e3288c4acd53b0cab5d0aac3435af9e2b09 +assets/content/tools/cli/schematics-authoring.md.html,1742567121375,b744cff8a3a46e5dc2f8fa122a9d87440416d20f225121d511e5007d3eb09dce +assets/content/tools/cli/schematics.md.html,1742567121374,cbb7fe7c6608d7251e1472a972af47c1ee2ff6d916735255c702330aae1502da +assets/content/tools/cli/serve.md.html,1742567121374,7357b167f8a4d40f9bf3611217d1e275701e2dd437add1c6cd0534bfbb8a6e04 +assets/content/tools/cli/setup-local.md.html,1742567121374,b5bdf6b18e343c46c3ed8269624ef2d49924a76299180f10fc2bdc1526c86340 +assets/content/tools/cli/template-typecheck.md.html,1742567121375,e6b3ef1251f07f7d507b8f3298e0c729e2252c9972274f700b8d3c84000be41c +assets/content/tools/libraries/overview.md.html,1742567121375,c7fb69a7740c0da27b80a8d87f2e81973f4a3bb04af2a1435bf9a89e303f8da7 +assets/content/tools/libraries/angular-package-format.md.html,1742567121362,8f78a14959f3789b7eca76c5543d5f375e2aea93cf1388b3b028779c38b7d914 +assets/content/tools/libraries/creating-libraries.md.html,1742567121376,5bdbd62cf43eb1201836f4aa42e1d9325d73f51dfabbc08e7b0e78db48a222d4 +assets/content/tutorials/deferrable-views/intro/README.md.html,1742567121376,858c48a2572edecf8ccf594cce804249b8e197148f38b42775867a054fb31d10 +assets/content/tools/libraries/using-libraries.md.html,1742567121375,17e4c69de63525d0e69de8c4514d69e350408cfad605399823c00cf1cca4d90a +assets/content/tutorials/home.md.html,1742567120867,6af183892ab33c8ce38b6e3dfdc964aaddc2d7bd77a6feb6773111a138a0b4bb +assets/content/tutorials/deferrable-views/steps/1-what-are-deferrable-views/README.md.html,1742567121398,b25f2ee23172cd034e39f5d02a8c1a8cb821e67f7f78bbc000c87ce61c94e29d +assets/content/tutorials/deferrable-views/steps/2-loading-error-placeholder/README.md.html,1742567121397,8dfb7fe9e0b1fc801a96d173095adc441e996ddb3ad9b09b8711cd3a0024c0b5 +assets/content/tools/cli/build-system-migration.md.html,1742567121373,d4def8e551d61d07f4bb394c94a636f941c1e2d2df9f705fdd5824e835f0284d +assets/content/tutorials/first-app/intro/README.md.html,1742567121376,7d1fe5f571241a27aa91aebcd2ce476bff026d342e93350b3f0a0f2ddbd67e11 +assets/content/tutorials/deferrable-views/steps/3-defer-triggers/README.md.html,1742567121384,a5b69e526a8634a733a913cc1ac2ede400848cafb9071c948499d855becfa779 +assets/content/guide/forms/template-driven-forms.md.html,1742567121323,1dbaf4d953ea7969ef5fa72990dff28fd200b2c1ea9547ca1aad028cacb9cdc5 +assets/content/tools/cli/cli-builder.md.html,1742567121374,4070f0f8e59b7a25da57c13f10f955d67228f228c0c8b123b92403f19f2661c5 +assets/content/tutorials/first-app/steps/01-hello-world/README.md.html,1742567121384,876050108a872d6d483debde9f3e6eab064e7df7c9764e8a1d7f59fa05749002 +assets/content/tutorials/first-app/steps/03-HousingLocation/README.md.html,1742567121396,4fe834713d1517ca5d9ebd89cfca8c1ab900cf5bcdb021955be84ee6f020a60c +assets/content/tutorials/first-app/steps/04-interfaces/README.md.html,1742567121391,6c18eab75451946541f785fdd7780b8d3ce31174a93224f7c30c04d1c4503722 +assets/content/tutorials/first-app/steps/05-inputs/README.md.html,1742567121397,eb6e0a5369c0a532b8a89a719476f304f9300c53145b5fe9ae24fc413f44fad2 +assets/content/tutorials/first-app/steps/02-HomeComponent/README.md.html,1742567121391,1dcb416260095bd2af6ef1a0fce86ad0b032e1ad4febae2916add5c5ad16e06e +assets/content/tutorials/first-app/steps/07-dynamic-template-values/README.md.html,1742567121392,91383b0a323cf88d6ca487d48ef319334d1b6a11a73f92e3e48aa32d8770c99e +assets/content/tutorials/first-app/steps/06-property-binding/README.md.html,1742567121392,19ed864fe040a7876b3efe3657999b86917884a2ae6cbeaab7c04d9a1f9a8cb0 +chunk-AZHCMFIV.js.map,1742567121414,c08a4eb0b98abafd3bb98801e4cd5c7f939bf4773fd899e1827d579f5d366c61 +assets/content/tutorials/first-app/steps/10-routing/README.md.html,1742567121394,c4f07cdd26deed3b726d094de27eb1a9d3275226a072f2cf967f9b18e1e4a25a +assets/content/tutorials/first-app/steps/13-search/README.md.html,1742567121397,1ee76d2f1a52501ac78b6e6eefce580904837c0e4bb2d5f25090d5613a2fd539 +assets/content/tutorials/learn-angular/steps/1-components-in-angular/README.md.html,1742567121383,93eeb8f9c664d777825588e51c2c226bf05def9f10fb694b6198b762cf8fbfbf +assets/content/tutorials/learn-angular/intro/README.md.html,1742567121377,a3561cc830ae0909b850aeff91d4b6d3d064ff7509504355b87a6597e1c000b1 +assets/content/tools/cli/schematics-for-libraries.md.html,1742567121377,425a80a1c94b5a7d4d9c14b705d0095db5d5aa992c88a097b140c624729d9e3c +assets/content/tutorials/first-app/steps/08-ngFor/README.md.html,1742567121391,98151f6844f0605949f8796bd600bc188604a5057bc6a067b9b1791df2ac29b0 +assets/content/tutorials/first-app/steps/09-services/README.md.html,1742567121395,d9e934f8735808588e0d481356b2b85447cc75fae8a61ce5510a51976835678a +assets/content/tutorials/learn-angular/steps/10-deferrable-views/README.md.html,1742567121386,c53a46cb0313bbeb56014798ef9035788c129d3ddd115a1693813da8863a0e80 +assets/content/tutorials/learn-angular/steps/13-define-a-route/README.md.html,1742567121386,8815433fc1f5cb2adc2cf2f523dc9575743300589d934368eef512a404f4d189 +assets/content/tutorials/learn-angular/steps/11-optimizing-images/README.md.html,1742567121384,81e42e3890ed4f0ad6042f1548118a82d25935249ab06b984f937b0b6f09eb16 +assets/content/tutorials/learn-angular/steps/12-enable-routing/README.md.html,1742567121384,458752ad08134623312db15944b433c3b30432aee84014edadf8c5e475ee21c5 +assets/content/tutorials/first-app/steps/11-details-page/README.md.html,1742567121397,b1d0373e559a03e6c074b2e1c64f12c356664773acba07ad84d41d223f511389 +assets/content/tutorials/learn-angular/steps/14-routerLink/README.md.html,1742567121385,816e12d6b61429e6d1d81353462eedf5d3bfb8e2011ca6a96b3c53f00d476047 +assets/content/tutorials/learn-angular/steps/16-form-control-values/README.md.html,1742567121385,439413d6e32ee5541eb109d00ebf5df3d57cadf51ac8191cdc77db89bf7e78d1 +assets/content/tutorials/learn-angular/steps/15-forms/README.md.html,1742567121384,f238eb72ff102edb8f6fb3933f0044a7413cc9d967782e3e4faf0b5d0d3723a2 +assets/content/tutorials/learn-angular/steps/17-reactive-forms/README.md.html,1742567121386,5cb6aadb71c8d4fc2c2e8fa3a70e236a1b7314f20f52748972b8ff0bc6104412 +assets/content/tutorials/learn-angular/steps/18-forms-validation/README.md.html,1742567121386,383132b3d2f613dc08b9e02335a5970c1aa1fc97955e17993875585669aa9738 +assets/content/tutorials/learn-angular/steps/19-creating-an-injectable-service/README.md.html,1742567121388,a452df206e467a8ff0136e7be7b77c1292250bf373da127e3e3a0036ce003c4d +assets/content/tutorials/learn-angular/steps/2-updating-the-component-class/README.md.html,1742567121388,ac3aba428625c36cfe10628331a1538d4ce86441bc47c802b098db462abeb28e +assets/content/tutorials/learn-angular/steps/20-inject-based-di/README.md.html,1742567121386,83ae34fc9703db4dbc6dff19650ff5e5d2d278994b85aee0fcf8946f3e7e41a3 +assets/content/tutorials/learn-angular/steps/21-constructor-based-di/README.md.html,1742567121389,a9cb631b686f94c38800a6191b2a26ecb40f80bc95079b79c5c7d15adc2d25aa +assets/content/tutorials/learn-angular/steps/22-pipes/README.md.html,1742567121388,2e9cc63af7fc5f1cf5960d0038922c024c489456159869250a24ade912875071 +assets/content/tutorials/learn-angular/steps/25-next-steps/README.md.html,1742567121388,2d26349e4cb48620cc44c2dd6e33f578c57a3bc37e148f08ae8f5c128fee39a4 +assets/content/tutorials/learn-angular/steps/23-pipes-format-data/README.md.html,1742567121388,8e27c5238e7ba5195807d7a1739b9e579f0f1186f8849ba062455545841cf5b6 +assets/content/tutorials/learn-angular/steps/24-create-a-pipe/README.md.html,1742567121388,b329cdb845b34ee7ed8c551880eb925f8f0a2f15e1bbb77007432a89ef320136 +assets/content/tutorials/first-app/steps/14-http/README.md.html,1742567121415,6a23dda4743850985a9c6f8123332052c3b14869bffba05c964f8a977865f26b +assets/content/tutorials/learn-angular/steps/4-control-flow-if/README.md.html,1742567121389,1f9d0eb5ae86edf74c78fe2f020b7d76edc8c1f991d6d5f9e302b3ef814bdae4 +assets/content/tutorials/learn-angular/steps/3-composing-components/README.md.html,1742567121389,531f0dcd23adc7b2c2fe08bc364cd25e3aa2d538612c94d7043165e88baca61c +assets/content/tutorials/learn-angular/steps/5-control-flow-for/README.md.html,1742567121390,fa4dbf4895a2c16355770aece887e7bc700b07e4c68b95a3a63e608a63e04b63 +assets/content/tutorials/learn-angular/steps/6-property-binding/README.md.html,1742567121390,cc307506bc532cac145d103ee2063eac8e859fbac85e68090f96963a1ac2960b +assets/content/tutorials/learn-angular/steps/9-output/README.md.html,1742567121390,6ce3c685031abfff48ffc0aec4f025782c764e091039e450648ef44fb5fac1ed +assets/content/tutorials/learn-angular/steps/8-input/README.md.html,1742567121390,8428ef3b2d663c6a3bc787eef9de9dd98101a8f0d18055182957770e1d2e3968 +assets/icons/BUILD.bazel,1742567120838,bc4aaa05bba4bc837f2650d5dda73720510c5cd43f2f0e17b97297751fabcac6 +assets/content/tutorials/learn-angular/steps/7-event-handling/README.md.html,1742567121390,4870cac36ee903dfaec008916ff62f8356a1091f8401e5ac881ce266862ecdfc +assets/icons/android-chrome-192x192.png,1742567120814,b5d8f2b84db042cd10b76c6d43a8da13a530e843ef3811e9efe979b23e689190 +assets/content/tutorials/first-app/steps/12-forms/README.md.html,1742567121398,9e896ece9a39e2d855febcc800f30bc467b19ef307a65026e4da031c14ce55a2 +assets/icons/browserconfig.xml,1742567120819,2ec4f859dad5ab038feb1ceba9908d7d5161fcb597ec98df1dd46d7cd448e606 +assets/icons/apple-touch-icon.png,1742567120819,4e4373a0c09d0f3ec3444cc02f93b15488c06d5cb04339aea86006da9b8129d6 +assets/icons/favicon-16x16.png,1742567120820,648e71939df364b27f011708698915007919fc4c67e85630f58b5c48fc252cab +assets/icons/favicon-32x32.png,1742567120819,e5eff8d1e180b56fbf055fb2bcbd83ee4e846c07a9de65d85c35e93399cdb680 +assets/icons/favicon-48x48.png,1742567120820,3325dc060b7bbc150bf7fd8f8e6960af2d1ce50586c25bc5c997230cde0ae3b9 +assets/icons/mstile-144x144.png,1742567120820,6012ea178332029e4b895e1b7d1ba6f5b0e79f2bad8d10676dd6d8269f54eba5 +assets/icons/mstile-150x150.png,1742567120820,a455c9cf00a5358995e07aced616ff6ff105eeef770e7e49488e6ff90f20a64f +assets/icons/favicon.ico,1742567120821,8f1fc0f94ae643bb8757c3cb49f69bf6cb2228f632cb77c7e47d8ee3995d88a7 +assets/icons/android-chrome-512x512.png,1742567120819,4d06dcaaeacddfd832de6d025a67ca9cb6e8f213eb3d92baa56a35c9afa58e4d +assets/icons/mstile-310x150.png,1742567120824,90b7deb003898dcaf3ee14c41cb79d6e34506550237c4efd09c04947aec0bbc9 +assets/icons/mstile-310x310.png,1742567120822,af2c63c430c9eec23578c86bed46e283cd7bdf55d41b8274cfc95300ddec73ae +assets/icons/mstile-70x70.png,1742567120821,7ab0502cf1028fb7915de4bb4fdc8c9a3ff132458d27821b16b475f21a436216 +assets/icons/safari-pinned-tab.svg,1742567120823,f617affbed1b6196d524bb45edf02b65275c3b8f9ada7d2f52c539c4dcd1e896 +assets/icons/site.webmanifest,1742567120823,08777b0f4ca4ff32ae3beda737fe9aaaf61b9ef8c1b0c64e989d03bea89eb251 +assets/images/BUILD.bazel,1742567120814,e5db6f748ce8aba0a4cadfad4fbd900f409801e11b7ec70ea2cb223f6d48ca2e +assets/images/ang_illustrations-04.svg,1742567120823,67af7fced35ab8be079c082c6c0ae0d49f0fdecbbdab9bb70bfcddaebb95037b +assets/images/dependency_injection.svg,1742567120823,d2f3a37a08a30d68814cc3ce4b662ae455d6e63b4d3ed5853d1fdbd516e588b8 +assets/images/directives.svg,1742567120824,21e87af1d77e3427e173de13cf5bd88fa1938b63a7908f03c4363ed76b4bdc13 +assets/images/components.svg,1742567120824,a89fc9dc41673f1b2fef5a80cbbc1b876d7d40aad7347cfccc383598874baa35 +assets/images/globe.svg,1742567120834,1e2047f9e02f317b95a9fbc5500f06e74b376bafa303c666fcec9d5f563877b3 +assets/images/learn-angular-local.svg,1742567120834,28b9c65f3aa83d558e3d32cfad5816bdb64d32a5c61965bbda36aa73f4ac6463 +assets/images/learn-angular-browser.svg,1742567120834,538415ebc2954dcf33ba17866697f4083983ea601a1671985db8c21b1534597b +assets/images/roadmap.svg,1742567120835,1a087737ed0096be9cd770f265b2870212ed83fc7328acccedbe45a70ac09f89 +assets/images/signals.svg,1742567120836,ca337aa8c82ba518462560121a95a366de0068e720029d8ef5f5a0b18b6eeccd +assets/images/routing.svg,1742567120836,f3761a55eda744ee583ad95c3c8c25d4325da77065395b4d9fea790fe018e56d +assets/images/templates.svg,1742567120836,f25b1a3056f7b04e077fadf509a12a0cf1f3a0c9ff1ff77e4abdf7af77f248d0 +assets/images/what_is_angular.svg,1742567120838,0cd6310f4b8cf767bc52c0552e1e9efea6bf4aec6ef0df4a232a851f83c5ba0d +assets/images/overview.svg,1742567120835,9777d638b941e42b466909c99e6a6c73b378c4cfdcd7b3d9fa8ea44e8f407df6 +assets/images/guide/animations/animation_auto.gif,1742567120982,bf8f9a2be3a45c02a4d319afb77bc8a36f43fc7696904835cc4e62d21652512f +assets/images/guide/animations/animation_enter_leave.gif,1742567121024,28ef61e94e82dea7a2fd9b93d18ae85b1a30acf9425b565117786112232149fe +assets/images/guide/animations/keyframes-500.png,1742567121028,b3c94884392ffaceb10e899b33d5fa7730b19d163467e0d236ff7588609ccb24 +assets/images/guide/animations/keyframes-offset-500.png,1742567121028,a85d75ba7c5defed16debafa221a3d943bb848771f83382343d845381abff0cc +assets/images/guide/animations/animation_basic_click.gif,1742567121023,456ad6459652c01eb8de99456d51230097023b2a0b4be79ad6807f627b163f33 +assets/images/guide/attribute-directives/first-highlight.png,1742567120981,d94e6e423177c0d8b8998e898cfbfd3316ca26230891ba818b2676d989f9086a +assets/images/guide/animations/keyframes-pulsation.png,1742567121029,7e75b9b93281bf9c827fb46e73a962177f39edd9f015bfde227ad11c5dd6ebfd +assets/images/guide/animations/ng_animate_transitions_inactive_active_void.png,1742567121029,51ba5c1f4c35c69a30d57e1e508b9541851ed297544ac3555aeeacb0937fd1c6 +assets/images/guide/animations/ng_animate_transitions_inactive_active.png,1742567121029,163767d5fd31377f6c00df25d0292304569fecdb6f766108bab0285da61bd776 +assets/images/guide/animations/ng_animate_transitions_inactive_active_wildcards.png,1742567121031,21b4add722fdadfd30713c179d3c6f1010677b67c7389af1e4b7e00976ca7d81 +assets/images/guide/animations/ng_animate_transitions_void_in.png,1742567121030,2b91595e39a588789b4340997add4a52c262fea3b80a5ab5b14972302a2487bd +assets/images/guide/animations/animation_enter_leave_states.gif,1742567121026,5e49757720677f29efa9edc5abf028804cb30a75e7d68e7718593f1676fafc4c +assets/images/guide/animations/wildcard-state-500.png,1742567121030,e83daa8dd5fe3f1370a14200253ebcb4ebd600a046f162a1d6722b12f7990e15 +assets/images/guide/build/build-config-targets.gif,1742567120982,5fac713b38d02d796afab5eb6a930e525bd567b2fe9e3198202ff3dc3c2b27ee +assets/images/guide/animations/animation_multistep.gif,1742567121028,21055ad4894baf7b1ad2df04fb261d5eab7cb9a4bbc71bb53424e4aab54afe74 +assets/images/guide/animations/wildcard-3-states.png,1742567121031,ed1d253945294955922865929d545ca2efa835ce736e92cf42380cb8dc6e4678 +assets/images/guide/dependency-injection/car-components.png,1742567120983,122c12964f47ccb74ee8ec4f49686b40115cb998e07ed4b87a51d2ab7ec521bb +assets/images/guide/dependency-injection/component-hierarchy.png,1742567121031,8719340ad3f6dbd6b1c69ddd86263cacfd512ebce1b7d4cb587b3a700806f2be +assets/images/guide/dependency-injection/injector-tree.png,1742567121032,35b70a02858b332b042590a35a49cfa728baf2f7f47e1bcd92848d25df9e8323 +assets/images/guide/deployment/quickstart-sourcemap-explorer.png,1742567121039,90c2f87aa5c7efaf8d99f5ebc77152e6c78d2aed376e2746608296902ade569a +assets/images/guide/dependency-injection/injectors.svg,1742567121038,7986b16b9819574b7ece8e31ea418755fc9dc34ddb87388c1512da4ba77dfa60 +assets/images/guide/dependency-injection/injector-injects.png,1742567121032,9ae6cdbed7e0ea41dd9e2deb7e24003ae18a38095aee41f273bcc222c3a504bf +assets/images/guide/animations/animation_groups.gif,1742567121026,309e3d08b25062e386d83f786564f5cd2c4fd1a8fe84d717bbbba9d79c12ec0c +assets/images/guide/animations/animation_timings.gif,1742567121030,bde5596d44c3ea38cd788c072ca14e5e1e8005d0bce0e4f92f8ca886064e327e +assets/images/guide/devtools/default-profiler-view.png,1742567121054,abe4307e2aee6b87e1490dc734c4092de7f6386b79f6500a1534ece120259010 +assets/images/guide/dynamic-form/dynamic-form.png,1742567121039,42d9ac78f7f662d84914f1e00c60e4254d29e7768bb460031b5c7c5fba5865ae +assets/images/guide/attribute-directives/highlight-directive-anim.gif,1742567121018,24291839c4986cd71bcf99c1dad999d19712aa65dfc91f737afeb63a076896b1 +assets/images/guide/forms-overview/key-diff-reactive-forms.png,1742567121052,a3b4af5759cf3f41d63c6dfc3b31155859db83e78b755826d9aa472be77eb950 +assets/content/guide/testing/services.md.html,1742567121350,7d22c9a45c5e2ca228ee02d36cebf1339f85264fcd04e4b5a78aa210aa7544d6 +assets/images/guide/built-in-directives/ngswitch.gif,1742567121031,a0c4f7f7017c33d3c43d01e6b7c0919414b0f2dc6697abca7c56ee8057af1c0d +assets/images/guide/devtools/profiler.png,1742567121066,180f0c3fd7ce840329aecab4efe6736945d8889522fcb88e0376a68e9729873e +assets/images/guide/form-validation/plunker.png,1742567121039,6cdef8955c089df1ce305f376c98e6219cd4d43a8e433446d9b904bf0d3e0d61 +assets/images/guide/http/interceptor-order.svg,1742567121041,b12b9f730446e090032b81ebdbcc8412ce406c94d098516cf2b6f7d0699ca65a +assets/images/guide/forms-overview/key-diff-td-forms.png,1742567121052,d2042bd4e97935725703e162a5936d97e57c277dbf6f7aff671f74ea1e807d6f +assets/images/guide/devtools/component-explorer.png,1742567121053,1243bc44462cca893374c6da7b4273f64439ff38d9573181b5177e8a18860fbb +assets/images/ng-image.jpg,1742567120838,883182c852cf01e1c64fdb44e4f892873467040ce74a45ebdc52a88571e5be39 +assets/images/guide/devtools/devtools-tabs.png,1742567121054,d77779cb087406c7ca981a6fa798ee582b8054a71326709c7694efc69661af3e +assets/images/guide/forms-overview/dataflow-td-forms-mtv.png,1742567121051,54bd8d89fb406b010a40f748e2cdbc3db55b740f3aa79f1a1aef825b5b8d3861 +assets/images/guide/forms-overview/dataflow-td-forms-vtm.png,1742567121051,27908d885d112b938574e4e5c45d270dcbd4fbc8acae150779672d64d1f28830 +assets/images/best-practices/runtime-performance/zone-pollution.png,1742567120986,80a2556433db26e9c467db00824a6a1ecfdab0c75ff6a220df3ae98f0ab56adb +assets/images/guide/forms-overview/dataflow-reactive-forms-mtv.png,1742567121040,cb2bb897e285101f35c6ccce05551593da4fdba92bf661c891a7bc1bf055c817 +assets/images/guide/forms-overview/dataflow-reactive-forms-vtm.png,1742567121051,cec4b18e634adb6987c3dae59e3c3de8a138d1beb705ea0364c8e61e59d0f1c2 +assets/content/guide/directives/overview.md.html,1742567121324,9a14c3e3a8ebf812d2dcf1aa44b69f872bf194b27c17871ef4f1de7985e73956 +assets/images/guide/built-in-directives/ng-model-anim.gif,1742567120986,0871d8e27d9ab884fb0e7ca4115054fb6234cf5e99a134fc2eaecb7518ff7cce +assets/images/guide/inputs-outputs/input-diagram-target-source.svg,1742567121043,94e8d1b7b8e1c1db8a50e5edc1521c07ebfd0540b423ce0791788271061e9102 +assets/images/guide/inputs-outputs/input-output-diagram.svg,1742567121072,9bf3285640a35b4d22b0af3cb0dcb33a86381004ce9677649463d614f6a35624 +assets/images/guide/devtools/save-profile.png,1742567121069,9f4bae453927c3594cf5775b5172fe9793a2e0cf0310fde588b0b42d845d19b5 +assets/images/guide/inputs-outputs/input.svg,1742567121073,07d07f6071fbb25a360fe554d42e8931548725886ec95effcf1bc8e3c99e7c3f +assets/images/guide/inputs-outputs/output.svg,1742567121072,80463a9304c5e0389230e0b66eb19a92307597d0fb5ae751d2474770509573bf +assets/images/guide/devtools/profiler-selected-bar.png,1742567121065,7080dad09a5d9d37dee3ae3f7f4527deefec9a7bae4d4aefabaa6ee81c4c954c +assets/images/guide/http/wiki-2.gif,1742567121073,4e3a7b09f26df9d90bd2cc4c71df1e9f5f18977be1b2926d172e4d8b790c6c36 +assets/images/guide/devtools/debugging-onpush.png,1742567121055,ea597322955d071d9ab26320cb2dd218350564266dabbedd3a4af8dac5982413 +assets/images/guide/lifecycle-hooks/projected-child-view.png,1742567121076,2f75b36e051bca8c0d5a87414c5e8c447c5ce4ea1b042a877ad9bc56f0ac9396 +assets/images/guide/devtools/directive-details.png,1742567121064,178c18392459efdd02463f3b28c7858a1032313d374618eac30ac9759a5a360b +assets/images/guide/modules/lazy-loading-clear.gif,1742567121081,af90e502f8f7cbe1c3dd532383b77eb7693482490f2bec683f0bd77e6e0271d4 +assets/images/guide/http/wiki-1.gif,1742567121072,fcde539280e391baaeef04c17e0017f68437051839407a02e7f22ab930d9eadd +assets/images/guide/devtools/flame-graph-view.png,1742567121065,a83368079da5268b34018ba4236c90f879a94db299c52baffa7b4be4cbe67106 +assets/images/editor-light-horizontal.svg,1742567120833,0322776e7bfc6f86423c908b99dac4536740e3f7792dfdef70ce992d993aac19 +assets/images/guide/modules/feature-module.png,1742567121047,1f7d17ab1d394180a47ec3aee2e5025d2e134146833800cef878f140dee3d97c +assets/images/guide/pipes/power-boost-calculator.png,1742567121047,65ce9e5e66023ba0258a64c38dcd8422cc112466e1b831dee2cf50b83435afc8 +assets/images/guide/devtools/devtools.png,1742567121056,8c28fd6bcc9a89a577b09d30b76f9c35c7c2cadb15fac44bec1fc8387a1c2c7b +assets/images/editor-light-vertical.svg,1742567120834,c70738e416087a099f605edb46fb6145e0e3ccc32e06a8b6e076de77c1394cc1 +assets/images/guide/providers/any-provider.svg,1742567121048,ba7c52b397ce5b4c5f92d62769d79355bdac45a0e3fce0c8e54181152677953b +assets/images/guide/reactive-forms/name-editor-1.png,1742567121082,66291bed16d7a7851ec50399630e23f20e0e415d0b6c0cb896e0d364eef9cfe2 +assets/images/guide/reactive-forms/name-editor-2.gif,1742567121047,d925c4f5bb71d824160e39c2052be4e2c91e1c008f1a5e59655d8d1de0cc9260 +assets/images/guide/lifecycle-hooks/peek-a-boo.png,1742567121077,f0d60964f03bc24a541f7a4fef1871e5f763f2df0565ab93e8f6a538fa22d82e +assets/images/guide/reactive-forms/profile-editor-1.gif,1742567121082,d6da5b9945ae7f3b77c5b4e71ca4621ae7f63af22bcb96e3184e69d6a56091b8 +assets/images/guide/modules/lazy-loading-three-buttons.png,1742567121082,d81d99b7678a31a6d3a9591198270a2d170162fa830a3cde10952e452ae0c63f +assets/images/guide/devtools/di-injector-tree.png,1742567121060,01ded33be150d8556070e6e31a581fe6d06b644601393f20a8b4fe752d00243e +assets/images/best-practices/runtime-performance/slow-computations.png,1742567120980,1bb75583d5d340aad829357a6eb5bf09cb6ea45e740375f1f52bb57586a3c0a4 +assets/images/guide/reactive-forms/profile-editor-2.png,1742567121083,7b8fd0280d08d6250fd79d97260a834304cda08bc478861dcbb9f6404f404087 +assets/images/guide/reactive-forms/profile-editor-3.png,1742567121082,ff96db799718e73c703e105e6b98b61629ef18bfdd01027ee4a5c73445e9434d +assets/images/guide/router/confirm-dialog.png,1742567121085,e5c8f5d0e18af4a3f7b293df000a5314b781fc2a1123d7c275120ce473eccba1 +assets/images/guide/reactive-forms/profile-editor-4.png,1742567121083,d34d022a01096406e7974a2232f9c6bdec2ecf8e67ce7853e135dfe53c33798f +assets/images/guide/lifecycle-hooks/peek-a-boo.gif,1742567121077,0c53dc4363ab7860861bf9285e2d9f11409b987ab00aafecb3b9f0a73f075f55 +assets/images/guide/devtools/access-console.png,1742567121043,864ba49673f4b320a985fa911ca8f2745bebcaa2c517ff1563f24a3c686cfde8 +assets/images/guide/security/bypass-security-component.png,1742567121083,f6f400c7b51541621b4e31849d31dc6b8d5501ee85b06e40c36d9088c7355dda +assets/images/guide/lifecycle-hooks/on-changes-anim.gif,1742567121080,bf8367a03e10562f3e225f38470f8dda1ff361bf6c016a5bfc08c507fb8ae403 +assets/images/guide/devtools/view-properties.png,1742567121074,51032e6eba68505eb61c430822195b992866c1efe3efa2f94964d48180f92713 +assets/images/guide/structural-directives/bad-paragraph.png,1742567121085,bbd59ecc69d11332fcd6b4cc55cbbb70b386cfb645e7fc2ffef51968ca76781e +assets/images/guide/structural-directives/good-paragraph.png,1742567121090,a2901b8e594c4c4ef3deddcde7fc2806e4d46435f4622b1b5ecb575aa70302b9 +assets/images/guide/security/binding-inner-html.png,1742567121050,56986da523d2f484092634ab04482ff0db49f89a7b3023a7399f1c8eb18a4eb8 +assets/images/guide/modules/lazy-loading-chunk-arrow.png,1742567121080,134a2947ea3c2ff142dceec45da0c146dd79b65243d574250dc483e840d58405 +assets/images/guide/template-syntax/evil-title.png,1742567121085,3d410cf5147ed8d5a1cd24a4027cd29d28df82f860c81fec7034bb9b6e2f23c2 +assets/images/guide/template-syntax/syntax-diagram.svg,1742567121092,5d793f74c04eff2cc7e177ee239cd43135f31d0c7ffedb369bfe1dc5aa95f861 +assets/images/guide/devtools/update-property.png,1742567121071,30caef7ad4bf5116d95718b85f206fece3dbcd802983cb862603dd9ded33209f +assets/images/guide/modules/lazy-loading-network-tab.png,1742567121084,cddcf2eab58aedc0b95b28a18ecd0acd81f21d6ed4e1d95b875df63feb3f7582 +assets/images/guide/devtools/navigate-source.png,1742567121066,2b30e05b1dd2f0c5e634d6397b661df10d2fe11c1b8c9470f152e08e21ce63b0 +assets/images/guide/schematics/collection-files.gif,1742567121050,332e5f0776d03283a0a5f968534bc01fc5716fbdca0fff66eb0787e8be3084ac +assets/images/guide/structural-directives/unless-anim.gif,1742567121091,c760f222fbe9a4e07fa298e9426bb0137c206ab1db65f869dea7e852c7ba4fa2 +assets/images/guide/structural-directives/select-ngcontainer-anim.gif,1742567121092,3d78a89a3dcf97185c31272d552d9571332c083ddf9b9774d4280b6037ca5539 +assets/images/guide/testing/highlight-directive-spec.png,1742567121091,e20ae2a9c4623a6c856f161a2290c9483a3919d408ea9d53f93b6220c59048ec +assets/images/guide/testing/app-plunker.png,1742567121085,45a66d060b9d9a6937fddb991e2a8870f2bce394d079bdfeeedee3df3a4ff1ff +assets/images/guide/language-service/language-completion.gif,1742567121046,21b6b416ab3db9f1b2b162f04c7c3b5b32f9649dd6900fd87d5d1be1cedd9e40 +assets/images/guide/testing/app-specs-plunker.png,1742567121091,a49ef65440e9ac73dc755350ee403a45a05995b62094e09d7ec8cb9487221af6 +assets/images/guide/devtools/di-injector-tree-selected.png,1742567121061,d974f1f5f0645f53c3d5edab4eb971cd00af3d398da20e0e985b95b545c2cd1b +assets/images/guide/testing/initial-jasmine-html-reporter.png,1742567121091,fedc71e10267ca714cc2e0c79aea71f69847cc5dd4774992bf9368d864df6755 +assets/images/guide/testing/karma-browser.png,1742567121091,6e31d4a0d143f398b69b90a8480fbf3289de4106e15c35abae44d42a46d7e0ac +assets/images/editor-dark-horizontal.svg,1742567120837,b51c7c98d3865936e9159058e6876814ee6a14c7734e89ce2e87fc9860cf241b +assets/images/guide/service-worker/offline-option.png,1742567121086,432ba6e6de906ee635968fe9533381d0d87a0c5ef107e97643d77ab489769ff2 +assets/images/guide/user-input/keyup1-anim.gif,1742567121091,541a4dce5030b31edf823a261a70cf724c8b294e2e82894397f5a8ab67174dec +assets/images/guide/user-input/keyup-loop-back-anim.gif,1742567121085,66e52345b09d94856f76fc128ef032312566e80eac3ce227c7d1137233b3751a +assets/images/guide/service-worker/sw-active.png,1742567121090,128fa6e26d643f3078e222e037d3c18f0712a9489cf5bc554cb54ae5f31930c5 +assets/images/editor-dark-vertical.svg,1742567120838,766b368cbe95732fdb635344fd6a6f933b8c7cd2f10fe632421a117404ab6c9f +assets/images/guide/testing/karma-1st-spec-output.png,1742567121091,a63713c611514e6988793242620a355e6008c2ed109fce36c8882e6a253ffe8a +assets/images/guide/service-worker/welcome-msg-en.png,1742567121090,39c83ed33c086fd8f80c830de8a94c6a0a705c7d02368af2e8f35d7d1510b2c5 +assets/images/guide/service-worker/welcome-msg-fr.png,1742567121091,0d1904f2bc385cbf562ff354c005a7ca9cf4f9a180ace32f3e951edd8ee4bf1b +assets/images/guide/testing/karma-1st-spec-debug.png,1742567121091,1a395ad949b269d9ec073b5ed877d5141716747537a2fa50770f56e9355d552c +assets/images/guide/view-encapsulation/no-encapsulation.png,1742567121092,84c58f26b77cbbe40484a0a068f8a356a00d81eb65bfdfaa1775a1b403892d2f +assets/images/guide/image-optimization/devtools-lcp.png,1742567121044,d659b1cbff29adb3554bb6e0eddeae3931997e1b8587f564fd02e07ef21e578d +assets/images/guide/devtools/search.png,1742567121071,847858fe9414a6db84195774fd868116105d5e8ca6f9e6c9ce49f8cae71aa4a8 +assets/images/guide/view-encapsulation/emulated-encapsulation.png,1742567121086,c6eb38f95bc0b91ca94cbf79951128e854df2b7d21698a32a11b4bf822a45391 +assets/images/guide/attribute-directives/highlight-directive-v2-anim.gif,1742567121022,0716a54a759c16054675b69df3a44751133a739f0106098059694a72cd665ef2 +assets/images/guide/devtools/di-injector-tree-providers.png,1742567121058,cca138173037c6ddd0bd3e747ad25cb45ec4d06d729c76af1b63f2c8fbe0c0e4 +assets/images/uwu.png,1742567120853,72dc7acb5788ee1f40348b6e1da3ffc37cd6f247411ce3a346d389115c107250 +assets/images/guide/user-input/keyup3-anim.gif,1742567121092,0d6b2cfc3d788205b2bdb66d4fce306fb2fbe311b7a59f7701403650cf9f5ef8 +assets/images/guide/lifecycle-hooks/do-check-anim.gif,1742567121081,283e20adadcc6a324cc3b4d41b86ce7bb84dc5b74cfdf847d674fda691b911e6 +assets/images/guide/view-encapsulation/shadow-dom-encapsulation.png,1742567121093,e12a7e94938db6bf3db96fa0b9b4db3e78aa023c946f5dfe62e3f1050f064e36 +assets/images/tutorials/common/idx_logo.svg,1742567120989,28a2342a673eeb4f526d86e69d56d14b855a1d294cb766101ba6cd5b0e444e92 +assets/images/press-kit/angular_wordmark_black.png,1742567120882,78e1d3b5a5885cd279e4e987c99af48920518c2a9bce005b7e253baa4c995876 +assets/images/press-kit/angular_wordmark_white.png,1742567120884,cfe703be873ddee165ec119d0164dd313d40a3b5cb06a4268ca098146c6321eb +assets/images/guide/devtools/inspect-element.png,1742567121070,a3a7fcd6d858201396ebd3d069d577e6d3d146e35e394ee1157f0b23484f2190 +assets/images/migrations/signal-inputs-vscode.png,1742567120867,f0c9784d888f9974ce4ca89346418ee1d390080ad9f2a6230193504e079ec0bc +assets/images/tutorials/first-app/homes-app-lesson-02-step-2.png,1742567120998,956ad2547badf8f55207528d19ad7d42f7db3eb4da57b10392f0822985b79cb5 +assets/images/tutorials/first-app/homes-app-lesson-02-step-3.png,1742567120999,ab5e13e8690446c187700277a74024b506508d9537a3933137c2cf6311dc4332 +assets/previews/previews.ts,1742567120819,d0fb616affd20a514bf2113019285900493a5bbff09b916ce845bb33aae61402 +assets/previews/BUILD.bazel,1742567120814,0acdc3e5683e34f07b2e9bc57b6613477c9a94152ebacf3eae4c7a783fa752f9 +assets/images/migrations/signal-queries-vscode.png,1742567120882,5d396167ca30b02b878e42d47f13bd5cffcb8048063039d5f0478ecfc6719fc4 +assets/tutorials/deferrable-views/metadata.json,1742567120814,0f5c1cd07dc0d4d89e421459a4cd83159139220ad46b0a12a39ab1403a11f2b1 +assets/images/tutorials/first-app/homes-app-lesson-11-step-1.png,1742567120999,7f7a70c85f8b5c716ab59451510bc9236f44e17d21e515115d2fc07ea39e9919 +assets/images/guide/lifecycle-hooks/after-view-anim.gif,1742567121047,3a3a5821aaf255979b590253a743d0afa517ae9d4fdf6a69e5b4ee93a564ddba +assets/tutorials/deferrable-views/routes.json,1742567120838,1cd8da45808709817547f88f4e14d347fb07b8792d0edf2d5e39a5ab77ec9fb1 +assets/images/tutorials/first-app/homes-app-lesson-01-browser.png,1742567120997,09c4204fe5275113eaf884b4cc98b923eca92d3c1a72e45b7378776abf571b20 +assets/tutorials/deferrable-views/1-what-are-deferrable-views/metadata.json,1742567120867,9463ca31deec9616ce5d74c35251c40bba81be5b43b8450c132a3e7552bd496d +assets/images/press-kit/angular_pride.png,1742567120886,e0e14d56c46531ed880ebb4fc5a5c98d5df39b3ad1203cefded14f151bcac5ce +assets/images/tutorials/common/krzysztof-hepner-978RAXoXnH4-unsplash.jpg,1742567120992,704db635dd27238a5ad675a87efbab43210d9a2be72bb54c71ca9d8f439353cd +assets/tutorials/deferrable-views/2-loading-error-placeholder/metadata.json,1742567120867,b68912dc3685f639f49b1806e64a4b2b8cf31698a11392b962a3f5c064b62327 +assets/images/tutorials/first-app/homes-app-lesson-03-step-2.png,1742567120997,4a096e0217bcdce4a92a237741df38bc00bf7524aa5b237fb479edc2da2d8e4d +assets/images/tutorials/common/brandon-griggs-wR11KBaB86U-unsplash.jpg,1742567120986,001081c7105ce653bfd7f7a253c047d77f4f3d526f651e40921635fe352ad421 +assets/images/tutorials/common/example-house.jpg,1742567120988,001081c7105ce653bfd7f7a253c047d77f4f3d526f651e40921635fe352ad421 +assets/images/press-kit/angular_wordmark_gradient.png,1742567120883,76689a8f29cbf57a21f6f55bad5e6c2423899300c8152bec4dd8c84c6e44df52 +assets/tutorials/deferrable-views/3-defer-triggers/metadata.json,1742567120867,8e9d506e62fcccb01fde79c088a37337f63ff4c423875acd193095ef6878582b +assets/tutorials/first-app/metadata.json,1742567120815,5a5d068bda52c44ba32684e3eef1c1c070a5e3b647536ed6899e4aec841ca7dd +assets/tutorials/first-app/routes.json,1742567120839,6f055ba6c759029fef7606317b181e8ec88a69d581fdde9ac3355da904351dd4 +assets/tutorials/first-app/01-hello-world/metadata.json,1742567120868,86956f3d72d6f61f1ef486b7bdd0a370589d4e662db2d8e9675c34db8ea610db +assets/tutorials/first-app/02-HomeComponent/metadata.json,1742567120868,9ab02072c877c5d1fc072e88b0df782ce5a11bd970b87e2a5e46d13df8316bfe +assets/images/guide/language-service/language-error.gif,1742567121075,e2219f4868c50853a407eccd5a4fb0d222d1c29730e64725d6608b35879c045f +assets/tutorials/first-app/03-HousingLocation/metadata.json,1742567120869,be5bc23640346cb45d3893bfe06b6acc34130a14fb66d1dbea96ad8963f55b48 +assets/tutorials/first-app/04-interfaces/metadata.json,1742567120869,3d5bdf2848871bed50afad6cfc4e3c60f42349009258b7b753650706419b16dd +assets/tutorials/first-app/05-inputs/metadata.json,1742567120881,d1c3a726c1ba8496191e4ce72e9474b8f888ff503d4ec23e1a0e556949337afa +assets/images/tutorials/common/r-architecture-GGupkreKwxA-unsplash.jpg,1742567120994,85e188c8c19a12b5160c4f7212b1ff5499aee15e61dc27224d44de5fddd98eae +assets/content/guide/testing/components-scenarios.md.html,1742567121354,3e7af929f1908015c121cfdf72a7c5c22f263e24b8e5386ad97b71a6fd413944 +assets/images/tutorials/common/webaliser-_TPTXZd9mOo-unsplash.jpg,1742567120996,34cb330e0dff0b6f6e00842f2ac781cebb1e941f642962fd60bdb936cbf0c6f0 +assets/tutorials/first-app/06-property-binding/metadata.json,1742567120871,280978a2d41c310379d2f7400790cd170e98ca51e73183dc313e46a7f5b371f3 +assets/tutorials/first-app/07-dynamic-template-values/metadata.json,1742567120870,a01851fb11b0e924ca1f8db58463ac214f8519cd7f890058923409751053ac15 +assets/images/tutorials/common/bernard-hermant-CLKGGwIBTaY-unsplash.jpg,1742567120983,e0e4818d948ebdcd31693ed707546b850d6e8d2ab6426fbd38075ed89494174b +assets/tutorials/first-app/09-services/metadata.json,1742567120871,2bd16b58e1289879e60a8737ca99a71f6284d71973cc16b4041b49ad09c3b339 +assets/tutorials/first-app/08-ngFor/metadata.json,1742567120959,4562fefac15f80a3b0e6e8ae0450c4ca4332b6a332bb4f15447a4e15c3d4d69d +assets/images/tutorials/common/ian-macdonald-W8z6aiwfi1E-unsplash.jpg,1742567120990,b46784c201a0e4da428ff77c0de2f8e261baaab68bbc8ee9d5aeaca7ceaab5e0 +assets/tutorials/first-app/10-routing/metadata.json,1742567120878,1f9e6bba09fe9b06136d7b7d799f15fb6878175e008bf0a5fb49f67319336257 +assets/images/tutorials/common/i-do-nothing-but-love-lAyXdl1-Wmc-unsplash.jpg,1742567120991,09d84a2332fd9f665d33aa514fe5a4ea2d8415da9bfbd1f89ff896b6057fe50c +assets/tutorials/first-app/11-details-page/metadata.json,1742567120962,e784ba78dacbedbe92abfe3e2ce6707297b2a4b95cecfb2242e9542be872c335 +assets/tutorials/deferrable-views/source-code.json,1742567120852,6b0e3fcff805366bb7cec3c1099c9d1b5d31297961f0b2b7a54a60fb9b2f8ebe +assets/tutorials/first-app/12-forms/metadata.json,1742567120959,6e9ca68cf0099ffb81cb113ea8d18547010409add49b25d25835368fc7d39c1c +assets/tutorials/deferrable-views/1-what-are-deferrable-views/source-code.json,1742567120891,2daac45269fc4e9a0287b3c14bfdedaaa5e045ab12d8d8a917edf5358bbe3ada +assets/tutorials/first-app/13-search/metadata.json,1742567120961,25d36652f47d055a39485729ad4bf1448ca5d8f915914a018ecc1e54d206189c +assets/tutorials/first-app/14-http/metadata.json,1742567120961,7b3a4113fc58f6f274eb8e498ff3b1085fa8c00821371d61d20f9889e821f318 +assets/tutorials/deferrable-views/2-loading-error-placeholder/source-code.json,1742567120897,f7d0c8a9964593c981c7d5226019509719d49ef80cd9008235565dbb7f24e451 +assets/images/guide/attribute-directives/highlight-directive-final-anim.gif,1742567121025,d02d7deb2fa21379db9ace11a6c8e862e4ad3192da6b6f7795f1471f525aa748 +assets/images/tutorials/common/phil-hearing-IYfp2Ixe9nM-unsplash.jpg,1742567120994,4a301778ba63148a04a566fdfbe75d1931199f60bfb77f598ef14a5462e3dbde +assets/tutorials/homepage/metadata.json,1742567120815,6dae7a8ed30b0c0a6c68689582da728d7356607e8caa250654042047d7f2a094 +assets/images/guide/styleguide/use-extension.gif,1742567121087,9f91c2aeb790fae04806687586691451c821e8543f19bd0f3ecd69d0e5649b4a +assets/tutorials/deferrable-views/3-defer-triggers/source-code.json,1742567120893,1bf951f7bd0e044cefbfcffaad7ff700931509719f9ee0070c1e8297fef40dcb +assets/tutorials/homepage/routes.json,1742567120839,3ce5069153a8f7f8c7b5ccfed147d43c805d5c5e2e8d7b46880c616ebfdb43bf +assets/tutorials/learn-angular/metadata.json,1742567120815,0ea6719f0cd7f22a3991e10d33ecc71c2d5988c516898b007d04d8cd340bcd09 +assets/images/press-kit/do_and_dont.png,1742567120887,985f5a86f34f43128c63d2a928ea78ea003363a720e6e535d89189dfaee31ad5 +assets/tutorials/learn-angular/routes.json,1742567120853,636ffab358187e359d0e4400cd9ade0125511503d118cd8046bf7f868544ad74 +assets/tutorials/learn-angular/1-components-in-angular/metadata.json,1742567121086,3ef09ed724c23c2f834a446825036945287f2148894d9c18b1c51ad740da347f +assets/tutorials/learn-angular/10-deferrable-views/metadata.json,1742567121093,2af2cfdd0fa21acf5d6e43cb4b8d68273ac15a4c7abd09bc233d44e794f02810 +assets/tutorials/learn-angular/11-optimizing-images/metadata.json,1742567121087,ee04345645ac30abb06561b0adf525f129f4dcfbf378d93970e6a73a9ae4c559 +assets/images/tutorials/common/r-architecture-JvQ0Q5IkeMM-unsplash.jpg,1742567120995,1c140aa47e5e43e2c0c7a6a81879c775b3ecfce6c6ca5c0b3bf2602766a5bfdf +assets/tutorials/learn-angular/12-enable-routing/metadata.json,1742567121087,f929e5fc9e41a4362b215c11ab83ed96c500dcb66069d6a9506b1dd0873cfc05 +assets/tutorials/learn-angular/13-define-a-route/metadata.json,1742567121088,1a25afa98dcd3ee96e95e27d75327273a870dbbf9d09e6eff0f7c017479134df +assets/tutorials/learn-angular/14-routerLink/metadata.json,1742567121087,4c2269b886095a68f1e8b1ba74d183115abd9d4e062fe3be615243f2624afbd4 +assets/images/tutorials/first-app/homes-app-lesson-07-step-2.png,1742567121000,327031301af9b389e2ce32c1b6d0d164998262185ba07eae26b4c08a0dcadc40 +assets/tutorials/learn-angular/15-forms/metadata.json,1742567121087,f54f543825be7aa941bcb37d1c5df863c3276731f4d4bcd9634b9c33ce5ecd6c +assets/tutorials/learn-angular/16-form-control-values/metadata.json,1742567121088,558112e692f843bb28254b54b593f17fef0efcc73cdb75d13cb01c9415e376ae +assets/tutorials/learn-angular/17-reactive-forms/metadata.json,1742567121088,cfa5290cfeaf80b6760cbd62412090b3796559708ea3aae4faf81ad780ab17ff +assets/tutorials/learn-angular/18-forms-validation/metadata.json,1742567121088,79cc12af9220529795b2f97a741cad3763ae86765dcb2823b9330671f4abc8e3 +assets/images/tutorials/common/saru-robert-9rP3mxf8qWI-unsplash.jpg,1742567120996,4455cb4ff54d7b7514543457cd9ab15166843e7dae934cce706b1018372a0222 +assets/tutorials/learn-angular/19-creating-an-injectable-service/metadata.json,1742567121089,725e401bcf478f5c4f3a6fd5945790650578da6e730b5e35ddbecae745b0e003 +assets/tutorials/homepage/source-code.json,1742567120852,73788c9d99f5fbf4563ce198a630cbe33194d27edf111cf1c1d3100cfd778af6 +assets/tutorials/learn-angular/2-updating-the-component-class/metadata.json,1742567121089,cf499bb518ebbe752271f6fc38036e28ba04326c91d5446f2949b3f70df9412e +assets/tutorials/learn-angular/20-inject-based-di/metadata.json,1742567121089,498a1cf344a27c9c6741f6a175fd726569a57ace688d28b5e29dd15f18df5483 +assets/tutorials/learn-angular/source-code.json,1742567120859,ee27839f9918174349749797441cc2da5a6aaa7875baf1e05f549b0e41e30f0e +assets/tutorials/learn-angular/1-components-in-angular/source-code.json,1742567121096,9363310fe774899f395ec615851258d0b907f0e5db619b882520fdd29ce1bf22 +assets/tutorials/learn-angular/21-constructor-based-di/metadata.json,1742567121089,1e01fe2219137b3d819df531e763db80b059ffba8f2a7c325730f359319a59ef +assets/tutorials/learn-angular/10-deferrable-views/source-code.json,1742567121089,6a4672d9d10dae0f4e72187ae5cb24af1677e1d301608d6d1dfa34a3dc605de0 +assets/tutorials/learn-angular/11-optimizing-images/source-code.json,1742567121097,45fe8089d514805561204fed75c98a27e14d48434f133c02cebb003491687c38 +assets/tutorials/learn-angular/12-enable-routing/source-code.json,1742567121096,cf2b973f7622e0ce9610918c59d5220c02f8ec9410c4e95e36295d8dee5f6024 +assets/tutorials/learn-angular/22-pipes/metadata.json,1742567121089,a155d29140cf6c76f45241313417bdb918c533a6323c893b34a52bcbca365ca6 +assets/tutorials/learn-angular/13-define-a-route/source-code.json,1742567121102,6a2e5294be81a888e3e8bd3f0348d46a152af2f48c83bf9129c404484f95873a +assets/tutorials/first-app/source-code.json,1742567120857,98631e7ffcf5ead2da8ff256a95058dc3480d4367cd69fd8a1eeae238033de4c +assets/tutorials/learn-angular/23-pipes-format-data/metadata.json,1742567121090,c91e903a95c94e9d2f511fb9bbcdd47cd27bebc5e906533ea0b41e8a1dfaa48c +assets/tutorials/learn-angular/14-routerLink/source-code.json,1742567121097,0dd04a34368a4e55280013b3d261fd55f0f7319415c83a71025124015a51fc5a +assets/tutorials/first-app/01-hello-world/source-code.json,1742567120907,1b957b55d82102b831c5d397e87341e2413f170884d481ddcf1a558aa8cd8547 +assets/tutorials/learn-angular/15-forms/source-code.json,1742567121101,f00798ce81f69a05c88c59cb45c2c45f1e2a4456ddcc48d78d3058a039428832 +assets/tutorials/learn-angular/16-form-control-values/source-code.json,1742567121104,78268e999a09b6e00cea20c87de6fa5ad0698ba6d54383bb5b4e704085bb0f54 +assets/tutorials/learn-angular/24-create-a-pipe/metadata.json,1742567121089,d818993f35bc2c497ba45e1db8e3e5f9eee535322e0f06c71c85e6023514d5f8 +assets/tutorials/first-app/03-HousingLocation/source-code.json,1742567120931,4cf67e886fcacc95c183620ff9c5e7a9506651e496d4e5a5ec8d9bef6d0ba641 +assets/tutorials/first-app/02-HomeComponent/source-code.json,1742567120913,1e57549c8cd8623572bd4ee7fa326c064dff4b2fb4178b24304cbd623180c3a5 +assets/tutorials/learn-angular/25-next-steps/metadata.json,1742567121090,8b013b1e4acdd93f2f64f9f225a0a5944e28e7ff0e8f838e1ce7328c87820b68 +assets/tutorials/first-app/04-interfaces/source-code.json,1742567120932,40a27e3577eef14974a1b0c86966c1c51c8a96972f2cb686c037f01b129392f5 +assets/tutorials/learn-angular/17-reactive-forms/source-code.json,1742567121104,d2793022ed59a37daf8ba97a1b138867a94b3edacf61dd9705997ea2293c8d6c +assets/tutorials/learn-angular/18-forms-validation/source-code.json,1742567121107,a4ac5e47712302d5a61dc623bdad019dc48b3b3045cbe9675412a0fc451e499e +assets/tutorials/first-app/05-inputs/source-code.json,1742567120965,f79a98bd343eb477f1b8f32531b967e41657d17a8bdf77cf1555bdfa5820e7cc +assets/tutorials/first-app/06-property-binding/source-code.json,1742567120941,b45fd3743dfd1191dbd38ca9cf68005f4b9a712e071d49ef29429f5e951f6be4 +assets/tutorials/learn-angular/3-composing-components/metadata.json,1742567121121,95b8f3fd239e100d2b6ad80608d3a7cab908cf9982a582cb24ef3f58707fcda8 +assets/tutorials/learn-angular/4-control-flow-if/metadata.json,1742567121090,67e0354a55391fce1f88e55189b86eaba6e2aced1091dc8caaaabf034b791b5f +assets/tutorials/learn-angular/19-creating-an-injectable-service/source-code.json,1742567121110,6985dc38cef3eb42794225bef10c4e31bb6fe461f4d49d77ef03307ab1a849d0 +assets/tutorials/learn-angular/5-control-flow-for/metadata.json,1742567121090,b35372318a7939399f45a0c348e2df7cf446ecbf2be745e2abe98a287591ca00 +assets/tutorials/learn-angular/2-updating-the-component-class/source-code.json,1742567121108,867b3e84b5afe81ed5ebe985f45b9c2cf0c32f7c356bad363ef1b06bce7ced33 +assets/tutorials/first-app/08-ngFor/source-code.json,1742567120976,764e7441f6c333d76cb9c691755cf9fd1cfb63b82f45f9e1e37a6da9a243909b +assets/tutorials/learn-angular/6-property-binding/metadata.json,1742567121123,2744ba56faaab04086524a2bf059e45deb6d8bc57240c384b52dd14901696187 +assets/tutorials/learn-angular/7-event-handling/metadata.json,1742567121121,faf233fb08870944b79fc09db51ba52b680744680a0253d77b647abff86c5986 +assets/tutorials/first-app/07-dynamic-template-values/source-code.json,1742567120941,dcef71a2679991016e80cfc74832ec32d88273945ea1026f3a6ee70c98ad3626 +assets/images/guide/built-in-directives/ngfor-trackby.gif,1742567121037,f1c8f1b5012e814cf0f9a374548a0c41576ee248cebc457433fcce656650246d +assets/tutorials/first-app/09-services/source-code.json,1742567120941,b3164bf02a5ec515f47678a7fd02eeef31e4dfb3ed77372e8f20f0fb17ef38bc +assets/tutorials/learn-angular/8-input/metadata.json,1742567121122,873a58ced36924e0144fa9f75a6908e59873cf75ffc3871a520b1f614fb907ed +assets/tutorials/first-app/10-routing/source-code.json,1742567120947,c0e687e5006470c2f0547eae7c10756428f1d7b15aa27b4301d3b5e74fc004ef +assets/tutorials/learn-angular/20-inject-based-di/source-code.json,1742567121111,6b3594a905b0aadb097fdd880303ea028a6e4523e37a7daa950cfd91ced47011 +assets/tutorials/learn-angular/9-output/metadata.json,1742567121122,a832d03fed15e41424f8ced3d525e3d2ead1f0a905e3af5ca00b58667b052144 +assets/tutorials/playground/0-hello-world/metadata.json,1742567121122,723f1d27bfb707ec1402bf938009e842be01a7caa4a1126571d473de15fe4570 +assets/tutorials/playground/routes.json,1742567120815,d50740ad83e1b7da54e7318318b4a34bce9ad0b4b72d0ac552235f689c5deeb7 +assets/tutorials/first-app/11-details-page/source-code.json,1742567120968,3395fb95db7b34eeeb668a23dd083f56cef756d3cbf1333579769a0d20aaed2a +assets/tutorials/first-app/13-search/source-code.json,1742567120980,27e249df50dad3bd9a291edc5247b2dcf7ffe7b5068ebb420acee6e123c69cb9 +assets/tutorials/first-app/12-forms/source-code.json,1742567120979,648b4f56bc4e7f2c835bd3be959a5bb2e0e8efcd38d3247f554e8131324eb28b +assets/tutorials/playground/1-signals/metadata.json,1742567121122,3c8e1e28e31a31f171dab9aef8136468aa6d2b65ff91f369a58b08ccb9cc46e0 +assets/tutorials/playground/2-control-flow/metadata.json,1742567121130,f5cb55154fab01ff61258f80c2db0783723d61da7989ff446cde6890d49b9045 +assets/images/guide/language-service/language-navigation.gif,1742567121081,be9d8cbef521650584f04cbc11e1bdab6800b126bc501a5780df6383585e5683 +assets/tutorials/learn-angular/21-constructor-based-di/source-code.json,1742567121114,51c76ec552fb5e8f5949773c7bdab90aa7d8051365e8fa28710e9e90c229965a +assets/tutorials/playground/3-minigame/metadata.json,1742567121123,de58e602e769b60ce5516f76e8cec3012a79b31d644c66590554c98e386216c1 +assets/tutorials/learn-angular/22-pipes/source-code.json,1742567121116,dfe8fa3a83a96c23a36b261cead199df6df4df0eb9d847fbfd33b3e459dd43b5 +assets/tutorials/first-app/14-http/source-code.json,1742567120981,b8d9e603124c5c9ce46ad01bb7bd5cd79be28cc2baeef3589958a658a8547ca1 +media/chevron.svg,1742567121579,fcd5035f3a38232a77d740187b0325542955f66a40dcc6288163dd4a15ebc20a +assets/tutorials/learn-angular/23-pipes-format-data/source-code.json,1742567121119,085515186f38c4ee6c571ad9e0dcac010af5057558fdd7ef566b1d197134ad05 +assets/tutorials/learn-angular/24-create-a-pipe/source-code.json,1742567121117,eb965c342cf7f2cdb15204f7e01811bfc19ba60169a0ab90e12f6be707f59f77 +assets/tutorials/learn-angular/25-next-steps/source-code.json,1742567121117,c06cb565e64320d527c6ee7d2ea2702a1995d111ad4d057e637ec98561cf39db +assets/tutorials/learn-angular/3-composing-components/source-code.json,1742567121128,9df1af65bbb7c7d65a7eca72e3a54adbf69e6c885cb93245b109b9958c9e6fa3 +assets/images/guide/dynamic-component-loader/ads-example.gif,1742567121048,3599e870f469b0e3671b31e3b36d5b9516ed03b5a14c238b6268a61bd886e536 +assets/tutorials/learn-angular/4-control-flow-if/source-code.json,1742567121119,28d62476ccea4ea64e852cd9e90ecbe93d934cedfbabc587903632e994e4501f +assets/tutorials/learn-angular/5-control-flow-for/source-code.json,1742567121122,864aaf0270ac341b230ccf227e543e72da10f64b4610cb9641c63b7bf21f1531 +assets/tutorials/learn-angular/6-property-binding/source-code.json,1742567121124,0db177696c93f8f63fed5b03ad214ccea742274222fa21a92b01e6a70b21f58a +assets/tutorials/learn-angular/7-event-handling/source-code.json,1742567121127,4ae627427c801d4439b8876c418e8f468a4b74f30c23e7ae9239301a73f3a99f +assets/tutorials/learn-angular/8-input/source-code.json,1742567121131,97f951194756887c1d6c7981ae3b9712d75cc92caf137997295a421c778fb2b2 +assets/tutorials/learn-angular/9-output/source-code.json,1742567121129,38cc764b23c555dddcd0365de3755cc7f74336f71d084fe1c1ef28258125427a +assets/tutorials/playground/0-hello-world/source-code.json,1742567121130,939586cbde030748a608cf303a845098c8c7a3ed79963ee747cfd6c7b2b879b5 +assets/tutorials/playground/1-signals/source-code.json,1742567121132,af1c907953f9d77e52bc5303c65c4c9e6fb1da8c07104738a5ea0a48f48a6538 +assets/tutorials/playground/2-control-flow/source-code.json,1742567121125,e8a4307fe4d86130a5f5042ddfb91478053ed0dcb9eca22eab115b28be44bc6c +assets/tutorials/playground/3-minigame/source-code.json,1742567121133,d5f1ac1a1bde705304f29c9b3c44542937470b349bae0a05fb8f4b5fdba96ff7 +media/editor-light-horizontal.svg,1742567121452,0322776e7bfc6f86423c908b99dac4536740e3f7792dfdef70ce992d993aac19 +media/editor-light-vertical.svg,1742567121449,c70738e416087a099f605edb46fb6145e0e3ccc32e06a8b6e076de77c1394cc1 +assets/images/kitchen-sink/rhubarb.jpg,1742567120873,f150696aef3692cf5ca29c2c9dc2fe6a17c3c4d36a251f58b1bda02f13a21fdd +assets/images/tutorials/first-app/homes-app-lesson-11-step-3.png,1742567121015,ea6a4cf87bc94703f08ad5d6f8d269aa5e1deccfa17c3e824ac075d5cfd769f4 +assets/images/tutorials/first-app/homes-app-lesson-12-step-3.png,1742567121016,9337e80142185464005901061c4278a88ccabbc069f779d7fbdad22d4e7bc65c +media/editor-dark-vertical.svg,1742567121472,766b368cbe95732fdb635344fd6a6f933b8c7cd2f10fe632421a117404ab6c9f +media/editor-dark-horizontal.svg,1742567121457,b51c7c98d3865936e9159058e6876814ee6a14c7734e89ce2e87fc9860cf241b +assets/images/tutorials/first-app/homes-app-lesson-13-step-3.png,1742567121023,37886b90fe535c9562612ddf56b41dd1b5e46813b9441987c3811e5491366e12 +assets/images/press-kit/angular_signals.png,1742567120930,c70dd8bb576c38249212d3a227d7da808bb731b09edc11e82c90b443833bac9e +assets/images/tutorials/first-app/homes-app-lesson-08-step-2.png,1742567121026,0e1192ba04de2b34f987cc66683d9ad91b57b4a135769f2e8be642cb664637b1 +assets/images/tutorials/first-app/homes-app-landing-page.png,1742567120999,0d8c08ee69d2bb2795afca4ba60b1c22b8719ce380001905c0e2e26d09beb96f +assets/images/guide/cli/completion.gif,1742567121066,61ef4fb40010b38fcd709614f222512163d0c292de52713dce459db43065ea47 +assets/images/press-kit/angular_icon_gradient.gif,1742567120956,798beddacc6b838a4f894325fd944679157103371180182eb942e0f35ff0eea1 +worker-LQULJ2ET.js,1742567121561,ba842e592b27603a07807b152fd3b5da01ecdbb1bf3986af2f5142351e1a6961 +worker-LQULJ2ET.js.map,1742567121577,c132de4ff991cbe68928076a406ea6b9e4ad372bc93e215072c3915a4aba274a diff --git a/.firebaserc b/.firebaserc new file mode 100644 index 000000000000..fcae0c37fd93 --- /dev/null +++ b/.firebaserc @@ -0,0 +1,5 @@ +{ + "projects": { + "default": "angular-kr-docs" + } +} \ No newline at end of file diff --git a/.gitignore b/.gitignore index 8c124604a98f..17a365dfbe07 100644 --- a/.gitignore +++ b/.gitignore @@ -56,3 +56,4 @@ baseline.json # Ignore cache created with the Angular CLI. .angular/ +.env diff --git a/README.md b/README.md index 611304a9d5cf..497e74c929cb 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,11 @@ -

Angular - The modern web developer's platform

+

Angular - 현대 웹 개발자를 위한 플랫폼

+

비공식 한글 문서 번역 프로젝트

angular-logo
- Angular is a development platform for building mobile and desktop web applications -
using TypeScript/JavaScript and other languages.
+ Angular는 모바일 및 데스크톱 웹 애플리케이션 개발을 위한 플랫폼입니다. +
TypeScript/JavaScript 및 기타 언어로 개발할 수 있습니다.

@@ -14,133 +15,156 @@

- Contributing Guidelines + 기여 가이드 · - Submit an Issue + 이슈 제출 · - Blog + 블로그

- Angular on npm + npm의 Angular   - Discord conversation + Discord 채널


-## Documentation +## 한글 문서 프로젝트 소개 -Get started with Angular, learn the fundamentals and explore advanced topics on our documentation website. +이 프로젝트는 Angular 공식 문서를 한국어로 번역하는 커뮤니티 주도형 프로젝트입니다. 한국 개발자들이 Angular를 더 쉽게 배우고 활용할 수 있도록 돕는 것을 목표로 합니다. -- [Getting Started][quickstart] -- [Architecture][architecture] -- [Components and Templates][componentstemplates] -- [Forms][forms] -- [API][api] +### 번역 진행 상황 -### Advanced +현재 이 저장소의 문서들은 대부분 AI를 이용한 초벌 번역만 진행된 상태입니다. 정확하고 자연스러운 번역을 위해 커뮤니티 구성원들의 검토와 수정이 필요합니다. 함께 양질의 한글 Angular 문서를 만들어 나가요! -- [Angular Elements][angularelements] -- [Server Side Rendering][ssr] -- [Schematics][schematics] -- [Lazy Loading][lazyloading] -- [Animations][animations] +- 최근 업데이트: 2025-03-21 -### Local Development +### 사용 도구 -To contribute to the Angular Docs, check out the [Angular.dev README](adev/README.md) +- [ai-markdown-translator](https://github.com/h7ml/ai-markdown-translator) +- [Cursor](https://www.cursor.com/) -## Development Setup +### 번역 참여하기 -### Prerequisites +이 프로젝트에 기여하고 싶으시다면: -- Install [Node.js] which includes [Node Package Manager][npm] +1. 이 저장소를 포크(Fork)하세요 +2. 번역 작업을 수행하세요 +3. Pull Request를 제출하세요 -### Setting Up a Project +자세한 내용은 [번역 기여 가이드](TRANSLATION_CONTRIBUTING.md)를 참조하세요. -Install the Angular CLI globally: +## 문서 + +Angular를 시작하고 기본 원리를 배우며, 문서 웹사이트에서 고급 주제를 탐색해 보세요. + +- [시작하기][quickstart] +- [아키텍처][architecture] +- [컴포넌트 및 템플릿][componentstemplates] +- [폼][forms] +- [API 참조][api] + +### 고급 주제 + +- [Angular 엘리먼트][angularelements] +- [서버 사이드 렌더링][ssr] +- [스키매틱][schematics] +- [지연 로딩][lazyloading] +- [애니메이션][animations] + +### 로컬 개발 + +Angular 문서에 기여하려면 [Angular.dev README](adev/README.md)를 확인하세요. + +## 개발 환경 설정 + +### 필수 요소 + +- [Node.js] 설치 (여기에는 [Node Package Manager][npm]이 포함되어 있습니다) + +### 프로젝트 설정하기 + +Angular CLI 전역 설치: ``` npm install -g @angular/cli ``` -Create workspace: +워크스페이스 생성: ``` -ng new [PROJECT NAME] +ng new [프로젝트 이름] ``` -Run the application: +애플리케이션 실행: ``` -cd [PROJECT NAME] +cd [프로젝트 이름] ng serve ``` -Angular is cross-platform, fast, scalable, has incredible tooling, and is loved by millions. +Angular는 크로스 플랫폼이며, 빠르고 확장 가능하며, 다양한 도구를 제공하여 전 세계 수백만 개발자들에게 사랑받고 있습니다. -## Quickstart +## 빠른 시작 -[Get started in 5 minutes][quickstart]. +[5분 안에 시작하기][quickstart] -## Ecosystem +## 생태계

angular ecosystem logos

-- [Angular Command Line (CLI)][cli] +- [Angular CLI][cli] - [Angular Material][angularmaterial] -## Changelog +## 변경 이력 -[Learn about the latest improvements][changelog]. +[최신 개선 사항 알아보기][changelog] -## Upgrading +## 업그레이드 -Check out our [upgrade guide](https://angular.dev/update-guide/) to find out the best way to upgrade your project. +프로젝트 업그레이드를 위한 최적의 방법은 [업그레이드 가이드](https://angular.dev/update-guide/)를 확인하세요. -## Contributing +## 기여하기 -### Contributing Guidelines +### 기여 가이드라인 -Read through our [contributing guidelines][contributing] to learn about our submission process, coding rules, and more. +[기여 가이드][contributing]를 읽고 제출 절차, 코딩 규칙 등에 대해 알아보세요. -### Want to Help? +### 도움을 주고 싶으신가요? -Want to report a bug, contribute some code, or improve the documentation? Excellent! Read up on our guidelines for [contributing][contributing] and then check out one of our issues labeled as [help wanted](https://github.com/angular/angular/labels/help%20wanted) or [good first issue](https://github.com/angular/angular/labels/good%20first%20issue). +버그를 신고하거나, 코드를 기여하거나, 문서를 개선하고 싶으신가요? 훌륭합니다! [기여 가이드][contributing]를 읽은 후, [도움이 필요함](https://github.com/angular/angular/labels/help%20wanted) 또는 [초보자에게 적합](https://github.com/angular/angular/labels/good%20first%20issue) 라벨이 붙은 이슈를 확인해보세요. -### Code of Conduct +### 행동 강령 -Help us keep Angular open and inclusive. Please read and follow our [Code of Conduct][codeofconduct]. +Angular를 개방적이고 포용적인 커뮤니티로 유지할 수 있도록 도와주세요. [행동 강령][codeofconduct]을 읽고 준수해 주세요. -## Community +## 커뮤니티 -Join the conversation and help the community. +대화에 참여하고 커뮤니티에 기여하세요. -- [X (formerly Twitter)][X (formerly Twitter)] +- [X (구 Twitter)][X (formerly Twitter)] - [Bluesky][bluesky] - [Discord][discord] - [Gitter][gitter] - [YouTube][youtube] - [StackOverflow][stackoverflow] -- Find a Local [Meetup][meetup] +- 지역 [밋업][meetup] 찾기 [![Love Angular badge](https://img.shields.io/badge/angular-love-blue?logo=angular&angular=love)](https://www.github.com/angular/angular) -**Love Angular? Give our repo a star :star: :arrow_up:.** +**Angular를 좋아하시나요? 저장소에 별표를 눌러주세요! :star: :arrow_up:** [contributing]: CONTRIBUTING.md [quickstart]: https://angular.dev/tutorials/learn-angular [changelog]: CHANGELOG.md -[ng]: https://angular.dev -[documentation]: https://angular.dev/overview [angularmaterial]: https://material.angular.io/ [cli]: https://angular.dev/tools/cli [architecture]: https://angular.dev/essentials diff --git a/TRANSLATION_CONTRIBUTING.md b/TRANSLATION_CONTRIBUTING.md new file mode 100644 index 000000000000..004b691d13a0 --- /dev/null +++ b/TRANSLATION_CONTRIBUTING.md @@ -0,0 +1,60 @@ +# Angular 한글 문서 번역 기여 가이드 + +Angular 공식 문서의 한글 번역 프로젝트에 참여해 주셔서 감사합니다! 이 문서는 번역 작업에 참여하는 방법과 번역 시 지켜야 할 규칙에 대한 안내입니다. + +## 번역 참여 방법 + +1. 이 저장소를 포크(Fork)합니다. +2. 포크한 저장소를 로컬에 클론합니다. +3. 번역할 문서를 선택합니다. +4. 번역 작업을 수행합니다. +5. 변경사항을 커밋하고 푸시합니다. +6. 원본 저장소로 Pull Request를 제출합니다. + +## 번역 규칙 + +### 기본 원칙 + +1. 원문의 의미를 정확하게 전달하는 것을 최우선으로 합니다. +2. 기술 용어는 가능한 한 한글로 번역하되, 필요시 영문을 병기합니다. +3. 번역된 문장은 자연스러운 한글 문장이 되도록 합니다. +4. 존칭(~합니다, ~입니다 등)을 사용합니다. + +### 기술 용어 번역 + +일관성 있는 번역을 위해 다음과 같은 기술 용어 번역 사전을 참고하세요: + +| 영문 | 한글 번역 | +|------|----------| +| component | 컴포넌트 | +| directive | 지시자 | +| pipe | 파이프 | +| service | 서비스 | +| dependency injection | 의존성 주입 | +| template | 템플릿 | +| binding | 바인딩 | +| router | 라우터 | +| module | 모듈 | +| decorator | 데코레이터 | + +위 목록에 없는 용어는 [용어 토론 이슈](https://github.com/your-username/angular/issues)를 통해 논의할 수 있습니다. + +### 번역 검토 프로세스 + +1. Pull Request가 제출되면 다른 기여자들이 코드 리뷰를 진행합니다. +2. 리뷰어는 다음 사항을 확인합니다: + - 원문의 의미가 정확하게 전달되었는지 + - 번역 규칙이 준수되었는지 + - 문법적 오류가 없는지 + - 용어 사용이 일관적인지 +3. 리뷰를 통과한 번역은 메인 브랜치에 병합됩니다. + +## 번역 진행 상황 확인 + +현재 번역 진행 상황은 [이슈 페이지](https://github.com/your-username/angular/issues)에서 확인할 수 있습니다. 번역을 시작하기 전에 다른 기여자가 이미 해당 문서를 번역하고 있는지 확인하세요. + +## 문의 및 도움말 + +번역 작업 중 질문이나 도움이 필요하시면 [이슈](https://github.com/your-username/angular/issues)를 등록하거나 [디스코드 채널](#)에 참여하세요. + +함께 Angular 공식 문서의 한글화를 완성해 나가요! diff --git a/adev/README.md b/adev/README.md index 6335c24805c3..eef2759d5a3e 100644 --- a/adev/README.md +++ b/adev/README.md @@ -1,53 +1,51 @@ # [Angular.dev](https://www.angular.dev) -This site is built with Angular. +이 사이트는 Angular로 구축되었습니다. -The content is written primarily in Markdown format located in `src/content`. For simple edits, you can directly edit the file on GitHub and generate a Pull Request. +내용은 주로 `src/content`에 위치한 Markdown 형식으로 작성되어 있습니다. 간단한 수정의 경우, GitHub에서 파일을 직접 수정하고 Pull Request를 생성할 수 있습니다. -## Local Development +## 로컬 개발 -For local development, [yarn](https://yarnpkg.com/) is the preferred package manager. You can set up a local environment with the following commands -: +로컬 개발을 위해 [yarn](https://yarnpkg.com/)이 선호되는 패키지 관리자입니다. 다음 명령어로 로컬 환경을 설정할 수 있습니다: ```bash -# Clone Angular repo +# Angular 레포지토리 클론 git clone https://github.com/angular/angular.git -# Navigate to project directory +# 프로젝트 디렉토리로 이동 cd angular -# Install dependencies +# 의존성 설치 yarn -# Build and run local dev server -# Note: Initial build will take some time +# 로컬 개발 서버 빌드 및 실행 +# 주의: 초기 빌드는 시간이 걸릴 수 있습니다 yarn docs ``` -If you are having issues with the docs building, see the [FAQs](#faqs) section. +문서 빌드에 문제가 있는 경우, [자주 묻는 질문(FAQs)](#faqs) 섹션을 참조하세요. -## Contributing +## 기여 -Want to report a bug, contribute some code, or improve the documentation? Excellent! +버그를 보고하거나, 코드를 기여하거나, 문서를 개선하고 싶으신가요? 훌륭합니다! -Read through our [contributing guidelines](/CONTRIBUTING.md) to learn about our submission process, coding rules, and more. +우리의 [기여 가이드라인](/CONTRIBUTING.md)을 읽고 제출 프로세스, 코딩 규칙 등을 알아보세요. -And if you're new, check out one of our issues labeled as [help wanted](https://github.com/angular/angular/labels/help%20wanted) or [good first issue](https://github.com/angular/angular/labels/good%20first%20issue). +그리고 새로 오셨다면, [도움 필요](https://github.com/angular/angular/labels/help%20wanted) 또는 [좋은 첫 문제](https://github.com/angular/angular/labels/good%20first%20issue)로 라벨이 붙은 문제 중 하나를 확인해 보세요. -### Code of Conduct +### 행동 강령 -Help us keep Angular open and inclusive. Please read and follow our [Code of Conduct](/CODE_OF_CONDUCT.md). +Angular를 개방적이고 포용적으로 유지하는 데 도움을 주세요. 우리의 [행동 강령](/CODE_OF_CONDUCT.md)을 읽고 따르세요. -## FAQs +## 자주 묻는 질문(FAQs) -### The build is failing and I'm seeing `bazel:bazel failed: missing input file` messages. +### 빌드에 실패하고 `bazel:bazel failed: missing input file` 메시지가 표시됩니다. -This is most likely due to a bazel dependency / caching issue. To resolve this, run the following command: +이는 대부분 bazel 의존성 / 캐싱 문제 때문일 가능성이 높습니다. 이를 해결하려면 다음 명령어를 실행하세요: ``` -# Try this first +# 먼저 이걸 시도하세요 yarn bazel clean -# If that doesn't work, try it with the expunge flag -yarn bazel clean --expunge -``` +# 그것이 작동하지 않으면, expunge 플래그와 함께 시도하세요 +yarn bazel clean --expunge \ No newline at end of file diff --git a/adev/scripts/update-cli-help/README.md b/adev/scripts/update-cli-help/README.md index a2844a522403..aac45802343f 100644 --- a/adev/scripts/update-cli-help/README.md +++ b/adev/scripts/update-cli-help/README.md @@ -1,3 +1,3 @@ -# Generating data for `angular.dev/cli` +# `angular.dev/cli`를 위한 데이터 생성 -This script updates the Angular CLI help JSON files stored in `adev/src/content/cli/help`. This files are used to generate the [angular.dev CLI](https://angular.dev/cli) pages. +이 스크립트는 `adev/src/content/cli/help`에 저장된 Angular CLI 도움말 JSON 파일을 업데이트합니다. 이 파일들은 [angular.dev CLI](https://angular.dev/cli) 페이지를 생성하는 데 사용됩니다. \ No newline at end of file diff --git a/adev/shared-docs/pipeline/api-gen/rendering/regions/README.md b/adev/shared-docs/pipeline/api-gen/rendering/regions/README.md index 0f18941a8743..663951aad43d 100644 --- a/adev/shared-docs/pipeline/api-gen/rendering/regions/README.md +++ b/adev/shared-docs/pipeline/api-gen/rendering/regions/README.md @@ -1,3 +1,3 @@ -# Code Regions +# 코드 영역 -All the files in the regions folder were implemented based on angular.io: . +regions 폴더의 모든 파일은 angular.io를 기반으로 구현되었습니다: . \ No newline at end of file diff --git a/adev/shared-docs/pipeline/guides/testing/docs-alert/docs-alert.md b/adev/shared-docs/pipeline/guides/testing/docs-alert/docs-alert.md index 56ea9fa35e2f..a98c18ca7e74 100644 --- a/adev/shared-docs/pipeline/guides/testing/docs-alert/docs-alert.md +++ b/adev/shared-docs/pipeline/guides/testing/docs-alert/docs-alert.md @@ -1,18 +1,18 @@ -Note: Use Note for ancillary/additional information that's not _essential_ to the main text. -This is a multiline note +Note: Use Note for ancillary/additional information that's not _essential_ to the main text. +이것은 여러 줄 노트입니다. -Tip: Use Tip to call out a specific task/action users can perform, or a fact that plays directly into a task/action. +Tip: Use Tip to call out a specific task/action users can perform, or a fact that plays directly into a task/action. -TODO: Use TODO for incomplete documentation that you plan to expand soon. You can also assign the TODO, e.g. TODO(emmatwersky): Text. +TODO: Use TODO for incomplete documentation that you plan to expand soon. You can also assign the TODO, e.g. TODO(emmatwersky): Text. -QUESTION: Use Question to pose a question to the reader, kind of like a mini-quiz that they should be able to answer. +QUESTION: Use Question to pose a question to the reader, kind of like a mini-quiz that they should be able to answer. -Summary: Use Summary to provide a two- or three-sentence synopsis of the page or section content, so readers can figure out whether this is the right place for them. +Summary: Use Summary to provide a two- or three-sentence synopsis of the page or section content, so readers can figure out whether this is the right place for them. -TLDR: Use TLDR if you can provide the essential information about a page or section in a sentence or two. +TLDR: Use TLDR if you can provide the essential information about a page or section in a sentence or two. -CRITICAL: Use Critical to call out potential bad stuff or alert the reader they ought to be careful before doing something. For example, Warning: Running `rm` with the `-f` option will delete write-protected files or directories without prompting you. +CRITICAL: Use Critical to call out potential bad stuff or alert the reader they ought to be careful before doing something. For example, Warning: Running `rm` with the `-f` option will delete write-protected files or directories without prompting you. -IMPORTANT: Use Important for information that's crucial to comprehending the text or to completing some task. +IMPORTANT: Use Important for information that's crucial to comprehending the text or to completing some task. -HELPFUL: Use Best practice to call out practices that are known to be successful or better than alternatives. +HELPFUL: Use Best practice to call out practices that are known to be successful or better than alternatives. \ No newline at end of file diff --git a/adev/shared-docs/pipeline/guides/testing/docs-callout/docs-callout.md b/adev/shared-docs/pipeline/guides/testing/docs-callout/docs-callout.md index c329eb6298d3..ed45d8b546ff 100644 --- a/adev/shared-docs/pipeline/guides/testing/docs-callout/docs-callout.md +++ b/adev/shared-docs/pipeline/guides/testing/docs-callout/docs-callout.md @@ -1,16 +1,16 @@ - + - Lorem ipsum dolor sit amet, consectetur adipiscing elit. + 로렘 입숨 돌로르 시트 아메트, 컨세크터 아디픽싱 엘리트. - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. + + 로렘 입숨 돌로르 시트 아메트, 컨세크터 아디픽싱 엘리트. - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. + + 로렘 입숨 돌로르 시트 아메트, 컨세크터 아디픽싱 엘리트. - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. + + 로렘 입숨 돌로르 시트 아메트, 컨세크터 아디픽싱 엘리트. \ No newline at end of file diff --git a/adev/shared-docs/pipeline/guides/testing/docs-card/docs-card.md b/adev/shared-docs/pipeline/guides/testing/docs-card/docs-card.md index 246abf08e81a..df0d6447ea8e 100644 --- a/adev/shared-docs/pipeline/guides/testing/docs-card/docs-card.md +++ b/adev/shared-docs/pipeline/guides/testing/docs-card/docs-card.md @@ -1,5 +1,5 @@ -Card Content - - Card Content +카드 내용 + + 카드 내용 - \ No newline at end of file + \ No newline at end of file diff --git a/adev/shared-docs/pipeline/guides/testing/docs-code-block/docs-code-block.md b/adev/shared-docs/pipeline/guides/testing/docs-code-block/docs-code-block.md index 6896608fd142..a0b443fa9dc3 100644 --- a/adev/shared-docs/pipeline/guides/testing/docs-code-block/docs-code-block.md +++ b/adev/shared-docs/pipeline/guides/testing/docs-code-block/docs-code-block.md @@ -1,3 +1 @@ -```typescript -this is a code block -``` \ No newline at end of file +이것은 코드 블록입니다 \ No newline at end of file diff --git a/adev/shared-docs/pipeline/guides/testing/docs-code-multifile/docs-code-multifile.md b/adev/shared-docs/pipeline/guides/testing/docs-code-multifile/docs-code-multifile.md index af1c4329b15f..e16f3106517c 100644 --- a/adev/shared-docs/pipeline/guides/testing/docs-code-multifile/docs-code-multifile.md +++ b/adev/shared-docs/pipeline/guides/testing/docs-code-multifile/docs-code-multifile.md @@ -1,4 +1,4 @@ -this is code -this is also code +이것은 코드입니다 +이것도 코드입니다 \ No newline at end of file diff --git a/adev/shared-docs/pipeline/guides/testing/docs-code/docs-code.md b/adev/shared-docs/pipeline/guides/testing/docs-code/docs-code.md index 187fa3184c3b..70be2a48319b 100644 --- a/adev/shared-docs/pipeline/guides/testing/docs-code/docs-code.md +++ b/adev/shared-docs/pipeline/guides/testing/docs-code/docs-code.md @@ -1,12 +1,11 @@ -this is code +이것은 코드입니다 - - + \ No newline at end of file diff --git a/adev/shared-docs/pipeline/guides/testing/docs-decorative-header/docs-decorative-header.md b/adev/shared-docs/pipeline/guides/testing/docs-decorative-header/docs-decorative-header.md index a0e6fe346b8a..0fb4b5320f5e 100644 --- a/adev/shared-docs/pipeline/guides/testing/docs-decorative-header/docs-decorative-header.md +++ b/adev/shared-docs/pipeline/guides/testing/docs-decorative-header/docs-decorative-header.md @@ -1,3 +1,3 @@ - -This is header text + +이것은 헤더 텍스트입니다 \ No newline at end of file diff --git a/adev/shared-docs/pipeline/guides/testing/docs-pill-row/docs-pill-row.md b/adev/shared-docs/pipeline/guides/testing/docs-pill-row/docs-pill-row.md index f0a36fa2b371..33411035adf8 100644 --- a/adev/shared-docs/pipeline/guides/testing/docs-pill-row/docs-pill-row.md +++ b/adev/shared-docs/pipeline/guides/testing/docs-pill-row/docs-pill-row.md @@ -1,4 +1,4 @@ - - + + \ No newline at end of file diff --git a/adev/shared-docs/pipeline/guides/testing/docs-pill/docs-pill.md b/adev/shared-docs/pipeline/guides/testing/docs-pill/docs-pill.md index 14dfb4bb7bb5..d90d10acaf47 100644 --- a/adev/shared-docs/pipeline/guides/testing/docs-pill/docs-pill.md +++ b/adev/shared-docs/pipeline/guides/testing/docs-pill/docs-pill.md @@ -1,4 +1,4 @@ Text to force this as inline. - - - \ No newline at end of file + + + \ No newline at end of file diff --git a/adev/shared-docs/pipeline/guides/testing/docs-step/docs-step.md b/adev/shared-docs/pipeline/guides/testing/docs-step/docs-step.md index 7c46f019a653..452626a007ac 100644 --- a/adev/shared-docs/pipeline/guides/testing/docs-step/docs-step.md +++ b/adev/shared-docs/pipeline/guides/testing/docs-step/docs-step.md @@ -1,6 +1,6 @@ - - Do the first thing. + + 첫 번째 일을 하세요. - - Do another thing after that. + + 그 후에 다른 일을 하세요. \ No newline at end of file diff --git a/adev/shared-docs/pipeline/guides/testing/docs-video/docs-video.md b/adev/shared-docs/pipeline/guides/testing/docs-video/docs-video.md index a1f4f87d8e62..26013205a1ea 100644 --- a/adev/shared-docs/pipeline/guides/testing/docs-video/docs-video.md +++ b/adev/shared-docs/pipeline/guides/testing/docs-video/docs-video.md @@ -1,2 +1,2 @@ This is a video: - \ No newline at end of file + \ No newline at end of file diff --git a/adev/shared-docs/pipeline/guides/testing/docs-workflow/docs-workflow.md b/adev/shared-docs/pipeline/guides/testing/docs-workflow/docs-workflow.md index e5e74a90ab70..b583dafa11e2 100644 --- a/adev/shared-docs/pipeline/guides/testing/docs-workflow/docs-workflow.md +++ b/adev/shared-docs/pipeline/guides/testing/docs-workflow/docs-workflow.md @@ -1,8 +1,8 @@ - - Do the first thing. + + 첫 번째 작업을 수행합니다. - - Do another thing after that. + + 그 후에 다른 작업을 수행합니다. \ No newline at end of file diff --git a/adev/shared-docs/pipeline/guides/testing/heading/heading.md b/adev/shared-docs/pipeline/guides/testing/heading/heading.md index 31203e15b42c..6b7b84c07114 100644 --- a/adev/shared-docs/pipeline/guides/testing/heading/heading.md +++ b/adev/shared-docs/pipeline/guides/testing/heading/heading.md @@ -1,13 +1,13 @@ -# Top Header (h1) -## Headers (h2) -### Smaller headers (h3) -#### Even smaller (h4) -##### Even more smaller (h5) -###### The smallest! (h6) -##### Another "more smaller" (h5) -## Duplicate Anchor -## Duplicate Anchor -## `myClass.myMethod` is the best -## ステップ 2 - アプリケーションのレイアウトに新しいコンポーネントを追加 -## My heading {# my-custom-id } -## Query for the `

` \ No newline at end of file +# 상단 헤더 (h1) +## 헤더 (h2) +### 더 작은 헤더 (h3) +#### 더욱 더 작은 (h4) +##### 더더욱 작은 (h5) +###### 가장 작은! (h6) +##### 또 다른 "더 작은" (h5) +## 중복 앵커 +## 중복 앵커 +## `myClass.myMethod`가 최고입니다 +## 단계 2 - 애플리케이션 레이아웃에 새 구성 요소 추가 +## 내 제목 {# my-custom-id } +## `

`에 대한 쿼리 \ No newline at end of file diff --git a/adev/shared-docs/pipeline/guides/testing/image/image.md b/adev/shared-docs/pipeline/guides/testing/image/image.md index f8e9bcee3728..bb0050258ac5 100644 --- a/adev/shared-docs/pipeline/guides/testing/image/image.md +++ b/adev/shared-docs/pipeline/guides/testing/image/image.md @@ -1,2 +1,2 @@ -![New Logo!](https://angular.dev/favicon.ico 'Our new icon') -![New Logo!](./some-image.png 'Local Image') \ No newline at end of file +![새로운 로고!](https://angular.dev/favicon.ico '우리의 새로운 아이콘') +![새로운 로고!](./some-image.png '로컬 이미지') \ No newline at end of file diff --git a/adev/shared-docs/pipeline/guides/testing/link/link.md b/adev/shared-docs/pipeline/guides/testing/link/link.md index a25130fef56e..400156c52dc9 100644 --- a/adev/shared-docs/pipeline/guides/testing/link/link.md +++ b/adev/shared-docs/pipeline/guides/testing/link/link.md @@ -1,3 +1,3 @@ -[Angular Site](https://angular.dev) -[same page](#test) -[same site](../other/page) \ No newline at end of file +[Angular Site](https://angular.dev) +[same page](#test) +[same site](../other/page) \ No newline at end of file diff --git a/adev/shared-docs/pipeline/guides/testing/list/list.md b/adev/shared-docs/pipeline/guides/testing/list/list.md index 3ed62056b230..1f30a4a10e58 100644 --- a/adev/shared-docs/pipeline/guides/testing/list/list.md +++ b/adev/shared-docs/pipeline/guides/testing/list/list.md @@ -1,12 +1,12 @@ # Ordered List -1. First Item -2. Another Item -3. Last in order +1. 첫 번째 항목 +2. 다른 항목 +3. 마지막 순서 # Unordered List -- Order -- here -- matter -- doesn't -- [some link](https://angular.dev) -- Code block `SomeClass` \ No newline at end of file +- 순서 +- 여기 +- 중요하지 않음 +- 중요하지 않음 +- [일부 링크](https://angular.dev) +- 코드 블록 `SomeClass` \ No newline at end of file diff --git a/adev/shared-docs/pipeline/guides/testing/table/table.md b/adev/shared-docs/pipeline/guides/testing/table/table.md index d4dce00341a9..39bbe7e7d778 100644 --- a/adev/shared-docs/pipeline/guides/testing/table/table.md +++ b/adev/shared-docs/pipeline/guides/testing/table/table.md @@ -1,5 +1,5 @@ -| Sports | Season | +| 스포츠 | 시즌 | | ---------------- | ------ | -| Skiing | Winter | -| Baseball | Summer | -| Running | Year Round | \ No newline at end of file +| 스키 | 겨울 | +| 야구 | 여름 | +| 러닝 | 연중 | \ No newline at end of file diff --git a/adev/shared-docs/pipeline/guides/testing/text/text.md b/adev/shared-docs/pipeline/guides/testing/text/text.md index 1960b2d29f70..a5f0f8d07e6f 100644 --- a/adev/shared-docs/pipeline/guides/testing/text/text.md +++ b/adev/shared-docs/pipeline/guides/testing/text/text.md @@ -1,5 +1,5 @@ -This is a string that contains an emoji, 😎. See there it was; +이 문자열에는 이모지가 포함되어 있습니다, 😎. 봐요, 저기에 있었어요; -# This header causes there to be two text areas +# 이 헤더는 두 개의 텍스트 영역을 생성합니다. -This is a string without an emoji. \ No newline at end of file +이 문자열에는 이모지가 없습니다. \ No newline at end of file diff --git a/adev/src/app/app.component.html b/adev/src/app/app.component.html index e589f3591286..83268bf239f0 100644 --- a/adev/src/app/app.component.html +++ b/adev/src/app/app.component.html @@ -1,8 +1,13 @@ - + @defer (when isBrowser) { - + }
diff --git a/adev/src/app/core/layout/footer/footer.component.html b/adev/src/app/core/layout/footer/footer.component.html index bc076da2ebda..f003dafd246c 100644 --- a/adev/src/app/core/layout/footer/footer.component.html +++ b/adev/src/app/core/layout/footer/footer.component.html @@ -1,13 +1,13 @@

type="button" (click)="showUpdatePath()" class="docs-primary-btn show-button" - [attr.text]="'Show me how to update!'" + [attr.text]="'업데이트 방법 보기!'" > - Show me how to update! + 업데이트 방법 보기! @@ -142,8 +140,8 @@

Package Manager

{{title}}

-

Before you update

- @for (r of beforeRecommendations; track $index) { +

업데이트 전

+ @for (r of beforeRecommendations; track $index) {
@@ -151,14 +149,14 @@

Before you update

} @if (beforeRecommendations.length <= 0) {
- You don't need to do anything before moving between these versions. + 마이그레이션에 앞서 필요한 작업이 없습니다.
} -

Update to the new version

+

새 버전으로 업데이트

@if (duringRecommendations.length > 0) {
- Review these changes and perform the actions to update your application. + 변경 사항을 확인하고 마이그레이션을 진행하세요.
} @@ -170,11 +168,11 @@

Update to the new version

} @if (duringRecommendations.length <= 0) {
- There aren't any recommendations for moving between these versions. + 마이그레이션에 대한 권장 사항이 없습니다.
} -

After you update

+

업데이트 후

@for (r of afterRecommendations; track $index) {
@@ -183,7 +181,7 @@

After you update

} @if (afterRecommendations.length <= 0) {
- You don't need to do anything after moving between these versions. + 마이그레이션 후 필요한 작업이 없습니다.
}
diff --git a/adev/src/content/best-practices/a11y.md b/adev/src/content/best-practices/a11y.md index 2672002a2571..5fc740eee9da 100644 --- a/adev/src/content/best-practices/a11y.md +++ b/adev/src/content/best-practices/a11y.md @@ -1,80 +1,80 @@ -# Accessibility in Angular +# 앵귤러에서의 접근성 -The web is used by a wide variety of people, including those who have visual or motor impairments. -A variety of assistive technologies are available that make it much easier for these groups to interact with web-based software applications. -Also, designing an application to be more accessible generally improves the user experience for all users. +웹은 시각 또는 운동 장애가 있는 사람들을 포함하여 다양한 사람들이 사용합니다. +이러한 그룹이 웹 기반 소프트웨어 애플리케이션과 상호작용할 수 있도록 돕는 다양한 보조 기술이 있습니다. +또한, 애플리케이션을 더 접근 가능하게 설계하는 것은 일반적으로 모든 사용자에게 더 나은 사용자 경험을 제공합니다. -For an in-depth introduction to issues and techniques for designing accessible applications, see Google's web.dev [Learn Accessibility](https://web.dev/learn/accessibility/) course. +접근 가능한 애플리케이션을 설계하기 위한 문제와 기술에 대한 심층적인 소개는 구글 웹.dev의 [접근성 배우기](https://web.dev/learn/accessibility/) 과정을 참조하십시오. -This page discusses best practices for designing Angular applications that work well for all users, including those who rely on assistive technologies. +이 페이지에서는 보조 기술에 의존하는 사용자를 포함하여 모든 사용자에게 잘 작동하는 앵귤러 애플리케이션을 설계하기 위한 모범 사례를 논의합니다. -## Accessibility attributes +## 접근 속성 -Building accessible web experience often involves setting [Accessible Rich Internet Applications \(ARIA\) attributes](https://web.dev/learn/accessibility/aria-html/) to provide semantic meaning where it might otherwise be missing. -Use attribute binding template syntax to control the values of accessibility-related attributes. +접근 가능한 웹 경험을 구축하는 것은 종종 [접근 가능 리치 인터넷 애플리케이션 \(ARIA\) 속성](https://web.dev/learn/accessibility/aria-html/)을 설정하여 논리적 의미를 제공하는 것과 관련이 있습니다. +접근성과 관련된 속성의 값을 제어하기 위해 속성 바인딩 템플릿 구문을 사용하십시오. -When binding to ARIA attributes in Angular, you must use the `attr.` prefix. The ARIA specification depends specifically on HTML attributes rather than properties of DOM elements. +앵귤러에서 ARIA 속성에 바인딩할 때는 `attr.` 접두사를 사용해야 합니다. ARIA 사양은 DOM 요소의 속성이 아니라 HTML 속성에 의존합니다. - + -Note: This syntax is only necessary for attribute *bindings*. -Static ARIA attributes require no extra syntax. +참고: 이 구문은 속성 *바인딩*에만 필요합니다. +정적 ARIA 속성에는 추가 구문이 필요하지 않습니다. - + -HELPFUL: By convention, HTML attributes use lowercase names \(`tabindex`\), while properties use camelCase names \(`tabIndex`\). +유용한 팁: 관례적으로, HTML 속성은 소문자 이름을 사용하고 \(`tabindex`\), 속성은 카멜 케이스 이름을 사용합니다 \(`tabIndex`\). -See the [Binding syntax guide](guide/templates) for more background on the difference between attributes and properties. +속성과 속성의 차이에 대한 자세한 내용은 [바인딩 구문 가이드](guide/templates)를 참조하십시오. -## Angular UI components +## 앵귤러 UI 구성 요소 -The [Angular Material](https://material.angular.io) library, which is maintained by the Angular team, is a suite of reusable UI components that aims to be fully accessible. -The [Component Development Kit (CDK)](https://material.angular.io/cdk/categories) includes the `a11y` package that provides tools to support various areas of accessibility. -For example: +앵귤러 팀이 유지 관리하는 [앵귤러 머티리얼](https://material.angular.io) 라이브러리는 완전히 접근 가능하도록 설계된 재사용 가능한 UI 구성 요소 모음입니다. +[구성 요소 개발 키트(CDK)](https://material.angular.io/cdk/categories)에는 다양한 접근성을 지원하는 도구를 제공하는 `a11y` 패키지가 포함되어 있습니다. +예를 들면: -* `LiveAnnouncer` is used to announce messages for screen-reader users using an `aria-live` region. - See the W3C documentation for more information on [aria-live regions](https://www.w3.org/WAI/PF/aria-1.1/states_and_properties#aria-live). +* `LiveAnnouncer`는 화면 리더 사용자에게 메시지를 알리기 위해 `aria-live` 영역을 사용합니다. + `aria-live` 영역에 대한 자세한 내용은 W3C 문서를 참조하십시오. [aria-live 영역](https://www.w3.org/WAI/PF/aria-1.1/states_and_properties#aria-live). -* The `cdkTrapFocus` directive traps Tab-key focus within an element. - Use it to create accessible experience for components such as modal dialogs, where focus must be constrained. +* `cdkTrapFocus` 지시문은 Tab 키 포커스를 요소 내에 가둡니다. + 이 지시문을 사용하여 포커스를 제어해야 하는 모달 대화상자와 같은 구성 요소에 대한 접근 가능한 경험을 생성하십시오. -For full details of these and other tools, see the [Angular CDK accessibility overview](https://material.angular.io/cdk/a11y/overview). +이들 및 기타 도구의 전체 세부정보는 [앵귤러 CDK 접근성 개요](https://material.angular.io/cdk/a11y/overview)를 참조하십시오. -### Augmenting native elements +### 네이티브 요소 보강 -Native HTML elements capture several standard interaction patterns that are important to accessibility. -When authoring Angular components, you should re-use these native elements directly when possible, rather than re-implementing well-supported behaviors. +네이티브 HTML 요소는 접근성에 중요한 여러 표준 상호작용 패턴을 캡처합니다. +앵귤러 구성 요소를 저작할 때는 잘 지원되는 동작을 재구현하기보다는 이러한 네이티브 요소를 직접 재사용해야 합니다. -For example, instead of creating a custom element for a new variety of button, create a component that uses an attribute selector with a native ` + ``` ```angular-html - -

Your profile photo

+ +

당신의 프로필 사진

Your profile photo - + ``` -In the above example, `` is the host element of the `ProfilePhoto` component. +위의 예에서 ``는 `ProfilePhoto` 컴포넌트의 호스트 요소입니다. -## Binding to the host element +## 호스트 요소에 바인딩 -A component can bind properties, attributes, and events to its host element. This behaves -identically to bindings on elements inside the component's template, but instead defined with -the `host` property in the `@Component` decorator: +컴포넌트는 호스트 요소에 속성, 특성 및 이벤트를 바인딩할 수 있습니다. 이는 컴포넌트의 템플릿 내 요소에 대한 바인딩과 동일하게 작동하지만, `@Component` 데코레이터의 `host` 속성으로 정의됩니다: ```angular-ts @Component({ @@ -62,12 +58,11 @@ export class CustomSlider { } ``` -## The `@HostBinding` and `@HostListener` decorators +## `@HostBinding` 및 `@HostListener` 데코레이터 -You can alternatively bind to the host element by applying the `@HostBinding` and `@HostListener` -decorator to class members. +대안으로 클래스 멤버에 `@HostBinding` 및 `@HostListener` 데코레이터를 적용하여 호스트 요소에 바인딩할 수 있습니다. -`@HostBinding` lets you bind host properties and attributes to properties and methods: +`@HostBinding`은 호스트 속성과 특성을 속성 및 메서드에 바인딩할 수 있게 해줍니다: ```angular-ts @Component({ @@ -86,8 +81,7 @@ export class CustomSlider { } ``` -`@HostListener` lets you bind event listeners to the host element. The decorator accepts an event -name and an optional array of arguments: +`@HostListener`는 호스트 요소에 이벤트 리스너를 바인딩할 수 있게 해줍니다. 이 데코레이터는 이벤트 이름과 선택적으로 인수 배열을 받습니다: ```ts export class CustomSlider { @@ -98,13 +92,11 @@ export class CustomSlider { } ``` -**Always prefer using the `host` property over `@HostBinding` and `@HostListener`.** These -decorators exist exclusively for backwards compatibility. +**항상 `@HostBinding` 및 `@HostListener`보다 `host` 속성을 사용하는 것을 선호하세요.** 이 데코레이터는 오직 하위 호환성을 위해 존재합니다. -## Binding collisions +## 바인딩 충돌 -When you use a component in a template, you can add bindings to that component instance's element. -The component may _also_ define host bindings for the same properties or attributes. +템플릿에서 컴포넌트를 사용할 때 해당 컴포넌트 인스턴스의 요소에 바인딩을 추가할 수 있습니다. 컴포넌트는 동일한 속성이나 특성에 대해 호스트 바인딩도 정의할 수 있습니다. ```angular-ts @Component({ @@ -121,8 +113,8 @@ export class ProfilePhoto { /* ... */ } ``` -In cases like this, the following rules determine which value wins: +이와 같은 경우, 다음 규칙에 따라 어떤 값이 우선하는지를 결정합니다: -- If both values are static, the instance binding wins. -- If one value is static and the other dynamic, the dynamic value wins. -- If both values are dynamic, the component's host binding wins. +- 두 값이 모두 정적이면 인스턴스 바인딩이 우선합니다. +- 하나의 값이 정적이고 다른 하나가 동적이라면 동적 값이 우선합니다. +- 두 값이 모두 동적이면 컴포넌트의 호스트 바인딩이 우선합니다. \ No newline at end of file diff --git a/adev/src/content/guide/components/inheritance.md b/adev/src/content/guide/components/inheritance.md index 937d80f617f4..10c34a5a3f98 100644 --- a/adev/src/content/guide/components/inheritance.md +++ b/adev/src/content/guide/components/inheritance.md @@ -1,11 +1,10 @@ -# Inheritance +# 상속 -Tip: This guide assumes you've already read the [Essentials Guide](essentials). Read that first if you're new to Angular. +팁: 이 가이드는 이미 [필수 가이드](essentials)를 읽었고 Angular에 익숙하지 않은 경우 먼저 읽어야 한다고 가정합니다. -Angular components are TypeScript classes and participate in standard JavaScript inheritance -semantics. +Angular 컴포넌트는 TypeScript 클래스이며 표준 JavaScript 상속 의미론에 참여합니다. -A component can extend any base class: +컴포넌트는 어떤 기본 클래스도 확장할 수 있습니다: ```ts export class ListboxBase { @@ -14,15 +13,13 @@ export class ListboxBase { @Component({ ... }) export class CustomListbox extends ListboxBase { - // CustomListbox inherits the `value` property. + // CustomListbox는 `value` 속성을 상속받습니다. } ``` -## Extending other components and directives +## 다른 컴포넌트 및 지시문 확장 -When a component extends another component or a directive, it inherits some of the metadata defined in -the base class's decorator and the base class's decorated members. This includes -host bindings, inputs, outputs, lifecycle methods. +컴포넌트가 다른 컴포넌트 또는 지시문을 확장할 때, 기본 클래스의 장식자에 정의된 일부 메타데이터와 기본 클래스의 장식된 멤버를 상속받습니다. 여기에는 호스트 바인딩, 입력, 출력, 생명 주기 메소드가 포함됩니다. ```angular-ts @Component({ @@ -58,17 +55,13 @@ export class CustomListbox extends ListboxBase { } ``` -In the example above, `CustomListbox` inherits all the information associated with `ListboxBase`, -overriding the selector and template with its own values. `CustomListbox` has two inputs (`value` -and `disabled`) and two event listeners (`keydown` and `click`). +위의 예에서 `CustomListbox`는 `ListboxBase`와 관련된 모든 정보를 상속받으며, 자신의 값으로 선택자와 템플릿을 재정의합니다. `CustomListbox`에는 두 개의 입력(`value` 및 `disabled`)과 두 개의 이벤트 리스너(`keydown` 및 `click`)가 있습니다. -Child classes end up with the _union_ of all of their ancestors' inputs, outputs, and host bindings -and their own. +자식 클래스는 모든 조상의 입력, 출력 및 호스트 바인딩과 자신의 입력의 _합집합_을 가지게 됩니다. -### Forwarding injected dependencies +### 주입된 종속성 전달 -If a base class relies on dependency injection, the child class must explicitly pass these -dependencies to `super`. +기본 클래스가 종속성 주입에 의존하는 경우, 자식 클래스는 이러한 종속성을 `super`에 명시적으로 전달해야 합니다. ```ts @Component({ ... }) @@ -84,11 +77,9 @@ export class CustomListbox extends ListboxBase { } ``` -### Overriding lifecycle methods +### 생명 주기 메소드 재정의 -If a base class defines a lifecycle method, such as `ngOnInit`, a child class that also -implements `ngOnInit` _overrides_ the base class's implementation. If you want to preserve the base -class's lifecycle method, explicitly call the method with `super`: +기본 클래스가 `ngOnInit`와 같은 생명 주기 메소드를 정의하는 경우, `ngOnInit`을 구현하는 자식 클래스는 기본 클래스의 구현을 _재정의_합니다. 기본 클래스의 생명 주기 메소드를 보존하려면 `super`를 사용하여 메소드를 명시적으로 호출하십시오: ```ts @Component({ ... }) @@ -105,5 +96,4 @@ export class CustomListbox extends ListboxBase { super.ngOnInit(); /* ... */ } -} -``` +} \ No newline at end of file diff --git a/adev/src/content/guide/components/inputs.md b/adev/src/content/guide/components/inputs.md index 9c4425fce07b..5b265bf81117 100644 --- a/adev/src/content/guide/components/inputs.md +++ b/adev/src/content/guide/components/inputs.md @@ -1,100 +1,99 @@ -# Accepting data with input properties +# 입력 속성으로 데이터 받기 -Tip: This guide assumes you've already read the [Essentials Guide](essentials). Read that first if you're new to Angular. +팁: 이 가이드는 여러분이 이미 [필수 가이드](essentials)를 읽었다고 가정합니다. Angular에 익숙하지 않은 경우 먼저 그 내용을 읽어보세요. -Tip: If you're familiar with other web frameworks, input properties are similar to _props_. +팁: 다른 웹 프레임워크에 익숙하다면, 입력 속성은 _props_와 유사합니다. -When you use a component, you commonly want to pass some data to it. A component specifies the data that it accepts by declaring -**inputs**: +컴포넌트를 사용할 때, 일반적으로 데이터를 전달하고 싶습니다. 컴포넌트는 **입력**을 선언하여 수용할 수 있는 데이터를 지정합니다: import {Component, input} from '@angular/core'; @Component({/*...*/}) export class CustomSlider { - // Declare an input named 'value' with a default value of zero. + // 기본 값이 0인 'value'라는 입력을 선언합니다. value = input(0); } -This lets you bind to the property in a template: +이렇게 하면 템플릿에서 속성에 바인딩할 수 있습니다: ```angular-html ``` -If an input has a default value, TypeScript infers the type from the default value: +입력에 기본 값이 있는 경우, TypeScript는 기본 값으로부터 타입을 추론합니다: ```typescript @Component({/*...*/}) export class CustomSlider { - // TypeScript infers that this input is a number, returning InputSignal. + // TypeScript는 이 입력이 숫자임을 추론하여 InputSignal를 반환합니다. value = input(0); } ``` -You can explicitly declare a type for the input by specifying a generic parameter to the function. +입력에 대한 타입을 명시적으로 선언하려면 함수에 제네릭 매개변수를 지정할 수 있습니다. -If an input without a default value is not set, its value is `undefined`: +기본 값이 없는 입력이 설정되지 않으면, 그 값은 `undefined`입니다: ```typescript @Component({/*...*/}) export class CustomSlider { - // Produces an InputSignal because `value` may not be set. + // `value`가 설정되지 않을 수 있기 때문에 InputSignal를 생성합니다. value = input(); } ``` -**Angular records inputs statically at compile-time**. Inputs cannot be added or removed at run-time. +**Angular는 컴파일 타임에 정적으로 입력을 기록합니다**. 입력은 런타임에 추가하거나 제거할 수 없습니다. -The `input` function has special meaning to the Angular compiler. **You can exclusively call `input` in component and directive property initializers.** +`input` 함수는 Angular 컴파일러에 특별한 의미를 갖습니다. **컴포넌트 및 지시자의 속성 초기화기에만 `input`을 독점적으로 호출할 수 있습니다.** -When extending a component class, **inputs are inherited by the child class.** +컴포넌트 클래스가 확장될 때, **입력은 자식 클래스에 상속됩니다.** -**Input names are case-sensitive.** +**입력 이름은 대소문자를 구분합니다.** -## Reading inputs +## 입력 읽기 -The `input` function returns an `InputSignal`. You can read the value by calling the signal: +`input` 함수는 `InputSignal`을 반환합니다. 신호를 호출하여 값을 읽을 수 있습니다: import {Component, input} from '@angular/core'; @Component({/*...*/}) export class CustomSlider { - // Declare an input named 'value' with a default value of zero. + // 기본 값이 0인 'value'라는 입력을 선언합니다. value = input(0); - // Create a computed expression that reads the value input - label = computed(() => `The slider's value is ${this.value()}`); + // 입력된 값을 읽는 계산된 표현을 만듭니다. + label = computed(() => `슬라이더의 값은 ${this.value()}`); } -Signals created by the `input` function are read-only. +`input` 함수로 생성된 신호는 읽기 전용입니다. -## Required inputs +## 필수 입력 -You can declare that an input is `required` by calling `input.required` instead of `input`: +입력이 `required`라고 선언하려면 `input.required`를 호출합니다: @Component({/*...*/}) export class CustomSlider { - // Declare a required input named value. Returns an `InputSignal`. + // 필수 입력인 'value'를 선언합니다. InputSignal를 반환합니다. value = input.required(); } -Angular enforces that required inputs _must_ be set when the component is used in a template. If you try to use a component without specifying all of its required inputs, Angular reports an error at build-time. +Angular는 컴포넌트가 템플릿에서 사용될 때 필수 입력이 _반드시_ 설정되어야 한다고 강제합니다. 모든 필수 입력을 지정하지 않고 컴포넌트를 사용하려고 하면, Angular는 빌드 타임에 오류를 보고합니다. -Required inputs do not automatically include `undefined` in the generic parameter of the returned `InputSignal`. +필수 입력은 반환된 `InputSignal`의 제네릭 매개변수에 `undefined`를 자동으로 포함하지 않습니다. -## Configuring inputs +## 입력 구성 -The `input` function accepts a config object as a second parameter that lets you change the way that input works. +`input` 함수는 입력이 작동하는 방식을 변경할 수 있는 구성 객체를 두 번째 매개변수로 받아들입니다. -### Input transforms +### 입력 변형 -You can specify a `transform` function to change the value of an input when it's set by Angular. +Angular가 설정할 때 입력의 값을 변경할 `transform` 함수를 지정할 수 있습니다. @Component({ @@ -114,17 +113,17 @@ function trimString(value: string | undefined): string { ``` -In the example above, whenever the value of `systemVolume` changes, Angular runs `trimString` and sets `label` to the result. +위 예제에서, `systemVolume`의 값이 변경될 때마다 Angular는 `trimString`을 실행하고 결과로 `label`을 설정합니다. -The most common use-case for input transforms is to accept a wider range of value types in templates, often including `null` and `undefined`. +입력 변형의 가장 일반적인 사용 사례는 비어 있거나 `undefined` 및 `null`을 포함한 더 넓은 범위의 값 유형을 템플릿에서 수용하기 위한 것입니다. -**Input transform function must be statically analyzable at build-time.** You cannot set transform functions conditionally or as the result of an expression evaluation. +**입력 변형 함수는 빌드 타임에 정적으로 분석 가능해야 합니다.** 변형 함수를 조건부로 설정하거나 표현식 평가의 결과로 설정할 수 없습니다. -**Input transform functions should always be [pure functions](https://en.wikipedia.org/wiki/Pure_function).** Relying on state outside the transform function can lead to unpredictable behavior. +**입력 변형 함수는 항상 [순수 함수](https://en.wikipedia.org/wiki/Pure_function)여야 합니다.** 변형 함수 외부의 상태에 의존하는 것은 예측할 수 없는 동작을 초래할 수 있습니다. -#### Type checking +#### 타입 검사 -When you specify an input transform, the type of the transform function's parameter determines the types of values that can be set to the input in a template. +입력 변형을 지정할 때 변형 함수의 매개변수 타입은 템플릿에서 입력에 설정할 수 있는 값의 타입을 결정합니다. @Component({/*...*/}) @@ -137,11 +136,11 @@ function appendPx(value: number): string { } -In the example above, the `widthPx` input accepts a `number` while the `InputSignal` property returns a `string`. +위 예제에서, `widthPx` 입력은 `number`를 수용하고, `InputSignal` 속성은 `string`을 반환합니다. -#### Built-in transformations +#### 내장 변형 -Angular includes two built-in transform functions for the two most common scenarios: coercing values to boolean and numbers. +Angular는 가장 일반적인 두 가지 시나리오, 즉 값을 부울과 숫자로 강제하는 두 가지 내장 변형 함수를 포함합니다. import {Component, input, booleanAttribute, numberAttribute} from '@angular/core'; @@ -153,14 +152,13 @@ export class CustomSlider { } -`booleanAttribute` imitates the behavior of standard HTML [boolean attributes](https://developer.mozilla.org/docs/Glossary/Boolean/HTML), where the -_presence_ of the attribute indicates a "true" value. However, Angular's `booleanAttribute` treats the literal string `"false"` as the boolean `false`. +`booleanAttribute`는 표준 HTML [부울 속성](https://developer.mozilla.org/docs/Glossary/Boolean/HTML)의 동작을 모방하며, 이 경우 속성의 _존재_가 "true" 값을 나타냅니다. 그러나 Angular의 `booleanAttribute`는 리터럴 문자열 `"false"`를 부울 `false`로 간주합니다. -`numberAttribute` attempts to parse the given value to a number, producing `NaN` if parsing fails. +`numberAttribute`는 주어진 값을 숫자로 분석하려고 시도하며, 분석에 실패하면 `NaN`을 생성합니다. -### Input aliases +### 입력 별칭 -You can specify the `alias` option to change the name of an input in templates. +템플릿에서 입력의 이름을 변경할 수 있도록 `alias` 옵션을 지정할 수 있습니다. @Component({/*...*/}) @@ -173,58 +171,58 @@ export class CustomSlider { ``` -This alias does not affect usage of the property in TypeScript code. +이 별칭은 TypeScript 코드에서 속성 사용에 영향을 주지 않습니다. -While you should generally avoid aliasing inputs for components, this feature can be useful for renaming properties while preserving an alias for the original name or for avoiding collisions with the name of native DOM element properties. +컴포넌트의 입력에 별칭을 부여하는 것을 일반적으로 피해야 하지만, 이 기능은 원래 이름의 별칭을 유지하거나 네이티브 DOM 요소 속성의 이름과의 충돌을 피하기 위한 유용한 방법이 될 수 있습니다. -## Model inputs +## 모델 입력 -**Model inputs** are a special type of input that enable a component to propagate new values back to its parent component. +**모델 입력**은 컴포넌트가 새 값을 부모 컴포넌트로 전파할 수 있게 하는 특별한 유형의 입력입니다. -When creating a component, you can define a model input similarly to how you create a standard input. +컴포넌트를 생성할 때, 표준 입력을 생성하는 방식과 유사하게 모델 입력을 정의할 수 있습니다. -Both types of input allow someone to bind a value into the property. However, **model inputs allow the component author to write values into the property**. If the property is bound with a two-way binding, the new value propagates to that binding. +두 종류의 입력 모두 누군가가 속성에 값을 바인딩할 수 있게 합니다. 그러나 **모델 입력은 컴포넌트 작성자가 속성에 값을 기록할 수 있게 합니다**. 속성이 양방향 바인딩으로 연결되어 있으면, 새 값이 그 바인딩으로 전파됩니다. ```typescript @Component({ /* ... */}) export class CustomSlider { - // Define a model input named "value". + // "value"라는 모델 입력을 정의합니다. value = model(0); increment() { - // Update the model input with a new value, propagating the value to any bindings. + // 새로운 값으로 모델 입력을 업데이트하여 모든 바인딩에 값을 전파합니다. this.value.update(oldValue => oldValue + 10); } } @Component({ /* ... */ - // Using the two-way binding syntax means that any changes to the slider's - // value automatically propagate back to the `volume` signal. - // Note that this binding uses the signal *instance*, not the signal value. + // 양방향 바인딩 구문을 사용하면 슬라이더의 + // 값 변경이 자동으로 `volume` 신호로 전파됩니다. + // 이 바인딩은 신호의 *인스턴스*를 사용하며, 신호 값이 아닙니다. template: ``, }) export class MediaControls { - // Create a writable signal for the `volume` local state. + // `volume` 로컬 상태에 대한 쓰기 가능한 신호를 생성합니다. volume = signal(0); } ``` -In the above example, the `CustomSlider` can write values into its `value` model input, which then propagates those values back to the `volume` signal in `MediaControls`. This binding keeps the values of `value` and `volume` in sync. Notice that the binding passes the `volume` signal instance, not the _value_ of the signal. +위 예제에서 `CustomSlider`는 자신의 `value` 모델 입력에 값을 기록할 수 있으며, 그 값은 `MediaControls`의 `volume` 신호로 전파됩니다. 이 바인딩은 `value`와 `volume`의 값을 동기화합니다. 바인딩이 `volume` 신호 인스턴스를 전달하고 신호의 _값_이 아님에 유의하십시오. -In other respects, model inputs work similarly to standard inputs. You can read the value by calling the signal function, including in reactive contexts like `computed` and `effect`. +다른 측면에서 모델 입력은 표준 입력과 유사하게 작동합니다. 신호 함수를 호출하여 값을 읽을 수 있으며, 반응형 컨텍스트인 `computed` 및 `effect`에서도 포함됩니다. -See [Two-way binding](guide/templates/two-way-binding) for more details on two-way binding in templates. +템플릿에서의 양방향 바인딩에 대한 자세한 내용은 [양방향 바인딩](guide/templates/two-way-binding)을 참조하십시오. -### Two-way binding with plain properties +### 일반 속성과의 양방향 바인딩 -You can bind a plain JavaScript property to a model input. +일반 JavaScript 속성을 모델 입력에 바인딩할 수 있습니다. ```angular-ts @Component({ /* ... */ - // `value` is a model input. - // The parenthesis-inside-square-brackets syntax (aka "banana-in-a-box") creates a two-way binding + // `value`는 모델 입력입니다. + // 대괄호 안의 괄호 구문(일명 "바나나-상자")은 양방향 바인딩을 생성합니다. template: '', }) export class MediaControls { @@ -232,46 +230,46 @@ export class MediaControls { } ``` -In the example above, the `CustomSlider` can write values into its `value` model input, which then propagates those values back to the `volume` property in `MediaControls`. This binding keeps the values of `value` and `volume` in sync. +위 예제에서 `CustomSlider`는 자신의 `value` 모델 입력에 값을 기록할 수 있으며, 그 값은 `MediaControls`의 `volume` 속성으로 전파됩니다. 이 바인딩은 `value`와 `volume`의 값을 동기화합니다. -### Implicit `change` events +### 암묵적 `change` 이벤트 -When you declare a model input in a component or directive, Angular automatically creates a corresponding [output](guide/components/outputs) for that model. The output's name is the model input's name suffixed with "Change". +컴포넌트나 지시자에 모델 입력을 선언하면 Angular는 해당 모델에 대한 [출력](guide/components/outputs)을 자동으로 생성합니다. 출력의 이름은 모델 입력의 이름 뒤에 "Change"가 추가됩니다. ```angular-ts @Directive({ /* ... */ }) export class CustomCheckbox { - // This automatically creates an output named "checkedChange". - // Can be subscribed to using `(checkedChange)="handler()"` in the template. + // 이로 인해 "checkedChange"라는 출력이 자동으로 생성됩니다. + // 템플릿에서 `(checkedChange)="handler()"`를 사용하여 구독할 수 있습니다. checked = model(false); } ``` -Angular emits this change event whenever you write a new value into the model input by calling its `set` or `update` methods. +Angular는 모델 입력에 새 값을 기록할 때마다 이 변경 이벤트를 발생시킵니다. 이는 `set` 또는 `update` 메서드를 호출하여 발생합니다. -See [Custom events with outputs](guide/components/outputs) for more details on outputs. +출력에 대한 자세한 내용은 [출력을 갖춘 사용자 정의 이벤트](guide/components/outputs)를 참조하십시오. -### Customizing model inputs +### 모델 입력 사용자 정의 -You can mark a model input as required or provide an alias in the same way as a [standard input](guide/signals/inputs). +모델 입력을 필수로 만들거나 별칭을 지정할 수 있습니다. 이는 [표준 입력](guide/signals/inputs)과 동일한 방식입니다. -Model inputs do not support input transforms. +모델 입력은 입력 변형을 지원하지 않습니다. -### When to use model inputs +### 모델 입력 사용 시기 -Use model inputs when you want a component to support two-way binding. This is typically appropriate when a component exists to modify a value based on user interaction. Most commonly, custom form controls, such as a date picker or combobox, should use model inputs for their primary value. +모델 입력은 컴포넌트가 양방향 바인딩을 지원해야 할 때 사용합니다. 이는 일반적으로 컴포넌트가 사용자 상호 작용에 따라 값을 수정하기 위해 존재할 때 적합합니다. 가장 일반적으로, 날짜 선택기 또는 콤보박스와 같은 사용자 정의 폼 컨트롤은 기본 값을 위해 모델 입력을 사용해야 합니다. -## Choosing input names +## 입력 이름 선택 -Avoid choosing input names that collide with properties on DOM elements like HTMLElement. Name collisions introduce confusion about whether the bound property belongs to the component or the DOM element. +DOM 요소의 속성과 충돌하는 입력 이름 선택을 피하세요. 이름 충돌은 바인딩된 속성이 컴포넌트에 속하는지 DOM 요소에 속하는지에 대한 혼돈을 초래합니다. -Avoid adding prefixes for component inputs like you would with component selectors. Since a given element can only host one component, any custom properties can be assumed to belong to the component. +컴포넌트 입력에 접두사를 추가하는 것은 피하세요. 특정 요소는 하나의 컴포넌트만 호스팅할 수 있으므로 모든 사용자 지정 속성은 컴포넌트에 속한다고 가정할 수 있습니다. -## Declaring inputs with the `@Input` decorator +## `@Input` 데코레이터로 입력 선언하기 -Tip: While the Angular team recommends using the signal-based `input` function for new projects, the original decorator-based `@Input` API remains fully supported. +팁: Angular 팀은 새로운 프로젝트에 대해서는 신호 기반의 `input` 함수를 사용하는 것을 권장하지만, 원래의 데코레이터 기반 `@Input` API는 여전히 완전히 지원됩니다. -You can alternatively declare component inputs by adding the `@Input` decorator to a property: +대신 `@Input` 데코레이터를 속성에 추가하여 컴포넌트 입력을 선언할 수 있습니다: @Component({...}) @@ -280,19 +278,19 @@ export class CustomSlider { } -Binding to an input is the same in both signal-based and decorator-based inputs: +입력에 바인딩하는 것은 신호 기반 입력과 데코레이터 기반 입력 모두에서 동일합니다: ```angular-html ``` -### Customizing decorator-based inputs +### 데코레이터 기반 입력 사용자 정의 -The `@Input` decorator accepts a config object that lets you change the way that input works. +`@Input` 데코레이터는 입력이 작동하는 방식을 변경할 수 있는 구성 객체를 받아들입니다. -#### Required inputs +#### 필수 입력 -You can specify the `required` option to enforce that a given input must always have a value. +주어진 입력은 항상 값이 있어야 한다고 강제하는 `required` 옵션을 지정할 수 있습니다. @Component({...}) @@ -301,11 +299,11 @@ export class CustomSlider { } -If you try to use a component without specifying all of its required inputs, Angular reports an error at build-time. +모든 필수 입력을 지정하지 않고 컴포넌트를 사용하려고 하면 Angular는 빌드 타임에 오류를 보고합니다. -#### Input transforms +#### 입력 변형 -You can specify a `transform` function to change the value of an input when it's set by Angular. This transform function works identically to transform functions for signal-based inputs described above. +입력의 값을 Angular에 의해 설정할 때 변경할 `transform` 함수를 지정할 수 있습니다. 이 변형 함수는 위에서 설명한 신호 기반 입력의 변형 함수와 동일하게 작동합니다. @Component({ @@ -319,9 +317,9 @@ export class CustomSlider { function trimString(value: string | undefined) { return value?.trim() ?? ''; } -#### Input aliases +#### 입력 별칭 -You can specify the `alias` option to change the name of an input in templates. +템플릿에서 입력의 이름을 변경할 수 있도록 `alias` 옵션을 지정할 수 있습니다. @Component({...}) @@ -334,13 +332,13 @@ export class CustomSlider { ``` -The `@Input` decorator also accepts the alias as its first parameter in place of the config object. +`@Input` 데코레이터는 구성 객체 대신 첫 번째 매개변수로 별칭을 받아들입니다. -Input aliases work the same way as for signal-based inputs described above. +입력 별칭은 신호 기반 입력에 대해 설명된 방식과 동일하게 작동합니다. -### Inputs with getters and setters +### getter와 setter가 있는 입력 -When using decorator-based inputs, a property implemented with a getter and setter can be an input: +데코레이터 기반 입력을 사용할 때, getter와 setter가 구현된 속성은 입력이 될 수 있습니다: export class CustomSlider { @@ -349,12 +347,13 @@ export class CustomSlider { return this.internalValue; } -set value(newValue: number) { this.internalValue = newValue; } + set value(newValue: number) { this.internalValue = newValue; } -private internalValue = 0; } + private internalValue = 0; +} -You can even create a _write-only_ input by only defining a public setter: +공용 setter만 정의하여 _쓰기 전용_ 입력을 만들 수도 있습니다: export class CustomSlider { @@ -363,19 +362,20 @@ export class CustomSlider { this.internalValue = newValue; } -private internalValue = 0; } + private internalValue = 0; +} -**Prefer using input transforms instead of getters and setters** if possible. +**가능한 경우 getters와 setters 대신 입력 변형을 사용하십시오.** -Avoid complex or costly getters and setters. Angular may invoke an input's setter multiple times, which may negatively impact application performance if the setter performs any costly behaviors, such as DOM manipulation. +복잡하거나 비용이 많이 드는 getter와 setter를 피하십시오. Angular는 입력의 setter를 여러 번 호출할 수 있으며, setter가 DOM 조작과 같은 비용이 많이 드는 작업을 수행하면 애플리케이션 성능에 부정적인 영향을 미칠 수 있습니다. -## Specify inputs in the `@Component` decorator +## `@Component` 데코레이터에서 입력 지정하기 -In addition to the `@Input` decorator, you can also specify a component's inputs with the `inputs` property in the `@Component` decorator. This can be useful when a component inherits a property from a base class: +`@Input` 데코레이터 외에도, `@Component` 데코레이터의 `inputs` 속성을 사용하여 컴포넌트의 입력을 지정할 수 있습니다. 이는 컴포넌트가 기본 클래스에서 속성을 상속받을 때 유용할 수 있습니다: -// `CustomSlider` inherits the `disabled` property from `BaseSlider`. +// `CustomSlider`는 `BaseSlider`에서 `disabled` 속성을 상속받습니다. @Component({ ..., inputs: ['disabled'], @@ -383,13 +383,13 @@ In addition to the `@Input` decorator, you can also specify a component's inputs export class CustomSlider extends BaseSlider { } -You can additionally specify an input alias in the `inputs` list by putting the alias after a colon in the string: +별칭을 추가로 지정할 수 있으며, 문자열 뒤에 콜론(`:`)을 붙여서 입력 별칭을 지정할 수 있습니다: -// `CustomSlider` inherits the `disabled` property from `BaseSlider`. +// `CustomSlider`는 `BaseSlider`에서 `disabled` 속성을 상속받습니다. @Component({ ..., inputs: ['disabled: sliderDisabled'], }) export class CustomSlider extends BaseSlider { } - + \ No newline at end of file diff --git a/adev/src/content/guide/components/lifecycle.md b/adev/src/content/guide/components/lifecycle.md index 0b604df9490c..753fc67c965c 100644 --- a/adev/src/content/guide/components/lifecycle.md +++ b/adev/src/content/guide/components/lifecycle.md @@ -1,112 +1,95 @@ -# Component Lifecycle +# 구성요소 생명 주기 -Tip: This guide assumes you've already read the [Essentials Guide](essentials). Read that first if you're new to Angular. +팁: 이 가이드는 여러분이 이미 [필수 가이드](essentials)를 읽었다고 가정합니다. Angular에 처음이라면 먼저 읽으세요. -A component's **lifecycle** is the sequence of steps that happen between the component's creation -and its destruction. Each step represents a different part of Angular's process for rendering -components and checking them for updates over time. +구성요소의 **생명 주기**는 구성요소의 생성과 파괴 사이에 발생하는 단계의 순서입니다. 각 단계는 Angular가 구성요소를 렌더링하고 시간이 지남에 따라 업데이트를 확인하는 과정의 다른 부분을 나타냅니다. -In your components, you can implement **lifecycle hooks** to run code during these steps. -Lifecycle hooks that relate to a specific component instance are implemented as methods on your -component class. Lifecycle hooks that relate the Angular application as a whole are implemented -as functions that accept a callback. +구성요소에서 **생명 주기 훅**을 구현하여 이러한 단계 동안 코드를 실행할 수 있습니다. 특정 구성요소 인스턴스와 관련된 생명 주기 훅은 구성요소 클래스의 메서드로 구현됩니다. Angular 애플리케이션 전체와 관련된 생명 주기 훅은 콜백을 수용하는 함수로 구현됩니다. -A component's lifecycle is tightly connected to how Angular checks your components for changes over -time. For the purposes of understanding this lifecycle, you only need to know that Angular walks -your application tree from top to bottom, checking template bindings for changes. The lifecycle -hooks described below run while Angular is doing this traversal. This traversal visits each -component exactly once, so you should always avoid making further state changes in the middle of the -process. +구성요소의 생명 주기는 Angular가 시간이 지남에 따라 구성요소의 변경을 확인하는 방식과 밀접하게 연결되어 있습니다. 이 생명 주기를 이해하기 위한 목적상, Angular는 애플리케이션 트리를 위에서 아래로 이동하면서 템플릿 바인딩의 변경 여부를 확인한다는 것만 알면 됩니다. 다음에 설명한 생명 주기 훅은 Angular가 이 탐색을 수행하는 동안 실행됩니다. 이 탐색은 각 구성요소를 정확히 한 번 방문하므로 프로세스 중간에 추가 상태 변경을 피해야 합니다. -## Summary +## 요약
- - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - +
PhaseMethodSummary단계메서드요약
Creation생성 constructor - Standard JavaScript class constructor - . Runs when Angular instantiates the component. + 표준 JavaScript 클래스 생성자 + . Angular가 구성요소를 인스턴스화할 때 실행됩니다.
Change

Detection

변경

탐지

ngOnInit Runs once after Angular has initialized all the component's inputs.Angular가 모든 구성 요소의 입력을 초기화한 후 한 번 실행됩니다.
ngOnChangesRuns every time the component's inputs have changed.구성요소의 입력이 변경될 때마다 실행됩니다.
ngDoCheckRuns every time this component is checked for changes.이 구성요소가 변경 사항을 확인할 때마다 실행됩니다.
ngAfterContentInitRuns once after the component's content has been initialized.구성요소의 내용이 초기화된 후 한 번 실행됩니다.
ngAfterContentCheckedRuns every time this component content has been checked for changes.이 구성 요소의 내용이 변경된 여부를 확인할 때마다 실행됩니다.
ngAfterViewInitRuns once after the component's view has been initialized.구성요소의 가 초기화된 후 한 번 실행됩니다.
ngAfterViewCheckedRuns every time the component's view has been checked for changes.구성 요소의 뷰가 변경된 여부를 확인할 때마다 실행됩니다.
Rendering렌더링 afterNextRenderRuns once the next time that all components have been rendered to the DOM.모든 구성요소가 DOM에 렌더링된 다음 한 번 실행됩니다.
afterRenderRuns every time all components have been rendered to the DOM.모든 구성요소가 DOM에 렌더링될 때마다 실행됩니다.
Destruction파괴 ngOnDestroyRuns once before the component is destroyed.구성요소가 파괴되기 전에 한 번 실행됩니다.
### ngOnInit -The `ngOnInit` method runs after Angular has initialized all the components inputs with their -initial values. A component's `ngOnInit` runs exactly once. +`ngOnInit` 메서드는 Angular가 모든 구성 요소의 입력을 초기값으로 초기화한 후 실행됩니다. 구성 요소의 `ngOnInit`은 정확히 한 번 실행됩니다. -This step happens _before_ the component's own template is initialized. This means that you can -update the component's state based on its initial input values. +이 단계는 구성 요소의 템플릿이 초기화되기 _전_에 발생합니다. 이는 구성 요소의 상태를 초기 입력 값에 따라 업데이트할 수 있음을 의미합니다. ### ngOnChanges -The `ngOnChanges` method runs after any component inputs have changed. +`ngOnChanges` 메서드는 구성 요소의 입력이 변경된 후 실행됩니다. -This step happens _before_ the component's own template is checked. This means that you can update -the component's state based on its initial input values. +이 단계는 구성 요소의 템플릿이 확인되기 _전_에 발생합니다. 이는 구성 요소의 상태를 초기 입력 값에 따라 업데이트할 수 있음을 의미합니다. -During initialization, the first `ngOnChanges` runs before `ngOnInit`. +초기화 중, 첫 번째 `ngOnChanges`는 `ngOnInit`보다 먼저 실행됩니다. -#### Inspecting changes +#### 변경 사항 검사 -The `ngOnChanges` method accepts one `SimpleChanges` argument. This object is -a [`Record`](https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkeys-type) -mapping each component input name to a `SimpleChange` object. Each `SimpleChange` contains the -input's previous value, its current value, and a flag for whether this is the first time the input -has changed. +`ngOnChanges` 메서드는 하나의 `SimpleChanges` 인수를 수용합니다. 이 객체는 각 구성요소 입력 이름을 `SimpleChange` 객체에 매핑하는 [`Record`](https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkeys-type)입니다. 각 `SimpleChange`에는 입력의 이전 값, 현재 값 및 입력이 변경된 첫 번째 인지 여부를 나타내는 플래그가 포함됩니다. ```ts @Component({ @@ -118,28 +101,23 @@ export class UserProfile { ngOnChanges(changes: SimpleChanges) { for (const inputName in changes) { const inputValues = changes[inputName]; - console.log(`Previous ${inputName} == ${inputValues.previousValue}`); - console.log(`Current ${inputName} == ${inputValues.currentValue}`); - console.log(`Is first ${inputName} change == ${inputValues.firstChange}`); + console.log(`이전 ${inputName} == ${inputValues.previousValue}`); + console.log(`현재 ${inputName} == ${inputValues.currentValue}`); + console.log(`첫 번째 ${inputName} 변경인지 == ${inputValues.firstChange}`); } } } ``` -If you provide an `alias` for any input properties, the `SimpleChanges` Record still uses the -TypeScript property name as a key, rather than the alias. +입력 속성에 `alias`를 제공하는 경우, `SimpleChanges` Record는 여전히 TypeScript 속성 이름을 키로 사용하고 별칭은 사용하지 않습니다. ### ngOnDestroy -The `ngOnDestroy` method runs once just before a component is destroyed. Angular destroys a -component when it is no longer shown on the page, such as being hidden by `@if` or upon navigating -to another page. +`ngOnDestroy` 메서드는 구성 요소가 파괴되기 직전에 한 번 실행됩니다. Angular는 페이지에 더 이상 표시되지 않는 구성요소를 파괴합니다. 예를 들어 `@if`에 의해 숨겨지거나 다른 페이지로 이동할 때입니다. #### DestroyRef -As an alternative to the `ngOnDestroy` method, you can inject an instance of `DestroyRef`. You can -register a callback to be invoked upon the component's destruction by calling the `onDestroy` method -of `DestroyRef`. +`ngOnDestroy` 메서드 대신 `DestroyRef`의 인스턴스를 주입할 수 있습니다. `DestroyRef`의 `onDestroy` 메서드를 호출하여 구성 요소가 파괴될 때 호출될 콜백을 등록할 수 있습니다. ```ts @Component({ @@ -148,103 +126,69 @@ of `DestroyRef`. export class UserProfile { constructor(private destroyRef: DestroyRef) { destroyRef.onDestroy(() => { - console.log('UserProfile destruction'); + console.log('UserProfile 파괴'); }); } } ``` -You can pass the `DestroyRef` instance to functions or classes outside your component. Use this -pattern if you have other code that should run some cleanup behavior when the component is -destroyed. +구성 요소 외부의 함수나 클래스에도 `DestroyRef` 인스턴스를 전달할 수 있습니다. 구성 요소가 파괴될 때 일부 정리 동작을 실행하는 다른 코드가 있는 경우 이 패턴을 사용하세요. -You can also use `DestroyRef` to keep setup code close to cleanup code, rather than putting -all cleanup code in the `ngOnDestroy` method. +또한 `ngOnDestroy` 메서드에 모든 정리 코드를 넣는 대신 `DestroyRef`를 사용하여 설정 코드와 정리 코드를 가까이 유지할 수 있습니다. ### ngDoCheck -The `ngDoCheck` method runs before every time Angular checks a component's template for changes. +`ngDoCheck` 메서드는 Angular가 구성 요소의 템플릿을 변경 여부를 확인하기 전마다 실행됩니다. -You can use this lifecycle hook to manually check for state changes outside of Angular's normal -change detection, manually updating the component's state. +이 생명 주기 훅을 사용하여 Angular의 정상적인 변경 탐지를 벗어나 상태 변경을 수동으로 확인하고 구성 요소의 상태를 수동으로 업데이트할 수 있습니다. -This method runs very frequently and can significantly impact your page's performance. Avoid -defining this hook whenever possible, only using it when you have no alternative. +이 메서드는 매우 자주 실행되며 페이지의 성능에 상당한 영향을 미칠 수 있습니다. 가능한 경우 이 훅을 정의하지 않도록 하며, 대안이 없는 경우에만 사용하세요. -During initialization, the first `ngDoCheck` runs after `ngOnInit`. +초기화 중, 첫 번째 `ngDoCheck`은 `ngOnInit` 이후에 실행됩니다. ### ngAfterContentInit -The `ngAfterContentInit` method runs once after all the children nested inside the component (its -_content_) have been initialized. +`ngAfterContentInit` 메서드는 구성 요소 내부에 중첩된 모든 자식 (_content_)이 초기화된 후 한 번 실행됩니다. -You can use this lifecycle hook to read the results of -[content queries](guide/components/queries#content-queries). While you can access the initialized -state of these queries, attempting to change any state in this method results in an -[ExpressionChangedAfterItHasBeenCheckedError](errors/NG0100) +이 생명 주기 훅을 사용하여 [내용 쿼리](guide/components/queries#content-queries)의 결과를 읽을 수 있습니다. 이러한 쿼리의 초기화된 상태에 접근할 수 있지만 이 메서드에서 상태를 변경하려고 시도하면 [ExpressionChangedAfterItHasBeenCheckedError](errors/NG0100)가 발생합니다. ### ngAfterContentChecked -The `ngAfterContentChecked` method runs every time the children nested inside the component (its -_content_) have been checked for changes. +`ngAfterContentChecked` 메서드는 구성 요소 내부에 중첩된 자식 (_content_)이 변경 여부를 확인할 때마다 실행됩니다. -This method runs very frequently and can significantly impact your page's performance. Avoid -defining this hook whenever possible, only using it when you have no alternative. +이 메서드는 매우 자주 실행되며 페이지의 성능에 상당한 영향을 미칠 수 있습니다. 가능한 경우 이 훅을 정의하지 않도록 하며, 대안이 없는 경우에만 사용하세요. -While you can access the updated state -of [content queries](guide/components/queries#content-queries) here, attempting to -change any state in this method results in -an [ExpressionChangedAfterItHasBeenCheckedError](errors/NG0100). +여기에서 [내용 쿼리](guide/components/queries#content-queries)의 업데이트된 상태에 접근할 수 있지만 이 메서드에서 상태를 변경하려고 시도하면 [ExpressionChangedAfterItHasBeenCheckedError](errors/NG0100)가 발생합니다. ### ngAfterViewInit -The `ngAfterViewInit` method runs once after all the children in the component's template (its -_view_) have been initialized. +`ngAfterViewInit` 메서드는 구성 요소의 템플릿 (_view_)에 있는 모든 자식이 초기화된 후 한 번 실행됩니다. -You can use this lifecycle hook to read the results of -[view queries](guide/components/queries#view-queries). While you can access the initialized state of -these queries, attempting to change any state in this method results in an -[ExpressionChangedAfterItHasBeenCheckedError](errors/NG0100) +이 생명 주기 훅을 사용하여 [뷰 쿼리](guide/components/queries#view-queries)의 결과를 읽을 수 있습니다. 이러한 쿼리의 초기화된 상태에 접근할 수 있지만 이 메서드에서 상태를 변경하려고 시도하면 [ExpressionChangedAfterItHasBeenCheckedError](errors/NG0100)가 발생합니다. ### ngAfterViewChecked -The `ngAfterViewChecked` method runs every time the children in the component's template (its -_view_) have been checked for changes. +`ngAfterViewChecked` 메서드는 구성 요소의 템플릿 (_view_)에 있는 자식이 변경 여부를 확인할 때마다 실행됩니다. -This method runs very frequently and can significantly impact your page's performance. Avoid -defining this hook whenever possible, only using it when you have no alternative. +이 메서드는 매우 자주 실행되며 페이지의 성능에 상당한 영향을 미칠 수 있습니다. 가능한 경우 이 훅을 정의하지 않도록 하며, 대안이 없는 경우에만 사용하세요. -While you can access the updated state of [view queries](guide/components/queries#view-queries) -here, attempting to -change any state in this method results in -an [ExpressionChangedAfterItHasBeenCheckedError](errors/NG0100). +여기에서 [뷰 쿼리](guide/components/queries#view-queries)의 업데이트된 상태에 접근할 수 있지만 이 메서드에서 상태를 변경하려고 시도하면 [ExpressionChangedAfterItHasBeenCheckedError](errors/NG0100)가 발생합니다. -### afterRender and afterNextRender +### afterRender 및 afterNextRender -The `afterRender` and `afterNextRender` functions let you register a **render callback** to be -invoked after Angular has finished rendering _all components_ on the page into the DOM. +`afterRender` 및 `afterNextRender` 함수는 Angular가 페이지의 _모든 구성요소_를 DOM에 렌더링한 후 호출될 **렌더 콜백**을 등록할 수 있게 해줍니다. -These functions are different from the other lifecycle hooks described in this guide. Rather than a -class method, they are standalone functions that accept a callback. The execution of render -callbacks are not tied to any specific component instance, but instead an application-wide hook. +이 함수들은 이 가이드에 설명된 다른 생명 주기 훅과 다릅니다. 클래스 메서드가 아닌 콜백을 수용하는 독립형 함수입니다. 렌더 콜백의 실행은 특정 구성 요소 인스턴스에 묶이지 않고 애플리케이션 전역 훅에 tied됩니다. -`afterRender` and `afterNextRender` must be called in -an [injection context](guide/di/dependency-injection-context), typically a -component's constructor. +`afterRender` 및 `afterNextRender`는 [주입 컨텍스트](guide/di/dependency-injection-context), 일반적으로 구성 요소의 생성자 내에서 호출되어야 합니다. -You can use render callbacks to perform manual DOM operations. -See [Using DOM APIs](guide/components/dom-apis) for guidance on working with the DOM in Angular. +수동 DOM 작업을 수행하는 데 렌더 콜백을 사용할 수 있습니다. Angular에서 DOM 작업에 대한 가이드는 [DOM API 사용](guide/components/dom-apis)을 참조하세요. -Render callbacks do not run during server-side rendering or during build-time pre-rendering. +렌더 콜백은 서버 측 렌더링 또는 빌드 타임 미리 렌더링 중에 실행되지 않습니다. -#### afterRender phases +#### afterRender 단계 -When using `afterRender` or `afterNextRender`, you can optionally split the work into phases. The -phase gives you control over the sequencing of DOM operations, letting you sequence _write_ -operations before _read_ operations in order to minimize -[layout thrashing](https://web.dev/avoid-large-complex-layouts-and-layout-thrashing). In order to -communicate across phases, a phase function may return a result value that can be accessed in the -next phase. +`afterRender` 또는 `afterNextRender`를 사용할 때 작업을 단계별로 나눌 수 있습니다. 단계는 DOM 작업의 순서를 제어할 수 있게 해주며, _쓰기_ 작업을 _읽기_ 작업보다 먼저 순서대로 방출하여 [레이아웃 난수화](https://web.dev/avoid-large-complex-layouts-and-layout-thrashing)를 최소화할 수 있습니다. 단계 간에 통신하려면 단계 함수가 다음 단계에서 액세스할 수 있는 결과 값을 반환할 수 있습니다. ```ts import {Component, ElementRef, afterNextRender} from '@angular/core'; @@ -258,17 +202,17 @@ export class UserProfile { const nativeElement = elementRef.nativeElement; afterNextRender({ - // Use the `Write` phase to write to a geometric property. + // 기하학적 속성에 쓰기 위해 `Write` 단계를 사용합니다. write: () => { const padding = computePadding(); const changed = padding !== this.prevPadding; if (changed) { nativeElement.style.padding = padding; } - return changed; // Communicate whether anything changed to the read phase. + return changed; // 읽기 단계에 변경된 것이 있는지 통신합니다. }, - // Use the `Read` phase to read geometric properties after all writes have occurred. + // 모든 쓰기가 발생한 후 기하학적 속성을 읽기 위해 `Read` 단계를 사용합니다. read: (didWrite) => { if (didWrite) { this.elementHeight = nativeElement.getBoundingClientRect().height; @@ -279,23 +223,20 @@ export class UserProfile { } ``` -There are four phases, run in the following order: +다음과 같이 네 개의 단계가 있습니다: -| Phase | Description | -| ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `earlyRead` | Use this phase to read any layout-affecting DOM properties and styles that are strictly necessary for subsequent calculation. Avoid this phase if possible, preferring the `write` and `read` phases. | -| `mixedReadWrite` | Default phase. Use for any operations need to both read and write layout-affecting properties and styles. Avoid this phase if possible, preferring the explicit `write` and `read` phases. | -| `write` | Use this phase to write layout-affecting DOM properties and styles. | -| `read` | Use this phase to read any layout-affecting DOM properties. | +| 단계 | 설명 | +| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `earlyRead` | 후속 계산에 엄격히 필요한 DOM 속성 및 스타일을 읽기 위해 이 단계를 사용하세요. 가능한 경우 이 단계를 피하고 `write` 및 `read` 단계를 선호하세요. | +| `mixedReadWrite` | 기본 단계. 레이아웃에 영향을 미치는 속성과 스타일을 읽고 쓰기 위해 필요할 때 사용하세요. 가능한 경우 이 단계를 피하고 명시적인 `write` 및 `read` 단계를 선호하세요. | +| `write` | 레이아웃에 영향을 미치는 DOM 속성과 스타일을 쓰기 위해 이 단계를 사용하세요. | +| `read` | 레이아웃에 영향을 미치는 DOM 속성을 읽기 위해 이 단계를 사용하세요. | -## Lifecycle interfaces +## 생명 주기 인터페이스 -Angular provides a TypeScript interface for each lifecycle method. You can optionally import -and `implement` these interfaces to ensure that your implementation does not have any typos or -misspellings. +Angular는 각 생명 주기 메서드에 대해 TypeScript 인터페이스를 제공합니다. 이러한 인터페이스를 선택적으로 가져와서 `implement`하여 구현에 오타나 잘못 표기된 부분이 없도록 할 수 있습니다. -Each interface has the same name as the corresponding method without the `ng` prefix. For example, -the interface for `ngOnInit` is `OnInit`. +각 인터페이스는 해당 메서드와 같은 이름을 가지며 `ng` 접두사가 없습니다. 예를 들어 `ngOnInit`의 인터페이스는 `OnInit`입니다. ```ts @Component({ @@ -308,16 +249,16 @@ export class UserProfile implements OnInit { } ``` -## Execution order +## 실행 순서 -The following diagrams show the execution order of Angular's lifecycle hooks. +다음 다이어그램은 Angular의 생명 주기 훅의 실행 순서를 보여줍니다. -### During initialization +### 초기화 중 ```mermaid graph TD; id[constructor]-->CHANGE; -subgraph CHANGE [Change detection] +subgraph CHANGE [변경 탐지] direction TB ngOnChanges-->ngOnInit; ngOnInit-->ngDoCheck; @@ -326,25 +267,22 @@ ngDoCheck-->ngAfterViewInit ngAfterContentInit-->ngAfterContentChecked ngAfterViewInit-->ngAfterViewChecked end -CHANGE--Rendering-->afterRender +CHANGE--렌더링-->afterRender ``` -### Subsequent updates +### 후속 업데이트 ```mermaid graph TD; -subgraph CHANGE [Change detection] +subgraph CHANGE [변경 탐지] direction TB ngOnChanges-->ngDoCheck ngDoCheck-->ngAfterContentChecked; ngDoCheck-->ngAfterViewChecked end -CHANGE--Rendering-->afterRender +CHANGE--렌더링-->afterRender ``` -### Ordering with directives +### 지시문으로 정렬 -When you put one or more directives on the same element as a component, either in a template or with -the `hostDirectives` property, the framework does not guarantee any ordering of a given lifecycle -hook between the component and the directives on a single element. Never depend on an observed -ordering, as this may change in later versions of Angular. +하나 이상의 지시문을 템플릿의 구성 요소와 같은 요소에 표시하는 경우, 해당 구성 요소의 특정 생명 주기 훅에 대한 순서를 보장하지 않습니다. 관찰된 순서에 의존하지 마세요. 이는 Angular의 이후 버전에서 변경될 수 있습니다. \ No newline at end of file diff --git a/adev/src/content/guide/components/outputs.md b/adev/src/content/guide/components/outputs.md index 4d910cd6a445..4fe8fd5c2655 100644 --- a/adev/src/content/guide/components/outputs.md +++ b/adev/src/content/guide/components/outputs.md @@ -1,8 +1,8 @@ -# Custom events with outputs +# 사용자 정의 이벤트와 출력 -Tip: This guide assumes you've already read the [Essentials Guide](essentials). Read that first if you're new to Angular. +팁: 이 가이드는 이미 [필수 가이드](essentials)를 읽었다고 가정합니다. Angular에 익숙하지 않다면 먼저 해당 내용을 읽어보세요. -Angular components can define custom events by assigning a property to the `output` function: +Angular 구성 요소는 `output` 함수에 속성을 할당하여 사용자 정의 이벤트를 정의할 수 있습니다: @Component({/*...*/}) @@ -15,46 +15,46 @@ export class ExpandablePanel { ``` -The `output` function returns an `OutputEmitterRef`. You can emit an event by calling the `emit` method on the `OutputEmitterRef`: +`output` 함수는 `OutputEmitterRef`를 반환합니다. `OutputEmitterRef`에서 `emit` 메서드를 호출하여 이벤트를 발생시킬 수 있습니다: this.panelClosed.emit(); -Angular refers to properties initialized with the `output` function as **outputs**. You can use outputs to raise custom events, similar to native browser events like `click`. +Angular는 `output` 함수로 초기화된 속성을 **출력**이라고 합니다. 출력은 클릭과 같은 기본 브라우저 이벤트와 유사하게 사용자 정의 이벤트를 발생시키는 데 사용할 수 있습니다. -**Angular custom events do not bubble up the DOM**. +**Angular 사용자 정의 이벤트는 DOM에서 버블링되지 않습니다.** -**Output names are case-sensitive.** +**출력 이름은 대소문자를 구분합니다.** -When extending a component class, **outputs are inherited by the child class.** +구성 요소 클래스를 확장할 때 **출력은 자식 클래스에 상속됩니다.** -The `output` function has special meaning to the Angular compiler. **You can exclusively call `output` in component and directive property initializers.** +`output` 함수는 Angular 컴파일러에 특별한 의미가 있습니다. **구성 요소 및 지시문 속성 초기화자에서만 `output`을 호출할 수 있습니다.** -## Emitting event data +## 이벤트 데이터 발생 -You can pass event data when calling `emit`: +`emit` 호출 시 이벤트 데이터를 전달할 수 있습니다: -// You can emit primitive values. +// 원시 값을 발생시킬 수 있습니다. this.valueChanged.emit(7); -// You can emit custom event objects +// 사용자 정의 이벤트 객체를 발생시킬 수 있습니다. this.thumbDropped.emit({ pointerX: 123, pointerY: 456, }) -When defining an event listener in a template, you can access the event data from the `$event` variable: +템플릿에서 이벤트 리스너를 정의할 때 `$event` 변수를 통해 이벤트 데이터에 접근할 수 있습니다: ```angular-html ``` -## Customizing output names +## 출력 이름 사용자 지정 -The `output` function accepts a parameter that lets you specify a different name for the event in a template: +`output` 함수는 템플릿에서 이벤트의 다른 이름을 지정할 수 있는 매개변수를 받습니다: @Component({/*...*/}) @@ -67,14 +67,13 @@ export class CustomSlider { ``` -This alias does not affect usage of the property in TypeScript code. +이 별칭은 TypeScript 코드에서 속성 사용에 영향을 미치지 않습니다. -While you should generally avoid aliasing outputs for components, this feature can be useful for renaming properties while preserving an alias for the original name or for avoiding collisions with the name of native DOM events. +구성 요소의 출력에 별칭을 사용하는 것을 일반적으로 피해야 하지만, 이 기능은 원래 이름에 대한 별칭을 유지하면서 속성의 이름을 변경하거나 기본 DOM 이벤트의 이름과 충돌을 피하는 데 유용할 수 있습니다. -## Subscribing to outputs programmatically +## 프로그래밍 방식으로 출력 구독 -When creating a component dynamically, you can programmatically subscribe to output events -from the component instance. The `OutputRef` type includes a `subscribe` method: +구성 요소를 동적으로 만들 때 구성 요소 인스턴스에서 출력 이벤트를 프로그래밍 방식으로 구독할 수 있습니다. `OutputRef` 유형은 `subscribe` 메서드를 포함합니다: ```ts const someComponentRef: ComponentRef = viewContainerRef.createComponent(/*...*/); @@ -84,7 +83,7 @@ someComponentRef.instance.someEventProperty.subscribe(eventData => { }); ``` -Angular automatically cleans up event subscriptions when it destroys components with subscribers. Alternatively, you can manually unsubscribe from an event. The `subscribe` function returns an `OutputRefSubscription` with an `unsubscribe` method: +Angular는 구독자가 있는 구성 요소를 파괴할 때 자동으로 이벤트 구독을 정리합니다. 또는 이벤트에서 수동으로 구독을 취소할 수 있습니다. `subscribe` 함수는 `unsubscribe` 메서드가 있는 `OutputRefSubscription`을 반환합니다: ```typescript const eventSubscription = someComponent.someEventProperty.subscribe(eventData => { @@ -96,24 +95,23 @@ const eventSubscription = someComponent.someEventProperty.subscribe(eventData => eventSubscription.unsubscribe(); ``` -## Choosing event names +## 이벤트 이름 선택하기 -Avoid choosing output names that collide with events on DOM elements like HTMLElement. Name collisions introduce confusion about whether the bound property belongs to the component or the DOM element. +DOM 요소의 이벤트와 충돌하는 출력 이름을 선택하지 않도록 하세요. 이름 충돌은 연결된 속성이 구성 요소에 속하는지 DOM 요소에 속하는지에 대한 혼란을 초래합니다. -Avoid adding prefixes for component outputs like you would with component selectors. Since a given element can only host one component, any custom properties can be assumed to belong to the component. +구성 요소 선택자처럼 구성 요소 출력에 접두사를 추가하지 마세요. 주어진 요소는 하나의 구성 요소만 호스팅할 수 있으므로 모든 사용자 정의 속성은 구성 요소에 속한다고 가정할 수 있습니다. -Always use [camelCase](https://en.wikipedia.org/wiki/Camel_case) output names. Avoid prefixing output names with "on". +항상 [camelCase](https://en.wikipedia.org/wiki/Camel_case) 출력 이름을 사용하세요. "on"으로 출력 이름에 접두사를 추가하는 것은 피하세요. -## Using outputs with RxJS +## RxJS와 함께 출력 사용하기 -See [RxJS interop with component and directive outputs](ecosystem/rxjs-interop/output-interop) for details on interoperability between outputs and RxJS. +출력과 RxJS 간의 상호 운용성에 대한 자세한 내용은 [RxJS와 구성 요소 및 지시문 출력을 이용한 상호 운용](ecosystem/rxjs-interop/output-interop)을 참조하세요. -## Declaring outputs with the `@Output` decorator +## `@Output` 데코레이터로 출력 선언하기 -Tip: While the Angular team recommends using the `output` function for new projects, the -original decorator-based `@Output` API remains fully supported. +팁: Angular 팀은 새로운 프로젝트에 `output` 함수를 사용하는 것을 권장하지만, 원래의 데코레이터 기반 `@Output` API는 여전히 완전히 지원됩니다. -You can alternatively define custom events by assigning a property to a new `EventEmitter` and adding the `@Output` decorator: +대신 새 `EventEmitter`에 속성을 할당하고 `@Output` 데코레이터를 추가하여 사용자 정의 이벤트를 정의할 수 있습니다: @Component({/*...*/}) @@ -122,11 +120,11 @@ export class ExpandablePanel { } -You can emit an event by calling the `emit` method on the `EventEmitter`. +`EventEmitter`에서 `emit` 메서드를 호출하여 이벤트를 발생시킬 수 있습니다. -### Aliases with the `@Output` decorator +### `@Output` 데코레이터의 별칭 -The `@Output` decorator accepts a parameter that lets you specify a different name for the event in a template: +`@Output` 데코레이터는 템플릿에서 이벤트의 다른 이름을 지정할 수 있는 매개변수를 받습니다: @Component({/*...*/}) @@ -139,14 +137,14 @@ export class CustomSlider { ``` -This alias does not affect usage of the property in TypeScript code. +이 별칭은 TypeScript 코드에서 속성 사용에 영향을 미치지 않습니다. -## Specify outputs in the `@Component` decorator +## `@Component` 데코레이터에서 출력 지정하기 -In addition to the `@Output` decorator, you can also specify a component's outputs with the `outputs` property in the `@Component` decorator. This can be useful when a component inherits a property from a base class: +`@Output` 데코레이터 외에도 `@Component` 데코레이터의 `outputs` 속성을 사용하여 구성 요소의 출력을 지정할 수 있습니다. 이는 구성 요소가 기본 클래스에서 속성을 상속받을 때 유용할 수 있습니다: -// `CustomSlider` inherits the `valueChanged` property from `BaseSlider`. +// `CustomSlider`는 `BaseSlider`에서 `valueChanged` 속성을 상속합니다. @Component({ /*...*/ outputs: ['valueChanged'], @@ -154,13 +152,13 @@ In addition to the `@Output` decorator, you can also specify a component's outpu export class CustomSlider extends BaseSlider {} -You can additionally specify an output alias in the `outputs` list by putting the alias after a colon in the string: +별칭을 지정할 경우 문자열에서 콜론 뒤에 별칭을 적어 `outputs` 목록에서 별칭을 추가할 수 있습니다: -// `CustomSlider` inherits the `valueChanged` property from `BaseSlider`. +// `CustomSlider`는 `BaseSlider`에서 `valueChanged` 속성을 상속합니다. @Component({ /*...*/ outputs: ['valueChanged: volumeChanged'], }) export class CustomSlider extends BaseSlider {} - + \ No newline at end of file diff --git a/adev/src/content/guide/components/programmatic-rendering.md b/adev/src/content/guide/components/programmatic-rendering.md index 9975fae62f3a..a7f489cf4d8e 100644 --- a/adev/src/content/guide/components/programmatic-rendering.md +++ b/adev/src/content/guide/components/programmatic-rendering.md @@ -1,15 +1,13 @@ -# Programmatically rendering components +# 프로그램적으로 컴포넌트 렌더링하기 -Tip: This guide assumes you've already read the [Essentials Guide](essentials). Read that first if you're new to Angular. +팁: 이 가이드는 여러분이 이미 [필수 가이드](essentials)를 읽었다고 가정합니다. Angular가 처음이라면 먼저 그 내용을 읽으세요. -In addition to using a component directly in a template, you can also dynamically render components. -There are two main ways to dynamically render a component: in a template with `NgComponentOutlet`, -or in your TypeScript code with `ViewContainerRef`. +템플릿에서 컴포넌트를 직접 사용하는 것 외에도, 컴포넌트를 동적으로 렌더링할 수 있습니다. +컴포넌트를 동적으로 렌더링하는 주요 방법은 `NgComponentOutlet`을 사용하는 것과 `ViewContainerRef`를 사용하는 것입니다. -## Using NgComponentOutlet +## NgComponentOutlet 사용하기 -`NgComponentOutlet` is a structural directive that dynamically renders a given component in a -template. +`NgComponentOutlet`은 주어진 컴포넌트를 템플릿에서 동적으로 렌더링하는 구조 지시어입니다. ```angular-ts @Component({ ... }) @@ -21,7 +19,7 @@ export class StandardBio { /* ... */ } @Component({ ..., template: ` -

Profile for {{user.name}}

+

프로필: {{user.name}}

` }) export class CustomDialog { @@ -33,24 +31,19 @@ export class CustomDialog { } ``` -See the [NgComponentOutlet API reference](api/common/NgComponentOutlet) for more information on the -directive's capabilities. +지시어의 기능에 대한 더 많은 정보는 [NgComponentOutlet API 참조](api/common/NgComponentOutlet)를 참조하세요. -## Using ViewContainerRef +## ViewContainerRef 사용하기 -A **view container** is a node in Angular's component tree that can contain content. Any component -or directive can inject `ViewContainerRef` to get a reference to a view container corresponding to -that component or directive's location in the DOM. +**뷰 컨테이너**는 Angular의 컴포넌트 트리에서 콘텐츠를 포함할 수 있는 노드를 의미합니다. 어떤 컴포넌트나 지시어도 `ViewContainerRef`를 주입하여 해당 컴포넌트나 지시어의 DOM 내 위치에 해당하는 뷰 컨테이너의 참조를 얻을 수 있습니다. -You can use the `createComponent`method on `ViewContainerRef` to dynamically create and render a -component. When you create a new component with a `ViewContainerRef`, Angular appends it into the -DOM as the next sibling of the component or directive that injected the `ViewContainerRef`. +`ViewContainerRef`의 `createComponent` 메서드를 사용하여 컴포넌트를 동적으로 생성하고 렌더링할 수 있습니다. `ViewContainerRef`로 새로운 컴포넌트를 생성하면 Angular는 이를 `ViewContainerRef`를 주입한 컴포넌트나 지시어의 다음 형제로 DOM에 추가합니다. ```angular-ts @Component({ selector: 'leaf-content', template: ` - This is the leaf content + 이것은 리프 콘텐츠입니다 `, }) export class LeafContent {} @@ -58,9 +51,9 @@ export class LeafContent {} @Component({ selector: 'outer-container', template: ` -

This is the start of the outer container

+

이것은 외부 컨테이너의 시작입니다

-

This is the end of the outer container

+

이것은 외부 컨테이너의 끝입니다

`, }) export class OuterContainer {} @@ -68,7 +61,7 @@ export class OuterContainer {} @Component({ selector: 'inner-item', template: ` - + `, }) export class InnerItem { @@ -80,37 +73,35 @@ export class InnerItem { } ``` -In the example above, clicking the "Load content" button results in the following DOM structure +위의 예에서 "콘텐츠 로드하기" 버튼을 클릭하면 다음과 같은 DOM 구조가 생성됩니다. ```angular-html -

This is the start of the outer container

+

이것은 외부 컨테이너의 시작입니다

- + - This is the leaf content -

This is the end of the outer container

+ 이것은 리프 콘텐츠입니다 +

이것은 외부 컨테이너의 끝입니다

``` -## Lazy-loading components +## 지연 로딩 컴포넌트 -You can use both of the approaches described above, `NgComponentOutlet` and `ViewContainerRef`, to -render components that are lazy-loaded with a standard -JavaScript [dynamic import](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/import). +위에서 설명한 두 가지 접근 방법인 `NgComponentOutlet`과 `ViewContainerRef`를 사용할 수 있으며, 이를 통해 표준 JavaScript [동적 import](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/import)와 함께 지연 로드된 컴포넌트를 렌더링할 수 있습니다. ```angular-ts @Component({ ..., template: `
-

Basic settings

+

기본 설정

-

Advanced settings

+

고급 설정

@@ -126,4 +117,4 @@ export class AdminSettings { } ``` -The example above loads and displays the `AdvancedSettings` upon receiving a button click. +위의 예제는 버튼 클릭을 통해 `AdvancedSettings`를 로드하고 표시합니다. \ No newline at end of file diff --git a/adev/src/content/guide/components/queries.md b/adev/src/content/guide/components/queries.md index d3a5c8eaf509..559b13e6836a 100644 --- a/adev/src/content/guide/components/queries.md +++ b/adev/src/content/guide/components/queries.md @@ -1,19 +1,18 @@ -# Referencing component children with queries +# 자식 컴포넌트 참조하기 -Tip: This guide assumes you've already read the [Essentials Guide](essentials). Read that first if you're new to Angular. +팁: 이 가이드는 당신이 이미 [기본 가이드](essentials)를 읽었음을 가정합니다. Angular에 처음이라면, 먼저 그것을 읽으세요. -A component can define **queries** that find child elements and read values from their injectors. +컴포넌트는 자식 요소를 찾고 인젝터에서 값을 읽어오는 **쿼리**를 정의할 수 있습니다. -Developers most commonly use queries to retrieve references to child components, directives, DOM elements, and more. +개발자는 일반적으로 쿼리를 사용하여 자식 컴포넌트, 지시자, DOM 요소 등의 참조를 가져옵니다. -All query functions return signals that reflect the most up-to-date results. You can read the -result by calling the signal function, including in reactive contexts like `computed` and `effect`. +모든 쿼리 함수는 가장 최신의 결과를 반영하는 신호를 반환합니다. 신호 함수를 호출하여 결과를 읽을 수 있으며, `computed`나 `effect`와 같은 반응형 컨텍스트에서도 가능합니다. -There are two categories of query: **view queries** and **content queries.** +쿼리는 두 가지 범주가 있습니다: **뷰 쿼리**와 **콘텐츠 쿼리**. -## View queries +## 뷰 쿼리 -View queries retrieve results from the elements in the component's _view_ — the elements defined in the component's own template. You can query for a single result with the `viewChild` function. +뷰 쿼리는 컴포넌트의 _뷰_에 있는 요소로부터 결과를 검색합니다 — 컴포넌트의 자체 템플릿에서 정의된 요소입니다. `viewChild` 함수를 사용하여 단일 결과를 쿼리할 수 있습니다. @Component({ @@ -34,11 +33,11 @@ export class CustomCard { } -In this example, the `CustomCard` component queries for a child `CustomCardHeader` and uses the result in a `computed`. +이 예제에서 `CustomCard` 컴포넌트는 자식 `CustomCardHeader`를 쿼리하고 `computed`에서 결과를 사용합니다. -If the query does not find a result, its value is `undefined`. This may occur if the target element is hidden by `@if`. Angular keeps the result of `viewChild` up to date as your application state changes. +쿼리가 결과를 찾지 못하면, 그 값은 `undefined`가 됩니다. 이는 대상 요소가 `@if`로 숨겨져 있을 때 발생할 수 있습니다. Angular는 애플리케이션 상태가 변화함에 따라 `viewChild`의 결과를 최신 상태로 유지합니다. -You can also query for multiple results with the `viewChildren` function. +또한 `viewChildren` 함수를 사용하여 여러 결과를 쿼리할 수 있습니다. @Component({ @@ -58,17 +57,17 @@ export class CustomCardAction { }) export class CustomCard { actions = viewChildren(CustomCardAction); - actionsTexts = computed(() => this.actions().map(action => action.text); + actionsTexts = computed(() => this.actions().map(action => action.text)); } -`viewChildren` creates a signal with an `Array` of the query results. +`viewChildren`는 쿼리 결과의 `Array`로 신호를 생성합니다. -**Queries never pierce through component boundaries.** View queries can only retrieve results from the component's template. +**쿼리는 컴포넌트 경계를 넘을 수 없습니다.** 뷰 쿼리는 컴포넌트의 템플릿에서만 결과를 검색할 수 있습니다. -## Content queries +## 콘텐츠 쿼리 -Content queries retrieve results from the elements in the component's _content_— the elements nested inside the component in the template where it's used. You can query for a single result with the `contentChild` function. +콘텐츠 쿼리는 컴포넌트의 _내용_에 있는 요소로부터 결과를 검색합니다 — 사용될 템플릿 내에 컴포넌트 내부에 중첩된 요소입니다. `contentChild` 함수를 사용하여 단일 결과를 쿼리할 수 있습니다. @Component({ @@ -90,7 +89,7 @@ export class CustomExpando { @Component({ /* ... */ - // CustomToggle is used inside CustomExpando as content. + // CustomToggle는 CustomExpando 내부에서 내용으로 사용됩니다. template: ` Show @@ -100,13 +99,13 @@ export class CustomExpando { export class UserProfile { } -In this example, the `CustomExpando` component queries for a child `CustomToggle` and accesses the result in a `computed`. +이 예제에서 `CustomExpando` 컴포넌트는 자식 `CustomToggle`을 쿼리하고 `computed`에서 결과에 접근합니다. -If the query does not find a result, its value is `undefined`. This may occur if the target element is absent or hidden by `@if`. Angular keeps the result of `contentChild` up to date as your application state changes. +쿼리가 결과를 찾지 못하면, 그 값은 `undefined`가 됩니다. 이는 대상 요소가 존재하지 않거나 `@if`로 숨겨져 있을 때 발생할 수 있습니다. Angular는 애플리케이션 상태가 변화함에 따라 `contentChild`의 결과를 최신 상태로 유지합니다. -By default, content queries find only _direct_ children of the component and do not traverse into descendants. +기본적으로 콘텐츠 쿼리는 컴포넌트의 _직접_ 자식만 찾으며, 자손으로는 탐색하지 않습니다. -You can also query for multiple results with the `contentChildren` function. +또한 `contentChildren` 함수를 사용하여 여러 결과를 쿼리할 수 있습니다. @Component({ @@ -138,15 +137,15 @@ export class CustomMenu { export class UserProfile { } -`contentChildren` creates a signal with an `Array` of the query results. +`contentChildren`는 쿼리 결과의 `Array`로 신호를 생성합니다. -**Queries never pierce through component boundaries.** Content queries can only retrieve results from the same template as the component itself. +**쿼리는 컴포넌트 경계를 넘을 수 없습니다.** 콘텐츠 쿼리는 컴포넌트 자체와 동일한 템플릿에서만 결과를 검색할 수 있습니다. -## Required queries +## 필수 쿼리 -If a child query (`viewChild` or `contentChild`) does not find a result, its value is `undefined`. This may occur if the target element is hidden by a control flow statement like `@if` or `@for`. Because of this, the child queries return a signal that include `undefined` in their value type. +자식 쿼리(`viewChild` 또는 `contentChild`)가 결과를 찾지 못하면, 그 값은 `undefined`가 됩니다. 이는 대상 요소가 `@if` 또는 `@for`와 같은 제어 흐름 문으로 숨겨져 있을 수 있습니다. 이로 인해 자식 쿼리는 값 유형에 `undefined`가 포함된 신호를 반환합니다. -If some cases, especially with `viewChild`, you know with certainty that a specific child is always available. In other cases, you may want to strictly enforce that a specific child is present. For these cases, you can use a *required query*. +특히 `viewChild`와 관련하여, 특정 자식이 항상 사용 가능하다는 확신이 있는 경우가 있습니다. 다른 경우에는 특정 자식이 반드시 존재하도록 엄격히 enforce하고 싶을 수도 있습니다. 이러한 경우, *필수 쿼리*를 사용할 수 있습니다. ```angular-ts @Component({/* ... */}) @@ -156,16 +155,15 @@ export class CustomCard { } ``` -If a required query does not find a matching result, Angular reports an error. Because this guarantees that a result is available, require queries do not automatically include `undefined` in the signal's value type. +필수 쿼리가 일치하는 결과를 찾지 못하면, Angular는 오류를 보고합니다. 결과가 항상 사용 가능하다는 보장을 제공하므로, 필수 쿼리는 신호의 값 유형에 자동으로 `undefined`를 포함하지 않습니다. -## Query locators +## 쿼리 로케이터 -This first parameter for each query decorator is its **locator**. +각 쿼리 데코레이터의 첫 번째 매개변수는 그 **로케이터**입니다. -Most of the time, you want to use a component or directive as your locator. +대부분의 경우, 컴포넌트나 지시자를 로케이터로 사용하고 싶습니다. -You can alternatively specify a string locator corresponding to -a [template reference variable](guide/templates/variables#template-reference-variables). +대안으로, [템플릿 참조 변수](guide/templates/variables#template-reference-variables)에 해당하는 문자열 로케이터를 지정할 수 있습니다. ```angular-ts @Component({ @@ -180,15 +178,15 @@ export class ActionBar { } ``` -If more than one element defines the same template reference variable, the query retrieves the first matching element. +하나 이상의 요소가 동일한 템플릿 참조 변수를 정의하는 경우, 쿼리는 첫 번째 일치하는 요소를 가져옵니다. -Angular does not support CSS selectors as query locators. +Angular는 쿼리 로케이터로 CSS 선택기를 지원하지 않습니다. -### Queries and the injector tree +### 쿼리와 인젝터 트리 -Tip: See [Dependency Injection](guide/di) for background on providers and Angular's injection tree. +팁: 제공자와 Angular의 인젝션 트리에 대한 배경을 보려면 [의존성 주입](guide/di)을 참조하세요. -For more advanced cases, you can use any `ProviderToken` as a locator. This lets you locate elements based on component and directive providers. +더 발전된 경우, `ProviderToken`을 로케이터로 사용할 수 있습니다. 이렇게 하면 컴포넌트 및 지시자 제공자를 기반으로 요소를 찾을 수 있습니다. ```angular-ts const SUB_ITEM = new InjectionToken('sub-item'); @@ -205,15 +203,15 @@ export class CustomList { } ``` -The above example uses an `InjectionToken` as a locator, but you can use any `ProviderToken` to locate specific elements. +위의 예제는 로케이터로 `InjectionToken`을 사용하지만, 특정 요소를 찾기 위해 어떤 `ProviderToken`도 사용할 수 있습니다. -## Query options +## 쿼리 옵션 -All query functions accept an options object as a second parameter. These options control how the query finds its results. +모든 쿼리 함수는 두 번째 매개변수로 옵션 객체를 허용합니다. 이러한 옵션은 쿼리가 결과를 찾는 방식을 제어합니다. -### Reading specific values from an element's injector +### 요소의 인젝터에서 특정 값 읽기 -By default, the query locator indicates both the element you're searching for and the value retrieved. You can alternatively specify the `read` option to retrieve a different value from the element matched by the locator. +기본적으로, 쿼리 로케이터는 검색 중인 요소와 검색된 값을 모두 나타냅니다. 대신 로케이터에 의해 일치하는 요소에서 다른 값을 검색하기 위해 `read` 옵션을 지정할 수 있습니다. ```ts @Component({/*...*/}) @@ -222,14 +220,13 @@ export class CustomExpando { } ``` -The above example, locates an element with the directive `ExpandoContent` and retrieves -the `TemplateRef` associated with that element. +위의 예제는 `ExpandoContent` 지시어를 가진 요소를 찾고 해당 요소와 연결된 `TemplateRef`를 검색합니다. -Developers most commonly use `read` to retrieve `ElementRef` and `TemplateRef`. +개발자는 일반적으로 `read`를 사용하여 `ElementRef`와 `TemplateRef`를 검색합니다. -### Content descendants +### 콘텐츠 자손 -By default, content queries find only _direct_ children of the component and do not traverse into descendants. +기본적으로 콘텐츠 쿼리는 컴포넌트의 _직접_ 자식만 찾으며, 자손으로는 탐색하지 않습니다. @Component({ @@ -245,7 +242,7 @@ export class CustomExpando { template: ` - + Show @@ -254,19 +251,18 @@ export class CustomExpando { export class UserProfile { } -In the example above, `CustomExpando` cannot find `` because it is not a direct child of ``. By setting `descendants: true`, you configure the query to traverse all descendants in the same template. Queries, however, _never_ pierce into components to traverse elements in other templates. +위의 예제에서 `CustomExpando`는 ``을 찾을 수 없습니다. 이는 ``의 직접 자식이 아니기 때문입니다. `descendants: true`를 설정하면 쿼리가 동일한 템플릿 내의 모든 자손을 탐색하도록 구성할 수 있습니다. 그러나 쿼리는 _절대_ 다른 템플릿의 요소를 탐색하기 위해 컴포넌트 내부로 뚫고 들어가지는 않습니다. -View queries do not have this option because they _always_ traverse into descendants. +뷰 쿼리에는 이 옵션이 없습니다. 왜냐하면 뷰 쿼리는 _항상_ 자손으로 들어가기 때문입니다. -## Decorator-based queries -Tip: While the Angular team recommends using the signal-based query function for new projects, the -original decorator-based query APIs remain fully supported. +## 데코레이터 기반 쿼리 +팁: Angular 팀은 새로운 프로젝트에 신호 기반 쿼리 함수를 사용할 것을 권장하지만, 원래의 데코레이터 기반 쿼리 API는 여전히 완전히 지원됩니다. -You can alternatively declare queries by adding the corresponding decorator to a property. Decorator-based queries behave the same way as signal-based queries except as described below. +속성에 해당하는 데코레이터를 추가하여 쿼리를 선언할 수 있습니다. 데코레이터 기반 쿼리는 아래에서 설명하는 것을 제외하고 신호 기반 쿼리와 동일하게 작동합니다. -### View queries +### 뷰 쿼리 -You can query for a single result with the `@ViewChild` decorator. +`@ViewChild` 데코레이터를 사용하여 단일 결과를 쿼리할 수 있습니다. @Component({ @@ -290,13 +286,13 @@ export class CustomCard { } -In this example, the `CustomCard` component queries for a child `CustomCardHeader` and accesses the result in `ngAfterViewInit`. +이 예제에서 `CustomCard` 컴포넌트는 자식 `CustomCardHeader`를 쿼리하고 `ngAfterViewInit`에서 결과에 접근합니다. -Angular keeps the result of `@ViewChild` up to date as your application state changes. +Angular는 애플리케이션 상태가 변화함에 따라 `@ViewChild`의 결과를 최신 상태로 유지합니다. -**View query results become available in the `ngAfterViewInit` lifecycle method**. Before this point, the value is `undefined`. See the [Lifecycle](guide/components/lifecycle) section for details on the component lifecycle. +**뷰 쿼리 결과는 `ngAfterViewInit` 생명주기 메서드에서 사용할 수 있게 됩니다**. 이 시점 이전에는 값이 `undefined`입니다. 컴포넌트 생명 주기에 대한 자세한 내용은 [Lifecycle](guide/components/lifecycle) 섹션을 참조하세요. -You can also query for multiple results with the `@ViewChildren` decorator. +`@ViewChildren` 데코레이터를 사용하여 여러 결과를 쿼리할 수도 있습니다. @Component({ @@ -325,11 +321,11 @@ export class CustomCard { } -`@ViewChildren` creates a `QueryList` object that contains the query results. You can subscribe to changes to the query results over time via the `changes` property. +`@ViewChildren`는 쿼리 결과가 포함된 `QueryList` 객체를 생성합니다. 시간 경과에 따른 쿼리 결과의 변경 사항을 `changes` 속성을 통해 구독할 수 있습니다. -### Content queries +### 콘텐츠 쿼리 -You can query for a single result with the `@ContentChild` decorator. +`@ContentChild` 데코레이터를 사용하여 단일 결과를 쿼리할 수 있습니다. @Component({ @@ -363,13 +359,13 @@ export class CustomExpando { export class UserProfile { } -In this example, the `CustomExpando` component queries for a child `CustomToggle` and accesses the result in `ngAfterContentInit`. +이 예제에서 `CustomExpando` 컴포넌트는 자식 `CustomToggle`를 쿼리하고 `ngAfterContentInit`에서 결과에 접근합니다. -Angular keeps the result of `@ContentChild` up to date as your application state changes. +Angular는 애플리케이션 상태가 변화함에 따라 `@ContentChild`의 결과를 최신 상태로 유지합니다. -**Content query results become available in the `ngAfterContentInit` lifecycle method**. Before this point, the value is `undefined`. See the [Lifecycle](guide/components/lifecycle) section for details on the component lifecycle. +**콘텐츠 쿼리 결과는 `ngAfterContentInit` 생명주기 메서드에서 사용할 수 있게 됩니다**. 이 시점 이전에는 값이 `undefined`입니다. 컴포넌트 생명 주기에 대한 자세한 내용은 [Lifecycle](guide/components/lifecycle) 섹션을 참조하세요. -You can also query for multiple results with the `@ContentChildren` decorator. +`@ContentChildren` 데코레이터를 사용하여 여러 결과를 쿼리할 수도 있습니다. @Component({ @@ -406,15 +402,15 @@ export class CustomMenu { export class UserProfile { } -`@ContentChildren` creates a `QueryList` object that contains the query results. You can subscribe to changes to the query results over time via the `changes` property. +`@ContentChildren`는 쿼리 결과가 포함된 `QueryList` 객체를 생성합니다. 시간 경과에 따른 쿼리 결과의 변경 사항을 `changes` 속성을 통해 구독할 수 있습니다. -### Decorator-based query options +### 데코레이터 기반 쿼리 옵션 -All query decorators accept an options object as a second parameter. These options work the same way as signal-based queries except where described below. +모든 쿼리 데코레이터는 두 번째 매개변수로 옵션 객체를 허용합니다. 이러한 옵션은 아래에서 설명하는 곳을 제외하고 신호 기반 쿼리와 동일하게 작동합니다. -### Static queries +### 정적 쿼리 -`@ViewChild` and `@ContentChild` decorators accept the `static` option. +`@ViewChild` 및 `@ContentChild` 데코레이터는 `static` 옵션을 허용합니다. ```angular-ts @Component({ @@ -430,26 +426,26 @@ export class CustomCard { } ``` -By setting `static: true`, you guarantee to Angular that the target of this query is _always_ present and is not conditionally rendered. This makes the result available earlier, in the `ngOnInit` lifecycle method. +`static: true`를 설정하면 Angular에 이 쿼리의 대상이 _항상_ 존재하고 조건부 렌더링되지 않음을 보장합니다. 이로 인해 결과를 `ngOnInit` 생명주기 메서드에서 더 일찍 사용할 수 있게 됩니다. -Static query results do not update after initialization. +정적 쿼리 결과는 초기화 후 업데이트되지 않습니다. -The `static` option is not available for `@ViewChildren` and `@ContentChildren` queries. +`@ViewChildren` 및 `@ContentChildren` 쿼리에는 `static` 옵션이 없습니다. -### Using QueryList +### QueryList 사용하기 -`@ViewChildren` and `@ContentChildren` both provide a `QueryList` object that contains a list of results. +`@ViewChildren` 및 `@ContentChildren`는 모두 결과 목록이 포함된 `QueryList` 객체를 제공합니다. -`QueryList` offers a number of convenience APIs for working with results in an array-like manner, such as `map`, `reduce`, and `forEach`. You can get an array of the current results by calling `toArray`. +`QueryList`는 `map`, `reduce`, `forEach`와 같이 배열과 유사하게 결과를 처리하는 여러 편리한 API를 제공합니다. 현재 결과의 배열을 얻으려면 `toArray`를 호출하면 됩니다. -You can subscribe to the `changes` property to do something any time the results change. +결과가 변경될 때마다 수행할 작업이 있으면 `changes` 속성을 구독할 수 있습니다. -## Common query pitfalls +## 일반적인 쿼리 함정 -When using queries, common pitfalls can make your code harder to understand and maintain. +쿼리를 사용할 때, 일반적인 함정은 코드를 이해하고 유지관리하기 어렵게 만들 수 있습니다. -Always maintain a single source of truth for state shared between multiple components. This avoids scenarios where repeated state in different components becomes out of sync. +여러 컴포넌트 간에 공유되는 상태의 단일 진실 소스를 항상 유지하세요. 이는 서로 다른 컴포넌트에서 반복된 상태가 동기화되지 않는 시나리오를 피하는 데 도움이 됩니다. -Avoid directly writing state to child components. This pattern can lead to brittle code that is hard to understand and is prone to [ExpressionChangedAfterItHasBeenChecked](errors/NG0100) errors. +자식 컴포넌트에 상태를 직접 작성하는 것을 피하세요. 이 패턴은 이해하기 어려운 깨지기 쉬운 코드를 초래할 수 있으며, [ExpressionChangedAfterItHasBeenChecked](errors/NG0100) 오류에 취약합니다. -Never directly write state to parent or ancestor components. This pattern can lead to brittle code that is hard to understand and is prone to [ExpressionChangedAfterItHasBeenChecked](errors/NG0100) errors. +부모 또는 조상 컴포넌트에 상태를 직접 작성하지 마세요. 이 패턴은 이해하기 어려운 깨지기 쉬운 코드를 초래할 수 있으며, [ExpressionChangedAfterItHasBeenChecked](errors/NG0100) 오류에 취약합니다. \ No newline at end of file diff --git a/adev/src/content/guide/components/selectors.md b/adev/src/content/guide/components/selectors.md index 6bc8c20d417d..d001db5b04b3 100644 --- a/adev/src/content/guide/components/selectors.md +++ b/adev/src/content/guide/components/selectors.md @@ -1,10 +1,8 @@ -# Component selectors +# 구성 요소 선택기 -Tip: This guide assumes you've already read the [Essentials Guide](essentials). Read that first if you're new to Angular. +팁: 이 가이드는 이미 [필수 가이드](essentials)를 읽었다고 가정합니다. Angular에 익숙하지 않은 경우 먼저 해당 내용을 읽으세요. -Every component defines -a [CSS selector](https://developer.mozilla.org/docs/Web/CSS/CSS_selectors) that determines how -the component is used: +모든 구성 요소는 구성 요소가 사용되는 방식을 결정하는 [CSS 선택기](https://developer.mozilla.org/docs/Web/CSS/CSS_selectors)를 정의합니다: @Component({ @@ -14,54 +12,43 @@ the component is used: export class ProfilePhoto { } -You use a component by creating a matching HTML element in the templates of _other_ components: +구성 요소는 _다른_ 구성 요소의 템플릿에 일치하는 HTML 요소를 생성함으로써 사용합니다: @Component({ template: ` - `, + `, ..., }) export class UserProfile { } -**Angular matches selectors statically at compile-time**. Changing the DOM at run-time, either via -Angular bindings or with DOM APIs, does not affect the components rendered. +**Angular는 컴파일 시간에 선택기를 정적으로 일치시킵니다**. 실행 시간에 DOM을 변경하면 Angular 바인딩이나 DOM API를 통해서도 렌더링된 구성 요소에는 영향을 미치지 않습니다. -**An element can match exactly one component selector.** If multiple component selectors match a -single element, Angular reports an error. +**하나의 요소는 정확히 하나의 구성 요소 선택기에만 일치할 수 있습니다.** 여러 구성 요소 선택기가 단일 요소에 일치하는 경우 Angular는 오류를 보고합니다. -**Component selectors are case-sensitive.** +**구성 요소 선택기는 대소문자를 구분합니다.** -## Types of selectors +## 선택기 유형 -Angular supports a limited subset -of [basic CSS selector types](https://developer.mozilla.org/docs/Web/CSS/CSS_Selectors) in -component selectors: +Angular는 구성 요소 선택기에서 [기본 CSS 선택기 유형](https://developer.mozilla.org/docs/Web/CSS/CSS_Selectors)의 제한된 하위 집합을 지원합니다: -| **Selector type** | **Description** | **Examples** | -| ------------------ | --------------------------------------------------------------------------------------------------------------- | ----------------------------- | -| Type selector | Matches elements based on their HTML tag name, or node name. | `profile-photo` | -| Attribute selector | Matches elements based on the presence of an HTML attribute and, optionally, an exact value for that attribute. | `[dropzone]` `[type="reset"]` | -| Class selector | Matches elements based on the presence of a CSS class. | `.menu-item` | +| **선택기 유형** | **설명** | **예** | +| ----------------- | ------------------------------------------------------------------------------------------------------------ | ---------------------------- | +| 유형 선택기 | HTML 태그 이름 또는 노드 이름을 기준으로 요소와 일치합니다. | `profile-photo` | +| 속성 선택기 | HTML 속성의 존재와 선택적으로 해당 속성의 정확한 값을 기준으로 요소와 일치합니다. | `[dropzone]` `[type="reset"]` | +| 클래스 선택기 | CSS 클래스의 존재를 기준으로 요소와 일치합니다. | `.menu-item` | -For attribute values, Angular supports matching an exact attribute value with the equals (`=`) -operator. Angular does not support other attribute value operators. +속성 값의 경우, Angular는 등호(`=`) 연산자를 사용하여 정확한 속성 값을 일치시키는 것을 지원합니다. Angular는 다른 속성 값 연산자를 지원하지 않습니다. -Angular component selectors do not support combinators, including -the [descendant combinator](https://developer.mozilla.org/docs/Web/CSS/Descendant_combinator) -or [child combinator](https://developer.mozilla.org/docs/Web/CSS/Child_combinator). +Angular 구성 요소 선택기는 [자손 결합기](https://developer.mozilla.org/docs/Web/CSS/Descendant_combinator) 또는 [자식 결합기](https://developer.mozilla.org/docs/Web/CSS/Child_combinator)를 포함한 결합기를 지원하지 않습니다. -Angular component selectors do not support -specifying [namespaces](https://developer.mozilla.org/docs/Web/SVG/Namespaces_Crash_Course). +Angular 구성 요소 선택기는 [네임스페이스](https://developer.mozilla.org/docs/Web/SVG/Namespaces_Crash_Course)를 지정하는 것을 지원하지 않습니다. -### The `:not` pseudo-class +### `:not` 의사 클래스 -Angular supports [the `:not` pseudo-class](https://developer.mozilla.org/docs/Web/CSS/:not). -You can append this pseudo-class to any other selector to narrow which elements a component's -selector matches. For example, you could define a `[dropzone]` attribute selector and prevent -matching `textarea` elements: +Angular는 [`:not` 의사 클래스](https://developer.mozilla.org/docs/Web/CSS/:not)를 지원합니다. 이 의사 클래스를 다른 선택기에 추가하여 구성 요소의 선택기가 어떤 요소와 일치하는지를 좁힐 수 있습니다. 예를 들어 `[dropzone]` 속성 선택기를 정의하고 `textarea` 요소와 일치하지 않도록 할 수 있습니다: @Component({ @@ -71,12 +58,11 @@ matching `textarea` elements: export class DropZone { } -Angular does not support any other pseudo-classes or pseudo-elements in component selectors. +Angular는 구성 요소 선택기에서 다른 의사 클래스나 의사 요소를 지원하지 않습니다. -### Combining selectors +### 선택기 결합 -You can combine multiple selectors by concatenating them. For example, you can match `