From 1d9caba9a98c369cebe7accb27a5e4c03cde9b24 Mon Sep 17 00:00:00 2001 From: splashdust Date: Tue, 4 Feb 2025 14:22:47 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20seb-oss/?= =?UTF-8?q?green@da1b4846a56992a92eeac55e759b2f3f1d84bd9d=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...undle.js => 968.a2a786ec.iframe.bundle.js} | 8 +- ...968.a2a786ec.iframe.bundle.js.LICENSE.txt} | 0 ....map => 968.a2a786ec.iframe.bundle.js.map} | 2 +- latest/angular-charts/iframe.html | 6 +- .../main.22c63791.iframe.bundle.js | 1 - .../main.ebd49d64.iframe.bundle.js | 1 + latest/angular-charts/project.json | 2 +- ...=> runtime~main.c1941a39.iframe.bundle.js} | 2 +- .../media/SEBSansSerif-Bold.ab555bfc.eot | Bin 0 -> 41511 bytes .../media/SEBSansSerif-Bold.da24a4e6.woff | Bin 0 -> 43768 bytes .../media/SEBSansSerif-Bold.ebe564e0.woff2 | Bin 0 -> 35568 bytes .../SEBSansSerif-BoldItalic.2038199b.woff | Bin 0 -> 41984 bytes .../SEBSansSerif-BoldItalic.3035cb3f.woff2 | Bin 0 -> 34108 bytes .../SEBSansSerif-BoldItalic.329975ab.eot | Bin 0 -> 39900 bytes .../media/SEBSansSerif-Light.53f5c47d.woff | Bin 0 -> 42784 bytes .../media/SEBSansSerif-Light.7351992d.woff2 | Bin 0 -> 34788 bytes .../media/SEBSansSerif-Light.f7e9dca1.eot | Bin 0 -> 40600 bytes .../SEBSansSerif-LightItalic.56fa6152.eot | Bin 0 -> 38904 bytes .../SEBSansSerif-LightItalic.c21e97cf.woff | Bin 0 -> 41088 bytes .../SEBSansSerif-LightItalic.e587d9e7.woff2 | Bin 0 -> 33332 bytes .../media/SEBSansSerif-Medium.47872e1e.eot | Bin 0 -> 41027 bytes .../media/SEBSansSerif-Medium.6d2a753c.woff | Bin 0 -> 43216 bytes .../media/SEBSansSerif-Medium.a8997e2c.woff2 | Bin 0 -> 35148 bytes .../SEBSansSerif-MediumItalic.18cd10a9.woff | Bin 0 -> 42088 bytes .../SEBSansSerif-MediumItalic.5e1b0f3c.eot | Bin 0 -> 40051 bytes .../SEBSansSerif-MediumItalic.9b9ac062.woff2 | Bin 0 -> 34056 bytes .../media/SEBSansSerif-Regular.371c0959.woff2 | Bin 0 -> 35012 bytes .../media/SEBSansSerif-Regular.420ebef6.eot | Bin 0 -> 40820 bytes .../media/SEBSansSerif-Regular.bfbc150e.woff | Bin 0 -> 43100 bytes .../SEBSansSerif-RegularItalic.0af74dcf.woff | Bin 0 -> 41908 bytes .../SEBSansSerif-RegularItalic.9afe67ee.eot | Bin 0 -> 39673 bytes .../SEBSansSerif-RegularItalic.d4b5c57f.woff2 | Bin 0 -> 34080 bytes ...ndle.js => 3421.33c054a2.iframe.bundle.js} | 12 +- ...map => 3421.33c054a2.iframe.bundle.js.map} | 2 +- latest/angular/392.507fbfec.iframe.bundle.js | 21 ++++ ....map => 392.507fbfec.iframe.bundle.js.map} | 2 +- ...ndle.js => 6412.ed3f29b4.iframe.bundle.js} | 110 +++++++++--------- .../6412.ed3f29b4.iframe.bundle.js.map | 1 + latest/angular/9134.769bd817.iframe.bundle.js | 10 -- latest/angular/9274.052c7168.iframe.bundle.js | 10 ++ ...map => 9274.052c7168.iframe.bundle.js.map} | 2 +- ...ndle.js => 9625.95fcdb07.iframe.bundle.js} | 8 +- ...625.95fcdb07.iframe.bundle.js.LICENSE.txt} | 0 ...map => 9625.95fcdb07.iframe.bundle.js.map} | 2 +- latest/angular/965.ab5c9ac7.iframe.bundle.js | 21 ---- .../9972.fb97796e.iframe.bundle.js.map | 1 - latest/angular/iframe.html | 6 +- latest/angular/main.12e0cec8.iframe.bundle.js | 1 - latest/angular/main.ff5e689a.iframe.bundle.js | 1 + latest/angular/project.json | 2 +- ...=> runtime~main.c7fdb989.iframe.bundle.js} | 2 +- ...xt-menu-stories.1f223b61.iframe.bundle.js} | 8 +- ...enu-stories.1f223b61.iframe.bundle.js.map} | 2 +- ...epicker-stories.3ed0c9d9.iframe.bundle.js} | 12 +- ...ker-stories.3ed0c9d9.iframe.bundle.js.map} | 2 +- ...ropdown-stories.bd300631.iframe.bundle.js} | 4 +- ...ies.bd300631.iframe.bundle.js.LICENSE.txt} | 0 ...r-chips-stories.6ebeedca.iframe.bundle.js} | 8 +- ...ips-stories.6ebeedca.iframe.bundle.js.map} | 2 +- ...ed-list-stories.ee485e09.iframe.bundle.js} | 8 +- ...ies.ee485e09.iframe.bundle.js.LICENSE.txt} | 0 ...ist-stories.ee485e09.iframe.bundle.js.map} | 2 +- .../media/SEBSansSerif-Bold.ab555bfc.eot | Bin 0 -> 41511 bytes .../media/SEBSansSerif-Bold.da24a4e6.woff | Bin 0 -> 43768 bytes .../media/SEBSansSerif-Bold.ebe564e0.woff2 | Bin 0 -> 35568 bytes .../SEBSansSerif-BoldItalic.2038199b.woff | Bin 0 -> 41984 bytes .../SEBSansSerif-BoldItalic.3035cb3f.woff2 | Bin 0 -> 34108 bytes .../SEBSansSerif-BoldItalic.329975ab.eot | Bin 0 -> 39900 bytes .../media/SEBSansSerif-Light.53f5c47d.woff | Bin 0 -> 42784 bytes .../media/SEBSansSerif-Light.7351992d.woff2 | Bin 0 -> 34788 bytes .../media/SEBSansSerif-Light.f7e9dca1.eot | Bin 0 -> 40600 bytes .../SEBSansSerif-LightItalic.56fa6152.eot | Bin 0 -> 38904 bytes .../SEBSansSerif-LightItalic.c21e97cf.woff | Bin 0 -> 41088 bytes .../SEBSansSerif-LightItalic.e587d9e7.woff2 | Bin 0 -> 33332 bytes .../media/SEBSansSerif-Medium.47872e1e.eot | Bin 0 -> 41027 bytes .../media/SEBSansSerif-Medium.6d2a753c.woff | Bin 0 -> 43216 bytes .../media/SEBSansSerif-Medium.a8997e2c.woff2 | Bin 0 -> 35148 bytes .../SEBSansSerif-MediumItalic.18cd10a9.woff | Bin 0 -> 42088 bytes .../SEBSansSerif-MediumItalic.5e1b0f3c.eot | Bin 0 -> 40051 bytes .../SEBSansSerif-MediumItalic.9b9ac062.woff2 | Bin 0 -> 34056 bytes .../media/SEBSansSerif-Regular.371c0959.woff2 | Bin 0 -> 35012 bytes .../media/SEBSansSerif-Regular.420ebef6.eot | Bin 0 -> 40820 bytes .../media/SEBSansSerif-Regular.bfbc150e.woff | Bin 0 -> 43100 bytes .../SEBSansSerif-RegularItalic.0af74dcf.woff | Bin 0 -> 41908 bytes .../SEBSansSerif-RegularItalic.9afe67ee.eot | Bin 0 -> 39673 bytes .../SEBSansSerif-RegularItalic.d4b5c57f.woff2 | Bin 0 -> 34080 bytes ...ndle.js => 7501.431b2a29.iframe.bundle.js} | 6 +- ...map => 7501.431b2a29.iframe.bundle.js.map} | 2 +- latest/chlorophyll/iframe.html | 6 +- .../main.41c9557d.iframe.bundle.js | 1 - .../main.cd2180ff.iframe.bundle.js | 1 + latest/chlorophyll/project.json | 2 +- ...=> runtime~main.d62d134c.iframe.bundle.js} | 2 +- .../media/SEBSansSerif-Bold.ab555bfc.eot | Bin 0 -> 41511 bytes .../media/SEBSansSerif-Bold.da24a4e6.woff | Bin 0 -> 43768 bytes .../media/SEBSansSerif-Bold.ebe564e0.woff2 | Bin 0 -> 35568 bytes .../SEBSansSerif-BoldItalic.2038199b.woff | Bin 0 -> 41984 bytes .../SEBSansSerif-BoldItalic.3035cb3f.woff2 | Bin 0 -> 34108 bytes .../SEBSansSerif-BoldItalic.329975ab.eot | Bin 0 -> 39900 bytes .../media/SEBSansSerif-Light.53f5c47d.woff | Bin 0 -> 42784 bytes .../media/SEBSansSerif-Light.7351992d.woff2 | Bin 0 -> 34788 bytes .../media/SEBSansSerif-Light.f7e9dca1.eot | Bin 0 -> 40600 bytes .../SEBSansSerif-LightItalic.56fa6152.eot | Bin 0 -> 38904 bytes .../SEBSansSerif-LightItalic.c21e97cf.woff | Bin 0 -> 41088 bytes .../SEBSansSerif-LightItalic.e587d9e7.woff2 | Bin 0 -> 33332 bytes .../media/SEBSansSerif-Medium.47872e1e.eot | Bin 0 -> 41027 bytes .../media/SEBSansSerif-Medium.6d2a753c.woff | Bin 0 -> 43216 bytes .../media/SEBSansSerif-Medium.a8997e2c.woff2 | Bin 0 -> 35148 bytes .../SEBSansSerif-MediumItalic.18cd10a9.woff | Bin 0 -> 42088 bytes .../SEBSansSerif-MediumItalic.5e1b0f3c.eot | Bin 0 -> 40051 bytes .../SEBSansSerif-MediumItalic.9b9ac062.woff2 | Bin 0 -> 34056 bytes .../media/SEBSansSerif-Regular.371c0959.woff2 | Bin 0 -> 35012 bytes .../media/SEBSansSerif-Regular.420ebef6.eot | Bin 0 -> 40820 bytes .../media/SEBSansSerif-Regular.bfbc150e.woff | Bin 0 -> 43100 bytes .../SEBSansSerif-RegularItalic.0af74dcf.woff | Bin 0 -> 41908 bytes .../SEBSansSerif-RegularItalic.9afe67ee.eot | Bin 0 -> 39673 bytes .../SEBSansSerif-RegularItalic.d4b5c57f.woff2 | Bin 0 -> 34080 bytes latest/core/project.json | 2 +- latest/react-charts/0af74dcf45dd2c37ec71.woff | Bin 0 -> 41908 bytes latest/react-charts/18cd10a93fda72e5c2c7.woff | Bin 0 -> 42088 bytes latest/react-charts/2038199b8b086b226b16.woff | Bin 0 -> 41984 bytes .../react-charts/3035cb3f8cd63fd88f27.woff2 | Bin 0 -> 34108 bytes latest/react-charts/329975ab652985323069.eot | Bin 0 -> 39900 bytes .../react-charts/371c09594bcd37bcd49b.woff2 | Bin 0 -> 35012 bytes latest/react-charts/420ebef68144b2813f95.eot | Bin 0 -> 40820 bytes latest/react-charts/47872e1e7e260a2910e1.eot | Bin 0 -> 41027 bytes latest/react-charts/53f5c47dd4020de41299.woff | Bin 0 -> 42784 bytes latest/react-charts/56fa6152bbd7fb0e1862.eot | Bin 0 -> 38904 bytes latest/react-charts/5e1b0f3c220f139639bc.eot | Bin 0 -> 40051 bytes latest/react-charts/6d2a753c827f543c0012.woff | Bin 0 -> 43216 bytes .../react-charts/7351992d6a1600d9b2ba.woff2 | Bin 0 -> 34788 bytes ...undle.js => 874.161882a2.iframe.bundle.js} | 8 +- ...874.161882a2.iframe.bundle.js.LICENSE.txt} | 0 ....map => 874.161882a2.iframe.bundle.js.map} | 2 +- latest/react-charts/9afe67eee67e0fa140d5.eot | Bin 0 -> 39673 bytes .../react-charts/9b9ac0624e8a00712ec9.woff2 | Bin 0 -> 34056 bytes .../react-charts/a8997e2c4e7080c82aa6.woff2 | Bin 0 -> 35148 bytes latest/react-charts/ab555bfc988236b7a9ea.eot | Bin 0 -> 41511 bytes latest/react-charts/bfbc150e08ef115a1e03.woff | Bin 0 -> 43100 bytes latest/react-charts/c21e97cf57d9bc0adf92.woff | Bin 0 -> 41088 bytes .../react-charts/d4b5c57f46badcef60ed.woff2 | Bin 0 -> 34080 bytes latest/react-charts/da24a4e637b75f4bf08c.woff | Bin 0 -> 43768 bytes .../react-charts/e587d9e7ebec145de5bd.woff2 | Bin 0 -> 33332 bytes .../react-charts/ebe564e0571bcc0efa25.woff2 | Bin 0 -> 35568 bytes latest/react-charts/f7e9dca1bf8d27dcb0d4.eot | Bin 0 -> 40600 bytes latest/react-charts/iframe.html | 6 +- .../main.4d04288c.iframe.bundle.js | 1 + .../main.b132ed3e.iframe.bundle.js | 1 - latest/react-charts/project.json | 2 +- ...=> runtime~main.f3dc77c9.iframe.bundle.js} | 2 +- latest/react/0af74dcf45dd2c37ec71.woff | Bin 0 -> 41908 bytes ...ndle.js => 1135.e03a9834.iframe.bundle.js} | 10 +- ...135.e03a9834.iframe.bundle.js.LICENSE.txt} | 0 ...map => 1135.e03a9834.iframe.bundle.js.map} | 2 +- latest/react/18cd10a93fda72e5c2c7.woff | Bin 0 -> 42088 bytes latest/react/2038199b8b086b226b16.woff | Bin 0 -> 41984 bytes .../react/2637.b1bcd3d6.iframe.bundle.js.map | 1 - latest/react/2832.b45eb478.iframe.bundle.js | 10 ++ ...map => 2832.b45eb478.iframe.bundle.js.map} | 2 +- latest/react/3035cb3f8cd63fd88f27.woff2 | Bin 0 -> 34108 bytes ...ndle.js => 3111.a28252c0.iframe.bundle.js} | 110 +++++++++--------- .../react/3111.a28252c0.iframe.bundle.js.map | 1 + latest/react/329975ab652985323069.eot | Bin 0 -> 39900 bytes latest/react/371c09594bcd37bcd49b.woff2 | Bin 0 -> 35012 bytes ...ndle.js => 4127.e2f533da.iframe.bundle.js} | 8 +- ...127.e2f533da.iframe.bundle.js.LICENSE.txt} | 0 ...map => 4127.e2f533da.iframe.bundle.js.map} | 2 +- latest/react/420ebef68144b2813f95.eot | Bin 0 -> 40820 bytes ...ndle.js => 4340.03d6e9c3.iframe.bundle.js} | 8 +- .../react/4340.03d6e9c3.iframe.bundle.js.map | 1 + latest/react/47872e1e7e260a2910e1.eot | Bin 0 -> 41027 bytes ...ndle.js => 4854.54c36346.iframe.bundle.js} | 10 +- ...map => 4854.54c36346.iframe.bundle.js.map} | 2 +- latest/react/53f5c47dd4020de41299.woff | Bin 0 -> 42784 bytes latest/react/56fa6152bbd7fb0e1862.eot | Bin 0 -> 38904 bytes latest/react/5e1b0f3c220f139639bc.eot | Bin 0 -> 40051 bytes latest/react/6164.5cdd0339.iframe.bundle.js | 10 -- latest/react/6d2a753c827f543c0012.woff | Bin 0 -> 43216 bytes latest/react/7305.36a7d8c5.iframe.bundle.js | 21 ---- latest/react/7351992d6a1600d9b2ba.woff2 | Bin 0 -> 34788 bytes .../react/766.85aff267.iframe.bundle.js.map | 1 - latest/react/8222.3de3c583.iframe.bundle.js | 21 ++++ ...map => 8222.3de3c583.iframe.bundle.js.map} | 2 +- ...ndle.js => 8569.2202599e.iframe.bundle.js} | 8 +- ...map => 8569.2202599e.iframe.bundle.js.map} | 2 +- ...ndle.js => 8753.55fe2efe.iframe.bundle.js} | 4 +- ...map => 8753.55fe2efe.iframe.bundle.js.map} | 2 +- ...ndle.js => 9339.579f6503.iframe.bundle.js} | 24 ++-- ...map => 9339.579f6503.iframe.bundle.js.map} | 2 +- ...undle.js => 944.2f59985e.iframe.bundle.js} | 4 +- ...944.2f59985e.iframe.bundle.js.LICENSE.txt} | 0 ...ndle.js => 9453.bcd55d4e.iframe.bundle.js} | 12 +- ...map => 9453.bcd55d4e.iframe.bundle.js.map} | 2 +- latest/react/9afe67eee67e0fa140d5.eot | Bin 0 -> 39673 bytes latest/react/9b9ac0624e8a00712ec9.woff2 | Bin 0 -> 34056 bytes latest/react/a8997e2c4e7080c82aa6.woff2 | Bin 0 -> 35148 bytes latest/react/ab555bfc988236b7a9ea.eot | Bin 0 -> 41511 bytes latest/react/bfbc150e08ef115a1e03.woff | Bin 0 -> 43100 bytes latest/react/c21e97cf57d9bc0adf92.woff | Bin 0 -> 41088 bytes latest/react/d4b5c57f46badcef60ed.woff2 | Bin 0 -> 34080 bytes latest/react/da24a4e637b75f4bf08c.woff | Bin 0 -> 43768 bytes latest/react/e587d9e7ebec145de5bd.woff2 | Bin 0 -> 33332 bytes latest/react/ebe564e0571bcc0efa25.woff2 | Bin 0 -> 35568 bytes latest/react/f7e9dca1bf8d27dcb0d4.eot | Bin 0 -> 40600 bytes latest/react/iframe.html | 6 +- ...rouped-list-mdx.cccadf56.iframe.bundle.js} | 8 +- ...mdx.cccadf56.iframe.bundle.js.LICENSE.txt} | 0 ...ed-list-mdx.cccadf56.iframe.bundle.js.map} | 2 +- ...ver-popover-mdx.4668256a.iframe.bundle.js} | 2 +- ...b-tabs-tabs-mdx.be183215.iframe.bundle.js} | 6 +- ...bs-tabs-mdx.be183215.iframe.bundle.js.map} | 2 +- latest/react/main.2ecc096b.iframe.bundle.js | 1 + latest/react/main.e5fc25e6.iframe.bundle.js | 1 - latest/react/project.json | 2 +- .../runtime~main.86b8cd8a.iframe.bundle.js | 1 + .../runtime~main.f94840f0.iframe.bundle.js | 1 - ...epicker-stories.86962b9f.iframe.bundle.js} | 8 +- ...ker-stories.86962b9f.iframe.bundle.js.map} | 2 +- ...ed-list-stories.919d08e4.iframe.bundle.js} | 8 +- ...ies.919d08e4.iframe.bundle.js.LICENSE.txt} | 0 ...ist-stories.919d08e4.iframe.bundle.js.map} | 2 +- ...popover-stories.9fd14036.iframe.bundle.js} | 2 +- 222 files changed, 332 insertions(+), 332 deletions(-) rename latest/angular-charts/{818.56ced6b9.iframe.bundle.js => 968.a2a786ec.iframe.bundle.js} (79%) rename latest/angular-charts/{818.56ced6b9.iframe.bundle.js.LICENSE.txt => 968.a2a786ec.iframe.bundle.js.LICENSE.txt} (100%) rename latest/angular-charts/{818.56ced6b9.iframe.bundle.js.map => 968.a2a786ec.iframe.bundle.js.map} (99%) delete mode 100644 latest/angular-charts/main.22c63791.iframe.bundle.js create mode 100644 latest/angular-charts/main.ebd49d64.iframe.bundle.js rename latest/angular-charts/{runtime~main.2e12b6a7.iframe.bundle.js => runtime~main.c1941a39.iframe.bundle.js} (64%) create mode 100644 latest/angular-charts/static/media/SEBSansSerif-Bold.ab555bfc.eot create mode 100644 latest/angular-charts/static/media/SEBSansSerif-Bold.da24a4e6.woff create mode 100644 latest/angular-charts/static/media/SEBSansSerif-Bold.ebe564e0.woff2 create mode 100644 latest/angular-charts/static/media/SEBSansSerif-BoldItalic.2038199b.woff create mode 100644 latest/angular-charts/static/media/SEBSansSerif-BoldItalic.3035cb3f.woff2 create mode 100644 latest/angular-charts/static/media/SEBSansSerif-BoldItalic.329975ab.eot create mode 100644 latest/angular-charts/static/media/SEBSansSerif-Light.53f5c47d.woff create mode 100644 latest/angular-charts/static/media/SEBSansSerif-Light.7351992d.woff2 create mode 100644 latest/angular-charts/static/media/SEBSansSerif-Light.f7e9dca1.eot create mode 100644 latest/angular-charts/static/media/SEBSansSerif-LightItalic.56fa6152.eot create mode 100644 latest/angular-charts/static/media/SEBSansSerif-LightItalic.c21e97cf.woff create mode 100644 latest/angular-charts/static/media/SEBSansSerif-LightItalic.e587d9e7.woff2 create mode 100644 latest/angular-charts/static/media/SEBSansSerif-Medium.47872e1e.eot create mode 100644 latest/angular-charts/static/media/SEBSansSerif-Medium.6d2a753c.woff create mode 100644 latest/angular-charts/static/media/SEBSansSerif-Medium.a8997e2c.woff2 create mode 100644 latest/angular-charts/static/media/SEBSansSerif-MediumItalic.18cd10a9.woff create mode 100644 latest/angular-charts/static/media/SEBSansSerif-MediumItalic.5e1b0f3c.eot create mode 100644 latest/angular-charts/static/media/SEBSansSerif-MediumItalic.9b9ac062.woff2 create mode 100644 latest/angular-charts/static/media/SEBSansSerif-Regular.371c0959.woff2 create mode 100644 latest/angular-charts/static/media/SEBSansSerif-Regular.420ebef6.eot create mode 100644 latest/angular-charts/static/media/SEBSansSerif-Regular.bfbc150e.woff create mode 100644 latest/angular-charts/static/media/SEBSansSerif-RegularItalic.0af74dcf.woff create mode 100644 latest/angular-charts/static/media/SEBSansSerif-RegularItalic.9afe67ee.eot create mode 100644 latest/angular-charts/static/media/SEBSansSerif-RegularItalic.d4b5c57f.woff2 rename latest/angular/{7254.6494d3ae.iframe.bundle.js => 3421.33c054a2.iframe.bundle.js} (98%) rename latest/angular/{7254.6494d3ae.iframe.bundle.js.map => 3421.33c054a2.iframe.bundle.js.map} (98%) create mode 100644 latest/angular/392.507fbfec.iframe.bundle.js rename latest/angular/{965.ab5c9ac7.iframe.bundle.js.map => 392.507fbfec.iframe.bundle.js.map} (98%) rename latest/angular/{9972.fb97796e.iframe.bundle.js => 6412.ed3f29b4.iframe.bundle.js} (78%) create mode 100644 latest/angular/6412.ed3f29b4.iframe.bundle.js.map delete mode 100644 latest/angular/9134.769bd817.iframe.bundle.js create mode 100644 latest/angular/9274.052c7168.iframe.bundle.js rename latest/angular/{9134.769bd817.iframe.bundle.js.map => 9274.052c7168.iframe.bundle.js.map} (96%) rename latest/angular/{3371.ad7811a7.iframe.bundle.js => 9625.95fcdb07.iframe.bundle.js} (78%) rename latest/angular/{3371.ad7811a7.iframe.bundle.js.LICENSE.txt => 9625.95fcdb07.iframe.bundle.js.LICENSE.txt} (100%) rename latest/angular/{3371.ad7811a7.iframe.bundle.js.map => 9625.95fcdb07.iframe.bundle.js.map} (99%) delete mode 100644 latest/angular/965.ab5c9ac7.iframe.bundle.js delete mode 100644 latest/angular/9972.fb97796e.iframe.bundle.js.map delete mode 100644 latest/angular/main.12e0cec8.iframe.bundle.js create mode 100644 latest/angular/main.ff5e689a.iframe.bundle.js rename latest/angular/{runtime~main.2adeed10.iframe.bundle.js => runtime~main.c7fdb989.iframe.bundle.js} (68%) rename latest/angular/{src-lib-context-menu-context-menu-stories.adab1a44.iframe.bundle.js => src-lib-context-menu-context-menu-stories.1f223b61.iframe.bundle.js} (98%) rename latest/angular/{src-lib-context-menu-context-menu-stories.adab1a44.iframe.bundle.js.map => src-lib-context-menu-context-menu-stories.1f223b61.iframe.bundle.js.map} (96%) rename latest/angular/{src-lib-datepicker-datepicker-stories.10a6a3fa.iframe.bundle.js => src-lib-datepicker-datepicker-stories.3ed0c9d9.iframe.bundle.js} (96%) rename latest/angular/{src-lib-datepicker-datepicker-stories.10a6a3fa.iframe.bundle.js.map => src-lib-datepicker-datepicker-stories.3ed0c9d9.iframe.bundle.js.map} (98%) rename latest/angular/{src-lib-dropdown-dropdown-stories.5aceffce.iframe.bundle.js => src-lib-dropdown-dropdown-stories.bd300631.iframe.bundle.js} (97%) rename latest/angular/{src-lib-dropdown-dropdown-stories.5aceffce.iframe.bundle.js.LICENSE.txt => src-lib-dropdown-dropdown-stories.bd300631.iframe.bundle.js.LICENSE.txt} (100%) rename latest/angular/{src-lib-filter-chips-filter-chips-stories.db80cb64.iframe.bundle.js => src-lib-filter-chips-filter-chips-stories.6ebeedca.iframe.bundle.js} (98%) rename latest/angular/{src-lib-filter-chips-filter-chips-stories.db80cb64.iframe.bundle.js.map => src-lib-filter-chips-filter-chips-stories.6ebeedca.iframe.bundle.js.map} (97%) rename latest/angular/{src-lib-grouped-list-grouped-list-stories.30b4691f.iframe.bundle.js => src-lib-grouped-list-grouped-list-stories.ee485e09.iframe.bundle.js} (97%) rename latest/angular/{src-lib-grouped-list-grouped-list-stories.30b4691f.iframe.bundle.js.LICENSE.txt => src-lib-grouped-list-grouped-list-stories.ee485e09.iframe.bundle.js.LICENSE.txt} (100%) rename latest/angular/{src-lib-grouped-list-grouped-list-stories.30b4691f.iframe.bundle.js.map => src-lib-grouped-list-grouped-list-stories.ee485e09.iframe.bundle.js.map} (81%) create mode 100644 latest/angular/static/media/SEBSansSerif-Bold.ab555bfc.eot create mode 100644 latest/angular/static/media/SEBSansSerif-Bold.da24a4e6.woff create mode 100644 latest/angular/static/media/SEBSansSerif-Bold.ebe564e0.woff2 create mode 100644 latest/angular/static/media/SEBSansSerif-BoldItalic.2038199b.woff create mode 100644 latest/angular/static/media/SEBSansSerif-BoldItalic.3035cb3f.woff2 create mode 100644 latest/angular/static/media/SEBSansSerif-BoldItalic.329975ab.eot create mode 100644 latest/angular/static/media/SEBSansSerif-Light.53f5c47d.woff create mode 100644 latest/angular/static/media/SEBSansSerif-Light.7351992d.woff2 create mode 100644 latest/angular/static/media/SEBSansSerif-Light.f7e9dca1.eot create mode 100644 latest/angular/static/media/SEBSansSerif-LightItalic.56fa6152.eot create mode 100644 latest/angular/static/media/SEBSansSerif-LightItalic.c21e97cf.woff create mode 100644 latest/angular/static/media/SEBSansSerif-LightItalic.e587d9e7.woff2 create mode 100644 latest/angular/static/media/SEBSansSerif-Medium.47872e1e.eot create mode 100644 latest/angular/static/media/SEBSansSerif-Medium.6d2a753c.woff create mode 100644 latest/angular/static/media/SEBSansSerif-Medium.a8997e2c.woff2 create mode 100644 latest/angular/static/media/SEBSansSerif-MediumItalic.18cd10a9.woff create mode 100644 latest/angular/static/media/SEBSansSerif-MediumItalic.5e1b0f3c.eot create mode 100644 latest/angular/static/media/SEBSansSerif-MediumItalic.9b9ac062.woff2 create mode 100644 latest/angular/static/media/SEBSansSerif-Regular.371c0959.woff2 create mode 100644 latest/angular/static/media/SEBSansSerif-Regular.420ebef6.eot create mode 100644 latest/angular/static/media/SEBSansSerif-Regular.bfbc150e.woff create mode 100644 latest/angular/static/media/SEBSansSerif-RegularItalic.0af74dcf.woff create mode 100644 latest/angular/static/media/SEBSansSerif-RegularItalic.9afe67ee.eot create mode 100644 latest/angular/static/media/SEBSansSerif-RegularItalic.d4b5c57f.woff2 rename latest/chlorophyll/{4637.77c506af.iframe.bundle.js => 7501.431b2a29.iframe.bundle.js} (94%) rename latest/chlorophyll/{4637.77c506af.iframe.bundle.js.map => 7501.431b2a29.iframe.bundle.js.map} (99%) delete mode 100644 latest/chlorophyll/main.41c9557d.iframe.bundle.js create mode 100644 latest/chlorophyll/main.cd2180ff.iframe.bundle.js rename latest/chlorophyll/{runtime~main.9daa0d8a.iframe.bundle.js => runtime~main.d62d134c.iframe.bundle.js} (77%) create mode 100644 latest/chlorophyll/static/media/SEBSansSerif-Bold.ab555bfc.eot create mode 100644 latest/chlorophyll/static/media/SEBSansSerif-Bold.da24a4e6.woff create mode 100644 latest/chlorophyll/static/media/SEBSansSerif-Bold.ebe564e0.woff2 create mode 100644 latest/chlorophyll/static/media/SEBSansSerif-BoldItalic.2038199b.woff create mode 100644 latest/chlorophyll/static/media/SEBSansSerif-BoldItalic.3035cb3f.woff2 create mode 100644 latest/chlorophyll/static/media/SEBSansSerif-BoldItalic.329975ab.eot create mode 100644 latest/chlorophyll/static/media/SEBSansSerif-Light.53f5c47d.woff create mode 100644 latest/chlorophyll/static/media/SEBSansSerif-Light.7351992d.woff2 create mode 100644 latest/chlorophyll/static/media/SEBSansSerif-Light.f7e9dca1.eot create mode 100644 latest/chlorophyll/static/media/SEBSansSerif-LightItalic.56fa6152.eot create mode 100644 latest/chlorophyll/static/media/SEBSansSerif-LightItalic.c21e97cf.woff create mode 100644 latest/chlorophyll/static/media/SEBSansSerif-LightItalic.e587d9e7.woff2 create mode 100644 latest/chlorophyll/static/media/SEBSansSerif-Medium.47872e1e.eot create mode 100644 latest/chlorophyll/static/media/SEBSansSerif-Medium.6d2a753c.woff create mode 100644 latest/chlorophyll/static/media/SEBSansSerif-Medium.a8997e2c.woff2 create mode 100644 latest/chlorophyll/static/media/SEBSansSerif-MediumItalic.18cd10a9.woff create mode 100644 latest/chlorophyll/static/media/SEBSansSerif-MediumItalic.5e1b0f3c.eot create mode 100644 latest/chlorophyll/static/media/SEBSansSerif-MediumItalic.9b9ac062.woff2 create mode 100644 latest/chlorophyll/static/media/SEBSansSerif-Regular.371c0959.woff2 create mode 100644 latest/chlorophyll/static/media/SEBSansSerif-Regular.420ebef6.eot create mode 100644 latest/chlorophyll/static/media/SEBSansSerif-Regular.bfbc150e.woff create mode 100644 latest/chlorophyll/static/media/SEBSansSerif-RegularItalic.0af74dcf.woff create mode 100644 latest/chlorophyll/static/media/SEBSansSerif-RegularItalic.9afe67ee.eot create mode 100644 latest/chlorophyll/static/media/SEBSansSerif-RegularItalic.d4b5c57f.woff2 create mode 100644 latest/react-charts/0af74dcf45dd2c37ec71.woff create mode 100644 latest/react-charts/18cd10a93fda72e5c2c7.woff create mode 100644 latest/react-charts/2038199b8b086b226b16.woff create mode 100644 latest/react-charts/3035cb3f8cd63fd88f27.woff2 create mode 100644 latest/react-charts/329975ab652985323069.eot create mode 100644 latest/react-charts/371c09594bcd37bcd49b.woff2 create mode 100644 latest/react-charts/420ebef68144b2813f95.eot create mode 100644 latest/react-charts/47872e1e7e260a2910e1.eot create mode 100644 latest/react-charts/53f5c47dd4020de41299.woff create mode 100644 latest/react-charts/56fa6152bbd7fb0e1862.eot create mode 100644 latest/react-charts/5e1b0f3c220f139639bc.eot create mode 100644 latest/react-charts/6d2a753c827f543c0012.woff create mode 100644 latest/react-charts/7351992d6a1600d9b2ba.woff2 rename latest/react-charts/{492.2ca84154.iframe.bundle.js => 874.161882a2.iframe.bundle.js} (64%) rename latest/react-charts/{492.2ca84154.iframe.bundle.js.LICENSE.txt => 874.161882a2.iframe.bundle.js.LICENSE.txt} (100%) rename latest/react-charts/{492.2ca84154.iframe.bundle.js.map => 874.161882a2.iframe.bundle.js.map} (99%) create mode 100644 latest/react-charts/9afe67eee67e0fa140d5.eot create mode 100644 latest/react-charts/9b9ac0624e8a00712ec9.woff2 create mode 100644 latest/react-charts/a8997e2c4e7080c82aa6.woff2 create mode 100644 latest/react-charts/ab555bfc988236b7a9ea.eot create mode 100644 latest/react-charts/bfbc150e08ef115a1e03.woff create mode 100644 latest/react-charts/c21e97cf57d9bc0adf92.woff create mode 100644 latest/react-charts/d4b5c57f46badcef60ed.woff2 create mode 100644 latest/react-charts/da24a4e637b75f4bf08c.woff create mode 100644 latest/react-charts/e587d9e7ebec145de5bd.woff2 create mode 100644 latest/react-charts/ebe564e0571bcc0efa25.woff2 create mode 100644 latest/react-charts/f7e9dca1bf8d27dcb0d4.eot create mode 100644 latest/react-charts/main.4d04288c.iframe.bundle.js delete mode 100644 latest/react-charts/main.b132ed3e.iframe.bundle.js rename latest/react-charts/{runtime~main.1a1a0666.iframe.bundle.js => runtime~main.f3dc77c9.iframe.bundle.js} (64%) create mode 100644 latest/react/0af74dcf45dd2c37ec71.woff rename latest/react/{1135.d7a3e579.iframe.bundle.js => 1135.e03a9834.iframe.bundle.js} (98%) rename latest/react/{1135.d7a3e579.iframe.bundle.js.LICENSE.txt => 1135.e03a9834.iframe.bundle.js.LICENSE.txt} (100%) rename latest/react/{1135.d7a3e579.iframe.bundle.js.map => 1135.e03a9834.iframe.bundle.js.map} (95%) create mode 100644 latest/react/18cd10a93fda72e5c2c7.woff create mode 100644 latest/react/2038199b8b086b226b16.woff delete mode 100644 latest/react/2637.b1bcd3d6.iframe.bundle.js.map create mode 100644 latest/react/2832.b45eb478.iframe.bundle.js rename latest/react/{6164.5cdd0339.iframe.bundle.js.map => 2832.b45eb478.iframe.bundle.js.map} (95%) create mode 100644 latest/react/3035cb3f8cd63fd88f27.woff2 rename latest/react/{2637.b1bcd3d6.iframe.bundle.js => 3111.a28252c0.iframe.bundle.js} (67%) create mode 100644 latest/react/3111.a28252c0.iframe.bundle.js.map create mode 100644 latest/react/329975ab652985323069.eot create mode 100644 latest/react/371c09594bcd37bcd49b.woff2 rename latest/react/{1201.2a3ca583.iframe.bundle.js => 4127.e2f533da.iframe.bundle.js} (59%) rename latest/react/{1201.2a3ca583.iframe.bundle.js.LICENSE.txt => 4127.e2f533da.iframe.bundle.js.LICENSE.txt} (100%) rename latest/react/{1201.2a3ca583.iframe.bundle.js.map => 4127.e2f533da.iframe.bundle.js.map} (99%) create mode 100644 latest/react/420ebef68144b2813f95.eot rename latest/react/{766.85aff267.iframe.bundle.js => 4340.03d6e9c3.iframe.bundle.js} (64%) create mode 100644 latest/react/4340.03d6e9c3.iframe.bundle.js.map create mode 100644 latest/react/47872e1e7e260a2910e1.eot rename latest/react/{4854.f00fcc24.iframe.bundle.js => 4854.54c36346.iframe.bundle.js} (94%) rename latest/react/{4854.f00fcc24.iframe.bundle.js.map => 4854.54c36346.iframe.bundle.js.map} (98%) create mode 100644 latest/react/53f5c47dd4020de41299.woff create mode 100644 latest/react/56fa6152bbd7fb0e1862.eot create mode 100644 latest/react/5e1b0f3c220f139639bc.eot delete mode 100644 latest/react/6164.5cdd0339.iframe.bundle.js create mode 100644 latest/react/6d2a753c827f543c0012.woff delete mode 100644 latest/react/7305.36a7d8c5.iframe.bundle.js create mode 100644 latest/react/7351992d6a1600d9b2ba.woff2 delete mode 100644 latest/react/766.85aff267.iframe.bundle.js.map create mode 100644 latest/react/8222.3de3c583.iframe.bundle.js rename latest/react/{7305.36a7d8c5.iframe.bundle.js.map => 8222.3de3c583.iframe.bundle.js.map} (98%) rename latest/react/{9004.ab055bec.iframe.bundle.js => 8569.2202599e.iframe.bundle.js} (98%) rename latest/react/{9004.ab055bec.iframe.bundle.js.map => 8569.2202599e.iframe.bundle.js.map} (98%) rename latest/react/{8753.e03c551c.iframe.bundle.js => 8753.55fe2efe.iframe.bundle.js} (98%) rename latest/react/{8753.e03c551c.iframe.bundle.js.map => 8753.55fe2efe.iframe.bundle.js.map} (97%) rename latest/react/{1742.33203dda.iframe.bundle.js => 9339.579f6503.iframe.bundle.js} (94%) rename latest/react/{1742.33203dda.iframe.bundle.js.map => 9339.579f6503.iframe.bundle.js.map} (98%) rename latest/react/{944.35c7393a.iframe.bundle.js => 944.2f59985e.iframe.bundle.js} (94%) rename latest/react/{944.35c7393a.iframe.bundle.js.LICENSE.txt => 944.2f59985e.iframe.bundle.js.LICENSE.txt} (100%) rename latest/react/{6002.cb728f41.iframe.bundle.js => 9453.bcd55d4e.iframe.bundle.js} (90%) rename latest/react/{6002.cb728f41.iframe.bundle.js.map => 9453.bcd55d4e.iframe.bundle.js.map} (94%) create mode 100644 latest/react/9afe67eee67e0fa140d5.eot create mode 100644 latest/react/9b9ac0624e8a00712ec9.woff2 create mode 100644 latest/react/a8997e2c4e7080c82aa6.woff2 create mode 100644 latest/react/ab555bfc988236b7a9ea.eot create mode 100644 latest/react/bfbc150e08ef115a1e03.woff create mode 100644 latest/react/c21e97cf57d9bc0adf92.woff create mode 100644 latest/react/d4b5c57f46badcef60ed.woff2 create mode 100644 latest/react/da24a4e637b75f4bf08c.woff create mode 100644 latest/react/e587d9e7ebec145de5bd.woff2 create mode 100644 latest/react/ebe564e0571bcc0efa25.woff2 create mode 100644 latest/react/f7e9dca1bf8d27dcb0d4.eot rename latest/react/{lib-grouped-list-grouped-list-mdx.e540d65b.iframe.bundle.js => lib-grouped-list-grouped-list-mdx.cccadf56.iframe.bundle.js} (95%) rename latest/react/{lib-grouped-list-grouped-list-mdx.e540d65b.iframe.bundle.js.LICENSE.txt => lib-grouped-list-grouped-list-mdx.cccadf56.iframe.bundle.js.LICENSE.txt} (100%) rename latest/react/{lib-grouped-list-grouped-list-mdx.e540d65b.iframe.bundle.js.map => lib-grouped-list-grouped-list-mdx.cccadf56.iframe.bundle.js.map} (86%) rename latest/react/{lib-popover-popover-mdx.d1a4f46a.iframe.bundle.js => lib-popover-popover-mdx.4668256a.iframe.bundle.js} (95%) rename latest/react/{lib-tabs-tabs-mdx.a7cffee7.iframe.bundle.js => lib-tabs-tabs-mdx.be183215.iframe.bundle.js} (98%) rename latest/react/{lib-tabs-tabs-mdx.a7cffee7.iframe.bundle.js.map => lib-tabs-tabs-mdx.be183215.iframe.bundle.js.map} (86%) create mode 100644 latest/react/main.2ecc096b.iframe.bundle.js delete mode 100644 latest/react/main.e5fc25e6.iframe.bundle.js create mode 100644 latest/react/runtime~main.86b8cd8a.iframe.bundle.js delete mode 100644 latest/react/runtime~main.f94840f0.iframe.bundle.js rename latest/react/{src-lib-datepicker-datepicker-stories.12cda5f4.iframe.bundle.js => src-lib-datepicker-datepicker-stories.86962b9f.iframe.bundle.js} (98%) rename latest/react/{src-lib-datepicker-datepicker-stories.12cda5f4.iframe.bundle.js.map => src-lib-datepicker-datepicker-stories.86962b9f.iframe.bundle.js.map} (85%) rename latest/react/{src-lib-grouped-list-grouped-list-stories.228c61ed.iframe.bundle.js => src-lib-grouped-list-grouped-list-stories.919d08e4.iframe.bundle.js} (93%) rename latest/react/{src-lib-grouped-list-grouped-list-stories.228c61ed.iframe.bundle.js.LICENSE.txt => src-lib-grouped-list-grouped-list-stories.919d08e4.iframe.bundle.js.LICENSE.txt} (100%) rename latest/react/{src-lib-grouped-list-grouped-list-stories.228c61ed.iframe.bundle.js.map => src-lib-grouped-list-grouped-list-stories.919d08e4.iframe.bundle.js.map} (77%) rename latest/react/{src-lib-popover-popover-stories.5224cc5b.iframe.bundle.js => src-lib-popover-popover-stories.9fd14036.iframe.bundle.js} (90%) diff --git a/latest/angular-charts/818.56ced6b9.iframe.bundle.js b/latest/angular-charts/968.a2a786ec.iframe.bundle.js similarity index 79% rename from latest/angular-charts/818.56ced6b9.iframe.bundle.js rename to latest/angular-charts/968.a2a786ec.iframe.bundle.js index 78d860fa4d..871a078d02 100644 --- a/latest/angular-charts/818.56ced6b9.iframe.bundle.js +++ b/latest/angular-charts/968.a2a786ec.iframe.bundle.js @@ -1,5 +1,5 @@ -/*! For license information please see 818.56ced6b9.iframe.bundle.js.LICENSE.txt */ -(self.webpackChunkgreen=self.webpackChunkgreen||[]).push([[818],{"./node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime/helpers/asyncToGenerator.js":module=>{function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg),value=info.value}catch(error){return void reject(error)}info.done?resolve(value):Promise.resolve(value).then(_next,_throw)}module.exports=function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise((function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(void 0)}))}},module.exports.__esModule=!0,module.exports.default=module.exports},"./node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg),value=info.value}catch(error){return void reject(error)}info.done?resolve(value):Promise.resolve(value).then(_next,_throw)}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise((function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(void 0)}))}}__webpack_require__.d(__webpack_exports__,{A:()=>_asyncToGenerator})},"./node_modules/@angular/common/fesm2022/common.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{APP_BASE_HREF:()=>APP_BASE_HREF,AsyncPipe:()=>AsyncPipe,BrowserPlatformLocation:()=>BrowserPlatformLocation,CommonModule:()=>CommonModule,CurrencyPipe:()=>CurrencyPipe,DATE_PIPE_DEFAULT_OPTIONS:()=>DATE_PIPE_DEFAULT_OPTIONS,DATE_PIPE_DEFAULT_TIMEZONE:()=>DATE_PIPE_DEFAULT_TIMEZONE,DOCUMENT:()=>DOCUMENT,DatePipe:()=>DatePipe,DecimalPipe:()=>DecimalPipe,FormStyle:()=>FormStyle,FormatWidth:()=>FormatWidth,HashLocationStrategy:()=>HashLocationStrategy,I18nPluralPipe:()=>I18nPluralPipe,I18nSelectPipe:()=>I18nSelectPipe,IMAGE_CONFIG:()=>_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵIMAGE_CONFIG"],IMAGE_LOADER:()=>IMAGE_LOADER,JsonPipe:()=>JsonPipe,KeyValuePipe:()=>KeyValuePipe,LOCATION_INITIALIZED:()=>LOCATION_INITIALIZED,Location:()=>Location,LocationStrategy:()=>LocationStrategy,LowerCasePipe:()=>LowerCasePipe,NgClass:()=>NgClass,NgComponentOutlet:()=>NgComponentOutlet,NgFor:()=>NgForOf,NgForOf:()=>NgForOf,NgForOfContext:()=>NgForOfContext,NgIf:()=>NgIf,NgIfContext:()=>NgIfContext,NgLocaleLocalization:()=>NgLocaleLocalization,NgLocalization:()=>NgLocalization,NgOptimizedImage:()=>NgOptimizedImage,NgPlural:()=>NgPlural,NgPluralCase:()=>NgPluralCase,NgStyle:()=>NgStyle,NgSwitch:()=>NgSwitch,NgSwitchCase:()=>NgSwitchCase,NgSwitchDefault:()=>NgSwitchDefault,NgTemplateOutlet:()=>NgTemplateOutlet,NumberFormatStyle:()=>NumberFormatStyle,NumberSymbol:()=>NumberSymbol,PRECONNECT_CHECK_BLOCKLIST:()=>PRECONNECT_CHECK_BLOCKLIST,PathLocationStrategy:()=>PathLocationStrategy,PercentPipe:()=>PercentPipe,PlatformLocation:()=>PlatformLocation,Plural:()=>Plural,SlicePipe:()=>SlicePipe,TitleCasePipe:()=>TitleCasePipe,TranslationWidth:()=>TranslationWidth,UpperCasePipe:()=>UpperCasePipe,VERSION:()=>VERSION,ViewportScroller:()=>ViewportScroller,WeekDay:()=>WeekDay,XhrFactory:()=>XhrFactory,formatCurrency:()=>formatCurrency,formatDate:()=>formatDate,formatNumber:()=>formatNumber,formatPercent:()=>formatPercent,getCurrencySymbol:()=>getCurrencySymbol,getLocaleCurrencyCode:()=>getLocaleCurrencyCode,getLocaleCurrencyName:()=>getLocaleCurrencyName,getLocaleCurrencySymbol:()=>getLocaleCurrencySymbol,getLocaleDateFormat:()=>getLocaleDateFormat,getLocaleDateTimeFormat:()=>getLocaleDateTimeFormat,getLocaleDayNames:()=>getLocaleDayNames,getLocaleDayPeriods:()=>getLocaleDayPeriods,getLocaleDirection:()=>getLocaleDirection,getLocaleEraNames:()=>getLocaleEraNames,getLocaleExtraDayPeriodRules:()=>getLocaleExtraDayPeriodRules,getLocaleExtraDayPeriods:()=>getLocaleExtraDayPeriods,getLocaleFirstDayOfWeek:()=>getLocaleFirstDayOfWeek,getLocaleId:()=>getLocaleId,getLocaleMonthNames:()=>getLocaleMonthNames,getLocaleNumberFormat:()=>getLocaleNumberFormat,getLocaleNumberSymbol:()=>getLocaleNumberSymbol,getLocalePluralCase:()=>getLocalePluralCase,getLocaleTimeFormat:()=>getLocaleTimeFormat,getLocaleWeekEndRange:()=>getLocaleWeekEndRange,getNumberOfCurrencyDigits:()=>getNumberOfCurrencyDigits,isPlatformBrowser:()=>isPlatformBrowser,isPlatformServer:()=>isPlatformServer,isPlatformWorkerApp:()=>isPlatformWorkerApp,isPlatformWorkerUi:()=>isPlatformWorkerUi,provideCloudflareLoader:()=>provideCloudflareLoader,provideCloudinaryLoader:()=>provideCloudinaryLoader,provideImageKitLoader:()=>provideImageKitLoader,provideImgixLoader:()=>provideImgixLoader,provideNetlifyLoader:()=>provideNetlifyLoader,registerLocaleData:()=>registerLocaleData,ɵDomAdapter:()=>DomAdapter,ɵNullViewportScroller:()=>NullViewportScroller,ɵPLATFORM_BROWSER_ID:()=>PLATFORM_BROWSER_ID,ɵPLATFORM_SERVER_ID:()=>PLATFORM_SERVER_ID,ɵPLATFORM_WORKER_APP_ID:()=>PLATFORM_WORKER_APP_ID,ɵPLATFORM_WORKER_UI_ID:()=>PLATFORM_WORKER_UI_ID,ɵPlatformNavigation:()=>PlatformNavigation,ɵgetDOM:()=>getDOM,ɵnormalizeQueryParams:()=>normalizeQueryParams,ɵparseCookieValue:()=>parseCookieValue,ɵsetRootDomAdapter:()=>setRootDomAdapter});var _angular_core__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let _DOM=null;function getDOM(){return _DOM}function setRootDomAdapter(adapter){_DOM??=adapter}class DomAdapter{}class PlatformNavigation{static{this.ɵfac=function PlatformNavigation_Factory(t){return new(t||PlatformNavigation)}}static{this.ɵprov=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({token:PlatformNavigation,factory:()=>window.navigation,providedIn:"platform"})}}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](PlatformNavigation,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable,args:[{providedIn:"platform",useFactory:()=>window.navigation}]}],null,null);const DOCUMENT=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.InjectionToken(ngDevMode?"DocumentToken":"");class PlatformLocation{historyGo(relativePosition){throw new Error(ngDevMode?"Not implemented":"")}static{this.ɵfac=function PlatformLocation_Factory(t){return new(t||PlatformLocation)}}static{this.ɵprov=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({token:PlatformLocation,factory:()=>(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(BrowserPlatformLocation),providedIn:"platform"})}}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](PlatformLocation,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable,args:[{providedIn:"platform",useFactory:()=>(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(BrowserPlatformLocation)}]}],null,null);const LOCATION_INITIALIZED=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.InjectionToken(ngDevMode?"Location Initialized":"");class BrowserPlatformLocation extends PlatformLocation{constructor(){super(),this._doc=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(DOCUMENT),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return getDOM().getBaseHref(this._doc)}onPopState(fn){const window=getDOM().getGlobalEventTarget(this._doc,"window");return window.addEventListener("popstate",fn,!1),()=>window.removeEventListener("popstate",fn)}onHashChange(fn){const window=getDOM().getGlobalEventTarget(this._doc,"window");return window.addEventListener("hashchange",fn,!1),()=>window.removeEventListener("hashchange",fn)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(newPath){this._location.pathname=newPath}pushState(state,title,url){this._history.pushState(state,title,url)}replaceState(state,title,url){this._history.replaceState(state,title,url)}forward(){this._history.forward()}back(){this._history.back()}historyGo(relativePosition=0){this._history.go(relativePosition)}getState(){return this._history.state}static{this.ɵfac=function BrowserPlatformLocation_Factory(t){return new(t||BrowserPlatformLocation)}}static{this.ɵprov=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({token:BrowserPlatformLocation,factory:()=>new BrowserPlatformLocation,providedIn:"platform"})}}function joinWithSlash(start,end){if(0==start.length)return end;if(0==end.length)return start;let slashes=0;return start.endsWith("/")&&slashes++,end.startsWith("/")&&slashes++,2==slashes?start+end.substring(1):1==slashes?start+end:start+"/"+end}function stripTrailingSlash(url){const match=url.match(/#|\?|$/),pathEndIdx=match&&match.index||url.length,droppedSlashIdx=pathEndIdx-("/"===url[pathEndIdx-1]?1:0);return url.slice(0,droppedSlashIdx)+url.slice(pathEndIdx)}function normalizeQueryParams(params){return params&&"?"!==params[0]?"?"+params:params}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](BrowserPlatformLocation,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable,args:[{providedIn:"platform",useFactory:()=>new BrowserPlatformLocation}]}],(()=>[]),null);class LocationStrategy{historyGo(relativePosition){throw new Error(ngDevMode?"Not implemented":"")}static{this.ɵfac=function LocationStrategy_Factory(t){return new(t||LocationStrategy)}}static{this.ɵprov=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({token:LocationStrategy,factory:()=>(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(PathLocationStrategy),providedIn:"root"})}}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](LocationStrategy,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable,args:[{providedIn:"root",useFactory:()=>(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(PathLocationStrategy)}]}],null,null);const APP_BASE_HREF=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.InjectionToken(ngDevMode?"appBaseHref":"");class PathLocationStrategy extends LocationStrategy{constructor(_platformLocation,href){super(),this._platformLocation=_platformLocation,this._removeListenerFns=[],this._baseHref=href??this._platformLocation.getBaseHrefFromDOM()??(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(DOCUMENT).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(fn){this._removeListenerFns.push(this._platformLocation.onPopState(fn),this._platformLocation.onHashChange(fn))}getBaseHref(){return this._baseHref}prepareExternalUrl(internal){return joinWithSlash(this._baseHref,internal)}path(includeHash=!1){const pathname=this._platformLocation.pathname+normalizeQueryParams(this._platformLocation.search),hash=this._platformLocation.hash;return hash&&includeHash?`${pathname}${hash}`:pathname}pushState(state,title,url,queryParams){const externalUrl=this.prepareExternalUrl(url+normalizeQueryParams(queryParams));this._platformLocation.pushState(state,title,externalUrl)}replaceState(state,title,url,queryParams){const externalUrl=this.prepareExternalUrl(url+normalizeQueryParams(queryParams));this._platformLocation.replaceState(state,title,externalUrl)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(relativePosition=0){this._platformLocation.historyGo?.(relativePosition)}static{this.ɵfac=function PathLocationStrategy_Factory(t){return new(t||PathLocationStrategy)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](PlatformLocation),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](APP_BASE_HREF,8))}}static{this.ɵprov=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({token:PathLocationStrategy,factory:PathLocationStrategy.ɵfac,providedIn:"root"})}}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](PathLocationStrategy,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable,args:[{providedIn:"root"}]}],(()=>[{type:PlatformLocation},{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[APP_BASE_HREF]}]}]),null);class HashLocationStrategy extends LocationStrategy{constructor(_platformLocation,_baseHref){super(),this._platformLocation=_platformLocation,this._baseHref="",this._removeListenerFns=[],null!=_baseHref&&(this._baseHref=_baseHref)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(fn){this._removeListenerFns.push(this._platformLocation.onPopState(fn),this._platformLocation.onHashChange(fn))}getBaseHref(){return this._baseHref}path(includeHash=!1){const path=this._platformLocation.hash??"#";return path.length>0?path.substring(1):path}prepareExternalUrl(internal){const url=joinWithSlash(this._baseHref,internal);return url.length>0?"#"+url:url}pushState(state,title,path,queryParams){let url=this.prepareExternalUrl(path+normalizeQueryParams(queryParams));0==url.length&&(url=this._platformLocation.pathname),this._platformLocation.pushState(state,title,url)}replaceState(state,title,path,queryParams){let url=this.prepareExternalUrl(path+normalizeQueryParams(queryParams));0==url.length&&(url=this._platformLocation.pathname),this._platformLocation.replaceState(state,title,url)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(relativePosition=0){this._platformLocation.historyGo?.(relativePosition)}static{this.ɵfac=function HashLocationStrategy_Factory(t){return new(t||HashLocationStrategy)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](PlatformLocation),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](APP_BASE_HREF,8))}}static{this.ɵprov=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({token:HashLocationStrategy,factory:HashLocationStrategy.ɵfac})}}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](HashLocationStrategy,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable}],(()=>[{type:PlatformLocation},{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[APP_BASE_HREF]}]}]),null);class Location{constructor(locationStrategy){this._subject=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.EventEmitter,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=locationStrategy;const baseHref=this._locationStrategy.getBaseHref();this._basePath=function _stripOrigin(baseHref){const isAbsoluteUrl=new RegExp("^(https?:)?//").test(baseHref);if(isAbsoluteUrl){const[,pathname]=baseHref.split(/\/\/[^\/]+/);return pathname}return baseHref}(stripTrailingSlash(_stripIndexHtml(baseHref))),this._locationStrategy.onPopState((ev=>{this._subject.emit({url:this.path(!0),pop:!0,state:ev.state,type:ev.type})}))}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(includeHash=!1){return this.normalize(this._locationStrategy.path(includeHash))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(path,query=""){return this.path()==this.normalize(path+normalizeQueryParams(query))}normalize(url){return Location.stripTrailingSlash(function _stripBasePath(basePath,url){if(!basePath||!url.startsWith(basePath))return url;const strippedUrl=url.substring(basePath.length);if(""===strippedUrl||["/",";","?","#"].includes(strippedUrl[0]))return strippedUrl;return url}(this._basePath,_stripIndexHtml(url)))}prepareExternalUrl(url){return url&&"/"!==url[0]&&(url="/"+url),this._locationStrategy.prepareExternalUrl(url)}go(path,query="",state=null){this._locationStrategy.pushState(state,"",path,query),this._notifyUrlChangeListeners(this.prepareExternalUrl(path+normalizeQueryParams(query)),state)}replaceState(path,query="",state=null){this._locationStrategy.replaceState(state,"",path,query),this._notifyUrlChangeListeners(this.prepareExternalUrl(path+normalizeQueryParams(query)),state)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(relativePosition=0){this._locationStrategy.historyGo?.(relativePosition)}onUrlChange(fn){return this._urlChangeListeners.push(fn),this._urlChangeSubscription??=this.subscribe((v=>{this._notifyUrlChangeListeners(v.url,v.state)})),()=>{const fnIndex=this._urlChangeListeners.indexOf(fn);this._urlChangeListeners.splice(fnIndex,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(url="",state){this._urlChangeListeners.forEach((fn=>fn(url,state)))}subscribe(onNext,onThrow,onReturn){return this._subject.subscribe({next:onNext,error:onThrow,complete:onReturn})}static{this.normalizeQueryParams=normalizeQueryParams}static{this.joinWithSlash=joinWithSlash}static{this.stripTrailingSlash=stripTrailingSlash}static{this.ɵfac=function Location_Factory(t){return new(t||Location)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](LocationStrategy))}}static{this.ɵprov=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({token:Location,factory:()=>createLocation(),providedIn:"root"})}}function createLocation(){return new Location((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"])(LocationStrategy))}function _stripIndexHtml(url){return url.replace(/\/index.html$/,"")}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](Location,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable,args:[{providedIn:"root",useFactory:createLocation}]}],(()=>[{type:LocationStrategy}]),null);const CURRENCIES_EN={ADP:[void 0,void 0,0],AFN:[void 0,"؋",0],ALL:[void 0,void 0,0],AMD:[void 0,"֏",2],AOA:[void 0,"Kz"],ARS:[void 0,"$"],AUD:["A$","$"],AZN:[void 0,"₼"],BAM:[void 0,"KM"],BBD:[void 0,"$"],BDT:[void 0,"৳"],BHD:[void 0,void 0,3],BIF:[void 0,void 0,0],BMD:[void 0,"$"],BND:[void 0,"$"],BOB:[void 0,"Bs"],BRL:["R$"],BSD:[void 0,"$"],BWP:[void 0,"P"],BYN:[void 0,void 0,2],BYR:[void 0,void 0,0],BZD:[void 0,"$"],CAD:["CA$","$",2],CHF:[void 0,void 0,2],CLF:[void 0,void 0,4],CLP:[void 0,"$",0],CNY:["CN¥","¥"],COP:[void 0,"$",2],CRC:[void 0,"₡",2],CUC:[void 0,"$"],CUP:[void 0,"$"],CZK:[void 0,"Kč",2],DJF:[void 0,void 0,0],DKK:[void 0,"kr",2],DOP:[void 0,"$"],EGP:[void 0,"E£"],ESP:[void 0,"₧",0],EUR:["€"],FJD:[void 0,"$"],FKP:[void 0,"£"],GBP:["£"],GEL:[void 0,"₾"],GHS:[void 0,"GH₵"],GIP:[void 0,"£"],GNF:[void 0,"FG",0],GTQ:[void 0,"Q"],GYD:[void 0,"$",2],HKD:["HK$","$"],HNL:[void 0,"L"],HRK:[void 0,"kn"],HUF:[void 0,"Ft",2],IDR:[void 0,"Rp",2],ILS:["₪"],INR:["₹"],IQD:[void 0,void 0,0],IRR:[void 0,void 0,0],ISK:[void 0,"kr",0],ITL:[void 0,void 0,0],JMD:[void 0,"$"],JOD:[void 0,void 0,3],JPY:["¥",void 0,0],KHR:[void 0,"៛"],KMF:[void 0,"CF",0],KPW:[void 0,"₩",0],KRW:["₩",void 0,0],KWD:[void 0,void 0,3],KYD:[void 0,"$"],KZT:[void 0,"₸"],LAK:[void 0,"₭",0],LBP:[void 0,"L£",0],LKR:[void 0,"Rs"],LRD:[void 0,"$"],LTL:[void 0,"Lt"],LUF:[void 0,void 0,0],LVL:[void 0,"Ls"],LYD:[void 0,void 0,3],MGA:[void 0,"Ar",0],MGF:[void 0,void 0,0],MMK:[void 0,"K",0],MNT:[void 0,"₮",2],MRO:[void 0,void 0,0],MUR:[void 0,"Rs",2],MXN:["MX$","$"],MYR:[void 0,"RM"],NAD:[void 0,"$"],NGN:[void 0,"₦"],NIO:[void 0,"C$"],NOK:[void 0,"kr",2],NPR:[void 0,"Rs"],NZD:["NZ$","$"],OMR:[void 0,void 0,3],PHP:["₱"],PKR:[void 0,"Rs",2],PLN:[void 0,"zł"],PYG:[void 0,"₲",0],RON:[void 0,"lei"],RSD:[void 0,void 0,0],RUB:[void 0,"₽"],RWF:[void 0,"RF",0],SBD:[void 0,"$"],SEK:[void 0,"kr",2],SGD:[void 0,"$"],SHP:[void 0,"£"],SLE:[void 0,void 0,2],SLL:[void 0,void 0,0],SOS:[void 0,void 0,0],SRD:[void 0,"$"],SSP:[void 0,"£"],STD:[void 0,void 0,0],STN:[void 0,"Db"],SYP:[void 0,"£",0],THB:[void 0,"฿"],TMM:[void 0,void 0,0],TND:[void 0,void 0,3],TOP:[void 0,"T$"],TRL:[void 0,void 0,0],TRY:[void 0,"₺"],TTD:[void 0,"$"],TWD:["NT$","$",2],TZS:[void 0,void 0,2],UAH:[void 0,"₴"],UGX:[void 0,void 0,0],USD:["$"],UYI:[void 0,void 0,0],UYU:[void 0,"$"],UYW:[void 0,void 0,4],UZS:[void 0,void 0,2],VEF:[void 0,"Bs",2],VND:["₫",void 0,0],VUV:[void 0,void 0,0],XAF:["FCFA",void 0,0],XCD:["EC$","$"],XOF:["F CFA",void 0,0],XPF:["CFPF",void 0,0],XXX:["¤"],YER:[void 0,void 0,0],ZAR:[void 0,"R"],ZMK:[void 0,void 0,0],ZMW:[void 0,"ZK"],ZWD:[void 0,void 0,0]};var NumberFormatStyle,Plural,FormStyle,TranslationWidth,FormatWidth;!function(NumberFormatStyle){NumberFormatStyle[NumberFormatStyle.Decimal=0]="Decimal",NumberFormatStyle[NumberFormatStyle.Percent=1]="Percent",NumberFormatStyle[NumberFormatStyle.Currency=2]="Currency",NumberFormatStyle[NumberFormatStyle.Scientific=3]="Scientific"}(NumberFormatStyle||(NumberFormatStyle={})),function(Plural){Plural[Plural.Zero=0]="Zero",Plural[Plural.One=1]="One",Plural[Plural.Two=2]="Two",Plural[Plural.Few=3]="Few",Plural[Plural.Many=4]="Many",Plural[Plural.Other=5]="Other"}(Plural||(Plural={})),function(FormStyle){FormStyle[FormStyle.Format=0]="Format",FormStyle[FormStyle.Standalone=1]="Standalone"}(FormStyle||(FormStyle={})),function(TranslationWidth){TranslationWidth[TranslationWidth.Narrow=0]="Narrow",TranslationWidth[TranslationWidth.Abbreviated=1]="Abbreviated",TranslationWidth[TranslationWidth.Wide=2]="Wide",TranslationWidth[TranslationWidth.Short=3]="Short"}(TranslationWidth||(TranslationWidth={})),function(FormatWidth){FormatWidth[FormatWidth.Short=0]="Short",FormatWidth[FormatWidth.Medium=1]="Medium",FormatWidth[FormatWidth.Long=2]="Long",FormatWidth[FormatWidth.Full=3]="Full"}(FormatWidth||(FormatWidth={}));const NumberSymbol={Decimal:0,Group:1,List:2,PercentSign:3,PlusSign:4,MinusSign:5,Exponential:6,SuperscriptingExponent:7,PerMille:8,Infinity:9,NaN:10,TimeSeparator:11,CurrencyDecimal:12,CurrencyGroup:13};var WeekDay;function getLocaleId(locale){return(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵfindLocaleData"])(locale)[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].LocaleId]}function getLocaleDayPeriods(locale,formStyle,width){const data=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵfindLocaleData"])(locale),amPm=getLastDefinedValue([data[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].DayPeriodsFormat],data[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].DayPeriodsStandalone]],formStyle);return getLastDefinedValue(amPm,width)}function getLocaleDayNames(locale,formStyle,width){const data=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵfindLocaleData"])(locale),days=getLastDefinedValue([data[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].DaysFormat],data[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].DaysStandalone]],formStyle);return getLastDefinedValue(days,width)}function getLocaleMonthNames(locale,formStyle,width){const data=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵfindLocaleData"])(locale),months=getLastDefinedValue([data[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].MonthsFormat],data[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].MonthsStandalone]],formStyle);return getLastDefinedValue(months,width)}function getLocaleEraNames(locale,width){return getLastDefinedValue((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵfindLocaleData"])(locale)[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].Eras],width)}function getLocaleFirstDayOfWeek(locale){return(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵfindLocaleData"])(locale)[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].FirstDayOfWeek]}function getLocaleWeekEndRange(locale){return(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵfindLocaleData"])(locale)[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].WeekendRange]}function getLocaleDateFormat(locale,width){return getLastDefinedValue((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵfindLocaleData"])(locale)[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].DateFormat],width)}function getLocaleTimeFormat(locale,width){return getLastDefinedValue((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵfindLocaleData"])(locale)[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].TimeFormat],width)}function getLocaleDateTimeFormat(locale,width){return getLastDefinedValue((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵfindLocaleData"])(locale)[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].DateTimeFormat],width)}function getLocaleNumberSymbol(locale,symbol){const data=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵfindLocaleData"])(locale),res=data[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].NumberSymbols][symbol];if(void 0===res){if(symbol===NumberSymbol.CurrencyDecimal)return data[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].NumberSymbols][NumberSymbol.Decimal];if(symbol===NumberSymbol.CurrencyGroup)return data[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].NumberSymbols][NumberSymbol.Group]}return res}function getLocaleNumberFormat(locale,type){return(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵfindLocaleData"])(locale)[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].NumberFormats][type]}function getLocaleCurrencySymbol(locale){return(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵfindLocaleData"])(locale)[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].CurrencySymbol]||null}function getLocaleCurrencyName(locale){return(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵfindLocaleData"])(locale)[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].CurrencyName]||null}function getLocaleCurrencyCode(locale){return(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵgetLocaleCurrencyCode"])(locale)}!function(WeekDay){WeekDay[WeekDay.Sunday=0]="Sunday",WeekDay[WeekDay.Monday=1]="Monday",WeekDay[WeekDay.Tuesday=2]="Tuesday",WeekDay[WeekDay.Wednesday=3]="Wednesday",WeekDay[WeekDay.Thursday=4]="Thursday",WeekDay[WeekDay.Friday=5]="Friday",WeekDay[WeekDay.Saturday=6]="Saturday"}(WeekDay||(WeekDay={}));const getLocalePluralCase=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵgetLocalePluralCase"];function checkFullData(data){if(!data[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].ExtraData])throw new Error(`Missing extra locale data for the locale "${data[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function getLocaleExtraDayPeriodRules(locale){const data=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵfindLocaleData"])(locale);checkFullData(data);return(data[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].ExtraData][2]||[]).map((rule=>"string"==typeof rule?extractTime(rule):[extractTime(rule[0]),extractTime(rule[1])]))}function getLocaleExtraDayPeriods(locale,formStyle,width){const data=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵfindLocaleData"])(locale);checkFullData(data);const dayPeriods=getLastDefinedValue([data[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].ExtraData][0],data[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].ExtraData][1]],formStyle)||[];return getLastDefinedValue(dayPeriods,width)||[]}function getLocaleDirection(locale){return(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵfindLocaleData"])(locale)[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].Directionality]}function getLastDefinedValue(data,index){for(let i=index;i>-1;i--)if(void 0!==data[i])return data[i];throw new Error("Locale data API: locale data undefined")}function extractTime(time){const[h,m]=time.split(":");return{hours:+h,minutes:+m}}function getCurrencySymbol(code,format,locale="en"){const currency=function getLocaleCurrencies(locale){return(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵfindLocaleData"])(locale)[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵLocaleDataIndex"].Currencies]}(locale)[code]||CURRENCIES_EN[code]||[],symbolNarrow=currency[1];return"narrow"===format&&"string"==typeof symbolNarrow?symbolNarrow:currency[0]||code}const DEFAULT_NB_OF_CURRENCY_DIGITS=2;function getNumberOfCurrencyDigits(code){let digits;const currency=CURRENCIES_EN[code];return currency&&(digits=currency[2]),"number"==typeof digits?digits:DEFAULT_NB_OF_CURRENCY_DIGITS}const ISO8601_DATE_REGEX=/^(\d{4,})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,NAMED_FORMATS={},DATE_FORMATS_SPLIT=/((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;var ZoneWidth,DateType,TranslationType;function formatDate(value,format,locale,timezone){let date=function toDate(value){if(isDate(value))return value;if("number"==typeof value&&!isNaN(value))return new Date(value);if("string"==typeof value){if(value=value.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(value)){const[y,m=1,d=1]=value.split("-").map((val=>+val));return createDate(y,m-1,d)}const parsedNb=parseFloat(value);if(!isNaN(value-parsedNb))return new Date(parsedNb);let match;if(match=value.match(ISO8601_DATE_REGEX))return function isoStringToDate(match){const date=new Date(0);let tzHour=0,tzMin=0;const dateSetter=match[8]?date.setUTCFullYear:date.setFullYear,timeSetter=match[8]?date.setUTCHours:date.setHours;match[9]&&(tzHour=Number(match[9]+match[10]),tzMin=Number(match[9]+match[11]));dateSetter.call(date,Number(match[1]),Number(match[2])-1,Number(match[3]));const h=Number(match[4]||0)-tzHour,m=Number(match[5]||0)-tzMin,s=Number(match[6]||0),ms=Math.floor(1e3*parseFloat("0."+(match[7]||0)));return timeSetter.call(date,h,m,s,ms),date}(match)}const date=new Date(value);if(!isDate(date))throw new Error(`Unable to convert "${value}" into a date`);return date}(value);format=getNamedFormat(locale,format)||format;let match,parts=[];for(;format;){if(match=DATE_FORMATS_SPLIT.exec(format),!match){parts.push(format);break}{parts=parts.concat(match.slice(1));const part=parts.pop();if(!part)break;format=part}}let dateTimezoneOffset=date.getTimezoneOffset();timezone&&(dateTimezoneOffset=timezoneToOffset(timezone,dateTimezoneOffset),date=function convertTimezoneToLocal(date,timezone,reverse){const reverseValue=reverse?-1:1,dateTimezoneOffset=date.getTimezoneOffset(),timezoneOffset=timezoneToOffset(timezone,dateTimezoneOffset);return function addDateMinutes(date,minutes){return date=new Date(date.getTime()),date.setMinutes(date.getMinutes()+minutes),date}(date,reverseValue*(timezoneOffset-dateTimezoneOffset))}(date,timezone,!0));let text="";return parts.forEach((value=>{const dateFormatter=function getDateFormatter(format){if(DATE_FORMATS[format])return DATE_FORMATS[format];let formatter;switch(format){case"G":case"GG":case"GGG":formatter=dateStrGetter(TranslationType.Eras,TranslationWidth.Abbreviated);break;case"GGGG":formatter=dateStrGetter(TranslationType.Eras,TranslationWidth.Wide);break;case"GGGGG":formatter=dateStrGetter(TranslationType.Eras,TranslationWidth.Narrow);break;case"y":formatter=dateGetter(DateType.FullYear,1,0,!1,!0);break;case"yy":formatter=dateGetter(DateType.FullYear,2,0,!0,!0);break;case"yyy":formatter=dateGetter(DateType.FullYear,3,0,!1,!0);break;case"yyyy":formatter=dateGetter(DateType.FullYear,4,0,!1,!0);break;case"Y":formatter=weekNumberingYearGetter(1);break;case"YY":formatter=weekNumberingYearGetter(2,!0);break;case"YYY":formatter=weekNumberingYearGetter(3);break;case"YYYY":formatter=weekNumberingYearGetter(4);break;case"M":case"L":formatter=dateGetter(DateType.Month,1,1);break;case"MM":case"LL":formatter=dateGetter(DateType.Month,2,1);break;case"MMM":formatter=dateStrGetter(TranslationType.Months,TranslationWidth.Abbreviated);break;case"MMMM":formatter=dateStrGetter(TranslationType.Months,TranslationWidth.Wide);break;case"MMMMM":formatter=dateStrGetter(TranslationType.Months,TranslationWidth.Narrow);break;case"LLL":formatter=dateStrGetter(TranslationType.Months,TranslationWidth.Abbreviated,FormStyle.Standalone);break;case"LLLL":formatter=dateStrGetter(TranslationType.Months,TranslationWidth.Wide,FormStyle.Standalone);break;case"LLLLL":formatter=dateStrGetter(TranslationType.Months,TranslationWidth.Narrow,FormStyle.Standalone);break;case"w":formatter=weekGetter(1);break;case"ww":formatter=weekGetter(2);break;case"W":formatter=weekGetter(1,!0);break;case"d":formatter=dateGetter(DateType.Date,1);break;case"dd":formatter=dateGetter(DateType.Date,2);break;case"c":case"cc":formatter=dateGetter(DateType.Day,1);break;case"ccc":formatter=dateStrGetter(TranslationType.Days,TranslationWidth.Abbreviated,FormStyle.Standalone);break;case"cccc":formatter=dateStrGetter(TranslationType.Days,TranslationWidth.Wide,FormStyle.Standalone);break;case"ccccc":formatter=dateStrGetter(TranslationType.Days,TranslationWidth.Narrow,FormStyle.Standalone);break;case"cccccc":formatter=dateStrGetter(TranslationType.Days,TranslationWidth.Short,FormStyle.Standalone);break;case"E":case"EE":case"EEE":formatter=dateStrGetter(TranslationType.Days,TranslationWidth.Abbreviated);break;case"EEEE":formatter=dateStrGetter(TranslationType.Days,TranslationWidth.Wide);break;case"EEEEE":formatter=dateStrGetter(TranslationType.Days,TranslationWidth.Narrow);break;case"EEEEEE":formatter=dateStrGetter(TranslationType.Days,TranslationWidth.Short);break;case"a":case"aa":case"aaa":formatter=dateStrGetter(TranslationType.DayPeriods,TranslationWidth.Abbreviated);break;case"aaaa":formatter=dateStrGetter(TranslationType.DayPeriods,TranslationWidth.Wide);break;case"aaaaa":formatter=dateStrGetter(TranslationType.DayPeriods,TranslationWidth.Narrow);break;case"b":case"bb":case"bbb":formatter=dateStrGetter(TranslationType.DayPeriods,TranslationWidth.Abbreviated,FormStyle.Standalone,!0);break;case"bbbb":formatter=dateStrGetter(TranslationType.DayPeriods,TranslationWidth.Wide,FormStyle.Standalone,!0);break;case"bbbbb":formatter=dateStrGetter(TranslationType.DayPeriods,TranslationWidth.Narrow,FormStyle.Standalone,!0);break;case"B":case"BB":case"BBB":formatter=dateStrGetter(TranslationType.DayPeriods,TranslationWidth.Abbreviated,FormStyle.Format,!0);break;case"BBBB":formatter=dateStrGetter(TranslationType.DayPeriods,TranslationWidth.Wide,FormStyle.Format,!0);break;case"BBBBB":formatter=dateStrGetter(TranslationType.DayPeriods,TranslationWidth.Narrow,FormStyle.Format,!0);break;case"h":formatter=dateGetter(DateType.Hours,1,-12);break;case"hh":formatter=dateGetter(DateType.Hours,2,-12);break;case"H":formatter=dateGetter(DateType.Hours,1);break;case"HH":formatter=dateGetter(DateType.Hours,2);break;case"m":formatter=dateGetter(DateType.Minutes,1);break;case"mm":formatter=dateGetter(DateType.Minutes,2);break;case"s":formatter=dateGetter(DateType.Seconds,1);break;case"ss":formatter=dateGetter(DateType.Seconds,2);break;case"S":formatter=dateGetter(DateType.FractionalSeconds,1);break;case"SS":formatter=dateGetter(DateType.FractionalSeconds,2);break;case"SSS":formatter=dateGetter(DateType.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":formatter=timeZoneGetter(ZoneWidth.Short);break;case"ZZZZZ":formatter=timeZoneGetter(ZoneWidth.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":formatter=timeZoneGetter(ZoneWidth.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":formatter=timeZoneGetter(ZoneWidth.Long);break;default:return null}return DATE_FORMATS[format]=formatter,formatter}(value);text+=dateFormatter?dateFormatter(date,locale,dateTimezoneOffset):"''"===value?"'":value.replace(/(^'|'$)/g,"").replace(/''/g,"'")})),text}function createDate(year,month,date){const newDate=new Date(0);return newDate.setFullYear(year,month,date),newDate.setHours(0,0,0),newDate}function getNamedFormat(locale,format){const localeId=getLocaleId(locale);if(NAMED_FORMATS[localeId]??={},NAMED_FORMATS[localeId][format])return NAMED_FORMATS[localeId][format];let formatValue="";switch(format){case"shortDate":formatValue=getLocaleDateFormat(locale,FormatWidth.Short);break;case"mediumDate":formatValue=getLocaleDateFormat(locale,FormatWidth.Medium);break;case"longDate":formatValue=getLocaleDateFormat(locale,FormatWidth.Long);break;case"fullDate":formatValue=getLocaleDateFormat(locale,FormatWidth.Full);break;case"shortTime":formatValue=getLocaleTimeFormat(locale,FormatWidth.Short);break;case"mediumTime":formatValue=getLocaleTimeFormat(locale,FormatWidth.Medium);break;case"longTime":formatValue=getLocaleTimeFormat(locale,FormatWidth.Long);break;case"fullTime":formatValue=getLocaleTimeFormat(locale,FormatWidth.Full);break;case"short":const shortTime=getNamedFormat(locale,"shortTime"),shortDate=getNamedFormat(locale,"shortDate");formatValue=formatDateTime(getLocaleDateTimeFormat(locale,FormatWidth.Short),[shortTime,shortDate]);break;case"medium":const mediumTime=getNamedFormat(locale,"mediumTime"),mediumDate=getNamedFormat(locale,"mediumDate");formatValue=formatDateTime(getLocaleDateTimeFormat(locale,FormatWidth.Medium),[mediumTime,mediumDate]);break;case"long":const longTime=getNamedFormat(locale,"longTime"),longDate=getNamedFormat(locale,"longDate");formatValue=formatDateTime(getLocaleDateTimeFormat(locale,FormatWidth.Long),[longTime,longDate]);break;case"full":const fullTime=getNamedFormat(locale,"fullTime"),fullDate=getNamedFormat(locale,"fullDate");formatValue=formatDateTime(getLocaleDateTimeFormat(locale,FormatWidth.Full),[fullTime,fullDate])}return formatValue&&(NAMED_FORMATS[localeId][format]=formatValue),formatValue}function formatDateTime(str,opt_values){return opt_values&&(str=str.replace(/\{([^}]+)}/g,(function(match,key){return null!=opt_values&&key in opt_values?opt_values[key]:match}))),str}function padNumber(num,digits,minusSign="-",trim,negWrap){let neg="";(num<0||negWrap&&num<=0)&&(negWrap?num=1-num:(num=-num,neg=minusSign));let strNum=String(num);for(;strNum.length0||part>-offset)&&(part+=offset),name===DateType.Hours)0===part&&-12===offset&&(part=12);else if(name===DateType.FractionalSeconds)return function formatFractionalSeconds(milliseconds,digits){return padNumber(milliseconds,3).substring(0,digits)}(part,size);const localeMinus=getLocaleNumberSymbol(locale,NumberSymbol.MinusSign);return padNumber(part,size,localeMinus,trim,negWrap)}}function dateStrGetter(name,width,form=FormStyle.Format,extended=!1){return function(date,locale){return function getDateTranslation(date,locale,name,width,form,extended){switch(name){case TranslationType.Months:return getLocaleMonthNames(locale,form,width)[date.getMonth()];case TranslationType.Days:return getLocaleDayNames(locale,form,width)[date.getDay()];case TranslationType.DayPeriods:const currentHours=date.getHours(),currentMinutes=date.getMinutes();if(extended){const rules=getLocaleExtraDayPeriodRules(locale),dayPeriods=getLocaleExtraDayPeriods(locale,form,width),index=rules.findIndex((rule=>{if(Array.isArray(rule)){const[from,to]=rule,afterFrom=currentHours>=from.hours&¤tMinutes>=from.minutes,beforeTo=currentHours0?Math.floor(zone/60):Math.ceil(zone/60);switch(width){case ZoneWidth.Short:return(zone>=0?"+":"")+padNumber(hours,2,minusSign)+padNumber(Math.abs(zone%60),2,minusSign);case ZoneWidth.ShortGMT:return"GMT"+(zone>=0?"+":"")+padNumber(hours,1,minusSign);case ZoneWidth.Long:return"GMT"+(zone>=0?"+":"")+padNumber(hours,2,minusSign)+":"+padNumber(Math.abs(zone%60),2,minusSign);case ZoneWidth.Extended:return 0===offset?"Z":(zone>=0?"+":"")+padNumber(hours,2,minusSign)+":"+padNumber(Math.abs(zone%60),2,minusSign);default:throw new Error(`Unknown zone width "${width}"`)}}}!function(ZoneWidth){ZoneWidth[ZoneWidth.Short=0]="Short",ZoneWidth[ZoneWidth.ShortGMT=1]="ShortGMT",ZoneWidth[ZoneWidth.Long=2]="Long",ZoneWidth[ZoneWidth.Extended=3]="Extended"}(ZoneWidth||(ZoneWidth={})),function(DateType){DateType[DateType.FullYear=0]="FullYear",DateType[DateType.Month=1]="Month",DateType[DateType.Date=2]="Date",DateType[DateType.Hours=3]="Hours",DateType[DateType.Minutes=4]="Minutes",DateType[DateType.Seconds=5]="Seconds",DateType[DateType.FractionalSeconds=6]="FractionalSeconds",DateType[DateType.Day=7]="Day"}(DateType||(DateType={})),function(TranslationType){TranslationType[TranslationType.DayPeriods=0]="DayPeriods",TranslationType[TranslationType.Days=1]="Days",TranslationType[TranslationType.Months=2]="Months",TranslationType[TranslationType.Eras=3]="Eras"}(TranslationType||(TranslationType={}));const JANUARY=0,THURSDAY=4;function getThursdayThisIsoWeek(datetime){const currentDay=datetime.getDay(),deltaToThursday=0===currentDay?-3:THURSDAY-currentDay;return createDate(datetime.getFullYear(),datetime.getMonth(),datetime.getDate()+deltaToThursday)}function weekGetter(size,monthBased=!1){return function(date,locale){let result;if(monthBased){const nbDaysBefore1stDayOfMonth=new Date(date.getFullYear(),date.getMonth(),1).getDay()-1,today=date.getDate();result=1+Math.floor((today+nbDaysBefore1stDayOfMonth)/7)}else{const thisThurs=getThursdayThisIsoWeek(date),firstThurs=function getFirstThursdayOfYear(year){const firstDayOfYear=createDate(year,JANUARY,1).getDay();return createDate(year,0,1+(firstDayOfYear<=THURSDAY?THURSDAY:THURSDAY+7)-firstDayOfYear)}(thisThurs.getFullYear()),diff=thisThurs.getTime()-firstThurs.getTime();result=1+Math.round(diff/6048e5)}return padNumber(result,size,getLocaleNumberSymbol(locale,NumberSymbol.MinusSign))}}function weekNumberingYearGetter(size,trim=!1){return function(date,locale){return padNumber(getThursdayThisIsoWeek(date).getFullYear(),size,getLocaleNumberSymbol(locale,NumberSymbol.MinusSign),trim)}}const DATE_FORMATS={};function timezoneToOffset(timezone,fallback){timezone=timezone.replace(/:/g,"");const requestedTimezoneOffset=Date.parse("Jan 01, 1970 00:00:00 "+timezone)/6e4;return isNaN(requestedTimezoneOffset)?fallback:requestedTimezoneOffset}function isDate(value){return value instanceof Date&&!isNaN(value.valueOf())}const NUMBER_FORMAT_REGEXP=/^(\d+)?\.((\d+)(-(\d+))?)?$/,MAX_DIGITS=22,DECIMAL_SEP=".",ZERO_CHAR="0",PATTERN_SEP=";",GROUP_SEP=",",DIGIT_CHAR="#",CURRENCY_CHAR="¤",PERCENT_CHAR="%";function formatNumberToLocaleString(value,pattern,locale,groupSymbol,decimalSymbol,digitsInfo,isPercent=!1){let formattedText="",isZero=!1;if(isFinite(value)){let parsedNumber=function parseNumber(num){let digits,integerLen,i,j,zeros,numStr=Math.abs(num)+"",exponent=0;(integerLen=numStr.indexOf(DECIMAL_SEP))>-1&&(numStr=numStr.replace(DECIMAL_SEP,""));(i=numStr.search(/e/i))>0?(integerLen<0&&(integerLen=i),integerLen+=+numStr.slice(i+1),numStr=numStr.substring(0,i)):integerLen<0&&(integerLen=numStr.length);for(i=0;numStr.charAt(i)===ZERO_CHAR;i++);if(i===(zeros=numStr.length))digits=[0],integerLen=1;else{for(zeros--;numStr.charAt(zeros)===ZERO_CHAR;)zeros--;for(integerLen-=i,digits=[],j=0;i<=zeros;i++,j++)digits[j]=Number(numStr.charAt(i))}integerLen>MAX_DIGITS&&(digits=digits.splice(0,MAX_DIGITS-1),exponent=integerLen-1,integerLen=1);return{digits,exponent,integerLen}}(value);isPercent&&(parsedNumber=function toPercent(parsedNumber){if(0===parsedNumber.digits[0])return parsedNumber;const fractionLen=parsedNumber.digits.length-parsedNumber.integerLen;parsedNumber.exponent?parsedNumber.exponent+=2:(0===fractionLen?parsedNumber.digits.push(0,0):1===fractionLen&&parsedNumber.digits.push(0),parsedNumber.integerLen+=2);return parsedNumber}(parsedNumber));let minInt=pattern.minInt,minFraction=pattern.minFrac,maxFraction=pattern.maxFrac;if(digitsInfo){const parts=digitsInfo.match(NUMBER_FORMAT_REGEXP);if(null===parts)throw new Error(`${digitsInfo} is not a valid digit info`);const minIntPart=parts[1],minFractionPart=parts[3],maxFractionPart=parts[5];null!=minIntPart&&(minInt=parseIntAutoRadix(minIntPart)),null!=minFractionPart&&(minFraction=parseIntAutoRadix(minFractionPart)),null!=maxFractionPart?maxFraction=parseIntAutoRadix(maxFractionPart):null!=minFractionPart&&minFraction>maxFraction&&(maxFraction=minFraction)}!function roundNumber(parsedNumber,minFrac,maxFrac){if(minFrac>maxFrac)throw new Error(`The minimum number of digits after fraction (${minFrac}) is higher than the maximum (${maxFrac}).`);let digits=parsedNumber.digits,fractionLen=digits.length-parsedNumber.integerLen;const fractionSize=Math.min(Math.max(minFrac,fractionLen),maxFrac);let roundAt=fractionSize+parsedNumber.integerLen,digit=digits[roundAt];if(roundAt>0){digits.splice(Math.max(parsedNumber.integerLen,roundAt));for(let j=roundAt;j=5)if(roundAt-1<0){for(let k=0;k>roundAt;k--)digits.unshift(0),parsedNumber.integerLen++;digits.unshift(1),parsedNumber.integerLen++}else digits[roundAt-1]++;for(;fractionLen=minLen?digits.pop():dropTrailingZeros=!1),d>=10?1:0}),0);carry&&(digits.unshift(carry),parsedNumber.integerLen++)}(parsedNumber,minFraction,maxFraction);let digits=parsedNumber.digits,integerLen=parsedNumber.integerLen;const exponent=parsedNumber.exponent;let decimals=[];for(isZero=digits.every((d=>!d));integerLen0?decimals=digits.splice(integerLen,digits.length):(decimals=digits,digits=[0]);const groups=[];for(digits.length>=pattern.lgSize&&groups.unshift(digits.splice(-pattern.lgSize,digits.length).join(""));digits.length>pattern.gSize;)groups.unshift(digits.splice(-pattern.gSize,digits.length).join(""));digits.length&&groups.unshift(digits.join("")),formattedText=groups.join(getLocaleNumberSymbol(locale,groupSymbol)),decimals.length&&(formattedText+=getLocaleNumberSymbol(locale,decimalSymbol)+decimals.join("")),exponent&&(formattedText+=getLocaleNumberSymbol(locale,NumberSymbol.Exponential)+"+"+exponent)}else formattedText=getLocaleNumberSymbol(locale,NumberSymbol.Infinity);return formattedText=value<0&&!isZero?pattern.negPre+formattedText+pattern.negSuf:pattern.posPre+formattedText+pattern.posSuf,formattedText}function formatCurrency(value,locale,currency,currencyCode,digitsInfo){const pattern=parseNumberFormat(getLocaleNumberFormat(locale,NumberFormatStyle.Currency),getLocaleNumberSymbol(locale,NumberSymbol.MinusSign));pattern.minFrac=getNumberOfCurrencyDigits(currencyCode),pattern.maxFrac=pattern.minFrac;return formatNumberToLocaleString(value,pattern,locale,NumberSymbol.CurrencyGroup,NumberSymbol.CurrencyDecimal,digitsInfo).replace(CURRENCY_CHAR,currency).replace(CURRENCY_CHAR,"").trim()}function formatPercent(value,locale,digitsInfo){return formatNumberToLocaleString(value,parseNumberFormat(getLocaleNumberFormat(locale,NumberFormatStyle.Percent),getLocaleNumberSymbol(locale,NumberSymbol.MinusSign)),locale,NumberSymbol.Group,NumberSymbol.Decimal,digitsInfo,!0).replace(new RegExp(PERCENT_CHAR,"g"),getLocaleNumberSymbol(locale,NumberSymbol.PercentSign))}function formatNumber(value,locale,digitsInfo){return formatNumberToLocaleString(value,parseNumberFormat(getLocaleNumberFormat(locale,NumberFormatStyle.Decimal),getLocaleNumberSymbol(locale,NumberSymbol.MinusSign)),locale,NumberSymbol.Group,NumberSymbol.Decimal,digitsInfo)}function parseNumberFormat(format,minusSign="-"){const p={minInt:1,minFrac:0,maxFrac:0,posPre:"",posSuf:"",negPre:"",negSuf:"",gSize:0,lgSize:0},patternParts=format.split(PATTERN_SEP),positive=patternParts[0],negative=patternParts[1],positiveParts=-1!==positive.indexOf(DECIMAL_SEP)?positive.split(DECIMAL_SEP):[positive.substring(0,positive.lastIndexOf(ZERO_CHAR)+1),positive.substring(positive.lastIndexOf(ZERO_CHAR)+1)],integer=positiveParts[0],fraction=positiveParts[1]||"";p.posPre=integer.substring(0,integer.indexOf(DIGIT_CHAR));for(let i=0;i-1)return key;if(key=ngLocalization.getPluralCategory(value,locale),cases.indexOf(key)>-1)return key;if(cases.indexOf("other")>-1)return"other";throw new Error(`No plural message found for value "${value}"`)}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgLocalization,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable,args:[{providedIn:"root",useFactory:locale=>new NgLocaleLocalization(locale),deps:[_angular_core__WEBPACK_IMPORTED_MODULE_0__.LOCALE_ID]}]}],null,null);class NgLocaleLocalization extends NgLocalization{constructor(locale){super(),this.locale=locale}getPluralCategory(value,locale){switch(getLocalePluralCase(locale||this.locale)(value)){case Plural.Zero:return"zero";case Plural.One:return"one";case Plural.Two:return"two";case Plural.Few:return"few";case Plural.Many:return"many";default:return"other"}}static{this.ɵfac=function NgLocaleLocalization_Factory(t){return new(t||NgLocaleLocalization)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.LOCALE_ID))}}static{this.ɵprov=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({token:NgLocaleLocalization,factory:NgLocaleLocalization.ɵfac})}}function registerLocaleData(data,localeId,extraData){return(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵregisterLocaleData"])(data,localeId,extraData)}function parseCookieValue(cookieStr,name){name=encodeURIComponent(name);for(const cookie of cookieStr.split(";")){const eqIndex=cookie.indexOf("="),[cookieName,cookieValue]=-1==eqIndex?[cookie,""]:[cookie.slice(0,eqIndex),cookie.slice(eqIndex+1)];if(cookieName.trim()===name)return decodeURIComponent(cookieValue)}return null}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgLocaleLocalization,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable}],(()=>[{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[_angular_core__WEBPACK_IMPORTED_MODULE_0__.LOCALE_ID]}]}]),null);const WS_REGEXP=/\s+/,EMPTY_ARRAY=[];class NgClass{constructor(_ngEl,_renderer){this._ngEl=_ngEl,this._renderer=_renderer,this.initialClasses=EMPTY_ARRAY,this.stateMap=new Map}set klass(value){this.initialClasses=null!=value?value.trim().split(WS_REGEXP):EMPTY_ARRAY}set ngClass(value){this.rawClass="string"==typeof value?value.trim().split(WS_REGEXP):value}ngDoCheck(){for(const klass of this.initialClasses)this._updateState(klass,!0);const rawClass=this.rawClass;if(Array.isArray(rawClass)||rawClass instanceof Set)for(const klass of rawClass)this._updateState(klass,!0);else if(null!=rawClass)for(const klass of Object.keys(rawClass))this._updateState(klass,Boolean(rawClass[klass]));this._applyStateDiff()}_updateState(klass,nextEnabled){const state=this.stateMap.get(klass);void 0!==state?(state.enabled!==nextEnabled&&(state.changed=!0,state.enabled=nextEnabled),state.touched=!0):this.stateMap.set(klass,{enabled:nextEnabled,changed:!0,touched:!0})}_applyStateDiff(){for(const stateEntry of this.stateMap){const klass=stateEntry[0],state=stateEntry[1];state.changed?(this._toggleClass(klass,state.enabled),state.changed=!1):state.touched||(state.enabled&&this._toggleClass(klass,!1),this.stateMap.delete(klass)),state.touched=!1}}_toggleClass(klass,enabled){if(ngDevMode&&"string"!=typeof klass)throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵstringify"])(klass)}`);(klass=klass.trim()).length>0&&klass.split(WS_REGEXP).forEach((klass=>{enabled?this._renderer.addClass(this._ngEl.nativeElement,klass):this._renderer.removeClass(this._ngEl.nativeElement,klass)}))}static{this.ɵfac=function NgClass_Factory(t){return new(t||NgClass)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.ElementRef),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.Renderer2))}}static{this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:NgClass,selectors:[["","ngClass",""]],inputs:{klass:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInputFlags"].None,"class","klass"],ngClass:"ngClass"},standalone:!0})}}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgClass,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"[ngClass]",standalone:!0}]}],(()=>[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.ElementRef},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Renderer2}]),{klass:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:["class"]}],ngClass:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:["ngClass"]}]});class NgComponentOutlet{constructor(_viewContainerRef){this._viewContainerRef=_viewContainerRef,this.ngComponentOutlet=null,this._inputsUsed=new Map}_needToReCreateNgModuleInstance(changes){return void 0!==changes.ngComponentOutletNgModule||void 0!==changes.ngComponentOutletNgModuleFactory}_needToReCreateComponentInstance(changes){return void 0!==changes.ngComponentOutlet||void 0!==changes.ngComponentOutletContent||void 0!==changes.ngComponentOutletInjector||this._needToReCreateNgModuleInstance(changes)}ngOnChanges(changes){if(this._needToReCreateComponentInstance(changes)&&(this._viewContainerRef.clear(),this._inputsUsed.clear(),this._componentRef=void 0,this.ngComponentOutlet)){const injector=this.ngComponentOutletInjector||this._viewContainerRef.parentInjector;this._needToReCreateNgModuleInstance(changes)&&(this._moduleRef?.destroy(),this.ngComponentOutletNgModule?this._moduleRef=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.createNgModule)(this.ngComponentOutletNgModule,getParentInjector(injector)):this.ngComponentOutletNgModuleFactory?this._moduleRef=this.ngComponentOutletNgModuleFactory.create(getParentInjector(injector)):this._moduleRef=void 0),this._componentRef=this._viewContainerRef.createComponent(this.ngComponentOutlet,{injector,ngModuleRef:this._moduleRef,projectableNodes:this.ngComponentOutletContent})}}ngDoCheck(){if(this._componentRef){if(this.ngComponentOutletInputs)for(const inputName of Object.keys(this.ngComponentOutletInputs))this._inputsUsed.set(inputName,!0);this._applyInputStateDiff(this._componentRef)}}ngOnDestroy(){this._moduleRef?.destroy()}_applyInputStateDiff(componentRef){for(const[inputName,touched]of this._inputsUsed)touched?(componentRef.setInput(inputName,this.ngComponentOutletInputs[inputName]),this._inputsUsed.set(inputName,!1)):(componentRef.setInput(inputName,void 0),this._inputsUsed.delete(inputName))}static{this.ɵfac=function NgComponentOutlet_Factory(t){return new(t||NgComponentOutlet)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.ViewContainerRef))}}static{this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:NgComponentOutlet,selectors:[["","ngComponentOutlet",""]],inputs:{ngComponentOutlet:"ngComponentOutlet",ngComponentOutletInputs:"ngComponentOutletInputs",ngComponentOutletInjector:"ngComponentOutletInjector",ngComponentOutletContent:"ngComponentOutletContent",ngComponentOutletNgModule:"ngComponentOutletNgModule",ngComponentOutletNgModuleFactory:"ngComponentOutletNgModuleFactory"},standalone:!0,features:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵNgOnChangesFeature"]]})}}function getParentInjector(injector){return injector.get(_angular_core__WEBPACK_IMPORTED_MODULE_0__.NgModuleRef).injector}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgComponentOutlet,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"[ngComponentOutlet]",standalone:!0}]}],(()=>[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.ViewContainerRef}]),{ngComponentOutlet:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],ngComponentOutletInputs:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],ngComponentOutletInjector:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],ngComponentOutletContent:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],ngComponentOutletNgModule:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],ngComponentOutletNgModuleFactory:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}]});class NgForOfContext{constructor($implicit,ngForOf,index,count){this.$implicit=$implicit,this.ngForOf=ngForOf,this.index=index,this.count=count}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}class NgForOf{set ngForOf(ngForOf){this._ngForOf=ngForOf,this._ngForOfDirty=!0}set ngForTrackBy(fn){"undefined"!=typeof ngDevMode&&!ngDevMode||null==fn||"function"==typeof fn||console.warn(`trackBy must be a function, but received ${JSON.stringify(fn)}. See https://angular.io/api/common/NgForOf#change-propagation for more information.`),this._trackByFn=fn}get ngForTrackBy(){return this._trackByFn}constructor(_viewContainer,_template,_differs){this._viewContainer=_viewContainer,this._template=_template,this._differs=_differs,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForTemplate(value){value&&(this._template=value)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const value=this._ngForOf;if(!this._differ&&value)if("undefined"==typeof ngDevMode||ngDevMode)try{this._differ=this._differs.find(value).create(this.ngForTrackBy)}catch{let errorMessage=`Cannot find a differ supporting object '${value}' of type '${function getTypeName(type){return type.name||typeof type}(value)}'. NgFor only supports binding to Iterables, such as Arrays.`;throw"object"==typeof value&&(errorMessage+=" Did you mean to use the keyvalue pipe?"),new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](-2200,errorMessage)}else this._differ=this._differs.find(value).create(this.ngForTrackBy)}if(this._differ){const changes=this._differ.diff(this._ngForOf);changes&&this._applyChanges(changes)}}_applyChanges(changes){const viewContainer=this._viewContainer;changes.forEachOperation(((item,adjustedPreviousIndex,currentIndex)=>{if(null==item.previousIndex)viewContainer.createEmbeddedView(this._template,new NgForOfContext(item.item,this._ngForOf,-1,-1),null===currentIndex?void 0:currentIndex);else if(null==currentIndex)viewContainer.remove(null===adjustedPreviousIndex?void 0:adjustedPreviousIndex);else if(null!==adjustedPreviousIndex){const view=viewContainer.get(adjustedPreviousIndex);viewContainer.move(view,currentIndex),applyViewChange(view,item)}}));for(let i=0,ilen=viewContainer.length;i{applyViewChange(viewContainer.get(record.currentIndex),record)}))}static ngTemplateContextGuard(dir,ctx){return!0}static{this.ɵfac=function NgForOf_Factory(t){return new(t||NgForOf)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.ViewContainerRef),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.TemplateRef),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.IterableDiffers))}}static{this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:NgForOf,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0})}}function applyViewChange(view,record){view.context.$implicit=record.item}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgForOf,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"[ngFor][ngForOf]",standalone:!0}]}],(()=>[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.ViewContainerRef},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.TemplateRef},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.IterableDiffers}]),{ngForOf:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],ngForTrackBy:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],ngForTemplate:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}]});class NgIf{constructor(_viewContainer,templateRef){this._viewContainer=_viewContainer,this._context=new NgIfContext,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=templateRef}set ngIf(condition){this._context.$implicit=this._context.ngIf=condition,this._updateView()}set ngIfThen(templateRef){assertTemplate("ngIfThen",templateRef),this._thenTemplateRef=templateRef,this._thenViewRef=null,this._updateView()}set ngIfElse(templateRef){assertTemplate("ngIfElse",templateRef),this._elseTemplateRef=templateRef,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(dir,ctx){return!0}static{this.ɵfac=function NgIf_Factory(t){return new(t||NgIf)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.ViewContainerRef),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.TemplateRef))}}static{this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:NgIf,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0})}}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgIf,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"[ngIf]",standalone:!0}]}],(()=>[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.ViewContainerRef},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.TemplateRef}]),{ngIf:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],ngIfThen:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],ngIfElse:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}]});class NgIfContext{constructor(){this.$implicit=null,this.ngIf=null}}function assertTemplate(property,templateRef){if(!!(templateRef&&!templateRef.createEmbeddedView))throw new Error(`${property} must be a TemplateRef, but received '${(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵstringify"])(templateRef)}'.`)}class SwitchView{constructor(_viewContainerRef,_templateRef){this._viewContainerRef=_viewContainerRef,this._templateRef=_templateRef,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(created){created&&!this._created?this.create():!created&&this._created&&this.destroy()}}class NgSwitch{constructor(){this._defaultViews=[],this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}set ngSwitch(newValue){this._ngSwitch=newValue,0===this._caseCount&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(view){this._defaultViews.push(view)}_matchCase(value){const matched=value===this._ngSwitch;return"undefined"!=typeof ngDevMode&&!ngDevMode||matched===(value==this._ngSwitch)||console.warn((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵformatRuntimeError"])(2001,`As of Angular v17 the NgSwitch directive uses strict equality comparison === instead of == to match different cases. Previously the case value "${stringifyValue(value)}" matched switch expression value "${stringifyValue(this._ngSwitch)}", but this is no longer the case with the stricter equality check. Your comparison results return different results using === vs. == and you should adjust your ngSwitch expression and / or values to conform with the strict equality requirements.`)),this._lastCasesMatched||=matched,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),matched}_updateDefaultCases(useDefault){if(this._defaultViews.length>0&&useDefault!==this._defaultUsed){this._defaultUsed=useDefault;for(const defaultView of this._defaultViews)defaultView.enforceState(useDefault)}}static{this.ɵfac=function NgSwitch_Factory(t){return new(t||NgSwitch)}}static{this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:NgSwitch,selectors:[["","ngSwitch",""]],inputs:{ngSwitch:"ngSwitch"},standalone:!0})}}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgSwitch,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"[ngSwitch]",standalone:!0}]}],null,{ngSwitch:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}]});class NgSwitchCase{constructor(viewContainer,templateRef,ngSwitch){this.ngSwitch=ngSwitch,"undefined"!=typeof ngDevMode&&!ngDevMode||ngSwitch||throwNgSwitchProviderNotFoundError("ngSwitchCase","NgSwitchCase"),ngSwitch._addCase(),this._view=new SwitchView(viewContainer,templateRef)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}static{this.ɵfac=function NgSwitchCase_Factory(t){return new(t||NgSwitchCase)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.ViewContainerRef),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.TemplateRef),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgSwitch,9))}}static{this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:NgSwitchCase,selectors:[["","ngSwitchCase",""]],inputs:{ngSwitchCase:"ngSwitchCase"},standalone:!0})}}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgSwitchCase,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"[ngSwitchCase]",standalone:!0}]}],(()=>[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.ViewContainerRef},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.TemplateRef},{type:NgSwitch,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Host}]}]),{ngSwitchCase:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}]});class NgSwitchDefault{constructor(viewContainer,templateRef,ngSwitch){"undefined"!=typeof ngDevMode&&!ngDevMode||ngSwitch||throwNgSwitchProviderNotFoundError("ngSwitchDefault","NgSwitchDefault"),ngSwitch._addDefault(new SwitchView(viewContainer,templateRef))}static{this.ɵfac=function NgSwitchDefault_Factory(t){return new(t||NgSwitchDefault)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.ViewContainerRef),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.TemplateRef),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgSwitch,9))}}static{this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:NgSwitchDefault,selectors:[["","ngSwitchDefault",""]],standalone:!0})}}function throwNgSwitchProviderNotFoundError(attrName,directiveName){throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2e3,`An element with the "${attrName}" attribute (matching the "${directiveName}" directive) must be located inside an element with the "ngSwitch" attribute (matching "NgSwitch" directive)`)}function stringifyValue(value){return"string"==typeof value?`'${value}'`:String(value)}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgSwitchDefault,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"[ngSwitchDefault]",standalone:!0}]}],(()=>[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.ViewContainerRef},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.TemplateRef},{type:NgSwitch,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Host}]}]),null);class NgPlural{constructor(_localization){this._localization=_localization,this._caseViews={}}set ngPlural(value){this._updateView(value)}addCase(value,switchView){this._caseViews[value]=switchView}_updateView(switchValue){this._clearViews();const key=getPluralCategory(switchValue,Object.keys(this._caseViews),this._localization);this._activateView(this._caseViews[key])}_clearViews(){this._activeView&&this._activeView.destroy()}_activateView(view){view&&(this._activeView=view,this._activeView.create())}static{this.ɵfac=function NgPlural_Factory(t){return new(t||NgPlural)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgLocalization))}}static{this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:NgPlural,selectors:[["","ngPlural",""]],inputs:{ngPlural:"ngPlural"},standalone:!0})}}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgPlural,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"[ngPlural]",standalone:!0}]}],(()=>[{type:NgLocalization}]),{ngPlural:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}]});class NgPluralCase{constructor(value,template,viewContainer,ngPlural){this.value=value;const isANumber=!isNaN(Number(value));ngPlural.addCase(isANumber?`=${value}`:value,new SwitchView(viewContainer,template))}static{this.ɵfac=function NgPluralCase_Factory(t){return new(t||NgPluralCase)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinjectAttribute"]("ngPluralCase"),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.TemplateRef),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.ViewContainerRef),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgPlural,1))}}static{this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:NgPluralCase,selectors:[["","ngPluralCase",""]],standalone:!0})}}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgPluralCase,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"[ngPluralCase]",standalone:!0}]}],(()=>[{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Attribute,args:["ngPluralCase"]}]},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.TemplateRef},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.ViewContainerRef},{type:NgPlural,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Host}]}]),null);class NgStyle{constructor(_ngEl,_differs,_renderer){this._ngEl=_ngEl,this._differs=_differs,this._renderer=_renderer,this._ngStyle=null,this._differ=null}set ngStyle(values){this._ngStyle=values,!this._differ&&values&&(this._differ=this._differs.find(values).create())}ngDoCheck(){if(this._differ){const changes=this._differ.diff(this._ngStyle);changes&&this._applyChanges(changes)}}_setStyle(nameAndUnit,value){const[name,unit]=nameAndUnit.split("."),flags=-1===name.indexOf("-")?void 0:_angular_core__WEBPACK_IMPORTED_MODULE_0__.RendererStyleFlags2.DashCase;null!=value?this._renderer.setStyle(this._ngEl.nativeElement,name,unit?`${value}${unit}`:value,flags):this._renderer.removeStyle(this._ngEl.nativeElement,name,flags)}_applyChanges(changes){changes.forEachRemovedItem((record=>this._setStyle(record.key,null))),changes.forEachAddedItem((record=>this._setStyle(record.key,record.currentValue))),changes.forEachChangedItem((record=>this._setStyle(record.key,record.currentValue)))}static{this.ɵfac=function NgStyle_Factory(t){return new(t||NgStyle)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.ElementRef),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.KeyValueDiffers),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.Renderer2))}}static{this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:NgStyle,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"},standalone:!0})}}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgStyle,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"[ngStyle]",standalone:!0}]}],(()=>[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.ElementRef},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.KeyValueDiffers},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Renderer2}]),{ngStyle:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:["ngStyle"]}]});class NgTemplateOutlet{constructor(_viewContainerRef){this._viewContainerRef=_viewContainerRef,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null,this.ngTemplateOutletInjector=null}ngOnChanges(changes){if(this._shouldRecreateView(changes)){const viewContainerRef=this._viewContainerRef;if(this._viewRef&&viewContainerRef.remove(viewContainerRef.indexOf(this._viewRef)),!this.ngTemplateOutlet)return void(this._viewRef=null);const viewContext=this._createContextForwardProxy();this._viewRef=viewContainerRef.createEmbeddedView(this.ngTemplateOutlet,viewContext,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(changes){return!!changes.ngTemplateOutlet||!!changes.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(_target,prop,newValue)=>!!this.ngTemplateOutletContext&&Reflect.set(this.ngTemplateOutletContext,prop,newValue),get:(_target,prop,receiver)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,prop,receiver)}})}static{this.ɵfac=function NgTemplateOutlet_Factory(t){return new(t||NgTemplateOutlet)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.ViewContainerRef))}}static{this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:NgTemplateOutlet,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},standalone:!0,features:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵNgOnChangesFeature"]]})}}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgTemplateOutlet,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{selector:"[ngTemplateOutlet]",standalone:!0}]}],(()=>[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.ViewContainerRef}]),{ngTemplateOutletContext:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],ngTemplateOutlet:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],ngTemplateOutletInjector:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}]});const COMMON_DIRECTIVES=[NgClass,NgComponentOutlet,NgForOf,NgIf,NgTemplateOutlet,NgStyle,NgSwitch,NgSwitchCase,NgSwitchDefault,NgPlural,NgPluralCase];function invalidPipeArgumentError(type,value){return new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2100,ngDevMode&&`InvalidPipeArgument: '${value}' for pipe '${(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵstringify"])(type)}'`)}const _promiseStrategy=new class PromiseStrategy{createSubscription(async,updateLatestValue){return async.then(updateLatestValue,(e=>{throw e}))}dispose(subscription){}},_subscribableStrategy=new class SubscribableStrategy{createSubscription(async,updateLatestValue){return(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.untracked)((()=>async.subscribe({next:updateLatestValue,error:e=>{throw e}})))}dispose(subscription){(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.untracked)((()=>subscription.unsubscribe()))}};class AsyncPipe{constructor(ref){this._latestValue=null,this.markForCheckOnValueUpdate=!0,this._subscription=null,this._obj=null,this._strategy=null,this._ref=ref}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(obj){if(!this._obj){if(obj)try{this.markForCheckOnValueUpdate=!1,this._subscribe(obj)}finally{this.markForCheckOnValueUpdate=!0}return this._latestValue}return obj!==this._obj?(this._dispose(),this.transform(obj)):this._latestValue}_subscribe(obj){this._obj=obj,this._strategy=this._selectStrategy(obj),this._subscription=this._strategy.createSubscription(obj,(value=>this._updateLatestValue(obj,value)))}_selectStrategy(obj){if((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵisPromise"])(obj))return _promiseStrategy;if((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵisSubscribable"])(obj))return _subscribableStrategy;throw invalidPipeArgumentError(AsyncPipe,obj)}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(async,value){async===this._obj&&(this._latestValue=value,this.markForCheckOnValueUpdate&&this._ref?.markForCheck())}static{this.ɵfac=function AsyncPipe_Factory(t){return new(t||AsyncPipe)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.ChangeDetectorRef,16))}}static{this.ɵpipe=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefinePipe"]({name:"async",type:AsyncPipe,pure:!1,standalone:!0})}}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](AsyncPipe,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Pipe,args:[{name:"async",pure:!1,standalone:!0}]}],(()=>[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.ChangeDetectorRef}]),null);class LowerCasePipe{transform(value){if(null==value)return null;if("string"!=typeof value)throw invalidPipeArgumentError(LowerCasePipe,value);return value.toLowerCase()}static{this.ɵfac=function LowerCasePipe_Factory(t){return new(t||LowerCasePipe)}}static{this.ɵpipe=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefinePipe"]({name:"lowercase",type:LowerCasePipe,pure:!0,standalone:!0})}}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](LowerCasePipe,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Pipe,args:[{name:"lowercase",standalone:!0}]}],null,null);const unicodeWordMatch=/(?:[0-9A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])\S*/g;class TitleCasePipe{transform(value){if(null==value)return null;if("string"!=typeof value)throw invalidPipeArgumentError(TitleCasePipe,value);return value.replace(unicodeWordMatch,(txt=>txt[0].toUpperCase()+txt.slice(1).toLowerCase()))}static{this.ɵfac=function TitleCasePipe_Factory(t){return new(t||TitleCasePipe)}}static{this.ɵpipe=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefinePipe"]({name:"titlecase",type:TitleCasePipe,pure:!0,standalone:!0})}}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](TitleCasePipe,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Pipe,args:[{name:"titlecase",standalone:!0}]}],null,null);class UpperCasePipe{transform(value){if(null==value)return null;if("string"!=typeof value)throw invalidPipeArgumentError(UpperCasePipe,value);return value.toUpperCase()}static{this.ɵfac=function UpperCasePipe_Factory(t){return new(t||UpperCasePipe)}}static{this.ɵpipe=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefinePipe"]({name:"uppercase",type:UpperCasePipe,pure:!0,standalone:!0})}}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](UpperCasePipe,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Pipe,args:[{name:"uppercase",standalone:!0}]}],null,null);const DATE_PIPE_DEFAULT_TIMEZONE=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.InjectionToken(ngDevMode?"DATE_PIPE_DEFAULT_TIMEZONE":""),DATE_PIPE_DEFAULT_OPTIONS=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.InjectionToken(ngDevMode?"DATE_PIPE_DEFAULT_OPTIONS":"");class DatePipe{constructor(locale,defaultTimezone,defaultOptions){this.locale=locale,this.defaultTimezone=defaultTimezone,this.defaultOptions=defaultOptions}transform(value,format,timezone,locale){if(null==value||""===value||value!=value)return null;try{const _format=format??this.defaultOptions?.dateFormat??"mediumDate",_timezone=timezone??this.defaultOptions?.timezone??this.defaultTimezone??void 0;return formatDate(value,_format,locale||this.locale,_timezone)}catch(error){throw invalidPipeArgumentError(DatePipe,error.message)}}static{this.ɵfac=function DatePipe_Factory(t){return new(t||DatePipe)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.LOCALE_ID,16),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](DATE_PIPE_DEFAULT_TIMEZONE,24),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](DATE_PIPE_DEFAULT_OPTIONS,24))}}static{this.ɵpipe=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefinePipe"]({name:"date",type:DatePipe,pure:!0,standalone:!0})}}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](DatePipe,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Pipe,args:[{name:"date",standalone:!0}]}],(()=>[{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[_angular_core__WEBPACK_IMPORTED_MODULE_0__.LOCALE_ID]}]},{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[DATE_PIPE_DEFAULT_TIMEZONE]},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional}]},{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[DATE_PIPE_DEFAULT_OPTIONS]},{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Optional}]}]),null);const _INTERPOLATION_REGEXP=/#/g;class I18nPluralPipe{constructor(_localization){this._localization=_localization}transform(value,pluralMap,locale){if(null==value)return"";if("object"!=typeof pluralMap||null===pluralMap)throw invalidPipeArgumentError(I18nPluralPipe,pluralMap);return pluralMap[getPluralCategory(value,Object.keys(pluralMap),this._localization,locale)].replace(_INTERPOLATION_REGEXP,value.toString())}static{this.ɵfac=function I18nPluralPipe_Factory(t){return new(t||I18nPluralPipe)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgLocalization,16))}}static{this.ɵpipe=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefinePipe"]({name:"i18nPlural",type:I18nPluralPipe,pure:!0,standalone:!0})}}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](I18nPluralPipe,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Pipe,args:[{name:"i18nPlural",standalone:!0}]}],(()=>[{type:NgLocalization}]),null);class I18nSelectPipe{transform(value,mapping){if(null==value)return"";if("object"!=typeof mapping||"string"!=typeof value)throw invalidPipeArgumentError(I18nSelectPipe,mapping);return mapping.hasOwnProperty(value)?mapping[value]:mapping.hasOwnProperty("other")?mapping.other:""}static{this.ɵfac=function I18nSelectPipe_Factory(t){return new(t||I18nSelectPipe)}}static{this.ɵpipe=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefinePipe"]({name:"i18nSelect",type:I18nSelectPipe,pure:!0,standalone:!0})}}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](I18nSelectPipe,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Pipe,args:[{name:"i18nSelect",standalone:!0}]}],null,null);class JsonPipe{transform(value){return JSON.stringify(value,null,2)}static{this.ɵfac=function JsonPipe_Factory(t){return new(t||JsonPipe)}}static{this.ɵpipe=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefinePipe"]({name:"json",type:JsonPipe,pure:!1,standalone:!0})}}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](JsonPipe,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Pipe,args:[{name:"json",pure:!1,standalone:!0}]}],null,null);class KeyValuePipe{constructor(differs){this.differs=differs,this.keyValues=[],this.compareFn=defaultComparator}transform(input,compareFn=defaultComparator){if(!input||!(input instanceof Map)&&"object"!=typeof input)return null;this.differ??=this.differs.find(input).create();const differChanges=this.differ.diff(input),compareFnChanged=compareFn!==this.compareFn;return differChanges&&(this.keyValues=[],differChanges.forEachItem((r=>{this.keyValues.push(function makeKeyValuePair(key,value){return{key,value}}(r.key,r.currentValue))}))),(differChanges||compareFnChanged)&&(this.keyValues.sort(compareFn),this.compareFn=compareFn),this.keyValues}static{this.ɵfac=function KeyValuePipe_Factory(t){return new(t||KeyValuePipe)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.KeyValueDiffers,16))}}static{this.ɵpipe=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefinePipe"]({name:"keyvalue",type:KeyValuePipe,pure:!1,standalone:!0})}}function defaultComparator(keyValueA,keyValueB){const a=keyValueA.key,b=keyValueB.key;if(a===b)return 0;if(void 0===a)return 1;if(void 0===b)return-1;if(null===a)return 1;if(null===b)return-1;if("string"==typeof a&&"string"==typeof b)return a[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.KeyValueDiffers}]),null);class DecimalPipe{constructor(_locale){this._locale=_locale}transform(value,digitsInfo,locale){if(!isValue(value))return null;locale||=this._locale;try{return formatNumber(strToNumber(value),locale,digitsInfo)}catch(error){throw invalidPipeArgumentError(DecimalPipe,error.message)}}static{this.ɵfac=function DecimalPipe_Factory(t){return new(t||DecimalPipe)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.LOCALE_ID,16))}}static{this.ɵpipe=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefinePipe"]({name:"number",type:DecimalPipe,pure:!0,standalone:!0})}}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](DecimalPipe,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Pipe,args:[{name:"number",standalone:!0}]}],(()=>[{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[_angular_core__WEBPACK_IMPORTED_MODULE_0__.LOCALE_ID]}]}]),null);class PercentPipe{constructor(_locale){this._locale=_locale}transform(value,digitsInfo,locale){if(!isValue(value))return null;locale||=this._locale;try{return formatPercent(strToNumber(value),locale,digitsInfo)}catch(error){throw invalidPipeArgumentError(PercentPipe,error.message)}}static{this.ɵfac=function PercentPipe_Factory(t){return new(t||PercentPipe)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.LOCALE_ID,16))}}static{this.ɵpipe=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefinePipe"]({name:"percent",type:PercentPipe,pure:!0,standalone:!0})}}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](PercentPipe,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Pipe,args:[{name:"percent",standalone:!0}]}],(()=>[{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[_angular_core__WEBPACK_IMPORTED_MODULE_0__.LOCALE_ID]}]}]),null);class CurrencyPipe{constructor(_locale,_defaultCurrencyCode="USD"){this._locale=_locale,this._defaultCurrencyCode=_defaultCurrencyCode}transform(value,currencyCode=this._defaultCurrencyCode,display="symbol",digitsInfo,locale){if(!isValue(value))return null;locale||=this._locale,"boolean"==typeof display&&(("undefined"==typeof ngDevMode||ngDevMode)&&console&&console.warn&&console.warn('Warning: the currency pipe has been changed in Angular v5. The symbolDisplay option (third parameter) is now a string instead of a boolean. The accepted values are "code", "symbol" or "symbol-narrow".'),display=display?"symbol":"code");let currency=currencyCode||this._defaultCurrencyCode;"code"!==display&&(currency="symbol"===display||"symbol-narrow"===display?getCurrencySymbol(currency,"symbol"===display?"wide":"narrow",locale):display);try{return formatCurrency(strToNumber(value),locale,currency,currencyCode,digitsInfo)}catch(error){throw invalidPipeArgumentError(CurrencyPipe,error.message)}}static{this.ɵfac=function CurrencyPipe_Factory(t){return new(t||CurrencyPipe)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.LOCALE_ID,16),_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_CURRENCY_CODE,16))}}static{this.ɵpipe=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefinePipe"]({name:"currency",type:CurrencyPipe,pure:!0,standalone:!0})}}function isValue(value){return!(null==value||""===value||value!=value)}function strToNumber(value){if("string"==typeof value&&!isNaN(Number(value)-parseFloat(value)))return Number(value);if("number"!=typeof value)throw new Error(`${value} is not a number`);return value}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](CurrencyPipe,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Pipe,args:[{name:"currency",standalone:!0}]}],(()=>[{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[_angular_core__WEBPACK_IMPORTED_MODULE_0__.LOCALE_ID]}]},{type:void 0,decorators:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Inject,args:[_angular_core__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_CURRENCY_CODE]}]}]),null);class SlicePipe{transform(value,start,end){if(null==value)return null;if(!this.supports(value))throw invalidPipeArgumentError(SlicePipe,value);return value.slice(start,end)}supports(obj){return"string"==typeof obj||Array.isArray(obj)}static{this.ɵfac=function SlicePipe_Factory(t){return new(t||SlicePipe)}}static{this.ɵpipe=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefinePipe"]({name:"slice",type:SlicePipe,pure:!1,standalone:!0})}}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](SlicePipe,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Pipe,args:[{name:"slice",pure:!1,standalone:!0}]}],null,null);const COMMON_PIPES=[AsyncPipe,UpperCasePipe,LowerCasePipe,JsonPipe,SlicePipe,DecimalPipe,PercentPipe,TitleCasePipe,CurrencyPipe,DatePipe,I18nPluralPipe,I18nSelectPipe,KeyValuePipe];class CommonModule{static{this.ɵfac=function CommonModule_Factory(t){return new(t||CommonModule)}}static{this.ɵmod=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineNgModule"]({type:CommonModule,imports:[NgClass,NgComponentOutlet,NgForOf,NgIf,NgTemplateOutlet,NgStyle,NgSwitch,NgSwitchCase,NgSwitchDefault,NgPlural,NgPluralCase,AsyncPipe,UpperCasePipe,LowerCasePipe,JsonPipe,SlicePipe,DecimalPipe,PercentPipe,TitleCasePipe,CurrencyPipe,DatePipe,I18nPluralPipe,I18nSelectPipe,KeyValuePipe],exports:[NgClass,NgComponentOutlet,NgForOf,NgIf,NgTemplateOutlet,NgStyle,NgSwitch,NgSwitchCase,NgSwitchDefault,NgPlural,NgPluralCase,AsyncPipe,UpperCasePipe,LowerCasePipe,JsonPipe,SlicePipe,DecimalPipe,PercentPipe,TitleCasePipe,CurrencyPipe,DatePipe,I18nPluralPipe,I18nSelectPipe,KeyValuePipe]})}static{this.ɵinj=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjector"]({})}}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](CommonModule,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.NgModule,args:[{imports:[COMMON_DIRECTIVES,COMMON_PIPES],exports:[COMMON_DIRECTIVES,COMMON_PIPES]}]}],null,null);const PLATFORM_BROWSER_ID="browser",PLATFORM_SERVER_ID="server",PLATFORM_WORKER_APP_ID="browserWorkerApp",PLATFORM_WORKER_UI_ID="browserWorkerUi";function isPlatformBrowser(platformId){return platformId===PLATFORM_BROWSER_ID}function isPlatformServer(platformId){return platformId===PLATFORM_SERVER_ID}function isPlatformWorkerApp(platformId){return platformId===PLATFORM_WORKER_APP_ID}function isPlatformWorkerUi(platformId){return platformId===PLATFORM_WORKER_UI_ID}const VERSION=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.Version("17.3.12");class ViewportScroller{static{this.ɵprov=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"])({token:ViewportScroller,providedIn:"root",factory:()=>isPlatformBrowser((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(_angular_core__WEBPACK_IMPORTED_MODULE_0__.PLATFORM_ID))?new BrowserViewportScroller((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(DOCUMENT),window):new NullViewportScroller})}}class BrowserViewportScroller{constructor(document,window){this.document=document,this.window=window,this.offset=()=>[0,0]}setOffset(offset){Array.isArray(offset)?this.offset=()=>offset:this.offset=offset}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(position){this.window.scrollTo(position[0],position[1])}scrollToAnchor(target){const elSelected=function findAnchorFromDocument(document,target){const documentResult=document.getElementById(target)||document.getElementsByName(target)[0];if(documentResult)return documentResult;if("function"==typeof document.createTreeWalker&&document.body&&"function"==typeof document.body.attachShadow){const treeWalker=document.createTreeWalker(document.body,NodeFilter.SHOW_ELEMENT);let currentNode=treeWalker.currentNode;for(;currentNode;){const shadowRoot=currentNode.shadowRoot;if(shadowRoot){const result=shadowRoot.getElementById(target)||shadowRoot.querySelector(`[name="${target}"]`);if(result)return result}currentNode=treeWalker.nextNode()}}return null}(this.document,target);elSelected&&(this.scrollToElement(elSelected),elSelected.focus())}setHistoryScrollRestoration(scrollRestoration){this.window.history.scrollRestoration=scrollRestoration}scrollToElement(el){const rect=el.getBoundingClientRect(),left=rect.left+this.window.pageXOffset,top=rect.top+this.window.pageYOffset,offset=this.offset();this.window.scrollTo(left-offset[0],top-offset[1])}}class NullViewportScroller{setOffset(offset){}getScrollPosition(){return[0,0]}scrollToPosition(position){}scrollToAnchor(anchor){}setHistoryScrollRestoration(scrollRestoration){}}class XhrFactory{}const PLACEHOLDER_QUALITY="20";function getUrl(src,win){return isAbsoluteUrl(src)?new URL(src):new URL(src,win.location.href)}function isAbsoluteUrl(src){return/^https?:\/\//.test(src)}function extractHostname(url){return isAbsoluteUrl(url)?new URL(url).hostname:url}function isValidPath(path){if(!("string"==typeof path)||""===path.trim())return!1;try{new URL(path);return!0}catch{return!1}}const noopImageLoader=config=>config.src,IMAGE_LOADER=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.InjectionToken(ngDevMode?"ImageLoader":"",{providedIn:"root",factory:()=>noopImageLoader});function createImageLoader(buildUrlFn,exampleUrls){return function provideImageLoader(path){isValidPath(path)||function throwInvalidPathError(path,exampleUrls){throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2959,ngDevMode&&`Image loader has detected an invalid path (\`${path}\`). To fix this, supply a path using one of the following formats: ${exampleUrls.join(" or ")}`)}(path,exampleUrls||[]),path=function normalizePath(path){return path.endsWith("/")?path.slice(0,-1):path}(path);return[{provide:IMAGE_LOADER,useValue:config=>{return isAbsoluteUrl(config.src)&&function throwUnexpectedAbsoluteUrlError(path,url){throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2959,ngDevMode&&`Image loader has detected a \`\` tag with an invalid \`ngSrc\` attribute: ${url}. This image loader expects \`ngSrc\` to be a relative URL - however the provided value is an absolute URL. To fix this, provide \`ngSrc\` as a path relative to the base URL configured for this loader (\`${path}\`).`)}(path,config.src),buildUrlFn(path,{...config,src:(src=config.src,src.startsWith("/")?src.slice(1):src)});var src}}]}}const provideCloudflareLoader=createImageLoader((function createCloudflareUrl(path,config){let params="format=auto";config.width&&(params+=`,width=${config.width}`);config.isPlaceholder&&(params+=`,quality=${PLACEHOLDER_QUALITY}`);return`${path}/cdn-cgi/image/${params}/${config.src}`}),ngDevMode?["https:///cdn-cgi/image//"]:void 0);const cloudinaryLoaderInfo={name:"Cloudinary",testUrl:function isCloudinaryUrl(url){return CLOUDINARY_LOADER_REGEX.test(url)}},CLOUDINARY_LOADER_REGEX=/https?\:\/\/[^\/]+\.cloudinary\.com\/.+/;const provideCloudinaryLoader=createImageLoader((function createCloudinaryUrl(path,config){let params="f_auto,"+(config.isPlaceholder?"q_auto:low":"q_auto");config.width&&(params+=`,w_${config.width}`);return`${path}/image/upload/${params}/${config.src}`}),ngDevMode?["https://res.cloudinary.com/mysite","https://mysite.cloudinary.com","https://subdomain.mysite.com"]:void 0);const imageKitLoaderInfo={name:"ImageKit",testUrl:function isImageKitUrl(url){return IMAGE_KIT_LOADER_REGEX.test(url)}},IMAGE_KIT_LOADER_REGEX=/https?\:\/\/[^\/]+\.imagekit\.io\/.+/;const provideImageKitLoader=createImageLoader((function createImagekitUrl(path,config){const{src,width}=config,params=[];width&¶ms.push(`w-${width}`);config.isPlaceholder&¶ms.push(`q-${PLACEHOLDER_QUALITY}`);const urlSegments=params.length?[path,`tr:${params.join(",")}`,src]:[path,src];return new URL(urlSegments.join("/")).href}),ngDevMode?["https://ik.imagekit.io/mysite","https://subdomain.mysite.com"]:void 0);const imgixLoaderInfo={name:"Imgix",testUrl:function isImgixUrl(url){return IMGIX_LOADER_REGEX.test(url)}},IMGIX_LOADER_REGEX=/https?\:\/\/[^\/]+\.imgix\.net\/.+/;const provideImgixLoader=createImageLoader((function createImgixUrl(path,config){const url=new URL(`${path}/${config.src}`);url.searchParams.set("auto","format"),config.width&&url.searchParams.set("w",config.width.toString());config.isPlaceholder&&url.searchParams.set("q",PLACEHOLDER_QUALITY);return url.href}),ngDevMode?["https://somepath.imgix.net/"]:void 0);const netlifyLoaderInfo={name:"Netlify",testUrl:function isNetlifyUrl(url){return NETLIFY_LOADER_REGEX.test(url)}},NETLIFY_LOADER_REGEX=/https?\:\/\/[^\/]+\.netlify\.app\/.+/;function provideNetlifyLoader(path){if(path&&!isValidPath(path))throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2959,ngDevMode&&`Image loader has detected an invalid path (\`${path}\`). To fix this, supply either the full URL to the Netlify site, or leave it empty to use the current site.`);if(path){const url=new URL(path);path=url.origin}const providers=[{provide:IMAGE_LOADER,useValue:config=>function createNetlifyUrl(config,path){const url=new URL(path??"https://a/");url.pathname="/.netlify/images",isAbsoluteUrl(config.src)||config.src.startsWith("/")||(config.src="/"+config.src);url.searchParams.set("url",config.src),config.width&&url.searchParams.set("w",config.width.toString());const configQuality=config.loaderParams?.quality??config.loaderParams?.q;config.isPlaceholder&&!configQuality&&url.searchParams.set("q",PLACEHOLDER_QUALITY);for(const[param,value]of Object.entries(config.loaderParams??{}))validParams.has(param)?url.searchParams.set(validParams.get(param),value.toString()):ngDevMode&&console.warn((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵformatRuntimeError"])(2959,`The Netlify image loader has detected an \`\` tag with the unsupported attribute "\`${param}\`".`));return"a"===url.hostname?url.href.replace(url.origin,""):url.href}(config,path)}];return providers}const validParams=new Map([["height","h"],["fit","fit"],["quality","q"],["q","q"],["position","position"]]);function imgDirectiveDetails(ngSrc,includeNgSrc=!0){return`The NgOptimizedImage directive ${includeNgSrc?`(activated on an element with the \`ngSrc="${ngSrc}"\`) `:""}has detected that`}function assertDevMode(checkName){if(!ngDevMode)throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2958,`Unexpected invocation of the ${checkName} in the prod mode. Please make sure that the prod mode is enabled for production builds.`)}class LCPImageObserver{constructor(){this.images=new Map,this.window=null,this.observer=null,assertDevMode("LCP checker");const win=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(DOCUMENT).defaultView;void 0!==win&&"undefined"!=typeof PerformanceObserver&&(this.window=win,this.observer=this.initPerformanceObserver())}initPerformanceObserver(){const observer=new PerformanceObserver((entryList=>{const entries=entryList.getEntries();if(0===entries.length)return;const lcpElement=entries[entries.length-1],imgSrc=lcpElement.element?.src??"";if(imgSrc.startsWith("data:")||imgSrc.startsWith("blob:"))return;const img=this.images.get(imgSrc);img&&(img.priority||img.alreadyWarnedPriority||(img.alreadyWarnedPriority=!0,function logMissingPriorityError(ngSrc){const directiveDetails=imgDirectiveDetails(ngSrc);console.error((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵformatRuntimeError"])(2955,`${directiveDetails} this image is the Largest Contentful Paint (LCP) element but was not marked "priority". This image should be marked "priority" in order to prioritize its loading. To fix this, add the "priority" attribute.`))}(imgSrc)),img.modified&&!img.alreadyWarnedModified&&(img.alreadyWarnedModified=!0,function logModifiedWarning(ngSrc){const directiveDetails=imgDirectiveDetails(ngSrc);console.warn((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵformatRuntimeError"])(2964,`${directiveDetails} this image is the Largest Contentful Paint (LCP) element and has had its "ngSrc" attribute modified. This can cause slower loading performance. It is recommended not to modify the "ngSrc" property on any image which could be the LCP element.`))}(imgSrc)))}));return observer.observe({type:"largest-contentful-paint",buffered:!0}),observer}registerImage(rewrittenSrc,originalNgSrc,isPriority){if(!this.observer)return;const newObservedImageState={priority:isPriority,modified:!1,alreadyWarnedModified:!1,alreadyWarnedPriority:!1};this.images.set(getUrl(rewrittenSrc,this.window).href,newObservedImageState)}unregisterImage(rewrittenSrc){this.observer&&this.images.delete(getUrl(rewrittenSrc,this.window).href)}updateImage(originalSrc,newSrc){const originalUrl=getUrl(originalSrc,this.window).href,img=this.images.get(originalUrl);img&&(img.modified=!0,this.images.set(getUrl(newSrc,this.window).href,img),this.images.delete(originalUrl))}ngOnDestroy(){this.observer&&(this.observer.disconnect(),this.images.clear())}static{this.ɵfac=function LCPImageObserver_Factory(t){return new(t||LCPImageObserver)}}static{this.ɵprov=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({token:LCPImageObserver,factory:LCPImageObserver.ɵfac,providedIn:"root"})}}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](LCPImageObserver,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable,args:[{providedIn:"root"}]}],(()=>[]),null);const INTERNAL_PRECONNECT_CHECK_BLOCKLIST=new Set(["localhost","127.0.0.1","0.0.0.0"]),PRECONNECT_CHECK_BLOCKLIST=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.InjectionToken(ngDevMode?"PRECONNECT_CHECK_BLOCKLIST":"");class PreconnectLinkChecker{constructor(){this.document=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(DOCUMENT),this.preconnectLinks=null,this.alreadySeen=new Set,this.window=null,this.blocklist=new Set(INTERNAL_PRECONNECT_CHECK_BLOCKLIST),assertDevMode("preconnect link checker");const win=this.document.defaultView;void 0!==win&&(this.window=win);const blocklist=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(PRECONNECT_CHECK_BLOCKLIST,{optional:!0});blocklist&&this.populateBlocklist(blocklist)}populateBlocklist(origins){Array.isArray(origins)?deepForEach(origins,(origin=>{this.blocklist.add(extractHostname(origin))})):this.blocklist.add(extractHostname(origins))}assertPreconnect(rewrittenSrc,originalNgSrc){if(!this.window)return;const imgUrl=getUrl(rewrittenSrc,this.window);this.blocklist.has(imgUrl.hostname)||this.alreadySeen.has(imgUrl.origin)||(this.alreadySeen.add(imgUrl.origin),this.preconnectLinks??=this.queryPreconnectLinks(),this.preconnectLinks.has(imgUrl.origin)||console.warn((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵformatRuntimeError"])(2956,`${imgDirectiveDetails(originalNgSrc)} there is no preconnect tag present for this image. Preconnecting to the origin(s) that serve priority images ensures that these images are delivered as soon as possible. To fix this, please add the following element into the of the document:\n `)))}queryPreconnectLinks(){const preconnectUrls=new Set,links=Array.from(this.document.querySelectorAll("link[rel=preconnect]"));for(let link of links){const url=getUrl(link.href,this.window);preconnectUrls.add(url.origin)}return preconnectUrls}ngOnDestroy(){this.preconnectLinks?.clear(),this.alreadySeen.clear()}static{this.ɵfac=function PreconnectLinkChecker_Factory(t){return new(t||PreconnectLinkChecker)}}static{this.ɵprov=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({token:PreconnectLinkChecker,factory:PreconnectLinkChecker.ɵfac,providedIn:"root"})}}function deepForEach(input,fn){for(let value of input)Array.isArray(value)?deepForEach(value,fn):fn(value)}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](PreconnectLinkChecker,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable,args:[{providedIn:"root"}]}],(()=>[]),null);const PRELOADED_IMAGES=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.InjectionToken("NG_OPTIMIZED_PRELOADED_IMAGES",{providedIn:"root",factory:()=>new Set});class PreloadLinkCreator{constructor(){this.preloadedImages=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(PRELOADED_IMAGES),this.document=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(DOCUMENT)}createPreloadLinkTag(renderer,src,srcset,sizes){if(ngDevMode&&this.preloadedImages.size>=5)throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2961,ngDevMode&&'The `NgOptimizedImage` directive has detected that more than 5 images were marked as priority. This might negatively affect an overall performance of the page. To fix this, remove the "priority" attribute from images with less priority.');if(this.preloadedImages.has(src))return;this.preloadedImages.add(src);const preload=renderer.createElement("link");renderer.setAttribute(preload,"as","image"),renderer.setAttribute(preload,"href",src),renderer.setAttribute(preload,"rel","preload"),renderer.setAttribute(preload,"fetchpriority","high"),sizes&&renderer.setAttribute(preload,"imageSizes",sizes),srcset&&renderer.setAttribute(preload,"imageSrcset",srcset),renderer.appendChild(this.document.head,preload)}static{this.ɵfac=function PreloadLinkCreator_Factory(t){return new(t||PreloadLinkCreator)}}static{this.ɵprov=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({token:PreloadLinkCreator,factory:PreloadLinkCreator.ɵfac,providedIn:"root"})}}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](PreloadLinkCreator,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injectable,args:[{providedIn:"root"}]}],null,null);const VALID_WIDTH_DESCRIPTOR_SRCSET=/^((\s*\d+w\s*(,|$)){1,})$/,VALID_DENSITY_DESCRIPTOR_SRCSET=/^((\s*\d+(\.\d+)?x\s*(,|$)){1,})$/,DENSITY_SRCSET_MULTIPLIERS=[1,2],BUILT_IN_LOADERS=[imgixLoaderInfo,imageKitLoaderInfo,cloudinaryLoaderInfo,netlifyLoaderInfo];class NgOptimizedImage{constructor(){this.imageLoader=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(IMAGE_LOADER),this.config=function processConfig(config){let sortedBreakpoints={};config.breakpoints&&(sortedBreakpoints.breakpoints=config.breakpoints.sort(((a,b)=>a-b)));return Object.assign({},_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵIMAGE_CONFIG_DEFAULTS"],config,sortedBreakpoints)}((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵIMAGE_CONFIG"])),this.renderer=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(_angular_core__WEBPACK_IMPORTED_MODULE_0__.Renderer2),this.imgElement=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(_angular_core__WEBPACK_IMPORTED_MODULE_0__.ElementRef).nativeElement,this.injector=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(_angular_core__WEBPACK_IMPORTED_MODULE_0__.Injector),this.isServer=isPlatformServer((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(_angular_core__WEBPACK_IMPORTED_MODULE_0__.PLATFORM_ID)),this.preloadLinkCreator=(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.inject)(PreloadLinkCreator),this.lcpObserver=ngDevMode?this.injector.get(LCPImageObserver):null,this._renderedSrc=null,this.priority=!1,this.disableOptimizedSrcset=!1,this.fill=!1}ngOnInit(){if((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵperformanceMarkFeature"])("NgOptimizedImage"),ngDevMode){const ngZone=this.injector.get(_angular_core__WEBPACK_IMPORTED_MODULE_0__.NgZone);if(assertNonEmptyInput(this,"ngSrc",this.ngSrc),function assertValidNgSrcset(dir,value){if(null==value)return;assertNonEmptyInput(dir,"ngSrcset",value);const stringVal=value,isValidWidthDescriptor=VALID_WIDTH_DESCRIPTOR_SRCSET.test(stringVal),isValidDensityDescriptor=VALID_DENSITY_DESCRIPTOR_SRCSET.test(stringVal);isValidDensityDescriptor&&function assertUnderDensityCap(dir,value){const underDensityCap=value.split(",").every((num=>""===num||parseFloat(num)<=3));if(!underDensityCap)throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2952,`${imgDirectiveDetails(dir.ngSrc)} the \`ngSrcset\` contains an unsupported image density:\`${value}\`. NgOptimizedImage generally recommends a max image density of 2x but supports image densities up to 3x. The human eye cannot distinguish between image densities greater than 2x - which makes them unnecessary for most use cases. Images that will be pinch-zoomed are typically the primary use case for 3x images. Please remove the high density descriptor and try again.`)}(dir,stringVal);if(!isValidWidthDescriptor&&!isValidDensityDescriptor)throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2952,`${imgDirectiveDetails(dir.ngSrc)} \`ngSrcset\` has an invalid value (\`${value}\`). To fix this, supply \`ngSrcset\` using a comma-separated list of one or more width descriptors (e.g. "100w, 200w") or density descriptors (e.g. "1x, 2x").`)}(this,this.ngSrcset),function assertNoConflictingSrc(dir){if(dir.src)throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2950,`${imgDirectiveDetails(dir.ngSrc)} both \`src\` and \`ngSrc\` have been set. Supplying both of these attributes breaks lazy loading. The NgOptimizedImage directive sets \`src\` itself based on the value of \`ngSrc\`. To fix this, please remove the \`src\` attribute.`)}(this),this.ngSrcset&&function assertNoConflictingSrcset(dir){if(dir.srcset)throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2951,`${imgDirectiveDetails(dir.ngSrc)} both \`srcset\` and \`ngSrcset\` have been set. Supplying both of these attributes breaks lazy loading. The NgOptimizedImage directive sets \`srcset\` itself based on the value of \`ngSrcset\`. To fix this, please remove the \`srcset\` attribute.`)}(this),function assertNotBase64Image(dir){let ngSrc=dir.ngSrc.trim();if(ngSrc.startsWith("data:"))throw ngSrc.length>50&&(ngSrc=ngSrc.substring(0,50)+"..."),new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2952,`${imgDirectiveDetails(dir.ngSrc,!1)} \`ngSrc\` is a Base64-encoded string (${ngSrc}). NgOptimizedImage does not support Base64-encoded strings. To fix this, disable the NgOptimizedImage directive for this element by removing \`ngSrc\` and using a standard \`src\` attribute instead.`)}(this),function assertNotBlobUrl(dir){const ngSrc=dir.ngSrc.trim();if(ngSrc.startsWith("blob:"))throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2952,`${imgDirectiveDetails(dir.ngSrc)} \`ngSrc\` was set to a blob URL (${ngSrc}). Blob URLs are not supported by the NgOptimizedImage directive. To fix this, disable the NgOptimizedImage directive for this element by removing \`ngSrc\` and using a regular \`src\` attribute instead.`)}(this),this.fill?(!function assertEmptyWidthAndHeight(dir){if(dir.width||dir.height)throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2952,`${imgDirectiveDetails(dir.ngSrc)} the attributes \`height\` and/or \`width\` are present along with the \`fill\` attribute. Because \`fill\` mode causes an image to fill its containing element, the size attributes have no effect and should be removed.`)}(this),ngZone.runOutsideAngular((()=>function assertNonZeroRenderedHeight(dir,img,renderer){const removeLoadListenerFn=renderer.listen(img,"load",(()=>{removeLoadListenerFn(),removeErrorListenerFn();const renderedHeight=img.clientHeight;dir.fill&&0===renderedHeight&&console.warn((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵformatRuntimeError"])(2952,`${imgDirectiveDetails(dir.ngSrc)} the height of the fill-mode image is zero. This is likely because the containing element does not have the CSS 'position' property set to one of the following: "relative", "fixed", or "absolute". To fix this problem, make sure the container element has the CSS 'position' property defined and the height of the element is not zero.`))})),removeErrorListenerFn=renderer.listen(img,"error",(()=>{removeLoadListenerFn(),removeErrorListenerFn()}))}(this,this.imgElement,this.renderer)))):(!function assertNonEmptyWidthAndHeight(dir){let missingAttributes=[];void 0===dir.width&&missingAttributes.push("width");void 0===dir.height&&missingAttributes.push("height");if(missingAttributes.length>0)throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2954,`${imgDirectiveDetails(dir.ngSrc)} these required attributes are missing: ${missingAttributes.map((attr=>`"${attr}"`)).join(", ")}. Including "width" and "height" attributes will prevent image-related layout shifts. To fix this, include "width" and "height" attributes on the image tag or turn on "fill" mode with the \`fill\` attribute.`)}(this),void 0!==this.height&&assertGreaterThanZero(this,this.height,"height"),void 0!==this.width&&assertGreaterThanZero(this,this.width,"width"),ngZone.runOutsideAngular((()=>function assertNoImageDistortion(dir,img,renderer){const removeLoadListenerFn=renderer.listen(img,"load",(()=>{removeLoadListenerFn(),removeErrorListenerFn();const computedStyle=window.getComputedStyle(img);let renderedWidth=parseFloat(computedStyle.getPropertyValue("width")),renderedHeight=parseFloat(computedStyle.getPropertyValue("height"));if("border-box"===computedStyle.getPropertyValue("box-sizing")){const paddingTop=computedStyle.getPropertyValue("padding-top"),paddingRight=computedStyle.getPropertyValue("padding-right"),paddingBottom=computedStyle.getPropertyValue("padding-bottom"),paddingLeft=computedStyle.getPropertyValue("padding-left");renderedWidth-=parseFloat(paddingRight)+parseFloat(paddingLeft),renderedHeight-=parseFloat(paddingTop)+parseFloat(paddingBottom)}const renderedAspectRatio=renderedWidth/renderedHeight,nonZeroRenderedDimensions=0!==renderedWidth&&0!==renderedHeight,intrinsicWidth=img.naturalWidth,intrinsicHeight=img.naturalHeight,intrinsicAspectRatio=intrinsicWidth/intrinsicHeight,suppliedWidth=dir.width,suppliedHeight=dir.height,suppliedAspectRatio=suppliedWidth/suppliedHeight,inaccurateDimensions=Math.abs(suppliedAspectRatio-intrinsicAspectRatio)>.1,stylingDistortion=nonZeroRenderedDimensions&&Math.abs(intrinsicAspectRatio-renderedAspectRatio)>.1;if(inaccurateDimensions)console.warn((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵformatRuntimeError"])(2952,`${imgDirectiveDetails(dir.ngSrc)} the aspect ratio of the image does not match the aspect ratio indicated by the width and height attributes. \nIntrinsic image size: ${intrinsicWidth}w x ${intrinsicHeight}h (aspect-ratio: ${round(intrinsicAspectRatio)}). \nSupplied width and height attributes: ${suppliedWidth}w x ${suppliedHeight}h (aspect-ratio: ${round(suppliedAspectRatio)}). \nTo fix this, update the width and height attributes.`));else if(stylingDistortion)console.warn((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵformatRuntimeError"])(2952,`${imgDirectiveDetails(dir.ngSrc)} the aspect ratio of the rendered image does not match the image's intrinsic aspect ratio. \nIntrinsic image size: ${intrinsicWidth}w x ${intrinsicHeight}h (aspect-ratio: ${round(intrinsicAspectRatio)}). \nRendered image size: ${renderedWidth}w x ${renderedHeight}h (aspect-ratio: ${round(renderedAspectRatio)}). \nThis issue can occur if "width" and "height" attributes are added to an image without updating the corresponding image styling. To fix this, adjust image styling. In most cases, adding "height: auto" or "width: auto" to the image styling will fix this issue.`));else if(!dir.ngSrcset&&nonZeroRenderedDimensions){const recommendedWidth=2*renderedWidth,recommendedHeight=2*renderedHeight;(intrinsicWidth-recommendedWidth>=1e3||intrinsicHeight-recommendedHeight>=1e3)&&console.warn((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵformatRuntimeError"])(2960,`${imgDirectiveDetails(dir.ngSrc)} the intrinsic image is significantly larger than necessary. \nRendered image size: ${renderedWidth}w x ${renderedHeight}h. \nIntrinsic image size: ${intrinsicWidth}w x ${intrinsicHeight}h. \nRecommended intrinsic image size: ${recommendedWidth}w x ${recommendedHeight}h. \nNote: Recommended intrinsic image size is calculated assuming a maximum DPR of 2. To improve loading time, resize the image or consider using the "ngSrcset" and "sizes" attributes.`))}})),removeErrorListenerFn=renderer.listen(img,"error",(()=>{removeLoadListenerFn(),removeErrorListenerFn()}))}(this,this.imgElement,this.renderer)))),function assertValidLoadingInput(dir){if(dir.loading&&dir.priority)throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2952,`${imgDirectiveDetails(dir.ngSrc)} the \`loading\` attribute was used on an image that was marked "priority". Setting \`loading\` on priority images is not allowed because these images will always be eagerly loaded. To fix this, remove the “loading” attribute from the priority image.`);const validInputs=["auto","eager","lazy"];if("string"==typeof dir.loading&&!validInputs.includes(dir.loading))throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2952,`${imgDirectiveDetails(dir.ngSrc)} the \`loading\` attribute has an invalid value (\`${dir.loading}\`). To fix this, provide a valid value ("lazy", "eager", or "auto").`)}(this),this.ngSrcset||function assertNoComplexSizes(dir){let sizes=dir.sizes;if(sizes?.match(/((\)|,)\s|^)\d+px/))throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2952,`${imgDirectiveDetails(dir.ngSrc,!1)} \`sizes\` was set to a string including pixel values. For automatic \`srcset\` generation, \`sizes\` must only include responsive values, such as \`sizes="50vw"\` or \`sizes="(min-width: 768px) 50vw, 100vw"\`. To fix this, modify the \`sizes\` attribute, or provide your own \`ngSrcset\` value directly.`)}(this),function assertValidPlaceholder(dir,imageLoader){(function assertNoPlaceholderConfigWithoutPlaceholder(dir){if(dir.placeholderConfig&&!dir.placeholder)throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2952,`${imgDirectiveDetails(dir.ngSrc,!1)} \`placeholderConfig\` options were provided for an image that does not use the \`placeholder\` attribute, and will have no effect.`)})(dir),function assertNoRelativePlaceholderWithoutLoader(dir,imageLoader){if(!0===dir.placeholder&&imageLoader===noopImageLoader)throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2963,`${imgDirectiveDetails(dir.ngSrc)} the \`placeholder\` attribute is set to true but no image loader is configured (i.e. the default one is being used), which would result in the same image being used for the primary image and its placeholder. To fix this, provide a loader or remove the \`placeholder\` attribute from the image.`)}(dir,imageLoader),function assertNoOversizedDataUrl(dir){if(dir.placeholder&&"string"==typeof dir.placeholder&&dir.placeholder.startsWith("data:")){if(dir.placeholder.length>1e4)throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2965,`${imgDirectiveDetails(dir.ngSrc)} the \`placeholder\` attribute is set to a data URL which is longer than 10000 characters. This is strongly discouraged, as large inline placeholders directly increase the bundle size of Angular and hurt page load performance. To fix this, generate a smaller data URL placeholder.`);dir.placeholder.length>4e3&&console.warn((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵformatRuntimeError"])(2965,`${imgDirectiveDetails(dir.ngSrc)} the \`placeholder\` attribute is set to a data URL which is longer than 4000 characters. This is discouraged, as large inline placeholders directly increase the bundle size of Angular and hurt page load performance. For better loading performance, generate a smaller data URL placeholder.`))}}(dir)}(this,this.imageLoader),function assertNotMissingBuiltInLoader(ngSrc,imageLoader){if(imageLoader===noopImageLoader){let builtInLoaderName="";for(const loader of BUILT_IN_LOADERS)if(loader.testUrl(ngSrc)){builtInLoaderName=loader.name;break}builtInLoaderName&&console.warn((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵformatRuntimeError"])(2962,`NgOptimizedImage: It looks like your images may be hosted on the ${builtInLoaderName} CDN, but your app is not using Angular's built-in loader for that CDN. We recommend switching to use the built-in by calling \`provide${builtInLoaderName}Loader()\` in your \`providers\` and passing it your instance's base URL. If you don't want to use the built-in loader, define a custom loader function using IMAGE_LOADER to silence this warning.`))}}(this.ngSrc,this.imageLoader),function assertNoNgSrcsetWithoutLoader(dir,imageLoader){dir.ngSrcset&&imageLoader===noopImageLoader&&console.warn((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵformatRuntimeError"])(2963,`${imgDirectiveDetails(dir.ngSrc)} the \`ngSrcset\` attribute is present but no image loader is configured (i.e. the default one is being used), which would result in the same image being used for all configured sizes. To fix this, provide a loader or remove the \`ngSrcset\` attribute from the image.`))}(this,this.imageLoader),function assertNoLoaderParamsWithoutLoader(dir,imageLoader){dir.loaderParams&&imageLoader===noopImageLoader&&console.warn((0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵformatRuntimeError"])(2963,`${imgDirectiveDetails(dir.ngSrc)} the \`loaderParams\` attribute is present but no image loader is configured (i.e. the default one is being used), which means that the loaderParams data will not be consumed and will not affect the URL. To fix this, provide a custom loader or remove the \`loaderParams\` attribute from the image.`))}(this,this.imageLoader),null!==this.lcpObserver){this.injector.get(_angular_core__WEBPACK_IMPORTED_MODULE_0__.NgZone).runOutsideAngular((()=>{this.lcpObserver.registerImage(this.getRewrittenSrc(),this.ngSrc,this.priority)}))}if(this.priority){this.injector.get(PreconnectLinkChecker).assertPreconnect(this.getRewrittenSrc(),this.ngSrc)}}this.placeholder&&this.removePlaceholderOnLoad(this.imgElement),this.setHostAttributes()}setHostAttributes(){this.fill?this.sizes||="100vw":(this.setHostAttribute("width",this.width.toString()),this.setHostAttribute("height",this.height.toString())),this.setHostAttribute("loading",this.getLoadingBehavior()),this.setHostAttribute("fetchpriority",this.getFetchPriority()),this.setHostAttribute("ng-img","true");const rewrittenSrcset=this.updateSrcAndSrcset();this.sizes&&this.setHostAttribute("sizes",this.sizes),this.isServer&&this.priority&&this.preloadLinkCreator.createPreloadLinkTag(this.renderer,this.getRewrittenSrc(),rewrittenSrcset,this.sizes)}ngOnChanges(changes){if(ngDevMode&&function assertNoPostInitInputChange(dir,changes,inputs){inputs.forEach((input=>{if(changes.hasOwnProperty(input)&&!changes[input].isFirstChange())throw"ngSrc"===input&&(dir={ngSrc:changes[input].previousValue}),function postInitInputChangeError(dir,inputName){let reason;reason="width"===inputName||"height"===inputName?`Changing \`${inputName}\` may result in different attribute value applied to the underlying image element and cause layout shifts on a page.`:`Changing the \`${inputName}\` would have no effect on the underlying image element, because the resource loading has already occurred.`;return new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2953,`${imgDirectiveDetails(dir.ngSrc)} \`${inputName}\` was updated after initialization. The NgOptimizedImage directive will not react to this input change. ${reason} To fix this, either switch \`${inputName}\` to a static value or wrap the image element in an *ngIf that is gated on the necessary value.`)}(dir,input)}))}(this,changes,["ngSrcset","width","height","priority","fill","loading","sizes","loaderParams","disableOptimizedSrcset"]),changes.ngSrc&&!changes.ngSrc.isFirstChange()){const oldSrc=this._renderedSrc;this.updateSrcAndSrcset(!0);const newSrc=this._renderedSrc;if(null!==this.lcpObserver&&oldSrc&&newSrc&&oldSrc!==newSrc){this.injector.get(_angular_core__WEBPACK_IMPORTED_MODULE_0__.NgZone).runOutsideAngular((()=>{this.lcpObserver?.updateImage(oldSrc,newSrc)}))}}}callImageLoader(configWithoutCustomParams){let augmentedConfig=configWithoutCustomParams;return this.loaderParams&&(augmentedConfig.loaderParams=this.loaderParams),this.imageLoader(augmentedConfig)}getLoadingBehavior(){return this.priority||void 0===this.loading?this.priority?"eager":"lazy":this.loading}getFetchPriority(){return this.priority?"high":"auto"}getRewrittenSrc(){if(!this._renderedSrc){const imgConfig={src:this.ngSrc};this._renderedSrc=this.callImageLoader(imgConfig)}return this._renderedSrc}getRewrittenSrcset(){const widthSrcSet=VALID_WIDTH_DESCRIPTOR_SRCSET.test(this.ngSrcset);return this.ngSrcset.split(",").filter((src=>""!==src)).map((srcStr=>{srcStr=srcStr.trim();const width=widthSrcSet?parseFloat(srcStr):parseFloat(srcStr)*this.width;return`${this.callImageLoader({src:this.ngSrc,width})} ${srcStr}`})).join(", ")}getAutomaticSrcset(){return this.sizes?this.getResponsiveSrcset():this.getFixedSrcset()}getResponsiveSrcset(){const{breakpoints}=this.config;let filteredBreakpoints=breakpoints;"100vw"===this.sizes?.trim()&&(filteredBreakpoints=breakpoints.filter((bp=>bp>=640)));return filteredBreakpoints.map((bp=>`${this.callImageLoader({src:this.ngSrc,width:bp})} ${bp}w`)).join(", ")}updateSrcAndSrcset(forceSrcRecalc=!1){forceSrcRecalc&&(this._renderedSrc=null);const rewrittenSrc=this.getRewrittenSrc();let rewrittenSrcset;return this.setHostAttribute("src",rewrittenSrc),this.ngSrcset?rewrittenSrcset=this.getRewrittenSrcset():this.shouldGenerateAutomaticSrcset()&&(rewrittenSrcset=this.getAutomaticSrcset()),rewrittenSrcset&&this.setHostAttribute("srcset",rewrittenSrcset),rewrittenSrcset}getFixedSrcset(){return DENSITY_SRCSET_MULTIPLIERS.map((multiplier=>`${this.callImageLoader({src:this.ngSrc,width:this.width*multiplier})} ${multiplier}x`)).join(", ")}shouldGenerateAutomaticSrcset(){let oversizedImage=!1;return this.sizes||(oversizedImage=this.width>1920||this.height>1080),!this.disableOptimizedSrcset&&!this.srcset&&this.imageLoader!==noopImageLoader&&!oversizedImage}generatePlaceholder(placeholderInput){const{placeholderResolution}=this.config;return!0===placeholderInput?`url(${this.callImageLoader({src:this.ngSrc,width:placeholderResolution,isPlaceholder:!0})})`:"string"==typeof placeholderInput&&placeholderInput.startsWith("data:")?`url(${placeholderInput})`:null}shouldBlurPlaceholder(placeholderConfig){return!placeholderConfig||!placeholderConfig.hasOwnProperty("blur")||Boolean(placeholderConfig.blur)}removePlaceholderOnLoad(img){const callback=()=>{const changeDetectorRef=this.injector.get(_angular_core__WEBPACK_IMPORTED_MODULE_0__.ChangeDetectorRef);removeLoadListenerFn(),removeErrorListenerFn(),this.placeholder=!1,changeDetectorRef.markForCheck()},removeLoadListenerFn=this.renderer.listen(img,"load",callback),removeErrorListenerFn=this.renderer.listen(img,"error",callback)}ngOnDestroy(){ngDevMode&&(this.priority||null===this._renderedSrc||null===this.lcpObserver||this.lcpObserver.unregisterImage(this._renderedSrc))}setHostAttribute(name,value){this.renderer.setAttribute(this.imgElement,name,value)}static{this.ɵfac=function NgOptimizedImage_Factory(t){return new(t||NgOptimizedImage)}}static{this.ɵdir=_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({type:NgOptimizedImage,selectors:[["img","ngSrc",""]],hostVars:18,hostBindings:function NgOptimizedImage_HostBindings(rf,ctx){2&rf&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵstyleProp"]("position",ctx.fill?"absolute":null)("width",ctx.fill?"100%":null)("height",ctx.fill?"100%":null)("inset",ctx.fill?"0":null)("background-size",ctx.placeholder?"cover":null)("background-position",ctx.placeholder?"50% 50%":null)("background-repeat",ctx.placeholder?"no-repeat":null)("background-image",ctx.placeholder?ctx.generatePlaceholder(ctx.placeholder):null)("filter",ctx.placeholder&&ctx.shouldBlurPlaceholder(ctx.placeholderConfig)?"blur(15px)":null)},inputs:{ngSrc:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInputFlags"].HasDecoratorInputTransform,"ngSrc","ngSrc",unwrapSafeUrl],ngSrcset:"ngSrcset",sizes:"sizes",width:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInputFlags"].HasDecoratorInputTransform,"width","width",_angular_core__WEBPACK_IMPORTED_MODULE_0__.numberAttribute],height:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInputFlags"].HasDecoratorInputTransform,"height","height",_angular_core__WEBPACK_IMPORTED_MODULE_0__.numberAttribute],loading:"loading",priority:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInputFlags"].HasDecoratorInputTransform,"priority","priority",_angular_core__WEBPACK_IMPORTED_MODULE_0__.booleanAttribute],loaderParams:"loaderParams",disableOptimizedSrcset:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInputFlags"].HasDecoratorInputTransform,"disableOptimizedSrcset","disableOptimizedSrcset",_angular_core__WEBPACK_IMPORTED_MODULE_0__.booleanAttribute],fill:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInputFlags"].HasDecoratorInputTransform,"fill","fill",_angular_core__WEBPACK_IMPORTED_MODULE_0__.booleanAttribute],placeholder:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInputFlags"].HasDecoratorInputTransform,"placeholder","placeholder",booleanOrDataUrlAttribute],placeholderConfig:"placeholderConfig",src:"src",srcset:"srcset"},standalone:!0,features:[_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInputTransformsFeature"],_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵNgOnChangesFeature"]]})}}function assertNonEmptyInput(dir,name,value){const isString="string"==typeof value,isEmptyString=isString&&""===value.trim();if(!isString||isEmptyString)throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2952,`${imgDirectiveDetails(dir.ngSrc)} \`${name}\` has an invalid value (\`${value}\`). To fix this, change the value to a non-empty string.`)}function assertGreaterThanZero(dir,inputValue,inputName){const validNumber="number"==typeof inputValue&&inputValue>0,validString="string"==typeof inputValue&&/^\d+$/.test(inputValue.trim())&&parseInt(inputValue)>0;if(!validNumber&&!validString)throw new _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵRuntimeError"](2952,`${imgDirectiveDetails(dir.ngSrc)} \`${inputName}\` has an invalid value. To fix this, provide \`${inputName}\` as a number greater than 0.`)}function round(input){return Number.isInteger(input)?input:input.toFixed(2)}function unwrapSafeUrl(value){return"string"==typeof value?value:(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵunwrapSafeValue"])(value)}function booleanOrDataUrlAttribute(value){return"string"==typeof value&&value.startsWith("data:")?value:(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.booleanAttribute)(value)}("undefined"==typeof ngDevMode||ngDevMode)&&_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgOptimizedImage,[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Directive,args:[{standalone:!0,selector:"img[ngSrc]",host:{"[style.position]":'fill ? "absolute" : null',"[style.width]":'fill ? "100%" : null',"[style.height]":'fill ? "100%" : null',"[style.inset]":'fill ? "0" : null',"[style.background-size]":'placeholder ? "cover" : null',"[style.background-position]":'placeholder ? "50% 50%" : null',"[style.background-repeat]":'placeholder ? "no-repeat" : null',"[style.background-image]":"placeholder ? generatePlaceholder(placeholder) : null","[style.filter]":'placeholder && shouldBlurPlaceholder(placeholderConfig) ? "blur(15px)" : null'}}]}],null,{ngSrc:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:[{required:!0,transform:unwrapSafeUrl}]}],ngSrcset:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],sizes:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],width:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:[{transform:_angular_core__WEBPACK_IMPORTED_MODULE_0__.numberAttribute}]}],height:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:[{transform:_angular_core__WEBPACK_IMPORTED_MODULE_0__.numberAttribute}]}],loading:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],priority:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:[{transform:_angular_core__WEBPACK_IMPORTED_MODULE_0__.booleanAttribute}]}],loaderParams:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],disableOptimizedSrcset:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:[{transform:_angular_core__WEBPACK_IMPORTED_MODULE_0__.booleanAttribute}]}],fill:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:[{transform:_angular_core__WEBPACK_IMPORTED_MODULE_0__.booleanAttribute}]}],placeholder:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input,args:[{transform:booleanOrDataUrlAttribute}]}],placeholderConfig:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],src:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}],srcset:[{type:_angular_core__WEBPACK_IMPORTED_MODULE_0__.Input}]})},"./node_modules/@angular/compiler/fesm2022/compiler.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{AST:()=>AST,ASTWithName:()=>ASTWithName,ASTWithSource:()=>ASTWithSource,AbsoluteSourceSpan:()=>AbsoluteSourceSpan,ArrayType:()=>ArrayType,ArrowFunctionExpr:()=>ArrowFunctionExpr,AstMemoryEfficientTransformer:()=>AstMemoryEfficientTransformer,AstTransformer:()=>AstTransformer,Attribute:()=>Attribute,Binary:()=>Binary,BinaryOperator:()=>BinaryOperator,BinaryOperatorExpr:()=>BinaryOperatorExpr,BindingPipe:()=>BindingPipe,Block:()=>Block,BlockParameter:()=>BlockParameter,BoundElementProperty:()=>BoundElementProperty,BuiltinType:()=>BuiltinType,BuiltinTypeName:()=>BuiltinTypeName,CUSTOM_ELEMENTS_SCHEMA:()=>CUSTOM_ELEMENTS_SCHEMA,Call:()=>Call,Chain:()=>Chain,ChangeDetectionStrategy:()=>ChangeDetectionStrategy,CommaExpr:()=>CommaExpr,Comment:()=>Comment,CompilerConfig:()=>CompilerConfig,Conditional:()=>Conditional,ConditionalExpr:()=>ConditionalExpr,ConstantPool:()=>ConstantPool,CssSelector:()=>CssSelector,DEFAULT_INTERPOLATION_CONFIG:()=>DEFAULT_INTERPOLATION_CONFIG,DYNAMIC_TYPE:()=>DYNAMIC_TYPE,DeclareFunctionStmt:()=>DeclareFunctionStmt,DeclareVarStmt:()=>DeclareVarStmt,DomElementSchemaRegistry:()=>DomElementSchemaRegistry,DynamicImportExpr:()=>DynamicImportExpr,EOF:()=>EOF,Element:()=>Element,ElementSchemaRegistry:()=>ElementSchemaRegistry,EmitterVisitorContext:()=>EmitterVisitorContext,EmptyExpr:()=>EmptyExpr$1,Expansion:()=>Expansion,ExpansionCase:()=>ExpansionCase,Expression:()=>Expression,ExpressionBinding:()=>ExpressionBinding,ExpressionStatement:()=>ExpressionStatement,ExpressionType:()=>ExpressionType,ExternalExpr:()=>ExternalExpr,ExternalReference:()=>ExternalReference,FactoryTarget:()=>FactoryTarget$1,FunctionExpr:()=>FunctionExpr,HtmlParser:()=>HtmlParser,HtmlTagDefinition:()=>HtmlTagDefinition,I18NHtmlParser:()=>I18NHtmlParser,IfStmt:()=>IfStmt,ImplicitReceiver:()=>ImplicitReceiver,InstantiateExpr:()=>InstantiateExpr,Interpolation:()=>Interpolation$1,InterpolationConfig:()=>InterpolationConfig,InvokeFunctionExpr:()=>InvokeFunctionExpr,JSDocComment:()=>JSDocComment,JitEvaluator:()=>JitEvaluator,KeyedRead:()=>KeyedRead,KeyedWrite:()=>KeyedWrite,LeadingComment:()=>LeadingComment,Lexer:()=>Lexer,LiteralArray:()=>LiteralArray,LiteralArrayExpr:()=>LiteralArrayExpr,LiteralExpr:()=>LiteralExpr,LiteralMap:()=>LiteralMap,LiteralMapExpr:()=>LiteralMapExpr,LiteralPrimitive:()=>LiteralPrimitive,LocalizedString:()=>LocalizedString,MapType:()=>MapType,MessageBundle:()=>MessageBundle,NONE_TYPE:()=>NONE_TYPE,NO_ERRORS_SCHEMA:()=>NO_ERRORS_SCHEMA,NodeWithI18n:()=>NodeWithI18n,NonNullAssert:()=>NonNullAssert,NotExpr:()=>NotExpr,ParseError:()=>ParseError,ParseErrorLevel:()=>ParseErrorLevel,ParseLocation:()=>ParseLocation,ParseSourceFile:()=>ParseSourceFile,ParseSourceSpan:()=>ParseSourceSpan,ParseSpan:()=>ParseSpan,ParseTreeResult:()=>ParseTreeResult,ParsedEvent:()=>ParsedEvent,ParsedProperty:()=>ParsedProperty,ParsedPropertyType:()=>ParsedPropertyType,ParsedVariable:()=>ParsedVariable,Parser:()=>Parser$1,ParserError:()=>ParserError,PrefixNot:()=>PrefixNot,PropertyRead:()=>PropertyRead,PropertyWrite:()=>PropertyWrite,R3BoundTarget:()=>R3BoundTarget,R3Identifiers:()=>Identifiers,R3NgModuleMetadataKind:()=>R3NgModuleMetadataKind,R3SelectorScopeMode:()=>R3SelectorScopeMode,R3TargetBinder:()=>R3TargetBinder,R3TemplateDependencyKind:()=>R3TemplateDependencyKind,ReadKeyExpr:()=>ReadKeyExpr,ReadPropExpr:()=>ReadPropExpr,ReadVarExpr:()=>ReadVarExpr,RecursiveAstVisitor:()=>RecursiveAstVisitor,RecursiveVisitor:()=>RecursiveVisitor,ResourceLoader:()=>ResourceLoader,ReturnStatement:()=>ReturnStatement,STRING_TYPE:()=>STRING_TYPE,SafeCall:()=>SafeCall,SafeKeyedRead:()=>SafeKeyedRead,SafePropertyRead:()=>SafePropertyRead,SelectorContext:()=>SelectorContext,SelectorListContext:()=>SelectorListContext,SelectorMatcher:()=>SelectorMatcher,Serializer:()=>Serializer,SplitInterpolation:()=>SplitInterpolation,Statement:()=>Statement,StmtModifier:()=>StmtModifier,TagContentType:()=>TagContentType,TaggedTemplateExpr:()=>TaggedTemplateExpr,TemplateBindingParseResult:()=>TemplateBindingParseResult,TemplateLiteral:()=>TemplateLiteral,TemplateLiteralElement:()=>TemplateLiteralElement,Text:()=>Text,ThisReceiver:()=>ThisReceiver,TmplAstBlockNode:()=>BlockNode,TmplAstBoundAttribute:()=>BoundAttribute,TmplAstBoundDeferredTrigger:()=>BoundDeferredTrigger,TmplAstBoundEvent:()=>BoundEvent,TmplAstBoundText:()=>BoundText,TmplAstContent:()=>Content,TmplAstDeferredBlock:()=>DeferredBlock,TmplAstDeferredBlockError:()=>DeferredBlockError,TmplAstDeferredBlockLoading:()=>DeferredBlockLoading,TmplAstDeferredBlockPlaceholder:()=>DeferredBlockPlaceholder,TmplAstDeferredTrigger:()=>DeferredTrigger,TmplAstElement:()=>Element$1,TmplAstForLoopBlock:()=>ForLoopBlock,TmplAstForLoopBlockEmpty:()=>ForLoopBlockEmpty,TmplAstHoverDeferredTrigger:()=>HoverDeferredTrigger,TmplAstIcu:()=>Icu$1,TmplAstIdleDeferredTrigger:()=>IdleDeferredTrigger,TmplAstIfBlock:()=>IfBlock,TmplAstIfBlockBranch:()=>IfBlockBranch,TmplAstImmediateDeferredTrigger:()=>ImmediateDeferredTrigger,TmplAstInteractionDeferredTrigger:()=>InteractionDeferredTrigger,TmplAstRecursiveVisitor:()=>RecursiveVisitor$1,TmplAstReference:()=>Reference,TmplAstSwitchBlock:()=>SwitchBlock,TmplAstSwitchBlockCase:()=>SwitchBlockCase,TmplAstTemplate:()=>Template,TmplAstText:()=>Text$3,TmplAstTextAttribute:()=>TextAttribute,TmplAstTimerDeferredTrigger:()=>TimerDeferredTrigger,TmplAstUnknownBlock:()=>UnknownBlock,TmplAstVariable:()=>Variable,TmplAstViewportDeferredTrigger:()=>ViewportDeferredTrigger,Token:()=>Token,TokenType:()=>TokenType,TransplantedType:()=>TransplantedType,TreeError:()=>TreeError,Type:()=>Type,TypeModifier:()=>TypeModifier,TypeofExpr:()=>TypeofExpr,Unary:()=>Unary,UnaryOperator:()=>UnaryOperator,UnaryOperatorExpr:()=>UnaryOperatorExpr,VERSION:()=>VERSION,VariableBinding:()=>VariableBinding,Version:()=>Version,ViewEncapsulation:()=>ViewEncapsulation,WrappedNodeExpr:()=>WrappedNodeExpr,WriteKeyExpr:()=>WriteKeyExpr,WritePropExpr:()=>WritePropExpr,WriteVarExpr:()=>WriteVarExpr,Xliff:()=>Xliff,Xliff2:()=>Xliff2,Xmb:()=>Xmb,XmlParser:()=>XmlParser,Xtb:()=>Xtb,compileClassDebugInfo:()=>compileClassDebugInfo,compileClassMetadata:()=>compileClassMetadata,compileComponentClassMetadata:()=>compileComponentClassMetadata,compileComponentFromMetadata:()=>compileComponentFromMetadata,compileDeclareClassMetadata:()=>compileDeclareClassMetadata,compileDeclareComponentFromMetadata:()=>compileDeclareComponentFromMetadata,compileDeclareDirectiveFromMetadata:()=>compileDeclareDirectiveFromMetadata,compileDeclareFactoryFunction:()=>compileDeclareFactoryFunction,compileDeclareInjectableFromMetadata:()=>compileDeclareInjectableFromMetadata,compileDeclareInjectorFromMetadata:()=>compileDeclareInjectorFromMetadata,compileDeclareNgModuleFromMetadata:()=>compileDeclareNgModuleFromMetadata,compileDeclarePipeFromMetadata:()=>compileDeclarePipeFromMetadata,compileDirectiveFromMetadata:()=>compileDirectiveFromMetadata,compileFactoryFunction:()=>compileFactoryFunction,compileInjectable:()=>compileInjectable,compileInjector:()=>compileInjector,compileNgModule:()=>compileNgModule,compilePipeFromMetadata:()=>compilePipeFromMetadata,computeMsgId:()=>computeMsgId,core:()=>core,createCssSelectorFromNode:()=>createCssSelectorFromNode,createInjectableType:()=>createInjectableType,createMayBeForwardRefExpression:()=>createMayBeForwardRefExpression,devOnlyGuardedExpression:()=>devOnlyGuardedExpression,emitDistinctChangesOnlyDefaultValue:()=>emitDistinctChangesOnlyDefaultValue,encapsulateStyle:()=>encapsulateStyle,getHtmlTagDefinition:()=>getHtmlTagDefinition,getNsPrefix:()=>getNsPrefix,getSafePropertyAccessString:()=>getSafePropertyAccessString,identifierName:()=>identifierName,isIdentifier:()=>isIdentifier,isNgContainer:()=>isNgContainer,isNgContent:()=>isNgContent,isNgTemplate:()=>isNgTemplate,jsDocComment:()=>jsDocComment,leadingComment:()=>leadingComment,literal:()=>literal,literalMap:()=>literalMap,makeBindingParser:()=>makeBindingParser,mergeNsAndName:()=>mergeNsAndName,outputAst:()=>output_ast,parseHostBindings:()=>parseHostBindings,parseTemplate:()=>parseTemplate,preserveWhitespacesDefault:()=>preserveWhitespacesDefault,publishFacade:()=>publishFacade,r3JitTypeSourceSpan:()=>r3JitTypeSourceSpan,sanitizeIdentifier:()=>sanitizeIdentifier,splitNsName:()=>splitNsName,tmplAstVisitAll:()=>visitAll$1,verifyHostBindings:()=>verifyHostBindings,visitAll:()=>visitAll});const _SELECTOR_REGEXP=new RegExp("(\\:not\\()|(([\\.\\#]?)[-\\w]+)|(?:\\[([-.\\w*\\\\$]+)(?:=([\"']?)([^\\]\"']*)\\5)?\\])|(\\))|(\\s*,\\s*)","g");class CssSelector{constructor(){this.element=null,this.classNames=[],this.attrs=[],this.notSelectors=[]}static parse(selector){const results=[],_addResult=(res,cssSel)=>{cssSel.notSelectors.length>0&&!cssSel.element&&0==cssSel.classNames.length&&0==cssSel.attrs.length&&(cssSel.element="*"),res.push(cssSel)};let match,cssSelector=new CssSelector,current=cssSelector,inNot=!1;for(_SELECTOR_REGEXP.lastIndex=0;match=_SELECTOR_REGEXP.exec(selector);){if(match[1]){if(inNot)throw new Error("Nesting :not in a selector is not allowed");inNot=!0,current=new CssSelector,cssSelector.notSelectors.push(current)}const tag=match[2];if(tag){const prefix=match[3];"#"===prefix?current.addAttribute("id",tag.slice(1)):"."===prefix?current.addClassName(tag.slice(1)):current.setElement(tag)}const attribute=match[4];if(attribute&¤t.addAttribute(current.unescapeAttribute(attribute),match[6]),match[7]&&(inNot=!1,current=cssSelector),match[8]){if(inNot)throw new Error("Multiple selectors in :not are not supported");_addResult(results,cssSelector),cssSelector=current=new CssSelector}}return _addResult(results,cssSelector),results}unescapeAttribute(attr){let result="",escaping=!1;for(let i=0;i0&&result.push("class",this.classNames.join(" ")),result.concat(this.attrs)}addAttribute(name,value=""){this.attrs.push(name,value&&value.toLowerCase()||"")}addClassName(name){this.classNames.push(name.toLowerCase())}toString(){let res=this.element||"";if(this.classNames&&this.classNames.forEach((klass=>res+=`.${klass}`)),this.attrs)for(let i=0;ires+=`:not(${notSelector})`)),res}}class SelectorMatcher{constructor(){this._elementMap=new Map,this._elementPartialMap=new Map,this._classMap=new Map,this._classPartialMap=new Map,this._attrValueMap=new Map,this._attrValuePartialMap=new Map,this._listContexts=[]}static createNotMatcher(notSelectors){const notMatcher=new SelectorMatcher;return notMatcher.addSelectables(notSelectors,null),notMatcher}addSelectables(cssSelectors,callbackCtxt){let listContext=null;cssSelectors.length>1&&(listContext=new SelectorListContext(cssSelectors),this._listContexts.push(listContext));for(let i=0;i0&&(!this.listContext||!this.listContext.alreadyMatched)){result=!SelectorMatcher.createNotMatcher(this.notSelectors).match(cssSelector,null)}return!result||!callback||this.listContext&&this.listContext.alreadyMatched||(this.listContext&&(this.listContext.alreadyMatched=!0),callback(this.selector,this.cbContext)),result}}const emitDistinctChangesOnlyDefaultValue=!0;var ViewEncapsulation,ChangeDetectionStrategy,InputFlags;!function(ViewEncapsulation){ViewEncapsulation[ViewEncapsulation.Emulated=0]="Emulated",ViewEncapsulation[ViewEncapsulation.None=2]="None",ViewEncapsulation[ViewEncapsulation.ShadowDom=3]="ShadowDom"}(ViewEncapsulation||(ViewEncapsulation={})),function(ChangeDetectionStrategy){ChangeDetectionStrategy[ChangeDetectionStrategy.OnPush=0]="OnPush",ChangeDetectionStrategy[ChangeDetectionStrategy.Default=1]="Default"}(ChangeDetectionStrategy||(ChangeDetectionStrategy={})),function(InputFlags){InputFlags[InputFlags.None=0]="None",InputFlags[InputFlags.SignalBased=1]="SignalBased",InputFlags[InputFlags.HasDecoratorInputTransform=2]="HasDecoratorInputTransform"}(InputFlags||(InputFlags={}));const CUSTOM_ELEMENTS_SCHEMA={name:"custom-elements"},NO_ERRORS_SCHEMA={name:"no-errors-schema"},Type$1=Function;var SecurityContext,MissingTranslationStrategy;function parserSelectorToR3Selector(selector){const positive=function parserSelectorToSimpleSelector(selector){const classes=selector.classNames&&selector.classNames.length?[8,...selector.classNames]:[];return[selector.element&&"*"!==selector.element?selector.element:"",...selector.attrs,...classes]}(selector),negative=selector.notSelectors&&selector.notSelectors.length?selector.notSelectors.map((notSelector=>function parserSelectorToNegativeSelector(selector){const classes=selector.classNames&&selector.classNames.length?[8,...selector.classNames]:[];return selector.element?[5,selector.element,...selector.attrs,...classes]:selector.attrs.length?[3,...selector.attrs,...classes]:selector.classNames&&selector.classNames.length?[9,...selector.classNames]:[]}(notSelector))):[];return positive.concat(...negative)}function parseSelectorToR3Selector(selector){return selector?CssSelector.parse(selector).map(parserSelectorToR3Selector):[]}!function(SecurityContext){SecurityContext[SecurityContext.NONE=0]="NONE",SecurityContext[SecurityContext.HTML=1]="HTML",SecurityContext[SecurityContext.STYLE=2]="STYLE",SecurityContext[SecurityContext.SCRIPT=3]="SCRIPT",SecurityContext[SecurityContext.URL=4]="URL",SecurityContext[SecurityContext.RESOURCE_URL=5]="RESOURCE_URL"}(SecurityContext||(SecurityContext={})),function(MissingTranslationStrategy){MissingTranslationStrategy[MissingTranslationStrategy.Error=0]="Error",MissingTranslationStrategy[MissingTranslationStrategy.Warning=1]="Warning",MissingTranslationStrategy[MissingTranslationStrategy.Ignore=2]="Ignore"}(MissingTranslationStrategy||(MissingTranslationStrategy={}));var core=Object.freeze({__proto__:null,emitDistinctChangesOnlyDefaultValue,get ViewEncapsulation(){return ViewEncapsulation},get ChangeDetectionStrategy(){return ChangeDetectionStrategy},get InputFlags(){return InputFlags},CUSTOM_ELEMENTS_SCHEMA,NO_ERRORS_SCHEMA,Type:Type$1,get SecurityContext(){return SecurityContext},get MissingTranslationStrategy(){return MissingTranslationStrategy},parseSelectorToR3Selector});let textEncoder;function digest$1(message){return message.id||computeDigest(message)}function computeDigest(message){return function sha1(str){textEncoder??=new TextEncoder;const utf8=[...textEncoder.encode(str)],words32=function bytesToWords32(bytes,endian){const size=bytes.length+3>>>2,words32=[];for(let i=0;i>5]|=128<<24-len%32,words32[15+(len+64>>9<<4)]=len;for(let i=0;ia.visit(serializerVisitor$1,null)))}(message.nodes).join("")+`[${message.meaning}]`)}function decimalDigest(message){return message.id||computeDecimalDigest(message)}function computeDecimalDigest(message){const visitor=new _SerializerIgnoreIcuExpVisitor;return computeMsgId(message.nodes.map((a=>a.visit(visitor,null))).join(""),message.meaning)}class _SerializerVisitor{visitText(text,context){return text.value}visitContainer(container,context){return`[${container.children.map((child=>child.visit(this))).join(", ")}]`}visitIcu(icu,context){const strCases=Object.keys(icu.cases).map((k=>`${k} {${icu.cases[k].visit(this)}}`));return`{${icu.expression}, ${icu.type}, ${strCases.join(", ")}}`}visitTagPlaceholder(ph,context){return ph.isVoid?``:`${ph.children.map((child=>child.visit(this))).join(", ")}`}visitPlaceholder(ph,context){return ph.value?`${ph.value}`:``}visitIcuPlaceholder(ph,context){return`${ph.value.visit(this)}`}visitBlockPlaceholder(ph,context){return`${ph.children.map((child=>child.visit(this))).join(", ")}`}}const serializerVisitor$1=new _SerializerVisitor;class _SerializerIgnoreIcuExpVisitor extends _SerializerVisitor{visitIcu(icu,context){let strCases=Object.keys(icu.cases).map((k=>`${k} {${icu.cases[k].visit(this)}}`));return`{${icu.type}, ${strCases.join(", ")}}`}}function toHexU32(value){return(value>>>0).toString(16).padStart(8,"0")}function fk(index,b,c,d){return index<20?[b&c|~b&d,1518500249]:index<40?[b^c^d,1859775393]:index<60?[b&c|b&d|c&d,2400959708]:[b^c^d,3395469782]}function fingerprint(str){textEncoder??=new TextEncoder;const utf8=textEncoder.encode(str),view=new DataView(utf8.buffer,utf8.byteOffset,utf8.byteLength);let hi=hash32(view,utf8.length,0),lo=hash32(view,utf8.length,102072);return 0!=hi||0!=lo&&1!=lo||(hi^=319790063,lo^=-1801410264),BigInt.asUintN(32,BigInt(hi))<>BigInt(63)&BigInt(1),msgFingerprint+=fingerprint(meaning)),BigInt.asUintN(63,msgFingerprint).toString()}function hash32(view,length,c){let a=2654435769,b=2654435769,index=0;const end=length-12;for(;index<=end;index+=12){a+=view.getUint32(index,!0),b+=view.getUint32(index+4,!0);const res=mix(a,b,c+=view.getUint32(index+8,!0));a=res[0],b=res[1],c=res[2]}const remainder=length-index;return c+=length,remainder>=4?(a+=view.getUint32(index,!0),index+=4,remainder>=8?(b+=view.getUint32(index,!0),index+=4,remainder>=9&&(c+=view.getUint8(index++)<<8),remainder>=10&&(c+=view.getUint8(index++)<<16),11===remainder&&(c+=view.getUint8(index++)<<24)):(remainder>=5&&(b+=view.getUint8(index++)),remainder>=6&&(b+=view.getUint8(index++)<<8),7===remainder&&(b+=view.getUint8(index++)<<16))):(remainder>=1&&(a+=view.getUint8(index++)),remainder>=2&&(a+=view.getUint8(index++)<<8),3===remainder&&(a+=view.getUint8(index++)<<16)),mix(a,b,c)[2]}function mix(a,b,c){return a-=b,a-=c,b-=c,b-=a^=c>>>13,c-=a,c-=b^=a<<8,a-=b,a-=c^=b>>>13,b-=c,b-=a^=c>>>12,c-=a,c-=b^=a<<16,a-=b,a-=c^=b>>>5,b-=c,b-=a^=c>>>3,c-=a,c-=b^=a<<10,[a,b,c^=b>>>15]}var Endian,TypeModifier,BuiltinTypeName;function add32(a,b){return function add32to64(a,b){const low=(65535&a)+(65535&b),high=(a>>>16)+(b>>>16)+(low>>>16);return[high>>>16,high<<16|65535&low]}(a,b)[1]}function rol32(a,count){return a<>>32-count}function byteAt(bytes,index){return index>=bytes.length?0:bytes[index]}function wordAt(bytes,index,endian){let word=0;if(endian===Endian.Big)for(let i=0;i<4;i++)word+=byteAt(bytes,index+i)<<24-8*i;else for(let i=0;i<4;i++)word+=byteAt(bytes,index+i)<<8*i;return word}!function(Endian){Endian[Endian.Little=0]="Little",Endian[Endian.Big=1]="Big"}(Endian||(Endian={})),function(TypeModifier){TypeModifier[TypeModifier.None=0]="None",TypeModifier[TypeModifier.Const=1]="Const"}(TypeModifier||(TypeModifier={}));class Type{constructor(modifiers=TypeModifier.None){this.modifiers=modifiers}hasModifier(modifier){return!!(this.modifiers&modifier)}}!function(BuiltinTypeName){BuiltinTypeName[BuiltinTypeName.Dynamic=0]="Dynamic",BuiltinTypeName[BuiltinTypeName.Bool=1]="Bool",BuiltinTypeName[BuiltinTypeName.String=2]="String",BuiltinTypeName[BuiltinTypeName.Int=3]="Int",BuiltinTypeName[BuiltinTypeName.Number=4]="Number",BuiltinTypeName[BuiltinTypeName.Function=5]="Function",BuiltinTypeName[BuiltinTypeName.Inferred=6]="Inferred",BuiltinTypeName[BuiltinTypeName.None=7]="None"}(BuiltinTypeName||(BuiltinTypeName={}));class BuiltinType extends Type{constructor(name,modifiers){super(modifiers),this.name=name}visitType(visitor,context){return visitor.visitBuiltinType(this,context)}}class ExpressionType extends Type{constructor(value,modifiers,typeParams=null){super(modifiers),this.value=value,this.typeParams=typeParams}visitType(visitor,context){return visitor.visitExpressionType(this,context)}}class ArrayType extends Type{constructor(of,modifiers){super(modifiers),this.of=of}visitType(visitor,context){return visitor.visitArrayType(this,context)}}class MapType extends Type{constructor(valueType,modifiers){super(modifiers),this.valueType=valueType||null}visitType(visitor,context){return visitor.visitMapType(this,context)}}class TransplantedType extends Type{constructor(type,modifiers){super(modifiers),this.type=type}visitType(visitor,context){return visitor.visitTransplantedType(this,context)}}const DYNAMIC_TYPE=new BuiltinType(BuiltinTypeName.Dynamic),INFERRED_TYPE=new BuiltinType(BuiltinTypeName.Inferred),BOOL_TYPE=new BuiltinType(BuiltinTypeName.Bool),INT_TYPE=new BuiltinType(BuiltinTypeName.Int),NUMBER_TYPE=new BuiltinType(BuiltinTypeName.Number),STRING_TYPE=new BuiltinType(BuiltinTypeName.String),FUNCTION_TYPE=new BuiltinType(BuiltinTypeName.Function),NONE_TYPE=new BuiltinType(BuiltinTypeName.None);var UnaryOperator,BinaryOperator;function nullSafeIsEquivalent(base,other){return null==base||null==other?base==other:base.isEquivalent(other)}function areAllEquivalentPredicate(base,other,equivalentPredicate){const len=base.length;if(len!==other.length)return!1;for(let i=0;ibaseElement.isEquivalent(otherElement)))}!function(UnaryOperator){UnaryOperator[UnaryOperator.Minus=0]="Minus",UnaryOperator[UnaryOperator.Plus=1]="Plus"}(UnaryOperator||(UnaryOperator={})),function(BinaryOperator){BinaryOperator[BinaryOperator.Equals=0]="Equals",BinaryOperator[BinaryOperator.NotEquals=1]="NotEquals",BinaryOperator[BinaryOperator.Identical=2]="Identical",BinaryOperator[BinaryOperator.NotIdentical=3]="NotIdentical",BinaryOperator[BinaryOperator.Minus=4]="Minus",BinaryOperator[BinaryOperator.Plus=5]="Plus",BinaryOperator[BinaryOperator.Divide=6]="Divide",BinaryOperator[BinaryOperator.Multiply=7]="Multiply",BinaryOperator[BinaryOperator.Modulo=8]="Modulo",BinaryOperator[BinaryOperator.And=9]="And",BinaryOperator[BinaryOperator.Or=10]="Or",BinaryOperator[BinaryOperator.BitwiseOr=11]="BitwiseOr",BinaryOperator[BinaryOperator.BitwiseAnd=12]="BitwiseAnd",BinaryOperator[BinaryOperator.Lower=13]="Lower",BinaryOperator[BinaryOperator.LowerEquals=14]="LowerEquals",BinaryOperator[BinaryOperator.Bigger=15]="Bigger",BinaryOperator[BinaryOperator.BiggerEquals=16]="BiggerEquals",BinaryOperator[BinaryOperator.NullishCoalesce=17]="NullishCoalesce"}(BinaryOperator||(BinaryOperator={}));class Expression{constructor(type,sourceSpan){this.type=type||null,this.sourceSpan=sourceSpan||null}prop(name,sourceSpan){return new ReadPropExpr(this,name,null,sourceSpan)}key(index,type,sourceSpan){return new ReadKeyExpr(this,index,type,sourceSpan)}callFn(params,sourceSpan,pure){return new InvokeFunctionExpr(this,params,null,sourceSpan,pure)}instantiate(params,type,sourceSpan){return new InstantiateExpr(this,params,type,sourceSpan)}conditional(trueCase,falseCase=null,sourceSpan){return new ConditionalExpr(this,trueCase,falseCase,null,sourceSpan)}equals(rhs,sourceSpan){return new BinaryOperatorExpr(BinaryOperator.Equals,this,rhs,null,sourceSpan)}notEquals(rhs,sourceSpan){return new BinaryOperatorExpr(BinaryOperator.NotEquals,this,rhs,null,sourceSpan)}identical(rhs,sourceSpan){return new BinaryOperatorExpr(BinaryOperator.Identical,this,rhs,null,sourceSpan)}notIdentical(rhs,sourceSpan){return new BinaryOperatorExpr(BinaryOperator.NotIdentical,this,rhs,null,sourceSpan)}minus(rhs,sourceSpan){return new BinaryOperatorExpr(BinaryOperator.Minus,this,rhs,null,sourceSpan)}plus(rhs,sourceSpan){return new BinaryOperatorExpr(BinaryOperator.Plus,this,rhs,null,sourceSpan)}divide(rhs,sourceSpan){return new BinaryOperatorExpr(BinaryOperator.Divide,this,rhs,null,sourceSpan)}multiply(rhs,sourceSpan){return new BinaryOperatorExpr(BinaryOperator.Multiply,this,rhs,null,sourceSpan)}modulo(rhs,sourceSpan){return new BinaryOperatorExpr(BinaryOperator.Modulo,this,rhs,null,sourceSpan)}and(rhs,sourceSpan){return new BinaryOperatorExpr(BinaryOperator.And,this,rhs,null,sourceSpan)}bitwiseOr(rhs,sourceSpan,parens=!0){return new BinaryOperatorExpr(BinaryOperator.BitwiseOr,this,rhs,null,sourceSpan,parens)}bitwiseAnd(rhs,sourceSpan,parens=!0){return new BinaryOperatorExpr(BinaryOperator.BitwiseAnd,this,rhs,null,sourceSpan,parens)}or(rhs,sourceSpan){return new BinaryOperatorExpr(BinaryOperator.Or,this,rhs,null,sourceSpan)}lower(rhs,sourceSpan){return new BinaryOperatorExpr(BinaryOperator.Lower,this,rhs,null,sourceSpan)}lowerEquals(rhs,sourceSpan){return new BinaryOperatorExpr(BinaryOperator.LowerEquals,this,rhs,null,sourceSpan)}bigger(rhs,sourceSpan){return new BinaryOperatorExpr(BinaryOperator.Bigger,this,rhs,null,sourceSpan)}biggerEquals(rhs,sourceSpan){return new BinaryOperatorExpr(BinaryOperator.BiggerEquals,this,rhs,null,sourceSpan)}isBlank(sourceSpan){return this.equals(TYPED_NULL_EXPR,sourceSpan)}nullishCoalesce(rhs,sourceSpan){return new BinaryOperatorExpr(BinaryOperator.NullishCoalesce,this,rhs,null,sourceSpan)}toStmt(){return new ExpressionStatement(this,null)}}class ReadVarExpr extends Expression{constructor(name,type,sourceSpan){super(type,sourceSpan),this.name=name}isEquivalent(e){return e instanceof ReadVarExpr&&this.name===e.name}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitReadVarExpr(this,context)}clone(){return new ReadVarExpr(this.name,this.type,this.sourceSpan)}set(value){return new WriteVarExpr(this.name,value,null,this.sourceSpan)}}class TypeofExpr extends Expression{constructor(expr,type,sourceSpan){super(type,sourceSpan),this.expr=expr}visitExpression(visitor,context){return visitor.visitTypeofExpr(this,context)}isEquivalent(e){return e instanceof TypeofExpr&&e.expr.isEquivalent(this.expr)}isConstant(){return this.expr.isConstant()}clone(){return new TypeofExpr(this.expr.clone())}}class WrappedNodeExpr extends Expression{constructor(node,type,sourceSpan){super(type,sourceSpan),this.node=node}isEquivalent(e){return e instanceof WrappedNodeExpr&&this.node===e.node}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitWrappedNodeExpr(this,context)}clone(){return new WrappedNodeExpr(this.node,this.type,this.sourceSpan)}}class WriteVarExpr extends Expression{constructor(name,value,type,sourceSpan){super(type||value.type,sourceSpan),this.name=name,this.value=value}isEquivalent(e){return e instanceof WriteVarExpr&&this.name===e.name&&this.value.isEquivalent(e.value)}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitWriteVarExpr(this,context)}clone(){return new WriteVarExpr(this.name,this.value.clone(),this.type,this.sourceSpan)}toDeclStmt(type,modifiers){return new DeclareVarStmt(this.name,this.value,type,modifiers,this.sourceSpan)}toConstDecl(){return this.toDeclStmt(INFERRED_TYPE,StmtModifier.Final)}}class WriteKeyExpr extends Expression{constructor(receiver,index,value,type,sourceSpan){super(type||value.type,sourceSpan),this.receiver=receiver,this.index=index,this.value=value}isEquivalent(e){return e instanceof WriteKeyExpr&&this.receiver.isEquivalent(e.receiver)&&this.index.isEquivalent(e.index)&&this.value.isEquivalent(e.value)}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitWriteKeyExpr(this,context)}clone(){return new WriteKeyExpr(this.receiver.clone(),this.index.clone(),this.value.clone(),this.type,this.sourceSpan)}}class WritePropExpr extends Expression{constructor(receiver,name,value,type,sourceSpan){super(type||value.type,sourceSpan),this.receiver=receiver,this.name=name,this.value=value}isEquivalent(e){return e instanceof WritePropExpr&&this.receiver.isEquivalent(e.receiver)&&this.name===e.name&&this.value.isEquivalent(e.value)}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitWritePropExpr(this,context)}clone(){return new WritePropExpr(this.receiver.clone(),this.name,this.value.clone(),this.type,this.sourceSpan)}}class InvokeFunctionExpr extends Expression{constructor(fn,args,type,sourceSpan,pure=!1){super(type,sourceSpan),this.fn=fn,this.args=args,this.pure=pure}get receiver(){return this.fn}isEquivalent(e){return e instanceof InvokeFunctionExpr&&this.fn.isEquivalent(e.fn)&&areAllEquivalent(this.args,e.args)&&this.pure===e.pure}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitInvokeFunctionExpr(this,context)}clone(){return new InvokeFunctionExpr(this.fn.clone(),this.args.map((arg=>arg.clone())),this.type,this.sourceSpan,this.pure)}}class TaggedTemplateExpr extends Expression{constructor(tag,template,type,sourceSpan){super(type,sourceSpan),this.tag=tag,this.template=template}isEquivalent(e){return e instanceof TaggedTemplateExpr&&this.tag.isEquivalent(e.tag)&&areAllEquivalentPredicate(this.template.elements,e.template.elements,((a,b)=>a.text===b.text))&&areAllEquivalent(this.template.expressions,e.template.expressions)}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitTaggedTemplateExpr(this,context)}clone(){return new TaggedTemplateExpr(this.tag.clone(),this.template.clone(),this.type,this.sourceSpan)}}class InstantiateExpr extends Expression{constructor(classExpr,args,type,sourceSpan){super(type,sourceSpan),this.classExpr=classExpr,this.args=args}isEquivalent(e){return e instanceof InstantiateExpr&&this.classExpr.isEquivalent(e.classExpr)&&areAllEquivalent(this.args,e.args)}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitInstantiateExpr(this,context)}clone(){return new InstantiateExpr(this.classExpr.clone(),this.args.map((arg=>arg.clone())),this.type,this.sourceSpan)}}class LiteralExpr extends Expression{constructor(value,type,sourceSpan){super(type,sourceSpan),this.value=value}isEquivalent(e){return e instanceof LiteralExpr&&this.value===e.value}isConstant(){return!0}visitExpression(visitor,context){return visitor.visitLiteralExpr(this,context)}clone(){return new LiteralExpr(this.value,this.type,this.sourceSpan)}}class TemplateLiteral{constructor(elements,expressions){this.elements=elements,this.expressions=expressions}clone(){return new TemplateLiteral(this.elements.map((el=>el.clone())),this.expressions.map((expr=>expr.clone())))}}class TemplateLiteralElement{constructor(text,sourceSpan,rawText){this.text=text,this.sourceSpan=sourceSpan,this.rawText=rawText??sourceSpan?.toString()??escapeForTemplateLiteral(escapeSlashes(text))}clone(){return new TemplateLiteralElement(this.text,this.sourceSpan,this.rawText)}}class LiteralPiece{constructor(text,sourceSpan){this.text=text,this.sourceSpan=sourceSpan}}class PlaceholderPiece{constructor(text,sourceSpan,associatedMessage){this.text=text,this.sourceSpan=sourceSpan,this.associatedMessage=associatedMessage}}class LocalizedString extends Expression{constructor(metaBlock,messageParts,placeHolderNames,expressions,sourceSpan){super(STRING_TYPE,sourceSpan),this.metaBlock=metaBlock,this.messageParts=messageParts,this.placeHolderNames=placeHolderNames,this.expressions=expressions}isEquivalent(e){return!1}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitLocalizedString(this,context)}clone(){return new LocalizedString(this.metaBlock,this.messageParts,this.placeHolderNames,this.expressions.map((expr=>expr.clone())),this.sourceSpan)}serializeI18nHead(){let metaBlock=this.metaBlock.description||"";return this.metaBlock.meaning&&(metaBlock=`${this.metaBlock.meaning}|${metaBlock}`),this.metaBlock.customId&&(metaBlock=`${metaBlock}@@${this.metaBlock.customId}`),this.metaBlock.legacyIds&&this.metaBlock.legacyIds.forEach((legacyId=>{metaBlock=`${metaBlock}␟${legacyId}`})),createCookedRawString(metaBlock,this.messageParts[0].text,this.getMessagePartSourceSpan(0))}getMessagePartSourceSpan(i){return this.messageParts[i]?.sourceSpan??this.sourceSpan}getPlaceholderSourceSpan(i){return this.placeHolderNames[i]?.sourceSpan??this.expressions[i]?.sourceSpan??this.sourceSpan}serializeI18nTemplatePart(partIndex){const placeholder=this.placeHolderNames[partIndex-1],messagePart=this.messageParts[partIndex];let metaBlock=placeholder.text;return 0===placeholder.associatedMessage?.legacyIds.length&&(metaBlock+=`@@${computeMsgId(placeholder.associatedMessage.messageString,placeholder.associatedMessage.meaning)}`),createCookedRawString(metaBlock,messagePart.text,this.getMessagePartSourceSpan(partIndex))}}const escapeSlashes=str=>str.replace(/\\/g,"\\\\"),escapeStartingColon=str=>str.replace(/^:/,"\\:"),escapeColons=str=>str.replace(/:/g,"\\:"),escapeForTemplateLiteral=str=>str.replace(/`/g,"\\`").replace(/\${/g,"$\\{");function createCookedRawString(metaBlock,messagePart,range){return""===metaBlock?{cooked:messagePart,raw:escapeForTemplateLiteral(escapeStartingColon(escapeSlashes(messagePart))),range}:{cooked:`:${metaBlock}:${messagePart}`,raw:escapeForTemplateLiteral(`:${escapeColons(escapeSlashes(metaBlock))}:${escapeSlashes(messagePart)}`),range}}class ExternalExpr extends Expression{constructor(value,type,typeParams=null,sourceSpan){super(type,sourceSpan),this.value=value,this.typeParams=typeParams}isEquivalent(e){return e instanceof ExternalExpr&&this.value.name===e.value.name&&this.value.moduleName===e.value.moduleName&&this.value.runtime===e.value.runtime}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitExternalExpr(this,context)}clone(){return new ExternalExpr(this.value,this.type,this.typeParams,this.sourceSpan)}}class ExternalReference{constructor(moduleName,name,runtime){this.moduleName=moduleName,this.name=name,this.runtime=runtime}}class ConditionalExpr extends Expression{constructor(condition,trueCase,falseCase=null,type,sourceSpan){super(type||trueCase.type,sourceSpan),this.condition=condition,this.falseCase=falseCase,this.trueCase=trueCase}isEquivalent(e){return e instanceof ConditionalExpr&&this.condition.isEquivalent(e.condition)&&this.trueCase.isEquivalent(e.trueCase)&&nullSafeIsEquivalent(this.falseCase,e.falseCase)}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitConditionalExpr(this,context)}clone(){return new ConditionalExpr(this.condition.clone(),this.trueCase.clone(),this.falseCase?.clone(),this.type,this.sourceSpan)}}class DynamicImportExpr extends Expression{constructor(url,sourceSpan){super(null,sourceSpan),this.url=url}isEquivalent(e){return e instanceof DynamicImportExpr&&this.url===e.url}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitDynamicImportExpr(this,context)}clone(){return new DynamicImportExpr(this.url,this.sourceSpan)}}class NotExpr extends Expression{constructor(condition,sourceSpan){super(BOOL_TYPE,sourceSpan),this.condition=condition}isEquivalent(e){return e instanceof NotExpr&&this.condition.isEquivalent(e.condition)}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitNotExpr(this,context)}clone(){return new NotExpr(this.condition.clone(),this.sourceSpan)}}class FnParam{constructor(name,type=null){this.name=name,this.type=type}isEquivalent(param){return this.name===param.name}clone(){return new FnParam(this.name,this.type)}}class FunctionExpr extends Expression{constructor(params,statements,type,sourceSpan,name){super(type,sourceSpan),this.params=params,this.statements=statements,this.name=name}isEquivalent(e){return(e instanceof FunctionExpr||e instanceof DeclareFunctionStmt)&&areAllEquivalent(this.params,e.params)&&areAllEquivalent(this.statements,e.statements)}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitFunctionExpr(this,context)}toDeclStmt(name,modifiers){return new DeclareFunctionStmt(name,this.params,this.statements,this.type,modifiers,this.sourceSpan)}clone(){return new FunctionExpr(this.params.map((p=>p.clone())),this.statements,this.type,this.sourceSpan,this.name)}}class ArrowFunctionExpr extends Expression{constructor(params,body,type,sourceSpan){super(type,sourceSpan),this.params=params,this.body=body}isEquivalent(e){return!!(e instanceof ArrowFunctionExpr&&areAllEquivalent(this.params,e.params))&&(this.body instanceof Expression&&e.body instanceof Expression?this.body.isEquivalent(e.body):!(!Array.isArray(this.body)||!Array.isArray(e.body))&&areAllEquivalent(this.body,e.body))}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitArrowFunctionExpr(this,context)}clone(){return new ArrowFunctionExpr(this.params.map((p=>p.clone())),Array.isArray(this.body)?this.body:this.body.clone(),this.type,this.sourceSpan)}toDeclStmt(name,modifiers){return new DeclareVarStmt(name,this,INFERRED_TYPE,modifiers,this.sourceSpan)}}class UnaryOperatorExpr extends Expression{constructor(operator,expr,type,sourceSpan,parens=!0){super(type||NUMBER_TYPE,sourceSpan),this.operator=operator,this.expr=expr,this.parens=parens}isEquivalent(e){return e instanceof UnaryOperatorExpr&&this.operator===e.operator&&this.expr.isEquivalent(e.expr)}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitUnaryOperatorExpr(this,context)}clone(){return new UnaryOperatorExpr(this.operator,this.expr.clone(),this.type,this.sourceSpan,this.parens)}}class BinaryOperatorExpr extends Expression{constructor(operator,lhs,rhs,type,sourceSpan,parens=!0){super(type||lhs.type,sourceSpan),this.operator=operator,this.rhs=rhs,this.parens=parens,this.lhs=lhs}isEquivalent(e){return e instanceof BinaryOperatorExpr&&this.operator===e.operator&&this.lhs.isEquivalent(e.lhs)&&this.rhs.isEquivalent(e.rhs)}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitBinaryOperatorExpr(this,context)}clone(){return new BinaryOperatorExpr(this.operator,this.lhs.clone(),this.rhs.clone(),this.type,this.sourceSpan,this.parens)}}class ReadPropExpr extends Expression{constructor(receiver,name,type,sourceSpan){super(type,sourceSpan),this.receiver=receiver,this.name=name}get index(){return this.name}isEquivalent(e){return e instanceof ReadPropExpr&&this.receiver.isEquivalent(e.receiver)&&this.name===e.name}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitReadPropExpr(this,context)}set(value){return new WritePropExpr(this.receiver,this.name,value,null,this.sourceSpan)}clone(){return new ReadPropExpr(this.receiver.clone(),this.name,this.type,this.sourceSpan)}}class ReadKeyExpr extends Expression{constructor(receiver,index,type,sourceSpan){super(type,sourceSpan),this.receiver=receiver,this.index=index}isEquivalent(e){return e instanceof ReadKeyExpr&&this.receiver.isEquivalent(e.receiver)&&this.index.isEquivalent(e.index)}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitReadKeyExpr(this,context)}set(value){return new WriteKeyExpr(this.receiver,this.index,value,null,this.sourceSpan)}clone(){return new ReadKeyExpr(this.receiver.clone(),this.index.clone(),this.type,this.sourceSpan)}}class LiteralArrayExpr extends Expression{constructor(entries,type,sourceSpan){super(type,sourceSpan),this.entries=entries}isConstant(){return this.entries.every((e=>e.isConstant()))}isEquivalent(e){return e instanceof LiteralArrayExpr&&areAllEquivalent(this.entries,e.entries)}visitExpression(visitor,context){return visitor.visitLiteralArrayExpr(this,context)}clone(){return new LiteralArrayExpr(this.entries.map((e=>e.clone())),this.type,this.sourceSpan)}}class LiteralMapEntry{constructor(key,value,quoted){this.key=key,this.value=value,this.quoted=quoted}isEquivalent(e){return this.key===e.key&&this.value.isEquivalent(e.value)}clone(){return new LiteralMapEntry(this.key,this.value.clone(),this.quoted)}}class LiteralMapExpr extends Expression{constructor(entries,type,sourceSpan){super(type,sourceSpan),this.entries=entries,this.valueType=null,type&&(this.valueType=type.valueType)}isEquivalent(e){return e instanceof LiteralMapExpr&&areAllEquivalent(this.entries,e.entries)}isConstant(){return this.entries.every((e=>e.value.isConstant()))}visitExpression(visitor,context){return visitor.visitLiteralMapExpr(this,context)}clone(){const entriesClone=this.entries.map((entry=>entry.clone()));return new LiteralMapExpr(entriesClone,this.type,this.sourceSpan)}}class CommaExpr extends Expression{constructor(parts,sourceSpan){super(parts[parts.length-1].type,sourceSpan),this.parts=parts}isEquivalent(e){return e instanceof CommaExpr&&areAllEquivalent(this.parts,e.parts)}isConstant(){return!1}visitExpression(visitor,context){return visitor.visitCommaExpr(this,context)}clone(){return new CommaExpr(this.parts.map((p=>p.clone())))}}const NULL_EXPR=new LiteralExpr(null,null,null),TYPED_NULL_EXPR=new LiteralExpr(null,INFERRED_TYPE,null);var StmtModifier;!function(StmtModifier){StmtModifier[StmtModifier.None=0]="None",StmtModifier[StmtModifier.Final=1]="Final",StmtModifier[StmtModifier.Private=2]="Private",StmtModifier[StmtModifier.Exported=4]="Exported",StmtModifier[StmtModifier.Static=8]="Static"}(StmtModifier||(StmtModifier={}));class LeadingComment{constructor(text,multiline,trailingNewline){this.text=text,this.multiline=multiline,this.trailingNewline=trailingNewline}toString(){return this.multiline?` ${this.text} `:this.text}}class JSDocComment extends LeadingComment{constructor(tags){super("",!0,!0),this.tags=tags}toString(){return function serializeTags(tags){if(0===tags.length)return"";if(1===tags.length&&tags[0].tagName&&!tags[0].text)return`*${tagToString(tags[0])} `;let out="*\n";for(const tag of tags)out+=" *",out+=tagToString(tag).replace(/\n/g,"\n * "),out+="\n";return out+=" ",out}(this.tags)}}class Statement{constructor(modifiers=StmtModifier.None,sourceSpan=null,leadingComments){this.modifiers=modifiers,this.sourceSpan=sourceSpan,this.leadingComments=leadingComments}hasModifier(modifier){return!!(this.modifiers&modifier)}addLeadingComment(leadingComment){this.leadingComments=this.leadingComments??[],this.leadingComments.push(leadingComment)}}class DeclareVarStmt extends Statement{constructor(name,value,type,modifiers,sourceSpan,leadingComments){super(modifiers,sourceSpan,leadingComments),this.name=name,this.value=value,this.type=type||value&&value.type||null}isEquivalent(stmt){return stmt instanceof DeclareVarStmt&&this.name===stmt.name&&(this.value?!!stmt.value&&this.value.isEquivalent(stmt.value):!stmt.value)}visitStatement(visitor,context){return visitor.visitDeclareVarStmt(this,context)}}class DeclareFunctionStmt extends Statement{constructor(name,params,statements,type,modifiers,sourceSpan,leadingComments){super(modifiers,sourceSpan,leadingComments),this.name=name,this.params=params,this.statements=statements,this.type=type||null}isEquivalent(stmt){return stmt instanceof DeclareFunctionStmt&&areAllEquivalent(this.params,stmt.params)&&areAllEquivalent(this.statements,stmt.statements)}visitStatement(visitor,context){return visitor.visitDeclareFunctionStmt(this,context)}}class ExpressionStatement extends Statement{constructor(expr,sourceSpan,leadingComments){super(StmtModifier.None,sourceSpan,leadingComments),this.expr=expr}isEquivalent(stmt){return stmt instanceof ExpressionStatement&&this.expr.isEquivalent(stmt.expr)}visitStatement(visitor,context){return visitor.visitExpressionStmt(this,context)}}class ReturnStatement extends Statement{constructor(value,sourceSpan=null,leadingComments){super(StmtModifier.None,sourceSpan,leadingComments),this.value=value}isEquivalent(stmt){return stmt instanceof ReturnStatement&&this.value.isEquivalent(stmt.value)}visitStatement(visitor,context){return visitor.visitReturnStmt(this,context)}}class IfStmt extends Statement{constructor(condition,trueCase,falseCase=[],sourceSpan,leadingComments){super(StmtModifier.None,sourceSpan,leadingComments),this.condition=condition,this.trueCase=trueCase,this.falseCase=falseCase}isEquivalent(stmt){return stmt instanceof IfStmt&&this.condition.isEquivalent(stmt.condition)&&areAllEquivalent(this.trueCase,stmt.trueCase)&&areAllEquivalent(this.falseCase,stmt.falseCase)}visitStatement(visitor,context){return visitor.visitIfStmt(this,context)}}function leadingComment(text,multiline=!1,trailingNewline=!0){return new LeadingComment(text,multiline,trailingNewline)}function jsDocComment(tags=[]){return new JSDocComment(tags)}function variable(name,type,sourceSpan){return new ReadVarExpr(name,type,sourceSpan)}function importExpr(id,typeParams=null,sourceSpan){return new ExternalExpr(id,null,typeParams,sourceSpan)}function expressionType(expr,typeModifiers,typeParams){return new ExpressionType(expr,typeModifiers,typeParams)}function typeofExpr(expr){return new TypeofExpr(expr)}function literalArr(values,type,sourceSpan){return new LiteralArrayExpr(values,type,sourceSpan)}function literalMap(values,type=null){return new LiteralMapExpr(values.map((e=>new LiteralMapEntry(e.key,e.value,e.quoted))),type,null)}function not(expr,sourceSpan){return new NotExpr(expr,sourceSpan)}function fn(params,body,type,sourceSpan,name){return new FunctionExpr(params,body,type,sourceSpan,name)}function arrowFn(params,body,type,sourceSpan){return new ArrowFunctionExpr(params,body,type,sourceSpan)}function ifStmt(condition,thenClause,elseClause,sourceSpan,leadingComments){return new IfStmt(condition,thenClause,elseClause,sourceSpan,leadingComments)}function taggedTemplate(tag,template,type,sourceSpan){return new TaggedTemplateExpr(tag,template,type,sourceSpan)}function literal(value,type,sourceSpan){return new LiteralExpr(value,type,sourceSpan)}function localizedString(metaBlock,messageParts,placeholderNames,expressions,sourceSpan){return new LocalizedString(metaBlock,messageParts,placeholderNames,expressions,sourceSpan)}function isNull(exp){return exp instanceof LiteralExpr&&null===exp.value}function tagToString(tag){let out="";if(tag.tagName&&(out+=` @${tag.tagName}`),tag.text){if(tag.text.match(/\/\*|\*\//))throw new Error('JSDoc text cannot contain "/*" and "*/"');out+=" "+tag.text.replace(/@/g,"\\@")}return out}var output_ast=Object.freeze({__proto__:null,get TypeModifier(){return TypeModifier},Type,get BuiltinTypeName(){return BuiltinTypeName},BuiltinType,ExpressionType,ArrayType,MapType,TransplantedType,DYNAMIC_TYPE,INFERRED_TYPE,BOOL_TYPE,INT_TYPE,NUMBER_TYPE,STRING_TYPE,FUNCTION_TYPE,NONE_TYPE,get UnaryOperator(){return UnaryOperator},get BinaryOperator(){return BinaryOperator},nullSafeIsEquivalent,areAllEquivalent,Expression,ReadVarExpr,TypeofExpr,WrappedNodeExpr,WriteVarExpr,WriteKeyExpr,WritePropExpr,InvokeFunctionExpr,TaggedTemplateExpr,InstantiateExpr,LiteralExpr,TemplateLiteral,TemplateLiteralElement,LiteralPiece,PlaceholderPiece,LocalizedString,ExternalExpr,ExternalReference,ConditionalExpr,DynamicImportExpr,NotExpr,FnParam,FunctionExpr,ArrowFunctionExpr,UnaryOperatorExpr,BinaryOperatorExpr,ReadPropExpr,ReadKeyExpr,LiteralArrayExpr,LiteralMapEntry,LiteralMapExpr,CommaExpr,NULL_EXPR,TYPED_NULL_EXPR,get StmtModifier(){return StmtModifier},LeadingComment,JSDocComment,Statement,DeclareVarStmt,DeclareFunctionStmt,ExpressionStatement,ReturnStatement,IfStmt,RecursiveAstVisitor:class RecursiveAstVisitor$1{visitType(ast,context){return ast}visitExpression(ast,context){return ast.type&&ast.type.visitType(this,context),ast}visitBuiltinType(type,context){return this.visitType(type,context)}visitExpressionType(type,context){return type.value.visitExpression(this,context),null!==type.typeParams&&type.typeParams.forEach((param=>this.visitType(param,context))),this.visitType(type,context)}visitArrayType(type,context){return this.visitType(type,context)}visitMapType(type,context){return this.visitType(type,context)}visitTransplantedType(type,context){return type}visitWrappedNodeExpr(ast,context){return ast}visitTypeofExpr(ast,context){return this.visitExpression(ast,context)}visitReadVarExpr(ast,context){return this.visitExpression(ast,context)}visitWriteVarExpr(ast,context){return ast.value.visitExpression(this,context),this.visitExpression(ast,context)}visitWriteKeyExpr(ast,context){return ast.receiver.visitExpression(this,context),ast.index.visitExpression(this,context),ast.value.visitExpression(this,context),this.visitExpression(ast,context)}visitWritePropExpr(ast,context){return ast.receiver.visitExpression(this,context),ast.value.visitExpression(this,context),this.visitExpression(ast,context)}visitDynamicImportExpr(ast,context){return this.visitExpression(ast,context)}visitInvokeFunctionExpr(ast,context){return ast.fn.visitExpression(this,context),this.visitAllExpressions(ast.args,context),this.visitExpression(ast,context)}visitTaggedTemplateExpr(ast,context){return ast.tag.visitExpression(this,context),this.visitAllExpressions(ast.template.expressions,context),this.visitExpression(ast,context)}visitInstantiateExpr(ast,context){return ast.classExpr.visitExpression(this,context),this.visitAllExpressions(ast.args,context),this.visitExpression(ast,context)}visitLiteralExpr(ast,context){return this.visitExpression(ast,context)}visitLocalizedString(ast,context){return this.visitExpression(ast,context)}visitExternalExpr(ast,context){return ast.typeParams&&ast.typeParams.forEach((type=>type.visitType(this,context))),this.visitExpression(ast,context)}visitConditionalExpr(ast,context){return ast.condition.visitExpression(this,context),ast.trueCase.visitExpression(this,context),ast.falseCase.visitExpression(this,context),this.visitExpression(ast,context)}visitNotExpr(ast,context){return ast.condition.visitExpression(this,context),this.visitExpression(ast,context)}visitFunctionExpr(ast,context){return this.visitAllStatements(ast.statements,context),this.visitExpression(ast,context)}visitArrowFunctionExpr(ast,context){return Array.isArray(ast.body)?this.visitAllStatements(ast.body,context):this.visitExpression(ast.body,context),this.visitExpression(ast,context)}visitUnaryOperatorExpr(ast,context){return ast.expr.visitExpression(this,context),this.visitExpression(ast,context)}visitBinaryOperatorExpr(ast,context){return ast.lhs.visitExpression(this,context),ast.rhs.visitExpression(this,context),this.visitExpression(ast,context)}visitReadPropExpr(ast,context){return ast.receiver.visitExpression(this,context),this.visitExpression(ast,context)}visitReadKeyExpr(ast,context){return ast.receiver.visitExpression(this,context),ast.index.visitExpression(this,context),this.visitExpression(ast,context)}visitLiteralArrayExpr(ast,context){return this.visitAllExpressions(ast.entries,context),this.visitExpression(ast,context)}visitLiteralMapExpr(ast,context){return ast.entries.forEach((entry=>entry.value.visitExpression(this,context))),this.visitExpression(ast,context)}visitCommaExpr(ast,context){return this.visitAllExpressions(ast.parts,context),this.visitExpression(ast,context)}visitAllExpressions(exprs,context){exprs.forEach((expr=>expr.visitExpression(this,context)))}visitDeclareVarStmt(stmt,context){return stmt.value&&stmt.value.visitExpression(this,context),stmt.type&&stmt.type.visitType(this,context),stmt}visitDeclareFunctionStmt(stmt,context){return this.visitAllStatements(stmt.statements,context),stmt.type&&stmt.type.visitType(this,context),stmt}visitExpressionStmt(stmt,context){return stmt.expr.visitExpression(this,context),stmt}visitReturnStmt(stmt,context){return stmt.value.visitExpression(this,context),stmt}visitIfStmt(stmt,context){return stmt.condition.visitExpression(this,context),this.visitAllStatements(stmt.trueCase,context),this.visitAllStatements(stmt.falseCase,context),stmt}visitAllStatements(stmts,context){stmts.forEach((stmt=>stmt.visitStatement(this,context)))}},leadingComment,jsDocComment,variable,importExpr,importType:function importType(id,typeParams,typeModifiers){return null!=id?expressionType(importExpr(id,typeParams,null),typeModifiers):null},expressionType,transplantedType:function transplantedType(type,typeModifiers){return new TransplantedType(type,typeModifiers)},typeofExpr,literalArr,literalMap,unary:function unary(operator,expr,type,sourceSpan){return new UnaryOperatorExpr(operator,expr,type,sourceSpan)},not,fn,arrowFn,ifStmt,taggedTemplate,literal,localizedString,isNull});const UNKNOWN_VALUE_KEY=variable(""),KEY_CONTEXT={};class FixupExpression extends Expression{constructor(resolved){super(resolved.type),this.resolved=resolved,this.shared=!1,this.original=resolved}visitExpression(visitor,context){return context===KEY_CONTEXT?this.original.visitExpression(visitor,context):this.resolved.visitExpression(visitor,context)}isEquivalent(e){return e instanceof FixupExpression&&this.resolved.isEquivalent(e.resolved)}isConstant(){return!0}clone(){throw new Error("Not supported.")}fixup(expression){this.resolved=expression,this.shared=!0}}class ConstantPool{constructor(isClosureCompilerEnabled=!1){this.isClosureCompilerEnabled=isClosureCompilerEnabled,this.statements=[],this.literals=new Map,this.literalFactories=new Map,this.sharedConstants=new Map,this._claimedNames=new Map,this.nextNameIndex=0}getConstLiteral(literal,forceShared){if(literal instanceof LiteralExpr&&!isLongStringLiteral(literal)||literal instanceof FixupExpression)return literal;const key=GenericKeyFn.INSTANCE.keyOf(literal);let fixup=this.literals.get(key),newValue=!1;if(fixup||(fixup=new FixupExpression(literal),this.literals.set(key,fixup),newValue=!0),!newValue&&!fixup.shared||newValue&&forceShared){const name=this.freshName();let definition,usage;this.isClosureCompilerEnabled&&isLongStringLiteral(literal)?(definition=variable(name).set(new FunctionExpr([],[new ReturnStatement(literal)])),usage=variable(name).callFn([])):(definition=variable(name).set(literal),usage=variable(name)),this.statements.push(definition.toDeclStmt(INFERRED_TYPE,StmtModifier.Final)),fixup.fixup(usage)}return fixup}getSharedConstant(def,expr){const key=def.keyOf(expr);if(!this.sharedConstants.has(key)){const id=this.freshName();this.sharedConstants.set(key,variable(id)),this.statements.push(def.toSharedConstantDeclaration(id,expr))}return this.sharedConstants.get(key)}getLiteralFactory(literal){if(literal instanceof LiteralArrayExpr){const argumentsForKey=literal.entries.map((e=>e.isConstant()?e:UNKNOWN_VALUE_KEY)),key=GenericKeyFn.INSTANCE.keyOf(literalArr(argumentsForKey));return this._getLiteralFactory(key,literal.entries,(entries=>literalArr(entries)))}{const expressionForKey=literalMap(literal.entries.map((e=>({key:e.key,value:e.value.isConstant()?e.value:UNKNOWN_VALUE_KEY,quoted:e.quoted})))),key=GenericKeyFn.INSTANCE.keyOf(expressionForKey);return this._getLiteralFactory(key,literal.entries.map((e=>e.value)),(entries=>literalMap(entries.map(((value,index)=>({key:literal.entries[index].key,value,quoted:literal.entries[index].quoted}))))))}}getSharedFunctionReference(fn,prefix,useUniqueName=!0){const isArrow=fn instanceof ArrowFunctionExpr;for(const current of this.statements){if(isArrow&¤t instanceof DeclareVarStmt&¤t.value?.isEquivalent(fn))return variable(current.name);if(!isArrow&¤t instanceof DeclareFunctionStmt&&fn.isEquivalent(current))return variable(current.name)}const name=useUniqueName?this.uniqueName(prefix):prefix;return this.statements.push(fn.toDeclStmt(name,StmtModifier.Final)),variable(name)}_getLiteralFactory(key,values,resultMap){let literalFactory=this.literalFactories.get(key);const literalFactoryArguments=values.filter((e=>!e.isConstant()));if(!literalFactory){const resultExpressions=values.map(((e,index)=>e.isConstant()?this.getConstLiteral(e,!0):variable(`a${index}`))),pureFunctionDeclaration=arrowFn(resultExpressions.filter(isVariable).map((e=>new FnParam(e.name,DYNAMIC_TYPE))),resultMap(resultExpressions),INFERRED_TYPE),name=this.freshName();this.statements.push(variable(name).set(pureFunctionDeclaration).toDeclStmt(INFERRED_TYPE,StmtModifier.Final)),literalFactory=variable(name),this.literalFactories.set(key,literalFactory)}return{literalFactory,literalFactoryArguments}}uniqueName(name,alwaysIncludeSuffix=!0){const count=this._claimedNames.get(name)??0,result=0!==count||alwaysIncludeSuffix?`${name}${count}`:`${name}`;return this._claimedNames.set(name,count+1),result}freshName(){return this.uniqueName("_c")}}class GenericKeyFn{static{this.INSTANCE=new GenericKeyFn}keyOf(expr){if(expr instanceof LiteralExpr&&"string"==typeof expr.value)return`"${expr.value}"`;if(expr instanceof LiteralExpr)return String(expr.value);if(expr instanceof LiteralArrayExpr){const entries=[];for(const entry of expr.entries)entries.push(this.keyOf(entry));return`[${entries.join(",")}]`}if(expr instanceof LiteralMapExpr){const entries=[];for(const entry of expr.entries){let key=entry.key;entry.quoted&&(key=`"${key}"`),entries.push(key+":"+this.keyOf(entry.value))}return`{${entries.join(",")}}`}if(expr instanceof ExternalExpr)return`import("${expr.value.moduleName}", ${expr.value.name})`;if(expr instanceof ReadVarExpr)return`read(${expr.name})`;if(expr instanceof TypeofExpr)return`typeof(${this.keyOf(expr.expr)})`;throw new Error(`${this.constructor.name} does not handle expressions of type ${expr.constructor.name}`)}}function isVariable(e){return e instanceof ReadVarExpr}function isLongStringLiteral(expr){return expr instanceof LiteralExpr&&"string"==typeof expr.value&&expr.value.length>=50}const CORE="@angular/core";class Identifiers{static{this.NEW_METHOD="factory"}static{this.TRANSFORM_METHOD="transform"}static{this.PATCH_DEPS="patchedDeps"}static{this.core={name:null,moduleName:CORE}}static{this.namespaceHTML={name:"ɵɵnamespaceHTML",moduleName:CORE}}static{this.namespaceMathML={name:"ɵɵnamespaceMathML",moduleName:CORE}}static{this.namespaceSVG={name:"ɵɵnamespaceSVG",moduleName:CORE}}static{this.element={name:"ɵɵelement",moduleName:CORE}}static{this.elementStart={name:"ɵɵelementStart",moduleName:CORE}}static{this.elementEnd={name:"ɵɵelementEnd",moduleName:CORE}}static{this.advance={name:"ɵɵadvance",moduleName:CORE}}static{this.syntheticHostProperty={name:"ɵɵsyntheticHostProperty",moduleName:CORE}}static{this.syntheticHostListener={name:"ɵɵsyntheticHostListener",moduleName:CORE}}static{this.attribute={name:"ɵɵattribute",moduleName:CORE}}static{this.attributeInterpolate1={name:"ɵɵattributeInterpolate1",moduleName:CORE}}static{this.attributeInterpolate2={name:"ɵɵattributeInterpolate2",moduleName:CORE}}static{this.attributeInterpolate3={name:"ɵɵattributeInterpolate3",moduleName:CORE}}static{this.attributeInterpolate4={name:"ɵɵattributeInterpolate4",moduleName:CORE}}static{this.attributeInterpolate5={name:"ɵɵattributeInterpolate5",moduleName:CORE}}static{this.attributeInterpolate6={name:"ɵɵattributeInterpolate6",moduleName:CORE}}static{this.attributeInterpolate7={name:"ɵɵattributeInterpolate7",moduleName:CORE}}static{this.attributeInterpolate8={name:"ɵɵattributeInterpolate8",moduleName:CORE}}static{this.attributeInterpolateV={name:"ɵɵattributeInterpolateV",moduleName:CORE}}static{this.classProp={name:"ɵɵclassProp",moduleName:CORE}}static{this.elementContainerStart={name:"ɵɵelementContainerStart",moduleName:CORE}}static{this.elementContainerEnd={name:"ɵɵelementContainerEnd",moduleName:CORE}}static{this.elementContainer={name:"ɵɵelementContainer",moduleName:CORE}}static{this.styleMap={name:"ɵɵstyleMap",moduleName:CORE}}static{this.styleMapInterpolate1={name:"ɵɵstyleMapInterpolate1",moduleName:CORE}}static{this.styleMapInterpolate2={name:"ɵɵstyleMapInterpolate2",moduleName:CORE}}static{this.styleMapInterpolate3={name:"ɵɵstyleMapInterpolate3",moduleName:CORE}}static{this.styleMapInterpolate4={name:"ɵɵstyleMapInterpolate4",moduleName:CORE}}static{this.styleMapInterpolate5={name:"ɵɵstyleMapInterpolate5",moduleName:CORE}}static{this.styleMapInterpolate6={name:"ɵɵstyleMapInterpolate6",moduleName:CORE}}static{this.styleMapInterpolate7={name:"ɵɵstyleMapInterpolate7",moduleName:CORE}}static{this.styleMapInterpolate8={name:"ɵɵstyleMapInterpolate8",moduleName:CORE}}static{this.styleMapInterpolateV={name:"ɵɵstyleMapInterpolateV",moduleName:CORE}}static{this.classMap={name:"ɵɵclassMap",moduleName:CORE}}static{this.classMapInterpolate1={name:"ɵɵclassMapInterpolate1",moduleName:CORE}}static{this.classMapInterpolate2={name:"ɵɵclassMapInterpolate2",moduleName:CORE}}static{this.classMapInterpolate3={name:"ɵɵclassMapInterpolate3",moduleName:CORE}}static{this.classMapInterpolate4={name:"ɵɵclassMapInterpolate4",moduleName:CORE}}static{this.classMapInterpolate5={name:"ɵɵclassMapInterpolate5",moduleName:CORE}}static{this.classMapInterpolate6={name:"ɵɵclassMapInterpolate6",moduleName:CORE}}static{this.classMapInterpolate7={name:"ɵɵclassMapInterpolate7",moduleName:CORE}}static{this.classMapInterpolate8={name:"ɵɵclassMapInterpolate8",moduleName:CORE}}static{this.classMapInterpolateV={name:"ɵɵclassMapInterpolateV",moduleName:CORE}}static{this.styleProp={name:"ɵɵstyleProp",moduleName:CORE}}static{this.stylePropInterpolate1={name:"ɵɵstylePropInterpolate1",moduleName:CORE}}static{this.stylePropInterpolate2={name:"ɵɵstylePropInterpolate2",moduleName:CORE}}static{this.stylePropInterpolate3={name:"ɵɵstylePropInterpolate3",moduleName:CORE}}static{this.stylePropInterpolate4={name:"ɵɵstylePropInterpolate4",moduleName:CORE}}static{this.stylePropInterpolate5={name:"ɵɵstylePropInterpolate5",moduleName:CORE}}static{this.stylePropInterpolate6={name:"ɵɵstylePropInterpolate6",moduleName:CORE}}static{this.stylePropInterpolate7={name:"ɵɵstylePropInterpolate7",moduleName:CORE}}static{this.stylePropInterpolate8={name:"ɵɵstylePropInterpolate8",moduleName:CORE}}static{this.stylePropInterpolateV={name:"ɵɵstylePropInterpolateV",moduleName:CORE}}static{this.nextContext={name:"ɵɵnextContext",moduleName:CORE}}static{this.resetView={name:"ɵɵresetView",moduleName:CORE}}static{this.templateCreate={name:"ɵɵtemplate",moduleName:CORE}}static{this.defer={name:"ɵɵdefer",moduleName:CORE}}static{this.deferWhen={name:"ɵɵdeferWhen",moduleName:CORE}}static{this.deferOnIdle={name:"ɵɵdeferOnIdle",moduleName:CORE}}static{this.deferOnImmediate={name:"ɵɵdeferOnImmediate",moduleName:CORE}}static{this.deferOnTimer={name:"ɵɵdeferOnTimer",moduleName:CORE}}static{this.deferOnHover={name:"ɵɵdeferOnHover",moduleName:CORE}}static{this.deferOnInteraction={name:"ɵɵdeferOnInteraction",moduleName:CORE}}static{this.deferOnViewport={name:"ɵɵdeferOnViewport",moduleName:CORE}}static{this.deferPrefetchWhen={name:"ɵɵdeferPrefetchWhen",moduleName:CORE}}static{this.deferPrefetchOnIdle={name:"ɵɵdeferPrefetchOnIdle",moduleName:CORE}}static{this.deferPrefetchOnImmediate={name:"ɵɵdeferPrefetchOnImmediate",moduleName:CORE}}static{this.deferPrefetchOnTimer={name:"ɵɵdeferPrefetchOnTimer",moduleName:CORE}}static{this.deferPrefetchOnHover={name:"ɵɵdeferPrefetchOnHover",moduleName:CORE}}static{this.deferPrefetchOnInteraction={name:"ɵɵdeferPrefetchOnInteraction",moduleName:CORE}}static{this.deferPrefetchOnViewport={name:"ɵɵdeferPrefetchOnViewport",moduleName:CORE}}static{this.deferEnableTimerScheduling={name:"ɵɵdeferEnableTimerScheduling",moduleName:CORE}}static{this.conditional={name:"ɵɵconditional",moduleName:CORE}}static{this.repeater={name:"ɵɵrepeater",moduleName:CORE}}static{this.repeaterCreate={name:"ɵɵrepeaterCreate",moduleName:CORE}}static{this.repeaterTrackByIndex={name:"ɵɵrepeaterTrackByIndex",moduleName:CORE}}static{this.repeaterTrackByIdentity={name:"ɵɵrepeaterTrackByIdentity",moduleName:CORE}}static{this.componentInstance={name:"ɵɵcomponentInstance",moduleName:CORE}}static{this.text={name:"ɵɵtext",moduleName:CORE}}static{this.enableBindings={name:"ɵɵenableBindings",moduleName:CORE}}static{this.disableBindings={name:"ɵɵdisableBindings",moduleName:CORE}}static{this.getCurrentView={name:"ɵɵgetCurrentView",moduleName:CORE}}static{this.textInterpolate={name:"ɵɵtextInterpolate",moduleName:CORE}}static{this.textInterpolate1={name:"ɵɵtextInterpolate1",moduleName:CORE}}static{this.textInterpolate2={name:"ɵɵtextInterpolate2",moduleName:CORE}}static{this.textInterpolate3={name:"ɵɵtextInterpolate3",moduleName:CORE}}static{this.textInterpolate4={name:"ɵɵtextInterpolate4",moduleName:CORE}}static{this.textInterpolate5={name:"ɵɵtextInterpolate5",moduleName:CORE}}static{this.textInterpolate6={name:"ɵɵtextInterpolate6",moduleName:CORE}}static{this.textInterpolate7={name:"ɵɵtextInterpolate7",moduleName:CORE}}static{this.textInterpolate8={name:"ɵɵtextInterpolate8",moduleName:CORE}}static{this.textInterpolateV={name:"ɵɵtextInterpolateV",moduleName:CORE}}static{this.restoreView={name:"ɵɵrestoreView",moduleName:CORE}}static{this.pureFunction0={name:"ɵɵpureFunction0",moduleName:CORE}}static{this.pureFunction1={name:"ɵɵpureFunction1",moduleName:CORE}}static{this.pureFunction2={name:"ɵɵpureFunction2",moduleName:CORE}}static{this.pureFunction3={name:"ɵɵpureFunction3",moduleName:CORE}}static{this.pureFunction4={name:"ɵɵpureFunction4",moduleName:CORE}}static{this.pureFunction5={name:"ɵɵpureFunction5",moduleName:CORE}}static{this.pureFunction6={name:"ɵɵpureFunction6",moduleName:CORE}}static{this.pureFunction7={name:"ɵɵpureFunction7",moduleName:CORE}}static{this.pureFunction8={name:"ɵɵpureFunction8",moduleName:CORE}}static{this.pureFunctionV={name:"ɵɵpureFunctionV",moduleName:CORE}}static{this.pipeBind1={name:"ɵɵpipeBind1",moduleName:CORE}}static{this.pipeBind2={name:"ɵɵpipeBind2",moduleName:CORE}}static{this.pipeBind3={name:"ɵɵpipeBind3",moduleName:CORE}}static{this.pipeBind4={name:"ɵɵpipeBind4",moduleName:CORE}}static{this.pipeBindV={name:"ɵɵpipeBindV",moduleName:CORE}}static{this.hostProperty={name:"ɵɵhostProperty",moduleName:CORE}}static{this.property={name:"ɵɵproperty",moduleName:CORE}}static{this.propertyInterpolate={name:"ɵɵpropertyInterpolate",moduleName:CORE}}static{this.propertyInterpolate1={name:"ɵɵpropertyInterpolate1",moduleName:CORE}}static{this.propertyInterpolate2={name:"ɵɵpropertyInterpolate2",moduleName:CORE}}static{this.propertyInterpolate3={name:"ɵɵpropertyInterpolate3",moduleName:CORE}}static{this.propertyInterpolate4={name:"ɵɵpropertyInterpolate4",moduleName:CORE}}static{this.propertyInterpolate5={name:"ɵɵpropertyInterpolate5",moduleName:CORE}}static{this.propertyInterpolate6={name:"ɵɵpropertyInterpolate6",moduleName:CORE}}static{this.propertyInterpolate7={name:"ɵɵpropertyInterpolate7",moduleName:CORE}}static{this.propertyInterpolate8={name:"ɵɵpropertyInterpolate8",moduleName:CORE}}static{this.propertyInterpolateV={name:"ɵɵpropertyInterpolateV",moduleName:CORE}}static{this.i18n={name:"ɵɵi18n",moduleName:CORE}}static{this.i18nAttributes={name:"ɵɵi18nAttributes",moduleName:CORE}}static{this.i18nExp={name:"ɵɵi18nExp",moduleName:CORE}}static{this.i18nStart={name:"ɵɵi18nStart",moduleName:CORE}}static{this.i18nEnd={name:"ɵɵi18nEnd",moduleName:CORE}}static{this.i18nApply={name:"ɵɵi18nApply",moduleName:CORE}}static{this.i18nPostprocess={name:"ɵɵi18nPostprocess",moduleName:CORE}}static{this.pipe={name:"ɵɵpipe",moduleName:CORE}}static{this.projection={name:"ɵɵprojection",moduleName:CORE}}static{this.projectionDef={name:"ɵɵprojectionDef",moduleName:CORE}}static{this.reference={name:"ɵɵreference",moduleName:CORE}}static{this.inject={name:"ɵɵinject",moduleName:CORE}}static{this.injectAttribute={name:"ɵɵinjectAttribute",moduleName:CORE}}static{this.directiveInject={name:"ɵɵdirectiveInject",moduleName:CORE}}static{this.invalidFactory={name:"ɵɵinvalidFactory",moduleName:CORE}}static{this.invalidFactoryDep={name:"ɵɵinvalidFactoryDep",moduleName:CORE}}static{this.templateRefExtractor={name:"ɵɵtemplateRefExtractor",moduleName:CORE}}static{this.forwardRef={name:"forwardRef",moduleName:CORE}}static{this.resolveForwardRef={name:"resolveForwardRef",moduleName:CORE}}static{this.ɵɵdefineInjectable={name:"ɵɵdefineInjectable",moduleName:CORE}}static{this.declareInjectable={name:"ɵɵngDeclareInjectable",moduleName:CORE}}static{this.InjectableDeclaration={name:"ɵɵInjectableDeclaration",moduleName:CORE}}static{this.resolveWindow={name:"ɵɵresolveWindow",moduleName:CORE}}static{this.resolveDocument={name:"ɵɵresolveDocument",moduleName:CORE}}static{this.resolveBody={name:"ɵɵresolveBody",moduleName:CORE}}static{this.getComponentDepsFactory={name:"ɵɵgetComponentDepsFactory",moduleName:CORE}}static{this.defineComponent={name:"ɵɵdefineComponent",moduleName:CORE}}static{this.declareComponent={name:"ɵɵngDeclareComponent",moduleName:CORE}}static{this.setComponentScope={name:"ɵɵsetComponentScope",moduleName:CORE}}static{this.ChangeDetectionStrategy={name:"ChangeDetectionStrategy",moduleName:CORE}}static{this.ViewEncapsulation={name:"ViewEncapsulation",moduleName:CORE}}static{this.ComponentDeclaration={name:"ɵɵComponentDeclaration",moduleName:CORE}}static{this.FactoryDeclaration={name:"ɵɵFactoryDeclaration",moduleName:CORE}}static{this.declareFactory={name:"ɵɵngDeclareFactory",moduleName:CORE}}static{this.FactoryTarget={name:"ɵɵFactoryTarget",moduleName:CORE}}static{this.defineDirective={name:"ɵɵdefineDirective",moduleName:CORE}}static{this.declareDirective={name:"ɵɵngDeclareDirective",moduleName:CORE}}static{this.DirectiveDeclaration={name:"ɵɵDirectiveDeclaration",moduleName:CORE}}static{this.InjectorDef={name:"ɵɵInjectorDef",moduleName:CORE}}static{this.InjectorDeclaration={name:"ɵɵInjectorDeclaration",moduleName:CORE}}static{this.defineInjector={name:"ɵɵdefineInjector",moduleName:CORE}}static{this.declareInjector={name:"ɵɵngDeclareInjector",moduleName:CORE}}static{this.NgModuleDeclaration={name:"ɵɵNgModuleDeclaration",moduleName:CORE}}static{this.ModuleWithProviders={name:"ModuleWithProviders",moduleName:CORE}}static{this.defineNgModule={name:"ɵɵdefineNgModule",moduleName:CORE}}static{this.declareNgModule={name:"ɵɵngDeclareNgModule",moduleName:CORE}}static{this.setNgModuleScope={name:"ɵɵsetNgModuleScope",moduleName:CORE}}static{this.registerNgModuleType={name:"ɵɵregisterNgModuleType",moduleName:CORE}}static{this.PipeDeclaration={name:"ɵɵPipeDeclaration",moduleName:CORE}}static{this.definePipe={name:"ɵɵdefinePipe",moduleName:CORE}}static{this.declarePipe={name:"ɵɵngDeclarePipe",moduleName:CORE}}static{this.declareClassMetadata={name:"ɵɵngDeclareClassMetadata",moduleName:CORE}}static{this.setClassMetadata={name:"ɵsetClassMetadata",moduleName:CORE}}static{this.setClassMetadataAsync={name:"ɵsetClassMetadataAsync",moduleName:CORE}}static{this.setClassDebugInfo={name:"ɵsetClassDebugInfo",moduleName:CORE}}static{this.queryRefresh={name:"ɵɵqueryRefresh",moduleName:CORE}}static{this.viewQuery={name:"ɵɵviewQuery",moduleName:CORE}}static{this.loadQuery={name:"ɵɵloadQuery",moduleName:CORE}}static{this.contentQuery={name:"ɵɵcontentQuery",moduleName:CORE}}static{this.viewQuerySignal={name:"ɵɵviewQuerySignal",moduleName:CORE}}static{this.contentQuerySignal={name:"ɵɵcontentQuerySignal",moduleName:CORE}}static{this.queryAdvance={name:"ɵɵqueryAdvance",moduleName:CORE}}static{this.twoWayProperty={name:"ɵɵtwoWayProperty",moduleName:CORE}}static{this.twoWayBindingSet={name:"ɵɵtwoWayBindingSet",moduleName:CORE}}static{this.twoWayListener={name:"ɵɵtwoWayListener",moduleName:CORE}}static{this.NgOnChangesFeature={name:"ɵɵNgOnChangesFeature",moduleName:CORE}}static{this.InheritDefinitionFeature={name:"ɵɵInheritDefinitionFeature",moduleName:CORE}}static{this.CopyDefinitionFeature={name:"ɵɵCopyDefinitionFeature",moduleName:CORE}}static{this.StandaloneFeature={name:"ɵɵStandaloneFeature",moduleName:CORE}}static{this.ProvidersFeature={name:"ɵɵProvidersFeature",moduleName:CORE}}static{this.HostDirectivesFeature={name:"ɵɵHostDirectivesFeature",moduleName:CORE}}static{this.InputTransformsFeatureFeature={name:"ɵɵInputTransformsFeature",moduleName:CORE}}static{this.listener={name:"ɵɵlistener",moduleName:CORE}}static{this.getInheritedFactory={name:"ɵɵgetInheritedFactory",moduleName:CORE}}static{this.InputFlags={name:"ɵɵInputFlags",moduleName:CORE}}static{this.sanitizeHtml={name:"ɵɵsanitizeHtml",moduleName:CORE}}static{this.sanitizeStyle={name:"ɵɵsanitizeStyle",moduleName:CORE}}static{this.sanitizeResourceUrl={name:"ɵɵsanitizeResourceUrl",moduleName:CORE}}static{this.sanitizeScript={name:"ɵɵsanitizeScript",moduleName:CORE}}static{this.sanitizeUrl={name:"ɵɵsanitizeUrl",moduleName:CORE}}static{this.sanitizeUrlOrResourceUrl={name:"ɵɵsanitizeUrlOrResourceUrl",moduleName:CORE}}static{this.trustConstantHtml={name:"ɵɵtrustConstantHtml",moduleName:CORE}}static{this.trustConstantResourceUrl={name:"ɵɵtrustConstantResourceUrl",moduleName:CORE}}static{this.validateIframeAttribute={name:"ɵɵvalidateIframeAttribute",moduleName:CORE}}static{this.InputSignalBrandWriteType={name:"ɵINPUT_SIGNAL_BRAND_WRITE_TYPE",moduleName:CORE}}static{this.UnwrapDirectiveSignalInputs={name:"ɵUnwrapDirectiveSignalInputs",moduleName:CORE}}static{this.unwrapWritableSignal={name:"ɵunwrapWritableSignal",moduleName:CORE}}}const DASH_CASE_REGEXP=/-+([a-z0-9])/g;function _splitAt(input,character,defaultValues){const characterIndex=input.indexOf(character);return-1==characterIndex?defaultValues:[input.slice(0,characterIndex).trim(),input.slice(characterIndex+1).trim()]}function error(msg){throw new Error(`Internal Error: ${msg}`)}function stringify(token){if("string"==typeof token)return token;if(Array.isArray(token))return"["+token.map(stringify).join(", ")+"]";if(null==token)return""+token;if(token.overriddenName)return`${token.overriddenName}`;if(token.name)return`${token.name}`;if(!token.toString)return"object";const res=token.toString();if(null==res)return""+res;const newLineIndex=res.indexOf("\n");return-1===newLineIndex?res:res.substring(0,newLineIndex)}class Version{constructor(full){this.full=full;const splits=full.split(".");this.major=splits[0],this.minor=splits[1],this.patch=splits.slice(2).join(".")}}const _global=globalThis;class SourceMapGenerator{constructor(file=null){this.file=file,this.sourcesContent=new Map,this.lines=[],this.lastCol0=0,this.hasMappings=!1}addSource(url,content=null){return this.sourcesContent.has(url)||this.sourcesContent.set(url,content),this}addLine(){return this.lines.push([]),this.lastCol0=0,this}addMapping(col0,sourceUrl,sourceLine0,sourceCol0){if(!this.currentLine)throw new Error("A line must be added before mappings can be added");if(null!=sourceUrl&&!this.sourcesContent.has(sourceUrl))throw new Error(`Unknown source file "${sourceUrl}"`);if(null==col0)throw new Error("The column in the generated code must be provided");if(col0{sourcesIndex.set(url,i),sources.push(url),sourcesContent.push(this.sourcesContent.get(url)||null)}));let mappings="",lastCol0=0,lastSourceIndex=0,lastSourceLine0=0,lastSourceCol0=0;return this.lines.forEach((segments=>{lastCol0=0,mappings+=segments.map((segment=>{let segAsStr=toBase64VLQ(segment.col0-lastCol0);return lastCol0=segment.col0,null!=segment.sourceUrl&&(segAsStr+=toBase64VLQ(sourcesIndex.get(segment.sourceUrl)-lastSourceIndex),lastSourceIndex=sourcesIndex.get(segment.sourceUrl),segAsStr+=toBase64VLQ(segment.sourceLine0-lastSourceLine0),lastSourceLine0=segment.sourceLine0,segAsStr+=toBase64VLQ(segment.sourceCol0-lastSourceCol0),lastSourceCol0=segment.sourceCol0),segAsStr})).join(","),mappings+=";"})),mappings=mappings.slice(0,-1),{file:this.file||"",version:3,sourceRoot:"",sources,sourcesContent,mappings}}toJsComment(){return this.hasMappings?"//# sourceMappingURL=data:application/json;base64,"+function toBase64String(value){let b64="";const encoded=function utf8Encode(str){let encoded=[];for(let index=0;index=55296&&codePoint<=56319&&str.length>index+1){const low=str.charCodeAt(index+1);low>=56320&&low<=57343&&(index++,codePoint=(codePoint-55296<<10)+low-56320+65536)}codePoint<=127?encoded.push(codePoint):codePoint<=2047?encoded.push(codePoint>>6&31|192,63&codePoint|128):codePoint<=65535?encoded.push(codePoint>>12|224,codePoint>>6&63|128,63&codePoint|128):codePoint<=2097151&&encoded.push(codePoint>>18&7|240,codePoint>>12&63|128,codePoint>>6&63|128,63&codePoint|128)}return encoded}(value);for(let i=0;i>2),b64+=toBase64Digit((3&i1)<<4|(null===i2?0:i2>>4)),b64+=null===i2?"=":toBase64Digit((15&i2)<<2|(null===i3?0:i3>>6)),b64+=null===i2||null===i3?"=":toBase64Digit(63&i3)}return b64}(JSON.stringify(this,null,0)):""}}function toBase64VLQ(value){value=value<0?1+(-value<<1):value<<1;let out="";do{let digit=31&value;(value>>=5)>0&&(digit|=32),out+=toBase64Digit(digit)}while(value>0);return out}const B64_DIGITS="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function toBase64Digit(value){if(value<0||value>=64)throw new Error("Can only encode value in the range [0, 63]");return B64_DIGITS[value]}const _SINGLE_QUOTE_ESCAPE_STRING_RE=/'|\\|\n|\r|\$/g,_LEGAL_IDENTIFIER_RE=/^[$A-Z_][0-9A-Z_$]*$/i;class _EmittedLine{constructor(indent){this.indent=indent,this.partsLength=0,this.parts=[],this.srcSpans=[]}}class EmitterVisitorContext{static createRoot(){return new EmitterVisitorContext(0)}constructor(_indent){this._indent=_indent,this._lines=[new _EmittedLine(_indent)]}get _currentLine(){return this._lines[this._lines.length-1]}println(from,lastPart=""){this.print(from||null,lastPart,!0)}lineIsEmpty(){return 0===this._currentLine.parts.length}lineLength(){return 2*this._currentLine.indent+this._currentLine.partsLength}print(from,part,newLine=!1){part.length>0&&(this._currentLine.parts.push(part),this._currentLine.partsLength+=part.length,this._currentLine.srcSpans.push(from&&from.sourceSpan||null)),newLine&&this._lines.push(new _EmittedLine(this._indent))}removeEmptyLastLine(){this.lineIsEmpty()&&this._lines.pop()}incIndent(){this._indent++,this.lineIsEmpty()&&(this._currentLine.indent=this._indent)}decIndent(){this._indent--,this.lineIsEmpty()&&(this._currentLine.indent=this._indent)}toSource(){return this.sourceLines.map((l=>l.parts.length>0?_createIndent(l.indent)+l.parts.join(""):"")).join("\n")}toSourceMapGenerator(genFilePath,startsAtLine=0){const map=new SourceMapGenerator(genFilePath);let firstOffsetMapped=!1;const mapFirstOffsetIfNeeded=()=>{firstOffsetMapped||(map.addSource(genFilePath," ").addMapping(0,genFilePath,0,0),firstOffsetMapped=!0)};for(let i=0;i{map.addLine();const spans=line.srcSpans,parts=line.parts;let col0=2*line.indent,spanIdx=0;for(;spanIdxcolumnsLeft)return emittedLine.srcSpans[partIndex];columnsLeft-=part.length}}return null}get sourceLines(){return this._lines.length&&0===this._lines[this._lines.length-1].parts.length?this._lines.slice(0,-1):this._lines}}class AbstractEmitterVisitor{constructor(_escapeDollarInStrings){this._escapeDollarInStrings=_escapeDollarInStrings}printLeadingComments(stmt,ctx){if(void 0!==stmt.leadingComments)for(const comment of stmt.leadingComments)comment instanceof JSDocComment?ctx.print(stmt,`/*${comment.toString()}*/`,comment.trailingNewline):comment.multiline?ctx.print(stmt,`/* ${comment.text} */`,comment.trailingNewline):comment.text.split("\n").forEach((line=>{ctx.println(stmt,`// ${line}`)}))}visitExpressionStmt(stmt,ctx){return this.printLeadingComments(stmt,ctx),stmt.expr.visitExpression(this,ctx),ctx.println(stmt,";"),null}visitReturnStmt(stmt,ctx){return this.printLeadingComments(stmt,ctx),ctx.print(stmt,"return "),stmt.value.visitExpression(this,ctx),ctx.println(stmt,";"),null}visitIfStmt(stmt,ctx){this.printLeadingComments(stmt,ctx),ctx.print(stmt,"if ("),stmt.condition.visitExpression(this,ctx),ctx.print(stmt,") {");const hasElseCase=null!=stmt.falseCase&&stmt.falseCase.length>0;return stmt.trueCase.length<=1&&!hasElseCase?(ctx.print(stmt," "),this.visitAllStatements(stmt.trueCase,ctx),ctx.removeEmptyLastLine(),ctx.print(stmt," ")):(ctx.println(),ctx.incIndent(),this.visitAllStatements(stmt.trueCase,ctx),ctx.decIndent(),hasElseCase&&(ctx.println(stmt,"} else {"),ctx.incIndent(),this.visitAllStatements(stmt.falseCase,ctx),ctx.decIndent())),ctx.println(stmt,"}"),null}visitWriteVarExpr(expr,ctx){const lineWasEmpty=ctx.lineIsEmpty();return lineWasEmpty||ctx.print(expr,"("),ctx.print(expr,`${expr.name} = `),expr.value.visitExpression(this,ctx),lineWasEmpty||ctx.print(expr,")"),null}visitWriteKeyExpr(expr,ctx){const lineWasEmpty=ctx.lineIsEmpty();return lineWasEmpty||ctx.print(expr,"("),expr.receiver.visitExpression(this,ctx),ctx.print(expr,"["),expr.index.visitExpression(this,ctx),ctx.print(expr,"] = "),expr.value.visitExpression(this,ctx),lineWasEmpty||ctx.print(expr,")"),null}visitWritePropExpr(expr,ctx){const lineWasEmpty=ctx.lineIsEmpty();return lineWasEmpty||ctx.print(expr,"("),expr.receiver.visitExpression(this,ctx),ctx.print(expr,`.${expr.name} = `),expr.value.visitExpression(this,ctx),lineWasEmpty||ctx.print(expr,")"),null}visitInvokeFunctionExpr(expr,ctx){const shouldParenthesize=expr.fn instanceof ArrowFunctionExpr;return shouldParenthesize&&ctx.print(expr.fn,"("),expr.fn.visitExpression(this,ctx),shouldParenthesize&&ctx.print(expr.fn,")"),ctx.print(expr,"("),this.visitAllExpressions(expr.args,ctx,","),ctx.print(expr,")"),null}visitTaggedTemplateExpr(expr,ctx){expr.tag.visitExpression(this,ctx),ctx.print(expr,"`"+expr.template.elements[0].rawText);for(let i=1;i{ctx.print(ast,`${escapeIdentifier(entry.key,this._escapeDollarInStrings,entry.quoted)}:`),entry.value.visitExpression(this,ctx)}),ast.entries,ctx,","),ctx.print(ast,"}"),null}visitCommaExpr(ast,ctx){return ctx.print(ast,"("),this.visitAllExpressions(ast.parts,ctx,","),ctx.print(ast,")"),null}visitAllExpressions(expressions,ctx,separator){this.visitAllObjects((expr=>expr.visitExpression(this,ctx)),expressions,ctx,separator)}visitAllObjects(handler,expressions,ctx,separator){let incrementedIndent=!1;for(let i=0;i0&&(ctx.lineLength()>80?(ctx.print(null,separator,!0),incrementedIndent||(ctx.incIndent(),ctx.incIndent(),incrementedIndent=!0)):ctx.print(null,separator,!1)),handler(expressions[i]);incrementedIndent&&(ctx.decIndent(),ctx.decIndent())}visitAllStatements(statements,ctx){statements.forEach((stmt=>stmt.visitStatement(this,ctx)))}}function escapeIdentifier(input,escapeDollar,alwaysQuote=!0){if(null==input)return null;const body=input.replace(_SINGLE_QUOTE_ESCAPE_STRING_RE,((...match)=>"$"==match[0]?escapeDollar?"\\$":"$":"\n"==match[0]?"\\n":"\r"==match[0]?"\\r":`\\${match[0]}`));return alwaysQuote||!_LEGAL_IDENTIFIER_RE.test(body)?`'${body}'`:body}function _createIndent(count){let res="";for(let i=0;iref.value)));return shouldForwardDeclare?arrowFn([],values):values}function createMayBeForwardRefExpression(expression,forwardRef){return{expression,forwardRef}}function convertFromMaybeForwardRefExpression({expression,forwardRef}){switch(forwardRef){case 0:case 1:return expression;case 2:return generateForwardRef(expression)}}function generateForwardRef(expr){return importExpr(Identifiers.forwardRef).callFn([arrowFn([],expr)])}var R3FactoryDelegateType,FactoryTarget$1,TagContentType;function compileFactoryFunction(meta){const t=variable("t");let baseFactoryVar=null;const typeForCtor=isDelegatedFactoryMetadata(meta)?t:new BinaryOperatorExpr(BinaryOperator.Or,t,meta.type.value);let ctorExpr=null;null!==meta.deps?"invalid"!==meta.deps&&(ctorExpr=new InstantiateExpr(typeForCtor,injectDependencies(meta.deps,meta.target))):(baseFactoryVar=variable(`ɵ${meta.name}_BaseFactory`),ctorExpr=baseFactoryVar.callFn([typeForCtor]));const body=[];let retExpr=null;function makeConditionalFactory(nonCtorExpr){const r=variable("r");body.push(r.set(NULL_EXPR).toDeclStmt());const ctorStmt=null!==ctorExpr?r.set(ctorExpr).toStmt():importExpr(Identifiers.invalidFactory).callFn([]).toStmt();return body.push(ifStmt(t,[ctorStmt],[r.set(nonCtorExpr).toStmt()])),r}if(isDelegatedFactoryMetadata(meta)){const delegateArgs=injectDependencies(meta.delegateDeps,meta.target);retExpr=makeConditionalFactory(new(meta.delegateType===R3FactoryDelegateType.Class?InstantiateExpr:InvokeFunctionExpr)(meta.delegate,delegateArgs))}else retExpr=function isExpressionFactoryMetadata(meta){return void 0!==meta.expression}(meta)?makeConditionalFactory(meta.expression):ctorExpr;if(null===retExpr)body.push(importExpr(Identifiers.invalidFactory).callFn([]).toStmt());else if(null!==baseFactoryVar){const getInheritedFactoryCall=importExpr(Identifiers.getInheritedFactory).callFn([meta.type.value]),baseFactory=new BinaryOperatorExpr(BinaryOperator.Or,baseFactoryVar,baseFactoryVar.set(getInheritedFactoryCall));body.push(new ReturnStatement(baseFactory.callFn([typeForCtor])))}else body.push(new ReturnStatement(retExpr));let factoryFn=fn([new FnParam("t",DYNAMIC_TYPE)],body,INFERRED_TYPE,void 0,`${meta.name}_Factory`);return null!==baseFactoryVar&&(factoryFn=arrowFn([],[new DeclareVarStmt(baseFactoryVar.name),new ReturnStatement(factoryFn)]).callFn([],void 0,!0)),{expression:factoryFn,statements:[],type:createFactoryType(meta)}}function createFactoryType(meta){const ctorDepsType=null!==meta.deps&&"invalid"!==meta.deps?function createCtorDepsType(deps){let hasTypes=!1;const attributeTypes=deps.map((dep=>{const type=function createCtorDepType(dep){const entries=[];null!==dep.attributeNameType&&entries.push({key:"attribute",value:dep.attributeNameType,quoted:!1});dep.optional&&entries.push({key:"optional",value:literal(!0),quoted:!1});dep.host&&entries.push({key:"host",value:literal(!0),quoted:!1});dep.self&&entries.push({key:"self",value:literal(!0),quoted:!1});dep.skipSelf&&entries.push({key:"skipSelf",value:literal(!0),quoted:!1});return entries.length>0?literalMap(entries):null}(dep);return null!==type?(hasTypes=!0,type):literal(null)}));return hasTypes?expressionType(literalArr(attributeTypes)):NONE_TYPE}(meta.deps):NONE_TYPE;return expressionType(importExpr(Identifiers.FactoryDeclaration,[typeWithParameters(meta.type.type,meta.typeArgumentCount),ctorDepsType]))}function injectDependencies(deps,target){return deps.map(((dep,index)=>function compileInjectDependency(dep,target,index){if(null===dep.token)return importExpr(Identifiers.invalidFactoryDep).callFn([literal(index)]);if(null===dep.attributeNameType){const flags=(dep.self?2:0)|(dep.skipSelf?4:0)|(dep.host?1:0)|(dep.optional?8:0)|(target===FactoryTarget$1.Pipe?16:0);let flagsParam=0!==flags||dep.optional?literal(flags):null;const injectArgs=[dep.token];flagsParam&&injectArgs.push(flagsParam);const injectFn=function getInjectFn(target){switch(target){case FactoryTarget$1.Component:case FactoryTarget$1.Directive:case FactoryTarget$1.Pipe:return Identifiers.directiveInject;case FactoryTarget$1.NgModule:case FactoryTarget$1.Injectable:default:return Identifiers.inject}}(target);return importExpr(injectFn).callFn(injectArgs)}return importExpr(Identifiers.injectAttribute).callFn([dep.token])}(dep,target,index)))}function isDelegatedFactoryMetadata(meta){return void 0!==meta.delegateType}function splitNsName(elementName,fatal=!0){if(":"!=elementName[0])return[null,elementName];const colonIndex=elementName.indexOf(":",1);if(-1===colonIndex){if(fatal)throw new Error(`Unsupported format "${elementName}" expecting ":namespace:name"`);return[null,elementName]}return[elementName.slice(1,colonIndex),elementName.slice(colonIndex+1)]}function isNgContainer(tagName){return"ng-container"===splitNsName(tagName)[1]}function isNgContent(tagName){return"ng-content"===splitNsName(tagName)[1]}function isNgTemplate(tagName){return"ng-template"===splitNsName(tagName)[1]}function getNsPrefix(fullName){return null===fullName?null:splitNsName(fullName)[0]}function mergeNsAndName(prefix,localName){return prefix?`:${prefix}:${localName}`:localName}!function(R3FactoryDelegateType){R3FactoryDelegateType[R3FactoryDelegateType.Class=0]="Class",R3FactoryDelegateType[R3FactoryDelegateType.Function=1]="Function"}(R3FactoryDelegateType||(R3FactoryDelegateType={})),function(FactoryTarget){FactoryTarget[FactoryTarget.Directive=0]="Directive",FactoryTarget[FactoryTarget.Component=1]="Component",FactoryTarget[FactoryTarget.Injectable=2]="Injectable",FactoryTarget[FactoryTarget.Pipe=3]="Pipe",FactoryTarget[FactoryTarget.NgModule=4]="NgModule"}(FactoryTarget$1||(FactoryTarget$1={})),function(TagContentType){TagContentType[TagContentType.RAW_TEXT=0]="RAW_TEXT",TagContentType[TagContentType.ESCAPABLE_RAW_TEXT=1]="ESCAPABLE_RAW_TEXT",TagContentType[TagContentType.PARSABLE_DATA=2]="PARSABLE_DATA"}(TagContentType||(TagContentType={}));class Comment$1{constructor(value,sourceSpan){this.value=value,this.sourceSpan=sourceSpan}visit(_visitor){throw new Error("visit() not implemented for Comment")}}class Text$3{constructor(value,sourceSpan){this.value=value,this.sourceSpan=sourceSpan}visit(visitor){return visitor.visitText(this)}}class BoundText{constructor(value,sourceSpan,i18n){this.value=value,this.sourceSpan=sourceSpan,this.i18n=i18n}visit(visitor){return visitor.visitBoundText(this)}}class TextAttribute{constructor(name,value,sourceSpan,keySpan,valueSpan,i18n){this.name=name,this.value=value,this.sourceSpan=sourceSpan,this.keySpan=keySpan,this.valueSpan=valueSpan,this.i18n=i18n}visit(visitor){return visitor.visitTextAttribute(this)}}class BoundAttribute{constructor(name,type,securityContext,value,unit,sourceSpan,keySpan,valueSpan,i18n){this.name=name,this.type=type,this.securityContext=securityContext,this.value=value,this.unit=unit,this.sourceSpan=sourceSpan,this.keySpan=keySpan,this.valueSpan=valueSpan,this.i18n=i18n}static fromBoundElementProperty(prop,i18n){if(void 0===prop.keySpan)throw new Error(`Unexpected state: keySpan must be defined for bound attributes but was not for ${prop.name}: ${prop.sourceSpan}`);return new BoundAttribute(prop.name,prop.type,prop.securityContext,prop.value,prop.unit,prop.sourceSpan,prop.keySpan,prop.valueSpan,i18n)}visit(visitor){return visitor.visitBoundAttribute(this)}}class BoundEvent{constructor(name,type,handler,target,phase,sourceSpan,handlerSpan,keySpan){this.name=name,this.type=type,this.handler=handler,this.target=target,this.phase=phase,this.sourceSpan=sourceSpan,this.handlerSpan=handlerSpan,this.keySpan=keySpan}static fromParsedEvent(event){const target=0===event.type?event.targetOrPhase:null,phase=1===event.type?event.targetOrPhase:null;if(void 0===event.keySpan)throw new Error(`Unexpected state: keySpan must be defined for bound event but was not for ${event.name}: ${event.sourceSpan}`);return new BoundEvent(event.name,event.type,event.handler,target,phase,event.sourceSpan,event.handlerSpan,event.keySpan)}visit(visitor){return visitor.visitBoundEvent(this)}}class Element$1{constructor(name,attributes,inputs,outputs,children,references,sourceSpan,startSourceSpan,endSourceSpan,i18n){this.name=name,this.attributes=attributes,this.inputs=inputs,this.outputs=outputs,this.children=children,this.references=references,this.sourceSpan=sourceSpan,this.startSourceSpan=startSourceSpan,this.endSourceSpan=endSourceSpan,this.i18n=i18n}visit(visitor){return visitor.visitElement(this)}}class DeferredTrigger{constructor(nameSpan,sourceSpan,prefetchSpan,whenOrOnSourceSpan){this.nameSpan=nameSpan,this.sourceSpan=sourceSpan,this.prefetchSpan=prefetchSpan,this.whenOrOnSourceSpan=whenOrOnSourceSpan}visit(visitor){return visitor.visitDeferredTrigger(this)}}class BoundDeferredTrigger extends DeferredTrigger{constructor(value,sourceSpan,prefetchSpan,whenSourceSpan){super(null,sourceSpan,prefetchSpan,whenSourceSpan),this.value=value}}class IdleDeferredTrigger extends DeferredTrigger{}class ImmediateDeferredTrigger extends DeferredTrigger{}class HoverDeferredTrigger extends DeferredTrigger{constructor(reference,nameSpan,sourceSpan,prefetchSpan,onSourceSpan){super(nameSpan,sourceSpan,prefetchSpan,onSourceSpan),this.reference=reference}}class TimerDeferredTrigger extends DeferredTrigger{constructor(delay,nameSpan,sourceSpan,prefetchSpan,onSourceSpan){super(nameSpan,sourceSpan,prefetchSpan,onSourceSpan),this.delay=delay}}class InteractionDeferredTrigger extends DeferredTrigger{constructor(reference,nameSpan,sourceSpan,prefetchSpan,onSourceSpan){super(nameSpan,sourceSpan,prefetchSpan,onSourceSpan),this.reference=reference}}class ViewportDeferredTrigger extends DeferredTrigger{constructor(reference,nameSpan,sourceSpan,prefetchSpan,onSourceSpan){super(nameSpan,sourceSpan,prefetchSpan,onSourceSpan),this.reference=reference}}class BlockNode{constructor(nameSpan,sourceSpan,startSourceSpan,endSourceSpan){this.nameSpan=nameSpan,this.sourceSpan=sourceSpan,this.startSourceSpan=startSourceSpan,this.endSourceSpan=endSourceSpan}}class DeferredBlockPlaceholder extends BlockNode{constructor(children,minimumTime,nameSpan,sourceSpan,startSourceSpan,endSourceSpan,i18n){super(nameSpan,sourceSpan,startSourceSpan,endSourceSpan),this.children=children,this.minimumTime=minimumTime,this.i18n=i18n}visit(visitor){return visitor.visitDeferredBlockPlaceholder(this)}}class DeferredBlockLoading extends BlockNode{constructor(children,afterTime,minimumTime,nameSpan,sourceSpan,startSourceSpan,endSourceSpan,i18n){super(nameSpan,sourceSpan,startSourceSpan,endSourceSpan),this.children=children,this.afterTime=afterTime,this.minimumTime=minimumTime,this.i18n=i18n}visit(visitor){return visitor.visitDeferredBlockLoading(this)}}class DeferredBlockError extends BlockNode{constructor(children,nameSpan,sourceSpan,startSourceSpan,endSourceSpan,i18n){super(nameSpan,sourceSpan,startSourceSpan,endSourceSpan),this.children=children,this.i18n=i18n}visit(visitor){return visitor.visitDeferredBlockError(this)}}class DeferredBlock extends BlockNode{constructor(children,triggers,prefetchTriggers,placeholder,loading,error,nameSpan,sourceSpan,mainBlockSpan,startSourceSpan,endSourceSpan,i18n){super(nameSpan,sourceSpan,startSourceSpan,endSourceSpan),this.children=children,this.placeholder=placeholder,this.loading=loading,this.error=error,this.mainBlockSpan=mainBlockSpan,this.i18n=i18n,this.triggers=triggers,this.prefetchTriggers=prefetchTriggers,this.definedTriggers=Object.keys(triggers),this.definedPrefetchTriggers=Object.keys(prefetchTriggers)}visit(visitor){return visitor.visitDeferredBlock(this)}visitAll(visitor){this.visitTriggers(this.definedTriggers,this.triggers,visitor),this.visitTriggers(this.definedPrefetchTriggers,this.prefetchTriggers,visitor),visitAll$1(visitor,this.children);visitAll$1(visitor,[this.placeholder,this.loading,this.error].filter((x=>null!==x)))}visitTriggers(keys,triggers,visitor){visitAll$1(visitor,keys.map((k=>triggers[k])))}}class SwitchBlock extends BlockNode{constructor(expression,cases,unknownBlocks,sourceSpan,startSourceSpan,endSourceSpan,nameSpan){super(nameSpan,sourceSpan,startSourceSpan,endSourceSpan),this.expression=expression,this.cases=cases,this.unknownBlocks=unknownBlocks}visit(visitor){return visitor.visitSwitchBlock(this)}}class SwitchBlockCase extends BlockNode{constructor(expression,children,sourceSpan,startSourceSpan,endSourceSpan,nameSpan,i18n){super(nameSpan,sourceSpan,startSourceSpan,endSourceSpan),this.expression=expression,this.children=children,this.i18n=i18n}visit(visitor){return visitor.visitSwitchBlockCase(this)}}class ForLoopBlock extends BlockNode{constructor(item,expression,trackBy,trackKeywordSpan,contextVariables,children,empty,sourceSpan,mainBlockSpan,startSourceSpan,endSourceSpan,nameSpan,i18n){super(nameSpan,sourceSpan,startSourceSpan,endSourceSpan),this.item=item,this.expression=expression,this.trackBy=trackBy,this.trackKeywordSpan=trackKeywordSpan,this.contextVariables=contextVariables,this.children=children,this.empty=empty,this.mainBlockSpan=mainBlockSpan,this.i18n=i18n}visit(visitor){return visitor.visitForLoopBlock(this)}}class ForLoopBlockEmpty extends BlockNode{constructor(children,sourceSpan,startSourceSpan,endSourceSpan,nameSpan,i18n){super(nameSpan,sourceSpan,startSourceSpan,endSourceSpan),this.children=children,this.i18n=i18n}visit(visitor){return visitor.visitForLoopBlockEmpty(this)}}class IfBlock extends BlockNode{constructor(branches,sourceSpan,startSourceSpan,endSourceSpan,nameSpan){super(nameSpan,sourceSpan,startSourceSpan,endSourceSpan),this.branches=branches}visit(visitor){return visitor.visitIfBlock(this)}}class IfBlockBranch extends BlockNode{constructor(expression,children,expressionAlias,sourceSpan,startSourceSpan,endSourceSpan,nameSpan,i18n){super(nameSpan,sourceSpan,startSourceSpan,endSourceSpan),this.expression=expression,this.children=children,this.expressionAlias=expressionAlias,this.i18n=i18n}visit(visitor){return visitor.visitIfBlockBranch(this)}}class UnknownBlock{constructor(name,sourceSpan,nameSpan){this.name=name,this.sourceSpan=sourceSpan,this.nameSpan=nameSpan}visit(visitor){return visitor.visitUnknownBlock(this)}}class Template{constructor(tagName,attributes,inputs,outputs,templateAttrs,children,references,variables,sourceSpan,startSourceSpan,endSourceSpan,i18n){this.tagName=tagName,this.attributes=attributes,this.inputs=inputs,this.outputs=outputs,this.templateAttrs=templateAttrs,this.children=children,this.references=references,this.variables=variables,this.sourceSpan=sourceSpan,this.startSourceSpan=startSourceSpan,this.endSourceSpan=endSourceSpan,this.i18n=i18n}visit(visitor){return visitor.visitTemplate(this)}}class Content{constructor(selector,attributes,sourceSpan,i18n){this.selector=selector,this.attributes=attributes,this.sourceSpan=sourceSpan,this.i18n=i18n,this.name="ng-content"}visit(visitor){return visitor.visitContent(this)}}class Variable{constructor(name,value,sourceSpan,keySpan,valueSpan){this.name=name,this.value=value,this.sourceSpan=sourceSpan,this.keySpan=keySpan,this.valueSpan=valueSpan}visit(visitor){return visitor.visitVariable(this)}}class Reference{constructor(name,value,sourceSpan,keySpan,valueSpan){this.name=name,this.value=value,this.sourceSpan=sourceSpan,this.keySpan=keySpan,this.valueSpan=valueSpan}visit(visitor){return visitor.visitReference(this)}}class Icu$1{constructor(vars,placeholders,sourceSpan,i18n){this.vars=vars,this.placeholders=placeholders,this.sourceSpan=sourceSpan,this.i18n=i18n}visit(visitor){return visitor.visitIcu(this)}}class RecursiveVisitor$1{visitElement(element){visitAll$1(this,element.attributes),visitAll$1(this,element.inputs),visitAll$1(this,element.outputs),visitAll$1(this,element.children),visitAll$1(this,element.references)}visitTemplate(template){visitAll$1(this,template.attributes),visitAll$1(this,template.inputs),visitAll$1(this,template.outputs),visitAll$1(this,template.children),visitAll$1(this,template.references),visitAll$1(this,template.variables)}visitDeferredBlock(deferred){deferred.visitAll(this)}visitDeferredBlockPlaceholder(block){visitAll$1(this,block.children)}visitDeferredBlockError(block){visitAll$1(this,block.children)}visitDeferredBlockLoading(block){visitAll$1(this,block.children)}visitSwitchBlock(block){visitAll$1(this,block.cases)}visitSwitchBlockCase(block){visitAll$1(this,block.children)}visitForLoopBlock(block){const blockItems=[block.item,...Object.values(block.contextVariables),...block.children];block.empty&&blockItems.push(block.empty),visitAll$1(this,blockItems)}visitForLoopBlockEmpty(block){visitAll$1(this,block.children)}visitIfBlock(block){visitAll$1(this,block.branches)}visitIfBlockBranch(block){const blockItems=block.children;block.expressionAlias&&blockItems.push(block.expressionAlias),visitAll$1(this,blockItems)}visitContent(content){}visitVariable(variable){}visitReference(reference){}visitTextAttribute(attribute){}visitBoundAttribute(attribute){}visitBoundEvent(attribute){}visitText(text){}visitBoundText(text){}visitIcu(icu){}visitDeferredTrigger(trigger){}visitUnknownBlock(block){}}function visitAll$1(visitor,nodes){const result=[];if(visitor.visit)for(const node of nodes)visitor.visit(node)||node.visit(visitor);else for(const node of nodes){const newNode=node.visit(visitor);newNode&&result.push(newNode)}return result}class Message{constructor(nodes,placeholders,placeholderToMessage,meaning,description,customId){this.nodes=nodes,this.placeholders=placeholders,this.placeholderToMessage=placeholderToMessage,this.meaning=meaning,this.description=description,this.customId=customId,this.legacyIds=[],this.id=this.customId,this.messageString=function serializeMessage(messageNodes){const visitor=new LocalizeMessageStringVisitor;return messageNodes.map((n=>n.visit(visitor))).join("")}(this.nodes),nodes.length?this.sources=[{filePath:nodes[0].sourceSpan.start.file.url,startLine:nodes[0].sourceSpan.start.line+1,startCol:nodes[0].sourceSpan.start.col+1,endLine:nodes[nodes.length-1].sourceSpan.end.line+1,endCol:nodes[0].sourceSpan.start.col+1}]:this.sources=[]}}class Text$2{constructor(value,sourceSpan){this.value=value,this.sourceSpan=sourceSpan}visit(visitor,context){return visitor.visitText(this,context)}}class Container{constructor(children,sourceSpan){this.children=children,this.sourceSpan=sourceSpan}visit(visitor,context){return visitor.visitContainer(this,context)}}class Icu{constructor(expression,type,cases,sourceSpan,expressionPlaceholder){this.expression=expression,this.type=type,this.cases=cases,this.sourceSpan=sourceSpan,this.expressionPlaceholder=expressionPlaceholder}visit(visitor,context){return visitor.visitIcu(this,context)}}class TagPlaceholder{constructor(tag,attrs,startName,closeName,children,isVoid,sourceSpan,startSourceSpan,endSourceSpan){this.tag=tag,this.attrs=attrs,this.startName=startName,this.closeName=closeName,this.children=children,this.isVoid=isVoid,this.sourceSpan=sourceSpan,this.startSourceSpan=startSourceSpan,this.endSourceSpan=endSourceSpan}visit(visitor,context){return visitor.visitTagPlaceholder(this,context)}}class Placeholder{constructor(value,name,sourceSpan){this.value=value,this.name=name,this.sourceSpan=sourceSpan}visit(visitor,context){return visitor.visitPlaceholder(this,context)}}class IcuPlaceholder{constructor(value,name,sourceSpan){this.value=value,this.name=name,this.sourceSpan=sourceSpan}visit(visitor,context){return visitor.visitIcuPlaceholder(this,context)}}class BlockPlaceholder{constructor(name,parameters,startName,closeName,children,sourceSpan,startSourceSpan,endSourceSpan){this.name=name,this.parameters=parameters,this.startName=startName,this.closeName=closeName,this.children=children,this.sourceSpan=sourceSpan,this.startSourceSpan=startSourceSpan,this.endSourceSpan=endSourceSpan}visit(visitor,context){return visitor.visitBlockPlaceholder(this,context)}}class CloneVisitor{visitText(text,context){return new Text$2(text.value,text.sourceSpan)}visitContainer(container,context){const children=container.children.map((n=>n.visit(this,context)));return new Container(children,container.sourceSpan)}visitIcu(icu,context){const cases={};Object.keys(icu.cases).forEach((key=>cases[key]=icu.cases[key].visit(this,context)));return new Icu(icu.expression,icu.type,cases,icu.sourceSpan,icu.expressionPlaceholder)}visitTagPlaceholder(ph,context){const children=ph.children.map((n=>n.visit(this,context)));return new TagPlaceholder(ph.tag,ph.attrs,ph.startName,ph.closeName,children,ph.isVoid,ph.sourceSpan,ph.startSourceSpan,ph.endSourceSpan)}visitPlaceholder(ph,context){return new Placeholder(ph.value,ph.name,ph.sourceSpan)}visitIcuPlaceholder(ph,context){return new IcuPlaceholder(ph.value,ph.name,ph.sourceSpan)}visitBlockPlaceholder(ph,context){const children=ph.children.map((n=>n.visit(this,context)));return new BlockPlaceholder(ph.name,ph.parameters,ph.startName,ph.closeName,children,ph.sourceSpan,ph.startSourceSpan,ph.endSourceSpan)}}class RecurseVisitor{visitText(text,context){}visitContainer(container,context){container.children.forEach((child=>child.visit(this)))}visitIcu(icu,context){Object.keys(icu.cases).forEach((k=>{icu.cases[k].visit(this)}))}visitTagPlaceholder(ph,context){ph.children.forEach((child=>child.visit(this)))}visitPlaceholder(ph,context){}visitIcuPlaceholder(ph,context){}visitBlockPlaceholder(ph,context){ph.children.forEach((child=>child.visit(this)))}}class LocalizeMessageStringVisitor{visitText(text){return text.value}visitContainer(container){return container.children.map((child=>child.visit(this))).join("")}visitIcu(icu){const strCases=Object.keys(icu.cases).map((k=>`${k} {${icu.cases[k].visit(this)}}`));return`{${icu.expressionPlaceholder}, ${icu.type}, ${strCases.join(" ")}}`}visitTagPlaceholder(ph){const children=ph.children.map((child=>child.visit(this))).join("");return`{$${ph.startName}}${children}{$${ph.closeName}}`}visitPlaceholder(ph){return`{$${ph.name}}`}visitIcuPlaceholder(ph){return`{$${ph.name}}`}visitBlockPlaceholder(ph){const children=ph.children.map((child=>child.visit(this))).join("");return`{$${ph.startName}}${children}{$${ph.closeName}}`}}class Serializer{createNameMapper(message){return null}}class SimplePlaceholderMapper extends RecurseVisitor{constructor(message,mapName){super(),this.mapName=mapName,this.internalToPublic={},this.publicToNextId={},this.publicToInternal={},message.nodes.forEach((node=>node.visit(this)))}toPublicName(internalName){return this.internalToPublic.hasOwnProperty(internalName)?this.internalToPublic[internalName]:null}toInternalName(publicName){return this.publicToInternal.hasOwnProperty(publicName)?this.publicToInternal[publicName]:null}visitText(text,context){return null}visitTagPlaceholder(ph,context){this.visitPlaceholderName(ph.startName),super.visitTagPlaceholder(ph,context),this.visitPlaceholderName(ph.closeName)}visitPlaceholder(ph,context){this.visitPlaceholderName(ph.name)}visitBlockPlaceholder(ph,context){this.visitPlaceholderName(ph.startName),super.visitBlockPlaceholder(ph,context),this.visitPlaceholderName(ph.closeName)}visitIcuPlaceholder(ph,context){this.visitPlaceholderName(ph.name)}visitPlaceholderName(internalName){if(!internalName||this.internalToPublic.hasOwnProperty(internalName))return;let publicName=this.mapName(internalName);if(this.publicToInternal.hasOwnProperty(publicName)){const nextId=this.publicToNextId[publicName];this.publicToNextId[publicName]=nextId+1,publicName=`${publicName}_${nextId}`}else this.publicToNextId[publicName]=1;this.internalToPublic[internalName]=publicName,this.publicToInternal[publicName]=internalName}}const _visitor=new class _Visitor$2{visitTag(tag){const strAttrs=this._serializeAttributes(tag.attrs);if(0==tag.children.length)return`<${tag.name}${strAttrs}/>`;const strChildren=tag.children.map((node=>node.visit(this)));return`<${tag.name}${strAttrs}>${strChildren.join("")}`}visitText(text){return text.value}visitDeclaration(decl){return``}_serializeAttributes(attrs){const strAttrs=Object.keys(attrs).map((name=>`${name}="${attrs[name]}"`)).join(" ");return strAttrs.length>0?" "+strAttrs:""}visitDoctype(doctype){return``}};function serialize(nodes){return nodes.map((node=>node.visit(_visitor))).join("")}class Declaration{constructor(unescapedAttrs){this.attrs={},Object.keys(unescapedAttrs).forEach((k=>{this.attrs[k]=escapeXml(unescapedAttrs[k])}))}visit(visitor){return visitor.visitDeclaration(this)}}class Doctype{constructor(rootTag,dtd){this.rootTag=rootTag,this.dtd=dtd}visit(visitor){return visitor.visitDoctype(this)}}class Tag{constructor(name,unescapedAttrs={},children=[]){this.name=name,this.children=children,this.attrs={},Object.keys(unescapedAttrs).forEach((k=>{this.attrs[k]=escapeXml(unescapedAttrs[k])}))}visit(visitor){return visitor.visitTag(this)}}class Text$1{constructor(unescapedValue){this.value=escapeXml(unescapedValue)}visit(visitor){return visitor.visitText(this)}}class CR extends Text$1{constructor(ws=0){super(`\n${new Array(ws+1).join(" ")}`)}}const _ESCAPED_CHARS=[[/&/g,"&"],[/"/g,"""],[/'/g,"'"],[//g,">"]];function escapeXml(text){return _ESCAPED_CHARS.reduce(((text,entry)=>text.replace(entry[0],entry[1])),text)}class Xmb extends Serializer{write(messages,locale){const exampleVisitor=new ExampleVisitor,visitor=new _Visitor$1;let rootNode=new Tag("messagebundle");return messages.forEach((message=>{const attrs={id:message.id};message.description&&(attrs.desc=message.description),message.meaning&&(attrs.meaning=message.meaning);let sourceTags=[];message.sources.forEach((source=>{sourceTags.push(new Tag("source",{},[new Text$1(`${source.filePath}:${source.startLine}${source.endLine!==source.startLine?","+source.endLine:""}`)]))})),rootNode.children.push(new CR(2),new Tag("msg",attrs,[...sourceTags,...visitor.serialize(message.nodes)]))})),rootNode.children.push(new CR),serialize([new Declaration({version:"1.0",encoding:"UTF-8"}),new CR,new Doctype("messagebundle",'\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n'),new CR,exampleVisitor.addDefaultExamples(rootNode),new CR])}load(content,url){throw new Error("Unsupported")}digest(message){return digest(message)}createNameMapper(message){return new SimplePlaceholderMapper(message,toPublicName)}}class _Visitor$1{visitText(text,context){return[new Text$1(text.value)]}visitContainer(container,context){const nodes=[];return container.children.forEach((node=>nodes.push(...node.visit(this)))),nodes}visitIcu(icu,context){const nodes=[new Text$1(`{${icu.expressionPlaceholder}, ${icu.type}, `)];return Object.keys(icu.cases).forEach((c=>{nodes.push(new Text$1(`${c} {`),...icu.cases[c].visit(this),new Text$1("} "))})),nodes.push(new Text$1("}")),nodes}visitTagPlaceholder(ph,context){const startTagAsText=new Text$1(`<${ph.tag}>`),startEx=new Tag("ex",{},[startTagAsText]),startTagPh=new Tag("ph",{name:ph.startName},[startEx,startTagAsText]);if(ph.isVoid)return[startTagPh];const closeTagAsText=new Text$1(``),closeEx=new Tag("ex",{},[closeTagAsText]),closeTagPh=new Tag("ph",{name:ph.closeName},[closeEx,closeTagAsText]);return[startTagPh,...this.serialize(ph.children),closeTagPh]}visitPlaceholder(ph,context){const interpolationAsText=new Text$1(`{{${ph.value}}}`),exTag=new Tag("ex",{},[interpolationAsText]);return[new Tag("ph",{name:ph.name},[exTag,interpolationAsText])]}visitBlockPlaceholder(ph,context){const startAsText=new Text$1(`@${ph.name}`),startEx=new Tag("ex",{},[startAsText]),startTagPh=new Tag("ph",{name:ph.startName},[startEx,startAsText]),closeAsText=new Text$1("}"),closeEx=new Tag("ex",{},[closeAsText]),closeTagPh=new Tag("ph",{name:ph.closeName},[closeEx,closeAsText]);return[startTagPh,...this.serialize(ph.children),closeTagPh]}visitIcuPlaceholder(ph,context){const icuExpression=ph.value.expression,icuType=ph.value.type,icuCases=Object.keys(ph.value.cases).map((value=>value+" {...}")).join(" "),icuAsText=new Text$1(`{${icuExpression}, ${icuType}, ${icuCases}}`),exTag=new Tag("ex",{},[icuAsText]);return[new Tag("ph",{name:ph.name},[exTag,icuAsText])]}serialize(nodes){return[].concat(...nodes.map((node=>node.visit(this))))}}function digest(message){return decimalDigest(message)}class ExampleVisitor{addDefaultExamples(node){return node.visit(this),node}visitTag(tag){if("ph"===tag.name){if(!tag.children||0==tag.children.length){const exText=new Text$1(tag.attrs.name||"...");tag.children=[new Tag("ex",{},[exText])]}}else tag.children&&tag.children.forEach((node=>node.visit(this)))}visitText(text){}visitDeclaration(decl){}visitDoctype(doctype){}}function toPublicName(internalName){return internalName.toUpperCase().replace(/[^A-Z0-9_]/g,"_")}const I18N_ATTR="i18n",I18N_ATTR_PREFIX="i18n-";function isI18nAttribute(name){return name===I18N_ATTR||name.startsWith(I18N_ATTR_PREFIX)}function isI18nRootNode(meta){return meta instanceof Message}function isSingleI18nIcu(meta){return isI18nRootNode(meta)&&1===meta.nodes.length&&meta.nodes[0]instanceof Icu}function hasI18nMeta(node){return!!node.i18n}function icuFromI18nMessage(message){return message.nodes[0]}function wrapI18nPlaceholder(content,contextId=0){return`�${content}${contextId>0?`:${contextId}`:""}�`}function getSeqNumberGenerator(startsAt=0){let current=startsAt;return()=>current++}function placeholdersToParams(placeholders){const params={};return placeholders.forEach(((values,key)=>{params[key]=literal(values.length>1?`[${values.join("|")}]`:values[0])})),params}function updatePlaceholderMap(map,name,...values){const current=map.get(name)||[];current.push(...values),map.set(name,current)}function assembleBoundTextPlaceholders(meta,bindingStartIndex=0,contextId=0){const startIdx=bindingStartIndex,placeholders=new Map,node=meta instanceof Message?meta.nodes.find((node=>node instanceof Container)):meta;return node&&node.children.filter((child=>child instanceof Placeholder)).forEach(((child,idx)=>{const content=wrapI18nPlaceholder(startIdx+idx,contextId);updatePlaceholderMap(placeholders,child.name,content)})),placeholders}function formatI18nPlaceholderNamesInMap(params={},useCamelCase){const _params={};return params&&Object.keys(params).length&&Object.keys(params).forEach((key=>_params[formatI18nPlaceholderName(key,useCamelCase)]=params[key])),_params}function formatI18nPlaceholderName(name,useCamelCase=!0){const publicName=toPublicName(name);if(!useCamelCase)return publicName;const chunks=publicName.split("_");if(1===chunks.length)return name.toLowerCase();let postfix;/^\d+$/.test(chunks[chunks.length-1])&&(postfix=chunks.pop());let raw=chunks.shift().toLowerCase();return chunks.length&&(raw+=chunks.map((c=>c.charAt(0).toUpperCase()+c.slice(1).toLowerCase())).join("")),postfix?`${raw}_${postfix}`:raw}function getTranslationConstPrefix(extra){return`MSG_${extra}`.toUpperCase()}function declareI18nVariable(variable){return new DeclareVarStmt(variable.name,void 0,INFERRED_TYPE,void 0,variable.sourceSpan)}const UNSAFE_OBJECT_KEY_NAME_REGEXP=/[-.]/,TEMPORARY_NAME="_t",CONTEXT_NAME="ctx",RENDER_FLAGS="rf",MAX_CHAIN_LENGTH=500,CHAINABLE_INSTRUCTIONS=new Set([Identifiers.element,Identifiers.elementStart,Identifiers.elementEnd,Identifiers.elementContainer,Identifiers.elementContainerStart,Identifiers.elementContainerEnd,Identifiers.i18nExp,Identifiers.listener,Identifiers.classProp,Identifiers.syntheticHostListener,Identifiers.hostProperty,Identifiers.syntheticHostProperty,Identifiers.property,Identifiers.propertyInterpolate1,Identifiers.propertyInterpolate2,Identifiers.propertyInterpolate3,Identifiers.propertyInterpolate4,Identifiers.propertyInterpolate5,Identifiers.propertyInterpolate6,Identifiers.propertyInterpolate7,Identifiers.propertyInterpolate8,Identifiers.propertyInterpolateV,Identifiers.attribute,Identifiers.attributeInterpolate1,Identifiers.attributeInterpolate2,Identifiers.attributeInterpolate3,Identifiers.attributeInterpolate4,Identifiers.attributeInterpolate5,Identifiers.attributeInterpolate6,Identifiers.attributeInterpolate7,Identifiers.attributeInterpolate8,Identifiers.attributeInterpolateV,Identifiers.styleProp,Identifiers.stylePropInterpolate1,Identifiers.stylePropInterpolate2,Identifiers.stylePropInterpolate3,Identifiers.stylePropInterpolate4,Identifiers.stylePropInterpolate5,Identifiers.stylePropInterpolate6,Identifiers.stylePropInterpolate7,Identifiers.stylePropInterpolate8,Identifiers.stylePropInterpolateV,Identifiers.textInterpolate,Identifiers.textInterpolate1,Identifiers.textInterpolate2,Identifiers.textInterpolate3,Identifiers.textInterpolate4,Identifiers.textInterpolate5,Identifiers.textInterpolate6,Identifiers.textInterpolate7,Identifiers.textInterpolate8,Identifiers.textInterpolateV,Identifiers.templateCreate,Identifiers.twoWayProperty,Identifiers.twoWayListener]);function invokeInstruction(span,reference,params){return importExpr(reference,null,span).callFn(params,span)}function temporaryAllocator(pushStatement,name){let temp=null;return()=>(temp||(pushStatement(new DeclareVarStmt(TEMPORARY_NAME,void 0,DYNAMIC_TYPE)),temp=variable(name)),temp)}function invalid(arg){throw new Error(`Invalid state: Visitor ${this.constructor.name} doesn't handle ${arg.constructor.name}`)}function asLiteral(value){return Array.isArray(value)?literalArr(value.map(asLiteral)):literal(value,INFERRED_TYPE)}function conditionallyCreateDirectiveBindingLiteral(map,forInputs){const keys=Object.getOwnPropertyNames(map);return 0===keys.length?null:literalMap(keys.map((key=>{const value=map[key];let declaredName,publicName,minifiedName,expressionValue;if("string"==typeof value)declaredName=key,minifiedName=key,publicName=value,expressionValue=asLiteral(publicName);else{minifiedName=key,declaredName=value.classPropertyName,publicName=value.bindingPropertyName;const differentDeclaringName=publicName!==declaredName,hasDecoratorInputTransform=null!==value.transformFunction;let flags=null;if(value.isSignal&&(flags=bitwiseOrInputFlagsExpr(InputFlags.SignalBased,flags)),hasDecoratorInputTransform&&(flags=bitwiseOrInputFlagsExpr(InputFlags.HasDecoratorInputTransform,flags)),forInputs&&(differentDeclaringName||hasDecoratorInputTransform||null!==flags)){const result=[flags??importExpr(Identifiers.InputFlags).prop(InputFlags[InputFlags.None]),asLiteral(publicName)];(differentDeclaringName||hasDecoratorInputTransform)&&(result.push(asLiteral(declaredName)),hasDecoratorInputTransform&&result.push(value.transformFunction)),expressionValue=literalArr(result)}else expressionValue=asLiteral(publicName)}return{key:minifiedName,quoted:UNSAFE_OBJECT_KEY_NAME_REGEXP.test(minifiedName),value:expressionValue}})))}function getInputFlagExpr(flag){return importExpr(Identifiers.InputFlags).prop(InputFlags[flag])}function bitwiseOrInputFlagsExpr(flag,expr){return null===expr?getInputFlagExpr(flag):getInputFlagExpr(flag).bitwiseOr(expr)}function trimTrailingNulls(parameters){for(;isNull(parameters[parameters.length-1]);)parameters.pop();return parameters}class DefinitionMap{constructor(){this.values=[]}set(key,value){if(value){const existing=this.values.find((value=>value.key===key));existing?existing.value=value:this.values.push({key,value,quoted:!1})}}toLiteralMap(){return literalMap(this.values)}}function createCssSelectorFromNode(node){const elementName=node instanceof Element$1?node.name:"ng-template",attributes=function getAttrsForDirectiveMatching(elOrTpl){const attributesMap={};elOrTpl instanceof Template&&"ng-template"!==elOrTpl.tagName?elOrTpl.templateAttrs.forEach((a=>attributesMap[a.name]="")):(elOrTpl.attributes.forEach((a=>{isI18nAttribute(a.name)||(attributesMap[a.name]=a.value)})),elOrTpl.inputs.forEach((i=>{0!==i.type&&5!==i.type||(attributesMap[i.name]="")})),elOrTpl.outputs.forEach((o=>{attributesMap[o.name]=""})));return attributesMap}(node),cssSelector=new CssSelector,elementNameNoNs=splitNsName(elementName)[1];return cssSelector.setElement(elementNameNoNs),Object.getOwnPropertyNames(attributes).forEach((name=>{const nameNoNs=splitNsName(name)[1],value=attributes[name];if(cssSelector.addAttribute(nameNoNs,value),"class"===name.toLowerCase()){value.trim().split(/\s+/).forEach((className=>cssSelector.addClassName(className)))}})),cssSelector}function getInterpolationArgsLength(interpolation){const{expressions,strings}=interpolation;return 1===expressions.length&&2===strings.length&&""===strings[0]&&""===strings[1]?1:expressions.length+strings.length}function getInstructionStatements(instructions){const statements=[];let pendingExpression=null,pendingExpressionType=null,chainLength=0;for(const current of instructions){const resolvedParams=("function"==typeof current.paramsOrFn?current.paramsOrFn():current.paramsOrFn)??[],params=Array.isArray(resolvedParams)?resolvedParams:[resolvedParams];chainLength]/,/^[{}]$/,/&(#|[a-z])/i,/^\/\//];class InterpolationConfig{static fromArray(markers){return markers?(function assertInterpolationSymbols(identifier,value){if(!(null==value||Array.isArray(value)&&2==value.length))throw new Error(`Expected '${identifier}' to be an array, [start, end].`);if(null!=value){const start=value[0],end=value[1];UNUSABLE_INTERPOLATION_REGEXPS.forEach((regexp=>{if(regexp.test(start)||regexp.test(end))throw new Error(`['${start}', '${end}'] contains unusable interpolation symbol.`)}))}}("interpolation",markers),new InterpolationConfig(markers[0],markers[1])):DEFAULT_INTERPOLATION_CONFIG}constructor(start,end){this.start=start,this.end=end}}const DEFAULT_INTERPOLATION_CONFIG=new InterpolationConfig("{{","}}"),DEFAULT_CONTAINER_BLOCKS=new Set(["switch"]),$EOF=0,$$=36,$0=48,$9=57,$A=65,$Z=90,$_=95,$a=97,$z=122;function isWhitespace(code){return code>=9&&code<=32||160==code}function isDigit(code){return $0<=code&&code<=$9}function isAsciiLetter(code){return code>=$a&&code<=$z||code>=$A&&code<=$Z}function isNewLine(code){return 10===code||13===code}function isOctalDigit(code){return $0<=code&&code<=55}function isQuote(code){return 39===code||34===code||96===code}class ParseLocation{constructor(file,offset,line,col){this.file=file,this.offset=offset,this.line=line,this.col=col}toString(){return null!=this.offset?`${this.file.url}@${this.line}:${this.col}`:this.file.url}moveBy(delta){const source=this.file.content,len=source.length;let offset=this.offset,line=this.line,col=this.col;for(;offset>0&&delta<0;){offset--,delta++;if(10==source.charCodeAt(offset)){line--;const priorLine=source.substring(0,offset-1).lastIndexOf(String.fromCharCode(10));col=priorLine>0?offset-priorLine:offset}else col--}for(;offset0;){const ch=source.charCodeAt(offset);offset++,delta--,10==ch?(line++,col=0):col++}return new ParseLocation(this.file,offset,line,col)}getContext(maxChars,maxLines){const content=this.file.content;let startOffset=this.offset;if(null!=startOffset){startOffset>content.length-1&&(startOffset=content.length-1);let endOffset=startOffset,ctxChars=0,ctxLines=0;for(;ctxChars0&&(startOffset--,ctxChars++,"\n"!=content[startOffset]||++ctxLines!=maxLines););for(ctxChars=0,ctxLines=0;ctxChars]${ctx.after}")`:this.msg}toString(){const details=this.span.details?`, ${this.span.details}`:"";return`${this.contextualMessage()}: ${this.span.start}${details}`}}function r3JitTypeSourceSpan(kind,typeName,sourceUrl){const sourceFile=new ParseSourceFile("",`in ${kind} ${typeName} in ${sourceUrl}`);return new ParseSourceSpan(new ParseLocation(sourceFile,-1,-1,-1),new ParseLocation(sourceFile,-1,-1,-1))}let _anonymousTypeIndex=0;function identifierName(compileIdentifier){if(!compileIdentifier||!compileIdentifier.reference)return null;const ref=compileIdentifier.reference;if(ref.__anonymousType)return ref.__anonymousType;if(ref.__forward_ref__)return"__forward_ref__";let identifier=stringify(ref);return identifier.indexOf("(")>=0?(identifier="anonymous_"+_anonymousTypeIndex++,ref.__anonymousType=identifier):identifier=sanitizeIdentifier(identifier),identifier}function sanitizeIdentifier(name){return name.replace(/\W/g,"_")}const makeTemplateObjectPolyfill='(this&&this.__makeTemplateObject||function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e})';class AbstractJsEmitterVisitor extends AbstractEmitterVisitor{constructor(){super(!1)}visitWrappedNodeExpr(ast,ctx){throw new Error("Cannot emit a WrappedNodeExpr in Javascript.")}visitDeclareVarStmt(stmt,ctx){return ctx.print(stmt,`var ${stmt.name}`),stmt.value&&(ctx.print(stmt," = "),stmt.value.visitExpression(this,ctx)),ctx.println(stmt,";"),null}visitTaggedTemplateExpr(ast,ctx){const elements=ast.template.elements;return ast.tag.visitExpression(this,ctx),ctx.print(ast,`(${makeTemplateObjectPolyfill}(`),ctx.print(ast,`[${elements.map((part=>escapeIdentifier(part.text,!1))).join(", ")}], `),ctx.print(ast,`[${elements.map((part=>escapeIdentifier(part.rawText,!1))).join(", ")}])`),ast.template.expressions.forEach((expression=>{ctx.print(ast,", "),expression.visitExpression(this,ctx)})),ctx.print(ast,")"),null}visitFunctionExpr(ast,ctx){return ctx.print(ast,`function${ast.name?" "+ast.name:""}(`),this._visitParams(ast.params,ctx),ctx.println(ast,") {"),ctx.incIndent(),this.visitAllStatements(ast.statements,ctx),ctx.decIndent(),ctx.print(ast,"}"),null}visitArrowFunctionExpr(ast,ctx){if(ctx.print(ast,"("),this._visitParams(ast.params,ctx),ctx.print(ast,") =>"),Array.isArray(ast.body))ctx.println(ast,"{"),ctx.incIndent(),this.visitAllStatements(ast.body,ctx),ctx.decIndent(),ctx.print(ast,"}");else{const isObjectLiteral=ast.body instanceof LiteralMapExpr;isObjectLiteral&&ctx.print(ast,"("),ast.body.visitExpression(this,ctx),isObjectLiteral&&ctx.print(ast,")")}return null}visitDeclareFunctionStmt(stmt,ctx){return ctx.print(stmt,`function ${stmt.name}(`),this._visitParams(stmt.params,ctx),ctx.println(stmt,") {"),ctx.incIndent(),this.visitAllStatements(stmt.statements,ctx),ctx.decIndent(),ctx.println(stmt,"}"),null}visitLocalizedString(ast,ctx){ctx.print(ast,`$localize(${makeTemplateObjectPolyfill}(`);const parts=[ast.serializeI18nHead()];for(let i=1;iescapeIdentifier(part.cooked,!1))).join(", ")}], `),ctx.print(ast,`[${parts.map((part=>escapeIdentifier(part.raw,!1))).join(", ")}])`),ast.expressions.forEach((expression=>{ctx.print(ast,", "),expression.visitExpression(this,ctx)})),ctx.print(ast,")"),null}_visitParams(params,ctx){this.visitAllObjects((param=>ctx.print(null,param.name)),params,ctx,",")}}let policy;function trustedScriptFromString(script){return function getPolicy(){if(void 0===policy){const trustedTypes=_global.trustedTypes;if(policy=null,trustedTypes)try{policy=trustedTypes.createPolicy("angular#unsafe-jit",{createScript:s=>s})}catch{}}return policy}()?.createScript(script)||script}function newTrustedFunctionForJIT(...args){if(!_global.trustedTypes)return new Function(...args);const body=`(function anonymous(${args.slice(0,-1).join(",")}\n) { ${args[args.length-1]}\n})`,fn=_global.eval(trustedScriptFromString(body));return void 0===fn.bind?new Function(...args):(fn.toString=()=>body,fn.bind(_global))}class JitEvaluator{evaluateStatements(sourceUrl,statements,refResolver,createSourceMaps){const converter=new JitEmitterVisitor(refResolver),ctx=EmitterVisitorContext.createRoot();return statements.length>0&&!function isUseStrictStatement(statement){return statement.isEquivalent(literal("use strict").toStmt())}(statements[0])&&(statements=[literal("use strict").toStmt(),...statements]),converter.visitAllStatements(statements,ctx),converter.createReturnStmt(ctx),this.evaluateCode(sourceUrl,ctx,converter.getArgs(),createSourceMaps)}evaluateCode(sourceUrl,ctx,vars,createSourceMap){let fnBody=`"use strict";${ctx.toSource()}\n//# sourceURL=${sourceUrl}`;const fnArgNames=[],fnArgValues=[];for(const argName in vars)fnArgValues.push(vars[argName]),fnArgNames.push(argName);if(createSourceMap){const emptyFn=newTrustedFunctionForJIT(...fnArgNames.concat("return null;")).toString(),headerLines=emptyFn.slice(0,emptyFn.indexOf("return null;")).split("\n").length-1;fnBody+=`\n${ctx.toSourceMapGenerator(sourceUrl,headerLines).toJsComment()}`}const fn=newTrustedFunctionForJIT(...fnArgNames.concat(fnBody));return this.executeFunction(fn,fnArgValues)}executeFunction(fn,args){return fn(...args)}}class JitEmitterVisitor extends AbstractJsEmitterVisitor{constructor(refResolver){super(),this.refResolver=refResolver,this._evalArgNames=[],this._evalArgValues=[],this._evalExportedVars=[]}createReturnStmt(ctx){new ReturnStatement(new LiteralMapExpr(this._evalExportedVars.map((resultVar=>new LiteralMapEntry(resultVar,variable(resultVar),!1))))).visitStatement(this,ctx)}getArgs(){const result={};for(let i=0;i0&&definitionMap.set("imports",literalArr(meta.imports));return{expression:importExpr(Identifiers.defineInjector).callFn([definitionMap.toLiteralMap()],void 0,!0),type:createInjectorType(meta),statements:[]}}function createInjectorType(meta){return new ExpressionType(importExpr(Identifiers.InjectorDeclaration,[new ExpressionType(meta.type.type)]))}class R3JitReflector{constructor(context){this.context=context}resolveExternalReference(ref){if("@angular/core"!==ref.moduleName)throw new Error(`Cannot resolve external reference to ${ref.moduleName}, only references to @angular/core are supported.`);if(!this.context.hasOwnProperty(ref.name))throw new Error(`No value provided for @angular/core symbol '${ref.name}'.`);return this.context[ref.name]}}var R3SelectorScopeMode,R3NgModuleMetadataKind,R3TemplateDependencyKind,ParsedPropertyType,_Mode;function compileNgModule(meta){const statements=[],definitionMap=new DefinitionMap;if(definitionMap.set("type",meta.type.value),meta.kind===R3NgModuleMetadataKind.Global&&meta.bootstrap.length>0&&definitionMap.set("bootstrap",refsToArray(meta.bootstrap,meta.containsForwardDecls)),meta.selectorScopeMode===R3SelectorScopeMode.Inline)meta.declarations.length>0&&definitionMap.set("declarations",refsToArray(meta.declarations,meta.containsForwardDecls)),meta.imports.length>0&&definitionMap.set("imports",refsToArray(meta.imports,meta.containsForwardDecls)),meta.exports.length>0&&definitionMap.set("exports",refsToArray(meta.exports,meta.containsForwardDecls));else if(meta.selectorScopeMode===R3SelectorScopeMode.SideEffect){const setNgModuleScopeCall=function generateSetNgModuleScopeCall(meta){const scopeMap=new DefinitionMap;meta.kind===R3NgModuleMetadataKind.Global?meta.declarations.length>0&&scopeMap.set("declarations",refsToArray(meta.declarations,meta.containsForwardDecls)):meta.declarationsExpression&&scopeMap.set("declarations",meta.declarationsExpression);meta.kind===R3NgModuleMetadataKind.Global?meta.imports.length>0&&scopeMap.set("imports",refsToArray(meta.imports,meta.containsForwardDecls)):meta.importsExpression&&scopeMap.set("imports",meta.importsExpression);meta.kind===R3NgModuleMetadataKind.Global?meta.exports.length>0&&scopeMap.set("exports",refsToArray(meta.exports,meta.containsForwardDecls)):meta.exportsExpression&&scopeMap.set("exports",meta.exportsExpression);meta.kind===R3NgModuleMetadataKind.Local&&meta.bootstrapExpression&&scopeMap.set("bootstrap",meta.bootstrapExpression);if(0===Object.keys(scopeMap.values).length)return null;const fnCall=new InvokeFunctionExpr(importExpr(Identifiers.setNgModuleScope),[meta.type.value,scopeMap.toLiteralMap()]),guardedCall=function jitOnlyGuardedExpression(expr){return guardedExpression("ngJitMode",expr)}(fnCall),iife=new FunctionExpr([],[guardedCall.toStmt()]);return new InvokeFunctionExpr(iife,[]).toStmt()}(meta);null!==setNgModuleScopeCall&&statements.push(setNgModuleScopeCall)}null!==meta.schemas&&meta.schemas.length>0&&definitionMap.set("schemas",literalArr(meta.schemas.map((ref=>ref.value)))),null!==meta.id&&(definitionMap.set("id",meta.id),statements.push(importExpr(Identifiers.registerNgModuleType).callFn([meta.type.value,meta.id]).toStmt()));return{expression:importExpr(Identifiers.defineNgModule).callFn([definitionMap.toLiteralMap()],void 0,!0),type:createNgModuleType(meta),statements}}function createNgModuleType(meta){if(meta.kind===R3NgModuleMetadataKind.Local)return new ExpressionType(meta.type.value);const{type:moduleType,declarations,exports,imports,includeImportTypes,publicDeclarationTypes}=meta;return new ExpressionType(importExpr(Identifiers.NgModuleDeclaration,[new ExpressionType(moduleType.type),null===publicDeclarationTypes?tupleTypeOf(declarations):tupleOfTypes(publicDeclarationTypes),includeImportTypes?tupleTypeOf(imports):NONE_TYPE,tupleTypeOf(exports)]))}function tupleTypeOf(exp){const types=exp.map((ref=>typeofExpr(ref.type)));return exp.length>0?expressionType(literalArr(types)):NONE_TYPE}function tupleOfTypes(types){const typeofTypes=types.map((type=>typeofExpr(type)));return types.length>0?expressionType(literalArr(typeofTypes)):NONE_TYPE}function compilePipeFromMetadata(metadata){const definitionMapValues=[];definitionMapValues.push({key:"name",value:literal(metadata.pipeName),quoted:!1}),definitionMapValues.push({key:"type",value:metadata.type.value,quoted:!1}),definitionMapValues.push({key:"pure",value:literal(metadata.pure),quoted:!1}),metadata.isStandalone&&definitionMapValues.push({key:"standalone",value:literal(!0),quoted:!1});return{expression:importExpr(Identifiers.definePipe).callFn([literalMap(definitionMapValues)],void 0,!0),type:createPipeType(metadata),statements:[]}}function createPipeType(metadata){return new ExpressionType(importExpr(Identifiers.PipeDeclaration,[typeWithParameters(metadata.type.type,metadata.typeArgumentCount),new ExpressionType(new LiteralExpr(metadata.pipeName)),new ExpressionType(new LiteralExpr(metadata.isStandalone))]))}!function(R3SelectorScopeMode){R3SelectorScopeMode[R3SelectorScopeMode.Inline=0]="Inline",R3SelectorScopeMode[R3SelectorScopeMode.SideEffect=1]="SideEffect",R3SelectorScopeMode[R3SelectorScopeMode.Omit=2]="Omit"}(R3SelectorScopeMode||(R3SelectorScopeMode={})),function(R3NgModuleMetadataKind){R3NgModuleMetadataKind[R3NgModuleMetadataKind.Global=0]="Global",R3NgModuleMetadataKind[R3NgModuleMetadataKind.Local=1]="Local"}(R3NgModuleMetadataKind||(R3NgModuleMetadataKind={})),function(R3TemplateDependencyKind){R3TemplateDependencyKind[R3TemplateDependencyKind.Directive=0]="Directive",R3TemplateDependencyKind[R3TemplateDependencyKind.Pipe=1]="Pipe",R3TemplateDependencyKind[R3TemplateDependencyKind.NgModule=2]="NgModule"}(R3TemplateDependencyKind||(R3TemplateDependencyKind={}));class ParserError{constructor(message,input,errLocation,ctxLocation){this.input=input,this.errLocation=errLocation,this.ctxLocation=ctxLocation,this.message=`Parser Error: ${message} ${errLocation} [${input}] in ${ctxLocation}`}}class ParseSpan{constructor(start,end){this.start=start,this.end=end}toAbsolute(absoluteOffset){return new AbsoluteSourceSpan(absoluteOffset+this.start,absoluteOffset+this.end)}}class AST{constructor(span,sourceSpan){this.span=span,this.sourceSpan=sourceSpan}toString(){return"AST"}}class ASTWithName extends AST{constructor(span,sourceSpan,nameSpan){super(span,sourceSpan),this.nameSpan=nameSpan}}class EmptyExpr$1 extends AST{visit(visitor,context=null){}}class ImplicitReceiver extends AST{visit(visitor,context=null){return visitor.visitImplicitReceiver(this,context)}}class ThisReceiver extends ImplicitReceiver{visit(visitor,context=null){return visitor.visitThisReceiver?.(this,context)}}class Chain extends AST{constructor(span,sourceSpan,expressions){super(span,sourceSpan),this.expressions=expressions}visit(visitor,context=null){return visitor.visitChain(this,context)}}class Conditional extends AST{constructor(span,sourceSpan,condition,trueExp,falseExp){super(span,sourceSpan),this.condition=condition,this.trueExp=trueExp,this.falseExp=falseExp}visit(visitor,context=null){return visitor.visitConditional(this,context)}}class PropertyRead extends ASTWithName{constructor(span,sourceSpan,nameSpan,receiver,name){super(span,sourceSpan,nameSpan),this.receiver=receiver,this.name=name}visit(visitor,context=null){return visitor.visitPropertyRead(this,context)}}class PropertyWrite extends ASTWithName{constructor(span,sourceSpan,nameSpan,receiver,name,value){super(span,sourceSpan,nameSpan),this.receiver=receiver,this.name=name,this.value=value}visit(visitor,context=null){return visitor.visitPropertyWrite(this,context)}}class SafePropertyRead extends ASTWithName{constructor(span,sourceSpan,nameSpan,receiver,name){super(span,sourceSpan,nameSpan),this.receiver=receiver,this.name=name}visit(visitor,context=null){return visitor.visitSafePropertyRead(this,context)}}class KeyedRead extends AST{constructor(span,sourceSpan,receiver,key){super(span,sourceSpan),this.receiver=receiver,this.key=key}visit(visitor,context=null){return visitor.visitKeyedRead(this,context)}}class SafeKeyedRead extends AST{constructor(span,sourceSpan,receiver,key){super(span,sourceSpan),this.receiver=receiver,this.key=key}visit(visitor,context=null){return visitor.visitSafeKeyedRead(this,context)}}class KeyedWrite extends AST{constructor(span,sourceSpan,receiver,key,value){super(span,sourceSpan),this.receiver=receiver,this.key=key,this.value=value}visit(visitor,context=null){return visitor.visitKeyedWrite(this,context)}}class BindingPipe extends ASTWithName{constructor(span,sourceSpan,exp,name,args,nameSpan){super(span,sourceSpan,nameSpan),this.exp=exp,this.name=name,this.args=args}visit(visitor,context=null){return visitor.visitPipe(this,context)}}class LiteralPrimitive extends AST{constructor(span,sourceSpan,value){super(span,sourceSpan),this.value=value}visit(visitor,context=null){return visitor.visitLiteralPrimitive(this,context)}}class LiteralArray extends AST{constructor(span,sourceSpan,expressions){super(span,sourceSpan),this.expressions=expressions}visit(visitor,context=null){return visitor.visitLiteralArray(this,context)}}class LiteralMap extends AST{constructor(span,sourceSpan,keys,values){super(span,sourceSpan),this.keys=keys,this.values=values}visit(visitor,context=null){return visitor.visitLiteralMap(this,context)}}class Interpolation$1 extends AST{constructor(span,sourceSpan,strings,expressions){super(span,sourceSpan),this.strings=strings,this.expressions=expressions}visit(visitor,context=null){return visitor.visitInterpolation(this,context)}}class Binary extends AST{constructor(span,sourceSpan,operation,left,right){super(span,sourceSpan),this.operation=operation,this.left=left,this.right=right}visit(visitor,context=null){return visitor.visitBinary(this,context)}}class Unary extends Binary{static createMinus(span,sourceSpan,expr){return new Unary(span,sourceSpan,"-",expr,"-",new LiteralPrimitive(span,sourceSpan,0),expr)}static createPlus(span,sourceSpan,expr){return new Unary(span,sourceSpan,"+",expr,"-",expr,new LiteralPrimitive(span,sourceSpan,0))}constructor(span,sourceSpan,operator,expr,binaryOp,binaryLeft,binaryRight){super(span,sourceSpan,binaryOp,binaryLeft,binaryRight),this.operator=operator,this.expr=expr,this.left=null,this.right=null,this.operation=null}visit(visitor,context=null){return void 0!==visitor.visitUnary?visitor.visitUnary(this,context):visitor.visitBinary(this,context)}}class PrefixNot extends AST{constructor(span,sourceSpan,expression){super(span,sourceSpan),this.expression=expression}visit(visitor,context=null){return visitor.visitPrefixNot(this,context)}}class NonNullAssert extends AST{constructor(span,sourceSpan,expression){super(span,sourceSpan),this.expression=expression}visit(visitor,context=null){return visitor.visitNonNullAssert(this,context)}}class Call extends AST{constructor(span,sourceSpan,receiver,args,argumentSpan){super(span,sourceSpan),this.receiver=receiver,this.args=args,this.argumentSpan=argumentSpan}visit(visitor,context=null){return visitor.visitCall(this,context)}}class SafeCall extends AST{constructor(span,sourceSpan,receiver,args,argumentSpan){super(span,sourceSpan),this.receiver=receiver,this.args=args,this.argumentSpan=argumentSpan}visit(visitor,context=null){return visitor.visitSafeCall(this,context)}}class AbsoluteSourceSpan{constructor(start,end){this.start=start,this.end=end}}class ASTWithSource extends AST{constructor(ast,source,location,absoluteOffset,errors){super(new ParseSpan(0,null===source?0:source.length),new AbsoluteSourceSpan(absoluteOffset,null===source?absoluteOffset:absoluteOffset+source.length)),this.ast=ast,this.source=source,this.location=location,this.errors=errors}visit(visitor,context=null){return visitor.visitASTWithSource?visitor.visitASTWithSource(this,context):this.ast.visit(visitor,context)}toString(){return`${this.source} in ${this.location}`}}class VariableBinding{constructor(sourceSpan,key,value){this.sourceSpan=sourceSpan,this.key=key,this.value=value}}class ExpressionBinding{constructor(sourceSpan,key,value){this.sourceSpan=sourceSpan,this.key=key,this.value=value}}class RecursiveAstVisitor{visit(ast,context){ast.visit(this,context)}visitUnary(ast,context){this.visit(ast.expr,context)}visitBinary(ast,context){this.visit(ast.left,context),this.visit(ast.right,context)}visitChain(ast,context){this.visitAll(ast.expressions,context)}visitConditional(ast,context){this.visit(ast.condition,context),this.visit(ast.trueExp,context),this.visit(ast.falseExp,context)}visitPipe(ast,context){this.visit(ast.exp,context),this.visitAll(ast.args,context)}visitImplicitReceiver(ast,context){}visitThisReceiver(ast,context){}visitInterpolation(ast,context){this.visitAll(ast.expressions,context)}visitKeyedRead(ast,context){this.visit(ast.receiver,context),this.visit(ast.key,context)}visitKeyedWrite(ast,context){this.visit(ast.receiver,context),this.visit(ast.key,context),this.visit(ast.value,context)}visitLiteralArray(ast,context){this.visitAll(ast.expressions,context)}visitLiteralMap(ast,context){this.visitAll(ast.values,context)}visitLiteralPrimitive(ast,context){}visitPrefixNot(ast,context){this.visit(ast.expression,context)}visitNonNullAssert(ast,context){this.visit(ast.expression,context)}visitPropertyRead(ast,context){this.visit(ast.receiver,context)}visitPropertyWrite(ast,context){this.visit(ast.receiver,context),this.visit(ast.value,context)}visitSafePropertyRead(ast,context){this.visit(ast.receiver,context)}visitSafeKeyedRead(ast,context){this.visit(ast.receiver,context),this.visit(ast.key,context)}visitCall(ast,context){this.visit(ast.receiver,context),this.visitAll(ast.args,context)}visitSafeCall(ast,context){this.visit(ast.receiver,context),this.visitAll(ast.args,context)}visitAll(asts,context){for(const ast of asts)this.visit(ast,context)}}class AstTransformer{visitImplicitReceiver(ast,context){return ast}visitThisReceiver(ast,context){return ast}visitInterpolation(ast,context){return new Interpolation$1(ast.span,ast.sourceSpan,ast.strings,this.visitAll(ast.expressions))}visitLiteralPrimitive(ast,context){return new LiteralPrimitive(ast.span,ast.sourceSpan,ast.value)}visitPropertyRead(ast,context){return new PropertyRead(ast.span,ast.sourceSpan,ast.nameSpan,ast.receiver.visit(this),ast.name)}visitPropertyWrite(ast,context){return new PropertyWrite(ast.span,ast.sourceSpan,ast.nameSpan,ast.receiver.visit(this),ast.name,ast.value.visit(this))}visitSafePropertyRead(ast,context){return new SafePropertyRead(ast.span,ast.sourceSpan,ast.nameSpan,ast.receiver.visit(this),ast.name)}visitLiteralArray(ast,context){return new LiteralArray(ast.span,ast.sourceSpan,this.visitAll(ast.expressions))}visitLiteralMap(ast,context){return new LiteralMap(ast.span,ast.sourceSpan,ast.keys,this.visitAll(ast.values))}visitUnary(ast,context){switch(ast.operator){case"+":return Unary.createPlus(ast.span,ast.sourceSpan,ast.expr.visit(this));case"-":return Unary.createMinus(ast.span,ast.sourceSpan,ast.expr.visit(this));default:throw new Error(`Unknown unary operator ${ast.operator}`)}}visitBinary(ast,context){return new Binary(ast.span,ast.sourceSpan,ast.operation,ast.left.visit(this),ast.right.visit(this))}visitPrefixNot(ast,context){return new PrefixNot(ast.span,ast.sourceSpan,ast.expression.visit(this))}visitNonNullAssert(ast,context){return new NonNullAssert(ast.span,ast.sourceSpan,ast.expression.visit(this))}visitConditional(ast,context){return new Conditional(ast.span,ast.sourceSpan,ast.condition.visit(this),ast.trueExp.visit(this),ast.falseExp.visit(this))}visitPipe(ast,context){return new BindingPipe(ast.span,ast.sourceSpan,ast.exp.visit(this),ast.name,this.visitAll(ast.args),ast.nameSpan)}visitKeyedRead(ast,context){return new KeyedRead(ast.span,ast.sourceSpan,ast.receiver.visit(this),ast.key.visit(this))}visitKeyedWrite(ast,context){return new KeyedWrite(ast.span,ast.sourceSpan,ast.receiver.visit(this),ast.key.visit(this),ast.value.visit(this))}visitCall(ast,context){return new Call(ast.span,ast.sourceSpan,ast.receiver.visit(this),this.visitAll(ast.args),ast.argumentSpan)}visitSafeCall(ast,context){return new SafeCall(ast.span,ast.sourceSpan,ast.receiver.visit(this),this.visitAll(ast.args),ast.argumentSpan)}visitAll(asts){const res=[];for(let i=0;iargs=>literalArr(args),createLiteralMapConverter:keys=>values=>literalMap(keys.map(((k,i)=>({key:k.key,value:values[i],quoted:k.quoted})))),createPipeConverter:name=>{throw new Error(`Illegal State: Actions are not allowed to contain pipes. Pipe: ${name}`)}},action)}function temporaryName(bindingId,temporaryNumber){return`tmp_${bindingId}_${temporaryNumber}`}function temporaryDeclaration(bindingId,temporaryNumber){return new DeclareVarStmt(temporaryName(bindingId,temporaryNumber))}function prependTemporaryDecls(temporaryCount,bindingId,statements){for(let i=temporaryCount-1;i>=0;i--)statements.unshift(temporaryDeclaration(bindingId,i))}function ensureExpressionMode(mode,ast){if(mode!==_Mode.Expression)throw new Error(`Expected an expression, but saw ${ast}`)}function convertToStatementIfNeeded(mode,expr){return mode===_Mode.Statement?expr.toStmt():expr}!function(_Mode){_Mode[_Mode.Statement=0]="Statement",_Mode[_Mode.Expression=1]="Expression"}(_Mode||(_Mode={}));class _BuiltinAstConverter extends AstTransformer{constructor(_converterFactory){super(),this._converterFactory=_converterFactory}visitPipe(ast,context){const args=[ast.exp,...ast.args].map((ast=>ast.visit(this,context)));return new BuiltinFunctionCall(ast.span,ast.sourceSpan,args,this._converterFactory.createPipeConverter(ast.name,args.length))}visitLiteralArray(ast,context){const args=ast.expressions.map((ast=>ast.visit(this,context)));return new BuiltinFunctionCall(ast.span,ast.sourceSpan,args,this._converterFactory.createLiteralArrayConverter(ast.expressions.length))}visitLiteralMap(ast,context){const args=ast.values.map((ast=>ast.visit(this,context)));return new BuiltinFunctionCall(ast.span,ast.sourceSpan,args,this._converterFactory.createLiteralMapConverter(ast.keys))}}class _AstToIrVisitor{constructor(_localResolver,_implicitReceiver,bindingId,supportsInterpolation,baseSourceSpan,implicitReceiverAccesses){this._localResolver=_localResolver,this._implicitReceiver=_implicitReceiver,this.bindingId=bindingId,this.supportsInterpolation=supportsInterpolation,this.baseSourceSpan=baseSourceSpan,this.implicitReceiverAccesses=implicitReceiverAccesses,this._nodeMap=new Map,this._resultMap=new Map,this._currentTemporary=0,this.temporaryCount=0,this.usesImplicitReceiver=!1}visitUnary(ast,mode){let op;switch(ast.operator){case"+":op=UnaryOperator.Plus;break;case"-":op=UnaryOperator.Minus;break;default:throw new Error(`Unsupported operator ${ast.operator}`)}return convertToStatementIfNeeded(mode,new UnaryOperatorExpr(op,this._visit(ast.expr,_Mode.Expression),void 0,this.convertSourceSpan(ast.span)))}visitBinary(ast,mode){let op;switch(ast.operation){case"+":op=BinaryOperator.Plus;break;case"-":op=BinaryOperator.Minus;break;case"*":op=BinaryOperator.Multiply;break;case"/":op=BinaryOperator.Divide;break;case"%":op=BinaryOperator.Modulo;break;case"&&":op=BinaryOperator.And;break;case"||":op=BinaryOperator.Or;break;case"==":op=BinaryOperator.Equals;break;case"!=":op=BinaryOperator.NotEquals;break;case"===":op=BinaryOperator.Identical;break;case"!==":op=BinaryOperator.NotIdentical;break;case"<":op=BinaryOperator.Lower;break;case">":op=BinaryOperator.Bigger;break;case"<=":op=BinaryOperator.LowerEquals;break;case">=":op=BinaryOperator.BiggerEquals;break;case"??":return this.convertNullishCoalesce(ast,mode);default:throw new Error(`Unsupported operation ${ast.operation}`)}return convertToStatementIfNeeded(mode,new BinaryOperatorExpr(op,this._visit(ast.left,_Mode.Expression),this._visit(ast.right,_Mode.Expression),void 0,this.convertSourceSpan(ast.span)))}visitChain(ast,mode){return function ensureStatementMode(mode,ast){if(mode!==_Mode.Statement)throw new Error(`Expected a statement, but saw ${ast}`)}(mode,ast),this.visitAll(ast.expressions,mode)}visitConditional(ast,mode){return convertToStatementIfNeeded(mode,this._visit(ast.condition,_Mode.Expression).conditional(this._visit(ast.trueExp,_Mode.Expression),this._visit(ast.falseExp,_Mode.Expression),this.convertSourceSpan(ast.span)))}visitPipe(ast,mode){throw new Error(`Illegal state: Pipes should have been converted into functions. Pipe: ${ast.name}`)}visitImplicitReceiver(ast,mode){return ensureExpressionMode(mode,ast),this.usesImplicitReceiver=!0,this._implicitReceiver}visitThisReceiver(ast,mode){return this.visitImplicitReceiver(ast,mode)}visitInterpolation(ast,mode){if(!this.supportsInterpolation)throw new Error("Unexpected interpolation");ensureExpressionMode(mode,ast);let args=[];for(let i=0;i=9&&(args=[literalArr(args)]),new InterpolationExpression(args)}visitKeyedRead(ast,mode){const leftMostSafe=this.leftMostSafeNode(ast);return leftMostSafe?this.convertSafeAccess(ast,leftMostSafe,mode):convertToStatementIfNeeded(mode,this._visit(ast.receiver,_Mode.Expression).key(this._visit(ast.key,_Mode.Expression)))}visitKeyedWrite(ast,mode){const obj=this._visit(ast.receiver,_Mode.Expression),key=this._visit(ast.key,_Mode.Expression),value=this._visit(ast.value,_Mode.Expression);return obj===this._implicitReceiver&&this._localResolver.maybeRestoreView(),convertToStatementIfNeeded(mode,obj.key(key).set(value))}visitLiteralArray(ast,mode){throw new Error("Illegal State: literal arrays should have been converted into functions")}visitLiteralMap(ast,mode){throw new Error("Illegal State: literal maps should have been converted into functions")}visitLiteralPrimitive(ast,mode){const type=null===ast.value||void 0===ast.value||!0===ast.value||!0===ast.value?INFERRED_TYPE:void 0;return convertToStatementIfNeeded(mode,literal(ast.value,type,this.convertSourceSpan(ast.span)))}_getLocal(name,receiver){return this._localResolver.globals?.has(name)&&receiver instanceof ThisReceiver?null:this._localResolver.getLocal(name)}visitPrefixNot(ast,mode){return convertToStatementIfNeeded(mode,not(this._visit(ast.expression,_Mode.Expression)))}visitNonNullAssert(ast,mode){return convertToStatementIfNeeded(mode,this._visit(ast.expression,_Mode.Expression))}visitPropertyRead(ast,mode){const leftMostSafe=this.leftMostSafeNode(ast);if(leftMostSafe)return this.convertSafeAccess(ast,leftMostSafe,mode);{let result=null;const prevUsesImplicitReceiver=this.usesImplicitReceiver,receiver=this._visit(ast.receiver,_Mode.Expression);return receiver===this._implicitReceiver&&(result=this._getLocal(ast.name,ast.receiver),result&&(this.usesImplicitReceiver=prevUsesImplicitReceiver,this.addImplicitReceiverAccess(ast.name))),null==result&&(result=receiver.prop(ast.name,this.convertSourceSpan(ast.span))),convertToStatementIfNeeded(mode,result)}}visitPropertyWrite(ast,mode){const receiver=this._visit(ast.receiver,_Mode.Expression),prevUsesImplicitReceiver=this.usesImplicitReceiver;let varExpr=null;if(receiver===this._implicitReceiver){const localExpr=this._getLocal(ast.name,ast.receiver);if(localExpr){if(!(localExpr instanceof ReadPropExpr)){const receiver=ast.name,value=ast.value instanceof PropertyRead?ast.value.name:void 0;throw new Error(`Cannot assign value "${value}" to template variable "${receiver}". Template variables are read-only.`)}varExpr=localExpr,this.usesImplicitReceiver=prevUsesImplicitReceiver,this.addImplicitReceiverAccess(ast.name)}}return null===varExpr&&(varExpr=receiver.prop(ast.name,this.convertSourceSpan(ast.span))),convertToStatementIfNeeded(mode,varExpr.set(this._visit(ast.value,_Mode.Expression)))}visitSafePropertyRead(ast,mode){return this.convertSafeAccess(ast,this.leftMostSafeNode(ast),mode)}visitSafeKeyedRead(ast,mode){return this.convertSafeAccess(ast,this.leftMostSafeNode(ast),mode)}visitAll(asts,mode){return asts.map((ast=>this._visit(ast,mode)))}visitCall(ast,mode){const leftMostSafe=this.leftMostSafeNode(ast);if(leftMostSafe)return this.convertSafeAccess(ast,leftMostSafe,mode);const convertedArgs=this.visitAll(ast.args,_Mode.Expression);if(ast instanceof BuiltinFunctionCall)return convertToStatementIfNeeded(mode,ast.converter(convertedArgs));const receiver=ast.receiver;if(receiver instanceof PropertyRead&&receiver.receiver instanceof ImplicitReceiver&&!(receiver.receiver instanceof ThisReceiver)&&"$any"===receiver.name){if(1!==convertedArgs.length)throw new Error(`Invalid call to $any, expected 1 argument but received ${convertedArgs.length||"none"}`);return convertToStatementIfNeeded(mode,convertedArgs[0])}return convertToStatementIfNeeded(mode,this._visit(receiver,_Mode.Expression).callFn(convertedArgs,this.convertSourceSpan(ast.span)))}visitSafeCall(ast,mode){return this.convertSafeAccess(ast,this.leftMostSafeNode(ast),mode)}_visit(ast,mode){const result=this._resultMap.get(ast);return result||(this._nodeMap.get(ast)||ast).visit(this,mode)}convertSafeAccess(ast,leftMostSafe,mode){let temporary,guardedExpression=this._visit(leftMostSafe.receiver,_Mode.Expression);this.needsTemporaryInSafeAccess(leftMostSafe.receiver)&&(temporary=this.allocateTemporary(),guardedExpression=temporary.set(guardedExpression),this._resultMap.set(leftMostSafe.receiver,temporary));const condition=guardedExpression.isBlank();leftMostSafe instanceof SafeCall?this._nodeMap.set(leftMostSafe,new Call(leftMostSafe.span,leftMostSafe.sourceSpan,leftMostSafe.receiver,leftMostSafe.args,leftMostSafe.argumentSpan)):leftMostSafe instanceof SafeKeyedRead?this._nodeMap.set(leftMostSafe,new KeyedRead(leftMostSafe.span,leftMostSafe.sourceSpan,leftMostSafe.receiver,leftMostSafe.key)):this._nodeMap.set(leftMostSafe,new PropertyRead(leftMostSafe.span,leftMostSafe.sourceSpan,leftMostSafe.nameSpan,leftMostSafe.receiver,leftMostSafe.name));const access=this._visit(ast,_Mode.Expression);return this._nodeMap.delete(leftMostSafe),temporary&&this.releaseTemporary(temporary),convertToStatementIfNeeded(mode,condition.conditional(NULL_EXPR,access))}convertNullishCoalesce(ast,mode){const left=this._visit(ast.left,_Mode.Expression),right=this._visit(ast.right,_Mode.Expression),temporary=this.allocateTemporary();return this.releaseTemporary(temporary),convertToStatementIfNeeded(mode,temporary.set(left).notIdentical(NULL_EXPR).and(temporary.notIdentical(literal(void 0))).conditional(temporary,right))}leftMostSafeNode(ast){const visit=(visitor,ast)=>(this._nodeMap.get(ast)||ast).visit(visitor);return ast.visit({visitUnary:ast=>null,visitBinary:ast=>null,visitChain:ast=>null,visitConditional:ast=>null,visitCall(ast){return visit(this,ast.receiver)},visitSafeCall(ast){return visit(this,ast.receiver)||ast},visitImplicitReceiver:ast=>null,visitThisReceiver:ast=>null,visitInterpolation:ast=>null,visitKeyedRead(ast){return visit(this,ast.receiver)},visitKeyedWrite:ast=>null,visitLiteralArray:ast=>null,visitLiteralMap:ast=>null,visitLiteralPrimitive:ast=>null,visitPipe:ast=>null,visitPrefixNot:ast=>null,visitNonNullAssert(ast){return visit(this,ast.expression)},visitPropertyRead(ast){return visit(this,ast.receiver)},visitPropertyWrite:ast=>null,visitSafePropertyRead(ast){return visit(this,ast.receiver)||ast},visitSafeKeyedRead(ast){return visit(this,ast.receiver)||ast}})}needsTemporaryInSafeAccess(ast){const visit=(visitor,ast)=>ast&&(this._nodeMap.get(ast)||ast).visit(visitor);return ast.visit({visitUnary(ast){return visit(this,ast.expr)},visitBinary(ast){return visit(this,ast.left)||visit(this,ast.right)},visitChain:ast=>!1,visitConditional(ast){return visit(this,ast.condition)||visit(this,ast.trueExp)||visit(this,ast.falseExp)},visitCall:ast=>!0,visitSafeCall:ast=>!0,visitImplicitReceiver:ast=>!1,visitThisReceiver:ast=>!1,visitInterpolation(ast){return((visitor,ast)=>ast.some((ast=>visit(visitor,ast))))(this,ast.expressions)},visitKeyedRead:ast=>!1,visitKeyedWrite:ast=>!1,visitLiteralArray:ast=>!0,visitLiteralMap:ast=>!0,visitLiteralPrimitive:ast=>!1,visitPipe:ast=>!0,visitPrefixNot(ast){return visit(this,ast.expression)},visitNonNullAssert(ast){return visit(this,ast.expression)},visitPropertyRead:ast=>!1,visitPropertyWrite:ast=>!1,visitSafePropertyRead:ast=>!1,visitSafeKeyedRead:ast=>!1})}allocateTemporary(){const tempNumber=this._currentTemporary++;return this.temporaryCount=Math.max(this._currentTemporary,this.temporaryCount),new ReadVarExpr(temporaryName(this.bindingId,tempNumber))}releaseTemporary(temporary){if(this._currentTemporary--,temporary.name!=temporaryName(this.bindingId,this._currentTemporary))throw new Error(`Temporary ${temporary.name} released out of order`)}convertSourceSpan(span){if(this.baseSourceSpan){const start=this.baseSourceSpan.start.moveBy(span.start),end=this.baseSourceSpan.start.moveBy(span.end),fullStart=this.baseSourceSpan.fullStart.moveBy(span.start);return new ParseSourceSpan(start,end,fullStart)}return null}addImplicitReceiverAccess(name){this.implicitReceiverAccesses&&this.implicitReceiverAccesses.add(name)}}function flattenStatements(arg,output){Array.isArray(arg)?arg.forEach((entry=>flattenStatements(entry,output))):output.push(arg)}function unsupported(){throw new Error("Unsupported operation")}class InterpolationExpression extends Expression{constructor(args){super(null,null),this.args=args,this.isConstant=unsupported,this.isEquivalent=unsupported,this.visitExpression=unsupported,this.clone=unsupported}}class DefaultLocalResolver{constructor(globals){this.globals=globals}notifyImplicitReceiverUse(){}maybeRestoreView(){}getLocal(name){return name===EventHandlerVars.event.name?EventHandlerVars.event:null}}class BuiltinFunctionCall extends Call{constructor(span,sourceSpan,args,converter){super(span,sourceSpan,new EmptyExpr$1(span,sourceSpan),args,null),this.converter=converter}}let _SECURITY_SCHEMA;function SECURITY_SCHEMA(){return _SECURITY_SCHEMA||(_SECURITY_SCHEMA={},registerContext(SecurityContext.HTML,["iframe|srcdoc","*|innerHTML","*|outerHTML"]),registerContext(SecurityContext.STYLE,["*|style"]),registerContext(SecurityContext.URL,["*|formAction","area|href","area|ping","audio|src","a|href","a|ping","blockquote|cite","body|background","del|cite","form|action","img|src","input|src","ins|cite","q|cite","source|src","track|src","video|poster","video|src"]),registerContext(SecurityContext.RESOURCE_URL,["applet|code","applet|codebase","base|href","embed|src","frame|src","head|profile","html|manifest","iframe|src","link|href","media|src","object|codebase","object|data","script|src"])),_SECURITY_SCHEMA}function registerContext(ctx,specs){for(const spec of specs)_SECURITY_SCHEMA[spec.toLowerCase()]=ctx}const IFRAME_SECURITY_SENSITIVE_ATTRS=new Set(["sandbox","allow","allowfullscreen","referrerpolicy","csp","fetchpriority"]);function isIframeSecuritySensitiveAttr(attrName){return IFRAME_SECURITY_SENSITIVE_ATTRS.has(attrName.toLowerCase())}const animationKeywords=new Set(["inherit","initial","revert","unset","alternate","alternate-reverse","normal","reverse","backwards","both","forwards","none","paused","running","ease","ease-in","ease-in-out","ease-out","linear","step-start","step-end","end","jump-both","jump-end","jump-none","jump-start","start"]),scopedAtRuleIdentifiers=["@media","@supports","@document","@layer","@container","@scope","@starting-style"];class ShadowCss{constructor(){this._animationDeclarationKeyframesRe=/(^|\s+)(?:(?:(['"])((?:\\\\|\\\2|(?!\2).)+)\2)|(-?[A-Za-z][\w\-]*))(?=[,\s]|$)/g}shimCssText(cssText,selector,hostSelector=""){const comments=[];cssText=cssText.replace(_commentRe,(m=>{if(m.match(_commentWithHashRe))comments.push(m);else{const newLinesMatches=m.match(_newLinesRe);comments.push((newLinesMatches?.join("")??"")+"\n")}return COMMENT_PLACEHOLDER})),cssText=this._insertDirectives(cssText);const scopedCssText=this._scopeCssText(cssText,selector,hostSelector);let commentIdx=0;return scopedCssText.replace(_commentWithHashPlaceHolderRe,(()=>comments[commentIdx++]))}_insertDirectives(cssText){return cssText=this._insertPolyfillDirectivesInCssText(cssText),this._insertPolyfillRulesInCssText(cssText)}_scopeKeyframesRelatedCss(cssText,scopeSelector){const unscopedKeyframesSet=new Set,scopedKeyframesCssText=processRules(cssText,(rule=>this._scopeLocalKeyframeDeclarations(rule,scopeSelector,unscopedKeyframesSet)));return processRules(scopedKeyframesCssText,(rule=>this._scopeAnimationRule(rule,scopeSelector,unscopedKeyframesSet)))}_scopeLocalKeyframeDeclarations(rule,scopeSelector,unscopedKeyframesSet){return{...rule,selector:rule.selector.replace(/(^@(?:-webkit-)?keyframes(?:\s+))(['"]?)(.+)\2(\s*)$/,((_,start,quote,keyframeName,endSpaces)=>(unscopedKeyframesSet.add(unescapeQuotes(keyframeName,quote)),`${start}${quote}${scopeSelector}_${keyframeName}${quote}${endSpaces}`)))}}_scopeAnimationKeyframe(keyframe,scopeSelector,unscopedKeyframesSet){return keyframe.replace(/^(\s*)(['"]?)(.+?)\2(\s*)$/,((_,spaces1,quote,name,spaces2)=>`${spaces1}${quote}${name=`${unscopedKeyframesSet.has(unescapeQuotes(name,quote))?scopeSelector+"_":""}${name}`}${quote}${spaces2}`))}_scopeAnimationRule(rule,scopeSelector,unscopedKeyframesSet){let content=rule.content.replace(/((?:^|\s+|;)(?:-webkit-)?animation(?:\s*):(?:\s*))([^;]+)/g,((_,start,animationDeclarations)=>start+animationDeclarations.replace(this._animationDeclarationKeyframesRe,((original,leadingSpaces,quote="",quotedName,nonQuotedName)=>quotedName?`${leadingSpaces}${this._scopeAnimationKeyframe(`${quote}${quotedName}${quote}`,scopeSelector,unscopedKeyframesSet)}`:animationKeywords.has(nonQuotedName)?original:`${leadingSpaces}${this._scopeAnimationKeyframe(nonQuotedName,scopeSelector,unscopedKeyframesSet)}`))));return content=content.replace(/((?:^|\s+|;)(?:-webkit-)?animation-name(?:\s*):(?:\s*))([^;]+)/g,((_match,start,commaSeparatedKeyframes)=>`${start}${commaSeparatedKeyframes.split(",").map((keyframe=>this._scopeAnimationKeyframe(keyframe,scopeSelector,unscopedKeyframesSet))).join(",")}`)),{...rule,content}}_insertPolyfillDirectivesInCssText(cssText){return cssText.replace(_cssContentNextSelectorRe,(function(...m){return m[2]+"{"}))}_insertPolyfillRulesInCssText(cssText){return cssText.replace(_cssContentRuleRe,((...m)=>{const rule=m[0].replace(m[1],"").replace(m[2],"");return m[4]+rule}))}_scopeCssText(cssText,scopeSelector,hostSelector){const unscopedRules=this._extractUnscopedRulesFromCssText(cssText);return cssText=this._insertPolyfillHostInCssText(cssText),cssText=this._convertColonHost(cssText),cssText=this._convertColonHostContext(cssText),cssText=this._convertShadowDOMSelectors(cssText),scopeSelector&&(cssText=this._scopeKeyframesRelatedCss(cssText,scopeSelector),cssText=this._scopeSelectors(cssText,scopeSelector,hostSelector)),(cssText=cssText+"\n"+unscopedRules).trim()}_extractUnscopedRulesFromCssText(cssText){let m,r="";for(_cssContentUnscopedRuleRe.lastIndex=0;null!==(m=_cssContentUnscopedRuleRe.exec(cssText));){r+=m[0].replace(m[2],"").replace(m[1],m[4])+"\n\n"}return r}_convertColonHost(cssText){return cssText.replace(_cssColonHostRe,((_,hostSelectors,otherSelectors)=>{if(hostSelectors){const convertedSelectors=[],hostSelectorArray=hostSelectors.split(",").map((p=>p.trim()));for(const hostSelector of hostSelectorArray){if(!hostSelector)break;const convertedSelector=_polyfillHostNoCombinator+hostSelector.replace(_polyfillHost,"")+otherSelectors;convertedSelectors.push(convertedSelector)}return convertedSelectors.join(",")}return _polyfillHostNoCombinator+otherSelectors}))}_convertColonHostContext(cssText){return cssText.replace(_cssColonHostContextReGlobal,(selectorText=>{const contextSelectorGroups=[[]];let match;for(;match=_cssColonHostContextRe.exec(selectorText);){const newContextSelectors=(match[1]??"").trim().split(",").map((m=>m.trim())).filter((m=>""!==m)),contextSelectorGroupsLength=contextSelectorGroups.length;repeatGroups(contextSelectorGroups,newContextSelectors.length);for(let i=0;ifunction combineHostContextSelectors(contextSelectors,otherSelectors){const hostMarker=_polyfillHostNoCombinator;_polyfillHostRe.lastIndex=0;const otherSelectorsHasHost=_polyfillHostRe.test(otherSelectors);if(0===contextSelectors.length)return hostMarker+otherSelectors;const combined=[contextSelectors.pop()||""];for(;contextSelectors.length>0;){const length=combined.length,contextSelector=contextSelectors.pop();for(let i=0;iotherSelectorsHasHost?`${s}${otherSelectors}`:`${s}${hostMarker}${otherSelectors}, ${s} ${hostMarker}${otherSelectors}`)).join(",")}(contextSelectors,selectorText))).join(", ")}))}_convertShadowDOMSelectors(cssText){return _shadowDOMSelectorsRe.reduce(((result,pattern)=>result.replace(pattern," ")),cssText)}_scopeSelectors(cssText,scopeSelector,hostSelector){return processRules(cssText,(rule=>{let selector=rule.selector,content=rule.content;return"@"!==rule.selector[0]?selector=this._scopeSelector(rule.selector,scopeSelector,hostSelector):scopedAtRuleIdentifiers.some((atRule=>rule.selector.startsWith(atRule)))?content=this._scopeSelectors(rule.content,scopeSelector,hostSelector):(rule.selector.startsWith("@font-face")||rule.selector.startsWith("@page"))&&(content=this._stripScopingSelectors(rule.content)),new CssRule(selector,content)}))}_stripScopingSelectors(cssText){return processRules(cssText,(rule=>{const selector=rule.selector.replace(_shadowDeepSelectors," ").replace(_polyfillHostNoCombinatorRe," ");return new CssRule(selector,rule.content)}))}_scopeSelector(selector,scopeSelector,hostSelector){return selector.split(",").map((part=>part.trim().split(_shadowDeepSelectors))).map((deepParts=>{const[shallowPart,...otherParts]=deepParts;return[(shallowPart=>this._selectorNeedsScoping(shallowPart,scopeSelector)?this._applySelectorScope(shallowPart,scopeSelector,hostSelector):shallowPart)(shallowPart),...otherParts].join(" ")})).join(", ")}_selectorNeedsScoping(selector,scopeSelector){return!this._makeScopeMatcher(scopeSelector).test(selector)}_makeScopeMatcher(scopeSelector){return scopeSelector=scopeSelector.replace(/\[/g,"\\[").replace(/\]/g,"\\]"),new RegExp("^("+scopeSelector+")"+_selectorReSuffix,"m")}_applySimpleSelectorScope(selector,scopeSelector,hostSelector){if(_polyfillHostRe.lastIndex=0,_polyfillHostRe.test(selector)){const replaceBy=`[${hostSelector}]`;return selector.replace(_polyfillHostNoCombinatorRe,((hnc,selector)=>selector.replace(/([^:]*)(:*)(.*)/,((_,before,colon,after)=>before+replaceBy+colon+after)))).replace(_polyfillHostRe,replaceBy+" ")}return scopeSelector+" "+selector}_applySelectorScope(selector,scopeSelector,hostSelector){const attrName="["+(scopeSelector=scopeSelector.replace(/\[is=([^\]]*)\]/g,((_,...parts)=>parts[0])))+"]",_scopeSelectorPart=p=>{let scopedP=p.trim();if(!scopedP)return"";if(p.indexOf(_polyfillHostNoCombinator)>-1)scopedP=this._applySimpleSelectorScope(p,scopeSelector,hostSelector);else{const t=p.replace(_polyfillHostRe,"");if(t.length>0){const matches=t.match(/([^:]*)(:*)(.*)/);matches&&(scopedP=matches[1]+attrName+matches[2]+matches[3])}}return scopedP},safeContent=new SafeSelector(selector);let res,scopedSelector="",startIndex=0;const sep=/( |>|\+|~(?!=))\s*/g;let shouldScope=!((selector=safeContent.content()).indexOf(_polyfillHostNoCombinator)>-1);for(;null!==(res=sep.exec(selector));){const separator=res[1],part=selector.slice(startIndex,res.index).trim();if(part.match(/__esc-ph-(\d+)__/)&&selector[res.index+1]?.match(/[a-fA-F\d]/))continue;shouldScope=shouldScope||part.indexOf(_polyfillHostNoCombinator)>-1;scopedSelector+=`${shouldScope?_scopeSelectorPart(part):part} ${separator} `,startIndex=sep.lastIndex}const part=selector.substring(startIndex);return shouldScope=shouldScope||part.indexOf(_polyfillHostNoCombinator)>-1,scopedSelector+=shouldScope?_scopeSelectorPart(part):part,safeContent.restore(scopedSelector)}_insertPolyfillHostInCssText(selector){return selector.replace(_colonHostContextRe,_polyfillHostContext).replace(_colonHostRe,_polyfillHost)}}class SafeSelector{constructor(selector){this.placeholders=[],this.index=0,selector=(selector=this._escapeRegexMatches(selector,/(\[[^\]]*\])/g)).replace(/(\\.)/g,((_,keep)=>{const replaceBy=`__esc-ph-${this.index}__`;return this.placeholders.push(keep),this.index++,replaceBy})),this._content=selector.replace(/(:nth-[-\w]+)(\([^)]+\))/g,((_,pseudo,exp)=>{const replaceBy=`__ph-${this.index}__`;return this.placeholders.push(exp),this.index++,pseudo+replaceBy}))}restore(content){return content.replace(/__(?:ph|esc-ph)-(\d+)__/g,((_ph,index)=>this.placeholders[+index]))}content(){return this._content}_escapeRegexMatches(content,pattern){return content.replace(pattern,((_,keep)=>{const replaceBy=`__ph-${this.index}__`;return this.placeholders.push(keep),this.index++,replaceBy}))}}const _cssContentNextSelectorRe=/polyfill-next-selector[^}]*content:[\s]*?(['"])(.*?)\1[;\s]*}([^{]*?){/gim,_cssContentRuleRe=/(polyfill-rule)[^}]*(content:[\s]*(['"])(.*?)\3)[;\s]*[^}]*}/gim,_cssContentUnscopedRuleRe=/(polyfill-unscoped-rule)[^}]*(content:[\s]*(['"])(.*?)\3)[;\s]*[^}]*}/gim,_polyfillHost="-shadowcsshost",_polyfillHostContext="-shadowcsscontext",_parenSuffix="(?:\\(((?:\\([^)(]*\\)|[^)(]*)+?)\\))?([^,{]*)",_cssColonHostRe=new RegExp(_polyfillHost+_parenSuffix,"gim"),_cssColonHostContextReGlobal=new RegExp(_polyfillHostContext+_parenSuffix,"gim"),_cssColonHostContextRe=new RegExp(_polyfillHostContext+_parenSuffix,"im"),_polyfillHostNoCombinator=_polyfillHost+"-no-combinator",_polyfillHostNoCombinatorRe=/-shadowcsshost-no-combinator([^\s]*)/,_shadowDOMSelectorsRe=[/::shadow/g,/::content/g,/\/shadow-deep\//g,/\/shadow\//g],_shadowDeepSelectors=/(?:>>>)|(?:\/deep\/)|(?:::ng-deep)/g,_selectorReSuffix="([>\\s~+[.,{:][\\s\\S]*)?$",_polyfillHostRe=/-shadowcsshost/gim,_colonHostRe=/:host/gim,_colonHostContextRe=/:host-context/gim,_newLinesRe=/\r?\n/g,_commentRe=/\/\*[\s\S]*?\*\//g,_commentWithHashRe=/\/\*\s*#\s*source(Mapping)?URL=/g,COMMENT_PLACEHOLDER="%COMMENT%",_commentWithHashPlaceHolderRe=new RegExp(COMMENT_PLACEHOLDER,"g"),BLOCK_PLACEHOLDER="%BLOCK%",_ruleRe=new RegExp(`(\\s*(?:${COMMENT_PLACEHOLDER}\\s*)*)([^;\\{\\}]+?)(\\s*)((?:{%BLOCK%}?\\s*;?)|(?:\\s*;))`,"g"),CONTENT_PAIRS=new Map([["{","}"]]),_cssCommaInPlaceholderReGlobal=new RegExp("%COMMA_IN_PLACEHOLDER%","g"),_cssSemiInPlaceholderReGlobal=new RegExp("%SEMI_IN_PLACEHOLDER%","g"),_cssColonInPlaceholderReGlobal=new RegExp("%COLON_IN_PLACEHOLDER%","g");class CssRule{constructor(selector,content){this.selector=selector,this.content=content}}function processRules(input,ruleCallback){const escaped=function escapeInStrings(input){let result=input,currentQuoteChar=null;for(let i=0;i{const selector=m[2];let content="",suffix=m[4],contentPrefix="";suffix&&suffix.startsWith("{"+BLOCK_PLACEHOLDER)&&(content=inputWithEscapedBlocks.blocks[nextBlockIndex++],suffix=suffix.substring(BLOCK_PLACEHOLDER.length+1),contentPrefix="{");const rule=ruleCallback(new CssRule(selector,content));return`${m[1]}${rule.selector}${m[3]}${contentPrefix}${rule.content}${suffix}`})))}class StringWithEscapedBlocks{constructor(escapedString,blocks){this.escapedString=escapedString,this.blocks=blocks}}const ESCAPE_IN_STRING_MAP={";":"%SEMI_IN_PLACEHOLDER%",",":"%COMMA_IN_PLACEHOLDER%",":":"%COLON_IN_PLACEHOLDER%"};function unescapeQuotes(str,isQuoted){return isQuoted?str.replace(/((?:^|[^\\])(?:\\\\)*)\\(?=['"])/g,"$1"):str}function repeatGroups(groups,multiples){const length=groups.length;for(let i=1;iarg.isEquivalent(this.args[idx]))))}isConstant(){return!1}transformInternalExpressions(transform,flags){null!==this.body?this.body=transformExpressionsInExpression(this.body,transform,flags|VisitorContextFlag.InChildOperation):null!==this.fn&&(this.fn=transformExpressionsInExpression(this.fn,transform,flags));for(let i=0;iarg.clone())));return expr.fn=this.fn?.clone()??null,expr.varOffset=this.varOffset,expr}}class PureFunctionParameterExpr extends ExpressionBase{constructor(index){super(),this.index=index,this.kind=ExpressionKind.PureFunctionParameterExpr}visitExpression(){}isEquivalent(other){return other instanceof PureFunctionParameterExpr&&other.index===this.index}isConstant(){return!0}transformInternalExpressions(){}clone(){return new PureFunctionParameterExpr(this.index)}}class PipeBindingExpr extends ExpressionBase{static{_c=ConsumesVarsTrait,_d=UsesVarOffset}constructor(target,targetSlot,name,args){super(),this.target=target,this.targetSlot=targetSlot,this.name=name,this.args=args,this.kind=ExpressionKind.PipeBinding,this[_c]=!0,this[_d]=!0,this.varOffset=null}visitExpression(visitor,context){for(const arg of this.args)arg.visitExpression(visitor,context)}isEquivalent(){return!1}isConstant(){return!1}transformInternalExpressions(transform,flags){for(let idx=0;idxa.clone())));return r.varOffset=this.varOffset,r}}class PipeBindingVariadicExpr extends ExpressionBase{static{_e=ConsumesVarsTrait,_f=UsesVarOffset}constructor(target,targetSlot,name,args,numArgs){super(),this.target=target,this.targetSlot=targetSlot,this.name=name,this.args=args,this.numArgs=numArgs,this.kind=ExpressionKind.PipeBindingVariadic,this[_e]=!0,this[_f]=!0,this.varOffset=null}visitExpression(visitor,context){this.args.visitExpression(visitor,context)}isEquivalent(){return!1}isConstant(){return!1}transformInternalExpressions(transform,flags){this.args=transformExpressionsInExpression(this.args,transform,flags)}clone(){const r=new PipeBindingVariadicExpr(this.target,this.targetSlot,this.name,this.args.clone(),this.numArgs);return r.varOffset=this.varOffset,r}}class SafePropertyReadExpr extends ExpressionBase{constructor(receiver,name){super(),this.receiver=receiver,this.name=name,this.kind=ExpressionKind.SafePropertyRead}get index(){return this.name}visitExpression(visitor,context){this.receiver.visitExpression(visitor,context)}isEquivalent(){return!1}isConstant(){return!1}transformInternalExpressions(transform,flags){this.receiver=transformExpressionsInExpression(this.receiver,transform,flags)}clone(){return new SafePropertyReadExpr(this.receiver.clone(),this.name)}}class SafeKeyedReadExpr extends ExpressionBase{constructor(receiver,index,sourceSpan){super(sourceSpan),this.receiver=receiver,this.index=index,this.kind=ExpressionKind.SafeKeyedRead}visitExpression(visitor,context){this.receiver.visitExpression(visitor,context),this.index.visitExpression(visitor,context)}isEquivalent(){return!1}isConstant(){return!1}transformInternalExpressions(transform,flags){this.receiver=transformExpressionsInExpression(this.receiver,transform,flags),this.index=transformExpressionsInExpression(this.index,transform,flags)}clone(){return new SafeKeyedReadExpr(this.receiver.clone(),this.index.clone(),this.sourceSpan)}}class SafeInvokeFunctionExpr extends ExpressionBase{constructor(receiver,args){super(),this.receiver=receiver,this.args=args,this.kind=ExpressionKind.SafeInvokeFunction}visitExpression(visitor,context){this.receiver.visitExpression(visitor,context);for(const a of this.args)a.visitExpression(visitor,context)}isEquivalent(){return!1}isConstant(){return!1}transformInternalExpressions(transform,flags){this.receiver=transformExpressionsInExpression(this.receiver,transform,flags);for(let i=0;ia.clone())))}}class SafeTernaryExpr extends ExpressionBase{constructor(guard,expr){super(),this.guard=guard,this.expr=expr,this.kind=ExpressionKind.SafeTernaryExpr}visitExpression(visitor,context){this.guard.visitExpression(visitor,context),this.expr.visitExpression(visitor,context)}isEquivalent(){return!1}isConstant(){return!1}transformInternalExpressions(transform,flags){this.guard=transformExpressionsInExpression(this.guard,transform,flags),this.expr=transformExpressionsInExpression(this.expr,transform,flags)}clone(){return new SafeTernaryExpr(this.guard.clone(),this.expr.clone())}}class EmptyExpr extends ExpressionBase{constructor(){super(...arguments),this.kind=ExpressionKind.EmptyExpr}visitExpression(visitor,context){}isEquivalent(e){return e instanceof EmptyExpr}isConstant(){return!0}clone(){return new EmptyExpr}transformInternalExpressions(){}}class AssignTemporaryExpr extends ExpressionBase{constructor(expr,xref){super(),this.expr=expr,this.xref=xref,this.kind=ExpressionKind.AssignTemporaryExpr,this.name=null}visitExpression(visitor,context){this.expr.visitExpression(visitor,context)}isEquivalent(){return!1}isConstant(){return!1}transformInternalExpressions(transform,flags){this.expr=transformExpressionsInExpression(this.expr,transform,flags)}clone(){const a=new AssignTemporaryExpr(this.expr.clone(),this.xref);return a.name=this.name,a}}class ReadTemporaryExpr extends ExpressionBase{constructor(xref){super(),this.xref=xref,this.kind=ExpressionKind.ReadTemporaryExpr,this.name=null}visitExpression(visitor,context){}isEquivalent(){return this.xref==this.xref}isConstant(){return!1}transformInternalExpressions(transform,flags){}clone(){const r=new ReadTemporaryExpr(this.xref);return r.name=this.name,r}}class SlotLiteralExpr extends ExpressionBase{constructor(slot){super(),this.slot=slot,this.kind=ExpressionKind.SlotLiteralExpr}visitExpression(visitor,context){}isEquivalent(e){return e instanceof SlotLiteralExpr&&e.slot===this.slot}isConstant(){return!0}clone(){return new SlotLiteralExpr(this.slot)}transformInternalExpressions(){}}class ConditionalCaseExpr extends ExpressionBase{constructor(expr,target,targetSlot,alias=null){super(),this.expr=expr,this.target=target,this.targetSlot=targetSlot,this.alias=alias,this.kind=ExpressionKind.ConditionalCase}visitExpression(visitor,context){null!==this.expr&&this.expr.visitExpression(visitor,context)}isEquivalent(e){return e instanceof ConditionalCaseExpr&&e.expr===this.expr}isConstant(){return!0}clone(){return new ConditionalCaseExpr(this.expr,this.target,this.targetSlot)}transformInternalExpressions(transform,flags){null!==this.expr&&(this.expr=transformExpressionsInExpression(this.expr,transform,flags))}}class ConstCollectedExpr extends ExpressionBase{constructor(expr){super(),this.expr=expr,this.kind=ExpressionKind.ConstCollected}transformInternalExpressions(transform,flags){this.expr=transform(this.expr,flags)}visitExpression(visitor,context){this.expr.visitExpression(visitor,context)}isEquivalent(e){return e instanceof ConstCollectedExpr&&this.expr.isEquivalent(e.expr)}isConstant(){return this.expr.isConstant()}clone(){return new ConstCollectedExpr(this.expr)}}function visitExpressionsInOp(op,visitor){transformExpressionsInOp(op,((expr,flags)=>(visitor(expr,flags),expr)),VisitorContextFlag.None)}function transformExpressionsInInterpolation(interpolation,transform,flags){for(let i=0;itransformExpressionsInExpression(e,transform,flags)));else if(expr instanceof ArrowFunctionExpr)if(Array.isArray(expr.body))for(let i=0;i",BinaryOperator.Bigger],[">=",BinaryOperator.BiggerEquals],["|",BinaryOperator.BitwiseOr],["&",BinaryOperator.BitwiseAnd],["/",BinaryOperator.Divide],["==",BinaryOperator.Equals],["===",BinaryOperator.Identical],["<",BinaryOperator.Lower],["<=",BinaryOperator.LowerEquals],["-",BinaryOperator.Minus],["%",BinaryOperator.Modulo],["*",BinaryOperator.Multiply],["!=",BinaryOperator.NotEquals],["!==",BinaryOperator.NotIdentical],["??",BinaryOperator.NullishCoalesce],["||",BinaryOperator.Or],["+",BinaryOperator.Plus]]);function namespaceForKey(namespacePrefixKey){const NAMESPACES=new Map([["svg",Namespace.SVG],["math",Namespace.Math]]);return null===namespacePrefixKey?Namespace.HTML:NAMESPACES.get(namespacePrefixKey)??Namespace.HTML}function prefixWithNamespace(strippedTag,namespace){return namespace===Namespace.HTML?strippedTag:`:${function keyForNamespace(namespace){const NAMESPACES=new Map([["svg",Namespace.SVG],["math",Namespace.Math]]);for(const[k,n]of NAMESPACES.entries())if(n===namespace)return k;return null}(namespace)}:${strippedTag}`}function literalOrArrayLiteral(value){return Array.isArray(value)?literalArr(value.map(literalOrArrayLiteral)):literal(value)}function getConstIndex(job,allElementAttributes,xref){const attributes=allElementAttributes.get(xref);if(void 0!==attributes){const attrArray=serializeAttributes(attributes);if(attrArray.entries.length>0)return job.addConst(attrArray)}return null}const FLYWEIGHT_ARRAY=Object.freeze([]);class ElementAttributes{get attributes(){return this.byKind.get(BindingKind.Attribute)??FLYWEIGHT_ARRAY}get classes(){return this.byKind.get(BindingKind.ClassName)??FLYWEIGHT_ARRAY}get styles(){return this.byKind.get(BindingKind.StyleProperty)??FLYWEIGHT_ARRAY}get bindings(){return this.propertyBindings??FLYWEIGHT_ARRAY}get template(){return this.byKind.get(BindingKind.Template)??FLYWEIGHT_ARRAY}get i18n(){return this.byKind.get(BindingKind.I18n)??FLYWEIGHT_ARRAY}constructor(compatibility){this.compatibility=compatibility,this.known=new Map,this.byKind=new Map,this.propertyBindings=null,this.projectAs=null}isKnown(kind,name){const nameToValue=this.known.get(kind)??new Set;return this.known.set(kind,nameToValue),!!nameToValue.has(name)||(nameToValue.add(name),!1)}add(kind,name,value,namespace,trustedValueFn){if(!(this.compatibility===CompatibilityMode.TemplateDefinitionBuilder&&(kind===BindingKind.Attribute||kind===BindingKind.ClassName||kind===BindingKind.StyleProperty))&&this.isKnown(kind,name))return;if("ngProjectAs"===name){if(null===value||!(value instanceof LiteralExpr)||null==value.value||"string"!=typeof value.value?.toString())throw Error("ngProjectAs must have a string literal value");this.projectAs=value.value.toString()}const array=this.arrayFor(kind);if(array.push(...function getAttributeNameLiterals$1(namespace,name){const nameLiteral=literal(name);if(namespace)return[literal(0),literal(namespace),nameLiteral];return[nameLiteral]}(namespace,name)),kind===BindingKind.Attribute||kind===BindingKind.StyleProperty){if(null===value)throw Error("Attribute, i18n attribute, & style element attributes must have a value");if(null!==trustedValueFn){if(!isStringLiteral(value))throw Error("AssertionError: extracted attribute value should be string literal");array.push(taggedTemplate(trustedValueFn,new TemplateLiteral([new TemplateLiteralElement(value.value)],[]),void 0,value.sourceSpan))}else array.push(value)}}arrayFor(kind){return kind===BindingKind.Property||kind===BindingKind.TwoWayProperty?(this.propertyBindings??=[],this.propertyBindings):(this.byKind.has(kind)||this.byKind.set(kind,[]),this.byKind.get(kind))}}function serializeAttributes({attributes,bindings,classes,i18n,projectAs,styles,template}){const attrArray=[...attributes];if(null!==projectAs){const parsedR3Selector=parseSelectorToR3Selector(projectAs)[0];attrArray.push(literal(5),literalOrArrayLiteral(parsedR3Selector))}return classes.length>0&&attrArray.push(literal(1),...classes),styles.length>0&&attrArray.push(literal(2),...styles),bindings.length>0&&attrArray.push(literal(3),...bindings),template.length>0&&attrArray.push(literal(4),...template),i18n.length>0&&attrArray.push(literal(6),...i18n),literalArr(attrArray)}class Scope$1{constructor(){this.targets=new Map}}const REPLACEMENTS=new Map([[OpKind.ElementEnd,[OpKind.ElementStart,OpKind.Element]],[OpKind.ContainerEnd,[OpKind.ContainerStart,OpKind.Container]],[OpKind.I18nEnd,[OpKind.I18nStart,OpKind.I18n]]]),IGNORED_OP_KINDS=new Set([OpKind.Pipe]);[InvokeFunctionExpr,LiteralArrayExpr,LiteralMapExpr,SafeInvokeFunctionExpr,PipeBindingExpr].map((e=>e.constructor.name));function needsTemporaryInSafeAccess(e){return e instanceof UnaryOperatorExpr?needsTemporaryInSafeAccess(e.expr):e instanceof BinaryOperatorExpr?needsTemporaryInSafeAccess(e.lhs)||needsTemporaryInSafeAccess(e.rhs):e instanceof ConditionalExpr?!(!e.falseCase||!needsTemporaryInSafeAccess(e.falseCase))||(needsTemporaryInSafeAccess(e.condition)||needsTemporaryInSafeAccess(e.trueCase)):e instanceof NotExpr?needsTemporaryInSafeAccess(e.condition):e instanceof AssignTemporaryExpr?needsTemporaryInSafeAccess(e.expr):e instanceof ReadPropExpr?needsTemporaryInSafeAccess(e.receiver):e instanceof ReadKeyExpr?needsTemporaryInSafeAccess(e.receiver)||needsTemporaryInSafeAccess(e.index):e instanceof InvokeFunctionExpr||e instanceof LiteralArrayExpr||e instanceof LiteralMapExpr||e instanceof SafeInvokeFunctionExpr||e instanceof PipeBindingExpr}function safeTernaryWithTemporary(guard,body,ctx){let result;if(needsTemporaryInSafeAccess(guard)){const xref=ctx.job.allocateXrefId();result=[new AssignTemporaryExpr(guard,xref),new ReadTemporaryExpr(xref)]}else result=[guard,guard.clone()],function eliminateTemporaryAssignments(e,tmps,ctx){return transformExpressionsInExpression(e,(e=>{if(e instanceof AssignTemporaryExpr&&tmps.has(e.xref)){const read=new ReadTemporaryExpr(e.xref);return ctx.job.compatibility===CompatibilityMode.TemplateDefinitionBuilder?new AssignTemporaryExpr(read,read.xref):read}return e}),VisitorContextFlag.None),e}(result[1],function temporariesIn(e){const temporaries=new Set;return transformExpressionsInExpression(e,(e=>(e instanceof AssignTemporaryExpr&&temporaries.add(e.xref),e)),VisitorContextFlag.None),temporaries}(result[0]),ctx);return new SafeTernaryExpr(result[0],body(result[1]))}function isAccessExpression(e){return function isSafeAccessExpression(e){return e instanceof SafePropertyReadExpr||e instanceof SafeKeyedReadExpr||e instanceof SafeInvokeFunctionExpr}(e)||function isUnsafeAccessExpression(e){return e instanceof ReadPropExpr||e instanceof ReadKeyExpr||e instanceof InvokeFunctionExpr}(e)}function safeTransform(e,ctx){if(!isAccessExpression(e))return e;const dst=function deepestSafeTernary(e){if(isAccessExpression(e)&&e.receiver instanceof SafeTernaryExpr){let st=e.receiver;for(;st.expr instanceof SafeTernaryExpr;)st=st.expr;return st}return null}(e);if(dst){if(e instanceof InvokeFunctionExpr)return dst.expr=dst.expr.callFn(e.args),e.receiver;if(e instanceof ReadPropExpr)return dst.expr=dst.expr.prop(e.name),e.receiver;if(e instanceof ReadKeyExpr)return dst.expr=dst.expr.key(e.index),e.receiver;if(e instanceof SafeInvokeFunctionExpr)return dst.expr=safeTernaryWithTemporary(dst.expr,(r=>r.callFn(e.args)),ctx),e.receiver;if(e instanceof SafePropertyReadExpr)return dst.expr=safeTernaryWithTemporary(dst.expr,(r=>r.prop(e.name)),ctx),e.receiver;if(e instanceof SafeKeyedReadExpr)return dst.expr=safeTernaryWithTemporary(dst.expr,(r=>r.key(e.index)),ctx),e.receiver}else{if(e instanceof SafeInvokeFunctionExpr)return safeTernaryWithTemporary(e.receiver,(r=>r.callFn(e.args)),ctx);if(e instanceof SafePropertyReadExpr)return safeTernaryWithTemporary(e.receiver,(r=>r.prop(e.name)),ctx);if(e instanceof SafeKeyedReadExpr)return safeTernaryWithTemporary(e.receiver,(r=>r.key(e.index)),ctx)}return e}function ternaryTransform(e){return e instanceof SafeTernaryExpr?new ConditionalExpr(new BinaryOperatorExpr(BinaryOperator.Equals,e.guard,NULL_EXPR),NULL_EXPR,e.expr):e}function createI18nMessage(job,context,messagePlaceholder){let formattedParams=formatParams(context.params);const formattedPostprocessingParams=formatParams(context.postprocessingParams);let needsPostprocessing=[...context.params.values()].some((v=>v.length>1));return function createI18nMessageOp(xref,i18nContext,i18nBlock,message,messagePlaceholder,params,postprocessingParams,needsPostprocessing){return{kind:OpKind.I18nMessage,xref,i18nContext,i18nBlock,message,messagePlaceholder,params,postprocessingParams,needsPostprocessing,subMessages:[],...NEW_OP}}(job.allocateXrefId(),context.xref,context.i18nBlock,context.message,messagePlaceholder??null,formattedParams,formattedPostprocessingParams,needsPostprocessing)}function formatIcuPlaceholder(op){if(op.strings.length!==op.expressionPlaceholders.length+1)throw Error(`AssertionError: Invalid ICU placeholder with ${op.strings.length} strings and ${op.expressionPlaceholders.length} expressions`);const values=op.expressionPlaceholders.map(formatValue);return op.strings.flatMap(((str,i)=>[str,values[i]||""])).join("")}function formatParams(params){const formattedParams=new Map;for(const[placeholder,placeholderValues]of params){const serializedValues=formatParamValues(placeholderValues);null!==serializedValues&&formattedParams.set(placeholder,literal(serializedValues))}return formattedParams}function formatParamValues(values){if(0===values.length)return null;const serializedValues=values.map((value=>formatValue(value)));return 1===serializedValues.length?serializedValues[0]:`[${serializedValues.join("|")}]`}function formatValue(value){if(value.flags&I18nParamValueFlags.ElementTag&&value.flags&I18nParamValueFlags.TemplateTag){if("object"!=typeof value.value)throw Error("AssertionError: Expected i18n param value to have an element and template slot");const elementValue=formatValue({...value,value:value.value.element,flags:value.flags&~I18nParamValueFlags.TemplateTag}),templateValue=formatValue({...value,value:value.value.template,flags:value.flags&~I18nParamValueFlags.ElementTag});return value.flags&I18nParamValueFlags.OpenTag&&value.flags&I18nParamValueFlags.CloseTag?`${templateValue}${elementValue}${templateValue}`:value.flags&I18nParamValueFlags.CloseTag?`${elementValue}${templateValue}`:`${templateValue}${elementValue}`}if(value.flags&I18nParamValueFlags.OpenTag&&value.flags&I18nParamValueFlags.CloseTag)return`${formatValue({...value,flags:value.flags&~I18nParamValueFlags.CloseTag})}${formatValue({...value,flags:value.flags&~I18nParamValueFlags.OpenTag})}`;if(value.flags===I18nParamValueFlags.None)return`${value.value}`;let tagMarker="",closeMarker="";value.flags&I18nParamValueFlags.ElementTag?tagMarker="#":value.flags&I18nParamValueFlags.TemplateTag&&(tagMarker="*"),""!==tagMarker&&(closeMarker=value.flags&I18nParamValueFlags.CloseTag?"/":"");const context=null===value.subTemplateIndex?"":`:${value.subTemplateIndex}`;return`�${closeMarker}${tagMarker}${value.value}${context}�`}function recursivelyProcessView(view,parentScope){const scope=function getScopeForView(view,parent){const scope={view:view.xref,viewContextVariable:{kind:SemanticVariableKind.Context,name:null,view:view.xref},contextVariables:new Map,aliases:view.aliases,references:[],parent};for(const identifier of view.contextVariables.keys())scope.contextVariables.set(identifier,{kind:SemanticVariableKind.Identifier,name:null,identifier});for(const op of view.create)switch(op.kind){case OpKind.ElementStart:case OpKind.Template:if(!Array.isArray(op.localRefs))throw new Error("AssertionError: expected localRefs to be an array");for(let offset=0;offset0?name.substring(0,overrideIndex):"");let suffix=null,property=name;const unitIndex=name.lastIndexOf(".");return unitIndex>0&&(suffix=name.slice(unitIndex+1),property=name.substring(0,unitIndex)),{property,suffix}}function mapLiteral(obj,quoted=!1){return literalMap(Object.keys(obj).map((key=>({key,quoted,value:obj[key]}))))}const serializer=new class IcuSerializerVisitor{visitText(text){return text.value}visitContainer(container){return container.children.map((child=>child.visit(this))).join("")}visitIcu(icu){const strCases=Object.keys(icu.cases).map((k=>`${k} {${icu.cases[k].visit(this)}}`));return`{${icu.expressionPlaceholder}, ${icu.type}, ${strCases.join(" ")}}`}visitTagPlaceholder(ph){return ph.isVoid?this.formatPh(ph.startName):`${this.formatPh(ph.startName)}${ph.children.map((child=>child.visit(this))).join("")}${this.formatPh(ph.closeName)}`}visitPlaceholder(ph){return this.formatPh(ph.name)}visitBlockPlaceholder(ph){return`${this.formatPh(ph.startName)}${ph.children.map((child=>child.visit(this))).join("")}${this.formatPh(ph.closeName)}`}visitIcuPlaceholder(ph,context){return this.formatPh(ph.name)}formatPh(value){return`{${formatI18nPlaceholderName(value,!1)}}`}};function serializeIcuNode(icu){return icu.visit(serializer)}var TokenType;!function(TokenType){TokenType[TokenType.Character=0]="Character",TokenType[TokenType.Identifier=1]="Identifier",TokenType[TokenType.PrivateIdentifier=2]="PrivateIdentifier",TokenType[TokenType.Keyword=3]="Keyword",TokenType[TokenType.String=4]="String",TokenType[TokenType.Operator=5]="Operator",TokenType[TokenType.Number=6]="Number",TokenType[TokenType.Error=7]="Error"}(TokenType||(TokenType={}));const KEYWORDS=["var","let","as","null","undefined","true","false","if","else","this"];class Lexer{tokenize(text){const scanner=new _Scanner(text),tokens=[];let token=scanner.scanToken();for(;null!=token;)tokens.push(token),token=scanner.scanToken();return tokens}}class Token{constructor(index,end,type,numValue,strValue){this.index=index,this.end=end,this.type=type,this.numValue=numValue,this.strValue=strValue}isCharacter(code){return this.type==TokenType.Character&&this.numValue==code}isNumber(){return this.type==TokenType.Number}isString(){return this.type==TokenType.String}isOperator(operator){return this.type==TokenType.Operator&&this.strValue==operator}isIdentifier(){return this.type==TokenType.Identifier}isPrivateIdentifier(){return this.type==TokenType.PrivateIdentifier}isKeyword(){return this.type==TokenType.Keyword}isKeywordLet(){return this.type==TokenType.Keyword&&"let"==this.strValue}isKeywordAs(){return this.type==TokenType.Keyword&&"as"==this.strValue}isKeywordNull(){return this.type==TokenType.Keyword&&"null"==this.strValue}isKeywordUndefined(){return this.type==TokenType.Keyword&&"undefined"==this.strValue}isKeywordTrue(){return this.type==TokenType.Keyword&&"true"==this.strValue}isKeywordFalse(){return this.type==TokenType.Keyword&&"false"==this.strValue}isKeywordThis(){return this.type==TokenType.Keyword&&"this"==this.strValue}isError(){return this.type==TokenType.Error}toNumber(){return this.type==TokenType.Number?this.numValue:-1}toString(){switch(this.type){case TokenType.Character:case TokenType.Identifier:case TokenType.Keyword:case TokenType.Operator:case TokenType.PrivateIdentifier:case TokenType.String:case TokenType.Error:return this.strValue;case TokenType.Number:return this.numValue.toString();default:return null}}}function newCharacterToken(index,end,code){return new Token(index,end,TokenType.Character,code,String.fromCharCode(code))}function newOperatorToken(index,end,text){return new Token(index,end,TokenType.Operator,0,text)}const EOF=new Token(-1,-1,TokenType.Character,0,"");class _Scanner{constructor(input){this.input=input,this.peek=0,this.index=-1,this.length=input.length,this.advance()}advance(){this.peek=++this.index>=this.length?$EOF:this.input.charCodeAt(this.index)}scanToken(){const input=this.input,length=this.length;let peek=this.peek,index=this.index;for(;peek<=32;){if(++index>=length){peek=$EOF;break}peek=input.charCodeAt(index)}if(this.peek=peek,this.index=index,index>=length)return null;if(isIdentifierStart(peek))return this.scanIdentifier();if(isDigit(peek))return this.scanNumber(index);const start=index;switch(peek){case 46:return this.advance(),isDigit(this.peek)?this.scanNumber(start):newCharacterToken(start,this.index,46);case 40:case 41:case 123:case 125:case 91:case 93:case 44:case 58:case 59:return this.scanCharacter(start,peek);case 39:case 34:return this.scanString();case 35:return this.scanPrivateIdentifier();case 43:case 45:case 42:case 47:case 37:case 94:return this.scanOperator(start,String.fromCharCode(peek));case 63:return this.scanQuestion(start);case 60:case 62:return this.scanComplexOperator(start,String.fromCharCode(peek),61,"=");case 33:case 61:return this.scanComplexOperator(start,String.fromCharCode(peek),61,"=",61,"=");case 38:return this.scanComplexOperator(start,"&",38,"&");case 124:return this.scanComplexOperator(start,"|",124,"|");case 160:for(;isWhitespace(this.peek);)this.advance();return this.scanToken()}return this.advance(),this.error(`Unexpected character [${String.fromCharCode(peek)}]`,0)}scanCharacter(start,code){return this.advance(),newCharacterToken(start,this.index,code)}scanOperator(start,str){return this.advance(),newOperatorToken(start,this.index,str)}scanComplexOperator(start,one,twoCode,two,threeCode,three){this.advance();let str=one;return this.peek==twoCode&&(this.advance(),str+=two),null!=threeCode&&this.peek==threeCode&&(this.advance(),str+=three),newOperatorToken(start,this.index,str)}scanIdentifier(){const start=this.index;for(this.advance();isIdentifierPart(this.peek);)this.advance();const str=this.input.substring(start,this.index);return KEYWORDS.indexOf(str)>-1?function newKeywordToken(index,end,text){return new Token(index,end,TokenType.Keyword,0,text)}(start,this.index,str):function newIdentifierToken(index,end,text){return new Token(index,end,TokenType.Identifier,0,text)}(start,this.index,str)}scanPrivateIdentifier(){const start=this.index;if(this.advance(),!isIdentifierStart(this.peek))return this.error("Invalid character [#]",-1);for(;isIdentifierPart(this.peek);)this.advance();const identifierName=this.input.substring(start,this.index);return function newPrivateIdentifierToken(index,end,text){return new Token(index,end,TokenType.PrivateIdentifier,0,text)}(start,this.index,identifierName)}scanNumber(start){let simple=this.index===start,hasSeparators=!1;for(this.advance();;){if(isDigit(this.peek));else if(this.peek===$_){if(!isDigit(this.input.charCodeAt(this.index-1))||!isDigit(this.input.charCodeAt(this.index+1)))return this.error("Invalid numeric separator",0);hasSeparators=!0}else if(46===this.peek)simple=!1;else{if(101!=(code=this.peek)&&69!=code)break;if(this.advance(),isExponentSign(this.peek)&&this.advance(),!isDigit(this.peek))return this.error("Invalid exponent",-1);simple=!1}this.advance()}var code;let str=this.input.substring(start,this.index);hasSeparators&&(str=str.replace(/_/g,""));const value=simple?function parseIntAutoRadix(text){const result=parseInt(text);if(isNaN(result))throw new Error("Invalid integer literal when parsing "+text);return result}(str):parseFloat(str);return function newNumberToken(index,end,n){return new Token(index,end,TokenType.Number,n,"")}(start,this.index,value)}scanString(){const start=this.index,quote=this.peek;this.advance();let buffer="",marker=this.index;const input=this.input;for(;this.peek!=quote;)if(92==this.peek){let unescapedCode;if(buffer+=input.substring(marker,this.index),this.advance(),117==this.peek){const hex=input.substring(this.index+1,this.index+5);if(!/^[0-9a-f]+$/i.test(hex))return this.error(`Invalid unicode escape [\\u${hex}]`,0);unescapedCode=parseInt(hex,16);for(let i=0;i<5;i++)this.advance()}else unescapedCode=unescape(this.peek),this.advance();buffer+=String.fromCharCode(unescapedCode),marker=this.index}else{if(this.peek==$EOF)return this.error("Unterminated quote",0);this.advance()}const last=input.substring(marker,this.index);return this.advance(),function newStringToken(index,end,text){return new Token(index,end,TokenType.String,0,text)}(start,this.index,buffer+last)}scanQuestion(start){this.advance();let str="?";return 63!==this.peek&&46!==this.peek||(str+=46===this.peek?".":"?",this.advance()),newOperatorToken(start,this.index,str)}error(message,offset){const position=this.index+offset;return function newErrorToken(index,end,message){return new Token(index,end,TokenType.Error,0,message)}(position,this.index,`Lexer Error: ${message} at column ${position} in expression [${this.input}]`)}}function isIdentifierStart(code){return $a<=code&&code<=$z||$A<=code&&code<=$Z||code==$_||code==$$}function isIdentifier(input){if(0==input.length)return!1;const scanner=new _Scanner(input);if(!isIdentifierStart(scanner.peek))return!1;for(scanner.advance();scanner.peek!==$EOF;){if(!isIdentifierPart(scanner.peek))return!1;scanner.advance()}return!0}function isIdentifierPart(code){return isAsciiLetter(code)||isDigit(code)||code==$_||code==$$}function isExponentSign(code){return 45==code||43==code}function unescape(code){switch(code){case 110:return 10;case 102:return 12;case 114:return 13;case 116:return 9;case 118:return 11;default:return code}}class SplitInterpolation{constructor(strings,expressions,offsets){this.strings=strings,this.expressions=expressions,this.offsets=offsets}}class TemplateBindingParseResult{constructor(templateBindings,warnings,errors){this.templateBindings=templateBindings,this.warnings=warnings,this.errors=errors}}class Parser$1{constructor(_lexer){this._lexer=_lexer,this.errors=[]}parseAction(input,location,absoluteOffset,interpolationConfig=DEFAULT_INTERPOLATION_CONFIG){this._checkNoInterpolation(input,location,interpolationConfig);const sourceToLex=this._stripComments(input),tokens=this._lexer.tokenize(sourceToLex),ast=new _ParseAST(input,location,absoluteOffset,tokens,1,this.errors,0).parseChain();return new ASTWithSource(ast,input,location,absoluteOffset,this.errors)}parseBinding(input,location,absoluteOffset,interpolationConfig=DEFAULT_INTERPOLATION_CONFIG){const ast=this._parseBindingAst(input,location,absoluteOffset,interpolationConfig);return new ASTWithSource(ast,input,location,absoluteOffset,this.errors)}checkSimpleExpression(ast){const checker=new SimpleExpressionChecker;return ast.visit(checker),checker.errors}parseSimpleBinding(input,location,absoluteOffset,interpolationConfig=DEFAULT_INTERPOLATION_CONFIG){const ast=this._parseBindingAst(input,location,absoluteOffset,interpolationConfig),errors=this.checkSimpleExpression(ast);return errors.length>0&&this._reportError(`Host binding expression cannot contain ${errors.join(" ")}`,input,location),new ASTWithSource(ast,input,location,absoluteOffset,this.errors)}_reportError(message,input,errLocation,ctxLocation){this.errors.push(new ParserError(message,input,errLocation,ctxLocation))}_parseBindingAst(input,location,absoluteOffset,interpolationConfig){this._checkNoInterpolation(input,location,interpolationConfig);const sourceToLex=this._stripComments(input),tokens=this._lexer.tokenize(sourceToLex);return new _ParseAST(input,location,absoluteOffset,tokens,0,this.errors,0).parseChain()}parseTemplateBindings(templateKey,templateValue,templateUrl,absoluteKeyOffset,absoluteValueOffset){const tokens=this._lexer.tokenize(templateValue);return new _ParseAST(templateValue,templateUrl,absoluteValueOffset,tokens,0,this.errors,0).parseTemplateBindings({source:templateKey,span:new AbsoluteSourceSpan(absoluteKeyOffset,absoluteKeyOffset+templateKey.length)})}parseInterpolation(input,location,absoluteOffset,interpolatedTokens,interpolationConfig=DEFAULT_INTERPOLATION_CONFIG){const{strings,expressions,offsets}=this.splitInterpolation(input,location,interpolatedTokens,interpolationConfig);if(0===expressions.length)return null;const expressionNodes=[];for(let i=0;is.text)),expressionNodes,input,location,absoluteOffset)}parseInterpolationExpression(expression,location,absoluteOffset){const sourceToLex=this._stripComments(expression),tokens=this._lexer.tokenize(sourceToLex),ast=new _ParseAST(expression,location,absoluteOffset,tokens,0,this.errors,0).parseChain();return this.createInterpolationAst(["",""],[ast],expression,location,absoluteOffset)}createInterpolationAst(strings,expressions,input,location,absoluteOffset){const span=new ParseSpan(0,input.length),interpolation=new Interpolation$1(span,span.toAbsolute(absoluteOffset),strings,expressions);return new ASTWithSource(interpolation,input,location,absoluteOffset,this.errors)}splitInterpolation(input,location,interpolatedTokens,interpolationConfig=DEFAULT_INTERPOLATION_CONFIG){const strings=[],expressions=[],offsets=[],inputToTemplateIndexMap=interpolatedTokens?function getIndexMapForOriginalTemplate(interpolatedTokens){let offsetMap=new Map,consumedInOriginalTemplate=0,consumedInInput=0,tokenIndex=0;for(;tokenIndexsum+current.length),0);consumedInInput+=lengthOfParts,consumedInOriginalTemplate+=lengthOfParts}offsetMap.set(consumedInInput,consumedInOriginalTemplate),tokenIndex++}return offsetMap}(interpolatedTokens):null;let i=0,atInterpolation=!1,extendLastString=!1,{start:interpStart,end:interpEnd}=interpolationConfig;for(;i-1)break;startIndex>-1&&endIndex>-1&&this._reportError(`Got interpolation (${start}${end}) where expression was expected`,input,`at column ${startIndex} in`,location)}_getInterpolationEndIndex(input,expressionEnd,start){for(const charIndex of this._forEachUnquotedChar(input,start)){if(input.startsWith(expressionEnd,charIndex))return charIndex;if(input.startsWith("//",charIndex))return input.indexOf(expressionEnd,charIndex)}return-1}*_forEachUnquotedChar(input,start){let currentQuote=null,escapeCount=0;for(let i=start;i=this.tokens.length}get inputIndex(){return this.atEOF?this.currentEndIndex:this.next.index+this.offset}get currentEndIndex(){if(this.index>0){return this.peek(-1).end+this.offset}return 0===this.tokens.length?this.input.length+this.offset:this.next.index+this.offset}get currentAbsoluteOffset(){return this.absoluteOffset+this.inputIndex}span(start,artificialEndIndex){let endIndex=this.currentEndIndex;if(void 0!==artificialEndIndex&&artificialEndIndex>this.currentEndIndex&&(endIndex=artificialEndIndex),start>endIndex){const tmp=endIndex;endIndex=start,start=tmp}return new ParseSpan(start,endIndex)}sourceSpan(start,artificialEndIndex){const serial=`${start}@${this.inputIndex}:${artificialEndIndex}`;return this.sourceSpanCache.has(serial)||this.sourceSpanCache.set(serial,this.span(start,artificialEndIndex).toAbsolute(this.absoluteOffset)),this.sourceSpanCache.get(serial)}advance(){this.index++}withContext(context,cb){this.context|=context;const ret=cb();return this.context^=context,ret}consumeOptionalCharacter(code){return!!this.next.isCharacter(code)&&(this.advance(),!0)}peekKeywordLet(){return this.next.isKeywordLet()}peekKeywordAs(){return this.next.isKeywordAs()}expectCharacter(code){this.consumeOptionalCharacter(code)||this.error(`Missing expected ${String.fromCharCode(code)}`)}consumeOptionalOperator(op){return!!this.next.isOperator(op)&&(this.advance(),!0)}expectOperator(operator){this.consumeOptionalOperator(operator)||this.error(`Missing expected operator ${operator}`)}prettyPrintToken(tok){return tok===EOF?"end of input":`token ${tok}`}expectIdentifierOrKeyword(){const n=this.next;return n.isIdentifier()||n.isKeyword()?(this.advance(),n.toString()):(n.isPrivateIdentifier()?this._reportErrorForPrivateIdentifier(n,"expected identifier or keyword"):this.error(`Unexpected ${this.prettyPrintToken(n)}, expected identifier or keyword`),null)}expectIdentifierOrKeywordOrString(){const n=this.next;return n.isIdentifier()||n.isKeyword()||n.isString()?(this.advance(),n.toString()):(n.isPrivateIdentifier()?this._reportErrorForPrivateIdentifier(n,"expected identifier, keyword or string"):this.error(`Unexpected ${this.prettyPrintToken(n)}, expected identifier, keyword, or string`),"")}parseChain(){const exprs=[],start=this.inputIndex;for(;this.index":case"<=":case">=":this.advance();const right=this.parseAdditive();result=new Binary(this.span(start),this.sourceSpan(start),operator,result,right);continue}break}return result}parseAdditive(){const start=this.inputIndex;let result=this.parseMultiplicative();for(;this.next.type==TokenType.Operator;){const operator=this.next.strValue;switch(operator){case"+":case"-":this.advance();let right=this.parseMultiplicative();result=new Binary(this.span(start),this.sourceSpan(start),operator,result,right);continue}break}return result}parseMultiplicative(){const start=this.inputIndex;let result=this.parsePrefix();for(;this.next.type==TokenType.Operator;){const operator=this.next.strValue;switch(operator){case"*":case"%":case"/":this.advance();let right=this.parsePrefix();result=new Binary(this.span(start),this.sourceSpan(start),operator,result,right);continue}break}return result}parsePrefix(){if(this.next.type==TokenType.Operator){const start=this.inputIndex;let result;switch(this.next.strValue){case"+":return this.advance(),result=this.parsePrefix(),Unary.createPlus(this.span(start),this.sourceSpan(start),result);case"-":return this.advance(),result=this.parsePrefix(),Unary.createMinus(this.span(start),this.sourceSpan(start),result);case"!":return this.advance(),result=this.parsePrefix(),new PrefixNot(this.span(start),this.sourceSpan(start),result)}}return this.parseCallChain()}parseCallChain(){const start=this.inputIndex;let result=this.parsePrimary();for(;;)if(this.consumeOptionalCharacter(46))result=this.parseAccessMember(result,start,!1);else if(this.consumeOptionalOperator("?."))result=this.consumeOptionalCharacter(40)?this.parseCall(result,start,!0):this.consumeOptionalCharacter(91)?this.parseKeyedReadOrWrite(result,start,!0):this.parseAccessMember(result,start,!0);else if(this.consumeOptionalCharacter(91))result=this.parseKeyedReadOrWrite(result,start,!1);else if(this.consumeOptionalCharacter(40))result=this.parseCall(result,start,!1);else{if(!this.consumeOptionalOperator("!"))return result;result=new NonNullAssert(this.span(start),this.sourceSpan(start),result)}}parsePrimary(){const start=this.inputIndex;if(this.consumeOptionalCharacter(40)){this.rparensExpected++;const result=this.parsePipe();return this.rparensExpected--,this.expectCharacter(41),result}if(this.next.isKeywordNull())return this.advance(),new LiteralPrimitive(this.span(start),this.sourceSpan(start),null);if(this.next.isKeywordUndefined())return this.advance(),new LiteralPrimitive(this.span(start),this.sourceSpan(start),void 0);if(this.next.isKeywordTrue())return this.advance(),new LiteralPrimitive(this.span(start),this.sourceSpan(start),!0);if(this.next.isKeywordFalse())return this.advance(),new LiteralPrimitive(this.span(start),this.sourceSpan(start),!1);if(this.next.isKeywordThis())return this.advance(),new ThisReceiver(this.span(start),this.sourceSpan(start));if(this.consumeOptionalCharacter(91)){this.rbracketsExpected++;const elements=this.parseExpressionList(93);return this.rbracketsExpected--,this.expectCharacter(93),new LiteralArray(this.span(start),this.sourceSpan(start),elements)}if(this.next.isCharacter(123))return this.parseLiteralMap();if(this.next.isIdentifier())return this.parseAccessMember(new ImplicitReceiver(this.span(start),this.sourceSpan(start)),start,!1);if(this.next.isNumber()){const value=this.next.toNumber();return this.advance(),new LiteralPrimitive(this.span(start),this.sourceSpan(start),value)}if(this.next.isString()){const literalValue=this.next.toString();return this.advance(),new LiteralPrimitive(this.span(start),this.sourceSpan(start),literalValue)}return this.next.isPrivateIdentifier()?(this._reportErrorForPrivateIdentifier(this.next,null),new EmptyExpr$1(this.span(start),this.sourceSpan(start))):this.index>=this.tokens.length?(this.error(`Unexpected end of expression: ${this.input}`),new EmptyExpr$1(this.span(start),this.sourceSpan(start))):(this.error(`Unexpected token ${this.next}`),new EmptyExpr$1(this.span(start),this.sourceSpan(start)))}parseExpressionList(terminator){const result=[];do{if(this.next.isCharacter(terminator))break;result.push(this.parsePipe())}while(this.consumeOptionalCharacter(44));return result}parseLiteralMap(){const keys=[],values=[],start=this.inputIndex;if(this.expectCharacter(123),!this.consumeOptionalCharacter(125)){this.rbracesExpected++;do{const keyStart=this.inputIndex,quoted=this.next.isString(),key=this.expectIdentifierOrKeywordOrString();if(keys.push({key,quoted}),quoted)this.expectCharacter(58),values.push(this.parsePipe());else if(this.consumeOptionalCharacter(58))values.push(this.parsePipe());else{const span=this.span(keyStart),sourceSpan=this.sourceSpan(keyStart);values.push(new PropertyRead(span,sourceSpan,sourceSpan,new ImplicitReceiver(span,sourceSpan),key))}}while(this.consumeOptionalCharacter(44)&&!this.next.isCharacter(125));this.rbracesExpected--,this.expectCharacter(125)}return new LiteralMap(this.span(start),this.sourceSpan(start),keys,values)}parseAccessMember(readReceiver,start,isSafe){const nameStart=this.inputIndex,id=this.withContext(ParseContextFlags.Writable,(()=>{const id=this.expectIdentifierOrKeyword()??"";return 0===id.length&&this.error("Expected identifier for property access",readReceiver.span.end),id})),nameSpan=this.sourceSpan(nameStart);let receiver;if(isSafe)this.consumeOptionalOperator("=")?(this.error("The '?.' operator cannot be used in the assignment"),receiver=new EmptyExpr$1(this.span(start),this.sourceSpan(start))):receiver=new SafePropertyRead(this.span(start),this.sourceSpan(start),nameSpan,readReceiver,id);else if(this.consumeOptionalOperator("=")){if(!(1&this.parseFlags))return this.error("Bindings cannot contain assignments"),new EmptyExpr$1(this.span(start),this.sourceSpan(start));const value=this.parseConditional();receiver=new PropertyWrite(this.span(start),this.sourceSpan(start),nameSpan,readReceiver,id,value)}else receiver=new PropertyRead(this.span(start),this.sourceSpan(start),nameSpan,readReceiver,id);return receiver}parseCall(receiver,start,isSafe){const argumentStart=this.inputIndex;this.rparensExpected++;const args=this.parseCallArguments(),argumentSpan=this.span(argumentStart,this.inputIndex).toAbsolute(this.absoluteOffset);this.expectCharacter(41),this.rparensExpected--;const span=this.span(start),sourceSpan=this.sourceSpan(start);return isSafe?new SafeCall(span,sourceSpan,receiver,args,argumentSpan):new Call(span,sourceSpan,receiver,args,argumentSpan)}parseCallArguments(){if(this.next.isCharacter(41))return[];const positionals=[];do{positionals.push(this.parsePipe())}while(this.consumeOptionalCharacter(44));return positionals}expectTemplateBindingKey(){let result="",operatorFound=!1;const start=this.currentAbsoluteOffset;do{result+=this.expectIdentifierOrKeywordOrString(),operatorFound=this.consumeOptionalOperator("-"),operatorFound&&(result+="-")}while(operatorFound);return{source:result,span:new AbsoluteSourceSpan(start,start+result.length)}}parseTemplateBindings(templateKey){const bindings=[];for(bindings.push(...this.parseDirectiveKeywordBindings(templateKey));this.index{this.rbracketsExpected++;const key=this.parsePipe();if(key instanceof EmptyExpr$1&&this.error("Key access cannot be empty"),this.rbracketsExpected--,this.expectCharacter(93),!this.consumeOptionalOperator("="))return isSafe?new SafeKeyedRead(this.span(start),this.sourceSpan(start),receiver,key):new KeyedRead(this.span(start),this.sourceSpan(start),receiver,key);if(!isSafe){const value=this.parseConditional();return new KeyedWrite(this.span(start),this.sourceSpan(start),receiver,key,value)}return this.error("The '?.' operator cannot be used in the assignment"),new EmptyExpr$1(this.span(start),this.sourceSpan(start))}))}parseDirectiveKeywordBindings(key){const bindings=[];this.consumeOptionalCharacter(58);const value=this.getDirectiveBoundTarget();let spanEnd=this.currentAbsoluteOffset;const asBinding=this.parseAsBinding(key);asBinding||(this.consumeStatementTerminator(),spanEnd=this.currentAbsoluteOffset);const sourceSpan=new AbsoluteSourceSpan(key.span.start,spanEnd);return bindings.push(new ExpressionBinding(sourceSpan,key,value)),asBinding&&bindings.push(asBinding),bindings}getDirectiveBoundTarget(){if(this.next===EOF||this.peekKeywordAs()||this.peekKeywordLet())return null;const ast=this.parsePipe(),{start,end}=ast.span,value=this.input.substring(start,end);return new ASTWithSource(ast,value,this.location,this.absoluteOffset+start,this.errors)}parseAsBinding(value){if(!this.peekKeywordAs())return null;this.advance();const key=this.expectTemplateBindingKey();this.consumeStatementTerminator();const sourceSpan=new AbsoluteSourceSpan(value.span.start,this.currentAbsoluteOffset);return new VariableBinding(sourceSpan,key,value)}parseLetBinding(){if(!this.peekKeywordLet())return null;const spanStart=this.currentAbsoluteOffset;this.advance();const key=this.expectTemplateBindingKey();let value=null;this.consumeOptionalOperator("=")&&(value=this.expectTemplateBindingKey()),this.consumeStatementTerminator();const sourceSpan=new AbsoluteSourceSpan(spanStart,this.currentAbsoluteOffset);return new VariableBinding(sourceSpan,key,value)}consumeStatementTerminator(){this.consumeOptionalCharacter(59)||this.consumeOptionalCharacter(44)}error(message,index=null){this.errors.push(new ParserError(message,this.input,this.locationText(index),this.location)),this.skip()}locationText(index=null){return null==index&&(index=this.index),indexvisitor.visit(ast,context)||ast.visit(visitor,context):ast=>ast.visit(visitor,context);return nodes.forEach((ast=>{const astResult=visit(ast);astResult&&result.push(astResult)})),result}class RecursiveVisitor{constructor(){}visitElement(ast,context){this.visitChildren(context,(visit=>{visit(ast.attrs),visit(ast.children)}))}visitAttribute(ast,context){}visitText(ast,context){}visitComment(ast,context){}visitExpansion(ast,context){return this.visitChildren(context,(visit=>{visit(ast.cases)}))}visitExpansionCase(ast,context){}visitBlock(block,context){this.visitChildren(context,(visit=>{visit(block.parameters),visit(block.children)}))}visitBlockParameter(ast,context){}visitChildren(context,cb){let results=[],t=this;return cb((function visit(children){children&&results.push(visitAll(t,children,context))})),Array.prototype.concat.apply([],results)}}class ElementSchemaRegistry{}const SCHEMA=["[Element]|textContent,%ariaAtomic,%ariaAutoComplete,%ariaBusy,%ariaChecked,%ariaColCount,%ariaColIndex,%ariaColSpan,%ariaCurrent,%ariaDescription,%ariaDisabled,%ariaExpanded,%ariaHasPopup,%ariaHidden,%ariaKeyShortcuts,%ariaLabel,%ariaLevel,%ariaLive,%ariaModal,%ariaMultiLine,%ariaMultiSelectable,%ariaOrientation,%ariaPlaceholder,%ariaPosInSet,%ariaPressed,%ariaReadOnly,%ariaRelevant,%ariaRequired,%ariaRoleDescription,%ariaRowCount,%ariaRowIndex,%ariaRowSpan,%ariaSelected,%ariaSetSize,%ariaSort,%ariaValueMax,%ariaValueMin,%ariaValueNow,%ariaValueText,%classList,className,elementTiming,id,innerHTML,*beforecopy,*beforecut,*beforepaste,*fullscreenchange,*fullscreenerror,*search,*webkitfullscreenchange,*webkitfullscreenerror,outerHTML,%part,#scrollLeft,#scrollTop,slot,*message,*mozfullscreenchange,*mozfullscreenerror,*mozpointerlockchange,*mozpointerlockerror,*webglcontextcreationerror,*webglcontextlost,*webglcontextrestored","[HTMLElement]^[Element]|accessKey,autocapitalize,!autofocus,contentEditable,dir,!draggable,enterKeyHint,!hidden,!inert,innerText,inputMode,lang,nonce,*abort,*animationend,*animationiteration,*animationstart,*auxclick,*beforexrselect,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*formdata,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*paste,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerrawupdate,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*securitypolicyviolation,*seeked,*seeking,*select,*selectionchange,*selectstart,*slotchange,*stalled,*submit,*suspend,*timeupdate,*toggle,*transitioncancel,*transitionend,*transitionrun,*transitionstart,*volumechange,*waiting,*webkitanimationend,*webkitanimationiteration,*webkitanimationstart,*webkittransitionend,*wheel,outerText,!spellcheck,%style,#tabIndex,title,!translate,virtualKeyboardPolicy","abbr,address,article,aside,b,bdi,bdo,cite,content,code,dd,dfn,dt,em,figcaption,figure,footer,header,hgroup,i,kbd,main,mark,nav,noscript,rb,rp,rt,rtc,ruby,s,samp,section,small,strong,sub,sup,u,var,wbr^[HTMLElement]|accessKey,autocapitalize,!autofocus,contentEditable,dir,!draggable,enterKeyHint,!hidden,innerText,inputMode,lang,nonce,*abort,*animationend,*animationiteration,*animationstart,*auxclick,*beforexrselect,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*formdata,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*paste,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerrawupdate,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*securitypolicyviolation,*seeked,*seeking,*select,*selectionchange,*selectstart,*slotchange,*stalled,*submit,*suspend,*timeupdate,*toggle,*transitioncancel,*transitionend,*transitionrun,*transitionstart,*volumechange,*waiting,*webkitanimationend,*webkitanimationiteration,*webkitanimationstart,*webkittransitionend,*wheel,outerText,!spellcheck,%style,#tabIndex,title,!translate,virtualKeyboardPolicy","media^[HTMLElement]|!autoplay,!controls,%controlsList,%crossOrigin,#currentTime,!defaultMuted,#defaultPlaybackRate,!disableRemotePlayback,!loop,!muted,*encrypted,*waitingforkey,#playbackRate,preload,!preservesPitch,src,%srcObject,#volume",":svg:^[HTMLElement]|!autofocus,nonce,*abort,*animationend,*animationiteration,*animationstart,*auxclick,*beforexrselect,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*formdata,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*paste,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerrawupdate,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*securitypolicyviolation,*seeked,*seeking,*select,*selectionchange,*selectstart,*slotchange,*stalled,*submit,*suspend,*timeupdate,*toggle,*transitioncancel,*transitionend,*transitionrun,*transitionstart,*volumechange,*waiting,*webkitanimationend,*webkitanimationiteration,*webkitanimationstart,*webkittransitionend,*wheel,%style,#tabIndex",":svg:graphics^:svg:|",":svg:animation^:svg:|*begin,*end,*repeat",":svg:geometry^:svg:|",":svg:componentTransferFunction^:svg:|",":svg:gradient^:svg:|",":svg:textContent^:svg:graphics|",":svg:textPositioning^:svg:textContent|","a^[HTMLElement]|charset,coords,download,hash,host,hostname,href,hreflang,name,password,pathname,ping,port,protocol,referrerPolicy,rel,%relList,rev,search,shape,target,text,type,username","area^[HTMLElement]|alt,coords,download,hash,host,hostname,href,!noHref,password,pathname,ping,port,protocol,referrerPolicy,rel,%relList,search,shape,target,username","audio^media|","br^[HTMLElement]|clear","base^[HTMLElement]|href,target","body^[HTMLElement]|aLink,background,bgColor,link,*afterprint,*beforeprint,*beforeunload,*blur,*error,*focus,*hashchange,*languagechange,*load,*message,*messageerror,*offline,*online,*pagehide,*pageshow,*popstate,*rejectionhandled,*resize,*scroll,*storage,*unhandledrejection,*unload,text,vLink","button^[HTMLElement]|!disabled,formAction,formEnctype,formMethod,!formNoValidate,formTarget,name,type,value","canvas^[HTMLElement]|#height,#width","content^[HTMLElement]|select","dl^[HTMLElement]|!compact","data^[HTMLElement]|value","datalist^[HTMLElement]|","details^[HTMLElement]|!open","dialog^[HTMLElement]|!open,returnValue","dir^[HTMLElement]|!compact","div^[HTMLElement]|align","embed^[HTMLElement]|align,height,name,src,type,width","fieldset^[HTMLElement]|!disabled,name","font^[HTMLElement]|color,face,size","form^[HTMLElement]|acceptCharset,action,autocomplete,encoding,enctype,method,name,!noValidate,target","frame^[HTMLElement]|frameBorder,longDesc,marginHeight,marginWidth,name,!noResize,scrolling,src","frameset^[HTMLElement]|cols,*afterprint,*beforeprint,*beforeunload,*blur,*error,*focus,*hashchange,*languagechange,*load,*message,*messageerror,*offline,*online,*pagehide,*pageshow,*popstate,*rejectionhandled,*resize,*scroll,*storage,*unhandledrejection,*unload,rows","hr^[HTMLElement]|align,color,!noShade,size,width","head^[HTMLElement]|","h1,h2,h3,h4,h5,h6^[HTMLElement]|align","html^[HTMLElement]|version","iframe^[HTMLElement]|align,allow,!allowFullscreen,!allowPaymentRequest,csp,frameBorder,height,loading,longDesc,marginHeight,marginWidth,name,referrerPolicy,%sandbox,scrolling,src,srcdoc,width","img^[HTMLElement]|align,alt,border,%crossOrigin,decoding,#height,#hspace,!isMap,loading,longDesc,lowsrc,name,referrerPolicy,sizes,src,srcset,useMap,#vspace,#width","input^[HTMLElement]|accept,align,alt,autocomplete,!checked,!defaultChecked,defaultValue,dirName,!disabled,%files,formAction,formEnctype,formMethod,!formNoValidate,formTarget,#height,!incremental,!indeterminate,max,#maxLength,min,#minLength,!multiple,name,pattern,placeholder,!readOnly,!required,selectionDirection,#selectionEnd,#selectionStart,#size,src,step,type,useMap,value,%valueAsDate,#valueAsNumber,#width","li^[HTMLElement]|type,#value","label^[HTMLElement]|htmlFor","legend^[HTMLElement]|align","link^[HTMLElement]|as,charset,%crossOrigin,!disabled,href,hreflang,imageSizes,imageSrcset,integrity,media,referrerPolicy,rel,%relList,rev,%sizes,target,type","map^[HTMLElement]|name","marquee^[HTMLElement]|behavior,bgColor,direction,height,#hspace,#loop,#scrollAmount,#scrollDelay,!trueSpeed,#vspace,width","menu^[HTMLElement]|!compact","meta^[HTMLElement]|content,httpEquiv,media,name,scheme","meter^[HTMLElement]|#high,#low,#max,#min,#optimum,#value","ins,del^[HTMLElement]|cite,dateTime","ol^[HTMLElement]|!compact,!reversed,#start,type","object^[HTMLElement]|align,archive,border,code,codeBase,codeType,data,!declare,height,#hspace,name,standby,type,useMap,#vspace,width","optgroup^[HTMLElement]|!disabled,label","option^[HTMLElement]|!defaultSelected,!disabled,label,!selected,text,value","output^[HTMLElement]|defaultValue,%htmlFor,name,value","p^[HTMLElement]|align","param^[HTMLElement]|name,type,value,valueType","picture^[HTMLElement]|","pre^[HTMLElement]|#width","progress^[HTMLElement]|#max,#value","q,blockquote,cite^[HTMLElement]|","script^[HTMLElement]|!async,charset,%crossOrigin,!defer,event,htmlFor,integrity,!noModule,%referrerPolicy,src,text,type","select^[HTMLElement]|autocomplete,!disabled,#length,!multiple,name,!required,#selectedIndex,#size,value","slot^[HTMLElement]|name","source^[HTMLElement]|#height,media,sizes,src,srcset,type,#width","span^[HTMLElement]|","style^[HTMLElement]|!disabled,media,type","caption^[HTMLElement]|align","th,td^[HTMLElement]|abbr,align,axis,bgColor,ch,chOff,#colSpan,headers,height,!noWrap,#rowSpan,scope,vAlign,width","col,colgroup^[HTMLElement]|align,ch,chOff,#span,vAlign,width","table^[HTMLElement]|align,bgColor,border,%caption,cellPadding,cellSpacing,frame,rules,summary,%tFoot,%tHead,width","tr^[HTMLElement]|align,bgColor,ch,chOff,vAlign","tfoot,thead,tbody^[HTMLElement]|align,ch,chOff,vAlign","template^[HTMLElement]|","textarea^[HTMLElement]|autocomplete,#cols,defaultValue,dirName,!disabled,#maxLength,#minLength,name,placeholder,!readOnly,!required,#rows,selectionDirection,#selectionEnd,#selectionStart,value,wrap","time^[HTMLElement]|dateTime","title^[HTMLElement]|text","track^[HTMLElement]|!default,kind,label,src,srclang","ul^[HTMLElement]|!compact,type","unknown^[HTMLElement]|","video^media|!disablePictureInPicture,#height,*enterpictureinpicture,*leavepictureinpicture,!playsInline,poster,#width",":svg:a^:svg:graphics|",":svg:animate^:svg:animation|",":svg:animateMotion^:svg:animation|",":svg:animateTransform^:svg:animation|",":svg:circle^:svg:geometry|",":svg:clipPath^:svg:graphics|",":svg:defs^:svg:graphics|",":svg:desc^:svg:|",":svg:discard^:svg:|",":svg:ellipse^:svg:geometry|",":svg:feBlend^:svg:|",":svg:feColorMatrix^:svg:|",":svg:feComponentTransfer^:svg:|",":svg:feComposite^:svg:|",":svg:feConvolveMatrix^:svg:|",":svg:feDiffuseLighting^:svg:|",":svg:feDisplacementMap^:svg:|",":svg:feDistantLight^:svg:|",":svg:feDropShadow^:svg:|",":svg:feFlood^:svg:|",":svg:feFuncA^:svg:componentTransferFunction|",":svg:feFuncB^:svg:componentTransferFunction|",":svg:feFuncG^:svg:componentTransferFunction|",":svg:feFuncR^:svg:componentTransferFunction|",":svg:feGaussianBlur^:svg:|",":svg:feImage^:svg:|",":svg:feMerge^:svg:|",":svg:feMergeNode^:svg:|",":svg:feMorphology^:svg:|",":svg:feOffset^:svg:|",":svg:fePointLight^:svg:|",":svg:feSpecularLighting^:svg:|",":svg:feSpotLight^:svg:|",":svg:feTile^:svg:|",":svg:feTurbulence^:svg:|",":svg:filter^:svg:|",":svg:foreignObject^:svg:graphics|",":svg:g^:svg:graphics|",":svg:image^:svg:graphics|decoding",":svg:line^:svg:geometry|",":svg:linearGradient^:svg:gradient|",":svg:mpath^:svg:|",":svg:marker^:svg:|",":svg:mask^:svg:|",":svg:metadata^:svg:|",":svg:path^:svg:geometry|",":svg:pattern^:svg:|",":svg:polygon^:svg:geometry|",":svg:polyline^:svg:geometry|",":svg:radialGradient^:svg:gradient|",":svg:rect^:svg:geometry|",":svg:svg^:svg:graphics|#currentScale,#zoomAndPan",":svg:script^:svg:|type",":svg:set^:svg:animation|",":svg:stop^:svg:|",":svg:style^:svg:|!disabled,media,title,type",":svg:switch^:svg:graphics|",":svg:symbol^:svg:|",":svg:tspan^:svg:textPositioning|",":svg:text^:svg:textPositioning|",":svg:textPath^:svg:textContent|",":svg:title^:svg:|",":svg:use^:svg:graphics|",":svg:view^:svg:|#zoomAndPan","data^[HTMLElement]|value","keygen^[HTMLElement]|!autofocus,challenge,!disabled,form,keytype,name","menuitem^[HTMLElement]|type,label,icon,!disabled,!checked,radiogroup,!default","summary^[HTMLElement]|","time^[HTMLElement]|dateTime",":svg:cursor^:svg:|",":math:^[HTMLElement]|!autofocus,nonce,*abort,*animationend,*animationiteration,*animationstart,*auxclick,*beforeinput,*beforematch,*beforetoggle,*beforexrselect,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contentvisibilityautostatechange,*contextlost,*contextmenu,*contextrestored,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*formdata,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*paste,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerrawupdate,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*scrollend,*securitypolicyviolation,*seeked,*seeking,*select,*selectionchange,*selectstart,*slotchange,*stalled,*submit,*suspend,*timeupdate,*toggle,*transitioncancel,*transitionend,*transitionrun,*transitionstart,*volumechange,*waiting,*webkitanimationend,*webkitanimationiteration,*webkitanimationstart,*webkittransitionend,*wheel,%style,#tabIndex",":math:math^:math:|",":math:maction^:math:|",":math:menclose^:math:|",":math:merror^:math:|",":math:mfenced^:math:|",":math:mfrac^:math:|",":math:mi^:math:|",":math:mmultiscripts^:math:|",":math:mn^:math:|",":math:mo^:math:|",":math:mover^:math:|",":math:mpadded^:math:|",":math:mphantom^:math:|",":math:mroot^:math:|",":math:mrow^:math:|",":math:ms^:math:|",":math:mspace^:math:|",":math:msqrt^:math:|",":math:mstyle^:math:|",":math:msub^:math:|",":math:msubsup^:math:|",":math:msup^:math:|",":math:mtable^:math:|",":math:mtd^:math:|",":math:mtext^:math:|",":math:mtr^:math:|",":math:munder^:math:|",":math:munderover^:math:|",":math:semantics^:math:|"],_ATTR_TO_PROP=new Map(Object.entries({class:"className",for:"htmlFor",formaction:"formAction",innerHtml:"innerHTML",readonly:"readOnly",tabindex:"tabIndex"})),_PROP_TO_ATTR=Array.from(_ATTR_TO_PROP).reduce(((inverted,[propertyName,attributeName])=>(inverted.set(propertyName,attributeName),inverted)),new Map);class DomElementSchemaRegistry extends ElementSchemaRegistry{constructor(){super(),this._schema=new Map,this._eventSchema=new Map,SCHEMA.forEach((encodedType=>{const type=new Map,events=new Set,[strType,strProperties]=encodedType.split("|"),properties=strProperties.split(","),[typeNames,superName]=strType.split("^");typeNames.split(",").forEach((tag=>{this._schema.set(tag.toLowerCase(),type),this._eventSchema.set(tag.toLowerCase(),events)}));const superType=superName&&this._schema.get(superName.toLowerCase());if(superType){for(const[prop,value]of superType)type.set(prop,value);for(const superEvent of this._eventSchema.get(superName.toLowerCase()))events.add(superEvent)}properties.forEach((property=>{if(property.length>0)switch(property[0]){case"*":events.add(property.substring(1));break;case"!":type.set(property.substring(1),"boolean");break;case"#":type.set(property.substring(1),"number");break;case"%":type.set(property.substring(1),"object");break;default:type.set(property,"string")}}))}))}hasProperty(tagName,propName,schemaMetas){if(schemaMetas.some((schema=>schema.name===NO_ERRORS_SCHEMA.name)))return!0;if(tagName.indexOf("-")>-1){if(isNgContainer(tagName)||isNgContent(tagName))return!1;if(schemaMetas.some((schema=>schema.name===CUSTOM_ELEMENTS_SCHEMA.name)))return!0}return(this._schema.get(tagName.toLowerCase())||this._schema.get("unknown")).has(propName)}hasElement(tagName,schemaMetas){if(schemaMetas.some((schema=>schema.name===NO_ERRORS_SCHEMA.name)))return!0;if(tagName.indexOf("-")>-1){if(isNgContainer(tagName)||isNgContent(tagName))return!0;if(schemaMetas.some((schema=>schema.name===CUSTOM_ELEMENTS_SCHEMA.name)))return!0}return this._schema.has(tagName.toLowerCase())}securityContext(tagName,propName,isAttribute){isAttribute&&(propName=this.getMappedPropName(propName)),tagName=tagName.toLowerCase(),propName=propName.toLowerCase();let ctx=SECURITY_SCHEMA()[tagName+"|"+propName];return ctx||(ctx=SECURITY_SCHEMA()["*|"+propName],ctx||SecurityContext.NONE)}getMappedPropName(propName){return _ATTR_TO_PROP.get(propName)??propName}getDefaultComponentElementName(){return"ng-component"}validateProperty(name){if(name.toLowerCase().startsWith("on")){return{error:!0,msg:`Binding to event property '${name}' is disallowed for security reasons, please use (${name.slice(2)})=...\nIf '${name}' is a directive input, make sure the directive is imported by the current module.`}}return{error:!1}}validateAttribute(name){if(name.toLowerCase().startsWith("on")){return{error:!0,msg:`Binding to event attribute '${name}' is disallowed for security reasons, please use (${name.slice(2)})=...`}}return{error:!1}}allKnownElementNames(){return Array.from(this._schema.keys())}allKnownAttributesOfElement(tagName){const elementProperties=this._schema.get(tagName.toLowerCase())||this._schema.get("unknown");return Array.from(elementProperties.keys()).map((prop=>_PROP_TO_ATTR.get(prop)??prop))}allKnownEventsOfElement(tagName){return Array.from(this._eventSchema.get(tagName.toLowerCase())??[])}normalizeAnimationStyleProperty(propName){return function dashCaseToCamelCase(input){return input.replace(DASH_CASE_REGEXP,((...m)=>m[1].toUpperCase()))}(propName)}normalizeAnimationStyleValue(camelCaseProp,userProvidedProp,val){let unit="";const strVal=val.toString().trim();let errorMsg=null;if(function _isPixelDimensionStyle(prop){switch(prop){case"width":case"height":case"minWidth":case"minHeight":case"maxWidth":case"maxHeight":case"left":case"top":case"bottom":case"right":case"fontSize":case"outlineWidth":case"outlineOffset":case"paddingTop":case"paddingLeft":case"paddingBottom":case"paddingRight":case"marginTop":case"marginLeft":case"marginBottom":case"marginRight":case"borderRadius":case"borderWidth":case"borderTopWidth":case"borderLeftWidth":case"borderRightWidth":case"borderBottomWidth":case"textIndent":return!0;default:return!1}}(camelCaseProp)&&0!==val&&"0"!==val)if("number"==typeof val)unit="px";else{const valAndSuffixMatch=val.match(/^[+-]?[\d\.]+([a-z]*)$/);valAndSuffixMatch&&0==valAndSuffixMatch[1].length&&(errorMsg=`Please provide a CSS unit value for ${userProvidedProp}:${val}`)}return{error:errorMsg,value:strVal+unit}}}class HtmlTagDefinition{constructor({closedByChildren,implicitNamespacePrefix,contentType=TagContentType.PARSABLE_DATA,closedByParent=!1,isVoid=!1,ignoreFirstLf=!1,preventNamespaceInheritance=!1,canSelfClose=!1}={}){this.closedByChildren={},this.closedByParent=!1,closedByChildren&&closedByChildren.length>0&&closedByChildren.forEach((tagName=>this.closedByChildren[tagName]=!0)),this.isVoid=isVoid,this.closedByParent=closedByParent||isVoid,this.implicitNamespacePrefix=implicitNamespacePrefix||null,this.contentType=contentType,this.ignoreFirstLf=ignoreFirstLf,this.preventNamespaceInheritance=preventNamespaceInheritance,this.canSelfClose=canSelfClose??isVoid}isClosedByChild(name){return this.isVoid||name.toLowerCase()in this.closedByChildren}getContentType(prefix){if("object"==typeof this.contentType){return(void 0===prefix?void 0:this.contentType[prefix])??this.contentType.default}return this.contentType}}let DEFAULT_TAG_DEFINITION,TAG_DEFINITIONS;function getHtmlTagDefinition(tagName){return TAG_DEFINITIONS||(DEFAULT_TAG_DEFINITION=new HtmlTagDefinition({canSelfClose:!0}),TAG_DEFINITIONS=Object.assign(Object.create(null),{base:new HtmlTagDefinition({isVoid:!0}),meta:new HtmlTagDefinition({isVoid:!0}),area:new HtmlTagDefinition({isVoid:!0}),embed:new HtmlTagDefinition({isVoid:!0}),link:new HtmlTagDefinition({isVoid:!0}),img:new HtmlTagDefinition({isVoid:!0}),input:new HtmlTagDefinition({isVoid:!0}),param:new HtmlTagDefinition({isVoid:!0}),hr:new HtmlTagDefinition({isVoid:!0}),br:new HtmlTagDefinition({isVoid:!0}),source:new HtmlTagDefinition({isVoid:!0}),track:new HtmlTagDefinition({isVoid:!0}),wbr:new HtmlTagDefinition({isVoid:!0}),p:new HtmlTagDefinition({closedByChildren:["address","article","aside","blockquote","div","dl","fieldset","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","main","nav","ol","p","pre","section","table","ul"],closedByParent:!0}),thead:new HtmlTagDefinition({closedByChildren:["tbody","tfoot"]}),tbody:new HtmlTagDefinition({closedByChildren:["tbody","tfoot"],closedByParent:!0}),tfoot:new HtmlTagDefinition({closedByChildren:["tbody"],closedByParent:!0}),tr:new HtmlTagDefinition({closedByChildren:["tr"],closedByParent:!0}),td:new HtmlTagDefinition({closedByChildren:["td","th"],closedByParent:!0}),th:new HtmlTagDefinition({closedByChildren:["td","th"],closedByParent:!0}),col:new HtmlTagDefinition({isVoid:!0}),svg:new HtmlTagDefinition({implicitNamespacePrefix:"svg"}),foreignObject:new HtmlTagDefinition({implicitNamespacePrefix:"svg",preventNamespaceInheritance:!0}),math:new HtmlTagDefinition({implicitNamespacePrefix:"math"}),li:new HtmlTagDefinition({closedByChildren:["li"],closedByParent:!0}),dt:new HtmlTagDefinition({closedByChildren:["dt","dd"]}),dd:new HtmlTagDefinition({closedByChildren:["dt","dd"],closedByParent:!0}),rb:new HtmlTagDefinition({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),rt:new HtmlTagDefinition({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),rtc:new HtmlTagDefinition({closedByChildren:["rb","rtc","rp"],closedByParent:!0}),rp:new HtmlTagDefinition({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),optgroup:new HtmlTagDefinition({closedByChildren:["optgroup"],closedByParent:!0}),option:new HtmlTagDefinition({closedByChildren:["option","optgroup"],closedByParent:!0}),pre:new HtmlTagDefinition({ignoreFirstLf:!0}),listing:new HtmlTagDefinition({ignoreFirstLf:!0}),style:new HtmlTagDefinition({contentType:TagContentType.RAW_TEXT}),script:new HtmlTagDefinition({contentType:TagContentType.RAW_TEXT}),title:new HtmlTagDefinition({contentType:{default:TagContentType.ESCAPABLE_RAW_TEXT,svg:TagContentType.PARSABLE_DATA}}),textarea:new HtmlTagDefinition({contentType:TagContentType.ESCAPABLE_RAW_TEXT,ignoreFirstLf:!0})}),(new DomElementSchemaRegistry).allKnownElementNames().forEach((knownTagName=>{TAG_DEFINITIONS[knownTagName]||null!==getNsPrefix(knownTagName)||(TAG_DEFINITIONS[knownTagName]=new HtmlTagDefinition({canSelfClose:!1}))}))),TAG_DEFINITIONS[tagName]??TAG_DEFINITIONS[tagName.toLowerCase()]??DEFAULT_TAG_DEFINITION}const TAG_TO_PLACEHOLDER_NAMES={A:"LINK",B:"BOLD_TEXT",BR:"LINE_BREAK",EM:"EMPHASISED_TEXT",H1:"HEADING_LEVEL1",H2:"HEADING_LEVEL2",H3:"HEADING_LEVEL3",H4:"HEADING_LEVEL4",H5:"HEADING_LEVEL5",H6:"HEADING_LEVEL6",HR:"HORIZONTAL_RULE",I:"ITALIC_TEXT",LI:"LIST_ITEM",LINK:"MEDIA_LINK",OL:"ORDERED_LIST",P:"PARAGRAPH",Q:"QUOTATION",S:"STRIKETHROUGH_TEXT",SMALL:"SMALL_TEXT",SUB:"SUBSTRIPT",SUP:"SUPERSCRIPT",TBODY:"TABLE_BODY",TD:"TABLE_CELL",TFOOT:"TABLE_FOOTER",TH:"TABLE_HEADER_CELL",THEAD:"TABLE_HEADER",TR:"TABLE_ROW",TT:"MONOSPACED_TEXT",U:"UNDERLINED_TEXT",UL:"UNORDERED_LIST"};class PlaceholderRegistry{constructor(){this._placeHolderNameCounts={},this._signatureToName={}}getStartTagPlaceholderName(tag,attrs,isVoid){const signature=this._hashTag(tag,attrs,isVoid);if(this._signatureToName[signature])return this._signatureToName[signature];const upperTag=tag.toUpperCase(),baseName=TAG_TO_PLACEHOLDER_NAMES[upperTag]||`TAG_${upperTag}`,name=this._generateUniqueName(isVoid?baseName:`START_${baseName}`);return this._signatureToName[signature]=name,name}getCloseTagPlaceholderName(tag){const signature=this._hashClosingTag(tag);if(this._signatureToName[signature])return this._signatureToName[signature];const upperTag=tag.toUpperCase(),baseName=TAG_TO_PLACEHOLDER_NAMES[upperTag]||`TAG_${upperTag}`,name=this._generateUniqueName(`CLOSE_${baseName}`);return this._signatureToName[signature]=name,name}getPlaceholderName(name,content){const upperName=name.toUpperCase(),signature=`PH: ${upperName}=${content}`;if(this._signatureToName[signature])return this._signatureToName[signature];const uniqueName=this._generateUniqueName(upperName);return this._signatureToName[signature]=uniqueName,uniqueName}getUniquePlaceholder(name){return this._generateUniqueName(name.toUpperCase())}getStartBlockPlaceholderName(name,parameters){const signature=this._hashBlock(name,parameters);if(this._signatureToName[signature])return this._signatureToName[signature];const placeholder=this._generateUniqueName(`START_BLOCK_${this._toSnakeCase(name)}`);return this._signatureToName[signature]=placeholder,placeholder}getCloseBlockPlaceholderName(name){const signature=this._hashClosingBlock(name);if(this._signatureToName[signature])return this._signatureToName[signature];const placeholder=this._generateUniqueName(`CLOSE_BLOCK_${this._toSnakeCase(name)}`);return this._signatureToName[signature]=placeholder,placeholder}_hashTag(tag,attrs,isVoid){return`<${tag}`+Object.keys(attrs).sort().map((name=>` ${name}=${attrs[name]}`)).join("")+(isVoid?"/>":`>`)}_hashClosingTag(tag){return this._hashTag(`/${tag}`,{},!1)}_hashBlock(name,parameters){return`@${name}${0===parameters.length?"":` (${parameters.sort().join("; ")})`} {}`}_hashClosingBlock(name){return this._hashBlock(`close_${name}`,[])}_toSnakeCase(name){return name.toUpperCase().replace(/[^A-Z0-9]/g,"_")}_generateUniqueName(base){if(!this._placeHolderNameCounts.hasOwnProperty(base))return this._placeHolderNameCounts[base]=1,base;const id=this._placeHolderNameCounts[base];return this._placeHolderNameCounts[base]=id+1,`${base}_${id}`}}const _expParser=new Parser$1(new Lexer);function createI18nMessageFactory(interpolationConfig,containerBlocks){const visitor=new _I18nVisitor(_expParser,interpolationConfig,containerBlocks);return(nodes,meaning,description,customId,visitNodeFn)=>visitor.toI18nMessage(nodes,meaning,description,customId,visitNodeFn)}function noopVisitNodeFn(_html,i18n){return i18n}class _I18nVisitor{constructor(_expressionParser,_interpolationConfig,_containerBlocks){this._expressionParser=_expressionParser,this._interpolationConfig=_interpolationConfig,this._containerBlocks=_containerBlocks}toI18nMessage(nodes,meaning="",description="",customId="",visitNodeFn){const context={isIcu:1==nodes.length&&nodes[0]instanceof Expansion,icuDepth:0,placeholderRegistry:new PlaceholderRegistry,placeholderToContent:{},placeholderToMessage:{},visitNodeFn:visitNodeFn||noopVisitNodeFn},i18nodes=visitAll(this,nodes,context);return new Message(i18nodes,context.placeholderToContent,context.placeholderToMessage,meaning,description,customId)}visitElement(el,context){const children=visitAll(this,el.children,context),attrs={};el.attrs.forEach((attr=>{attrs[attr.name]=attr.value}));const isVoid=getHtmlTagDefinition(el.name).isVoid,startPhName=context.placeholderRegistry.getStartTagPlaceholderName(el.name,attrs,isVoid);context.placeholderToContent[startPhName]={text:el.startSourceSpan.toString(),sourceSpan:el.startSourceSpan};let closePhName="";isVoid||(closePhName=context.placeholderRegistry.getCloseTagPlaceholderName(el.name),context.placeholderToContent[closePhName]={text:``,sourceSpan:el.endSourceSpan??el.sourceSpan});const node=new TagPlaceholder(el.name,attrs,startPhName,closePhName,children,isVoid,el.sourceSpan,el.startSourceSpan,el.endSourceSpan);return context.visitNodeFn(el,node)}visitAttribute(attribute,context){const node=void 0===attribute.valueTokens||1===attribute.valueTokens.length?new Text$2(attribute.value,attribute.valueSpan||attribute.sourceSpan):this._visitTextWithInterpolation(attribute.valueTokens,attribute.valueSpan||attribute.sourceSpan,context,attribute.i18n);return context.visitNodeFn(attribute,node)}visitText(text,context){const node=1===text.tokens.length?new Text$2(text.value,text.sourceSpan):this._visitTextWithInterpolation(text.tokens,text.sourceSpan,context,text.i18n);return context.visitNodeFn(text,node)}visitComment(comment,context){return null}visitExpansion(icu,context){context.icuDepth++;const i18nIcuCases={},i18nIcu=new Icu(icu.switchValue,icu.type,i18nIcuCases,icu.sourceSpan);if(icu.cases.forEach((caze=>{i18nIcuCases[caze.value]=new Container(caze.expression.map((node=>node.visit(this,context))),caze.expSourceSpan)})),context.icuDepth--,context.isIcu||context.icuDepth>0){const expPh=context.placeholderRegistry.getUniquePlaceholder(`VAR_${icu.type}`);return i18nIcu.expressionPlaceholder=expPh,context.placeholderToContent[expPh]={text:icu.switchValue,sourceSpan:icu.switchValueSourceSpan},context.visitNodeFn(icu,i18nIcu)}const phName=context.placeholderRegistry.getPlaceholderName("ICU",icu.sourceSpan.toString());context.placeholderToMessage[phName]=this.toI18nMessage([icu],"","","",void 0);const node=new IcuPlaceholder(i18nIcu,phName,icu.sourceSpan);return context.visitNodeFn(icu,node)}visitExpansionCase(_icuCase,_context){throw new Error("Unreachable code")}visitBlock(block,context){const children=visitAll(this,block.children,context);if(this._containerBlocks.has(block.name))return new Container(children,block.sourceSpan);const parameters=block.parameters.map((param=>param.expression)),startPhName=context.placeholderRegistry.getStartBlockPlaceholderName(block.name,parameters),closePhName=context.placeholderRegistry.getCloseBlockPlaceholderName(block.name);context.placeholderToContent[startPhName]={text:block.startSourceSpan.toString(),sourceSpan:block.startSourceSpan},context.placeholderToContent[closePhName]={text:block.endSourceSpan?block.endSourceSpan.toString():"}",sourceSpan:block.endSourceSpan??block.sourceSpan};const node=new BlockPlaceholder(block.name,parameters,startPhName,closePhName,children,block.sourceSpan,block.startSourceSpan,block.endSourceSpan);return context.visitNodeFn(block,node)}visitBlockParameter(_parameter,_context){throw new Error("Unreachable code")}_visitTextWithInterpolation(tokens,sourceSpan,context,previousI18n){const nodes=[];let hasInterpolation=!1;for(const token of tokens)switch(token.type){case 8:case 17:hasInterpolation=!0;const expression=token.parts[1],baseName=expression.split(_CUSTOM_PH_EXP)[2]||"INTERPOLATION",phName=context.placeholderRegistry.getPlaceholderName(baseName,expression);context.placeholderToContent[phName]={text:token.parts.join(""),sourceSpan:token.sourceSpan},nodes.push(new Placeholder(expression,phName,token.sourceSpan));break;default:if(token.parts[0].length>0){const previous=nodes[nodes.length-1];previous instanceof Text$2?(previous.value+=token.parts[0],previous.sourceSpan=new ParseSourceSpan(previous.sourceSpan.start,token.sourceSpan.end,previous.sourceSpan.fullStart,previous.sourceSpan.details)):nodes.push(new Text$2(token.parts[0],token.sourceSpan))}}return hasInterpolation?(function reusePreviousSourceSpans(nodes,previousI18n){previousI18n instanceof Message&&(!function assertSingleContainerMessage(message){const nodes=message.nodes;if(1!==nodes.length||!(nodes[0]instanceof Container))throw new Error("Unexpected previous i18n message - expected it to consist of only a single `Container` node.")}(previousI18n),previousI18n=previousI18n.nodes[0]);if(previousI18n instanceof Container){!function assertEquivalentNodes(previousNodes,nodes){if(previousNodes.length!==nodes.length)throw new Error("The number of i18n message children changed between first and second pass.");if(previousNodes.some(((node,i)=>nodes[i].constructor!==node.constructor)))throw new Error("The types of the i18n message children changed between first and second pass.")}(previousI18n.children,nodes);for(let i=0;i",gt:">",Gamma:"Γ",Gammad:"Ϝ",Gbreve:"Ğ",Gcedil:"Ģ",Gcirc:"Ĝ",Gcy:"Г",Gdot:"Ġ",Gfr:"𝔊",Gg:"⋙",ggg:"⋙",Gopf:"𝔾",GreaterEqual:"≥",ge:"≥",geq:"≥",GreaterEqualLess:"⋛",gel:"⋛",gtreqless:"⋛",GreaterFullEqual:"≧",gE:"≧",geqq:"≧",GreaterGreater:"⪢",GreaterLess:"≷",gl:"≷",gtrless:"≷",GreaterSlantEqual:"⩾",geqslant:"⩾",ges:"⩾",GreaterTilde:"≳",gsim:"≳",gtrsim:"≳",Gscr:"𝒢",Gt:"≫",NestedGreaterGreater:"≫",gg:"≫",HARDcy:"Ъ",Hacek:"ˇ",caron:"ˇ",Hat:"^",Hcirc:"Ĥ",Hfr:"ℌ",Poincareplane:"ℌ",HilbertSpace:"ℋ",Hscr:"ℋ",hamilt:"ℋ",Hopf:"ℍ",quaternions:"ℍ",HorizontalLine:"─",boxh:"─",Hstrok:"Ħ",HumpEqual:"≏",bumpe:"≏",bumpeq:"≏",IEcy:"Е",IJlig:"IJ",IOcy:"Ё",Iacute:"Í",Icirc:"Î",Icy:"И",Idot:"İ",Ifr:"ℑ",Im:"ℑ",image:"ℑ",imagpart:"ℑ",Igrave:"Ì",Imacr:"Ī",ImaginaryI:"ⅈ",ii:"ⅈ",Int:"∬",Integral:"∫",int:"∫",Intersection:"⋂",bigcap:"⋂",xcap:"⋂",InvisibleComma:"⁣",ic:"⁣",InvisibleTimes:"⁢",it:"⁢",Iogon:"Į",Iopf:"𝕀",Iota:"Ι",Iscr:"ℐ",imagline:"ℐ",Itilde:"Ĩ",Iukcy:"І",Iuml:"Ï",Jcirc:"Ĵ",Jcy:"Й",Jfr:"𝔍",Jopf:"𝕁",Jscr:"𝒥",Jsercy:"Ј",Jukcy:"Є",KHcy:"Х",KJcy:"Ќ",Kappa:"Κ",Kcedil:"Ķ",Kcy:"К",Kfr:"𝔎",Kopf:"𝕂",Kscr:"𝒦",LJcy:"Љ",LT:"<",lt:"<",Lacute:"Ĺ",Lambda:"Λ",Lang:"⟪",Laplacetrf:"ℒ",Lscr:"ℒ",lagran:"ℒ",Larr:"↞",twoheadleftarrow:"↞",Lcaron:"Ľ",Lcedil:"Ļ",Lcy:"Л",LeftAngleBracket:"⟨",lang:"⟨",langle:"⟨",LeftArrow:"←",ShortLeftArrow:"←",larr:"←",leftarrow:"←",slarr:"←",LeftArrowBar:"⇤",larrb:"⇤",LeftArrowRightArrow:"⇆",leftrightarrows:"⇆",lrarr:"⇆",LeftCeiling:"⌈",lceil:"⌈",LeftDoubleBracket:"⟦",lobrk:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",dharl:"⇃",downharpoonleft:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",lfloor:"⌊",LeftRightArrow:"↔",harr:"↔",leftrightarrow:"↔",LeftRightVector:"⥎",LeftTee:"⊣",dashv:"⊣",LeftTeeArrow:"↤",mapstoleft:"↤",LeftTeeVector:"⥚",LeftTriangle:"⊲",vartriangleleft:"⊲",vltri:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",ltrie:"⊴",trianglelefteq:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",uharl:"↿",upharpoonleft:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",leftharpoonup:"↼",lharu:"↼",LeftVectorBar:"⥒",LessEqualGreater:"⋚",leg:"⋚",lesseqgtr:"⋚",LessFullEqual:"≦",lE:"≦",leqq:"≦",LessGreater:"≶",lessgtr:"≶",lg:"≶",LessLess:"⪡",LessSlantEqual:"⩽",leqslant:"⩽",les:"⩽",LessTilde:"≲",lesssim:"≲",lsim:"≲",Lfr:"𝔏",Ll:"⋘",Lleftarrow:"⇚",lAarr:"⇚",Lmidot:"Ŀ",LongLeftArrow:"⟵",longleftarrow:"⟵",xlarr:"⟵",LongLeftRightArrow:"⟷",longleftrightarrow:"⟷",xharr:"⟷",LongRightArrow:"⟶",longrightarrow:"⟶",xrarr:"⟶",Lopf:"𝕃",LowerLeftArrow:"↙",swarr:"↙",swarrow:"↙",LowerRightArrow:"↘",searr:"↘",searrow:"↘",Lsh:"↰",lsh:"↰",Lstrok:"Ł",Lt:"≪",NestedLessLess:"≪",ll:"≪",Map:"⤅",Mcy:"М",MediumSpace:" ",Mellintrf:"ℳ",Mscr:"ℳ",phmmat:"ℳ",Mfr:"𝔐",MinusPlus:"∓",mnplus:"∓",mp:"∓",Mopf:"𝕄",Mu:"Μ",NJcy:"Њ",Nacute:"Ń",Ncaron:"Ň",Ncedil:"Ņ",Ncy:"Н",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",ZeroWidthSpace:"​",NewLine:"\n",Nfr:"𝔑",NoBreak:"⁠",NonBreakingSpace:" ",nbsp:" ",Nopf:"ℕ",naturals:"ℕ",Not:"⫬",NotCongruent:"≢",nequiv:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",npar:"∦",nparallel:"∦",nshortparallel:"∦",nspar:"∦",NotElement:"∉",notin:"∉",notinva:"∉",NotEqual:"≠",ne:"≠",NotEqualTilde:"≂̸",nesim:"≂̸",NotExists:"∄",nexist:"∄",nexists:"∄",NotGreater:"≯",ngt:"≯",ngtr:"≯",NotGreaterEqual:"≱",nge:"≱",ngeq:"≱",NotGreaterFullEqual:"≧̸",ngE:"≧̸",ngeqq:"≧̸",NotGreaterGreater:"≫̸",nGtv:"≫̸",NotGreaterLess:"≹",ntgl:"≹",NotGreaterSlantEqual:"⩾̸",ngeqslant:"⩾̸",nges:"⩾̸",NotGreaterTilde:"≵",ngsim:"≵",NotHumpDownHump:"≎̸",nbump:"≎̸",NotHumpEqual:"≏̸",nbumpe:"≏̸",NotLeftTriangle:"⋪",nltri:"⋪",ntriangleleft:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",nltrie:"⋬",ntrianglelefteq:"⋬",NotLess:"≮",nless:"≮",nlt:"≮",NotLessEqual:"≰",nle:"≰",nleq:"≰",NotLessGreater:"≸",ntlg:"≸",NotLessLess:"≪̸",nLtv:"≪̸",NotLessSlantEqual:"⩽̸",nleqslant:"⩽̸",nles:"⩽̸",NotLessTilde:"≴",nlsim:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",NotPrecedes:"⊀",npr:"⊀",nprec:"⊀",NotPrecedesEqual:"⪯̸",npre:"⪯̸",npreceq:"⪯̸",NotPrecedesSlantEqual:"⋠",nprcue:"⋠",NotReverseElement:"∌",notni:"∌",notniva:"∌",NotRightTriangle:"⋫",nrtri:"⋫",ntriangleright:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",nrtrie:"⋭",ntrianglerighteq:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",nsqsube:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",nsqsupe:"⋣",NotSubset:"⊂⃒",nsubset:"⊂⃒",vnsub:"⊂⃒",NotSubsetEqual:"⊈",nsube:"⊈",nsubseteq:"⊈",NotSucceeds:"⊁",nsc:"⊁",nsucc:"⊁",NotSucceedsEqual:"⪰̸",nsce:"⪰̸",nsucceq:"⪰̸",NotSucceedsSlantEqual:"⋡",nsccue:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",nsupset:"⊃⃒",vnsup:"⊃⃒",NotSupersetEqual:"⊉",nsupe:"⊉",nsupseteq:"⊉",NotTilde:"≁",nsim:"≁",NotTildeEqual:"≄",nsime:"≄",nsimeq:"≄",NotTildeFullEqual:"≇",ncong:"≇",NotTildeTilde:"≉",nap:"≉",napprox:"≉",NotVerticalBar:"∤",nmid:"∤",nshortmid:"∤",nsmid:"∤",Nscr:"𝒩",Ntilde:"Ñ",Nu:"Ν",OElig:"Œ",Oacute:"Ó",Ocirc:"Ô",Ocy:"О",Odblac:"Ő",Ofr:"𝔒",Ograve:"Ò",Omacr:"Ō",Omega:"Ω",ohm:"Ω",Omicron:"Ο",Oopf:"𝕆",OpenCurlyDoubleQuote:"“",ldquo:"“",OpenCurlyQuote:"‘",lsquo:"‘",Or:"⩔",Oscr:"𝒪",Oslash:"Ø",Otilde:"Õ",Otimes:"⨷",Ouml:"Ö",OverBar:"‾",oline:"‾",OverBrace:"⏞",OverBracket:"⎴",tbrk:"⎴",OverParenthesis:"⏜",PartialD:"∂",part:"∂",Pcy:"П",Pfr:"𝔓",Phi:"Φ",Pi:"Π",PlusMinus:"±",plusmn:"±",pm:"±",Popf:"ℙ",primes:"ℙ",Pr:"⪻",Precedes:"≺",pr:"≺",prec:"≺",PrecedesEqual:"⪯",pre:"⪯",preceq:"⪯",PrecedesSlantEqual:"≼",prcue:"≼",preccurlyeq:"≼",PrecedesTilde:"≾",precsim:"≾",prsim:"≾",Prime:"″",Product:"∏",prod:"∏",Proportional:"∝",prop:"∝",propto:"∝",varpropto:"∝",vprop:"∝",Pscr:"𝒫",Psi:"Ψ",QUOT:'"',quot:'"',Qfr:"𝔔",Qopf:"ℚ",rationals:"ℚ",Qscr:"𝒬",RBarr:"⤐",drbkarow:"⤐",REG:"®",circledR:"®",reg:"®",Racute:"Ŕ",Rang:"⟫",Rarr:"↠",twoheadrightarrow:"↠",Rarrtl:"⤖",Rcaron:"Ř",Rcedil:"Ŗ",Rcy:"Р",Re:"ℜ",Rfr:"ℜ",real:"ℜ",realpart:"ℜ",ReverseElement:"∋",SuchThat:"∋",ni:"∋",niv:"∋",ReverseEquilibrium:"⇋",leftrightharpoons:"⇋",lrhar:"⇋",ReverseUpEquilibrium:"⥯",duhar:"⥯",Rho:"Ρ",RightAngleBracket:"⟩",rang:"⟩",rangle:"⟩",RightArrow:"→",ShortRightArrow:"→",rarr:"→",rightarrow:"→",srarr:"→",RightArrowBar:"⇥",rarrb:"⇥",RightArrowLeftArrow:"⇄",rightleftarrows:"⇄",rlarr:"⇄",RightCeiling:"⌉",rceil:"⌉",RightDoubleBracket:"⟧",robrk:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",dharr:"⇂",downharpoonright:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rfloor:"⌋",RightTee:"⊢",vdash:"⊢",RightTeeArrow:"↦",map:"↦",mapsto:"↦",RightTeeVector:"⥛",RightTriangle:"⊳",vartriangleright:"⊳",vrtri:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",rtrie:"⊵",trianglerighteq:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",uharr:"↾",upharpoonright:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",rharu:"⇀",rightharpoonup:"⇀",RightVectorBar:"⥓",Ropf:"ℝ",reals:"ℝ",RoundImplies:"⥰",Rrightarrow:"⇛",rAarr:"⇛",Rscr:"ℛ",realine:"ℛ",Rsh:"↱",rsh:"↱",RuleDelayed:"⧴",SHCHcy:"Щ",SHcy:"Ш",SOFTcy:"Ь",Sacute:"Ś",Sc:"⪼",Scaron:"Š",Scedil:"Ş",Scirc:"Ŝ",Scy:"С",Sfr:"𝔖",ShortUpArrow:"↑",UpArrow:"↑",uarr:"↑",uparrow:"↑",Sigma:"Σ",SmallCircle:"∘",compfn:"∘",Sopf:"𝕊",Sqrt:"√",radic:"√",Square:"□",squ:"□",square:"□",SquareIntersection:"⊓",sqcap:"⊓",SquareSubset:"⊏",sqsub:"⊏",sqsubset:"⊏",SquareSubsetEqual:"⊑",sqsube:"⊑",sqsubseteq:"⊑",SquareSuperset:"⊐",sqsup:"⊐",sqsupset:"⊐",SquareSupersetEqual:"⊒",sqsupe:"⊒",sqsupseteq:"⊒",SquareUnion:"⊔",sqcup:"⊔",Sscr:"𝒮",Star:"⋆",sstarf:"⋆",Sub:"⋐",Subset:"⋐",SubsetEqual:"⊆",sube:"⊆",subseteq:"⊆",Succeeds:"≻",sc:"≻",succ:"≻",SucceedsEqual:"⪰",sce:"⪰",succeq:"⪰",SucceedsSlantEqual:"≽",sccue:"≽",succcurlyeq:"≽",SucceedsTilde:"≿",scsim:"≿",succsim:"≿",Sum:"∑",sum:"∑",Sup:"⋑",Supset:"⋑",Superset:"⊃",sup:"⊃",supset:"⊃",SupersetEqual:"⊇",supe:"⊇",supseteq:"⊇",THORN:"Þ",TRADE:"™",trade:"™",TSHcy:"Ћ",TScy:"Ц",Tab:"\t",Tau:"Τ",Tcaron:"Ť",Tcedil:"Ţ",Tcy:"Т",Tfr:"𝔗",Therefore:"∴",there4:"∴",therefore:"∴",Theta:"Θ",ThickSpace:"  ",ThinSpace:" ",thinsp:" ",Tilde:"∼",sim:"∼",thicksim:"∼",thksim:"∼",TildeEqual:"≃",sime:"≃",simeq:"≃",TildeFullEqual:"≅",cong:"≅",TildeTilde:"≈",ap:"≈",approx:"≈",asymp:"≈",thickapprox:"≈",thkap:"≈",Topf:"𝕋",TripleDot:"⃛",tdot:"⃛",Tscr:"𝒯",Tstrok:"Ŧ",Uacute:"Ú",Uarr:"↟",Uarrocir:"⥉",Ubrcy:"Ў",Ubreve:"Ŭ",Ucirc:"Û",Ucy:"У",Udblac:"Ű",Ufr:"𝔘",Ugrave:"Ù",Umacr:"Ū",UnderBar:"_",lowbar:"_",UnderBrace:"⏟",UnderBracket:"⎵",bbrk:"⎵",UnderParenthesis:"⏝",Union:"⋃",bigcup:"⋃",xcup:"⋃",UnionPlus:"⊎",uplus:"⊎",Uogon:"Ų",Uopf:"𝕌",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",udarr:"⇅",UpDownArrow:"↕",updownarrow:"↕",varr:"↕",UpEquilibrium:"⥮",udhar:"⥮",UpTee:"⊥",bot:"⊥",bottom:"⊥",perp:"⊥",UpTeeArrow:"↥",mapstoup:"↥",UpperLeftArrow:"↖",nwarr:"↖",nwarrow:"↖",UpperRightArrow:"↗",nearr:"↗",nearrow:"↗",Upsi:"ϒ",upsih:"ϒ",Upsilon:"Υ",Uring:"Ů",Uscr:"𝒰",Utilde:"Ũ",Uuml:"Ü",VDash:"⊫",Vbar:"⫫",Vcy:"В",Vdash:"⊩",Vdashl:"⫦",Vee:"⋁",bigvee:"⋁",xvee:"⋁",Verbar:"‖",Vert:"‖",VerticalBar:"∣",mid:"∣",shortmid:"∣",smid:"∣",VerticalLine:"|",verbar:"|",vert:"|",VerticalSeparator:"❘",VerticalTilde:"≀",wr:"≀",wreath:"≀",VeryThinSpace:" ",hairsp:" ",Vfr:"𝔙",Vopf:"𝕍",Vscr:"𝒱",Vvdash:"⊪",Wcirc:"Ŵ",Wedge:"⋀",bigwedge:"⋀",xwedge:"⋀",Wfr:"𝔚",Wopf:"𝕎",Wscr:"𝒲",Xfr:"𝔛",Xi:"Ξ",Xopf:"𝕏",Xscr:"𝒳",YAcy:"Я",YIcy:"Ї",YUcy:"Ю",Yacute:"Ý",Ycirc:"Ŷ",Ycy:"Ы",Yfr:"𝔜",Yopf:"𝕐",Yscr:"𝒴",Yuml:"Ÿ",ZHcy:"Ж",Zacute:"Ź",Zcaron:"Ž",Zcy:"З",Zdot:"Ż",Zeta:"Ζ",Zfr:"ℨ",zeetrf:"ℨ",Zopf:"ℤ",integers:"ℤ",Zscr:"𝒵",aacute:"á",abreve:"ă",ac:"∾",mstpos:"∾",acE:"∾̳",acd:"∿",acirc:"â",acy:"а",aelig:"æ",afr:"𝔞",agrave:"à",alefsym:"ℵ",aleph:"ℵ",alpha:"α",amacr:"ā",amalg:"⨿",and:"∧",wedge:"∧",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",angle:"∠",ange:"⦤",angmsd:"∡",measuredangle:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angzarr:"⍼",aogon:"ą",aopf:"𝕒",apE:"⩰",apacir:"⩯",ape:"≊",approxeq:"≊",apid:"≋",apos:"'",aring:"å",ascr:"𝒶",ast:"*",midast:"*",atilde:"ã",auml:"ä",awint:"⨑",bNot:"⫭",backcong:"≌",bcong:"≌",backepsilon:"϶",bepsi:"϶",backprime:"‵",bprime:"‵",backsim:"∽",bsim:"∽",backsimeq:"⋍",bsime:"⋍",barvee:"⊽",barwed:"⌅",barwedge:"⌅",bbrktbrk:"⎶",bcy:"б",bdquo:"„",ldquor:"„",bemptyv:"⦰",beta:"β",beth:"ℶ",between:"≬",twixt:"≬",bfr:"𝔟",bigcirc:"◯",xcirc:"◯",bigodot:"⨀",xodot:"⨀",bigoplus:"⨁",xoplus:"⨁",bigotimes:"⨂",xotime:"⨂",bigsqcup:"⨆",xsqcup:"⨆",bigstar:"★",starf:"★",bigtriangledown:"▽",xdtri:"▽",bigtriangleup:"△",xutri:"△",biguplus:"⨄",xuplus:"⨄",bkarow:"⤍",rbarr:"⤍",blacklozenge:"⧫",lozf:"⧫",blacktriangle:"▴",utrif:"▴",blacktriangledown:"▾",dtrif:"▾",blacktriangleleft:"◂",ltrif:"◂",blacktriangleright:"▸",rtrif:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bopf:"𝕓",bowtie:"⋈",boxDL:"╗",boxDR:"╔",boxDl:"╖",boxDr:"╓",boxH:"═",boxHD:"╦",boxHU:"╩",boxHd:"╤",boxHu:"╧",boxUL:"╝",boxUR:"╚",boxUl:"╜",boxUr:"╙",boxV:"║",boxVH:"╬",boxVL:"╣",boxVR:"╠",boxVh:"╫",boxVl:"╢",boxVr:"╟",boxbox:"⧉",boxdL:"╕",boxdR:"╒",boxdl:"┐",boxdr:"┌",boxhD:"╥",boxhU:"╨",boxhd:"┬",boxhu:"┴",boxminus:"⊟",minusb:"⊟",boxplus:"⊞",plusb:"⊞",boxtimes:"⊠",timesb:"⊠",boxuL:"╛",boxuR:"╘",boxul:"┘",boxur:"└",boxv:"│",boxvH:"╪",boxvL:"╡",boxvR:"╞",boxvh:"┼",boxvl:"┤",boxvr:"├",brvbar:"¦",bscr:"𝒷",bsemi:"⁏",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bumpE:"⪮",cacute:"ć",cap:"∩",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",caps:"∩︀",caret:"⁁",ccaps:"⩍",ccaron:"č",ccedil:"ç",ccirc:"ĉ",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",cemptyv:"⦲",cent:"¢",cfr:"𝔠",chcy:"ч",check:"✓",checkmark:"✓",chi:"χ",cir:"○",cirE:"⧃",circ:"ˆ",circeq:"≗",cire:"≗",circlearrowleft:"↺",olarr:"↺",circlearrowright:"↻",orarr:"↻",circledS:"Ⓢ",oS:"Ⓢ",circledast:"⊛",oast:"⊛",circledcirc:"⊚",ocir:"⊚",circleddash:"⊝",odash:"⊝",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",clubs:"♣",clubsuit:"♣",colon:":",comma:",",commat:"@",comp:"∁",complement:"∁",congdot:"⩭",copf:"𝕔",copysr:"℗",crarr:"↵",cross:"✗",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",curlyeqprec:"⋞",cuesc:"⋟",curlyeqsucc:"⋟",cularr:"↶",curvearrowleft:"↶",cularrp:"⤽",cup:"∪",cupbrcap:"⩈",cupcap:"⩆",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curvearrowright:"↷",curarrm:"⤼",curlyvee:"⋎",cuvee:"⋎",curlywedge:"⋏",cuwed:"⋏",curren:"¤",cwint:"∱",cylcty:"⌭",dHar:"⥥",dagger:"†",daleth:"ℸ",dash:"‐",hyphen:"‐",dbkarow:"⤏",rBarr:"⤏",dcaron:"ď",dcy:"д",ddarr:"⇊",downdownarrows:"⇊",ddotseq:"⩷",eDDot:"⩷",deg:"°",delta:"δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",diamondsuit:"♦",diams:"♦",digamma:"ϝ",gammad:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",dlcorn:"⌞",llcorner:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",doteqdot:"≑",eDot:"≑",dotminus:"∸",minusd:"∸",dotplus:"∔",plusdo:"∔",dotsquare:"⊡",sdotb:"⊡",drcorn:"⌟",lrcorner:"⌟",drcrop:"⌌",dscr:"𝒹",dscy:"ѕ",dsol:"⧶",dstrok:"đ",dtdot:"⋱",dtri:"▿",triangledown:"▿",dwangle:"⦦",dzcy:"џ",dzigrarr:"⟿",eacute:"é",easter:"⩮",ecaron:"ě",ecir:"≖",eqcirc:"≖",ecirc:"ê",ecolon:"≕",eqcolon:"≕",ecy:"э",edot:"ė",efDot:"≒",fallingdotseq:"≒",efr:"𝔢",eg:"⪚",egrave:"è",egs:"⪖",eqslantgtr:"⪖",egsdot:"⪘",el:"⪙",elinters:"⏧",ell:"ℓ",els:"⪕",eqslantless:"⪕",elsdot:"⪗",emacr:"ē",empty:"∅",emptyset:"∅",emptyv:"∅",varnothing:"∅",emsp13:" ",emsp14:" ",emsp:" ",eng:"ŋ",ensp:" ",eogon:"ę",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",epsiv:"ϵ",straightepsilon:"ϵ",varepsilon:"ϵ",equals:"=",equest:"≟",questeq:"≟",equivDD:"⩸",eqvparsl:"⧥",erDot:"≓",risingdotseq:"≓",erarr:"⥱",escr:"ℯ",eta:"η",eth:"ð",euml:"ë",euro:"€",excl:"!",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",filig:"fi",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",fork:"⋔",pitchfork:"⋔",forkv:"⫙",fpartint:"⨍",frac12:"½",half:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",sfrown:"⌢",fscr:"𝒻",gEl:"⪌",gtreqqless:"⪌",gacute:"ǵ",gamma:"γ",gap:"⪆",gtrapprox:"⪆",gbreve:"ğ",gcirc:"ĝ",gcy:"г",gdot:"ġ",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",gimel:"ℷ",gjcy:"ѓ",glE:"⪒",gla:"⪥",glj:"⪤",gnE:"≩",gneqq:"≩",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gneq:"⪈",gnsim:"⋧",gopf:"𝕘",gscr:"ℊ",gsime:"⪎",gsiml:"⪐",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtrdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrarr:"⥸",gvertneqq:"≩︀",gvnE:"≩︀",hardcy:"ъ",harrcir:"⥈",harrw:"↭",leftrightsquigarrow:"↭",hbar:"ℏ",hslash:"ℏ",planck:"ℏ",plankv:"ℏ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",mldr:"…",hercon:"⊹",hfr:"𝔥",hksearow:"⤥",searhk:"⤥",hkswarow:"⤦",swarhk:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",larrhk:"↩",hookrightarrow:"↪",rarrhk:"↪",hopf:"𝕙",horbar:"―",hscr:"𝒽",hstrok:"ħ",hybull:"⁃",iacute:"í",icirc:"î",icy:"и",iecy:"е",iexcl:"¡",ifr:"𝔦",igrave:"ì",iiiint:"⨌",qint:"⨌",iiint:"∭",tint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",imacr:"ī",imath:"ı",inodot:"ı",imof:"⊷",imped:"Ƶ",incare:"℅",infin:"∞",infintie:"⧝",intcal:"⊺",intercal:"⊺",intlarhk:"⨗",intprod:"⨼",iprod:"⨼",iocy:"ё",iogon:"į",iopf:"𝕚",iota:"ι",iquest:"¿",iscr:"𝒾",isinE:"⋹",isindot:"⋵",isins:"⋴",isinsv:"⋳",itilde:"ĩ",iukcy:"і",iuml:"ï",jcirc:"ĵ",jcy:"й",jfr:"𝔧",jmath:"ȷ",jopf:"𝕛",jscr:"𝒿",jsercy:"ј",jukcy:"є",kappa:"κ",kappav:"ϰ",varkappa:"ϰ",kcedil:"ķ",kcy:"к",kfr:"𝔨",kgreen:"ĸ",khcy:"х",kjcy:"ќ",kopf:"𝕜",kscr:"𝓀",lAtail:"⤛",lBarr:"⤎",lEg:"⪋",lesseqqgtr:"⪋",lHar:"⥢",lacute:"ĺ",laemptyv:"⦴",lambda:"λ",langd:"⦑",lap:"⪅",lessapprox:"⪅",laquo:"«",larrbfs:"⤟",larrfs:"⤝",larrlp:"↫",looparrowleft:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",leftarrowtail:"↢",lat:"⪫",latail:"⤙",late:"⪭",lates:"⪭︀",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lcub:"{",lbrack:"[",lsqb:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",lcedil:"ļ",lcy:"л",ldca:"⤶",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",leq:"≤",leftleftarrows:"⇇",llarr:"⇇",leftthreetimes:"⋋",lthree:"⋋",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessdot:"⋖",ltdot:"⋖",lfisht:"⥼",lfr:"𝔩",lgE:"⪑",lharul:"⥪",lhblk:"▄",ljcy:"љ",llhard:"⥫",lltri:"◺",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnE:"≨",lneqq:"≨",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lneq:"⪇",lnsim:"⋦",loang:"⟬",loarr:"⇽",longmapsto:"⟼",xmap:"⟼",looparrowright:"↬",rarrlp:"↬",lopar:"⦅",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",loz:"◊",lozenge:"◊",lpar:"(",lparlt:"⦓",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",lsime:"⪍",lsimg:"⪏",lsquor:"‚",sbquo:"‚",lstrok:"ł",ltcc:"⪦",ltcir:"⩹",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltrPar:"⦖",ltri:"◃",triangleleft:"◃",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",mDDot:"∺",macr:"¯",strns:"¯",male:"♂",malt:"✠",maltese:"✠",marker:"▮",mcomma:"⨩",mcy:"м",mdash:"—",mfr:"𝔪",mho:"℧",micro:"µ",midcir:"⫰",minus:"−",minusdu:"⨪",mlcp:"⫛",models:"⊧",mopf:"𝕞",mscr:"𝓂",mu:"μ",multimap:"⊸",mumap:"⊸",nGg:"⋙̸",nGt:"≫⃒",nLeftarrow:"⇍",nlArr:"⇍",nLeftrightarrow:"⇎",nhArr:"⇎",nLl:"⋘̸",nLt:"≪⃒",nRightarrow:"⇏",nrArr:"⇏",nVDash:"⊯",nVdash:"⊮",nacute:"ń",nang:"∠⃒",napE:"⩰̸",napid:"≋̸",napos:"ʼn",natur:"♮",natural:"♮",ncap:"⩃",ncaron:"ň",ncedil:"ņ",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",ndash:"–",neArr:"⇗",nearhk:"⤤",nedot:"≐̸",nesear:"⤨",toea:"⤨",nfr:"𝔫",nharr:"↮",nleftrightarrow:"↮",nhpar:"⫲",nis:"⋼",nisd:"⋺",njcy:"њ",nlE:"≦̸",nleqq:"≦̸",nlarr:"↚",nleftarrow:"↚",nldr:"‥",nopf:"𝕟",not:"¬",notinE:"⋹̸",notindot:"⋵̸",notinvb:"⋷",notinvc:"⋶",notnivb:"⋾",notnivc:"⋽",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",nrarr:"↛",nrightarrow:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nscr:"𝓃",nsub:"⊄",nsubE:"⫅̸",nsubseteqq:"⫅̸",nsup:"⊅",nsupE:"⫆̸",nsupseteqq:"⫆̸",ntilde:"ñ",nu:"ν",num:"#",numero:"№",numsp:" ",nvDash:"⊭",nvHarr:"⤄",nvap:"≍⃒",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwArr:"⇖",nwarhk:"⤣",nwnear:"⤧",oacute:"ó",ocirc:"ô",ocy:"о",odblac:"ő",odiv:"⨸",odsold:"⦼",oelig:"œ",ofcir:"⦿",ofr:"𝔬",ogon:"˛",ograve:"ò",ogt:"⧁",ohbar:"⦵",olcir:"⦾",olcross:"⦻",olt:"⧀",omacr:"ō",omega:"ω",omicron:"ο",omid:"⦶",oopf:"𝕠",opar:"⦷",operp:"⦹",or:"∨",vee:"∨",ord:"⩝",order:"ℴ",orderof:"ℴ",oscr:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oslash:"ø",osol:"⊘",otilde:"õ",otimesas:"⨶",ouml:"ö",ovbar:"⌽",para:"¶",parsim:"⫳",parsl:"⫽",pcy:"п",percnt:"%",period:".",permil:"‰",pertenk:"‱",pfr:"𝔭",phi:"φ",phiv:"ϕ",straightphi:"ϕ",varphi:"ϕ",phone:"☎",pi:"π",piv:"ϖ",varpi:"ϖ",planckh:"ℎ",plus:"+",plusacir:"⨣",pluscir:"⨢",plusdu:"⨥",pluse:"⩲",plussim:"⨦",plustwo:"⨧",pointint:"⨕",popf:"𝕡",pound:"£",prE:"⪳",prap:"⪷",precapprox:"⪷",precnapprox:"⪹",prnap:"⪹",precneqq:"⪵",prnE:"⪵",precnsim:"⋨",prnsim:"⋨",prime:"′",profalar:"⌮",profline:"⌒",profsurf:"⌓",prurel:"⊰",pscr:"𝓅",psi:"ψ",puncsp:" ",qfr:"𝔮",qopf:"𝕢",qprime:"⁗",qscr:"𝓆",quatint:"⨖",quest:"?",rAtail:"⤜",rHar:"⥤",race:"∽̱",racute:"ŕ",raemptyv:"⦳",rangd:"⦒",range:"⦥",raquo:"»",rarrap:"⥵",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",rightarrowtail:"↣",rarrw:"↝",rightsquigarrow:"↝",ratail:"⤚",ratio:"∶",rbbrk:"❳",rbrace:"}",rcub:"}",rbrack:"]",rsqb:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",rcedil:"ŗ",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdsh:"↳",rect:"▭",rfisht:"⥽",rfr:"𝔯",rharul:"⥬",rho:"ρ",rhov:"ϱ",varrho:"ϱ",rightrightarrows:"⇉",rrarr:"⇉",rightthreetimes:"⋌",rthree:"⋌",ring:"˚",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",ropar:"⦆",ropf:"𝕣",roplus:"⨮",rotimes:"⨵",rpar:")",rpargt:"⦔",rppolint:"⨒",rsaquo:"›",rscr:"𝓇",rtimes:"⋊",rtri:"▹",triangleright:"▹",rtriltri:"⧎",ruluhar:"⥨",rx:"℞",sacute:"ś",scE:"⪴",scap:"⪸",succapprox:"⪸",scaron:"š",scedil:"ş",scirc:"ŝ",scnE:"⪶",succneqq:"⪶",scnap:"⪺",succnapprox:"⪺",scnsim:"⋩",succnsim:"⋩",scpolint:"⨓",scy:"с",sdot:"⋅",sdote:"⩦",seArr:"⇘",sect:"§",semi:";",seswar:"⤩",tosa:"⤩",sext:"✶",sfr:"𝔰",sharp:"♯",shchcy:"щ",shcy:"ш",shy:"­",sigma:"σ",sigmaf:"ς",sigmav:"ς",varsigma:"ς",simdot:"⩪",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",smashp:"⨳",smeparsl:"⧤",smile:"⌣",ssmile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",spades:"♠",spadesuit:"♠",sqcaps:"⊓︀",sqcups:"⊔︀",sscr:"𝓈",star:"☆",sub:"⊂",subset:"⊂",subE:"⫅",subseteqq:"⫅",subdot:"⪽",subedot:"⫃",submult:"⫁",subnE:"⫋",subsetneqq:"⫋",subne:"⊊",subsetneq:"⊊",subplus:"⪿",subrarr:"⥹",subsim:"⫇",subsub:"⫕",subsup:"⫓",sung:"♪",sup1:"¹",sup2:"²",sup3:"³",supE:"⫆",supseteqq:"⫆",supdot:"⪾",supdsub:"⫘",supedot:"⫄",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supsetneqq:"⫌",supne:"⊋",supsetneq:"⊋",supplus:"⫀",supsim:"⫈",supsub:"⫔",supsup:"⫖",swArr:"⇙",swnwar:"⤪",szlig:"ß",target:"⌖",tau:"τ",tcaron:"ť",tcedil:"ţ",tcy:"т",telrec:"⌕",tfr:"𝔱",theta:"θ",thetasym:"ϑ",thetav:"ϑ",vartheta:"ϑ",thorn:"þ",times:"×",timesbar:"⨱",timesd:"⨰",topbot:"⌶",topcir:"⫱",topf:"𝕥",topfork:"⫚",tprime:"‴",triangle:"▵",utri:"▵",triangleq:"≜",trie:"≜",tridot:"◬",triminus:"⨺",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",tscy:"ц",tshcy:"ћ",tstrok:"ŧ",uHar:"⥣",uacute:"ú",ubrcy:"ў",ubreve:"ŭ",ucirc:"û",ucy:"у",udblac:"ű",ufisht:"⥾",ufr:"𝔲",ugrave:"ù",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",uogon:"ų",uopf:"𝕦",upsi:"υ",upsilon:"υ",upuparrows:"⇈",uuarr:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",urtri:"◹",uscr:"𝓊",utdot:"⋰",utilde:"ũ",uuml:"ü",uwangle:"⦧",vBar:"⫨",vBarv:"⫩",vangrt:"⦜",varsubsetneq:"⊊︀",vsubne:"⊊︀",varsubsetneqq:"⫋︀",vsubnE:"⫋︀",varsupsetneq:"⊋︀",vsupne:"⊋︀",varsupsetneqq:"⫌︀",vsupnE:"⫌︀",vcy:"в",veebar:"⊻",veeeq:"≚",vellip:"⋮",vfr:"𝔳",vopf:"𝕧",vscr:"𝓋",vzigzag:"⦚",wcirc:"ŵ",wedbar:"⩟",wedgeq:"≙",weierp:"℘",wp:"℘",wfr:"𝔴",wopf:"𝕨",wscr:"𝓌",xfr:"𝔵",xi:"ξ",xnis:"⋻",xopf:"𝕩",xscr:"𝓍",yacute:"ý",yacy:"я",ycirc:"ŷ",ycy:"ы",yen:"¥",yfr:"𝔶",yicy:"ї",yopf:"𝕪",yscr:"𝓎",yucy:"ю",yuml:"ÿ",zacute:"ź",zcaron:"ž",zcy:"з",zdot:"ż",zeta:"ζ",zfr:"𝔷",zhcy:"ж",zigrarr:"⇝",zopf:"𝕫",zscr:"𝓏",zwj:"‍",zwnj:"‌"};NAMED_ENTITIES.ngsp="";class TokenError extends ParseError{constructor(errorMsg,tokenType,span){super(span,errorMsg),this.tokenType=tokenType}}class TokenizeResult{constructor(tokens,errors,nonNormalizedIcuExpressions){this.tokens=tokens,this.errors=errors,this.nonNormalizedIcuExpressions=nonNormalizedIcuExpressions}}function tokenize(source,url,getTagDefinition,options={}){const tokenizer=new _Tokenizer(new ParseSourceFile(source,url),getTagDefinition,options);return tokenizer.tokenize(),new TokenizeResult(function mergeTextTokens(srcTokens){const dstTokens=[];let lastDstToken;for(let i=0;i;" or "&#x;" syntax`}var CharacterReferenceType;!function(CharacterReferenceType){CharacterReferenceType.HEX="hexadecimal",CharacterReferenceType.DEC="decimal"}(CharacterReferenceType||(CharacterReferenceType={}));class _ControlFlowError{constructor(error){this.error=error}}class _Tokenizer{constructor(_file,_getTagDefinition,options){this._getTagDefinition=_getTagDefinition,this._currentTokenStart=null,this._currentTokenType=null,this._expansionCaseStack=[],this._inInterpolation=!1,this.tokens=[],this.errors=[],this.nonNormalizedIcuExpressions=[],this._tokenizeIcu=options.tokenizeExpansionForms||!1,this._interpolationConfig=options.interpolationConfig||DEFAULT_INTERPOLATION_CONFIG,this._leadingTriviaCodePoints=options.leadingTriviaChars&&options.leadingTriviaChars.map((c=>c.codePointAt(0)||0));const range=options.range||{endPos:_file.content.length,startPos:0,startLine:0,startCol:0};this._cursor=options.escapedString?new EscapedCharacterCursor(_file,range):new PlainCharacterCursor(_file,range),this._preserveLineEndings=options.preserveLineEndings||!1,this._i18nNormalizeLineEndingsInICUs=options.i18nNormalizeLineEndingsInICUs||!1,this._tokenizeBlocks=options.tokenizeBlocks??!0;try{this._cursor.init()}catch(e){this.handleError(e)}}_processCarriageReturns(content){return this._preserveLineEndings?content:content.replace(_CR_OR_CRLF_REGEXP,"\n")}tokenize(){for(;this._cursor.peek()!==$EOF;){const start=this._cursor.clone();try{this._attemptCharCode(60)?this._attemptCharCode(33)?this._attemptCharCode(91)?this._consumeCdata(start):this._attemptCharCode(45)?this._consumeComment(start):this._consumeDocType(start):this._attemptCharCode(47)?this._consumeTagClose(start):this._consumeTagOpen(start):this._tokenizeBlocks&&this._attemptCharCode(64)?this._consumeBlockStart(start):!this._tokenizeBlocks||this._inInterpolation||this._isInExpansionCase()||this._isInExpansionForm()||!this._attemptCharCode(125)?this._tokenizeIcu&&this._tokenizeExpansionForm()||this._consumeWithInterpolation(5,8,(()=>this._isTextEnd()),(()=>this._isTagStart())):this._consumeBlockEnd(start)}catch(e){this.handleError(e)}}this._beginToken(29),this._endToken([])}_getBlockName(){let spacesInNameAllowed=!1;const nameCursor=this._cursor.clone();return this._attemptCharCodeUntilFn((code=>isWhitespace(code)?!spacesInNameAllowed:!function isBlockNameChar(code){return isAsciiLetter(code)||isDigit(code)||code===$_}(code)||(spacesInNameAllowed=!0,!1))),this._cursor.getChars(nameCursor).trim()}_consumeBlockStart(start){this._beginToken(24,start);const startToken=this._endToken([this._getBlockName()]);if(40===this._cursor.peek()){if(this._cursor.advance(),this._consumeBlockParameters(),this._attemptCharCodeUntilFn(isNotWhitespace),!this._attemptCharCode(41))return void(startToken.type=28);this._attemptCharCodeUntilFn(isNotWhitespace)}this._attemptCharCode(123)?(this._beginToken(25),this._endToken([])):startToken.type=28}_consumeBlockEnd(start){this._beginToken(26,start),this._endToken([])}_consumeBlockParameters(){for(this._attemptCharCodeUntilFn(isBlockParameterChar);41!==this._cursor.peek()&&this._cursor.peek()!==$EOF;){this._beginToken(27);const start=this._cursor.clone();let inQuote=null,openParens=0;for(;59!==this._cursor.peek()&&this._cursor.peek()!==$EOF||null!==inQuote;){const char=this._cursor.peek();if(92===char)this._cursor.advance();else if(char===inQuote)inQuote=null;else if(null===inQuote&&isQuote(char))inQuote=char;else if(40===char&&null===inQuote)openParens++;else if(41===char&&null===inQuote){if(0===openParens)break;openParens>0&&openParens--}this._cursor.advance()}this._endToken([this._cursor.getChars(start)]),this._attemptCharCodeUntilFn(isBlockParameterChar)}}_tokenizeExpansionForm(){if(this.isExpansionFormStart())return this._consumeExpansionFormStart(),!0;if(function isExpansionCaseStart(peek){return 125!==peek}(this._cursor.peek())&&this._isInExpansionForm())return this._consumeExpansionCaseStart(),!0;if(125===this._cursor.peek()){if(this._isInExpansionCase())return this._consumeExpansionCaseEnd(),!0;if(this._isInExpansionForm())return this._consumeExpansionFormEnd(),!0}return!1}_beginToken(type,start=this._cursor.clone()){this._currentTokenStart=start,this._currentTokenType=type}_endToken(parts,end){if(null===this._currentTokenStart)throw new TokenError("Programming error - attempted to end a token when there was no start to the token",this._currentTokenType,this._cursor.getSpan(end));if(null===this._currentTokenType)throw new TokenError("Programming error - attempted to end a token which has no token type",null,this._cursor.getSpan(this._currentTokenStart));const token={type:this._currentTokenType,parts,sourceSpan:(end??this._cursor).getSpan(this._currentTokenStart,this._leadingTriviaCodePoints)};return this.tokens.push(token),this._currentTokenStart=null,this._currentTokenType=null,token}_createError(msg,span){this._isInExpansionForm()&&(msg+=' (Do you have an unescaped "{" in your template? Use "{{ \'{\' }}") to escape it.)');const error=new TokenError(msg,this._currentTokenType,span);return this._currentTokenStart=null,this._currentTokenType=null,new _ControlFlowError(error)}handleError(e){if(e instanceof CursorError&&(e=this._createError(e.msg,this._cursor.getSpan(e.cursor))),!(e instanceof _ControlFlowError))throw e;this.errors.push(e.error)}_attemptCharCode(charCode){return this._cursor.peek()===charCode&&(this._cursor.advance(),!0)}_attemptCharCodeCaseInsensitive(charCode){return!!function compareCharCodeCaseInsensitive(code1,code2){return toUpperCaseCharCode(code1)===toUpperCaseCharCode(code2)}(this._cursor.peek(),charCode)&&(this._cursor.advance(),!0)}_requireCharCode(charCode){const location=this._cursor.clone();if(!this._attemptCharCode(charCode))throw this._createError(_unexpectedCharacterErrorMsg(this._cursor.peek()),this._cursor.getSpan(location))}_attemptStr(chars){const len=chars.length;if(this._cursor.charsLeft()this._attemptStr("--\x3e"))),this._beginToken(11),this._requireStr("--\x3e"),this._endToken([])}_consumeCdata(start){this._beginToken(12,start),this._requireStr("CDATA["),this._endToken([]),this._consumeRawText(!1,(()=>this._attemptStr("]]>"))),this._beginToken(13),this._requireStr("]]>"),this._endToken([])}_consumeDocType(start){this._beginToken(18,start);const contentStart=this._cursor.clone();this._attemptUntilChar(62);const content=this._cursor.getChars(contentStart);this._cursor.advance(),this._endToken([content])}_consumePrefixAndName(){const nameOrPrefixStart=this._cursor.clone();let prefix="";for(;58!==this._cursor.peek()&&!(((code=this._cursor.peek())<$a||$z$9));)this._cursor.advance();var code;let nameStart;58===this._cursor.peek()?(prefix=this._cursor.getChars(nameOrPrefixStart),this._cursor.advance(),nameStart=this._cursor.clone()):nameStart=nameOrPrefixStart,this._requireCharCodeUntilFn(isNameEnd,""===prefix?0:1);return[prefix,this._cursor.getChars(nameStart)]}_consumeTagOpen(start){let tagName,prefix,openTagToken;try{if(!isAsciiLetter(this._cursor.peek()))throw this._createError(_unexpectedCharacterErrorMsg(this._cursor.peek()),this._cursor.getSpan(start));for(openTagToken=this._consumeTagOpenStart(start),prefix=openTagToken.parts[0],tagName=openTagToken.parts[1],this._attemptCharCodeUntilFn(isNotWhitespace);47!==this._cursor.peek()&&62!==this._cursor.peek()&&60!==this._cursor.peek()&&this._cursor.peek()!==$EOF;)this._consumeAttributeName(),this._attemptCharCodeUntilFn(isNotWhitespace),this._attemptCharCode(61)&&(this._attemptCharCodeUntilFn(isNotWhitespace),this._consumeAttributeValue()),this._attemptCharCodeUntilFn(isNotWhitespace);this._consumeTagOpenEnd()}catch(e){if(e instanceof _ControlFlowError)return void(openTagToken?openTagToken.type=4:(this._beginToken(5,start),this._endToken(["<"])));throw e}const contentTokenType=this._getTagDefinition(tagName).getContentType(prefix);contentTokenType===TagContentType.RAW_TEXT?this._consumeRawTextWithTagClose(prefix,tagName,!1):contentTokenType===TagContentType.ESCAPABLE_RAW_TEXT&&this._consumeRawTextWithTagClose(prefix,tagName,!0)}_consumeRawTextWithTagClose(prefix,tagName,consumeEntities){this._consumeRawText(consumeEntities,(()=>!!this._attemptCharCode(60)&&(!!this._attemptCharCode(47)&&(this._attemptCharCodeUntilFn(isNotWhitespace),!!this._attemptStrCaseInsensitive(tagName)&&(this._attemptCharCodeUntilFn(isNotWhitespace),this._attemptCharCode(62)))))),this._beginToken(3),this._requireCharCodeUntilFn((code=>62===code),3),this._cursor.advance(),this._endToken([prefix,tagName])}_consumeTagOpenStart(start){this._beginToken(0,start);const parts=this._consumePrefixAndName();return this._endToken(parts)}_consumeAttributeName(){const attrNameStart=this._cursor.peek();if(39===attrNameStart||34===attrNameStart)throw this._createError(_unexpectedCharacterErrorMsg(attrNameStart),this._cursor.getSpan());this._beginToken(14);const prefixAndName=this._consumePrefixAndName();this._endToken(prefixAndName)}_consumeAttributeValue(){if(39===this._cursor.peek()||34===this._cursor.peek()){const quoteChar=this._cursor.peek();this._consumeQuote(quoteChar);const endPredicate=()=>this._cursor.peek()===quoteChar;this._consumeWithInterpolation(16,17,endPredicate,endPredicate),this._consumeQuote(quoteChar)}else{const endPredicate=()=>isNameEnd(this._cursor.peek());this._consumeWithInterpolation(16,17,endPredicate,endPredicate)}}_consumeQuote(quoteChar){this._beginToken(15),this._requireCharCode(quoteChar),this._endToken([String.fromCodePoint(quoteChar)])}_consumeTagOpenEnd(){const tokenType=this._attemptCharCode(47)?2:1;this._beginToken(tokenType),this._requireCharCode(62),this._endToken([])}_consumeTagClose(start){this._beginToken(3,start),this._attemptCharCodeUntilFn(isNotWhitespace);const prefixAndName=this._consumePrefixAndName();this._attemptCharCodeUntilFn(isNotWhitespace),this._requireCharCode(62),this._endToken(prefixAndName)}_consumeExpansionFormStart(){this._beginToken(19),this._requireCharCode(123),this._endToken([]),this._expansionCaseStack.push(19),this._beginToken(7);const condition=this._readUntil(44),normalizedCondition=this._processCarriageReturns(condition);if(this._i18nNormalizeLineEndingsInICUs)this._endToken([normalizedCondition]);else{const conditionToken=this._endToken([condition]);normalizedCondition!==condition&&this.nonNormalizedIcuExpressions.push(conditionToken)}this._requireCharCode(44),this._attemptCharCodeUntilFn(isNotWhitespace),this._beginToken(7);const type=this._readUntil(44);this._endToken([type]),this._requireCharCode(44),this._attemptCharCodeUntilFn(isNotWhitespace)}_consumeExpansionCaseStart(){this._beginToken(20);const value=this._readUntil(123).trim();this._endToken([value]),this._attemptCharCodeUntilFn(isNotWhitespace),this._beginToken(21),this._requireCharCode(123),this._endToken([]),this._attemptCharCodeUntilFn(isNotWhitespace),this._expansionCaseStack.push(21)}_consumeExpansionCaseEnd(){this._beginToken(22),this._requireCharCode(125),this._endToken([]),this._attemptCharCodeUntilFn(isNotWhitespace),this._expansionCaseStack.pop()}_consumeExpansionFormEnd(){this._beginToken(23),this._requireCharCode(125),this._endToken([]),this._expansionCaseStack.pop()}_consumeWithInterpolation(textTokenType,interpolationTokenType,endPredicate,endInterpolation){this._beginToken(textTokenType);const parts=[];for(;!endPredicate();){const current=this._cursor.clone();this._interpolationConfig&&this._attemptStr(this._interpolationConfig.start)?(this._endToken([this._processCarriageReturns(parts.join(""))],current),parts.length=0,this._consumeInterpolation(interpolationTokenType,current,endInterpolation),this._beginToken(textTokenType)):38===this._cursor.peek()?(this._endToken([this._processCarriageReturns(parts.join(""))]),parts.length=0,this._consumeEntity(textTokenType),this._beginToken(textTokenType)):parts.push(this._readChar())}this._inInterpolation=!1,this._endToken([this._processCarriageReturns(parts.join(""))])}_consumeInterpolation(interpolationTokenType,interpolationStart,prematureEndPredicate){const parts=[];this._beginToken(interpolationTokenType,interpolationStart),parts.push(this._interpolationConfig.start);const expressionStart=this._cursor.clone();let inQuote=null,inComment=!1;for(;this._cursor.peek()!==$EOF&&(null===prematureEndPredicate||!prematureEndPredicate());){const current=this._cursor.clone();if(this._isTagStart())return this._cursor=current,parts.push(this._getProcessedChars(expressionStart,current)),void this._endToken(parts);if(null===inQuote){if(this._attemptStr(this._interpolationConfig.end))return parts.push(this._getProcessedChars(expressionStart,current)),parts.push(this._interpolationConfig.end),void this._endToken(parts);this._attemptStr("//")&&(inComment=!0)}const char=this._cursor.peek();this._cursor.advance(),92===char?this._cursor.advance():char===inQuote?inQuote=null:!inComment&&null===inQuote&&isQuote(char)&&(inQuote=char)}parts.push(this._getProcessedChars(expressionStart,this._cursor)),this._endToken(parts)}_getProcessedChars(start,end){return this._processCarriageReturns(end.getChars(start))}_isTextEnd(){if(this._isTagStart()||this._cursor.peek()===$EOF)return!0;if(this._tokenizeIcu&&!this._inInterpolation){if(this.isExpansionFormStart())return!0;if(125===this._cursor.peek()&&this._isInExpansionCase())return!0}return!(!this._tokenizeBlocks||this._inInterpolation||this._isInExpansion()||64!==this._cursor.peek()&&125!==this._cursor.peek())}_isTagStart(){if(60===this._cursor.peek()){const tmp=this._cursor.clone();tmp.advance();const code=tmp.peek();if($a<=code&&code<=$z||$A<=code&&code<=$Z||47===code||33===code)return!0}return!1}_readUntil(char){const start=this._cursor.clone();return this._attemptUntilChar(char),this._cursor.getChars(start)}_isInExpansion(){return this._isInExpansionCase()||this._isInExpansionForm()}_isInExpansionCase(){return this._expansionCaseStack.length>0&&21===this._expansionCaseStack[this._expansionCaseStack.length-1]}_isInExpansionForm(){return this._expansionCaseStack.length>0&&19===this._expansionCaseStack[this._expansionCaseStack.length-1]}isExpansionFormStart(){if(123!==this._cursor.peek())return!1;if(this._interpolationConfig){const start=this._cursor.clone(),isInterpolation=this._attemptStr(this._interpolationConfig.start);return this._cursor=start,!isInterpolation}return!0}}function isNotWhitespace(code){return!isWhitespace(code)||code===$EOF}function isNameEnd(code){return isWhitespace(code)||62===code||60===code||47===code||39===code||34===code||61===code||code===$EOF}function isDigitEntityEnd(code){return 59===code||code===$EOF||!function isAsciiHexDigit(code){return code>=$a&&code<=102||code>=$A&&code<=70||isDigit(code)}(code)}function isNamedEntityEnd(code){return 59===code||code===$EOF||!isAsciiLetter(code)}function toUpperCaseCharCode(code){return code>=$a&&code<=$z?code-$a+$A:code}function isBlockParameterChar(code){return 59!==code&&isNotWhitespace(code)}class PlainCharacterCursor{constructor(fileOrCursor,range){if(fileOrCursor instanceof PlainCharacterCursor){this.file=fileOrCursor.file,this.input=fileOrCursor.input,this.end=fileOrCursor.end;const state=fileOrCursor.state;this.state={peek:state.peek,offset:state.offset,line:state.line,column:state.column}}else{if(!range)throw new Error("Programming error: the range argument must be provided with a file argument.");this.file=fileOrCursor,this.input=fileOrCursor.content,this.end=range.endPos,this.state={peek:-1,offset:range.startPos,line:range.startLine,column:range.startCol}}}clone(){return new PlainCharacterCursor(this)}peek(){return this.state.peek}charsLeft(){return this.end-this.state.offset}diff(other){return this.state.offset-other.state.offset}advance(){this.advanceState(this.state)}init(){this.updatePeek(this.state)}getSpan(start,leadingTriviaCodePoints){let fullStart=start=start||this;if(leadingTriviaCodePoints)for(;this.diff(start)>0&&-1!==leadingTriviaCodePoints.indexOf(start.peek());)fullStart===start&&(start=start.clone()),start.advance();const startLocation=this.locationFromCursor(start),endLocation=this.locationFromCursor(this),fullStartLocation=fullStart!==start?this.locationFromCursor(fullStart):startLocation;return new ParseSourceSpan(startLocation,endLocation,fullStartLocation)}getChars(start){return this.input.substring(start.state.offset,this.state.offset)}charAt(pos){return this.input.charCodeAt(pos)}advanceState(state){if(state.offset>=this.end)throw this.state=state,new CursorError('Unexpected character "EOF"',this);const currentChar=this.charAt(state.offset);10===currentChar?(state.line++,state.column=0):isNewLine(currentChar)||state.column++,state.offset++,this.updatePeek(state)}updatePeek(state){state.peek=state.offset>=this.end?$EOF:this.charAt(state.offset)}locationFromCursor(cursor){return new ParseLocation(cursor.file,cursor.state.offset,cursor.state.line,cursor.state.column)}}class EscapedCharacterCursor extends PlainCharacterCursor{constructor(fileOrCursor,range){fileOrCursor instanceof EscapedCharacterCursor?(super(fileOrCursor),this.internalState={...fileOrCursor.internalState}):(super(fileOrCursor,range),this.internalState=this.state)}advance(){this.state=this.internalState,super.advance(),this.processEscapeSequence()}init(){super.init(),this.processEscapeSequence()}clone(){return new EscapedCharacterCursor(this)}getChars(start){const cursor=start.clone();let chars="";for(;cursor.internalState.offsetthis.internalState.peek;if(92===peek())if(this.internalState={...this.state},this.advanceState(this.internalState),110===peek())this.state.peek=10;else if(114===peek())this.state.peek=13;else if(118===peek())this.state.peek=11;else if(116===peek())this.state.peek=9;else if(98===peek())this.state.peek=8;else if(102===peek())this.state.peek=12;else if(117===peek())if(this.advanceState(this.internalState),123===peek()){this.advanceState(this.internalState);const digitStart=this.clone();let length=0;for(;125!==peek();)this.advanceState(this.internalState),length++;this.state.peek=this.decodeHexDigits(digitStart,length)}else{const digitStart=this.clone();this.advanceState(this.internalState),this.advanceState(this.internalState),this.advanceState(this.internalState),this.state.peek=this.decodeHexDigits(digitStart,4)}else if(120===peek()){this.advanceState(this.internalState);const digitStart=this.clone();this.advanceState(this.internalState),this.state.peek=this.decodeHexDigits(digitStart,2)}else if(isOctalDigit(peek())){let octal="",length=0,previous=this.clone();for(;isOctalDigit(peek())&&length<3;)previous=this.clone(),octal+=String.fromCodePoint(peek()),this.advanceState(this.internalState),length++;this.state.peek=parseInt(octal,8),this.internalState=previous.internalState}else isNewLine(this.internalState.peek)?(this.advanceState(this.internalState),this.state=this.internalState):this.state.peek=this.internalState.peek}decodeHexDigits(start,length){const hex=this.input.slice(start.internalState.offset,start.internalState.offset+length),charCode=parseInt(hex,16);if(isNaN(charCode))throw start.state=start.internalState,new CursorError("Invalid hexadecimal escape sequence",start);return charCode}}class CursorError{constructor(msg,cursor){this.msg=msg,this.cursor=cursor}}class TreeError extends ParseError{static create(elementName,span,msg){return new TreeError(elementName,span,msg)}constructor(elementName,span,msg){super(span,msg),this.elementName=elementName}}class ParseTreeResult{constructor(rootNodes,errors){this.rootNodes=rootNodes,this.errors=errors}}class Parser{constructor(getTagDefinition){this.getTagDefinition=getTagDefinition}parse(source,url,options){const tokenizeResult=tokenize(source,url,this.getTagDefinition,options),parser=new _TreeBuilder(tokenizeResult.tokens,this.getTagDefinition);return parser.build(),new ParseTreeResult(parser.rootNodes,tokenizeResult.errors.concat(parser.errors))}}class _TreeBuilder{constructor(tokens,getTagDefinition){this.tokens=tokens,this.getTagDefinition=getTagDefinition,this._index=-1,this._containerStack=[],this.rootNodes=[],this.errors=[],this._advance()}build(){for(;29!==this._peek.type;)0===this._peek.type||4===this._peek.type?this._consumeStartTag(this._advance()):3===this._peek.type?this._consumeEndTag(this._advance()):12===this._peek.type?(this._closeVoidElement(),this._consumeCdata(this._advance())):10===this._peek.type?(this._closeVoidElement(),this._consumeComment(this._advance())):5===this._peek.type||7===this._peek.type||6===this._peek.type?(this._closeVoidElement(),this._consumeText(this._advance())):19===this._peek.type?this._consumeExpansion(this._advance()):24===this._peek.type?(this._closeVoidElement(),this._consumeBlockOpen(this._advance())):26===this._peek.type?(this._closeVoidElement(),this._consumeBlockClose(this._advance())):28===this._peek.type?(this._closeVoidElement(),this._consumeIncompleteBlock(this._advance())):this._advance();for(const leftoverContainer of this._containerStack)leftoverContainer instanceof Block&&this.errors.push(TreeError.create(leftoverContainer.name,leftoverContainer.sourceSpan,`Unclosed block "${leftoverContainer.name}"`))}_advance(){const prev=this._peek;return this._index0)return this.errors=this.errors.concat(expansionCaseParser.errors),null;const sourceSpan=new ParseSourceSpan(value.sourceSpan.start,end.sourceSpan.end,value.sourceSpan.fullStart),expSourceSpan=new ParseSourceSpan(start.sourceSpan.start,end.sourceSpan.end,start.sourceSpan.fullStart);return new ExpansionCase(value.parts[0],expansionCaseParser.rootNodes,sourceSpan,value.sourceSpan,expSourceSpan)}_collectExpansionExpTokens(start){const exp=[],expansionFormStack=[21];for(;;){if(19!==this._peek.type&&21!==this._peek.type||expansionFormStack.push(this._peek.type),22===this._peek.type){if(!lastOnStack(expansionFormStack,21))return this.errors.push(TreeError.create(null,start.sourceSpan,"Invalid ICU message. Missing '}'.")),null;if(expansionFormStack.pop(),0===expansionFormStack.length)return exp}if(23===this._peek.type){if(!lastOnStack(expansionFormStack,19))return this.errors.push(TreeError.create(null,start.sourceSpan,"Invalid ICU message. Missing '}'.")),null;expansionFormStack.pop()}if(29===this._peek.type)return this.errors.push(TreeError.create(null,start.sourceSpan,"Invalid ICU message. Missing '}'.")),null;exp.push(this._advance())}}_consumeText(token){const tokens=[token],startSpan=token.sourceSpan;let text=token.parts[0];if(text.length>0&&"\n"===text[0]){const parent=this._getContainer();null!=parent&&0===parent.children.length&&this.getTagDefinition(parent.name).ignoreFirstLf&&(text=text.substring(1),tokens[0]={type:token.type,sourceSpan:token.sourceSpan,parts:[text]})}for(;8===this._peek.type||5===this._peek.type||9===this._peek.type;)token=this._advance(),tokens.push(token),8===token.type?text+=token.parts.join("").replace(/&([^;]+);/g,decodeEntity):9===token.type?text+=token.parts[0]:text+=token.parts.join("");if(text.length>0){const endSpan=token.sourceSpan;this._addToParent(new Text(text,new ParseSourceSpan(startSpan.start,endSpan.end,startSpan.fullStart,startSpan.details),tokens))}}_closeVoidElement(){const el=this._getContainer();el instanceof Element&&this.getTagDefinition(el.name).isVoid&&this._containerStack.pop()}_consumeStartTag(startTagToken){const[prefix,name]=startTagToken.parts,attrs=[];for(;14===this._peek.type;)attrs.push(this._consumeAttr(this._advance()));const fullName=this._getElementFullName(prefix,name,this._getClosestParentElement());let selfClosing=!1;if(2===this._peek.type){this._advance(),selfClosing=!0;const tagDef=this.getTagDefinition(fullName);tagDef.canSelfClose||null!==getNsPrefix(fullName)||tagDef.isVoid||this.errors.push(TreeError.create(fullName,startTagToken.sourceSpan,`Only void, custom and foreign elements can be self closed "${startTagToken.parts[1]}"`))}else 1===this._peek.type&&(this._advance(),selfClosing=!1);const end=this._peek.sourceSpan.fullStart,span=new ParseSourceSpan(startTagToken.sourceSpan.start,end,startTagToken.sourceSpan.fullStart),startSpan=new ParseSourceSpan(startTagToken.sourceSpan.start,end,startTagToken.sourceSpan.fullStart),el=new Element(fullName,attrs,[],span,startSpan,void 0),parentEl=this._getContainer();this._pushContainer(el,parentEl instanceof Element&&this.getTagDefinition(parentEl.name).isClosedByChild(el.name)),selfClosing?this._popContainer(fullName,Element,span):4===startTagToken.type&&(this._popContainer(fullName,Element,null),this.errors.push(TreeError.create(fullName,span,`Opening tag "${fullName}" not terminated.`)))}_pushContainer(node,isClosedByChild){isClosedByChild&&this._containerStack.pop(),this._addToParent(node),this._containerStack.push(node)}_consumeEndTag(endTagToken){const fullName=this._getElementFullName(endTagToken.parts[0],endTagToken.parts[1],this._getClosestParentElement());if(this.getTagDefinition(fullName).isVoid)this.errors.push(TreeError.create(fullName,endTagToken.sourceSpan,`Void elements do not have end tags "${endTagToken.parts[1]}"`));else if(!this._popContainer(fullName,Element,endTagToken.sourceSpan)){const errMsg=`Unexpected closing tag "${fullName}". It may happen when the tag has already been closed by another tag. For more info see https://www.w3.org/TR/html5/syntax.html#closing-elements-that-have-implied-end-tags`;this.errors.push(TreeError.create(fullName,endTagToken.sourceSpan,errMsg))}}_popContainer(expectedName,expectedType,endSourceSpan){let unexpectedCloseTagDetected=!1;for(let stackIndex=this._containerStack.length-1;stackIndex>=0;stackIndex--){const node=this._containerStack[stackIndex];if((node.name===expectedName||null===expectedName)&&node instanceof expectedType)return node.endSourceSpan=endSourceSpan,node.sourceSpan.end=null!==endSourceSpan?endSourceSpan.end:node.sourceSpan.end,this._containerStack.splice(stackIndex,this._containerStack.length-stackIndex),!unexpectedCloseTagDetected;(node instanceof Block||node instanceof Element&&!this.getTagDefinition(node.name).closedByParent)&&(unexpectedCloseTagDetected=!0)}return!1}_consumeAttr(attrName){const fullName=mergeNsAndName(attrName.parts[0],attrName.parts[1]);let attrEnd=attrName.sourceSpan.end;15===this._peek.type&&this._advance();let value="";const valueTokens=[];let valueStartSpan,valueEnd;if(16===this._peek.type)for(valueStartSpan=this._peek.sourceSpan,valueEnd=this._peek.sourceSpan.end;16===this._peek.type||17===this._peek.type||9===this._peek.type;){const valueToken=this._advance();valueTokens.push(valueToken),17===valueToken.type?value+=valueToken.parts.join("").replace(/&([^;]+);/g,decodeEntity):9===valueToken.type?value+=valueToken.parts[0]:value+=valueToken.parts.join(""),valueEnd=attrEnd=valueToken.sourceSpan.end}if(15===this._peek.type){attrEnd=this._advance().sourceSpan.end}const valueSpan=valueStartSpan&&valueEnd&&new ParseSourceSpan(valueStartSpan.start,valueEnd,valueStartSpan.fullStart);return new Attribute(fullName,value,new ParseSourceSpan(attrName.sourceSpan.start,attrEnd,attrName.sourceSpan.fullStart),attrName.sourceSpan,valueSpan,valueTokens.length>0?valueTokens:void 0,void 0)}_consumeBlockOpen(token){const parameters=[];for(;27===this._peek.type;){const paramToken=this._advance();parameters.push(new BlockParameter(paramToken.parts[0],paramToken.sourceSpan))}25===this._peek.type&&this._advance();const end=this._peek.sourceSpan.fullStart,span=new ParseSourceSpan(token.sourceSpan.start,end,token.sourceSpan.fullStart),startSpan=new ParseSourceSpan(token.sourceSpan.start,end,token.sourceSpan.fullStart),block=new Block(token.parts[0],parameters,[],span,token.sourceSpan,startSpan);this._pushContainer(block,!1)}_consumeBlockClose(token){this._popContainer(null,Block,token.sourceSpan)||this.errors.push(TreeError.create(null,token.sourceSpan,'Unexpected closing block. The block may have been closed earlier. If you meant to write the } character, you should use the "}" HTML entity instead.'))}_consumeIncompleteBlock(token){const parameters=[];for(;27===this._peek.type;){const paramToken=this._advance();parameters.push(new BlockParameter(paramToken.parts[0],paramToken.sourceSpan))}const end=this._peek.sourceSpan.fullStart,span=new ParseSourceSpan(token.sourceSpan.start,end,token.sourceSpan.fullStart),startSpan=new ParseSourceSpan(token.sourceSpan.start,end,token.sourceSpan.fullStart),block=new Block(token.parts[0],parameters,[],span,token.sourceSpan,startSpan);this._pushContainer(block,!1),this._popContainer(null,Block,null),this.errors.push(TreeError.create(token.parts[0],span,`Incomplete block "${token.parts[0]}". If you meant to write the @ character, you should use the "@" HTML entity instead.`))}_getContainer(){return this._containerStack.length>0?this._containerStack[this._containerStack.length-1]:null}_getClosestParentElement(){for(let i=this._containerStack.length-1;i>-1;i--)if(this._containerStack[i]instanceof Element)return this._containerStack[i];return null}_addToParent(node){const parent=this._getContainer();null===parent?this.rootNodes.push(node):parent.children.push(node)}_getElementFullName(prefix,localName,parentElement){if(""===prefix&&""===(prefix=this.getTagDefinition(localName).implicitNamespacePrefix||"")&&null!=parentElement){const parentTagName=splitNsName(parentElement.name)[1];this.getTagDefinition(parentTagName).preventNamespaceInheritance||(prefix=getNsPrefix(parentElement.name))}return mergeNsAndName(prefix,localName)}}function lastOnStack(stack,element){return stack.length>0&&stack[stack.length-1]===element}function decodeEntity(match,entity){return void 0!==NAMED_ENTITIES[entity]?NAMED_ENTITIES[entity]||match:/^#x[a-f0-9]+$/i.test(entity)?String.fromCodePoint(parseInt(entity.slice(2),16)):/^#\d+$/.test(entity)?String.fromCodePoint(parseInt(entity.slice(1),10)):match}const TRUSTED_TYPES_SINKS=new Set(["iframe|srcdoc","*|innerhtml","*|outerhtml","embed|src","object|codebase","object|data"]);function isTrustedTypesSink(tagName,propName){return tagName=tagName.toLowerCase(),propName=propName.toLowerCase(),TRUSTED_TYPES_SINKS.has(tagName+"|"+propName)||TRUSTED_TYPES_SINKS.has("*|"+propName)}const setI18nRefs=(htmlNode,i18nNode)=>(htmlNode instanceof NodeWithI18n&&(i18nNode instanceof IcuPlaceholder&&htmlNode.i18n instanceof Message&&(i18nNode.previousMessage=htmlNode.i18n),htmlNode.i18n=i18nNode),i18nNode);class I18nMetaVisitor{constructor(interpolationConfig=DEFAULT_INTERPOLATION_CONFIG,keepI18nAttrs=!1,enableI18nLegacyMessageIdFormat=!1,containerBlocks=DEFAULT_CONTAINER_BLOCKS){this.interpolationConfig=interpolationConfig,this.keepI18nAttrs=keepI18nAttrs,this.enableI18nLegacyMessageIdFormat=enableI18nLegacyMessageIdFormat,this.containerBlocks=containerBlocks,this.hasI18nMeta=!1,this._errors=[]}_generateI18nMessage(nodes,meta="",visitNodeFn){const{meaning,description,customId}=this._parseMetadata(meta),message=createI18nMessageFactory(this.interpolationConfig,this.containerBlocks)(nodes,meaning,description,customId,visitNodeFn);return this._setMessageId(message,meta),this._setLegacyIds(message,meta),message}visitAllWithErrors(nodes){const result=nodes.map((node=>node.visit(this,null)));return new ParseTreeResult(result,this._errors)}visitElement(element){let message;if(function hasI18nAttrs(element){return element.attrs.some((attr=>isI18nAttribute(attr.name)))}(element)){this.hasI18nMeta=!0;const attrs=[],attrsMeta={};for(const attr of element.attrs)if(attr.name===I18N_ATTR){const i18n=element.i18n||attr.value;message=this._generateI18nMessage(element.children,i18n,setI18nRefs),0===message.nodes.length&&(message=void 0),element.i18n=message}else if(attr.name.startsWith(I18N_ATTR_PREFIX)){const name=attr.name.slice(I18N_ATTR_PREFIX.length);isTrustedTypesSink(element.name,name)?this._reportError(attr,`Translating attribute '${name}' is disallowed for security reasons.`):attrsMeta[name]=attr.value}else attrs.push(attr);if(Object.keys(attrsMeta).length)for(const attr of attrs){const meta=attrsMeta[attr.name];void 0!==meta&&attr.value&&(attr.i18n=this._generateI18nMessage([attr],attr.i18n||meta))}this.keepI18nAttrs||(element.attrs=attrs)}return visitAll(this,element.children,message),element}visitExpansion(expansion,currentMessage){let message;const meta=expansion.i18n;if(this.hasI18nMeta=!0,meta instanceof IcuPlaceholder){const name=meta.name;message=this._generateI18nMessage([expansion],meta);icuFromI18nMessage(message).name=name,null!==currentMessage&&(currentMessage.placeholderToMessage[name]=message)}else message=this._generateI18nMessage([expansion],currentMessage||meta);return expansion.i18n=message,expansion}visitText(text){return text}visitAttribute(attribute){return attribute}visitComment(comment){return comment}visitExpansionCase(expansionCase){return expansionCase}visitBlock(block,context){return visitAll(this,block.children,context),block}visitBlockParameter(parameter,context){return parameter}_parseMetadata(meta){return"string"==typeof meta?function parseI18nMeta(meta=""){let customId,meaning,description;if(meta=meta.trim(),meta){const idIndex=meta.indexOf(I18N_ID_SEPARATOR),descIndex=meta.indexOf(I18N_MEANING_SEPARATOR);let meaningAndDesc;[meaningAndDesc,customId]=idIndex>-1?[meta.slice(0,idIndex),meta.slice(idIndex+2)]:[meta,""],[meaning,description]=descIndex>-1?[meaningAndDesc.slice(0,descIndex),meaningAndDesc.slice(descIndex+1)]:["",meaningAndDesc]}return{customId,meaning,description}}(meta):meta instanceof Message?meta:{}}_setMessageId(message,meta){message.id||(message.id=meta instanceof Message&&meta.id||decimalDigest(message))}_setLegacyIds(message,meta){if(this.enableI18nLegacyMessageIdFormat)message.legacyIds=[computeDigest(message),computeDecimalDigest(message)];else if("string"!=typeof meta){const previousMessage=meta instanceof Message?meta:meta instanceof IcuPlaceholder?meta.previousMessage:void 0;message.legacyIds=previousMessage?previousMessage.legacyIds:[]}}_reportError(node,msg){this._errors.push(new I18nError(node.sourceSpan,msg))}}const I18N_MEANING_SEPARATOR="|",I18N_ID_SEPARATOR="@@";function createGoogleGetMsgStatements(variable$1,message,closureVar,placeholderValues){const messageString=function serializeI18nMessageForGetMsg(message){return message.nodes.map((node=>node.visit(serializerVisitor,null))).join("")}(message),args=[literal(messageString)];Object.keys(placeholderValues).length&&(args.push(mapLiteral(formatI18nPlaceholderNamesInMap(placeholderValues,!0),!0)),args.push(mapLiteral({original_code:literalMap(Object.keys(placeholderValues).map((param=>({key:formatI18nPlaceholderName(param),quoted:!0,value:message.placeholders[param]?literal(message.placeholders[param].sourceSpan.toString()):literal(message.placeholderToMessage[param].nodes.map((node=>node.sourceSpan.toString())).join(""))}))))})));const googGetMsgStmt=closureVar.set(variable("goog.getMsg").callFn(args)).toConstDecl();googGetMsgStmt.addLeadingComment(function i18nMetaToJSDoc(meta){const tags=[];return meta.description?tags.push({tagName:"desc",text:meta.description}):tags.push({tagName:"suppress",text:"{msgDescriptions}"}),meta.meaning&&tags.push({tagName:"meaning",text:meta.meaning}),jsDocComment(tags)}(message));return[googGetMsgStmt,new ExpressionStatement(variable$1.set(closureVar))]}const serializerVisitor=new class GetMsgSerializerVisitor{formatPh(value){return`{$${formatI18nPlaceholderName(value)}}`}visitText(text){return text.value}visitContainer(container){return container.children.map((child=>child.visit(this))).join("")}visitIcu(icu){return serializeIcuNode(icu)}visitTagPlaceholder(ph){return ph.isVoid?this.formatPh(ph.startName):`${this.formatPh(ph.startName)}${ph.children.map((child=>child.visit(this))).join("")}${this.formatPh(ph.closeName)}`}visitPlaceholder(ph){return this.formatPh(ph.name)}visitBlockPlaceholder(ph){return`${this.formatPh(ph.startName)}${ph.children.map((child=>child.visit(this))).join("")}${this.formatPh(ph.closeName)}`}visitIcuPlaceholder(ph,context){return this.formatPh(ph.name)}};function createLocalizeStatements(variable,message,params){const{messageParts,placeHolders}=function serializeI18nMessageForLocalize(message){const pieces=[],serializerVisitor=new LocalizeSerializerVisitor(message.placeholderToMessage,pieces);return message.nodes.forEach((node=>node.visit(serializerVisitor))),function processMessagePieces(pieces){const messageParts=[],placeHolders=[];pieces[0]instanceof PlaceholderPiece&&messageParts.push(createEmptyMessagePart(pieces[0].sourceSpan.start));for(let i=0;iparams[ph.text])),localizedString$1=localizedString(message,messageParts,placeHolders,expressions,sourceSpan),variableInitialization=variable.set(localizedString$1);return[new ExpressionStatement(variableInitialization)]}class LocalizeSerializerVisitor{constructor(placeholderToMessage,pieces){this.placeholderToMessage=placeholderToMessage,this.pieces=pieces}visitText(text){if(this.pieces[this.pieces.length-1]instanceof LiteralPiece)this.pieces[this.pieces.length-1].text+=text.value;else{const sourceSpan=new ParseSourceSpan(text.sourceSpan.fullStart,text.sourceSpan.end,text.sourceSpan.fullStart,text.sourceSpan.details);this.pieces.push(new LiteralPiece(text.value,sourceSpan))}}visitContainer(container){container.children.forEach((child=>child.visit(this)))}visitIcu(icu){this.pieces.push(new LiteralPiece(serializeIcuNode(icu),icu.sourceSpan))}visitTagPlaceholder(ph){this.pieces.push(this.createPlaceholderPiece(ph.startName,ph.startSourceSpan??ph.sourceSpan)),ph.isVoid||(ph.children.forEach((child=>child.visit(this))),this.pieces.push(this.createPlaceholderPiece(ph.closeName,ph.endSourceSpan??ph.sourceSpan)))}visitPlaceholder(ph){this.pieces.push(this.createPlaceholderPiece(ph.name,ph.sourceSpan))}visitBlockPlaceholder(ph){this.pieces.push(this.createPlaceholderPiece(ph.startName,ph.startSourceSpan??ph.sourceSpan)),ph.children.forEach((child=>child.visit(this))),this.pieces.push(this.createPlaceholderPiece(ph.closeName,ph.endSourceSpan??ph.sourceSpan))}visitIcuPlaceholder(ph){this.pieces.push(this.createPlaceholderPiece(ph.name,ph.sourceSpan,this.placeholderToMessage[ph.name]))}createPlaceholderPiece(name,sourceSpan,associatedMessage){return new PlaceholderPiece(formatI18nPlaceholderName(name,!1),sourceSpan,associatedMessage)}}function createEmptyMessagePart(location){return new LiteralPiece("",new ParseSourceSpan(location,location))}function collectMessage(job,fileBasedI18nSuffix,messages,messageOp){const statements=[],subMessagePlaceholders=new Map;for(const subMessageId of messageOp.subMessages){const subMessage=messages.get(subMessageId),{mainVar:subMessageVar,statements:subMessageStatements}=collectMessage(job,fileBasedI18nSuffix,messages,subMessage);statements.push(...subMessageStatements);const subMessages=subMessagePlaceholders.get(subMessage.messagePlaceholder)??[];subMessages.push(subMessageVar),subMessagePlaceholders.set(subMessage.messagePlaceholder,subMessages)}!function addSubMessageParams(messageOp,subMessagePlaceholders){for(const[placeholder,subMessages]of subMessagePlaceholders)1===subMessages.length?messageOp.params.set(placeholder,subMessages[0]):(messageOp.params.set(placeholder,literal(`�I18N_EXP_${placeholder}�`)),messageOp.postprocessingParams.set(placeholder,literalArr(subMessages)))}(messageOp,subMessagePlaceholders),messageOp.params=new Map([...messageOp.params.entries()].sort());const mainVar=variable(job.pool.uniqueName("i18n_")),closureVar=function i18nGenerateClosureVar(pool,messageId,fileBasedI18nSuffix,useExternalIds){let name;const suffix=fileBasedI18nSuffix;if(useExternalIds){const prefix=getTranslationConstPrefix("EXTERNAL_"),uniqueSuffix=pool.uniqueName(suffix);name=`${prefix}${sanitizeIdentifier(messageId)}$$${uniqueSuffix}`}else{const prefix=getTranslationConstPrefix(suffix);name=pool.uniqueName(prefix)}return variable(name)}(job.pool,messageOp.message.id,fileBasedI18nSuffix,job.i18nUseExternalIds);let transformFn;if(messageOp.needsPostprocessing||messageOp.postprocessingParams.size>0){const formattedPostprocessingParams=formatI18nPlaceholderNamesInMap(Object.fromEntries([...messageOp.postprocessingParams.entries()].sort()),!1),extraTransformFnParams=[];messageOp.postprocessingParams.size>0&&extraTransformFnParams.push(mapLiteral(formattedPostprocessingParams,!0)),transformFn=expr=>importExpr(Identifiers.i18nPostprocess).callFn([expr,...extraTransformFnParams])}return statements.push(...function getTranslationDeclStmts$1(message,variable,closureVar,params,transformFn){const paramsObject=Object.fromEntries(params),statements=[declareI18nVariable(variable),ifStmt(createClosureModeGuard$1(),createGoogleGetMsgStatements(variable,message,closureVar,paramsObject),createLocalizeStatements(variable,message,formatI18nPlaceholderNamesInMap(paramsObject,!1)))];transformFn&&statements.push(new ExpressionStatement(variable.set(transformFn(variable))));return statements}(messageOp.message,mainVar,closureVar,messageOp.params,transformFn)),{mainVar,statements}}function createClosureModeGuard$1(){return typeofExpr(variable("ngI18nClosureMode")).notIdentical(literal("undefined",STRING_TYPE)).and(variable("ngI18nClosureMode"))}function serializeLocalRefs(refs){const constRefs=[];for(const ref of refs)constRefs.push(literal(ref.name),literal(ref.target));return literalArr(constRefs)}function parse(value){const styles=[];let i=0,parenDepth=0,quote=0,valueStart=0,propStart=0,currentProp=null;for(;i0&&0===parenDepth&&0===quote){const styleVal=value.substring(valueStart,i-1).trim();styles.push(currentProp,styleVal),propStart=i,valueStart=0,currentProp=null}}}if(currentProp&&valueStart){const styleVal=value.slice(valueStart).trim();styles.push(currentProp,styleVal)}return styles}function hyphenate(value){return value.replace(/[a-z][A-Z]/g,(v=>v.charAt(0)+"-"+v.charAt(1))).toLowerCase()}function addNamesToView(unit,baseName,state,compatibility){null===unit.fnName&&(unit.fnName=unit.job.pool.uniqueName(sanitizeIdentifier(`${baseName}_${unit.job.fnSuffix}`),!1));const varNames=new Map;for(const op of unit.ops())switch(op.kind){case OpKind.Property:case OpKind.HostProperty:op.isAnimationTrigger&&(op.name="@"+op.name);break;case OpKind.Listener:if(null!==op.handlerFnName)break;if(!op.hostListener&&null===op.targetSlot.slot)throw new Error("Expected a slot to be assigned");let animation="";op.isAnimationListener&&(op.name=`@${op.name}.${op.animationPhase}`,animation="animation"),op.hostListener?op.handlerFnName=`${baseName}_${animation}${op.name}_HostBindingHandler`:op.handlerFnName=`${unit.fnName}_${op.tag.replace("-","_")}_${animation}${op.name}_${op.targetSlot.slot}_listener`,op.handlerFnName=sanitizeIdentifier(op.handlerFnName);break;case OpKind.TwoWayListener:if(null!==op.handlerFnName)break;if(null===op.targetSlot.slot)throw new Error("Expected a slot to be assigned");op.handlerFnName=sanitizeIdentifier(`${unit.fnName}_${op.tag.replace("-","_")}_${op.name}_${op.targetSlot.slot}_listener`);break;case OpKind.Variable:varNames.set(op.xref,getVariableName(unit,op.variable,state));break;case OpKind.RepeaterCreate:if(!(unit instanceof ViewCompilationUnit))throw new Error("AssertionError: must be compiling a component");if(null===op.handle.slot)throw new Error("Expected slot to be assigned");if(null!==op.emptyView){addNamesToView(unit.job.views.get(op.emptyView),`${baseName}_${op.functionNameSuffix}Empty_${op.handle.slot+2}`,state,compatibility)}addNamesToView(unit.job.views.get(op.xref),`${baseName}_${op.functionNameSuffix}_${op.handle.slot+1}`,state,compatibility);break;case OpKind.Template:if(!(unit instanceof ViewCompilationUnit))throw new Error("AssertionError: must be compiling a component");const childView=unit.job.views.get(op.xref);if(null===op.handle.slot)throw new Error("Expected slot to be assigned");addNamesToView(childView,`${baseName}${0===op.functionNameSuffix.length?"":`_${op.functionNameSuffix}`}_${op.handle.slot}`,state,compatibility);break;case OpKind.StyleProp:op.name=(name=op.name).startsWith("--")?name:hyphenate(name),compatibility&&(op.name=stripImportant(op.name));break;case OpKind.ClassProp:compatibility&&(op.name=stripImportant(op.name))}var name;for(const op of unit.ops())visitExpressionsInOp(op,(expr=>{if(expr instanceof ReadVariableExpr&&null===expr.name){if(!varNames.has(expr.xref))throw new Error(`Variable ${expr.xref} not yet named`);expr.name=varNames.get(expr.xref)}}))}function getVariableName(unit,variable,state){if(null===variable.name)switch(variable.kind){case SemanticVariableKind.Context:variable.name="ctx_r"+state.index++;break;case SemanticVariableKind.Identifier:if(unit.job.compatibility===CompatibilityMode.TemplateDefinitionBuilder){const compatPrefix="ctx"===variable.identifier?"i":"";variable.name=`${variable.identifier}_${compatPrefix}r${++state.index}`}else variable.name=`${variable.identifier}_i${state.index++}`;break;default:variable.name="_r"+ ++state.index}return variable.name}function stripImportant(name){const importantIndex=name.indexOf("!important");return importantIndex>-1?name.substring(0,importantIndex):name}function mergeNextContextsInOps(ops){for(const op of ops){if(!(op.kind===OpKind.Statement&&op.statement instanceof ExpressionStatement&&op.statement.expr instanceof NextContextExpr))continue;const mergeSteps=op.statement.expr.steps;let tryToMerge=!0;for(let candidate=op.next;candidate.kind!==OpKind.ListEnd&&tryToMerge;candidate=candidate.next)visitExpressionsInOp(candidate,((expr,flags)=>{if(!isIrExpression(expr))return expr;if(tryToMerge&&!(flags&VisitorContextFlag.InChildOperation))switch(expr.kind){case ExpressionKind.NextContext:expr.steps+=mergeSteps,OpList.remove(op),tryToMerge=!1;break;case ExpressionKind.GetCurrentView:case ExpressionKind.Reference:tryToMerge=!1}}))}}function lookupElement(elements,xref){const el=elements.get(xref);if(void 0===el)throw new Error("All attributes should have an element-like target.");return el}function kindTest(kind){return op=>op.kind===kind}function kindWithInterpolationTest(kind,interpolation){return op=>op.kind===kind&&interpolation===op.expression instanceof Interpolation}const CREATE_ORDERING=[{test:op=>op.kind===OpKind.Listener&&op.hostListener&&op.isAnimationListener},{test:function basicListenerKindTest(op){return op.kind===OpKind.Listener&&!(op.hostListener&&op.isAnimationListener)||op.kind===OpKind.TwoWayListener}}],UPDATE_ORDERING=[{test:kindTest(OpKind.StyleMap),transform:keepLast},{test:kindTest(OpKind.ClassMap),transform:keepLast},{test:kindTest(OpKind.StyleProp)},{test:kindTest(OpKind.ClassProp)},{test:kindWithInterpolationTest(OpKind.Attribute,!0)},{test:kindWithInterpolationTest(OpKind.Property,!0)},{test:function nonInterpolationPropertyKindTest(op){return!(op.kind!==OpKind.Property&&op.kind!==OpKind.TwoWayProperty||op.expression instanceof Interpolation)}},{test:kindWithInterpolationTest(OpKind.Attribute,!1)}],UPDATE_HOST_ORDERING=[{test:kindWithInterpolationTest(OpKind.HostProperty,!0)},{test:kindWithInterpolationTest(OpKind.HostProperty,!1)},{test:kindTest(OpKind.Attribute)},{test:kindTest(OpKind.StyleMap),transform:keepLast},{test:kindTest(OpKind.ClassMap),transform:keepLast},{test:kindTest(OpKind.StyleProp)},{test:kindTest(OpKind.ClassProp)}],handledOpKinds=new Set([OpKind.Listener,OpKind.TwoWayListener,OpKind.StyleMap,OpKind.ClassMap,OpKind.StyleProp,OpKind.ClassProp,OpKind.Property,OpKind.TwoWayProperty,OpKind.HostProperty,OpKind.Attribute]);function orderWithin(opList,ordering){let opsToOrder=[],firstTargetInGroup=null;for(const op of opList){const currentTarget=hasDependsOnSlotContextTrait(op)?op.target:null;(!handledOpKinds.has(op.kind)||currentTarget!==firstTargetInGroup&&null!==firstTargetInGroup&&null!==currentTarget)&&(OpList.insertBefore(reorder(opsToOrder,ordering),op),opsToOrder=[],firstTargetInGroup=null),handledOpKinds.has(op.kind)&&(opsToOrder.push(op),OpList.remove(op),firstTargetInGroup=currentTarget??firstTargetInGroup)}opList.push(reorder(opsToOrder,ordering))}function reorder(ops,ordering){const groups=Array.from(ordering,(()=>new Array));for(const op of ops){groups[ordering.findIndex((o=>o.test(op)))].push(op)}return groups.flatMap(((group,i)=>{const transform=ordering[i].transform;return transform?transform(group):group}))}function keepLast(ops){return ops.slice(ops.length-1)}function lookupInXrefMap(map,xref){const el=map.get(xref);if(void 0===el)throw new Error("All attributes should have an slottable target.");return el}function processPipeBindingsInView(unit){for(const updateOp of unit.update)visitExpressionsInOp(updateOp,((expr,flags)=>{if(isIrExpression(expr)&&expr.kind===ExpressionKind.PipeBinding){if(flags&VisitorContextFlag.InChildOperation)throw new Error("AssertionError: pipe bindings should not appear in child expressions");if(unit.job.compatibility){if(null==updateOp.target)throw new Error("AssertionError: expected slot handle to be assigned for pipe creation");addPipeToCreationBlock(unit,updateOp.target,expr)}else unit.create.push(createPipeOp(expr.target,expr.targetSlot,expr.name))}}))}function addPipeToCreationBlock(unit,afterTargetXref,binding){for(let op=unit.create.head.next;op.kind!==OpKind.ListEnd;op=op.next){if(!hasConsumesSlotTrait(op))continue;if(op.xref!==afterTargetXref)continue;for(;op.next.kind===OpKind.Pipe;)op=op.next;const pipe=createPipeOp(binding.target,binding.targetSlot,binding.name);return void OpList.insertBefore(pipe,op.next)}throw new Error(`AssertionError: unable to find insertion point for pipe ${binding.name}`)}function propagateI18nBlocksToTemplates(unit,subTemplateIndex){let i18nBlock=null;for(const op of unit.create)switch(op.kind){case OpKind.I18nStart:op.subTemplateIndex=0===subTemplateIndex?null:subTemplateIndex,i18nBlock=op;break;case OpKind.I18nEnd:null===i18nBlock.subTemplateIndex&&(subTemplateIndex=0),i18nBlock=null;break;case OpKind.Template:subTemplateIndex=propagateI18nBlocksForView(unit.job.views.get(op.xref),i18nBlock,op.i18nPlaceholder,subTemplateIndex);break;case OpKind.RepeaterCreate:subTemplateIndex=propagateI18nBlocksForView(unit.job.views.get(op.xref),i18nBlock,op.i18nPlaceholder,subTemplateIndex),null!==op.emptyView&&(subTemplateIndex=propagateI18nBlocksForView(unit.job.views.get(op.emptyView),i18nBlock,op.emptyI18nPlaceholder,subTemplateIndex))}return subTemplateIndex}function propagateI18nBlocksForView(view,i18nBlock,i18nPlaceholder,subTemplateIndex){if(void 0!==i18nPlaceholder){if(null===i18nBlock)throw Error("Expected template with i18n placeholder to be in an i18n block.");subTemplateIndex++,function wrapTemplateWithI18n(unit,parentI18n){if(unit.create.head.next?.kind!==OpKind.I18nStart){const id=unit.job.allocateXrefId();OpList.insertAfter(createI18nStartOp(id,parentI18n.message,parentI18n.root,null),unit.create.head),OpList.insertBefore(createI18nEndOp(id,null),unit.create.tail)}}(view,i18nBlock)}return propagateI18nBlocksToTemplates(view,subTemplateIndex)}class PureFunctionConstant extends GenericKeyFn{constructor(numArgs){super(),this.numArgs=numArgs}keyOf(expr){return expr instanceof PureFunctionParameterExpr?`param(${expr.index})`:super.keyOf(expr)}toSharedConstantDeclaration(declName,keyExpr){const fnParams=[];for(let idx=0;idxexpr instanceof PureFunctionParameterExpr?variable("a"+expr.index):expr),VisitorContextFlag.None);return new DeclareVarStmt(declName,new ArrowFunctionExpr(fnParams,returnExpr),void 0,StmtModifier.Final)}}function transformLiteralArray(expr){const derivedEntries=[],nonConstantArgs=[];for(const entry of expr.entries)if(entry.isConstant())derivedEntries.push(entry);else{const idx=nonConstantArgs.length;nonConstantArgs.push(entry),derivedEntries.push(new PureFunctionParameterExpr(idx))}return new PureFunctionExpr(literalArr(derivedEntries),nonConstantArgs)}function transformLiteralMap(expr){let derivedEntries=[];const nonConstantArgs=[];for(const entry of expr.entries)if(entry.value.isConstant())derivedEntries.push(entry);else{const idx=nonConstantArgs.length;nonConstantArgs.push(entry.value),derivedEntries.push(new LiteralMapEntry(entry.key,new PureFunctionParameterExpr(idx),entry.quoted))}return new PureFunctionExpr(literalMap(derivedEntries),nonConstantArgs)}function element(slot,tag,constIndex,localRefIndex,sourceSpan){return elementOrContainerBase(Identifiers.element,slot,tag,constIndex,localRefIndex,sourceSpan)}function elementOrContainerBase(instruction,slot,tag,constIndex,localRefIndex,sourceSpan){const args=[literal(slot)];return null!==tag&&args.push(literal(tag)),null!==localRefIndex?args.push(literal(constIndex),literal(localRefIndex)):null!==constIndex&&args.push(literal(constIndex)),call(instruction,args,sourceSpan)}function elementEnd(sourceSpan){return call(Identifiers.elementEnd,[],sourceSpan)}function elementContainerStart(slot,constIndex,localRefIndex,sourceSpan){return elementOrContainerBase(Identifiers.elementContainerStart,slot,null,constIndex,localRefIndex,sourceSpan)}function elementContainer(slot,constIndex,localRefIndex,sourceSpan){return elementOrContainerBase(Identifiers.elementContainer,slot,null,constIndex,localRefIndex,sourceSpan)}function template(slot,templateFnRef,decls,vars,tag,constIndex,localRefs,sourceSpan){const args=[literal(slot),templateFnRef,literal(decls),literal(vars),literal(tag),literal(constIndex)];for(null!==localRefs&&(args.push(literal(localRefs)),args.push(importExpr(Identifiers.templateRefExtractor)));args[args.length-1].isEquivalent(NULL_EXPR);)args.pop();return call(Identifiers.templateCreate,args,sourceSpan)}function listener(name,handlerFn,eventTargetResolver,syntheticHost,sourceSpan){const args=[literal(name),handlerFn];return null!==eventTargetResolver&&(args.push(literal(!1)),args.push(importExpr(eventTargetResolver))),call(syntheticHost?Identifiers.syntheticHostListener:Identifiers.listener,args,sourceSpan)}function twoWayBindingSet(target,value){return importExpr(Identifiers.twoWayBindingSet).callFn([target,value])}function twoWayListener(name,handlerFn,sourceSpan){return call(Identifiers.twoWayListener,[literal(name),handlerFn],sourceSpan)}function pipe(slot,name){return call(Identifiers.pipe,[literal(slot),literal(name)],null)}function text(slot,initialValue,sourceSpan){const args=[literal(slot,null)];return""!==initialValue&&args.push(literal(initialValue)),call(Identifiers.text,args,sourceSpan)}function defer(selfSlot,primarySlot,dependencyResolverFn,loadingSlot,placeholderSlot,errorSlot,loadingConfig,placeholderConfig,enableTimerScheduling,sourceSpan){const args=[literal(selfSlot),literal(primarySlot),dependencyResolverFn??literal(null),literal(loadingSlot),literal(placeholderSlot),literal(errorSlot),loadingConfig??literal(null),placeholderConfig??literal(null),enableTimerScheduling?importExpr(Identifiers.deferEnableTimerScheduling):literal(null)];let expr;for(;null!==(expr=args[args.length-1])&&expr instanceof LiteralExpr&&null===expr.value;)args.pop();return call(Identifiers.defer,args,sourceSpan)}const deferTriggerToR3TriggerInstructionsMap=new Map([[DeferTriggerKind.Idle,[Identifiers.deferOnIdle,Identifiers.deferPrefetchOnIdle]],[DeferTriggerKind.Immediate,[Identifiers.deferOnImmediate,Identifiers.deferPrefetchOnImmediate]],[DeferTriggerKind.Timer,[Identifiers.deferOnTimer,Identifiers.deferPrefetchOnTimer]],[DeferTriggerKind.Hover,[Identifiers.deferOnHover,Identifiers.deferPrefetchOnHover]],[DeferTriggerKind.Interaction,[Identifiers.deferOnInteraction,Identifiers.deferPrefetchOnInteraction]],[DeferTriggerKind.Viewport,[Identifiers.deferOnViewport,Identifiers.deferPrefetchOnViewport]]]);function deferOn(trigger,args,prefetch,sourceSpan){const instructions=deferTriggerToR3TriggerInstructionsMap.get(trigger);if(void 0===instructions)throw new Error(`Unable to determine instruction for trigger ${trigger}`);return call(prefetch?instructions[1]:instructions[0],args.map((a=>literal(a))),sourceSpan)}function projection(slot,projectionSlotIndex,attributes,sourceSpan){const args=[literal(slot)];return 0===projectionSlotIndex&&null===attributes||(args.push(literal(projectionSlotIndex)),null!==attributes&&args.push(attributes)),call(Identifiers.projection,args,sourceSpan)}function i18nStart(slot,constIndex,subTemplateIndex,sourceSpan){const args=[literal(slot),literal(constIndex)];return null!==subTemplateIndex&&args.push(literal(subTemplateIndex)),call(Identifiers.i18nStart,args,sourceSpan)}function repeaterCreate(slot,viewFnName,decls,vars,tag,constIndex,trackByFn,trackByUsesComponentInstance,emptyViewFnName,emptyDecls,emptyVars,emptyTag,emptyConstIndex,sourceSpan){const args=[literal(slot),variable(viewFnName),literal(decls),literal(vars),literal(tag),literal(constIndex),trackByFn];return(trackByUsesComponentInstance||null!==emptyViewFnName)&&(args.push(literal(trackByUsesComponentInstance)),null!==emptyViewFnName&&(args.push(variable(emptyViewFnName),literal(emptyDecls),literal(emptyVars)),null===emptyTag&&null===emptyConstIndex||args.push(literal(emptyTag)),null!==emptyConstIndex&&args.push(literal(emptyConstIndex)))),call(Identifiers.repeaterCreate,args,sourceSpan)}function repeater(collection,sourceSpan){return call(Identifiers.repeater,[collection],sourceSpan)}function deferWhen(prefetch,expr,sourceSpan){return call(prefetch?Identifiers.deferPrefetchWhen:Identifiers.deferWhen,[expr],sourceSpan)}function i18n(slot,constIndex,subTemplateIndex,sourceSpan){const args=[literal(slot),literal(constIndex)];return subTemplateIndex&&args.push(literal(subTemplateIndex)),call(Identifiers.i18n,args,sourceSpan)}function i18nAttributes(slot,i18nAttributesConfig){const args=[literal(slot),literal(i18nAttributesConfig)];return call(Identifiers.i18nAttributes,args,null)}function property(name,expression,sanitizer,sourceSpan){const args=[literal(name),expression];return null!==sanitizer&&args.push(sanitizer),call(Identifiers.property,args,sourceSpan)}function twoWayProperty(name,expression,sanitizer,sourceSpan){const args=[literal(name),expression];return null!==sanitizer&&args.push(sanitizer),call(Identifiers.twoWayProperty,args,sourceSpan)}function attribute(name,expression,sanitizer,namespace){const args=[literal(name),expression];return null===sanitizer&&null===namespace||args.push(sanitizer??literal(null)),null!==namespace&&args.push(literal(namespace)),call(Identifiers.attribute,args,null)}function styleProp(name,expression,unit,sourceSpan){const args=[literal(name),expression];return null!==unit&&args.push(literal(unit)),call(Identifiers.styleProp,args,sourceSpan)}function classProp(name,expression,sourceSpan){return call(Identifiers.classProp,[literal(name),expression],sourceSpan)}function styleMap(expression,sourceSpan){return call(Identifiers.styleMap,[expression],sourceSpan)}function classMap(expression,sourceSpan){return call(Identifiers.classMap,[expression],sourceSpan)}const PIPE_BINDINGS=[Identifiers.pipeBind1,Identifiers.pipeBind2,Identifiers.pipeBind3,Identifiers.pipeBind4];function textInterpolate(strings,expressions,sourceSpan){if(strings.length<1||expressions.length!==strings.length-1)throw new Error("AssertionError: expected specific shape of args for strings/expressions in interpolation");const interpolationArgs=[];if(1===expressions.length&&""===strings[0]&&""===strings[1])interpolationArgs.push(expressions[0]);else{let idx;for(idx=0;idx{if(n%2==0)throw new Error("Expected odd number of arguments");return(n-1)/2}},PROPERTY_INTERPOLATE_CONFIG={constant:[Identifiers.propertyInterpolate,Identifiers.propertyInterpolate1,Identifiers.propertyInterpolate2,Identifiers.propertyInterpolate3,Identifiers.propertyInterpolate4,Identifiers.propertyInterpolate5,Identifiers.propertyInterpolate6,Identifiers.propertyInterpolate7,Identifiers.propertyInterpolate8],variable:Identifiers.propertyInterpolateV,mapping:n=>{if(n%2==0)throw new Error("Expected odd number of arguments");return(n-1)/2}},STYLE_PROP_INTERPOLATE_CONFIG={constant:[Identifiers.styleProp,Identifiers.stylePropInterpolate1,Identifiers.stylePropInterpolate2,Identifiers.stylePropInterpolate3,Identifiers.stylePropInterpolate4,Identifiers.stylePropInterpolate5,Identifiers.stylePropInterpolate6,Identifiers.stylePropInterpolate7,Identifiers.stylePropInterpolate8],variable:Identifiers.stylePropInterpolateV,mapping:n=>{if(n%2==0)throw new Error("Expected odd number of arguments");return(n-1)/2}},ATTRIBUTE_INTERPOLATE_CONFIG={constant:[Identifiers.attribute,Identifiers.attributeInterpolate1,Identifiers.attributeInterpolate2,Identifiers.attributeInterpolate3,Identifiers.attributeInterpolate4,Identifiers.attributeInterpolate5,Identifiers.attributeInterpolate6,Identifiers.attributeInterpolate7,Identifiers.attributeInterpolate8],variable:Identifiers.attributeInterpolateV,mapping:n=>{if(n%2==0)throw new Error("Expected odd number of arguments");return(n-1)/2}},STYLE_MAP_INTERPOLATE_CONFIG={constant:[Identifiers.styleMap,Identifiers.styleMapInterpolate1,Identifiers.styleMapInterpolate2,Identifiers.styleMapInterpolate3,Identifiers.styleMapInterpolate4,Identifiers.styleMapInterpolate5,Identifiers.styleMapInterpolate6,Identifiers.styleMapInterpolate7,Identifiers.styleMapInterpolate8],variable:Identifiers.styleMapInterpolateV,mapping:n=>{if(n%2==0)throw new Error("Expected odd number of arguments");return(n-1)/2}},CLASS_MAP_INTERPOLATE_CONFIG={constant:[Identifiers.classMap,Identifiers.classMapInterpolate1,Identifiers.classMapInterpolate2,Identifiers.classMapInterpolate3,Identifiers.classMapInterpolate4,Identifiers.classMapInterpolate5,Identifiers.classMapInterpolate6,Identifiers.classMapInterpolate7,Identifiers.classMapInterpolate8],variable:Identifiers.classMapInterpolateV,mapping:n=>{if(n%2==0)throw new Error("Expected odd number of arguments");return(n-1)/2}},PURE_FUNCTION_CONFIG={constant:[Identifiers.pureFunction0,Identifiers.pureFunction1,Identifiers.pureFunction2,Identifiers.pureFunction3,Identifiers.pureFunction4,Identifiers.pureFunction5,Identifiers.pureFunction6,Identifiers.pureFunction7,Identifiers.pureFunction8],variable:Identifiers.pureFunctionV,mapping:n=>n};function callVariadicInstructionExpr(config,baseArgs,interpolationArgs,extraArgs,sourceSpan){const n=config.mapping(interpolationArgs.length);if(n1?[literal(delta)]:[],sourceSpan)));break;case OpKind.Property:op.expression instanceof Interpolation?OpList.replace(op,propertyInterpolate(op.name,op.expression.strings,op.expression.expressions,op.sanitizer,op.sourceSpan)):OpList.replace(op,property(op.name,op.expression,op.sanitizer,op.sourceSpan));break;case OpKind.TwoWayProperty:OpList.replace(op,twoWayProperty(op.name,op.expression,op.sanitizer,op.sourceSpan));break;case OpKind.StyleProp:op.expression instanceof Interpolation?OpList.replace(op,stylePropInterpolate(op.name,op.expression.strings,op.expression.expressions,op.unit,op.sourceSpan)):OpList.replace(op,styleProp(op.name,op.expression,op.unit,op.sourceSpan));break;case OpKind.ClassProp:OpList.replace(op,classProp(op.name,op.expression,op.sourceSpan));break;case OpKind.StyleMap:op.expression instanceof Interpolation?OpList.replace(op,styleMapInterpolate(op.expression.strings,op.expression.expressions,op.sourceSpan)):OpList.replace(op,styleMap(op.expression,op.sourceSpan));break;case OpKind.ClassMap:op.expression instanceof Interpolation?OpList.replace(op,classMapInterpolate(op.expression.strings,op.expression.expressions,op.sourceSpan)):OpList.replace(op,classMap(op.expression,op.sourceSpan));break;case OpKind.I18nExpression:OpList.replace(op,i18nExp(op.expression,op.sourceSpan));break;case OpKind.I18nApply:OpList.replace(op,i18nApply(op.handle.slot,op.sourceSpan));break;case OpKind.InterpolateText:OpList.replace(op,textInterpolate(op.interpolation.strings,op.interpolation.expressions,op.sourceSpan));break;case OpKind.Attribute:op.expression instanceof Interpolation?OpList.replace(op,attributeInterpolate(op.name,op.expression.strings,op.expression.expressions,op.sanitizer,op.sourceSpan)):OpList.replace(op,attribute(op.name,op.expression,op.sanitizer,op.namespace));break;case OpKind.HostProperty:if(op.expression instanceof Interpolation)throw new Error("not yet handled");op.isAnimationTrigger?OpList.replace(op,syntheticHostProperty(op.name,op.expression,op.sourceSpan)):OpList.replace(op,hostProperty(op.name,op.expression,op.sanitizer,op.sourceSpan));break;case OpKind.Variable:if(null===op.variable.name)throw new Error(`AssertionError: unnamed variable ${op.xref}`);OpList.replace(op,createStatementOp(new DeclareVarStmt(op.variable.name,op.initializer,void 0,StmtModifier.Final)));break;case OpKind.Conditional:if(null===op.processed)throw new Error("Conditional test was not set.");if(null===op.targetSlot.slot)throw new Error("Conditional slot was not set.");OpList.replace(op,conditional(op.targetSlot.slot,op.processed,op.contextValue,op.sourceSpan));break;case OpKind.Repeater:OpList.replace(op,repeater(op.collection,op.sourceSpan));break;case OpKind.DeferWhen:OpList.replace(op,deferWhen(op.prefetch,op.expr,op.sourceSpan));break;case OpKind.Statement:break;default:throw new Error(`AssertionError: Unsupported reification of update op ${OpKind[op.kind]}`)}var delta,sourceSpan}function reifyIrExpression(expr){if(!isIrExpression(expr))return expr;switch(expr.kind){case ExpressionKind.NextContext:return function nextContext(steps){return importExpr(Identifiers.nextContext).callFn(1===steps?[]:[literal(steps)])}(expr.steps);case ExpressionKind.Reference:return function reference(slot){return importExpr(Identifiers.reference).callFn([literal(slot)])}(expr.targetSlot.slot+1+expr.offset);case ExpressionKind.LexicalRead:throw new Error(`AssertionError: unresolved LexicalRead of ${expr.name}`);case ExpressionKind.TwoWayBindingSet:throw new Error("AssertionError: unresolved TwoWayBindingSet");case ExpressionKind.RestoreView:if("number"==typeof expr.view)throw new Error("AssertionError: unresolved RestoreView");return function restoreView(savedView){return importExpr(Identifiers.restoreView).callFn([savedView])}(expr.view);case ExpressionKind.ResetView:return function resetView(returnValue){return importExpr(Identifiers.resetView).callFn([returnValue])}(expr.expr);case ExpressionKind.GetCurrentView:return function getCurrentView(){return importExpr(Identifiers.getCurrentView).callFn([])}();case ExpressionKind.ReadVariable:if(null===expr.name)throw new Error(`Read of unnamed variable ${expr.xref}`);return variable(expr.name);case ExpressionKind.ReadTemporaryExpr:if(null===expr.name)throw new Error(`Read of unnamed temporary ${expr.xref}`);return variable(expr.name);case ExpressionKind.AssignTemporaryExpr:if(null===expr.name)throw new Error(`Assign of unnamed temporary ${expr.xref}`);return variable(expr.name).set(expr.expr);case ExpressionKind.PureFunctionExpr:if(null===expr.fn)throw new Error("AssertionError: expected PureFunctions to have been extracted");return function pureFunction(varOffset,fn,args){return callVariadicInstructionExpr(PURE_FUNCTION_CONFIG,[literal(varOffset),fn],args,[],null)}(expr.varOffset,expr.fn,expr.args);case ExpressionKind.PureFunctionParameterExpr:throw new Error("AssertionError: expected PureFunctionParameterExpr to have been extracted");case ExpressionKind.PipeBinding:return function pipeBind(slot,varOffset,args){if(args.length<1||args.length>PIPE_BINDINGS.length)throw new Error("pipeBind() argument count out of bounds");return importExpr(PIPE_BINDINGS[args.length-1]).callFn([literal(slot),literal(varOffset),...args])}(expr.targetSlot.slot,expr.varOffset,expr.args);case ExpressionKind.PipeBindingVariadic:return function pipeBindV(slot,varOffset,args){return importExpr(Identifiers.pipeBindV).callFn([literal(slot),literal(varOffset),args])}(expr.targetSlot.slot,expr.varOffset,expr.args);case ExpressionKind.SlotLiteralExpr:return literal(expr.slot.slot);default:throw new Error(`AssertionError: Unsupported reification of ir.Expression kind: ${ExpressionKind[expr.kind]}`)}}function reifyListenerHandler(unit,name,handlerOps,consumesDollarEvent){reifyUpdateOperations(0,handlerOps);const handlerStmts=[];for(const op of handlerOps){if(op.kind!==OpKind.Statement)throw new Error(`AssertionError: expected reified statements, but found op ${OpKind[op.kind]}`);handlerStmts.push(op.statement)}const params=[];return consumesDollarEvent&¶ms.push(new FnParam("$event")),fn(params,handlerStmts,void 0,void 0,name)}function processLexicalScope$1(view,ops){const scope=new Map;scope.set(view.xref,variable("ctx"));for(const op of ops)switch(op.kind){case OpKind.Variable:if(op.variable.kind===SemanticVariableKind.Context)scope.set(op.variable.view,new ReadVariableExpr(op.xref));break;case OpKind.Listener:case OpKind.TwoWayListener:processLexicalScope$1(view,op.handlerOps)}view===view.job.root&&scope.set(view.xref,variable("ctx"));for(const op of ops)transformExpressionsInOp(op,(expr=>{if(expr instanceof ContextExpr){if(!scope.has(expr.view))throw new Error(`No context found for reference to view ${expr.view} from view ${view.xref}`);return scope.get(expr.view)}return expr}),VisitorContextFlag.None)}function transformDollarEvent(ops){for(const op of ops)op.kind!==OpKind.Listener&&op.kind!==OpKind.TwoWayListener||transformExpressionsInOp(op,(expr=>expr instanceof LexicalReadExpr&&"$event"===expr.name?(op.kind===OpKind.Listener&&(op.consumesDollarEvent=!0),new ReadVarExpr(expr.name)):expr),VisitorContextFlag.InChildOperation)}function resolvePlaceholdersForView(job,unit,i18nContexts,elements,pendingStructuralDirective){let currentOps=null,pendingStructuralDirectiveCloses=new Map;for(const op of unit.create)switch(op.kind){case OpKind.I18nStart:if(!op.context)throw Error("Could not find i18n context for i18n op");currentOps={i18nBlock:op,i18nContext:i18nContexts.get(op.context)};break;case OpKind.I18nEnd:currentOps=null;break;case OpKind.ElementStart:if(void 0!==op.i18nPlaceholder){if(null===currentOps)throw Error("i18n tag placeholder should only occur inside an i18n block");recordElementStart(op,currentOps.i18nContext,currentOps.i18nBlock,pendingStructuralDirective),pendingStructuralDirective&&op.i18nPlaceholder.closeName&&pendingStructuralDirectiveCloses.set(op.xref,pendingStructuralDirective),pendingStructuralDirective=void 0}break;case OpKind.ElementEnd:const startOp=elements.get(op.xref);if(startOp&&void 0!==startOp.i18nPlaceholder){if(null===currentOps)throw Error("AssertionError: i18n tag placeholder should only occur inside an i18n block");recordElementClose(startOp,currentOps.i18nContext,currentOps.i18nBlock,pendingStructuralDirectiveCloses.get(op.xref)),pendingStructuralDirectiveCloses.delete(op.xref)}break;case OpKind.Projection:if(void 0!==op.i18nPlaceholder){if(null===currentOps)throw Error("i18n tag placeholder should only occur inside an i18n block");recordElementStart(op,currentOps.i18nContext,currentOps.i18nBlock,pendingStructuralDirective),recordElementClose(op,currentOps.i18nContext,currentOps.i18nBlock,pendingStructuralDirective),pendingStructuralDirective=void 0}break;case OpKind.Template:const view=job.views.get(op.xref);if(void 0===op.i18nPlaceholder)resolvePlaceholdersForView(job,view,i18nContexts,elements);else{if(null===currentOps)throw Error("i18n tag placeholder should only occur inside an i18n block");op.templateKind===TemplateKind.Structural?resolvePlaceholdersForView(job,view,i18nContexts,elements,op):(recordTemplateStart(job,view,op.handle.slot,op.i18nPlaceholder,currentOps.i18nContext,currentOps.i18nBlock,pendingStructuralDirective),resolvePlaceholdersForView(job,view,i18nContexts,elements),recordTemplateClose(job,view,op.handle.slot,op.i18nPlaceholder,currentOps.i18nContext,currentOps.i18nBlock,pendingStructuralDirective),pendingStructuralDirective=void 0)}break;case OpKind.RepeaterCreate:if(void 0!==pendingStructuralDirective)throw Error("AssertionError: Unexpected structural directive associated with @for block");const forSlot=op.handle.slot+1,forView=job.views.get(op.xref);if(void 0===op.i18nPlaceholder)resolvePlaceholdersForView(job,forView,i18nContexts,elements);else{if(null===currentOps)throw Error("i18n tag placeholder should only occur inside an i18n block");recordTemplateStart(job,forView,forSlot,op.i18nPlaceholder,currentOps.i18nContext,currentOps.i18nBlock,pendingStructuralDirective),resolvePlaceholdersForView(job,forView,i18nContexts,elements),recordTemplateClose(job,forView,forSlot,op.i18nPlaceholder,currentOps.i18nContext,currentOps.i18nBlock,pendingStructuralDirective),pendingStructuralDirective=void 0}if(null!==op.emptyView){const emptySlot=op.handle.slot+2,emptyView=job.views.get(op.emptyView);if(void 0===op.emptyI18nPlaceholder)resolvePlaceholdersForView(job,emptyView,i18nContexts,elements);else{if(null===currentOps)throw Error("i18n tag placeholder should only occur inside an i18n block");recordTemplateStart(job,emptyView,emptySlot,op.emptyI18nPlaceholder,currentOps.i18nContext,currentOps.i18nBlock,pendingStructuralDirective),resolvePlaceholdersForView(job,emptyView,i18nContexts,elements),recordTemplateClose(job,emptyView,emptySlot,op.emptyI18nPlaceholder,currentOps.i18nContext,currentOps.i18nBlock,pendingStructuralDirective),pendingStructuralDirective=void 0}}}}function recordElementStart(op,i18nContext,i18nBlock,structuralDirective){const{startName,closeName}=op.i18nPlaceholder;let flags=I18nParamValueFlags.ElementTag|I18nParamValueFlags.OpenTag,value=op.handle.slot;void 0!==structuralDirective&&(flags|=I18nParamValueFlags.TemplateTag,value={element:value,template:structuralDirective.handle.slot}),closeName||(flags|=I18nParamValueFlags.CloseTag),addParam(i18nContext.params,startName,value,i18nBlock.subTemplateIndex,flags)}function recordElementClose(op,i18nContext,i18nBlock,structuralDirective){const{closeName}=op.i18nPlaceholder;if(closeName){let flags=I18nParamValueFlags.ElementTag|I18nParamValueFlags.CloseTag,value=op.handle.slot;void 0!==structuralDirective&&(flags|=I18nParamValueFlags.TemplateTag,value={element:value,template:structuralDirective.handle.slot}),addParam(i18nContext.params,closeName,value,i18nBlock.subTemplateIndex,flags)}}function recordTemplateStart(job,view,slot,i18nPlaceholder,i18nContext,i18nBlock,structuralDirective){let{startName,closeName}=i18nPlaceholder,flags=I18nParamValueFlags.TemplateTag|I18nParamValueFlags.OpenTag;closeName||(flags|=I18nParamValueFlags.CloseTag),void 0!==structuralDirective&&addParam(i18nContext.params,startName,structuralDirective.handle.slot,i18nBlock.subTemplateIndex,flags),addParam(i18nContext.params,startName,slot,getSubTemplateIndexForTemplateTag(job,i18nBlock,view),flags)}function recordTemplateClose(job,view,slot,i18nPlaceholder,i18nContext,i18nBlock,structuralDirective){const{closeName}=i18nPlaceholder,flags=I18nParamValueFlags.TemplateTag|I18nParamValueFlags.CloseTag;closeName&&(addParam(i18nContext.params,closeName,slot,getSubTemplateIndexForTemplateTag(job,i18nBlock,view),flags),void 0!==structuralDirective&&addParam(i18nContext.params,closeName,structuralDirective.handle.slot,i18nBlock.subTemplateIndex,flags))}function getSubTemplateIndexForTemplateTag(job,i18nOp,view){for(const childOp of view.create)if(childOp.kind===OpKind.I18nStart)return childOp.subTemplateIndex;return i18nOp.subTemplateIndex}function addParam(params,placeholder,value,subTemplateIndex,flags){const values=params.get(placeholder)??[];values.push({value,subTemplateIndex,flags}),params.set(placeholder,values)}function updatePlaceholder(op,value,i18nContexts,icuPlaceholders){if(null!==op.i18nPlaceholder){const i18nContext=i18nContexts.get(op.context),params=op.resolutionTime===I18nParamResolutionTime.Creation?i18nContext.params:i18nContext.postprocessingParams,values=params.get(op.i18nPlaceholder)||[];values.push(value),params.set(op.i18nPlaceholder,values)}if(null!==op.icuPlaceholder){const icuPlaceholderOp=icuPlaceholders.get(op.icuPlaceholder);icuPlaceholderOp?.expressionPlaceholders.push(value)}}function processLexicalScope(unit,ops,savedView){const scope=new Map;for(const op of ops)switch(op.kind){case OpKind.Variable:switch(op.variable.kind){case SemanticVariableKind.Identifier:case SemanticVariableKind.Alias:if(scope.has(op.variable.identifier))continue;scope.set(op.variable.identifier,op.xref);break;case SemanticVariableKind.SavedView:savedView={view:op.variable.view,variable:op.xref}}break;case OpKind.Listener:case OpKind.TwoWayListener:processLexicalScope(unit,op.handlerOps,savedView)}for(const op of ops)op.kind!=OpKind.Listener&&op.kind!==OpKind.TwoWayListener&&transformExpressionsInOp(op,(expr=>{if(expr instanceof LexicalReadExpr)return scope.has(expr.name)?new ReadVariableExpr(scope.get(expr.name)):new ReadPropExpr(new ContextExpr(unit.job.root.xref),expr.name);if(expr instanceof RestoreViewExpr&&"number"==typeof expr.view){if(null===savedView||savedView.view!==expr.view)throw new Error(`AssertionError: no saved view ${expr.view} from view ${unit.xref}`);return expr.view=new ReadVariableExpr(savedView.variable),expr}return expr}),VisitorContextFlag.None);for(const op of ops)visitExpressionsInOp(op,(expr=>{if(expr instanceof LexicalReadExpr)throw new Error(`AssertionError: no lexical reads should remain, but found read of ${expr.name}`)}))}const sanitizerFns=new Map([[SecurityContext.HTML,Identifiers.sanitizeHtml],[SecurityContext.RESOURCE_URL,Identifiers.sanitizeResourceUrl],[SecurityContext.SCRIPT,Identifiers.sanitizeScript],[SecurityContext.STYLE,Identifiers.sanitizeStyle],[SecurityContext.URL,Identifiers.sanitizeUrl]]),trustedValueFns=new Map([[SecurityContext.HTML,Identifiers.trustConstantHtml],[SecurityContext.RESOURCE_URL,Identifiers.trustConstantResourceUrl]]);function isIframeElement$1(op){return op.kind===OpKind.ElementStart&&"iframe"===op.tag?.toLowerCase()}function getOnlySecurityContext(securityContext){if(Array.isArray(securityContext)){if(securityContext.length>1)throw Error("AssertionError: Ambiguous security context");return securityContext[0]||SecurityContext.NONE}return securityContext}function wrapSetOperation(target,value){return target instanceof ReadVariableExpr?twoWayBindingSet(target,value):twoWayBindingSet(target,value).or(target.set(value))}function isReadExpression(value){return value instanceof ReadPropExpr||value instanceof ReadKeyExpr||value instanceof ReadVariableExpr}function wrapAction(target,value){if(isReadExpression(target))return wrapSetOperation(target,value);if(target instanceof BinaryOperatorExpr&&isReadExpression(target.rhs))return new BinaryOperatorExpr(target.operator,target.lhs,wrapSetOperation(target.rhs,value));if(target instanceof ConditionalExpr&&isReadExpression(target.falseCase))return new ConditionalExpr(target.condition,target.trueCase,wrapSetOperation(target.falseCase,value));if(target instanceof NotExpr){let expr=target.condition;for(;;){if(!(expr instanceof NotExpr)){if(isReadExpression(expr))return wrapSetOperation(expr,value);break}expr=expr.condition}}throw new Error("Unsupported expression in two-way action binding.")}function addSaveRestoreViewOperationToListener(unit,op){op.handlerOps.prepend([createVariableOp(unit.job.allocateXrefId(),{kind:SemanticVariableKind.Context,name:null,view:unit.xref},new RestoreViewExpr(unit.xref),VariableFlags.None)]);for(const handlerOp of op.handlerOps)handlerOp.kind===OpKind.Statement&&handlerOp.statement instanceof ReturnStatement&&(handlerOp.statement.value=new ResetViewExpr(handlerOp.statement.value))}function generateTemporaries(ops){let opCount=0,generatedStatements=[];for(const op of ops){const finalReads=new Map;visitExpressionsInOp(op,((expr,flag)=>{flag&VisitorContextFlag.InChildOperation||expr instanceof ReadTemporaryExpr&&finalReads.set(expr.xref,expr)}));let count=0;const assigned=new Set,released=new Set,defs=new Map;visitExpressionsInOp(op,((expr,flag)=>{flag&VisitorContextFlag.InChildOperation||(expr instanceof AssignTemporaryExpr?(assigned.has(expr.xref)||(assigned.add(expr.xref),defs.set(expr.xref,`tmp_${opCount}_${count++}`)),assignName(defs,expr)):expr instanceof ReadTemporaryExpr&&(finalReads.get(expr.xref)===expr&&(released.add(expr.xref),count--),assignName(defs,expr)))})),generatedStatements.push(...Array.from(new Set(defs.values())).map((name=>createStatementOp(new DeclareVarStmt(name))))),opCount++,op.kind!==OpKind.Listener&&op.kind!==OpKind.TwoWayListener||op.handlerOps.prepend(generateTemporaries(op.handlerOps))}return generatedStatements}function assignName(names,expr){const name=names.get(expr.xref);if(void 0===name)throw new Error(`Found xref with unassigned name: ${expr.xref}`);expr.name=name}function isTrackByFunctionCall(rootView,expr){if(!(expr instanceof InvokeFunctionExpr)||2!==expr.args.length)return!1;if(!(expr.receiver instanceof ReadPropExpr&&expr.receiver.receiver instanceof ContextExpr)||expr.receiver.receiver.view!==rootView)return!1;const[arg0,arg1]=expr.args;return arg0 instanceof ReadVarExpr&&"$index"===arg0.name&&(arg1 instanceof ReadVarExpr&&"$item"===arg1.name)}function varsUsedByOp(op){let slots;switch(op.kind){case OpKind.Property:case OpKind.HostProperty:case OpKind.Attribute:return slots=1,op.expression instanceof Interpolation&&!function isSingletonInterpolation(expr){if(1!==expr.expressions.length||2!==expr.strings.length)return!1;if(""!==expr.strings[0]||""!==expr.strings[1])return!1;return!0}(op.expression)&&(slots+=op.expression.expressions.length),slots;case OpKind.TwoWayProperty:return 1;case OpKind.StyleProp:case OpKind.ClassProp:case OpKind.StyleMap:case OpKind.ClassMap:return slots=2,op.expression instanceof Interpolation&&(slots+=op.expression.expressions.length),slots;case OpKind.InterpolateText:return op.interpolation.expressions.length;case OpKind.I18nExpression:case OpKind.Conditional:case OpKind.DeferWhen:return 1;case OpKind.RepeaterCreate:return op.emptyView?1:0;default:throw new Error(`Unhandled op: ${OpKind[op.kind]}`)}}function varsUsedByIrExpression(expr){switch(expr.kind){case ExpressionKind.PureFunctionExpr:case ExpressionKind.PipeBinding:return 1+expr.args.length;case ExpressionKind.PipeBindingVariadic:return 1+expr.numArgs;default:throw new Error(`AssertionError: unhandled ConsumesVarsTrait expression ${expr.constructor.name}`)}}var Fence;function inlineAlwaysInlineVariables(ops){const vars=new Map;for(const op of ops)op.kind===OpKind.Variable&&op.flags&VariableFlags.AlwaysInline&&(visitExpressionsInOp(op,(expr=>{if(isIrExpression(expr)&&fencesForIrExpression(expr)!==Fence.None)throw new Error("AssertionError: A context-sensitive variable was marked AlwaysInline")})),vars.set(op.xref,op)),transformExpressionsInOp(op,(expr=>{if(expr instanceof ReadVariableExpr&&vars.has(expr.xref)){return vars.get(expr.xref).initializer.clone()}return expr}),VisitorContextFlag.None);for(const op of vars.values())OpList.remove(op)}function optimizeVariablesInOpList(ops,compatibility){const varDecls=new Map,varUsages=new Map,varRemoteUsages=new Set,opMap=new Map;for(const op of ops){if(op.kind===OpKind.Variable){if(varDecls.has(op.xref)||varUsages.has(op.xref))throw new Error(`Should not see two declarations of the same variable: ${op.xref}`);varDecls.set(op.xref,op),varUsages.set(op.xref,0)}opMap.set(op,collectOpInfo(op)),countVariableUsages(op,varUsages,varRemoteUsages)}let contextIsUsed=!1;for(const op of ops.reversed()){const opInfo=opMap.get(op);if(op.kind!==OpKind.Variable||0!==varUsages.get(op.xref))opInfo.fences&Fence.ViewContextRead&&(contextIsUsed=!0);else{if(contextIsUsed&&opInfo.fences&Fence.ViewContextWrite||opInfo.fences&Fence.SideEffectful){const stmtOp=createStatementOp(op.initializer.toStmt());opMap.set(stmtOp,opInfo),OpList.replace(op,stmtOp)}else uncountVariableUsages(op,varUsages),OpList.remove(op);opMap.delete(op),varDecls.delete(op.xref),varUsages.delete(op.xref)}}const toInline=[];for(const[id,count]of varUsages){const isAlwaysInline=!!(varDecls.get(id).flags&VariableFlags.AlwaysInline);1!==count||isAlwaysInline||(varRemoteUsages.has(id)||toInline.push(id))}let candidate;for(;candidate=toInline.pop();){const decl=varDecls.get(candidate),varInfo=opMap.get(decl);if(!!(decl.flags&VariableFlags.AlwaysInline))throw new Error("AssertionError: Found an 'AlwaysInline' variable after the always inlining pass.");for(let targetOp=decl.next;targetOp.kind!==OpKind.ListEnd;targetOp=targetOp.next){const opInfo=opMap.get(targetOp);if(opInfo.variablesUsed.has(candidate)){if(compatibility===CompatibilityMode.TemplateDefinitionBuilder&&!allowConservativeInlining(decl,targetOp))break;if(tryInlineVariableInitializer(candidate,decl.initializer,targetOp,varInfo.fences)){opInfo.variablesUsed.delete(candidate);for(const id of varInfo.variablesUsed)opInfo.variablesUsed.add(id);opInfo.fences|=varInfo.fences,varDecls.delete(candidate),varUsages.delete(candidate),opMap.delete(decl),OpList.remove(decl)}break}if(!safeToInlinePastFences(opInfo.fences,varInfo.fences))break}}}function fencesForIrExpression(expr){switch(expr.kind){case ExpressionKind.NextContext:return Fence.ViewContextRead|Fence.ViewContextWrite;case ExpressionKind.RestoreView:return Fence.ViewContextRead|Fence.ViewContextWrite|Fence.SideEffectful;case ExpressionKind.Reference:return Fence.ViewContextRead;default:return Fence.None}}function collectOpInfo(op){let fences=Fence.None;const variablesUsed=new Set;return visitExpressionsInOp(op,(expr=>{if(isIrExpression(expr))if(expr.kind===ExpressionKind.ReadVariable)variablesUsed.add(expr.xref);else fences|=fencesForIrExpression(expr)})),{fences,variablesUsed}}function countVariableUsages(op,varUsages,varRemoteUsage){visitExpressionsInOp(op,((expr,flags)=>{if(!isIrExpression(expr))return;if(expr.kind!==ExpressionKind.ReadVariable)return;const count=varUsages.get(expr.xref);void 0!==count&&(varUsages.set(expr.xref,count+1),flags&VisitorContextFlag.InChildOperation&&varRemoteUsage.add(expr.xref))}))}function uncountVariableUsages(op,varUsages){visitExpressionsInOp(op,(expr=>{if(!isIrExpression(expr))return;if(expr.kind!==ExpressionKind.ReadVariable)return;const count=varUsages.get(expr.xref);if(void 0!==count){if(0===count)throw new Error(`Inaccurate variable count: ${expr.xref} - found another read but count is already 0`);varUsages.set(expr.xref,count-1)}}))}function safeToInlinePastFences(fences,declFences){if(fences&Fence.ViewContextWrite){if(declFences&Fence.ViewContextRead)return!1}else if(fences&Fence.ViewContextRead&&declFences&Fence.ViewContextWrite)return!1;return!0}function tryInlineVariableInitializer(id,initializer,target,declFences){let inlined=!1,inliningAllowed=!0;return transformExpressionsInOp(target,((expr,flags)=>{if(!isIrExpression(expr))return expr;if(inlined||!inliningAllowed)return expr;if(flags&VisitorContextFlag.InChildOperation&&declFences&Fence.ViewContextRead)return expr;if(expr.kind===ExpressionKind.ReadVariable){if(expr.xref===id)return inlined=!0,initializer}else{const exprFences=fencesForIrExpression(expr);inliningAllowed=inliningAllowed&&safeToInlinePastFences(exprFences,declFences)}return expr}),VisitorContextFlag.None),inlined}function allowConservativeInlining(decl,target){switch(decl.variable.kind){case SemanticVariableKind.Identifier:return decl.initializer instanceof ReadVarExpr&&"ctx"===decl.initializer.name;case SemanticVariableKind.Context:return target.kind===OpKind.Variable;default:return!0}}!function(Fence){Fence[Fence.None=0]="None",Fence[Fence.ViewContextRead=1]="ViewContextRead",Fence[Fence.ViewContextWrite=2]="ViewContextWrite",Fence[Fence.SideEffectful=4]="SideEffectful"}(Fence||(Fence={}));const phases=[{kind:CompilationJobKind.Tmpl,fn:function removeContentSelectors(job){for(const unit of job.units){const elements=createOpXrefMap(unit);for(const op of unit.ops())if(op.kind===OpKind.Binding){const target=lookupInXrefMap(elements,op.target);"select"===op.name.toLowerCase()&&target.kind===OpKind.Projection&&OpList.remove(op)}}}},{kind:CompilationJobKind.Host,fn:function parseHostStyleProperties(job){for(const op of job.root.update)if(op.kind===OpKind.Binding&&op.bindingKind===BindingKind.Property)if(op.name.endsWith("!important")&&(op.name=op.name.substring(0,op.name.length-10)),op.name.startsWith("style.")){op.bindingKind=BindingKind.StyleProperty,op.name=op.name.substring(6),op.name.startsWith("--")||(op.name=op.name.replace(/[a-z][A-Z]/g,(v=>v.charAt(0)+"-"+v.charAt(1))).toLowerCase());const{property,suffix}=parseProperty$1(op.name);op.name=property,op.unit=suffix}else op.name.startsWith("style!")?(op.bindingKind=BindingKind.StyleProperty,op.name="style"):(op.name.startsWith("class.")||op.name.startsWith("class!"))&&(op.bindingKind=BindingKind.ClassName,op.name=parseProperty$1(op.name.substring(6)).property)}},{kind:CompilationJobKind.Tmpl,fn:function emitNamespaceChanges(job){for(const unit of job.units){let activeNamespace=Namespace.HTML;for(const op of unit.create)op.kind===OpKind.ElementStart&&op.namespace!==activeNamespace&&(OpList.insertBefore((namespace=op.namespace,{kind:OpKind.Namespace,active:namespace,...NEW_OP}),op),activeNamespace=op.namespace)}var namespace}},{kind:CompilationJobKind.Tmpl,fn:function propagateI18nBlocks(job){propagateI18nBlocksToTemplates(job.root,0)}},{kind:CompilationJobKind.Tmpl,fn:function wrapI18nIcus(job){for(const unit of job.units){let currentI18nOp=null,addedI18nId=null;for(const op of unit.create)switch(op.kind){case OpKind.I18nStart:currentI18nOp=op;break;case OpKind.I18nEnd:currentI18nOp=null;break;case OpKind.IcuStart:null===currentI18nOp&&(addedI18nId=job.allocateXrefId(),OpList.insertBefore(createI18nStartOp(addedI18nId,op.message,void 0,null),op));break;case OpKind.IcuEnd:null!==addedI18nId&&(OpList.insertAfter(createI18nEndOp(addedI18nId,null),op),addedI18nId=null)}}}},{kind:CompilationJobKind.Both,fn:function deduplicateTextBindings(job){const seen=new Map;for(const unit of job.units)for(const op of unit.update.reversed())if(op.kind===OpKind.Binding&&op.isTextAttribute){const seenForElement=seen.get(op.target)||new Set;seenForElement.has(op.name)&&job.compatibility===CompatibilityMode.TemplateDefinitionBuilder&&("style"!==op.name&&"class"!==op.name||OpList.remove(op)),seenForElement.add(op.name),seen.set(op.target,seenForElement)}}},{kind:CompilationJobKind.Both,fn:function specializeStyleBindings(job){for(const unit of job.units)for(const op of unit.update)if(op.kind===OpKind.Binding)switch(op.bindingKind){case BindingKind.ClassName:if(op.expression instanceof Interpolation)throw new Error("Unexpected interpolation in ClassName binding");OpList.replace(op,(xref=op.target,name=op.name,expression=op.expression,sourceSpan=op.sourceSpan,{kind:OpKind.ClassProp,target:xref,name,expression,sourceSpan,...TRAIT_DEPENDS_ON_SLOT_CONTEXT,...TRAIT_CONSUMES_VARS,...NEW_OP}));break;case BindingKind.StyleProperty:OpList.replace(op,createStylePropOp(op.target,op.name,op.expression,op.unit,op.sourceSpan));break;case BindingKind.Property:case BindingKind.Template:"style"===op.name?OpList.replace(op,createStyleMapOp(op.target,op.expression,op.sourceSpan)):"class"===op.name&&OpList.replace(op,createClassMapOp(op.target,op.expression,op.sourceSpan))}var xref,name,expression,sourceSpan}},{kind:CompilationJobKind.Both,fn:function specializeBindings(job){const elements=new Map;for(const unit of job.units)for(const op of unit.create)isElementOrContainerOp(op)&&elements.set(op.xref,op);for(const unit of job.units)for(const op of unit.ops())if(op.kind===OpKind.Binding)switch(op.bindingKind){case BindingKind.Attribute:if("ngNonBindable"===op.name){OpList.remove(op);lookupElement$1(elements,op.target).nonBindable=!0}else{const[namespace,name]=splitNsName(op.name);OpList.replace(op,createAttributeOp(op.target,namespace,name,op.expression,op.securityContext,op.isTextAttribute,op.isStructuralTemplateAttribute,op.templateKind,op.i18nMessage,op.sourceSpan))}break;case BindingKind.Property:case BindingKind.Animation:job.kind===CompilationJobKind.Host?OpList.replace(op,(name=op.name,expression=op.expression,isAnimationTrigger=op.bindingKind===BindingKind.Animation,i18nContext=op.i18nContext,securityContext=op.securityContext,sourceSpan=op.sourceSpan,{kind:OpKind.HostProperty,name,expression,isAnimationTrigger,i18nContext,securityContext,sanitizer:null,sourceSpan,...TRAIT_CONSUMES_VARS,...NEW_OP})):OpList.replace(op,createPropertyOp(op.target,op.name,op.expression,op.bindingKind===BindingKind.Animation,op.securityContext,op.isStructuralTemplateAttribute,op.templateKind,op.i18nContext,op.i18nMessage,op.sourceSpan));break;case BindingKind.TwoWayProperty:if(!(op.expression instanceof Expression))throw new Error(`Expected value of two-way property binding "${op.name}" to be an expression`);OpList.replace(op,createTwoWayPropertyOp(op.target,op.name,op.expression,op.securityContext,op.isStructuralTemplateAttribute,op.templateKind,op.i18nContext,op.i18nMessage,op.sourceSpan));break;case BindingKind.I18n:case BindingKind.ClassName:case BindingKind.StyleProperty:throw new Error(`Unhandled binding of kind ${BindingKind[op.bindingKind]}`)}var name,expression,isAnimationTrigger,i18nContext,securityContext,sourceSpan}},{kind:CompilationJobKind.Both,fn:function extractAttributes(job){for(const unit of job.units){const elements=createOpXrefMap(unit);for(const op of unit.ops())switch(op.kind){case OpKind.Attribute:extractAttributeOp(unit,op,elements);break;case OpKind.Property:if(!op.isAnimationTrigger){let bindingKind;bindingKind=null!==op.i18nMessage&&null===op.templateKind?BindingKind.I18n:op.isStructuralTemplateAttribute?BindingKind.Template:BindingKind.Property,OpList.insertBefore(createExtractedAttributeOp(op.target,bindingKind,null,op.name,null,null,null,op.securityContext),lookupElement$2(elements,op.target))}break;case OpKind.TwoWayProperty:OpList.insertBefore(createExtractedAttributeOp(op.target,BindingKind.TwoWayProperty,null,op.name,null,null,null,op.securityContext),lookupElement$2(elements,op.target));break;case OpKind.StyleProp:case OpKind.ClassProp:unit.job.compatibility===CompatibilityMode.TemplateDefinitionBuilder&&op.expression instanceof EmptyExpr&&OpList.insertBefore(createExtractedAttributeOp(op.target,BindingKind.Property,null,op.name,null,null,null,SecurityContext.STYLE),lookupElement$2(elements,op.target));break;case OpKind.Listener:if(!op.isAnimationListener){const extractedAttributeOp=createExtractedAttributeOp(op.target,BindingKind.Property,null,op.name,null,null,null,SecurityContext.NONE);if(job.kind===CompilationJobKind.Host){if(job.compatibility)break;unit.create.push(extractedAttributeOp)}else OpList.insertBefore(extractedAttributeOp,lookupElement$2(elements,op.target))}break;case OpKind.TwoWayListener:if(job.kind!==CompilationJobKind.Host){const extractedAttributeOp=createExtractedAttributeOp(op.target,BindingKind.Property,null,op.name,null,null,null,SecurityContext.NONE);OpList.insertBefore(extractedAttributeOp,lookupElement$2(elements,op.target))}}}}},{kind:CompilationJobKind.Tmpl,fn:function createI18nContexts(job){const attrContextByMessage=new Map;for(const unit of job.units)for(const op of unit.ops())switch(op.kind){case OpKind.Binding:case OpKind.Property:case OpKind.Attribute:case OpKind.ExtractedAttribute:if(null===op.i18nMessage)continue;if(!attrContextByMessage.has(op.i18nMessage)){const i18nContext=createI18nContextOp(I18nContextKind.Attr,job.allocateXrefId(),null,op.i18nMessage,null);unit.create.push(i18nContext),attrContextByMessage.set(op.i18nMessage,i18nContext.xref)}op.i18nContext=attrContextByMessage.get(op.i18nMessage)}const blockContextByI18nBlock=new Map;for(const unit of job.units)for(const op of unit.create)if(op.kind===OpKind.I18nStart)if(op.xref===op.root){const contextOp=createI18nContextOp(I18nContextKind.RootI18n,job.allocateXrefId(),op.xref,op.message,null);unit.create.push(contextOp),op.context=contextOp.xref,blockContextByI18nBlock.set(op.xref,contextOp)}for(const unit of job.units)for(const op of unit.create)if(op.kind===OpKind.I18nStart&&op.xref!==op.root){const rootContext=blockContextByI18nBlock.get(op.root);if(void 0===rootContext)throw Error("AssertionError: Root i18n block i18n context should have been created.");op.context=rootContext.xref,blockContextByI18nBlock.set(op.xref,rootContext)}let currentI18nOp=null;for(const unit of job.units)for(const op of unit.create)switch(op.kind){case OpKind.I18nStart:currentI18nOp=op;break;case OpKind.I18nEnd:currentI18nOp=null;break;case OpKind.IcuStart:if(null===currentI18nOp)throw Error("AssertionError: Unexpected ICU outside of an i18n block.");if(op.message.id!==currentI18nOp.message.id){const contextOp=createI18nContextOp(I18nContextKind.Icu,job.allocateXrefId(),currentI18nOp.root,op.message,null);unit.create.push(contextOp),op.context=contextOp.xref}else op.context=currentI18nOp.context,blockContextByI18nBlock.get(currentI18nOp.xref).contextKind=I18nContextKind.Icu}}},{kind:CompilationJobKind.Both,fn:function parseExtractedStyles(job){const elements=new Map;for(const unit of job.units)for(const op of unit.create)isElementOrContainerOp(op)&&elements.set(op.xref,op);for(const unit of job.units)for(const op of unit.create)if(op.kind===OpKind.ExtractedAttribute&&op.bindingKind===BindingKind.Attribute&&isStringLiteral(op.expression)){const target=elements.get(op.target);if(void 0!==target&&target.kind===OpKind.Template&&target.templateKind===TemplateKind.Structural)continue;if("style"===op.name){const parsedStyles=parse(op.expression.value);for(let i=0;i""===s))&&(op.expression=op.expression.expressions[0])}}},{kind:CompilationJobKind.Both,fn:function orderOps(job){for(const unit of job.units){orderWithin(unit.create,CREATE_ORDERING);const ordering=unit.job.kind===CompilationJobKind.Host?UPDATE_HOST_ORDERING:UPDATE_ORDERING;orderWithin(unit.update,ordering)}}},{kind:CompilationJobKind.Tmpl,fn:function generateConditionalExpressions(job){for(const unit of job.units)for(const op of unit.ops()){if(op.kind!==OpKind.Conditional)continue;let test;const defaultCase=op.conditions.findIndex((cond=>null===cond.expr));if(defaultCase>=0){const slot=op.conditions.splice(defaultCase,1)[0].targetSlot;test=new SlotLiteralExpr(slot)}else test=literal(-1);let tmp=null==op.test?null:new AssignTemporaryExpr(op.test,job.allocateXrefId());for(let i=op.conditions.length-1;i>=0;i--){let conditionalCase=op.conditions[i];if(null!==conditionalCase.expr){if(null!==tmp){const useTmp=0===i?tmp:new ReadTemporaryExpr(tmp.xref);conditionalCase.expr=new BinaryOperatorExpr(BinaryOperator.Identical,useTmp,conditionalCase.expr)}else if(null!==conditionalCase.alias){const caseExpressionTemporaryXref=job.allocateXrefId();conditionalCase.expr=new AssignTemporaryExpr(conditionalCase.expr,caseExpressionTemporaryXref),op.contextValue=new ReadTemporaryExpr(caseExpressionTemporaryXref)}test=new ConditionalExpr(conditionalCase.expr,new SlotLiteralExpr(conditionalCase.targetSlot),test)}}op.processed=test,op.conditions=[]}}},{kind:CompilationJobKind.Tmpl,fn:function createPipes(job){for(const unit of job.units)processPipeBindingsInView(unit)}},{kind:CompilationJobKind.Tmpl,fn:function configureDeferInstructions(job){for(const unit of job.units)for(const op of unit.create)op.kind===OpKind.Defer&&(null!==op.placeholderMinimumTime&&(op.placeholderConfig=new ConstCollectedExpr(literalOrArrayLiteral([op.placeholderMinimumTime]))),null===op.loadingMinimumTime&&null===op.loadingAfterTime||(op.loadingConfig=new ConstCollectedExpr(literalOrArrayLiteral([op.loadingMinimumTime,op.loadingAfterTime]))))}},{kind:CompilationJobKind.Tmpl,fn:function convertI18nText(job){for(const unit of job.units){let currentI18n=null,currentIcu=null;const textNodeI18nBlocks=new Map,textNodeIcus=new Map,icuPlaceholderByText=new Map;for(const op of unit.create)switch(op.kind){case OpKind.I18nStart:if(null===op.context)throw Error("I18n op should have its context set.");currentI18n=op;break;case OpKind.I18nEnd:currentI18n=null;break;case OpKind.IcuStart:if(null===op.context)throw Error("Icu op should have its context set.");currentIcu=op;break;case OpKind.IcuEnd:currentIcu=null;break;case OpKind.Text:if(null!==currentI18n)if(textNodeI18nBlocks.set(op.xref,currentI18n),textNodeIcus.set(op.xref,currentIcu),null!==op.icuPlaceholder){const icuPlaceholderOp=(xref=job.allocateXrefId(),name=op.icuPlaceholder,strings=[op.initialValue],{kind:OpKind.IcuPlaceholder,xref,name,strings,expressionPlaceholders:[],...NEW_OP});OpList.replace(op,icuPlaceholderOp),icuPlaceholderByText.set(op.xref,icuPlaceholderOp)}else OpList.remove(op)}for(const op of unit.update)if(op.kind===OpKind.InterpolateText){if(!textNodeI18nBlocks.has(op.target))continue;const i18nOp=textNodeI18nBlocks.get(op.target),icuOp=textNodeIcus.get(op.target),icuPlaceholder=icuPlaceholderByText.get(op.target),contextId=icuOp?icuOp.context:i18nOp.context,resolutionTime=icuOp?I18nParamResolutionTime.Postproccessing:I18nParamResolutionTime.Creation,ops=[];for(let i=0;iexpr instanceof PipeBindingExpr?expr.args.length<=4?expr:new PipeBindingVariadicExpr(expr.target,expr.targetSlot,expr.name,literalArr(expr.args),expr.args.length):expr),VisitorContextFlag.None)}},{kind:CompilationJobKind.Both,fn:function generatePureLiteralStructures(job){for(const unit of job.units)for(const op of unit.update)transformExpressionsInOp(op,((expr,flags)=>flags&VisitorContextFlag.InChildOperation?expr:expr instanceof LiteralArrayExpr?transformLiteralArray(expr):expr instanceof LiteralMapExpr?transformLiteralMap(expr):expr),VisitorContextFlag.None)}},{kind:CompilationJobKind.Tmpl,fn:function generateProjectionDefs(job){const share=job.compatibility===CompatibilityMode.TemplateDefinitionBuilder,selectors=[];let projectionSlotIndex=0;for(const unit of job.units)for(const op of unit.create)op.kind===OpKind.Projection&&(selectors.push(op.selector),op.projectionSlotIndex=projectionSlotIndex++);if(selectors.length>0){let defExpr=null;if(selectors.length>1||"*"!==selectors[0]){const def=selectors.map((s=>"*"===s?s:parseSelectorToR3Selector(s)));defExpr=job.pool.getConstLiteral(literalOrArrayLiteral(def),share)}job.contentSelectors=job.pool.getConstLiteral(literalOrArrayLiteral(selectors),share),job.root.create.prepend([(def=defExpr,{kind:OpKind.ProjectionDef,def,...NEW_OP})])}var def}},{kind:CompilationJobKind.Tmpl,fn:function generateVariables(job){recursivelyProcessView(job.root,null)}},{kind:CompilationJobKind.Tmpl,fn:function saveAndRestoreView(job){for(const unit of job.units){unit.create.prepend([createVariableOp(unit.job.allocateXrefId(),{kind:SemanticVariableKind.SavedView,name:null,view:unit.xref},new GetCurrentViewExpr,VariableFlags.None)]);for(const op of unit.create){if(op.kind!==OpKind.Listener&&op.kind!==OpKind.TwoWayListener)continue;let needsRestoreView=unit!==job.root;if(!needsRestoreView)for(const handlerOp of op.handlerOps)visitExpressionsInOp(handlerOp,(expr=>{expr instanceof ReferenceExpr&&(needsRestoreView=!0)}));needsRestoreView&&addSaveRestoreViewOperationToListener(unit,op)}}}},{kind:CompilationJobKind.Both,fn:function deleteAnyCasts(job){for(const unit of job.units)for(const op of unit.ops())transformExpressionsInOp(op,removeAnys,VisitorContextFlag.None)}},{kind:CompilationJobKind.Both,fn:function resolveDollarEvent(job){for(const unit of job.units)transformDollarEvent(unit.create),transformDollarEvent(unit.update)}},{kind:CompilationJobKind.Tmpl,fn:function generateTrackVariables(job){for(const unit of job.units)for(const op of unit.create)op.kind===OpKind.RepeaterCreate&&(op.track=transformExpressionsInExpression(op.track,(expr=>{if(expr instanceof LexicalReadExpr){if(expr.name===op.varNames.$index)return variable("$index");if(expr.name===op.varNames.$implicit)return variable("$item")}return expr}),VisitorContextFlag.None))}},{kind:CompilationJobKind.Both,fn:function resolveNames(job){for(const unit of job.units)processLexicalScope(unit,unit.create,null),processLexicalScope(unit,unit.update,null)}},{kind:CompilationJobKind.Tmpl,fn:function resolveDeferTargetNames(job){const scopes=new Map;function getScopeForView(view){if(scopes.has(view.xref))return scopes.get(view.xref);const scope=new Scope$1;for(const op of view.create)if(isElementOrContainerOp(op)&&null!==op.localRefs){if(!Array.isArray(op.localRefs))throw new Error("LocalRefs were already processed, but were needed to resolve defer targets.");for(const ref of op.localRefs)""===ref.target&&scope.targets.set(ref.name,{xref:op.xref,slot:op.handle})}return scopes.set(view.xref,scope),scope}function resolveTrigger(deferOwnerView,op,placeholderView){switch(op.trigger.kind){case DeferTriggerKind.Idle:case DeferTriggerKind.Immediate:case DeferTriggerKind.Timer:return;case DeferTriggerKind.Hover:case DeferTriggerKind.Interaction:case DeferTriggerKind.Viewport:if(null===op.trigger.targetName){if(null===placeholderView)throw new Error("defer on trigger with no target name must have a placeholder block");const placeholder=job.views.get(placeholderView);if(null==placeholder)throw new Error("AssertionError: could not find placeholder view for defer on trigger");for(const placeholderOp of placeholder.create)if(hasConsumesSlotTrait(placeholderOp)&&(isElementOrContainerOp(placeholderOp)||placeholderOp.kind===OpKind.Projection))return op.trigger.targetXref=placeholderOp.xref,op.trigger.targetView=placeholderView,op.trigger.targetSlotViewSteps=-1,void(op.trigger.targetSlot=placeholderOp.handle);return}let view=null!==placeholderView?job.views.get(placeholderView):deferOwnerView,step=null!==placeholderView?-1:0;for(;null!==view;){const scope=getScopeForView(view);if(scope.targets.has(op.trigger.targetName)){const{xref,slot}=scope.targets.get(op.trigger.targetName);return op.trigger.targetXref=xref,op.trigger.targetView=view.xref,op.trigger.targetSlotViewSteps=step,void(op.trigger.targetSlot=slot)}view=null!==view.parent?job.views.get(view.parent):null,step++}break;default:throw new Error(`Trigger kind ${op.trigger.kind} not handled`)}}for(const unit of job.units){const defers=new Map;for(const op of unit.create)switch(op.kind){case OpKind.Defer:defers.set(op.xref,op);break;case OpKind.DeferOn:resolveTrigger(unit,op,defers.get(op.defer).placeholderView)}}}},{kind:CompilationJobKind.Tmpl,fn:function transformTwoWayBindingSet(job){for(const unit of job.units)for(const op of unit.create)op.kind===OpKind.TwoWayListener&&transformExpressionsInOp(op,(expr=>expr instanceof TwoWayBindingSetExpr?wrapAction(expr.target,expr.value):expr),VisitorContextFlag.InChildOperation)}},{kind:CompilationJobKind.Tmpl,fn:function optimizeTrackFns(job){for(const unit of job.units)for(const op of unit.create)op.kind===OpKind.RepeaterCreate&&(op.track instanceof ReadVarExpr&&"$index"===op.track.name?op.trackByFn=importExpr(Identifiers.repeaterTrackByIndex):op.track instanceof ReadVarExpr&&"$item"===op.track.name?op.trackByFn=importExpr(Identifiers.repeaterTrackByIdentity):isTrackByFunctionCall(job.root.xref,op.track)?(op.usesComponentInstance=!0,op.track.receiver.receiver.view===unit.xref?op.trackByFn=op.track.receiver:(op.trackByFn=importExpr(Identifiers.componentInstance).callFn([]).prop(op.track.receiver.name),op.track=op.trackByFn)):op.track=transformExpressionsInExpression(op.track,(expr=>expr instanceof ContextExpr?(op.usesComponentInstance=!0,new TrackContextExpr(expr.view)):expr),VisitorContextFlag.None))}},{kind:CompilationJobKind.Both,fn:function resolveContexts(job){for(const unit of job.units)processLexicalScope$1(unit,unit.create),processLexicalScope$1(unit,unit.update)}},{kind:CompilationJobKind.Both,fn:function resolveSanitizers(job){for(const unit of job.units){const elements=createOpXrefMap(unit);if(job.kind!==CompilationJobKind.Host)for(const op of unit.create)if(op.kind===OpKind.ExtractedAttribute){const trustedValueFn=trustedValueFns.get(getOnlySecurityContext(op.securityContext))??null;op.trustedValueFn=null!==trustedValueFn?importExpr(trustedValueFn):null}for(const op of unit.update)switch(op.kind){case OpKind.Property:case OpKind.Attribute:case OpKind.HostProperty:let sanitizerFn=null;if(sanitizerFn=Array.isArray(op.securityContext)&&2===op.securityContext.length&&op.securityContext.indexOf(SecurityContext.URL)>-1&&op.securityContext.indexOf(SecurityContext.RESOURCE_URL)>-1?Identifiers.sanitizeUrlOrResourceUrl:sanitizerFns.get(getOnlySecurityContext(op.securityContext))??null,op.sanitizer=null!==sanitizerFn?importExpr(sanitizerFn):null,null===op.sanitizer){let isIframe=!1;if(job.kind===CompilationJobKind.Host||op.kind===OpKind.HostProperty)isIframe=!0;else{const ownerOp=elements.get(op.target);if(void 0===ownerOp||!isElementOrContainerOp(ownerOp))throw Error("Property should have an element-like owner");isIframe=isIframeElement$1(ownerOp)}isIframe&&isIframeSecuritySensitiveAttr(op.name)&&(op.sanitizer=importExpr(Identifiers.validateIframeAttribute))}}}}},{kind:CompilationJobKind.Tmpl,fn:function liftLocalRefs(job){for(const unit of job.units)for(const op of unit.create)switch(op.kind){case OpKind.ElementStart:case OpKind.Template:if(!Array.isArray(op.localRefs))throw new Error("AssertionError: expected localRefs to be an array still");if(op.numSlotsUsed+=op.localRefs.length,op.localRefs.length>0){const localRefs=serializeLocalRefs(op.localRefs);op.localRefs=job.addConst(localRefs)}else op.localRefs=null}}},{kind:CompilationJobKind.Both,fn:function generateNullishCoalesceExpressions(job){for(const unit of job.units)for(const op of unit.ops())transformExpressionsInOp(op,(expr=>{if(!(expr instanceof BinaryOperatorExpr)||expr.operator!==BinaryOperator.NullishCoalesce)return expr;const assignment=new AssignTemporaryExpr(expr.lhs.clone(),job.allocateXrefId()),read=new ReadTemporaryExpr(assignment.xref);return new ConditionalExpr(new BinaryOperatorExpr(BinaryOperator.And,new BinaryOperatorExpr(BinaryOperator.NotIdentical,assignment,NULL_EXPR),new BinaryOperatorExpr(BinaryOperator.NotIdentical,read,new LiteralExpr(void 0))),read.clone(),expr.rhs)}),VisitorContextFlag.None)}},{kind:CompilationJobKind.Both,fn:function expandSafeReads(job){for(const unit of job.units)for(const op of unit.ops())transformExpressionsInOp(op,(e=>safeTransform(e,{job})),VisitorContextFlag.None),transformExpressionsInOp(op,ternaryTransform,VisitorContextFlag.None)}},{kind:CompilationJobKind.Both,fn:function generateTemporaryVariables(job){for(const unit of job.units)unit.create.prepend(generateTemporaries(unit.create)),unit.update.prepend(generateTemporaries(unit.update))}},{kind:CompilationJobKind.Tmpl,fn:function allocateSlots(job){const slotMap=new Map;for(const unit of job.units){let slotCount=0;for(const op of unit.create)hasConsumesSlotTrait(op)&&(op.handle.slot=slotCount,slotMap.set(op.xref,op.handle.slot),slotCount+=op.numSlotsUsed);unit.decls=slotCount}for(const unit of job.units)for(const op of unit.ops())if(op.kind===OpKind.Template||op.kind===OpKind.RepeaterCreate){const childView=job.views.get(op.xref);op.decls=childView.decls}}},{kind:CompilationJobKind.Tmpl,fn:function resolveI18nElementPlaceholders(job){const i18nContexts=new Map,elements=new Map;for(const unit of job.units)for(const op of unit.create)switch(op.kind){case OpKind.I18nContext:i18nContexts.set(op.xref,op);break;case OpKind.ElementStart:elements.set(op.xref,op)}resolvePlaceholdersForView(job,job.root,i18nContexts,elements)}},{kind:CompilationJobKind.Tmpl,fn:function resolveI18nExpressionPlaceholders(job){const subTemplateIndices=new Map,i18nContexts=new Map,icuPlaceholders=new Map;for(const unit of job.units)for(const op of unit.create)switch(op.kind){case OpKind.I18nStart:subTemplateIndices.set(op.xref,op.subTemplateIndex);break;case OpKind.I18nContext:i18nContexts.set(op.xref,op);break;case OpKind.IcuPlaceholder:icuPlaceholders.set(op.xref,op)}const expressionIndices=new Map,referenceIndex=op=>op.usage===I18nExpressionFor.I18nText?op.i18nOwner:op.context;for(const unit of job.units)for(const op of unit.update)if(op.kind===OpKind.I18nExpression){const index=expressionIndices.get(referenceIndex(op))||0;updatePlaceholder(op,{value:index,subTemplateIndex:subTemplateIndices.get(op.i18nOwner)??null,flags:I18nParamValueFlags.ExpressionIndex},i18nContexts,icuPlaceholders),expressionIndices.set(referenceIndex(op),index+1)}}},{kind:CompilationJobKind.Tmpl,fn:function extractI18nMessages(job){const i18nMessagesByContext=new Map,i18nBlocks=new Map,i18nContexts=new Map;for(const unit of job.units)for(const op of unit.create)switch(op.kind){case OpKind.I18nContext:const i18nMessageOp=createI18nMessage(job,op);unit.create.push(i18nMessageOp),i18nMessagesByContext.set(op.xref,i18nMessageOp),i18nContexts.set(op.xref,op);break;case OpKind.I18nStart:i18nBlocks.set(op.xref,op)}let currentIcu=null;for(const unit of job.units)for(const op of unit.create)switch(op.kind){case OpKind.IcuStart:currentIcu=op,OpList.remove(op);const icuContext=i18nContexts.get(op.context);if(icuContext.contextKind!==I18nContextKind.Icu)continue;const i18nBlock=i18nBlocks.get(icuContext.i18nBlock);if(i18nBlock.context===icuContext.xref)continue;const rootI18nBlock=i18nBlocks.get(i18nBlock.root),rootMessage=i18nMessagesByContext.get(rootI18nBlock.context);if(void 0===rootMessage)throw Error("AssertionError: ICU sub-message should belong to a root message.");const subMessage=i18nMessagesByContext.get(icuContext.xref);subMessage.messagePlaceholder=op.messagePlaceholder,rootMessage.subMessages.push(subMessage.xref);break;case OpKind.IcuEnd:currentIcu=null,OpList.remove(op);break;case OpKind.IcuPlaceholder:if(null===currentIcu||null==currentIcu.context)throw Error("AssertionError: Unexpected ICU placeholder outside of i18n context");i18nMessagesByContext.get(currentIcu.context).postprocessingParams.set(op.name,literal(formatIcuPlaceholder(op))),OpList.remove(op)}}},{kind:CompilationJobKind.Tmpl,fn:function generateTrackFns(job){for(const unit of job.units)for(const op of unit.create){if(op.kind!==OpKind.RepeaterCreate)continue;if(null!==op.trackByFn)continue;let fn,usesComponentContext=!1;op.track=transformExpressionsInExpression(op.track,(expr=>{if(expr instanceof PipeBindingExpr||expr instanceof PipeBindingVariadicExpr)throw new Error("Illegal State: Pipes are not allowed in this context");return expr instanceof TrackContextExpr?(usesComponentContext=!0,variable("this")):expr}),VisitorContextFlag.None);const fnParams=[new FnParam("$index"),new FnParam("$item")];fn=usesComponentContext?new FunctionExpr(fnParams,[new ReturnStatement(op.track)]):arrowFn(fnParams,op.track),op.trackByFn=job.pool.getSharedFunctionReference(fn,"_forTrack")}}},{kind:CompilationJobKind.Tmpl,fn:function collectI18nConsts(job){const fileBasedI18nSuffix=job.relativeContextFilePath.replace(/[^A-Za-z0-9]/g,"_").toUpperCase()+"_",extractedAttributesByI18nContext=new Map,i18nAttributesByElement=new Map,i18nExpressionsByElement=new Map,messages=new Map;for(const unit of job.units)for(const op of unit.ops())if(op.kind===OpKind.ExtractedAttribute&&null!==op.i18nContext){const attributes=extractedAttributesByI18nContext.get(op.i18nContext)??[];attributes.push(op),extractedAttributesByI18nContext.set(op.i18nContext,attributes)}else if(op.kind===OpKind.I18nAttributes)i18nAttributesByElement.set(op.target,op);else if(op.kind===OpKind.I18nExpression&&op.usage===I18nExpressionFor.I18nAttribute){const expressions=i18nExpressionsByElement.get(op.target)??[];expressions.push(op),i18nExpressionsByElement.set(op.target,expressions)}else op.kind===OpKind.I18nMessage&&messages.set(op.xref,op);const i18nValuesByContext=new Map,messageConstIndices=new Map;for(const unit of job.units)for(const op of unit.create)if(op.kind===OpKind.I18nMessage){if(null===op.messagePlaceholder){const{mainVar,statements}=collectMessage(job,fileBasedI18nSuffix,messages,op);if(null!==op.i18nBlock){const i18nConst=job.addConst(mainVar,statements);messageConstIndices.set(op.i18nBlock,i18nConst)}else{job.constsInitializers.push(...statements),i18nValuesByContext.set(op.i18nContext,mainVar);const attributesForMessage=extractedAttributesByI18nContext.get(op.i18nContext);if(void 0!==attributesForMessage)for(const attr of attributesForMessage)attr.expression=mainVar.clone()}}OpList.remove(op)}for(const unit of job.units)for(const elem of unit.create)if(isElementOrContainerOp(elem)){const i18nAttributes=i18nAttributesByElement.get(elem.xref);if(void 0===i18nAttributes)continue;let i18nExpressions=i18nExpressionsByElement.get(elem.xref);if(void 0===i18nExpressions)throw new Error("AssertionError: Could not find any i18n expressions associated with an I18nAttributes instruction");const seenPropertyNames=new Set;i18nExpressions=i18nExpressions.filter((i18nExpr=>{const seen=seenPropertyNames.has(i18nExpr.name);return seenPropertyNames.add(i18nExpr.name),!seen}));const i18nAttributeConfig=i18nExpressions.flatMap((i18nExpr=>{const i18nExprValue=i18nValuesByContext.get(i18nExpr.context);if(void 0===i18nExprValue)throw new Error("AssertionError: Could not find i18n expression's value");return[literal(i18nExpr.name),i18nExprValue]}));i18nAttributes.i18nAttributesConfig=job.addConst(new LiteralArrayExpr(i18nAttributeConfig))}for(const unit of job.units)for(const op of unit.create)if(op.kind===OpKind.I18nStart){const msgIndex=messageConstIndices.get(op.root);if(void 0===msgIndex)throw new Error("AssertionError: Could not find corresponding i18n block index for an i18n message op; was an i18n message incorrectly assumed to correspond to an attribute?");op.messageIndex=msgIndex}}},{kind:CompilationJobKind.Tmpl,fn:function collectConstExpressions(job){for(const unit of job.units)for(const op of unit.ops())transformExpressionsInOp(op,(expr=>expr instanceof ConstCollectedExpr?literal(job.addConst(expr.expr)):expr),VisitorContextFlag.None)}},{kind:CompilationJobKind.Both,fn:function collectElementConsts(job){const allElementAttributes=new Map;for(const unit of job.units)for(const op of unit.create)if(op.kind===OpKind.ExtractedAttribute){const attributes=allElementAttributes.get(op.target)||new ElementAttributes(job.compatibility);allElementAttributes.set(op.target,attributes),attributes.add(op.bindingKind,op.name,op.expression,op.namespace,op.trustedValueFn),OpList.remove(op)}if(job instanceof ComponentCompilationJob)for(const unit of job.units)for(const op of unit.create)if(op.kind==OpKind.Projection){const attributes=allElementAttributes.get(op.xref);if(void 0!==attributes){const attrArray=serializeAttributes(attributes);attrArray.entries.length>0&&(op.attributes=attrArray)}}else isElementOrContainerOp(op)&&(op.attributes=getConstIndex(job,allElementAttributes,op.xref),op.kind===OpKind.RepeaterCreate&&null!==op.emptyView&&(op.emptyAttributes=getConstIndex(job,allElementAttributes,op.emptyView)));else if(job instanceof HostBindingCompilationJob)for(const[xref,attributes]of allElementAttributes.entries()){if(xref!==job.root.xref)throw new Error("An attribute would be const collected into the host binding's template function, but is not associated with the root xref.");const attrArray=serializeAttributes(attributes);attrArray.entries.length>0&&(job.root.attributes=attrArray)}}},{kind:CompilationJobKind.Tmpl,fn:function removeI18nContexts(job){for(const unit of job.units)for(const op of unit.create)switch(op.kind){case OpKind.I18nContext:OpList.remove(op);break;case OpKind.I18nStart:op.context=null}}},{kind:CompilationJobKind.Both,fn:function countVariables(job){for(const unit of job.units){let varCount=0;for(const op of unit.ops())hasConsumesVarsTrait(op)&&(varCount+=varsUsedByOp(op));for(const op of unit.ops())visitExpressionsInOp(op,(expr=>{isIrExpression(expr)&&(job.compatibility===CompatibilityMode.TemplateDefinitionBuilder&&expr instanceof PureFunctionExpr||(hasUsesVarOffsetTrait(expr)&&(expr.varOffset=varCount),hasConsumesVarsTrait(expr)&&(varCount+=varsUsedByIrExpression(expr))))}));if(job.compatibility===CompatibilityMode.TemplateDefinitionBuilder)for(const op of unit.ops())visitExpressionsInOp(op,(expr=>{isIrExpression(expr)&&expr instanceof PureFunctionExpr&&(hasUsesVarOffsetTrait(expr)&&(expr.varOffset=varCount),hasConsumesVarsTrait(expr)&&(varCount+=varsUsedByIrExpression(expr)))}));unit.vars=varCount}if(job instanceof ComponentCompilationJob)for(const unit of job.units)for(const op of unit.create){if(op.kind!==OpKind.Template&&op.kind!==OpKind.RepeaterCreate)continue;const childView=job.views.get(op.xref);op.vars=childView.vars}}},{kind:CompilationJobKind.Tmpl,fn:function generateAdvance(job){for(const unit of job.units){const slotMap=new Map;for(const op of unit.create)if(hasConsumesSlotTrait(op)){if(null===op.handle.slot)throw new Error("AssertionError: expected slots to have been allocated before generating advance() calls");slotMap.set(op.xref,op.handle.slot)}let slotContext=0;for(const op of unit.update){if(!hasDependsOnSlotContextTrait(op))continue;if(!slotMap.has(op.target))throw new Error(`AssertionError: reference to unknown slot for target ${op.target}`);const slot=slotMap.get(op.target);if(slotContext!==slot){const delta=slot-slotContext;if(delta<0)throw new Error("AssertionError: slot counter should never need to move backwards");OpList.insertBefore(createAdvanceOp(delta,op.sourceSpan),op),slotContext=slot}}}}},{kind:CompilationJobKind.Both,fn:function optimizeVariables(job){for(const unit of job.units){inlineAlwaysInlineVariables(unit.create),inlineAlwaysInlineVariables(unit.update);for(const op of unit.create)op.kind!==OpKind.Listener&&op.kind!==OpKind.TwoWayListener||inlineAlwaysInlineVariables(op.handlerOps);optimizeVariablesInOpList(unit.create,job.compatibility),optimizeVariablesInOpList(unit.update,job.compatibility);for(const op of unit.create)op.kind!==OpKind.Listener&&op.kind!==OpKind.TwoWayListener||optimizeVariablesInOpList(op.handlerOps,job.compatibility)}}},{kind:CompilationJobKind.Both,fn:function nameFunctionsAndVariables(job){addNamesToView(job.root,job.componentName,{index:0},job.compatibility===CompatibilityMode.TemplateDefinitionBuilder)}},{kind:CompilationJobKind.Tmpl,fn:function createDeferDepsFns(job){for(const unit of job.units)for(const op of unit.create)if(op.kind===OpKind.Defer){if(0===op.metadata.deps.length)continue;if(null!==op.resolverFn)continue;const dependencies=[];for(const dep of op.metadata.deps)if(dep.isDeferrable){const innerFn=arrowFn([new FnParam("m",DYNAMIC_TYPE)],variable("m").prop(dep.isDefaultImport?"default":dep.symbolName)),importExpr=new DynamicImportExpr(dep.importPath).prop("then").callFn([innerFn]);dependencies.push(importExpr)}else dependencies.push(dep.type);const depsFnExpr=arrowFn([],literalArr(dependencies));if(null===op.handle.slot)throw new Error("AssertionError: slot must be assigned bfore extracting defer deps functions");const fullPathName=unit.fnName?.replace("_Template","");op.resolverFn=job.pool.getSharedFunctionReference(depsFnExpr,`${fullPathName}_Defer_${op.handle.slot}_DepsFn`,!1)}}},{kind:CompilationJobKind.Tmpl,fn:function mergeNextContextExpressions(job){for(const unit of job.units){for(const op of unit.create)op.kind!==OpKind.Listener&&op.kind!==OpKind.TwoWayListener||mergeNextContextsInOps(op.handlerOps);mergeNextContextsInOps(unit.update)}}},{kind:CompilationJobKind.Tmpl,fn:function generateNgContainerOps(job){for(const unit of job.units){const updatedElementXrefs=new Set;for(const op of unit.create)op.kind===OpKind.ElementStart&&"ng-container"===op.tag&&(op.kind=OpKind.ContainerStart,updatedElementXrefs.add(op.xref)),op.kind===OpKind.ElementEnd&&updatedElementXrefs.has(op.xref)&&(op.kind=OpKind.ContainerEnd)}}},{kind:CompilationJobKind.Tmpl,fn:function collapseEmptyInstructions(job){for(const unit of job.units)for(const op of unit.create){const opReplacements=REPLACEMENTS.get(op.kind);if(void 0===opReplacements)continue;const[startKind,mergedKind]=opReplacements;let prevOp=op.prev;for(;null!==prevOp&&IGNORED_OP_KINDS.has(prevOp.kind);)prevOp=prevOp.prev;null!==prevOp&&prevOp.kind===startKind&&(prevOp.kind=mergedKind,OpList.remove(op))}}},{kind:CompilationJobKind.Tmpl,fn:function disableBindings$1(job){const elements=new Map;for(const view of job.units)for(const op of view.create)isElementOrContainerOp(op)&&elements.set(op.xref,op);for(const unit of job.units)for(const op of unit.create)op.kind!==OpKind.ElementStart&&op.kind!==OpKind.ContainerStart||!op.nonBindable||OpList.insertAfter((xref=op.xref,{kind:OpKind.DisableBindings,xref,...NEW_OP}),op),op.kind!==OpKind.ElementEnd&&op.kind!==OpKind.ContainerEnd||!lookupElement(elements,op.xref).nonBindable||OpList.insertBefore(createEnableBindingsOp(op.xref),op);var xref}},{kind:CompilationJobKind.Both,fn:function extractPureFunctions(job){for(const view of job.units)for(const op of view.ops())visitExpressionsInOp(op,(expr=>{if(!(expr instanceof PureFunctionExpr)||null===expr.body)return;const constantDef=new PureFunctionConstant(expr.args.length);expr.fn=job.pool.getSharedConstant(constantDef,expr.body),expr.body=null}))}},{kind:CompilationJobKind.Both,fn:function reify(job){for(const unit of job.units)reifyCreateOperations(unit,unit.create),reifyUpdateOperations(unit,unit.update)}},{kind:CompilationJobKind.Both,fn:function chain(job){for(const unit of job.units)chainOperationsInList(unit.create),chainOperationsInList(unit.update)}}];function transform(job,kind){for(const phase of phases)phase.kind!==kind&&phase.kind!==CompilationJobKind.Both||phase.fn(job)}function emitTemplateFn(tpl,pool){const rootFn=emitView(tpl.root);return emitChildViews(tpl.root,pool),rootFn}function emitChildViews(parent,pool){for(const unit of parent.job.units){if(unit.parent!==parent.xref)continue;emitChildViews(unit,pool);const viewFn=emitView(unit);pool.statements.push(viewFn.toDeclStmt(viewFn.name))}}function emitView(view){if(null===view.fnName)throw new Error(`AssertionError: view ${view.xref} is unnamed`);const createStatements=[];for(const op of view.create){if(op.kind!==OpKind.Statement)throw new Error(`AssertionError: expected all create ops to have been compiled, but got ${OpKind[op.kind]}`);createStatements.push(op.statement)}const updateStatements=[];for(const op of view.update){if(op.kind!==OpKind.Statement)throw new Error(`AssertionError: expected all update ops to have been compiled, but got ${OpKind[op.kind]}`);updateStatements.push(op.statement)}const createCond=maybeGenerateRfBlock(1,createStatements),updateCond=maybeGenerateRfBlock(2,updateStatements);return fn([new FnParam("rf"),new FnParam("ctx")],[...createCond,...updateCond],void 0,void 0,view.fnName)}function maybeGenerateRfBlock(flag,statements){return 0===statements.length?[]:[ifStmt(new BinaryOperatorExpr(BinaryOperator.BitwiseAnd,variable("rf"),literal(flag)),statements)]}const compatibilityMode=CompatibilityMode.TemplateDefinitionBuilder,domSchema=new DomElementSchemaRegistry,NG_TEMPLATE_TAG_NAME$1="ng-template";function ingestHostProperty(job,property,bindingKind,securityContexts){let expression;const ast=property.expression.ast;expression=ast instanceof Interpolation$1?new Interpolation(ast.strings,ast.expressions.map((expr=>convertAst(expr,job,property.sourceSpan))),[]):convertAst(ast,job,property.sourceSpan),job.root.update.push(createBindingOp(job.root.xref,bindingKind,property.name,expression,null,securityContexts,!1,!1,null,null,property.sourceSpan))}function ingestHostAttribute(job,name,value,securityContexts){const attrBinding=createBindingOp(job.root.xref,BindingKind.Attribute,name,value,null,securityContexts,!0,!1,null,null,value.sourceSpan);job.root.update.push(attrBinding)}function ingestHostEvent(job,event){const[phase,target]=1!==event.type?[null,event.targetOrPhase]:[event.targetOrPhase,null],eventBinding=createListenerOp(job.root.xref,new SlotHandle,event.name,null,makeListenerHandlerOps(job.root,event.handler,event.handlerSpan),phase,target,!0,event.sourceSpan);job.root.create.push(eventBinding)}function ingestNodes(unit,template){for(const node of template)if(node instanceof Element$1)ingestElement(unit,node);else if(node instanceof Template)ingestTemplate(unit,node);else if(node instanceof Content)ingestContent(unit,node);else if(node instanceof Text$3)ingestText(unit,node,null);else if(node instanceof BoundText)ingestBoundText(unit,node,null);else if(node instanceof IfBlock)ingestIfBlock(unit,node);else if(node instanceof SwitchBlock)ingestSwitchBlock(unit,node);else if(node instanceof DeferredBlock)ingestDeferBlock(unit,node);else if(node instanceof Icu$1)ingestIcu(unit,node);else{if(!(node instanceof ForLoopBlock))throw new Error(`Unsupported template node: ${node.constructor.name}`);ingestForBlock(unit,node)}}function ingestElement(unit,element){if(void 0!==element.i18n&&!(element.i18n instanceof Message||element.i18n instanceof TagPlaceholder))throw Error(`Unhandled i18n metadata type for element: ${element.i18n.constructor.name}`);const id=unit.job.allocateXrefId(),[namespaceKey,elementName]=splitNsName(element.name),startOp=function createElementStartOp(tag,xref,namespace,i18nPlaceholder,startSourceSpan,wholeSourceSpan){return{kind:OpKind.ElementStart,xref,tag,handle:new SlotHandle,attributes:null,localRefs:[],nonBindable:!1,namespace,i18nPlaceholder,startSourceSpan,wholeSourceSpan,...TRAIT_CONSUMES_SLOT,...NEW_OP}}(elementName,id,namespaceForKey(namespaceKey),element.i18n instanceof TagPlaceholder?element.i18n:void 0,element.startSourceSpan,element.sourceSpan);unit.create.push(startOp),function ingestElementBindings(unit,op,element){let bindings=new Array,i18nAttributeBindingNames=new Set;for(const attr of element.attributes){const securityContext=domSchema.securityContext(element.name,attr.name,!0);bindings.push(createBindingOp(op.xref,BindingKind.Attribute,attr.name,convertAstWithInterpolation(unit.job,attr.value,attr.i18n),null,securityContext,!0,!1,null,asMessage(attr.i18n),attr.sourceSpan)),attr.i18n&&i18nAttributeBindingNames.add(attr.name)}for(const input of element.inputs)i18nAttributeBindingNames.has(input.name)&&console.error(`On component ${unit.job.componentName}, the binding ${input.name} is both an i18n attribute and a property. You may want to remove the property binding. This will become a compilation error in future versions of Angular.`),bindings.push(createBindingOp(op.xref,BINDING_KINDS.get(input.type),input.name,convertAstWithInterpolation(unit.job,astOf(input.value),input.i18n),input.unit,input.securityContext,!1,!1,null,asMessage(input.i18n)??null,input.sourceSpan));unit.create.push(bindings.filter((b=>b?.kind===OpKind.ExtractedAttribute))),unit.update.push(bindings.filter((b=>b?.kind===OpKind.Binding)));for(const output of element.outputs){if(1===output.type&&null===output.phase)throw Error("Animation listener should have a phase");2===output.type?unit.create.push(createTwoWayListenerOp(op.xref,op.handle,output.name,op.tag,makeTwoWayListenerHandlerOps(unit,output.handler,output.handlerSpan),output.sourceSpan)):unit.create.push(createListenerOp(op.xref,op.handle,output.name,op.tag,makeListenerHandlerOps(unit,output.handler,output.handlerSpan),output.phase,output.target,!1,output.sourceSpan))}null!==bindings.some((b=>b?.i18nMessage))&&unit.create.push(createI18nAttributesOp(unit.job.allocateXrefId(),new SlotHandle,op.xref))}(unit,startOp,element),ingestReferences(startOp,element);let i18nBlockId=null;element.i18n instanceof Message&&(i18nBlockId=unit.job.allocateXrefId(),unit.create.push(createI18nStartOp(i18nBlockId,element.i18n,void 0,element.startSourceSpan))),ingestNodes(unit,element.children);const endOp=function createElementEndOp(xref,sourceSpan){return{kind:OpKind.ElementEnd,xref,sourceSpan,...NEW_OP}}(id,element.endSourceSpan??element.startSourceSpan);unit.create.push(endOp),null!==i18nBlockId&&OpList.insertBefore(createI18nEndOp(i18nBlockId,element.endSourceSpan??element.startSourceSpan),endOp)}function ingestTemplate(unit,tmpl){if(void 0!==tmpl.i18n&&!(tmpl.i18n instanceof Message||tmpl.i18n instanceof TagPlaceholder))throw Error(`Unhandled i18n metadata type for template: ${tmpl.i18n.constructor.name}`);const childView=unit.job.allocateView(unit.xref);let tagNameWithoutNamespace=tmpl.tagName,namespacePrefix="";tmpl.tagName&&([namespacePrefix,tagNameWithoutNamespace]=splitNsName(tmpl.tagName));const i18nPlaceholder=tmpl.i18n instanceof TagPlaceholder?tmpl.i18n:void 0,namespace=namespaceForKey(namespacePrefix),functionNameSuffix=null===tagNameWithoutNamespace?"":prefixWithNamespace(tagNameWithoutNamespace,namespace),templateKind=function isPlainTemplate(tmpl){return splitNsName(tmpl.tagName??"")[1]===NG_TEMPLATE_TAG_NAME$1}(tmpl)?TemplateKind.NgTemplate:TemplateKind.Structural,templateOp=createTemplateOp(childView.xref,templateKind,tagNameWithoutNamespace,functionNameSuffix,namespace,i18nPlaceholder,tmpl.startSourceSpan,tmpl.sourceSpan);unit.create.push(templateOp),function ingestTemplateBindings(unit,op,template,templateKind){let bindings=new Array;for(const attr of template.templateAttrs)if(attr instanceof TextAttribute){const securityContext=domSchema.securityContext(NG_TEMPLATE_TAG_NAME$1,attr.name,!0);bindings.push(createTemplateBinding(unit,op.xref,1,attr.name,attr.value,null,securityContext,!0,templateKind,asMessage(attr.i18n),attr.sourceSpan))}else bindings.push(createTemplateBinding(unit,op.xref,attr.type,attr.name,astOf(attr.value),attr.unit,attr.securityContext,!0,templateKind,asMessage(attr.i18n),attr.sourceSpan));for(const attr of template.attributes){const securityContext=domSchema.securityContext(NG_TEMPLATE_TAG_NAME$1,attr.name,!0);bindings.push(createTemplateBinding(unit,op.xref,1,attr.name,attr.value,null,securityContext,!1,templateKind,asMessage(attr.i18n),attr.sourceSpan))}for(const input of template.inputs)bindings.push(createTemplateBinding(unit,op.xref,input.type,input.name,astOf(input.value),input.unit,input.securityContext,!1,templateKind,asMessage(input.i18n),input.sourceSpan));unit.create.push(bindings.filter((b=>b?.kind===OpKind.ExtractedAttribute))),unit.update.push(bindings.filter((b=>b?.kind===OpKind.Binding)));for(const output of template.outputs){if(1===output.type&&null===output.phase)throw Error("Animation listener should have a phase");if(templateKind===TemplateKind.NgTemplate&&(2===output.type?unit.create.push(createTwoWayListenerOp(op.xref,op.handle,output.name,op.tag,makeTwoWayListenerHandlerOps(unit,output.handler,output.handlerSpan),output.sourceSpan)):unit.create.push(createListenerOp(op.xref,op.handle,output.name,op.tag,makeListenerHandlerOps(unit,output.handler,output.handlerSpan),output.phase,output.target,!1,output.sourceSpan))),templateKind===TemplateKind.Structural&&1!==output.type){const securityContext=domSchema.securityContext(NG_TEMPLATE_TAG_NAME$1,output.name,!1);unit.create.push(createExtractedAttributeOp(op.xref,BindingKind.Property,null,output.name,null,null,null,securityContext))}}null!==bindings.some((b=>b?.i18nMessage))&&unit.create.push(createI18nAttributesOp(unit.job.allocateXrefId(),new SlotHandle,op.xref))}(unit,templateOp,tmpl,templateKind),ingestReferences(templateOp,tmpl),ingestNodes(childView,tmpl.children);for(const{name,value}of tmpl.variables)childView.contextVariables.set(name,""!==value?value:"$implicit");if(templateKind===TemplateKind.NgTemplate&&tmpl.i18n instanceof Message){const id=unit.job.allocateXrefId();OpList.insertAfter(createI18nStartOp(id,tmpl.i18n,void 0,tmpl.startSourceSpan),childView.create.head),OpList.insertBefore(createI18nEndOp(id,tmpl.endSourceSpan??tmpl.startSourceSpan),childView.create.tail)}}function ingestContent(unit,content){if(void 0!==content.i18n&&!(content.i18n instanceof TagPlaceholder))throw Error(`Unhandled i18n metadata type for element: ${content.i18n.constructor.name}`);const op=function createProjectionOp(xref,selector,i18nPlaceholder,sourceSpan){return{kind:OpKind.Projection,xref,handle:new SlotHandle,selector,i18nPlaceholder,projectionSlotIndex:0,attributes:null,localRefs:[],sourceSpan,...NEW_OP,...TRAIT_CONSUMES_SLOT}}(unit.job.allocateXrefId(),content.selector,content.i18n,content.sourceSpan);for(const attr of content.attributes){const securityContext=domSchema.securityContext(content.name,attr.name,!0);unit.update.push(createBindingOp(op.xref,BindingKind.Attribute,attr.name,literal(attr.value),null,securityContext,!0,!1,null,asMessage(attr.i18n),attr.sourceSpan))}unit.create.push(op)}function ingestText(unit,text,icuPlaceholder){unit.create.push(createTextOp(unit.job.allocateXrefId(),text.value,icuPlaceholder,text.sourceSpan))}function ingestBoundText(unit,text,icuPlaceholder){let value=text.value;if(value instanceof ASTWithSource&&(value=value.ast),!(value instanceof Interpolation$1))throw new Error(`AssertionError: expected Interpolation for BoundText node, got ${value.constructor.name}`);if(void 0!==text.i18n&&!(text.i18n instanceof Container))throw Error(`Unhandled i18n metadata type for text interpolation: ${text.i18n?.constructor.name}`);const i18nPlaceholders=text.i18n instanceof Container?text.i18n.children.filter((node=>node instanceof Placeholder)).map((placeholder=>placeholder.name)):[];if(i18nPlaceholders.length>0&&i18nPlaceholders.length!==value.expressions.length)throw Error(`Unexpected number of i18n placeholders (${value.expressions.length}) for BoundText with ${value.expressions.length} expressions`);const textXref=unit.job.allocateXrefId();unit.create.push(createTextOp(textXref,"",icuPlaceholder,text.sourceSpan));const baseSourceSpan=unit.job.compatibility?null:text.sourceSpan;unit.update.push(function createInterpolateTextOp(xref,interpolation,sourceSpan){return{kind:OpKind.InterpolateText,target:xref,interpolation,sourceSpan,...TRAIT_DEPENDS_ON_SLOT_CONTEXT,...TRAIT_CONSUMES_VARS,...NEW_OP}}(textXref,new Interpolation(value.strings,value.expressions.map((expr=>convertAst(expr,unit.job,baseSourceSpan))),i18nPlaceholders),text.sourceSpan))}function ingestIfBlock(unit,ifBlock){let firstXref=null,firstSlotHandle=null,conditions=[];for(let i=0;iconvertAst(arg,job,baseSourceSpan))),void 0,convertSourceSpan(ast.span,baseSourceSpan))}if(ast instanceof LiteralPrimitive)return literal(ast.value,void 0,convertSourceSpan(ast.span,baseSourceSpan));if(!(ast instanceof Unary)){if(ast instanceof Binary){const operator=BINARY_OPERATORS.get(ast.operation);if(void 0===operator)throw new Error(`AssertionError: unknown binary operator ${ast.operation}`);return new BinaryOperatorExpr(operator,convertAst(ast.left,job,baseSourceSpan),convertAst(ast.right,job,baseSourceSpan),void 0,convertSourceSpan(ast.span,baseSourceSpan))}if(ast instanceof ThisReceiver)return new ContextExpr(job.root.xref);if(ast instanceof KeyedRead)return new ReadKeyExpr(convertAst(ast.receiver,job,baseSourceSpan),convertAst(ast.key,job,baseSourceSpan),void 0,convertSourceSpan(ast.span,baseSourceSpan));if(ast instanceof Chain)throw new Error("AssertionError: Chain in unknown context");if(ast instanceof LiteralMap){const entries=ast.keys.map(((key,idx)=>{const value=ast.values[idx];return new LiteralMapEntry(key.key,convertAst(value,job,baseSourceSpan),key.quoted)}));return new LiteralMapExpr(entries,void 0,convertSourceSpan(ast.span,baseSourceSpan))}if(ast instanceof LiteralArray)return new LiteralArrayExpr(ast.expressions.map((expr=>convertAst(expr,job,baseSourceSpan))));if(ast instanceof Conditional)return new ConditionalExpr(convertAst(ast.condition,job,baseSourceSpan),convertAst(ast.trueExp,job,baseSourceSpan),convertAst(ast.falseExp,job,baseSourceSpan),void 0,convertSourceSpan(ast.span,baseSourceSpan));if(ast instanceof NonNullAssert)return convertAst(ast.expression,job,baseSourceSpan);if(ast instanceof BindingPipe)return new PipeBindingExpr(job.allocateXrefId(),new SlotHandle,ast.name,[convertAst(ast.exp,job,baseSourceSpan),...ast.args.map((arg=>convertAst(arg,job,baseSourceSpan)))]);if(ast instanceof SafeKeyedRead)return new SafeKeyedReadExpr(convertAst(ast.receiver,job,baseSourceSpan),convertAst(ast.key,job,baseSourceSpan),convertSourceSpan(ast.span,baseSourceSpan));if(ast instanceof SafePropertyRead)return new SafePropertyReadExpr(convertAst(ast.receiver,job,baseSourceSpan),ast.name);if(ast instanceof SafeCall)return new SafeInvokeFunctionExpr(convertAst(ast.receiver,job,baseSourceSpan),ast.args.map((a=>convertAst(a,job,baseSourceSpan))));if(ast instanceof EmptyExpr$1)return new EmptyExpr(convertSourceSpan(ast.span,baseSourceSpan));if(ast instanceof PrefixNot)return not(convertAst(ast.expression,job,baseSourceSpan),convertSourceSpan(ast.span,baseSourceSpan));throw new Error(`Unhandled expression type "${ast.constructor.name}" in file "${baseSourceSpan?.start.file.url}"`)}switch(ast.operator){case"+":return new UnaryOperatorExpr(UnaryOperator.Plus,convertAst(ast.expr,job,baseSourceSpan),void 0,convertSourceSpan(ast.span,baseSourceSpan));case"-":return new UnaryOperatorExpr(UnaryOperator.Minus,convertAst(ast.expr,job,baseSourceSpan),void 0,convertSourceSpan(ast.span,baseSourceSpan));default:throw new Error(`AssertionError: unknown unary operator ${ast.operator}`)}}function convertAstWithInterpolation(job,value,i18nMeta,sourceSpan){let expression;return expression=value instanceof Interpolation$1?new Interpolation(value.strings,value.expressions.map((e=>convertAst(e,job,sourceSpan??null))),Object.keys(asMessage(i18nMeta)?.placeholders??{})):value instanceof AST?convertAst(value,job,sourceSpan??null):literal(value),expression}const BINDING_KINDS=new Map([[0,BindingKind.Property],[5,BindingKind.TwoWayProperty],[1,BindingKind.Attribute],[2,BindingKind.ClassName],[3,BindingKind.StyleProperty],[4,BindingKind.Animation]]);function asMessage(i18nMeta){if(null==i18nMeta)return null;if(!(i18nMeta instanceof Message))throw Error(`Expected i18n meta to be a Message, but got: ${i18nMeta.constructor.name}`);return i18nMeta}function createTemplateBinding(view,xref,type,name,value,unit,securityContext,isStructuralTemplateAttribute,templateKind,i18nMessage,sourceSpan){const isTextBinding="string"==typeof value;if(templateKind===TemplateKind.Structural){if(!isStructuralTemplateAttribute)switch(type){case 0:case 2:case 3:return createExtractedAttributeOp(xref,BindingKind.Property,null,name,null,null,i18nMessage,securityContext);case 5:return createExtractedAttributeOp(xref,BindingKind.TwoWayProperty,null,name,null,null,i18nMessage,securityContext)}if(!isTextBinding&&(1===type||4===type))return null}let bindingType=BINDING_KINDS.get(type);return templateKind===TemplateKind.NgTemplate&&(2===type||3===type||1===type&&!isTextBinding)&&(bindingType=BindingKind.Property),createBindingOp(xref,bindingType,name,convertAstWithInterpolation(view.job,value,i18nMessage),unit,securityContext,isTextBinding,isStructuralTemplateAttribute,templateKind,i18nMessage,sourceSpan)}function makeListenerHandlerOps(unit,handler,handlerSpan){handler=astOf(handler);const handlerOps=new Array;let handlerExprs=handler instanceof Chain?handler.expressions:[handler];if(0===handlerExprs.length)throw new Error("Expected listener to have non-empty expression list.");const expressions=handlerExprs.map((expr=>convertAst(expr,unit.job,handlerSpan))),returnExpr=expressions.pop();return handlerOps.push(...expressions.map((e=>createStatementOp(new ExpressionStatement(e,e.sourceSpan))))),handlerOps.push(createStatementOp(new ReturnStatement(returnExpr,returnExpr.sourceSpan))),handlerOps}function makeTwoWayListenerHandlerOps(unit,handler,handlerSpan){handler=astOf(handler);const handlerOps=new Array;if(handler instanceof Chain){if(1!==handler.expressions.length)throw new Error("Expected two-way listener to have a single expression.");handler=handler.expressions[0]}const handlerExpr=convertAst(handler,unit.job,handlerSpan),eventReference=new LexicalReadExpr("$event"),twoWaySetExpr=new TwoWayBindingSetExpr(handlerExpr,eventReference);return handlerOps.push(createStatementOp(new ExpressionStatement(twoWaySetExpr))),handlerOps.push(createStatementOp(new ReturnStatement(eventReference))),handlerOps}function astOf(ast){return ast instanceof ASTWithSource?ast.ast:ast}function ingestReferences(op,element){!function assertIsArray(value){if(!Array.isArray(value))throw new Error("AssertionError: expected an array")}(op.localRefs);for(const{name,value}of element.references)op.localRefs.push({name,target:value})}function convertSourceSpan(span,baseSourceSpan){if(null===baseSourceSpan)return null;const start=baseSourceSpan.start.moveBy(span.start),end=baseSourceSpan.start.moveBy(span.end),fullStart=baseSourceSpan.fullStart.moveBy(span.start);return new ParseSourceSpan(start,end,fullStart)}function ingestControlFlowInsertionPoint(unit,xref,node){let root=null;for(const child of node.children)if(!(child instanceof Comment$1)){if(null!==root)return null;(child instanceof Element$1||child instanceof Template&&null!==child.tagName)&&(root=child)}if(null!==root){for(const attr of root.attributes){const securityContext=domSchema.securityContext(NG_TEMPLATE_TAG_NAME$1,attr.name,!0);unit.update.push(createBindingOp(xref,BindingKind.Attribute,attr.name,literal(attr.value),null,securityContext,!0,!1,null,asMessage(attr.i18n),attr.sourceSpan))}for(const attr of root.inputs)if(4!==attr.type&&1!==attr.type){const securityContext=domSchema.securityContext(NG_TEMPLATE_TAG_NAME$1,attr.name,!0);unit.create.push(createExtractedAttributeOp(xref,BindingKind.Property,null,attr.name,null,null,null,securityContext))}const tagName=root instanceof Element$1?root.name:root.tagName;return tagName===NG_TEMPLATE_TAG_NAME$1?null:tagName}return null}const USE_TEMPLATE_PIPELINE=!1;class HtmlParser extends Parser{constructor(){super(getHtmlTagDefinition)}parse(source,url,options){return super.parse(source,url,options)}}const SKIP_WS_TRIM_TAGS=new Set(["pre","template","textarea","script","style"]),NO_WS_REGEXP=new RegExp("[^ \f\n\r\t\v ᠎ - \u2028\u2029   \ufeff]"),WS_REPLACE_REGEXP=new RegExp("[ \f\n\r\t\v ᠎ - \u2028\u2029   \ufeff]{2,}","g");function replaceNgsp(value){return value.replace(new RegExp("","g")," ")}class WhitespaceVisitor{visitElement(element,context){return SKIP_WS_TRIM_TAGS.has(element.name)||function hasPreserveWhitespacesAttr(attrs){return attrs.some((attr=>"ngPreserveWhitespaces"===attr.name))}(element.attrs)?new Element(element.name,visitAll(this,element.attrs),element.children,element.sourceSpan,element.startSourceSpan,element.endSourceSpan,element.i18n):new Element(element.name,element.attrs,visitAllWithSiblings(this,element.children),element.sourceSpan,element.startSourceSpan,element.endSourceSpan,element.i18n)}visitAttribute(attribute,context){return"ngPreserveWhitespaces"!==attribute.name?attribute:null}visitText(text,context){const isNotBlank=text.value.match(NO_WS_REGEXP),hasExpansionSibling=context&&(context.prev instanceof Expansion||context.next instanceof Expansion);if(isNotBlank||hasExpansionSibling){const tokens=text.tokens.map((token=>5===token.type?function createWhitespaceProcessedTextToken({type,parts,sourceSpan}){return{type,parts:[processWhitespace(parts[0])],sourceSpan}}(token):token)),value=processWhitespace(text.value);return new Text(value,text.sourceSpan,tokens,text.i18n)}return null}visitComment(comment,context){return comment}visitExpansion(expansion,context){return expansion}visitExpansionCase(expansionCase,context){return expansionCase}visitBlock(block,context){return new Block(block.name,block.parameters,visitAllWithSiblings(this,block.children),block.sourceSpan,block.nameSpan,block.startSourceSpan,block.endSourceSpan)}visitBlockParameter(parameter,context){return parameter}}function processWhitespace(text){return replaceNgsp(text).replace(WS_REPLACE_REGEXP," ")}function visitAllWithSiblings(visitor,nodes){const result=[];return nodes.forEach(((ast,i)=>{const context={prev:nodes[i-1],next:nodes[i+1]},astResult=ast.visit(visitor,context);astResult&&result.push(astResult)})),result}class BindingParser{constructor(_exprParser,_interpolationConfig,_schemaRegistry,errors){this._exprParser=_exprParser,this._interpolationConfig=_interpolationConfig,this._schemaRegistry=_schemaRegistry,this.errors=errors}get interpolationConfig(){return this._interpolationConfig}createBoundHostProperties(properties,sourceSpan){const boundProps=[];for(const propName of Object.keys(properties)){const expression=properties[propName];"string"==typeof expression?this.parsePropertyBinding(propName,expression,!0,!1,sourceSpan,sourceSpan.start.offset,void 0,[],boundProps,sourceSpan):this._reportError(`Value of the host property binding "${propName}" needs to be a string representing an expression but got "${expression}" (${typeof expression})`,sourceSpan)}return boundProps}createDirectiveHostEventAsts(hostListeners,sourceSpan){const targetEvents=[];for(const propName of Object.keys(hostListeners)){const expression=hostListeners[propName];"string"==typeof expression?this.parseEvent(propName,expression,!1,sourceSpan,sourceSpan,[],targetEvents,sourceSpan):this._reportError(`Value of the host listener "${propName}" needs to be a string representing an expression but got "${expression}" (${typeof expression})`,sourceSpan)}return targetEvents}parseInterpolation(value,sourceSpan,interpolatedTokens){const sourceInfo=sourceSpan.start.toString(),absoluteOffset=sourceSpan.fullStart.offset;try{const ast=this._exprParser.parseInterpolation(value,sourceInfo,absoluteOffset,interpolatedTokens,this._interpolationConfig);return ast&&this._reportExpressionParserErrors(ast.errors,sourceSpan),ast}catch(e){return this._reportError(`${e}`,sourceSpan),this._exprParser.wrapLiteralPrimitive("ERROR",sourceInfo,absoluteOffset)}}parseInterpolationExpression(expression,sourceSpan){const sourceInfo=sourceSpan.start.toString(),absoluteOffset=sourceSpan.start.offset;try{const ast=this._exprParser.parseInterpolationExpression(expression,sourceInfo,absoluteOffset);return ast&&this._reportExpressionParserErrors(ast.errors,sourceSpan),ast}catch(e){return this._reportError(`${e}`,sourceSpan),this._exprParser.wrapLiteralPrimitive("ERROR",sourceInfo,absoluteOffset)}}parseInlineTemplateBinding(tplKey,tplValue,sourceSpan,absoluteValueOffset,targetMatchableAttrs,targetProps,targetVars,isIvyAst){const absoluteKeyOffset=sourceSpan.start.offset+1,bindings=this._parseTemplateBindings(tplKey,tplValue,sourceSpan,absoluteKeyOffset,absoluteValueOffset);for(const binding of bindings){const bindingSpan=moveParseSourceSpan(sourceSpan,binding.sourceSpan),key=binding.key.source,keySpan=moveParseSourceSpan(sourceSpan,binding.key.span);if(binding instanceof VariableBinding){const value=binding.value?binding.value.source:"$implicit",valueSpan=binding.value?moveParseSourceSpan(sourceSpan,binding.value.span):void 0;targetVars.push(new ParsedVariable(key,value,bindingSpan,keySpan,valueSpan))}else if(binding.value){const srcSpan=isIvyAst?bindingSpan:sourceSpan,valueSpan=moveParseSourceSpan(sourceSpan,binding.value.ast.sourceSpan);this._parsePropertyAst(key,binding.value,!1,srcSpan,keySpan,valueSpan,targetMatchableAttrs,targetProps)}else targetMatchableAttrs.push([key,""]),this.parseLiteralAttr(key,null,keySpan,absoluteValueOffset,void 0,targetMatchableAttrs,targetProps,keySpan)}}_parseTemplateBindings(tplKey,tplValue,sourceSpan,absoluteKeyOffset,absoluteValueOffset){const sourceInfo=sourceSpan.start.toString();try{const bindingsResult=this._exprParser.parseTemplateBindings(tplKey,tplValue,sourceInfo,absoluteKeyOffset,absoluteValueOffset);return this._reportExpressionParserErrors(bindingsResult.errors,sourceSpan),bindingsResult.warnings.forEach((warning=>{this._reportError(warning,sourceSpan,ParseErrorLevel.WARNING)})),bindingsResult.templateBindings}catch(e){return this._reportError(`${e}`,sourceSpan),[]}}parseLiteralAttr(name,value,sourceSpan,absoluteOffset,valueSpan,targetMatchableAttrs,targetProps,keySpan){isAnimationLabel(name)?(name=name.substring(1),void 0!==keySpan&&(keySpan=moveParseSourceSpan(keySpan,new AbsoluteSourceSpan(keySpan.start.offset+1,keySpan.end.offset))),value&&this._reportError('Assigning animation triggers via @prop="exp" attributes with an expression is invalid. Use property bindings (e.g. [@prop]="exp") or use an attribute without a value (e.g. @prop) instead.',sourceSpan,ParseErrorLevel.ERROR),this._parseAnimation(name,value,sourceSpan,absoluteOffset,keySpan,valueSpan,targetMatchableAttrs,targetProps)):targetProps.push(new ParsedProperty(name,this._exprParser.wrapLiteralPrimitive(value,"",absoluteOffset),ParsedPropertyType.LITERAL_ATTR,sourceSpan,keySpan,valueSpan))}parsePropertyBinding(name,expression,isHost,isPartOfAssignmentBinding,sourceSpan,absoluteOffset,valueSpan,targetMatchableAttrs,targetProps,keySpan){0===name.length&&this._reportError("Property name is missing in binding",sourceSpan);let isAnimationProp=!1;name.startsWith("animate-")?(isAnimationProp=!0,name=name.substring(8),void 0!==keySpan&&(keySpan=moveParseSourceSpan(keySpan,new AbsoluteSourceSpan(keySpan.start.offset+8,keySpan.end.offset)))):isAnimationLabel(name)&&(isAnimationProp=!0,name=name.substring(1),void 0!==keySpan&&(keySpan=moveParseSourceSpan(keySpan,new AbsoluteSourceSpan(keySpan.start.offset+1,keySpan.end.offset)))),isAnimationProp?this._parseAnimation(name,expression,sourceSpan,absoluteOffset,keySpan,valueSpan,targetMatchableAttrs,targetProps):this._parsePropertyAst(name,this.parseBinding(expression,isHost,valueSpan||sourceSpan,absoluteOffset),isPartOfAssignmentBinding,sourceSpan,keySpan,valueSpan,targetMatchableAttrs,targetProps)}parsePropertyInterpolation(name,value,sourceSpan,valueSpan,targetMatchableAttrs,targetProps,keySpan,interpolatedTokens){const expr=this.parseInterpolation(value,valueSpan||sourceSpan,interpolatedTokens);return!!expr&&(this._parsePropertyAst(name,expr,!1,sourceSpan,keySpan,valueSpan,targetMatchableAttrs,targetProps),!0)}_parsePropertyAst(name,ast,isPartOfAssignmentBinding,sourceSpan,keySpan,valueSpan,targetMatchableAttrs,targetProps){targetMatchableAttrs.push([name,ast.source]),targetProps.push(new ParsedProperty(name,ast,isPartOfAssignmentBinding?ParsedPropertyType.TWO_WAY:ParsedPropertyType.DEFAULT,sourceSpan,keySpan,valueSpan))}_parseAnimation(name,expression,sourceSpan,absoluteOffset,keySpan,valueSpan,targetMatchableAttrs,targetProps){0===name.length&&this._reportError("Animation trigger is missing",sourceSpan);const ast=this.parseBinding(expression||"undefined",!1,valueSpan||sourceSpan,absoluteOffset);targetMatchableAttrs.push([name,ast.source]),targetProps.push(new ParsedProperty(name,ast,ParsedPropertyType.ANIMATION,sourceSpan,keySpan,valueSpan))}parseBinding(value,isHostBinding,sourceSpan,absoluteOffset){const sourceInfo=(sourceSpan&&sourceSpan.start||"(unknown)").toString();try{const ast=isHostBinding?this._exprParser.parseSimpleBinding(value,sourceInfo,absoluteOffset,this._interpolationConfig):this._exprParser.parseBinding(value,sourceInfo,absoluteOffset,this._interpolationConfig);return ast&&this._reportExpressionParserErrors(ast.errors,sourceSpan),ast}catch(e){return this._reportError(`${e}`,sourceSpan),this._exprParser.wrapLiteralPrimitive("ERROR",sourceInfo,absoluteOffset)}}createBoundElementProperty(elementSelector,boundProp,skipValidation=!1,mapPropertyName=!0){if(boundProp.isAnimation)return new BoundElementProperty(boundProp.name,4,SecurityContext.NONE,boundProp.expression,null,boundProp.sourceSpan,boundProp.keySpan,boundProp.valueSpan);let bindingType,unit=null,boundPropertyName=null;const parts=boundProp.name.split(".");let securityContexts;if(parts.length>1)if("attr"==parts[0]){boundPropertyName=parts.slice(1).join("."),skipValidation||this._validatePropertyOrAttributeName(boundPropertyName,boundProp.sourceSpan,!0),securityContexts=calcPossibleSecurityContexts(this._schemaRegistry,elementSelector,boundPropertyName,!0);const nsSeparatorIdx=boundPropertyName.indexOf(":");if(nsSeparatorIdx>-1){const ns=boundPropertyName.substring(0,nsSeparatorIdx),name=boundPropertyName.substring(nsSeparatorIdx+1);boundPropertyName=mergeNsAndName(ns,name)}bindingType=1}else"class"==parts[0]?(boundPropertyName=parts[1],bindingType=2,securityContexts=[SecurityContext.NONE]):"style"==parts[0]&&(unit=parts.length>2?parts[2]:null,boundPropertyName=parts[1],bindingType=3,securityContexts=[SecurityContext.STYLE]);if(null===boundPropertyName){const mappedPropName=this._schemaRegistry.getMappedPropName(boundProp.name);boundPropertyName=mapPropertyName?mappedPropName:boundProp.name,securityContexts=calcPossibleSecurityContexts(this._schemaRegistry,elementSelector,mappedPropName,!1),bindingType=boundProp.type===ParsedPropertyType.TWO_WAY?5:0,skipValidation||this._validatePropertyOrAttributeName(mappedPropName,boundProp.sourceSpan,!1)}return new BoundElementProperty(boundPropertyName,bindingType,securityContexts[0],boundProp.expression,unit,boundProp.sourceSpan,boundProp.keySpan,boundProp.valueSpan)}parseEvent(name,expression,isAssignmentEvent,sourceSpan,handlerSpan,targetMatchableAttrs,targetEvents,keySpan){0===name.length&&this._reportError("Event name is missing in binding",sourceSpan),isAnimationLabel(name)?(name=name.slice(1),void 0!==keySpan&&(keySpan=moveParseSourceSpan(keySpan,new AbsoluteSourceSpan(keySpan.start.offset+1,keySpan.end.offset))),this._parseAnimationEvent(name,expression,sourceSpan,handlerSpan,targetEvents,keySpan)):this._parseRegularEvent(name,expression,isAssignmentEvent,sourceSpan,handlerSpan,targetMatchableAttrs,targetEvents,keySpan)}calcPossibleSecurityContexts(selector,propName,isAttribute){const prop=this._schemaRegistry.getMappedPropName(propName);return calcPossibleSecurityContexts(this._schemaRegistry,selector,prop,isAttribute)}_parseAnimationEvent(name,expression,sourceSpan,handlerSpan,targetEvents,keySpan){const matches=function splitAtPeriod(input,defaultValues){return _splitAt(input,".",defaultValues)}(name,[name,""]),eventName=matches[0],phase=matches[1].toLowerCase(),ast=this._parseAction(expression,handlerSpan);targetEvents.push(new ParsedEvent(eventName,phase,1,ast,sourceSpan,handlerSpan,keySpan)),0===eventName.length&&this._reportError("Animation event name is missing in binding",sourceSpan),phase?"start"!==phase&&"done"!==phase&&this._reportError(`The provided animation output phase value "${phase}" for "@${eventName}" is not supported (use start or done)`,sourceSpan):this._reportError(`The animation trigger output event (@${eventName}) is missing its phase value name (start or done are currently supported)`,sourceSpan)}_parseRegularEvent(name,expression,isAssignmentEvent,sourceSpan,handlerSpan,targetMatchableAttrs,targetEvents,keySpan){const[target,eventName]=function splitAtColon(input,defaultValues){return _splitAt(input,":",defaultValues)}(name,[null,name]),prevErrorCount=this.errors.length,ast=this._parseAction(expression,handlerSpan),isValid=this.errors.length===prevErrorCount;targetMatchableAttrs.push([name,ast.source]),isAssignmentEvent&&isValid&&!this._isAllowedAssignmentEvent(ast)&&this._reportError("Unsupported expression in a two-way binding",sourceSpan),targetEvents.push(new ParsedEvent(eventName,target,isAssignmentEvent?2:0,ast,sourceSpan,handlerSpan,keySpan))}_parseAction(value,sourceSpan){const sourceInfo=(sourceSpan&&sourceSpan.start||"(unknown").toString(),absoluteOffset=sourceSpan&&sourceSpan.start?sourceSpan.start.offset:0;try{const ast=this._exprParser.parseAction(value,sourceInfo,absoluteOffset,this._interpolationConfig);return ast&&this._reportExpressionParserErrors(ast.errors,sourceSpan),!ast||ast.ast instanceof EmptyExpr$1?(this._reportError("Empty expressions are not allowed",sourceSpan),this._exprParser.wrapLiteralPrimitive("ERROR",sourceInfo,absoluteOffset)):ast}catch(e){return this._reportError(`${e}`,sourceSpan),this._exprParser.wrapLiteralPrimitive("ERROR",sourceInfo,absoluteOffset)}}_reportError(message,sourceSpan,level=ParseErrorLevel.ERROR){this.errors.push(new ParseError(sourceSpan,message,level))}_reportExpressionParserErrors(errors,sourceSpan){for(const error of errors)this._reportError(error.message,sourceSpan)}_validatePropertyOrAttributeName(propName,sourceSpan,isAttr){const report=isAttr?this._schemaRegistry.validateAttribute(propName):this._schemaRegistry.validateProperty(propName);report.error&&this._reportError(report.msg,sourceSpan,ParseErrorLevel.ERROR)}_isAllowedAssignmentEvent(ast){return ast instanceof ASTWithSource?this._isAllowedAssignmentEvent(ast.ast):ast instanceof NonNullAssert?this._isAllowedAssignmentEvent(ast.expression):ast instanceof PropertyRead||ast instanceof KeyedRead||(ast instanceof Binary?("&&"===ast.operation||"||"===ast.operation||"??"===ast.operation)&&(ast.right instanceof PropertyRead||ast.right instanceof KeyedRead):ast instanceof Conditional||ast instanceof PrefixNot)}}function isAnimationLabel(name){return"@"==name[0]}function calcPossibleSecurityContexts(registry,selector,propName,isAttribute){const ctxs=[];return CssSelector.parse(selector).forEach((selector=>{const elementNames=selector.element?[selector.element]:registry.allKnownElementNames(),notElementNames=new Set(selector.notSelectors.filter((selector=>selector.isElementSelector())).map((selector=>selector.element))),possibleElementNames=elementNames.filter((elementName=>!notElementNames.has(elementName)));ctxs.push(...possibleElementNames.map((elementName=>registry.securityContext(elementName,propName,isAttribute))))})),0===ctxs.length?[SecurityContext.NONE]:Array.from(new Set(ctxs)).sort()}function moveParseSourceSpan(sourceSpan,absoluteSpan){const startDiff=absoluteSpan.start-sourceSpan.start.offset,endDiff=absoluteSpan.end-sourceSpan.end.offset;return new ParseSourceSpan(sourceSpan.start.moveBy(startDiff),sourceSpan.end.moveBy(endDiff),sourceSpan.fullStart.moveBy(startDiff),sourceSpan.details)}const URL_WITH_SCHEMA_REGEXP=/^([^:/?#]+):/;function preparseElement(ast){let selectAttr=null,hrefAttr=null,relAttr=null,nonBindable=!1,projectAs="";ast.attrs.forEach((attr=>{const lcAttrName=attr.name.toLowerCase();"select"==lcAttrName?selectAttr=attr.value:"href"==lcAttrName?hrefAttr=attr.value:"rel"==lcAttrName?relAttr=attr.value:"ngNonBindable"==attr.name?nonBindable=!0:"ngProjectAs"==attr.name&&attr.value.length>0&&(projectAs=attr.value)})),selectAttr=function normalizeNgContentSelect(selectAttr){if(null===selectAttr||0===selectAttr.length)return"*";return selectAttr}(selectAttr);const nodeName=ast.name.toLowerCase();let type=PreparsedElementType.OTHER;return isNgContent(nodeName)?type=PreparsedElementType.NG_CONTENT:"style"==nodeName?type=PreparsedElementType.STYLE:"script"==nodeName?type=PreparsedElementType.SCRIPT:"link"==nodeName&&"stylesheet"==relAttr&&(type=PreparsedElementType.STYLESHEET),new PreparsedElement(type,selectAttr,hrefAttr,nonBindable,projectAs)}var PreparsedElementType;!function(PreparsedElementType){PreparsedElementType[PreparsedElementType.NG_CONTENT=0]="NG_CONTENT",PreparsedElementType[PreparsedElementType.STYLE=1]="STYLE",PreparsedElementType[PreparsedElementType.STYLESHEET=2]="STYLESHEET",PreparsedElementType[PreparsedElementType.SCRIPT=3]="SCRIPT",PreparsedElementType[PreparsedElementType.OTHER=4]="OTHER"}(PreparsedElementType||(PreparsedElementType={}));class PreparsedElement{constructor(type,selectAttr,hrefAttr,nonBindable,projectAs){this.type=type,this.selectAttr=selectAttr,this.hrefAttr=hrefAttr,this.nonBindable=nonBindable,this.projectAs=projectAs}}const FOR_LOOP_EXPRESSION_PATTERN=/^\s*([0-9A-Za-z_$]*)\s+of\s+([\S\s]*)/,FOR_LOOP_TRACK_PATTERN=/^track\s+([\S\s]*)/,CONDITIONAL_ALIAS_PATTERN=/^(as\s)+(.*)/,ELSE_IF_PATTERN=/^else[^\S\r\n]+if/,FOR_LOOP_LET_PATTERN=/^let\s+([\S\s]*)/,CHARACTERS_IN_SURROUNDING_WHITESPACE_PATTERN=/(\s*)(\S+)(\s*)/,ALLOWED_FOR_LOOP_LET_VARIABLES=new Set(["$index","$first","$last","$even","$odd","$count"]);function isConnectedForLoopBlock(name){return"empty"===name}function isConnectedIfLoopBlock(name){return"else"===name||ELSE_IF_PATTERN.test(name)}function createIfBlock(ast,connectedBlocks,visitor,bindingParser){const errors=function validateIfConnectedBlocks(connectedBlocks){const errors=[];let hasElse=!1;for(let i=0;i1&&i0&&errors.push(new ParseError(block.sourceSpan,"@else block cannot have parameters")),hasElse=!0):ELSE_IF_PATTERN.test(block.name)||errors.push(new ParseError(block.sourceSpan,`Unrecognized conditional block @${block.name}`))}return errors}(connectedBlocks),branches=[],mainBlockParams=parseConditionalBlockParameters(ast,errors,bindingParser);null!==mainBlockParams&&branches.push(new IfBlockBranch(mainBlockParams.expression,visitAll(visitor,ast.children,ast.children),mainBlockParams.expressionAlias,ast.sourceSpan,ast.startSourceSpan,ast.endSourceSpan,ast.nameSpan,ast.i18n));for(const block of connectedBlocks)if(ELSE_IF_PATTERN.test(block.name)){const params=parseConditionalBlockParameters(block,errors,bindingParser);if(null!==params){const children=visitAll(visitor,block.children,block.children);branches.push(new IfBlockBranch(params.expression,children,params.expressionAlias,block.sourceSpan,block.startSourceSpan,block.endSourceSpan,block.nameSpan,block.i18n))}}else if("else"===block.name){const children=visitAll(visitor,block.children,block.children);branches.push(new IfBlockBranch(null,children,null,block.sourceSpan,block.startSourceSpan,block.endSourceSpan,block.nameSpan,block.i18n))}const ifBlockStartSourceSpan=branches.length>0?branches[0].startSourceSpan:ast.startSourceSpan,ifBlockEndSourceSpan=branches.length>0?branches[branches.length-1].endSourceSpan:ast.endSourceSpan;let wholeSourceSpan=ast.sourceSpan;const lastBranch=branches[branches.length-1];return void 0!==lastBranch&&(wholeSourceSpan=new ParseSourceSpan(ifBlockStartSourceSpan.start,lastBranch.sourceSpan.end)),{node:new IfBlock(branches,wholeSourceSpan,ast.startSourceSpan,ifBlockEndSourceSpan,ast.nameSpan),errors}}function createForLoop(ast,connectedBlocks,visitor,bindingParser){const errors=[],params=function parseForLoopParameters(block,errors,bindingParser){if(0===block.parameters.length)return errors.push(new ParseError(block.sourceSpan,"@for loop does not have an expression")),null;const[expressionParam,...secondaryParams]=block.parameters,match=function stripOptionalParentheses(param,errors){const expression=param.expression,spaceRegex=/^\s$/;let openParens=0,start=0,end=expression.length-1;for(let i=0;i-1;i--){const char=expression[i];if(")"!==char){if(spaceRegex.test(char))continue;break}if(end=i,openParens--,0===openParens)break}if(0!==openParens)return errors.push(new ParseError(param.sourceSpan,"Unclosed parentheses in expression")),null;return expression.slice(start,end)}(expressionParam,errors)?.match(FOR_LOOP_EXPRESSION_PATTERN);if(!match||0===match[2].trim().length)return errors.push(new ParseError(expressionParam.sourceSpan,'Cannot parse expression. @for loop expression must match the pattern " of "')),null;const[,itemName,rawExpression]=match,variableName=expressionParam.expression.split(" ")[0],variableSpan=new ParseSourceSpan(expressionParam.sourceSpan.start,expressionParam.sourceSpan.start.moveBy(variableName.length)),result={itemName:new Variable(itemName,"$implicit",variableSpan,variableSpan),trackBy:null,expression:parseBlockParameterToBinding(expressionParam,bindingParser,rawExpression),context:{}};for(const param of secondaryParams){const letMatch=param.expression.match(FOR_LOOP_LET_PATTERN);if(null!==letMatch){const variablesSpan=new ParseSourceSpan(param.sourceSpan.start.moveBy(letMatch[0].length-letMatch[1].length),param.sourceSpan.end);parseLetParameter(param.sourceSpan,letMatch[1],variablesSpan,result.context,errors);continue}const trackMatch=param.expression.match(FOR_LOOP_TRACK_PATTERN);if(null===trackMatch)errors.push(new ParseError(param.sourceSpan,`Unrecognized @for loop paramater "${param.expression}"`));else if(null!==result.trackBy)errors.push(new ParseError(param.sourceSpan,'@for loop can only have one "track" expression'));else{const expression=parseBlockParameterToBinding(param,bindingParser,trackMatch[1]);expression.ast instanceof EmptyExpr$1&&errors.push(new ParseError(param.sourceSpan,'@for loop must have a "track" expression'));const keywordSpan=new ParseSourceSpan(param.sourceSpan.start,param.sourceSpan.start.moveBy(5));result.trackBy={expression,keywordSpan}}}for(const variableName of ALLOWED_FOR_LOOP_LET_VARIABLES)if(!result.context.hasOwnProperty(variableName)){const emptySpanAfterForBlockStart=new ParseSourceSpan(block.startSourceSpan.end,block.startSourceSpan.end);result.context[variableName]=new Variable(variableName,variableName,emptySpanAfterForBlockStart,emptySpanAfterForBlockStart)}return result}(ast,errors,bindingParser);let node=null,empty=null;for(const block of connectedBlocks)"empty"===block.name?null!==empty?errors.push(new ParseError(block.sourceSpan,"@for loop can only have one @empty block")):block.parameters.length>0?errors.push(new ParseError(block.sourceSpan,"@empty block cannot have parameters")):empty=new ForLoopBlockEmpty(visitAll(visitor,block.children,block.children),block.sourceSpan,block.startSourceSpan,block.endSourceSpan,block.nameSpan,block.i18n):errors.push(new ParseError(block.sourceSpan,`Unrecognized @for loop block "${block.name}"`));if(null!==params)if(null===params.trackBy)errors.push(new ParseError(ast.sourceSpan,'@for loop must have a "track" expression'));else{const endSpan=empty?.endSourceSpan??ast.endSourceSpan,sourceSpan=new ParseSourceSpan(ast.sourceSpan.start,endSpan?.end??ast.sourceSpan.end);node=new ForLoopBlock(params.itemName,params.expression,params.trackBy.expression,params.trackBy.keywordSpan,params.context,visitAll(visitor,ast.children,ast.children),empty,sourceSpan,ast.sourceSpan,ast.startSourceSpan,endSpan,ast.nameSpan,ast.i18n)}return{node,errors}}function createSwitchBlock(ast,visitor,bindingParser){const errors=function validateSwitchBlock(ast){const errors=[];let hasDefault=!1;if(1!==ast.parameters.length)return errors.push(new ParseError(ast.sourceSpan,"@switch block must have exactly one parameter")),errors;for(const node of ast.children)node instanceof Comment||node instanceof Text&&0===node.value.trim().length||(node instanceof Block&&("case"===node.name||"default"===node.name)?"default"===node.name?(hasDefault?errors.push(new ParseError(node.sourceSpan,"@switch block can only have one @default block")):node.parameters.length>0&&errors.push(new ParseError(node.sourceSpan,"@default block cannot have parameters")),hasDefault=!0):"case"===node.name&&1!==node.parameters.length&&errors.push(new ParseError(node.sourceSpan,"@case block must have exactly one parameter")):errors.push(new ParseError(node.sourceSpan,"@switch block can only contain @case and @default blocks")));return errors}(ast),primaryExpression=ast.parameters.length>0?parseBlockParameterToBinding(ast.parameters[0],bindingParser):bindingParser.parseBinding("",!1,ast.sourceSpan,0),cases=[],unknownBlocks=[];let defaultCase=null;for(const node of ast.children){if(!(node instanceof Block))continue;if(("case"!==node.name||0===node.parameters.length)&&"default"!==node.name){unknownBlocks.push(new UnknownBlock(node.name,node.sourceSpan,node.nameSpan));continue}const expression="case"===node.name?parseBlockParameterToBinding(node.parameters[0],bindingParser):null,ast=new SwitchBlockCase(expression,visitAll(visitor,node.children,node.children),node.sourceSpan,node.startSourceSpan,node.endSourceSpan,node.nameSpan,node.i18n);null===expression?defaultCase=ast:cases.push(ast)}return null!==defaultCase&&cases.push(defaultCase),{node:new SwitchBlock(primaryExpression,cases,unknownBlocks,ast.sourceSpan,ast.startSourceSpan,ast.endSourceSpan,ast.nameSpan),errors}}function parseLetParameter(sourceSpan,expression,span,context,errors){const parts=expression.split(",");let startSpan=span.start;for(const part of parts){const expressionParts=part.split("="),name=2===expressionParts.length?expressionParts[0].trim():"",variableName=2===expressionParts.length?expressionParts[1].trim():"";if(0===name.length||0===variableName.length)errors.push(new ParseError(sourceSpan,'Invalid @for loop "let" parameter. Parameter should match the pattern " = "'));else if(ALLOWED_FOR_LOOP_LET_VARIABLES.has(variableName))if(context.hasOwnProperty(variableName))errors.push(new ParseError(sourceSpan,`Duplicate "let" parameter variable "${variableName}"`));else{const[,keyLeadingWhitespace,keyName]=expressionParts[0].match(CHARACTERS_IN_SURROUNDING_WHITESPACE_PATTERN)??[],keySpan=void 0!==keyLeadingWhitespace&&2===expressionParts.length?new ParseSourceSpan(startSpan.moveBy(keyLeadingWhitespace.length),startSpan.moveBy(keyLeadingWhitespace.length+keyName.length)):span;let valueSpan;if(2===expressionParts.length){const[,valueLeadingWhitespace,implicit]=expressionParts[1].match(CHARACTERS_IN_SURROUNDING_WHITESPACE_PATTERN)??[];valueSpan=void 0!==valueLeadingWhitespace?new ParseSourceSpan(startSpan.moveBy(expressionParts[0].length+1+valueLeadingWhitespace.length),startSpan.moveBy(expressionParts[0].length+1+valueLeadingWhitespace.length+implicit.length)):void 0}const sourceSpan=new ParseSourceSpan(keySpan.start,valueSpan?.end??keySpan.end);context[variableName]=new Variable(name,variableName,sourceSpan,keySpan,valueSpan)}else errors.push(new ParseError(sourceSpan,`Unknown "let" parameter variable "${variableName}". The allowed variables are: ${Array.from(ALLOWED_FOR_LOOP_LET_VARIABLES).join(", ")}`));startSpan=startSpan.moveBy(part.length+1)}}function parseBlockParameterToBinding(ast,bindingParser,part){let start,end;return"string"==typeof part?(start=Math.max(0,ast.expression.lastIndexOf(part)),end=start+part.length):(start=0,end=ast.expression.length),bindingParser.parseBinding(ast.expression.slice(start,end),!1,ast.sourceSpan,ast.sourceSpan.start.offset+start)}function parseConditionalBlockParameters(block,errors,bindingParser){if(0===block.parameters.length)return errors.push(new ParseError(block.sourceSpan,"Conditional block does not have an expression")),null;const expression=parseBlockParameterToBinding(block.parameters[0],bindingParser);let expressionAlias=null;for(let i=1;i0&&this.index0)throw new Error(`"${OnTriggerType.IDLE}" trigger cannot have parameters`);return new IdleDeferredTrigger(nameSpan,sourceSpan,prefetchSpan,onSourceSpan)}(parameters,nameSpan,sourceSpan,prefetchSourceSpan,onSourceSpan));break;case OnTriggerType.TIMER:this.trackTrigger("timer",function createTimerTrigger(parameters,nameSpan,sourceSpan,prefetchSpan,onSourceSpan){if(1!==parameters.length)throw new Error(`"${OnTriggerType.TIMER}" trigger must have exactly one parameter`);const delay=parseDeferredTime(parameters[0]);if(null===delay)throw new Error(`Could not parse time value of trigger "${OnTriggerType.TIMER}"`);return new TimerDeferredTrigger(delay,nameSpan,sourceSpan,prefetchSpan,onSourceSpan)}(parameters,nameSpan,sourceSpan,this.prefetchSpan,this.onSourceSpan));break;case OnTriggerType.INTERACTION:this.trackTrigger("interaction",function createInteractionTrigger(parameters,nameSpan,sourceSpan,prefetchSpan,onSourceSpan,placeholder){return validateReferenceBasedTrigger(OnTriggerType.INTERACTION,parameters,placeholder),new InteractionDeferredTrigger(parameters[0]??null,nameSpan,sourceSpan,prefetchSpan,onSourceSpan)}(parameters,nameSpan,sourceSpan,this.prefetchSpan,this.onSourceSpan,this.placeholder));break;case OnTriggerType.IMMEDIATE:this.trackTrigger("immediate",function createImmediateTrigger(parameters,nameSpan,sourceSpan,prefetchSpan,onSourceSpan){if(parameters.length>0)throw new Error(`"${OnTriggerType.IMMEDIATE}" trigger cannot have parameters`);return new ImmediateDeferredTrigger(nameSpan,sourceSpan,prefetchSpan,onSourceSpan)}(parameters,nameSpan,sourceSpan,this.prefetchSpan,this.onSourceSpan));break;case OnTriggerType.HOVER:this.trackTrigger("hover",function createHoverTrigger(parameters,nameSpan,sourceSpan,prefetchSpan,onSourceSpan,placeholder){return validateReferenceBasedTrigger(OnTriggerType.HOVER,parameters,placeholder),new HoverDeferredTrigger(parameters[0]??null,nameSpan,sourceSpan,prefetchSpan,onSourceSpan)}(parameters,nameSpan,sourceSpan,this.prefetchSpan,this.onSourceSpan,this.placeholder));break;case OnTriggerType.VIEWPORT:this.trackTrigger("viewport",function createViewportTrigger(parameters,nameSpan,sourceSpan,prefetchSpan,onSourceSpan,placeholder){return validateReferenceBasedTrigger(OnTriggerType.VIEWPORT,parameters,placeholder),new ViewportDeferredTrigger(parameters[0]??null,nameSpan,sourceSpan,prefetchSpan,onSourceSpan)}(parameters,nameSpan,sourceSpan,this.prefetchSpan,this.onSourceSpan,this.placeholder));break;default:throw new Error(`Unrecognized trigger type "${identifier}"`)}}catch(e){this.error(identifier,e.message)}}consumeParameters(){const parameters=[];if(!this.token().isCharacter(40))return this.unexpectedToken(this.token()),parameters;this.advance();const commaDelimStack=[];let current="";for(;this.index0&&token.isCharacter(commaDelimStack[commaDelimStack.length-1])&&commaDelimStack.pop(),0===commaDelimStack.length&&token.isCharacter(44)&¤t.length>0?(parameters.push(current),current="",this.advance()):(current+=this.tokenText(),this.advance())}return(!this.token().isCharacter(41)||commaDelimStack.length>0)&&this.error(this.token(),"Unexpected end of expression"),this.index1)throw new Error(`"${type}" trigger can only have zero or one parameters`);if(0===parameters.length){if(null===placeholder)throw new Error(`"${type}" trigger with no parameters can only be placed on an @defer that has a @placeholder block`);if(1!==placeholder.children.length||!(placeholder.children[0]instanceof Element$1))throw new Error(`"${type}" trigger with no parameters can only be placed on an @defer that has a @placeholder block with exactly one root element node`)}}function getTriggerParametersStart(value,startPosition=0){let hasFoundSeparator=!1;for(let i=startPosition;i0){const lastConnectedBlock=connectedBlocks[connectedBlocks.length-1];lastEndSourceSpan=lastConnectedBlock.endSourceSpan,endOfLastSourceSpan=lastConnectedBlock.sourceSpan.end}const sourceSpanWithConnectedBlocks=new ParseSourceSpan(ast.sourceSpan.start,endOfLastSourceSpan);return{node:new DeferredBlock(visitAll(visitor,ast.children,ast.children),triggers,prefetchTriggers,placeholder,loading,error,ast.nameSpan,sourceSpanWithConnectedBlocks,ast.sourceSpan,ast.startSourceSpan,lastEndSourceSpan,ast.i18n),errors}}function parsePlaceholderBlock(ast,visitor){let minimumTime=null;for(const param of ast.parameters){if(!MINIMUM_PARAMETER_PATTERN.test(param.expression))throw new Error(`Unrecognized parameter in @placeholder block: "${param.expression}"`);{if(null!=minimumTime)throw new Error('@placeholder block can only have one "minimum" parameter');const parsedTime=parseDeferredTime(param.expression.slice(getTriggerParametersStart(param.expression)));if(null===parsedTime)throw new Error('Could not parse time value of parameter "minimum"');minimumTime=parsedTime}}return new DeferredBlockPlaceholder(visitAll(visitor,ast.children,ast.children),minimumTime,ast.nameSpan,ast.sourceSpan,ast.startSourceSpan,ast.endSourceSpan,ast.i18n)}function parseLoadingBlock(ast,visitor){let afterTime=null,minimumTime=null;for(const param of ast.parameters)if(AFTER_PARAMETER_PATTERN.test(param.expression)){if(null!=afterTime)throw new Error('@loading block can only have one "after" parameter');const parsedTime=parseDeferredTime(param.expression.slice(getTriggerParametersStart(param.expression)));if(null===parsedTime)throw new Error('Could not parse time value of parameter "after"');afterTime=parsedTime}else{if(!MINIMUM_PARAMETER_PATTERN.test(param.expression))throw new Error(`Unrecognized parameter in @loading block: "${param.expression}"`);{if(null!=minimumTime)throw new Error('@loading block can only have one "minimum" parameter');const parsedTime=parseDeferredTime(param.expression.slice(getTriggerParametersStart(param.expression)));if(null===parsedTime)throw new Error('Could not parse time value of parameter "minimum"');minimumTime=parsedTime}}return new DeferredBlockLoading(visitAll(visitor,ast.children,ast.children),afterTime,minimumTime,ast.nameSpan,ast.sourceSpan,ast.startSourceSpan,ast.endSourceSpan,ast.i18n)}function parseErrorBlock(ast,visitor){if(ast.parameters.length>0)throw new Error("@error block cannot have parameters");return new DeferredBlockError(visitAll(visitor,ast.children,ast.children),ast.nameSpan,ast.sourceSpan,ast.startSourceSpan,ast.endSourceSpan,ast.i18n)}const BIND_NAME_REGEXP=/^(?:(bind-)|(let-)|(ref-|#)|(on-)|(bindon-)|(@))(.*)$/,BINDING_DELIMS_BANANA_BOX={start:"[(",end:")]"},BINDING_DELIMS_PROPERTY={start:"[",end:"]"},BINDING_DELIMS_EVENT={start:"(",end:")"};class HtmlAstToIvyAst{constructor(bindingParser,options){this.bindingParser=bindingParser,this.options=options,this.errors=[],this.styles=[],this.styleUrls=[],this.ngContentSelectors=[],this.commentNodes=[],this.inI18nBlock=!1,this.processedNodes=new Set}visitElement(element){const isI18nRootElement=isI18nRootNode(element.i18n);isI18nRootElement&&(this.inI18nBlock&&this.reportError("Cannot mark an element as translatable inside of a translatable section. Please remove the nested i18n marker.",element.sourceSpan),this.inI18nBlock=!0);const preparsedElement=preparseElement(element);if(preparsedElement.type===PreparsedElementType.SCRIPT)return null;if(preparsedElement.type===PreparsedElementType.STYLE){const contents=function textContents(node){return 1===node.children.length&&node.children[0]instanceof Text?node.children[0].value:null}(element);return null!==contents&&this.styles.push(contents),null}if(preparsedElement.type===PreparsedElementType.STYLESHEET&&function isStyleUrlResolvable(url){if(null==url||0===url.length||"/"==url[0])return!1;const schemeMatch=url.match(URL_WITH_SCHEMA_REGEXP);return null===schemeMatch||"package"==schemeMatch[1]||"asset"==schemeMatch[1]}(preparsedElement.hrefAttr))return this.styleUrls.push(preparsedElement.hrefAttr),null;const isTemplateElement=isNgTemplate(element.name),parsedProperties=[],boundEvents=[],variables=[],references=[],attributes=[],i18nAttrsMeta={},templateParsedProperties=[],templateVariables=[];let children,parsedElement,elementHasInlineTemplate=!1;for(const attribute of element.attrs){let hasBinding=!1;const normalizedName=normalizeAttributeName(attribute.name);let isTemplateBinding=!1;if(attribute.i18n&&(i18nAttrsMeta[attribute.name]=attribute.i18n),normalizedName.startsWith("*")){elementHasInlineTemplate&&this.reportError("Can't have multiple template bindings on one element. Use only one attribute prefixed with *",attribute.sourceSpan),isTemplateBinding=!0,elementHasInlineTemplate=!0;const templateValue=attribute.value,templateKey=normalizedName.substring(1),parsedVariables=[],absoluteValueOffset=attribute.valueSpan?attribute.valueSpan.start.offset:attribute.sourceSpan.start.offset+attribute.name.length;this.bindingParser.parseInlineTemplateBinding(templateKey,templateValue,attribute.sourceSpan,absoluteValueOffset,[],templateParsedProperties,parsedVariables,!0),templateVariables.push(...parsedVariables.map((v=>new Variable(v.name,v.value,v.sourceSpan,v.keySpan,v.valueSpan))))}else hasBinding=this.parseAttribute(isTemplateElement,attribute,[],parsedProperties,boundEvents,variables,references);hasBinding||isTemplateBinding||attributes.push(this.visitAttribute(attribute))}if(children=preparsedElement.nonBindable?visitAll(NON_BINDABLE_VISITOR,element.children).flat(1/0):visitAll(this,element.children,element.children),preparsedElement.type===PreparsedElementType.NG_CONTENT){element.children&&!element.children.every((node=>function isEmptyTextNode(node){return node instanceof Text&&0==node.value.trim().length}(node)||function isCommentNode(node){return node instanceof Comment}(node)))&&this.reportError(" element cannot have content.",element.sourceSpan);const selector=preparsedElement.selectAttr,attrs=element.attrs.map((attr=>this.visitAttribute(attr)));parsedElement=new Content(selector,attrs,element.sourceSpan,element.i18n),this.ngContentSelectors.push(selector)}else if(isTemplateElement){const attrs=this.extractAttributes(element.name,parsedProperties,i18nAttrsMeta);parsedElement=new Template(element.name,attributes,attrs.bound,boundEvents,[],children,references,variables,element.sourceSpan,element.startSourceSpan,element.endSourceSpan,element.i18n)}else{const attrs=this.extractAttributes(element.name,parsedProperties,i18nAttrsMeta);parsedElement=new Element$1(element.name,attributes,attrs.bound,boundEvents,children,references,element.sourceSpan,element.startSourceSpan,element.endSourceSpan,element.i18n)}if(elementHasInlineTemplate){const attrs=this.extractAttributes("ng-template",templateParsedProperties,i18nAttrsMeta),templateAttrs=[];attrs.literal.forEach((attr=>templateAttrs.push(attr))),attrs.bound.forEach((attr=>templateAttrs.push(attr)));const hoistedAttrs=parsedElement instanceof Element$1?{attributes:parsedElement.attributes,inputs:parsedElement.inputs,outputs:parsedElement.outputs}:{attributes:[],inputs:[],outputs:[]},i18n=isTemplateElement&&isI18nRootElement?void 0:element.i18n,name=parsedElement instanceof Template?null:parsedElement.name;parsedElement=new Template(name,hoistedAttrs.attributes,hoistedAttrs.inputs,hoistedAttrs.outputs,templateAttrs,[parsedElement],[],templateVariables,element.sourceSpan,element.startSourceSpan,element.endSourceSpan,i18n)}return isI18nRootElement&&(this.inI18nBlock=!1),parsedElement}visitAttribute(attribute){return new TextAttribute(attribute.name,attribute.value,attribute.sourceSpan,attribute.keySpan,attribute.valueSpan,attribute.i18n)}visitText(text){return this.processedNodes.has(text)?null:this._visitTextWithInterpolation(text.value,text.sourceSpan,text.tokens,text.i18n)}visitExpansion(expansion){if(!expansion.i18n)return null;if(!isI18nRootNode(expansion.i18n))throw new Error(`Invalid type "${expansion.i18n.constructor}" for "i18n" property of ${expansion.sourceSpan.toString()}. Expected a "Message"`);const message=expansion.i18n,vars={},placeholders={};return Object.keys(message.placeholders).forEach((key=>{const value=message.placeholders[key];if(key.startsWith("VAR_")){const formattedKey=key.trim(),ast=this.bindingParser.parseInterpolationExpression(value.text,value.sourceSpan);vars[formattedKey]=new BoundText(ast,value.sourceSpan)}else placeholders[key]=this._visitTextWithInterpolation(value.text,value.sourceSpan,null)})),new Icu$1(vars,placeholders,expansion.sourceSpan,message)}visitExpansionCase(expansionCase){return null}visitComment(comment){return this.options.collectCommentNodes&&this.commentNodes.push(new Comment$1(comment.value||"",comment.sourceSpan)),null}visitBlockParameter(){return null}visitBlock(block,context){const index=Array.isArray(context)?context.indexOf(block):-1;if(-1===index)throw new Error("Visitor invoked incorrectly. Expecting visitBlock to be invoked siblings array as its context");if(this.processedNodes.has(block))return null;let result=null;switch(block.name){case"defer":result=createDeferredBlock(block,this.findConnectedBlocks(index,context,isConnectedDeferLoopBlock),this,this.bindingParser);break;case"switch":result=createSwitchBlock(block,this,this.bindingParser);break;case"for":result=createForLoop(block,this.findConnectedBlocks(index,context,isConnectedForLoopBlock),this,this.bindingParser);break;case"if":result=createIfBlock(block,this.findConnectedBlocks(index,context,isConnectedIfLoopBlock),this,this.bindingParser);break;default:let errorMessage;isConnectedDeferLoopBlock(block.name)?(errorMessage=`@${block.name} block can only be used after an @defer block.`,this.processedNodes.add(block)):isConnectedForLoopBlock(block.name)?(errorMessage=`@${block.name} block can only be used after an @for block.`,this.processedNodes.add(block)):isConnectedIfLoopBlock(block.name)?(errorMessage=`@${block.name} block can only be used after an @if or @else if block.`,this.processedNodes.add(block)):errorMessage=`Unrecognized block @${block.name}.`,result={node:new UnknownBlock(block.name,block.sourceSpan,block.nameSpan),errors:[new ParseError(block.sourceSpan,errorMessage)]}}return this.errors.push(...result.errors),result.node}findConnectedBlocks(primaryBlockIndex,siblings,predicate){const relatedBlocks=[];for(let i=primaryBlockIndex+1;i{const i18n=i18nPropsMeta[prop.name];if(prop.isLiteral)literal.push(new TextAttribute(prop.name,prop.expression.source||"",prop.sourceSpan,prop.keySpan,prop.valueSpan,i18n));else{const bep=this.bindingParser.createBoundElementProperty(elementName,prop,!0,!1);bound.push(BoundAttribute.fromBoundElementProperty(bep,i18n))}})),{bound,literal}}parseAttribute(isTemplateElement,attribute,matchableAttributes,parsedProperties,boundEvents,variables,references){const name=normalizeAttributeName(attribute.name),value=attribute.value,srcSpan=attribute.sourceSpan,absoluteOffset=attribute.valueSpan?attribute.valueSpan.start.offset:srcSpan.start.offset;function createKeySpan(srcSpan,prefix,identifier){const normalizationAdjustment=attribute.name.length-name.length,keySpanStart=srcSpan.start.moveBy(prefix.length+normalizationAdjustment),keySpanEnd=keySpanStart.moveBy(identifier.length);return new ParseSourceSpan(keySpanStart,keySpanEnd,keySpanStart,identifier)}const bindParts=name.match(BIND_NAME_REGEXP);if(bindParts){if(null!=bindParts[1]){const identifier=bindParts[7],keySpan=createKeySpan(srcSpan,bindParts[1],identifier);this.bindingParser.parsePropertyBinding(identifier,value,!1,!1,srcSpan,absoluteOffset,attribute.valueSpan,matchableAttributes,parsedProperties,keySpan)}else if(bindParts[2])if(isTemplateElement){const identifier=bindParts[7],keySpan=createKeySpan(srcSpan,bindParts[2],identifier);this.parseVariable(identifier,value,srcSpan,keySpan,attribute.valueSpan,variables)}else this.reportError('"let-" is only supported on ng-template elements.',srcSpan);else if(bindParts[3]){const identifier=bindParts[7],keySpan=createKeySpan(srcSpan,bindParts[3],identifier);this.parseReference(identifier,value,srcSpan,keySpan,attribute.valueSpan,references)}else if(bindParts[4]){const events=[],identifier=bindParts[7],keySpan=createKeySpan(srcSpan,bindParts[4],identifier);this.bindingParser.parseEvent(identifier,value,!1,srcSpan,attribute.valueSpan||srcSpan,matchableAttributes,events,keySpan),addEvents(events,boundEvents)}else if(bindParts[5]){const identifier=bindParts[7],keySpan=createKeySpan(srcSpan,bindParts[5],identifier);this.bindingParser.parsePropertyBinding(identifier,value,!1,!0,srcSpan,absoluteOffset,attribute.valueSpan,matchableAttributes,parsedProperties,keySpan),this.parseAssignmentEvent(identifier,value,srcSpan,attribute.valueSpan,matchableAttributes,boundEvents,keySpan)}else if(bindParts[6]){const keySpan=createKeySpan(srcSpan,"",name);this.bindingParser.parseLiteralAttr(name,value,srcSpan,absoluteOffset,attribute.valueSpan,matchableAttributes,parsedProperties,keySpan)}return!0}let delims=null;if(name.startsWith(BINDING_DELIMS_BANANA_BOX.start)?delims=BINDING_DELIMS_BANANA_BOX:name.startsWith(BINDING_DELIMS_PROPERTY.start)?delims=BINDING_DELIMS_PROPERTY:name.startsWith(BINDING_DELIMS_EVENT.start)&&(delims=BINDING_DELIMS_EVENT),null!==delims&&name.endsWith(delims.end)&&name.length>delims.start.length+delims.end.length){const identifier=name.substring(delims.start.length,name.length-delims.end.length),keySpan=createKeySpan(srcSpan,delims.start,identifier);if(delims.start===BINDING_DELIMS_BANANA_BOX.start)this.bindingParser.parsePropertyBinding(identifier,value,!1,!0,srcSpan,absoluteOffset,attribute.valueSpan,matchableAttributes,parsedProperties,keySpan),this.parseAssignmentEvent(identifier,value,srcSpan,attribute.valueSpan,matchableAttributes,boundEvents,keySpan);else if(delims.start===BINDING_DELIMS_PROPERTY.start)this.bindingParser.parsePropertyBinding(identifier,value,!1,!1,srcSpan,absoluteOffset,attribute.valueSpan,matchableAttributes,parsedProperties,keySpan);else{const events=[];this.bindingParser.parseEvent(identifier,value,!1,srcSpan,attribute.valueSpan||srcSpan,matchableAttributes,events,keySpan),addEvents(events,boundEvents)}return!0}const keySpan=createKeySpan(srcSpan,"",name);return this.bindingParser.parsePropertyInterpolation(name,value,srcSpan,attribute.valueSpan,matchableAttributes,parsedProperties,keySpan,attribute.valueTokens??null)}_visitTextWithInterpolation(value,sourceSpan,interpolatedTokens,i18n){const valueNoNgsp=replaceNgsp(value),expr=this.bindingParser.parseInterpolation(valueNoNgsp,sourceSpan,interpolatedTokens);return expr?new BoundText(expr,sourceSpan,i18n):new Text$3(valueNoNgsp,sourceSpan)}parseVariable(identifier,value,sourceSpan,keySpan,valueSpan,variables){identifier.indexOf("-")>-1?this.reportError('"-" is not allowed in variable names',sourceSpan):0===identifier.length&&this.reportError("Variable does not have a name",sourceSpan),variables.push(new Variable(identifier,value,sourceSpan,keySpan,valueSpan))}parseReference(identifier,value,sourceSpan,keySpan,valueSpan,references){identifier.indexOf("-")>-1?this.reportError('"-" is not allowed in reference names',sourceSpan):0===identifier.length?this.reportError("Reference does not have a name",sourceSpan):references.some((reference=>reference.name===identifier))&&this.reportError(`Reference "#${identifier}" is defined more than once`,sourceSpan),references.push(new Reference(identifier,value,sourceSpan,keySpan,valueSpan))}parseAssignmentEvent(name,expression,sourceSpan,valueSpan,targetMatchableAttrs,boundEvents,keySpan){const events=[];this.bindingParser.parseEvent(`${name}Change`,expression,!0,sourceSpan,valueSpan||sourceSpan,targetMatchableAttrs,events,keySpan),addEvents(events,boundEvents)}reportError(message,sourceSpan,level=ParseErrorLevel.ERROR){this.errors.push(new ParseError(sourceSpan,message,level))}}const NON_BINDABLE_VISITOR=new class NonBindableVisitor{visitElement(ast){const preparsedElement=preparseElement(ast);if(preparsedElement.type===PreparsedElementType.SCRIPT||preparsedElement.type===PreparsedElementType.STYLE||preparsedElement.type===PreparsedElementType.STYLESHEET)return null;const children=visitAll(this,ast.children,null);return new Element$1(ast.name,visitAll(this,ast.attrs),[],[],children,[],ast.sourceSpan,ast.startSourceSpan,ast.endSourceSpan)}visitComment(comment){return null}visitAttribute(attribute){return new TextAttribute(attribute.name,attribute.value,attribute.sourceSpan,attribute.keySpan,attribute.valueSpan,attribute.i18n)}visitText(text){return new Text$3(text.value,text.sourceSpan)}visitExpansion(expansion){return null}visitExpansionCase(expansionCase){return null}visitBlock(block,context){const nodes=[new Text$3(block.startSourceSpan.toString(),block.startSourceSpan),...visitAll(this,block.children)];return null!==block.endSourceSpan&&nodes.push(new Text$3(block.endSourceSpan.toString(),block.endSourceSpan)),nodes}visitBlockParameter(parameter,context){return null}};function normalizeAttributeName(attrName){return/^data-/i.test(attrName)?attrName.substring(5):attrName}function addEvents(events,boundEvents){boundEvents.push(...events.map((e=>BoundEvent.fromParsedEvent(e))))}var TagType;!function(TagType){TagType[TagType.ELEMENT=0]="ELEMENT",TagType[TagType.TEMPLATE=1]="TEMPLATE"}(TagType||(TagType={}));class I18nContext{constructor(index,ref,level=0,templateIndex=null,meta,registry){this.index=index,this.ref=ref,this.level=level,this.templateIndex=templateIndex,this.meta=meta,this.registry=registry,this.bindings=new Set,this.placeholders=new Map,this.isEmitted=!1,this._unresolvedCtxCount=0,this._registry=registry||function setupRegistry(){return{getUniqueId:getSeqNumberGenerator(),icus:new Map}}(),this.id=this._registry.getUniqueId()}appendTag(type,node,index,closed){if(node.isVoid&&closed)return;const ph=node.isVoid||!closed?node.startName:node.closeName,content={type,index,ctx:this.id,isVoid:node.isVoid,closed};updatePlaceholderMap(this.placeholders,ph,content)}appendBlockPart(node,index,closed){const ph=closed?node.closeName:node.startName,content={type:TagType.TEMPLATE,index,ctx:this.id,closed};updatePlaceholderMap(this.placeholders,ph,content)}get icus(){return this._registry.icus}get isRoot(){return 0===this.level}get isResolved(){return 0===this._unresolvedCtxCount}getSerializedPlaceholders(){const result=new Map;return this.placeholders.forEach(((values,key)=>result.set(key,values.map(serializePlaceholderValue)))),result}appendBinding(binding){this.bindings.add(binding)}appendIcu(name,ref){updatePlaceholderMap(this._registry.icus,name,ref)}appendBoundText(node){assembleBoundTextPlaceholders(node,this.bindings.size,this.id).forEach(((values,key)=>updatePlaceholderMap(this.placeholders,key,...values)))}appendTemplate(node,index){this.appendTag(TagType.TEMPLATE,node,index,!1),this.appendTag(TagType.TEMPLATE,node,index,!0),this._unresolvedCtxCount++}appendBlock(node,index){this.appendBlockPart(node,index,!1),this.appendBlockPart(node,index,!0),this._unresolvedCtxCount++}appendElement(node,index,closed){this.appendTag(TagType.ELEMENT,node,index,closed)}appendProjection(node,index){this.appendTag(TagType.ELEMENT,node,index,!1),this.appendTag(TagType.ELEMENT,node,index,!0)}forkChildContext(index,templateIndex,meta){return new I18nContext(index,this.ref,this.level+1,templateIndex,meta,this._registry)}reconcileChildContext(context){["start","close"].forEach((op=>{const key=context.meta[`${op}Name`],tag=(this.placeholders.get(key)||[]).find(findTemplateFn(this.id,context.templateIndex));tag&&(tag.ctx=context.id)}));context.placeholders.forEach(((values,key)=>{const phs=this.placeholders.get(key);if(!phs)return void this.placeholders.set(key,values);const tmplIdx=phs.findIndex(findTemplateFn(context.id,context.templateIndex));if(tmplIdx>=0){const isCloseTag=key.startsWith("CLOSE");if(key.endsWith("NG-TEMPLATE"))phs.splice(tmplIdx+(isCloseTag?0:1),0,...values);else{values[isCloseTag?values.length-1:0].tmpl=phs[tmplIdx],phs.splice(tmplIdx,1,...values)}}else phs.push(...values);this.placeholders.set(key,phs)})),this._unresolvedCtxCount--}}function wrap(symbol,index,contextId,closed){return wrapI18nPlaceholder(`${closed?"/":""}${symbol}${index}`,contextId)}function wrapTag(symbol,{index,ctx,isVoid},closed){return isVoid?wrap(symbol,index,ctx)+wrap(symbol,index,ctx,!0):wrap(symbol,index,ctx,closed)}function findTemplateFn(ctx,templateIndex){return token=>"object"==typeof token&&token.type===TagType.TEMPLATE&&token.index===templateIndex&&token.ctx===ctx}function serializePlaceholderValue(value){const element=(data,closed)=>wrapTag("#",data,closed),template=(data,closed)=>wrapTag("*",data,closed);switch(value.type){case TagType.ELEMENT:return value.closed?element(value,!0)+(value.tmpl?template(value.tmpl,!0):""):value.tmpl?template(value.tmpl)+element(value)+(value.isVoid?template(value.tmpl,!0):""):element(value);case TagType.TEMPLATE:return template(value,value.closed);default:return value}}const MIN_STYLING_BINDING_SLOTS_REQUIRED=2;class StylingBuilder{constructor(_directiveExpr){this._directiveExpr=_directiveExpr,this._hasInitialValues=!1,this.hasBindings=!1,this.hasBindingsWithPipes=!1,this._classMapInput=null,this._styleMapInput=null,this._singleStyleInputs=null,this._singleClassInputs=null,this._lastStylingInput=null,this._firstStylingInput=null,this._stylesIndex=new Map,this._classesIndex=new Map,this._initialStyleValues=[],this._initialClassValues=[]}registerBoundInput(input){let binding=null,name=input.name;switch(input.type){case 0:binding=this.registerInputBasedOnName(name,input.value,input.sourceSpan);break;case 3:binding=this.registerStyleInput(name,!1,input.value,input.sourceSpan,input.unit);break;case 2:binding=this.registerClassInput(name,!1,input.value,input.sourceSpan)}return!!binding}registerInputBasedOnName(name,expression,sourceSpan){let binding=null;const prefix=name.substring(0,6),isStyle="style"===name||"style."===prefix||"style!"===prefix;if(isStyle||!isStyle&&("class"===name||"class."===prefix||"class!"===prefix)){const isMapBased="."!==name.charAt(5),property=name.slice(isMapBased?5:6);binding=isStyle?this.registerStyleInput(property,isMapBased,expression,sourceSpan):this.registerClassInput(property,isMapBased,expression,sourceSpan)}return binding}registerStyleInput(name,isMapBased,value,sourceSpan,suffix){if(isEmptyExpression(value))return null;(function isCssCustomProperty(name){return name.startsWith("--")})(name)||(name=hyphenate(name));const{property,hasOverrideFlag,suffix:bindingSuffix}=parseProperty(name),entry={name:property,suffix:suffix="string"==typeof suffix&&0!==suffix.length?suffix:bindingSuffix,value,sourceSpan,hasOverrideFlag};return isMapBased?this._styleMapInput=entry:((this._singleStyleInputs=this._singleStyleInputs||[]).push(entry),registerIntoMap(this._stylesIndex,property)),this._lastStylingInput=entry,this._firstStylingInput=this._firstStylingInput||entry,this._checkForPipes(value),this.hasBindings=!0,entry}registerClassInput(name,isMapBased,value,sourceSpan){if(isEmptyExpression(value))return null;const{property,hasOverrideFlag}=parseProperty(name),entry={name:property,value,sourceSpan,hasOverrideFlag,suffix:null};return isMapBased?this._classMapInput=entry:((this._singleClassInputs=this._singleClassInputs||[]).push(entry),registerIntoMap(this._classesIndex,property)),this._lastStylingInput=entry,this._firstStylingInput=this._firstStylingInput||entry,this._checkForPipes(value),this.hasBindings=!0,entry}_checkForPipes(value){value instanceof ASTWithSource&&value.ast instanceof BindingPipe&&(this.hasBindingsWithPipes=!0)}registerStyleAttr(value){this._initialStyleValues=parse(value),this._hasInitialValues=!0}registerClassAttr(value){this._initialClassValues=value.trim().split(/\s+/g),this._hasInitialValues=!0}populateInitialStylingAttrs(attrs){if(this._initialClassValues.length){attrs.push(literal(1));for(let i=0;i{const convertResult=convertFn(mapValue);return Array.isArray(convertResult)?convertResult:[convertResult]}}]}}_buildSingleInputs(reference,inputs,valueConverter,getInterpolationExpressionFn,isClassBased){const instructions=[];return inputs.forEach((input=>{const previousInstruction=instructions[instructions.length-1],value=input.value.visit(valueConverter);let referenceForCall=reference,totalBindingSlotsRequired=MIN_STYLING_BINDING_SLOTS_REQUIRED;value instanceof Interpolation$1&&(totalBindingSlotsRequired+=value.expressions.length,getInterpolationExpressionFn&&(referenceForCall=getInterpolationExpressionFn(value)));const call={sourceSpan:input.sourceSpan,allocateBindingSlots:totalBindingSlotsRequired,supportsInterpolation:!!getInterpolationExpressionFn,params:convertFn=>{const params=[];params.push(literal(input.name));const convertResult=convertFn(value);return Array.isArray(convertResult)?params.push(...convertResult):params.push(convertResult),isClassBased||null===input.suffix||params.push(literal(input.suffix)),params}};previousInstruction&&previousInstruction.reference===referenceForCall?previousInstruction.calls.push(call):instructions.push({reference:referenceForCall,calls:[call]})})),instructions}_buildClassInputs(valueConverter){return this._singleClassInputs?this._buildSingleInputs(Identifiers.classProp,this._singleClassInputs,valueConverter,null,!0):[]}_buildStyleInputs(valueConverter){return this._singleStyleInputs?this._buildSingleInputs(Identifiers.styleProp,this._singleStyleInputs,valueConverter,getStylePropInterpolationExpression,!1):[]}buildUpdateLevelInstructions(valueConverter){const instructions=[];if(this.hasBindings){const styleMapInstruction=this.buildStyleMapInstruction(valueConverter);styleMapInstruction&&instructions.push(styleMapInstruction);const classMapInstruction=this.buildClassMapInstruction(valueConverter);classMapInstruction&&instructions.push(classMapInstruction),instructions.push(...this._buildStyleInputs(valueConverter)),instructions.push(...this._buildClassInputs(valueConverter))}return instructions}}function registerIntoMap(map,key){map.has(key)||map.set(key,map.size)}function parseProperty(name){let hasOverrideFlag=!1;const overrideIndex=name.indexOf("!important");-1!==overrideIndex&&(name=overrideIndex>0?name.substring(0,overrideIndex):"",hasOverrideFlag=!0);let suffix=null,property=name;const unitIndex=name.lastIndexOf(".");return unitIndex>0&&(suffix=name.slice(unitIndex+1),property=name.substring(0,unitIndex)),{property,suffix,hasOverrideFlag}}function getStylePropInterpolationExpression(interpolation){switch(getInterpolationArgsLength(interpolation)){case 1:return Identifiers.styleProp;case 3:return Identifiers.stylePropInterpolate1;case 5:return Identifiers.stylePropInterpolate2;case 7:return Identifiers.stylePropInterpolate3;case 9:return Identifiers.stylePropInterpolate4;case 11:return Identifiers.stylePropInterpolate5;case 13:return Identifiers.stylePropInterpolate6;case 15:return Identifiers.stylePropInterpolate7;case 17:return Identifiers.stylePropInterpolate8;default:return Identifiers.stylePropInterpolateV}}function isEmptyExpression(ast){return ast instanceof ASTWithSource&&(ast=ast.ast),ast instanceof EmptyExpr$1}const EVENT_BINDING_SCOPE_GLOBALS=new Set(["$event"]),GLOBAL_TARGET_RESOLVERS=new Map([["window",Identifiers.resolveWindow],["document",Identifiers.resolveDocument],["body",Identifiers.resolveBody]]),LEADING_TRIVIA_CHARS=[" ","\n","\r","\t"];function renderFlagCheckIfStmt(flags,statements){return ifStmt(variable(RENDER_FLAGS).bitwiseAnd(literal(flags),null,!1),statements)}function prepareEventListenerParameters(eventAst,handlerName=null,scope=null){const{type,name,target,phase,handler}=eventAst;if(target&&!GLOBAL_TARGET_RESOLVERS.has(target))throw new Error(`Unexpected global target '${target}' defined for '${name}' event.\n Supported list of global targets: ${Array.from(GLOBAL_TARGET_RESOLVERS.keys())}.`);const implicitReceiverAccesses=new Set,implicitReceiverExpr=null===scope||0===scope.bindingLevel?variable(CONTEXT_NAME):scope.getOrCreateSharedContextVar(0),bindingStatements=2===eventAst.type?convertAssignmentActionBinding(scope,implicitReceiverExpr,handler,"b",eventAst.handlerSpan,implicitReceiverAccesses,EVENT_BINDING_SCOPE_GLOBALS):function convertActionBinding(localResolver,implicitReceiver,action,bindingId,baseSourceSpan,implicitReceiverAccesses,globals){localResolver??=new DefaultLocalResolver(globals);const visitor=new _AstToIrVisitor(localResolver,implicitReceiver,bindingId,!1,baseSourceSpan,implicitReceiverAccesses),actionStmts=[];flattenStatements(convertActionBuiltins(action).visit(visitor,_Mode.Statement),actionStmts),prependTemporaryDecls(visitor.temporaryCount,bindingId,actionStmts),visitor.usesImplicitReceiver&&localResolver.notifyImplicitReceiverUse();const lastIndex=actionStmts.length-1;if(lastIndex>=0){const lastStatement=actionStmts[lastIndex];lastStatement instanceof ExpressionStatement&&(actionStmts[lastIndex]=new ReturnStatement(lastStatement.expr))}return actionStmts}(scope,implicitReceiverExpr,handler,"b",eventAst.handlerSpan,implicitReceiverAccesses,EVENT_BINDING_SCOPE_GLOBALS),statements=[],variableDeclarations=scope?.variableDeclarations(),restoreViewStatement=scope?.restoreViewStatement();if(variableDeclarations&&statements.push(...variableDeclarations),statements.push(...bindingStatements),restoreViewStatement){statements.unshift(restoreViewStatement);const lastStatement=statements[statements.length-1];lastStatement instanceof ReturnStatement?statements[statements.length-1]=new ReturnStatement(invokeInstruction(lastStatement.value.sourceSpan,Identifiers.resetView,[lastStatement.value])):statements.push(new ExpressionStatement(invokeInstruction(null,Identifiers.resetView,[])))}const eventName=1===type?function prepareSyntheticListenerName(name,phase){return`${ANIMATE_SYMBOL_PREFIX}${name}.${phase}`}(name,phase):name,fnName=handlerName&&sanitizeIdentifier(handlerName),fnArgs=[];implicitReceiverAccesses.has("$event")&&fnArgs.push(new FnParam("$event",DYNAMIC_TYPE));const handlerFn=fn(fnArgs,statements,INFERRED_TYPE,null,fnName),params=[literal(eventName),handlerFn];return target&¶ms.push(literal(!1),importExpr(GLOBAL_TARGET_RESOLVERS.get(target))),params}class TemplateData{constructor(name,index,scope,visitor){this.name=name,this.index=index,this.scope=scope,this.visitor=visitor}getConstCount(){return this.visitor.getConstCount()}getVarCount(){return this.visitor.getVarCount()}}class TemplateDefinitionBuilder{constructor(constantPool,parentBindingScope,level=0,contextName,i18nContext,templateIndex,templateName,_namespace,relativeContextFilePath,i18nUseExternalIds,deferBlocks,elementLocations,allDeferrableDepsFn,_constants=function createComponentDefConsts(){return{prepareStatements:[],constExpressions:[],i18nVarRefsCache:new Map}}()){this.constantPool=constantPool,this.level=level,this.contextName=contextName,this.i18nContext=i18nContext,this.templateIndex=templateIndex,this.templateName=templateName,this._namespace=_namespace,this.i18nUseExternalIds=i18nUseExternalIds,this.deferBlocks=deferBlocks,this.elementLocations=elementLocations,this.allDeferrableDepsFn=allDeferrableDepsFn,this._constants=_constants,this._dataIndex=0,this._bindingContext=0,this._prefixCode=[],this._creationCodeFns=[],this._updateCodeFns=[],this._currentIndex=0,this._tempVariables=[],this._controlFlowTempVariable=null,this._nestedTemplateFns=[],this.i18n=null,this._pureFunctionSlots=0,this._bindingSlots=0,this._ngContentReservedSlots=[],this._ngContentSelectorsOffset=0,this._implicitReceiverExpr=null,this.visitReference=invalid,this.visitVariable=invalid,this.visitTextAttribute=invalid,this.visitBoundAttribute=invalid,this.visitBoundEvent=invalid,this.visitDeferredTrigger=invalid,this.visitDeferredBlockError=invalid,this.visitDeferredBlockLoading=invalid,this.visitDeferredBlockPlaceholder=invalid,this.visitIfBlockBranch=invalid,this.visitSwitchBlockCase=invalid,this.visitForLoopBlockEmpty=invalid,this.visitUnknownBlock=invalid,this._bindingScope=parentBindingScope.nestedScope(level),this.fileBasedI18nSuffix=relativeContextFilePath.replace(/[^A-Za-z0-9]/g,"_")+"_",this._valueConverter=new ValueConverter(constantPool,(()=>this.allocateDataSlot()),(numSlots=>this.allocatePureFunctionSlots(numSlots)),((name,localName,slot,value)=>{this._bindingScope.set(this.level,localName,value),this.creationInstruction(null,Identifiers.pipe,[literal(slot),literal(name)])}))}buildTemplateFunction(nodes,variables,ngContentSelectorsOffset=0,i18n,variableAliases){this._ngContentSelectorsOffset=ngContentSelectorsOffset,this._namespace!==Identifiers.namespaceHTML&&this.creationInstruction(null,this._namespace),variables.forEach((v=>{const alias=variableAliases?.[v.name];this.registerContextVariables(v.name,v.value),alias&&this.registerContextVariables(alias,v.value)}));const initI18nContext=this.i18nContext||isI18nRootNode(i18n)&&!isSingleI18nIcu(i18n)&&!(function isSingleElementTemplate(children){return 1===children.length&&children[0]instanceof Element$1}(nodes)&&nodes[0].i18n===i18n),selfClosingI18nInstruction=hasTextChildrenOnly(nodes);if(initI18nContext&&this.i18nStart(null,i18n,selfClosingI18nInstruction),visitAll$1(this,nodes),this._pureFunctionSlots+=this._bindingSlots,this._valueConverter.updatePipeSlotOffsets(this._bindingSlots),this._nestedTemplateFns.forEach((buildTemplateFn=>buildTemplateFn())),0===this.level&&this._ngContentReservedSlots.length){const parameters=[];if(this._ngContentReservedSlots.length>1||"*"!==this._ngContentReservedSlots[0]){const r3ReservedSlots=this._ngContentReservedSlots.map((s=>"*"!==s?parseSelectorToR3Selector(s):s));parameters.push(this.constantPool.getConstLiteral(asLiteral(r3ReservedSlots),!0))}this.creationInstruction(null,Identifiers.projectionDef,parameters,!0)}initI18nContext&&this.i18nEnd(null,selfClosingI18nInstruction);const creationStatements=getInstructionStatements(this._creationCodeFns),updateStatements=getInstructionStatements(this._updateCodeFns),creationVariables=this._bindingScope.viewSnapshotStatements(),updateVariables=this._bindingScope.variableDeclarations().concat(this._tempVariables),creationBlock=creationStatements.length>0?[renderFlagCheckIfStmt(1,creationVariables.concat(creationStatements))]:[],updateBlock=updateStatements.length>0?[renderFlagCheckIfStmt(2,updateVariables.concat(updateStatements))]:[];return fn([new FnParam(RENDER_FLAGS,NUMBER_TYPE),new FnParam(CONTEXT_NAME,null)],[...this._prefixCode,...creationBlock,...updateBlock],INFERRED_TYPE,null,this.templateName)}getLocal(name){return this._bindingScope.get(name)}notifyImplicitReceiverUse(){this._bindingScope.notifyImplicitReceiverUse()}maybeRestoreView(){this._bindingScope.maybeRestoreView()}i18nTranslate(message,params={},ref,transformFn){const _ref=ref||this.i18nGenerateMainBlockVar(),statements=function getTranslationDeclStmts(message,variable,closureVar,params={},transformFn){params=Object.fromEntries(Object.entries(params).sort());const statements=[declareI18nVariable(variable),ifStmt(createClosureModeGuard(),createGoogleGetMsgStatements(variable,message,closureVar,params),createLocalizeStatements(variable,message,formatI18nPlaceholderNamesInMap(params,!1)))];transformFn&&statements.push(new ExpressionStatement(variable.set(transformFn(variable))));return statements}(message,_ref,this.i18nGenerateClosureVar(message.id),params,transformFn);return this._constants.prepareStatements.push(...statements),_ref}registerContextVariables(name,value){const scopedName=this._bindingScope.freshReferenceName(),retrievalLevel=this.level,isDirect="#context"===value,lhs=variable(name+scopedName);this._bindingScope.set(retrievalLevel,name,(scope=>isDirect&&scope.bindingLevel===retrievalLevel&&!scope.isListenerScope()?variable(CONTEXT_NAME):lhs),1,((scope,relativeLevel)=>{let rhs;if(scope.bindingLevel===retrievalLevel)if(scope.isListenerScope()&&scope.hasRestoreViewVariable())rhs=variable("restoredCtx"),scope.notifyRestoredViewContextUse();else{if(isDirect)return[];rhs=variable(CONTEXT_NAME)}else{const sharedCtxVar=scope.getSharedContextName(retrievalLevel);rhs=sharedCtxVar||generateNextContextExpr(relativeLevel)}return[lhs.set(isDirect?rhs:rhs.prop(value||"$implicit")).toConstDecl()]}))}i18nAppendBindings(expressions){expressions.length>0&&expressions.forEach((expression=>this.i18n.appendBinding(expression)))}i18nBindProps(props){const bound={};return Object.keys(props).forEach((key=>{const prop=props[key];if(prop instanceof Text$3)bound[key]=literal(prop.value);else{const value=prop.value.visit(this._valueConverter);if(this.allocateBindingSlots(value),value instanceof Interpolation$1){const{strings,expressions}=value,{id,bindings}=this.i18n,label=function assembleI18nBoundString(strings,bindingStartIndex=0,contextId=0){if(!strings.length)return"";let acc="";const lastIdx=strings.length-1;for(let i=0;i{if(1===refs.length)params[key]=refs[0];else{const placeholder=wrapI18nPlaceholder(`I18N_EXP_${key}`);params[key]=literal(placeholder),icuMapping[key]=literalArr(refs)}}));let transformFn;(Array.from(placeholders.values()).some((value=>value.length>1))||Object.keys(icuMapping).length)&&(transformFn=raw=>{const args=[raw];return Object.keys(icuMapping).length&&args.push(mapLiteral(icuMapping,!0)),invokeInstruction(null,Identifiers.i18nPostprocess,args)}),this.i18nTranslate(meta,params,context.ref,transformFn)}}i18nStart(span=null,meta,selfClosing){const index=this.allocateDataSlot();this.i18n=this.i18nContext?this.i18nContext.forkChildContext(index,this.templateIndex,meta):new I18nContext(index,this.i18nGenerateMainBlockVar(),0,this.templateIndex,meta);const{id,ref}=this.i18n,params=[literal(index),this.addToConsts(ref)];id>0&¶ms.push(literal(id)),this.creationInstruction(span,selfClosing?Identifiers.i18n:Identifiers.i18nStart,params)}i18nEnd(span=null,selfClosing){if(!this.i18n)throw new Error("i18nEnd is executed with no i18n context present");this.i18nContext?(this.i18nContext.reconcileChildContext(this.i18n),this.i18nUpdateRef(this.i18nContext)):this.i18nUpdateRef(this.i18n);const{index,bindings}=this.i18n;if(bindings.size){for(const binding of bindings)this.updateInstructionWithAdvance(this.getConstCount()-1,span,Identifiers.i18nExp,(()=>this.convertPropertyBinding(binding)));this.updateInstruction(span,Identifiers.i18nApply,[literal(index)])}selfClosing||this.creationInstruction(span,Identifiers.i18nEnd),this.i18n=null}i18nAttributesInstruction(nodeIndex,attrs,sourceSpan){let hasBindings=!1;const i18nAttrArgs=[];if(attrs.forEach((attr=>{const message=attr.i18n,converted=attr.value.visit(this._valueConverter);if(this.allocateBindingSlots(converted),converted instanceof Interpolation$1){const params=placeholdersToParams(assembleBoundTextPlaceholders(message));i18nAttrArgs.push(literal(attr.name),this.i18nTranslate(message,params)),converted.expressions.forEach((expression=>{hasBindings=!0,this.updateInstructionWithAdvance(nodeIndex,sourceSpan,Identifiers.i18nExp,(()=>this.convertPropertyBinding(expression)))}))}})),i18nAttrArgs.length>0){const index=literal(this.allocateDataSlot()),constIndex=this.addToConsts(literalArr(i18nAttrArgs));this.creationInstruction(sourceSpan,Identifiers.i18nAttributes,[index,constIndex]),hasBindings&&this.updateInstruction(sourceSpan,Identifiers.i18nApply,[index])}}getNamespaceInstruction(namespaceKey){switch(namespaceKey){case"math":return Identifiers.namespaceMathML;case"svg":return Identifiers.namespaceSVG;default:return Identifiers.namespaceHTML}}addNamespaceInstruction(nsInstruction,element){this._namespace=nsInstruction,this.creationInstruction(element.startSourceSpan,nsInstruction)}interpolatedUpdateInstruction(instruction,elementIndex,attrName,input,value,params){this.updateInstructionWithAdvance(elementIndex,input.sourceSpan,instruction,(()=>[literal(attrName),...this.getUpdateInstructionArguments(value),...params]))}visitContent(ngContent){const slot=this.allocateDataSlot(),projectionSlotIdx=this._ngContentSelectorsOffset+this._ngContentReservedSlots.length,parameters=[literal(slot)];this._ngContentReservedSlots.push(ngContent.selector);const nonContentSelectAttributes=ngContent.attributes.filter((attr=>"select"!==attr.name.toLowerCase())),attributes=this.getAttributeExpressions(ngContent.name,nonContentSelectAttributes,[],[]);attributes.length>0?parameters.push(literal(projectionSlotIdx),literalArr(attributes)):0!==projectionSlotIdx&¶meters.push(literal(projectionSlotIdx)),this.creationInstruction(ngContent.sourceSpan,Identifiers.projection,parameters),this.i18n&&this.i18n.appendProjection(ngContent.i18n,slot)}visitElement(element){const elementIndex=this.allocateDataSlot(),stylingBuilder=new StylingBuilder(null);this.elementLocations.set(element,{index:elementIndex,level:this.level});let isNonBindableMode=!1;const isI18nRootElement=isI18nRootNode(element.i18n)&&!isSingleI18nIcu(element.i18n),outputAttrs=[],[namespaceKey,elementName]=splitNsName(element.name),isNgContainer$1=isNgContainer(element.name);for(const attr of element.attributes){const{name,value}=attr;"ngNonBindable"===name?isNonBindableMode=!0:"style"===name?stylingBuilder.registerStyleAttr(value):"class"===name?stylingBuilder.registerClassAttr(value):outputAttrs.push(attr)}const parameters=[literal(elementIndex)];isNgContainer$1||parameters.push(literal(elementName));const allOtherInputs=[],boundI18nAttrs=[];element.inputs.forEach((input=>{stylingBuilder.registerBoundInput(input)||(0!==input.type&&5!==input.type||!input.i18n?allOtherInputs.push(input):boundI18nAttrs.push(input))}));const attributes=this.getAttributeExpressions(element.name,outputAttrs,allOtherInputs,element.outputs,stylingBuilder,[],boundI18nAttrs);parameters.push(this.addAttrsToConsts(attributes));const refs=this.prepareRefsArray(element.references);parameters.push(this.addToConsts(refs));const wasInNamespace=this._namespace,currentNamespace=this.getNamespaceInstruction(namespaceKey);currentNamespace!==wasInNamespace&&this.addNamespaceInstruction(currentNamespace,element),this.i18n&&this.i18n.appendElement(element.i18n,elementIndex);const hasChildren=!isI18nRootElement&&this.i18n?!hasTextChildrenOnly(element.children):element.children.length>0,createSelfClosingInstruction=!stylingBuilder.hasBindingsWithPipes&&0===element.outputs.length&&0===boundI18nAttrs.length&&!hasChildren,createSelfClosingI18nInstruction=!createSelfClosingInstruction&&hasTextChildrenOnly(element.children);if(createSelfClosingInstruction)this.creationInstruction(element.sourceSpan,isNgContainer$1?Identifiers.elementContainer:Identifiers.element,trimTrailingNulls(parameters));else{if(this.creationInstruction(element.startSourceSpan,isNgContainer$1?Identifiers.elementContainerStart:Identifiers.elementStart,trimTrailingNulls(parameters)),isNonBindableMode&&this.creationInstruction(element.startSourceSpan,Identifiers.disableBindings),boundI18nAttrs.length>0&&this.i18nAttributesInstruction(elementIndex,boundI18nAttrs,element.startSourceSpan??element.sourceSpan),element.outputs.length>0)for(const outputAst of element.outputs)this.creationInstruction(outputAst.sourceSpan,2===outputAst.type?Identifiers.twoWayListener:Identifiers.listener,this.prepareListenerParameter(element.name,outputAst,elementIndex));isI18nRootElement&&this.i18nStart(element.startSourceSpan,element.i18n,createSelfClosingI18nInstruction)}const stylingInstructions=stylingBuilder.buildUpdateLevelInstructions(this._valueConverter),limit=stylingInstructions.length-1;for(let i=0;i<=limit;i++){const instruction=stylingInstructions[i];this._bindingSlots+=this.processStylingUpdateInstruction(elementIndex,instruction)}const emptyValueBindInstruction=literal(void 0),propertyBindings=[],attributeBindings=[];allOtherInputs.forEach((input=>{const inputType=input.type;if(4===inputType){const value=input.value.visit(this._valueConverter),hasValue=!(value instanceof LiteralPrimitive)||!!value.value;this.allocateBindingSlots(value),propertyBindings.push({span:input.sourceSpan,reference:Identifiers.property,paramsOrFn:getBindingFunctionParams((()=>hasValue?this.convertPropertyBinding(value):emptyValueBindInstruction),prepareSyntheticPropertyName(input.name))})}else{if(input.i18n)return;const value=input.value.visit(this._valueConverter);if(void 0!==value){const params=[],[attrNamespace,attrName]=splitNsName(input.name),isAttributeBinding=1===inputType;let sanitizationRef=resolveSanitizationFn(input.securityContext,isAttributeBinding);if(sanitizationRef||function isIframeElement(tagName){return"iframe"===tagName.toLowerCase()}(element.name)&&isIframeSecuritySensitiveAttr(input.name)&&(sanitizationRef=importExpr(Identifiers.validateIframeAttribute)),sanitizationRef&¶ms.push(sanitizationRef),attrNamespace){const namespaceLiteral=literal(attrNamespace);sanitizationRef?params.push(namespaceLiteral):params.push(literal(null),namespaceLiteral)}if(this.allocateBindingSlots(value),0===inputType||5===inputType)value instanceof Interpolation$1?this.interpolatedUpdateInstruction(getPropertyInterpolationExpression(value),elementIndex,attrName,input,value,params):propertyBindings.push({span:input.sourceSpan,reference:5===inputType?Identifiers.twoWayProperty:Identifiers.property,paramsOrFn:getBindingFunctionParams((()=>this.convertPropertyBinding(value)),attrName,params)});else if(1===inputType)if(value instanceof Interpolation$1&&getInterpolationArgsLength(value)>1)this.interpolatedUpdateInstruction(function getAttributeInterpolationExpression(interpolation){switch(getInterpolationArgsLength(interpolation)){case 3:return Identifiers.attributeInterpolate1;case 5:return Identifiers.attributeInterpolate2;case 7:return Identifiers.attributeInterpolate3;case 9:return Identifiers.attributeInterpolate4;case 11:return Identifiers.attributeInterpolate5;case 13:return Identifiers.attributeInterpolate6;case 15:return Identifiers.attributeInterpolate7;case 17:return Identifiers.attributeInterpolate8;default:return Identifiers.attributeInterpolateV}}(value),elementIndex,attrName,input,value,params);else{const boundValue=value instanceof Interpolation$1?value.expressions[0]:value;attributeBindings.push({span:input.sourceSpan,paramsOrFn:getBindingFunctionParams((()=>this.convertPropertyBinding(boundValue)),attrName,params)})}else this.updateInstructionWithAdvance(elementIndex,input.sourceSpan,Identifiers.classProp,(()=>[literal(elementIndex),literal(attrName),this.convertPropertyBinding(value),...params]))}}}));for(const propertyBinding of propertyBindings)this.updateInstructionWithAdvance(elementIndex,propertyBinding.span,propertyBinding.reference,propertyBinding.paramsOrFn);for(const attributeBinding of attributeBindings)this.updateInstructionWithAdvance(elementIndex,attributeBinding.span,Identifiers.attribute,attributeBinding.paramsOrFn);if(visitAll$1(this,element.children),!isI18nRootElement&&this.i18n&&this.i18n.appendElement(element.i18n,elementIndex,!0),!createSelfClosingInstruction){const span=element.endSourceSpan??element.sourceSpan;isI18nRootElement&&this.i18nEnd(span,createSelfClosingI18nInstruction),isNonBindableMode&&this.creationInstruction(span,Identifiers.enableBindings),this.creationInstruction(span,isNgContainer$1?Identifiers.elementContainerEnd:Identifiers.elementEnd)}}prepareEmbeddedTemplateFn(children,contextNameSuffix,variables=[],i18nMeta,variableAliases){const index=this.allocateDataSlot();this.i18n&&i18nMeta&&(i18nMeta instanceof BlockPlaceholder?this.i18n.appendBlock(i18nMeta,index):this.i18n.appendTemplate(i18nMeta,index));const contextName=`${this.contextName}${contextNameSuffix}_${index}`,name=this.constantPool.uniqueName(`${contextName}_Template`,!1),visitor=new TemplateDefinitionBuilder(this.constantPool,this._bindingScope,this.level+1,contextName,this.i18n,index,name,this._namespace,this.fileBasedI18nSuffix,this.i18nUseExternalIds,this.deferBlocks,this.elementLocations,this.allDeferrableDepsFn,this._constants);return this._nestedTemplateFns.push((()=>{const templateFunctionExpr=visitor.buildTemplateFunction(children,variables,this._ngContentReservedSlots.length+this._ngContentSelectorsOffset,i18nMeta,variableAliases);this.constantPool.statements.push(templateFunctionExpr.toDeclStmt(name)),visitor._ngContentReservedSlots.length&&this._ngContentReservedSlots.push(...visitor._ngContentReservedSlots)})),new TemplateData(name,index,visitor._bindingScope,visitor)}createEmbeddedTemplateFn(tagName,children,contextNameSuffix,sourceSpan,variables=[],attrsExprs,references,i18n){const data=this.prepareEmbeddedTemplateFn(children,contextNameSuffix,variables,i18n),parameters=[literal(data.index),variable(data.name),literal(tagName),this.addAttrsToConsts(attrsExprs||null)];if(references&&references.length>0){const refs=this.prepareRefsArray(references);parameters.push(this.addToConsts(refs)),parameters.push(importExpr(Identifiers.templateRefExtractor))}return this.creationInstruction(sourceSpan,Identifiers.templateCreate,(()=>(parameters.splice(2,0,literal(data.getConstCount()),literal(data.getVarCount())),trimTrailingNulls(parameters)))),data.index}visitTemplate(template){const tagNameWithoutNamespace=template.tagName?splitNsName(template.tagName)[1]:template.tagName,contextNameSuffix=template.tagName?"_"+sanitizeIdentifier(template.tagName):"",attrsExprs=this.getAttributeExpressions("ng-template",template.attributes,template.inputs,template.outputs,void 0,template.templateAttrs),templateIndex=this.createEmbeddedTemplateFn(tagNameWithoutNamespace,template.children,contextNameSuffix,template.sourceSpan,template.variables,attrsExprs,template.references,template.i18n);if(this.templatePropertyBindings(templateIndex,template.templateAttrs),"ng-template"===tagNameWithoutNamespace){const[i18nInputs,inputs]=function partitionArray(arr,conditionFn){const truthy=[],falsy=[];for(const item of arr)(conditionFn(item)?truthy:falsy).push(item);return[truthy,falsy]}(template.inputs,hasI18nMeta);i18nInputs.length>0&&this.i18nAttributesInstruction(templateIndex,i18nInputs,template.startSourceSpan??template.sourceSpan),inputs.length>0&&this.templatePropertyBindings(templateIndex,inputs);for(const outputAst of template.outputs)this.creationInstruction(outputAst.sourceSpan,2===outputAst.type?Identifiers.twoWayListener:Identifiers.listener,this.prepareListenerParameter("ng_template",outputAst,templateIndex))}}visitBoundText(text){if(this.i18n){const value=text.value.visit(this._valueConverter);return this.allocateBindingSlots(value),void(value instanceof Interpolation$1&&(this.i18n.appendBoundText(text.i18n),this.i18nAppendBindings(value.expressions)))}const nodeIndex=this.allocateDataSlot();this.creationInstruction(text.sourceSpan,Identifiers.text,[literal(nodeIndex)]);const value=text.value.visit(this._valueConverter);this.allocateBindingSlots(value),value instanceof Interpolation$1?this.updateInstructionWithAdvance(nodeIndex,text.sourceSpan,function getTextInterpolationExpression(interpolation){switch(getInterpolationArgsLength(interpolation)){case 1:return Identifiers.textInterpolate;case 3:return Identifiers.textInterpolate1;case 5:return Identifiers.textInterpolate2;case 7:return Identifiers.textInterpolate3;case 9:return Identifiers.textInterpolate4;case 11:return Identifiers.textInterpolate5;case 13:return Identifiers.textInterpolate6;case 15:return Identifiers.textInterpolate7;case 17:return Identifiers.textInterpolate8;default:return Identifiers.textInterpolateV}}(value),(()=>this.getUpdateInstructionArguments(value))):error("Text nodes should be interpolated and never bound directly.")}visitText(text){this.i18n||this.creationInstruction(text.sourceSpan,Identifiers.text,[literal(this.allocateDataSlot()),literal(text.value)])}visitIcu(icu){let initWasInvoked=!1;this.i18n||(initWasInvoked=!0,this.i18nStart(null,icu.i18n,!0));const i18n=this.i18n,vars=this.i18nBindProps(icu.vars),placeholders=this.i18nBindProps(icu.placeholders),message=icu.i18n,transformFn=raw=>{const formatted=formatI18nPlaceholderNamesInMap(Object.fromEntries(Object.entries({...vars,...placeholders}).sort()),!1);return invokeInstruction(null,Identifiers.i18nPostprocess,[raw,mapLiteral(formatted,!0)])};if(isSingleI18nIcu(i18n.meta))this.i18nTranslate(message,{},i18n.ref,transformFn);else{const ref=this.i18nTranslate(message,{},void 0,transformFn);i18n.appendIcu(icuFromI18nMessage(message).name,ref)}return initWasInvoked&&this.i18nEnd(null,!0),null}visitIfBlock(block){this.allocateBindingSlots(null);const branchData=block.branches.map(((branch,branchIndex)=>{const{expression,expressionAlias,children,sourceSpan}=branch,variables=null!==expressionAlias?[new Variable(expressionAlias.name,"#context",expressionAlias.sourceSpan,expressionAlias.keySpan)]:void 0;let attrsExprs,tagName=null;if(0===branchIndex){const inferredData=this.inferProjectionDataFromInsertionPoint(branch);tagName=inferredData.tagName,attrsExprs=inferredData.attrsExprs}return{index:this.createEmbeddedTemplateFn(tagName,children,"_Conditional",sourceSpan,variables,attrsExprs,void 0,branch.i18n),expression:null===expression?null:expression.visit(this._valueConverter),alias:expressionAlias}})),containerIndex=branchData[0].index;this.updateInstructionWithAdvance(containerIndex,block.branches[0].sourceSpan,Identifiers.conditional,(()=>{let contextVariable=null;const generateBranch=branchIndex=>{if(branchIndex>branchData.length-1)return literal(-1);const{index,expression,alias}=branchData[branchIndex];if(null===expression)return literal(index);let comparisonTarget;return alias?(contextVariable=this.allocateControlFlowTempVariable(),comparisonTarget=contextVariable.set(this.convertPropertyBinding(expression))):comparisonTarget=this.convertPropertyBinding(expression),comparisonTarget.conditional(literal(index),generateBranch(branchIndex+1))},params=[literal(containerIndex),generateBranch(0)];return null!==contextVariable&¶ms.push(contextVariable),params}))}visitSwitchBlock(block){if(0===block.cases.length)return;const caseData=block.cases.map((currentCase=>({index:this.createEmbeddedTemplateFn(null,currentCase.children,"_Case",currentCase.sourceSpan,void 0,void 0,void 0,currentCase.i18n),expression:null===currentCase.expression?null:currentCase.expression.visit(this._valueConverter)}))),containerIndex=caseData[0].index,blockExpression=block.expression.visit(this._valueConverter);this.allocateBindingSlots(null),this.updateInstructionWithAdvance(containerIndex,block.sourceSpan,Identifiers.conditional,(()=>{const generateCases=caseIndex=>{if(caseIndex>caseData.length-1)return literal(-1);const{index,expression}=caseData[caseIndex];if(null===expression)return literal(index);return(0===caseIndex?this.allocateControlFlowTempVariable().set(this.convertPropertyBinding(blockExpression)):this.allocateControlFlowTempVariable()).identical(this.convertPropertyBinding(expression)).conditional(literal(index),generateCases(caseIndex+1))};return[literal(containerIndex),generateCases(0)]}))}visitDeferredBlock(deferred){const{loading,placeholder,error,triggers,prefetchTriggers}=deferred,metadata=this.deferBlocks.get(deferred);if(!metadata)throw new Error("Could not resolve `defer` block metadata. Block may need to be analyzed.");const primaryTemplateIndex=this.createEmbeddedTemplateFn(null,deferred.children,"_Defer",deferred.sourceSpan,void 0,void 0,void 0,deferred.i18n),loadingIndex=loading?this.createEmbeddedTemplateFn(null,loading.children,"_DeferLoading",loading.sourceSpan,void 0,void 0,void 0,loading.i18n):null,loadingConsts=loading?trimTrailingNulls([literal(loading.minimumTime),literal(loading.afterTime)]):null,placeholderIndex=placeholder?this.createEmbeddedTemplateFn(null,placeholder.children,"_DeferPlaceholder",placeholder.sourceSpan,void 0,void 0,void 0,placeholder.i18n):null,placeholderConsts=placeholder&&null!==placeholder.minimumTime?literalArr([literal(placeholder.minimumTime)]):null,errorIndex=error?this.createEmbeddedTemplateFn(null,error.children,"_DeferError",error.sourceSpan,void 0,void 0,void 0,error.i18n):null,deferredIndex=this.allocateDataSlot(),depsFnName=`${this.contextName}_Defer_${deferredIndex}_DepsFn`;this.creationInstruction(deferred.sourceSpan,Identifiers.defer,trimTrailingNulls([literal(deferredIndex),literal(primaryTemplateIndex),this.allDeferrableDepsFn??this.createDeferredDepsFunction(depsFnName,metadata),literal(loadingIndex),literal(placeholderIndex),literal(errorIndex),loadingConsts?.length?this.addToConsts(literalArr(loadingConsts)):TYPED_NULL_EXPR,placeholderConsts?this.addToConsts(placeholderConsts):TYPED_NULL_EXPR,loadingConsts?.length||placeholderConsts?importExpr(Identifiers.deferEnableTimerScheduling):TYPED_NULL_EXPR])),this.allocateDataSlot(),this.createDeferTriggerInstructions(deferredIndex,triggers,metadata,!1),this.createDeferTriggerInstructions(deferredIndex,prefetchTriggers,metadata,!0)}createDeferredDepsFunction(name,metadata){if(0===metadata.deps.length)return TYPED_NULL_EXPR;const dependencyExp=[];for(const deferredDep of metadata.deps)if(deferredDep.isDeferrable){const innerFn=arrowFn([new FnParam("m",DYNAMIC_TYPE)],variable("m").prop(deferredDep.isDefaultImport?"default":deferredDep.symbolName)),importExpr=new DynamicImportExpr(deferredDep.importPath).prop("then").callFn([innerFn]);dependencyExp.push(importExpr)}else dependencyExp.push(deferredDep.type);const depsFnExpr=arrowFn([],literalArr(dependencyExp));return this.constantPool.statements.push(depsFnExpr.toDeclStmt(name,StmtModifier.Final)),variable(name)}createDeferTriggerInstructions(deferredIndex,triggers,metadata,prefetch){const{when,idle,immediate,timer,hover,interaction,viewport}=triggers;if(when){const value=when.value.visit(this._valueConverter);this.allocateBindingSlots(value),this.updateInstructionWithAdvance(deferredIndex,when.sourceSpan,prefetch?Identifiers.deferPrefetchWhen:Identifiers.deferWhen,(()=>this.convertPropertyBinding(value)))}(idle||!prefetch&&0===Object.keys(triggers).length)&&this.creationInstruction(idle?.sourceSpan||null,prefetch?Identifiers.deferPrefetchOnIdle:Identifiers.deferOnIdle),immediate&&this.creationInstruction(immediate.sourceSpan,prefetch?Identifiers.deferPrefetchOnImmediate:Identifiers.deferOnImmediate),timer&&this.creationInstruction(timer.sourceSpan,prefetch?Identifiers.deferPrefetchOnTimer:Identifiers.deferOnTimer,[literal(timer.delay)]),hover&&this.domNodeBasedTrigger("hover",hover,metadata,prefetch?Identifiers.deferPrefetchOnHover:Identifiers.deferOnHover),interaction&&this.domNodeBasedTrigger("interaction",interaction,metadata,prefetch?Identifiers.deferPrefetchOnInteraction:Identifiers.deferOnInteraction),viewport&&this.domNodeBasedTrigger("viewport",viewport,metadata,prefetch?Identifiers.deferPrefetchOnViewport:Identifiers.deferOnViewport)}domNodeBasedTrigger(name,trigger,metadata,instructionRef){const triggerEl=metadata.triggerElements.get(trigger);triggerEl&&this.creationInstruction(trigger.sourceSpan,instructionRef,(()=>{const location=this.elementLocations.get(triggerEl);if(!location)throw new Error(`Could not determine location of reference passed into '${name}' trigger. Template may not have been fully analyzed.`);const depth=Math.max(this.level-location.level,-1),params=[literal(location.index)];return 0!==depth&¶ms.push(literal(depth)),params}))}inferProjectionDataFromInsertionPoint(node){let attrsExprs,root=null,tagName=null;for(const child of node.children)if(!(child instanceof Comment$1)){if(null!==root){root=null;break}(child instanceof Element$1||child instanceof Template&&null!==child.tagName)&&(root=child)}if(null!==root){const name=root instanceof Element$1?root.name:root.tagName;tagName="ng-template"===name?null:name,attrsExprs=this.getAttributeExpressions("ng-template",root.attributes,root.inputs,[])}return{tagName,attrsExprs}}allocateDataSlot(){return this._dataIndex++}visitForLoopBlock(block){const blockIndex=this.allocateDataSlot(),{tagName,attrsExprs}=this.inferProjectionDataFromInsertionPoint(block),primaryData=this.prepareEmbeddedTemplateFn(block.children,"_For",[block.item,block.contextVariables.$index,block.contextVariables.$count],block.i18n,{[block.contextVariables.$index.name]:this.getLevelSpecificVariableName("$index",this.level+1),[block.contextVariables.$count.name]:this.getLevelSpecificVariableName("$count",this.level+1)}),{expression:trackByExpression,usesComponentInstance:trackByUsesComponentInstance}=this.createTrackByFunction(block);let emptyAttrsExprs,emptyData=null,emptyTagName=null;if(null!==block.empty){const emptyInferred=this.inferProjectionDataFromInsertionPoint(block.empty);emptyTagName=emptyInferred.tagName,emptyAttrsExprs=emptyInferred.attrsExprs,emptyData=this.prepareEmbeddedTemplateFn(block.empty.children,"_ForEmpty",void 0,block.empty.i18n),this.allocateBindingSlots(null)}this.registerComputedLoopVariables(block,primaryData.scope),this.creationInstruction(block.sourceSpan,Identifiers.repeaterCreate,(()=>{const params=[literal(blockIndex),variable(primaryData.name),literal(primaryData.getConstCount()),literal(primaryData.getVarCount()),literal(tagName),this.addAttrsToConsts(attrsExprs||null),trackByExpression];return null!==emptyData?params.push(literal(trackByUsesComponentInstance),variable(emptyData.name),literal(emptyData.getConstCount()),literal(emptyData.getVarCount()),literal(emptyTagName),this.addAttrsToConsts(emptyAttrsExprs||null)):trackByUsesComponentInstance&¶ms.push(literal(trackByUsesComponentInstance)),trimTrailingNulls(params)}));const value=block.expression.visit(this._valueConverter);this.updateInstructionWithAdvance(blockIndex,block.sourceSpan,Identifiers.repeater,(()=>[this.convertPropertyBinding(value)]))}registerComputedLoopVariables(block,bindingScope){const level=bindingScope.bindingLevel;bindingScope.set(level,block.contextVariables.$odd.name,((scope,retrievalLevel)=>this.getLevelSpecificForLoopVariable(block,scope,retrievalLevel,"$index").modulo(literal(2)).notIdentical(literal(0)))),bindingScope.set(level,block.contextVariables.$even.name,((scope,retrievalLevel)=>this.getLevelSpecificForLoopVariable(block,scope,retrievalLevel,"$index").modulo(literal(2)).identical(literal(0)))),bindingScope.set(level,block.contextVariables.$first.name,((scope,retrievalLevel)=>this.getLevelSpecificForLoopVariable(block,scope,retrievalLevel,"$index").identical(literal(0)))),bindingScope.set(level,block.contextVariables.$last.name,((scope,retrievalLevel)=>{const index=this.getLevelSpecificForLoopVariable(block,scope,retrievalLevel,"$index"),count=this.getLevelSpecificForLoopVariable(block,scope,retrievalLevel,"$count");return index.identical(count.minus(literal(1)))}))}getLevelSpecificVariableName(name,level){return`ɵ${name}_${level}`}getLevelSpecificForLoopVariable(block,scope,retrievalLevel,name){const scopeName=scope.bindingLevel===retrievalLevel?block.contextVariables[name].name:this.getLevelSpecificVariableName(name,retrievalLevel);return scope.get(scopeName)}optimizeTrackByFunction(block){const indexLocalName=block.contextVariables.$index.name,itemName=block.item.name,ast=block.trackBy.ast;if(ast instanceof PropertyRead&&ast.receiver instanceof ImplicitReceiver&&ast.name===indexLocalName)return{expression:importExpr(Identifiers.repeaterTrackByIndex),usesComponentInstance:!1};if(ast instanceof PropertyRead&&ast.receiver instanceof ImplicitReceiver&&ast.name===itemName)return{expression:importExpr(Identifiers.repeaterTrackByIdentity),usesComponentInstance:!1};if(ast instanceof Call&&ast.receiver instanceof PropertyRead&&ast.receiver.receiver instanceof ImplicitReceiver&&2===ast.args.length){const firstIsIndex=ast.args[0]instanceof PropertyRead&&ast.args[0].receiver instanceof ImplicitReceiver&&ast.args[0].name===indexLocalName,secondIsItem=ast.args[1]instanceof PropertyRead&&ast.args[1].receiver instanceof ImplicitReceiver&&ast.args[1].name===itemName;if(firstIsIndex&&secondIsItem){return{expression:(0===this.level?variable(CONTEXT_NAME):new ExternalExpr(Identifiers.componentInstance).callFn([])).prop(ast.receiver.name),usesComponentInstance:!1}}}return null}createTrackByFunction(block){const optimizedFn=this.optimizeTrackByFunction(block);if(null!==optimizedFn)return optimizedFn;const contextVars=block.contextVariables,scope=new TrackByBindingScope(this._bindingScope,{[contextVars.$index.name]:"$index",[block.item.name]:"$item",[contextVars.$count.name]:contextVars.$count.name,[contextVars.$first.name]:contextVars.$first.name,[contextVars.$last.name]:contextVars.$last.name,[contextVars.$even.name]:contextVars.$even.name,[contextVars.$odd.name]:contextVars.$odd.name}),params=[new FnParam("$index"),new FnParam("$item")],stmts=function convertPureComponentScopeFunction(ast,localResolver,implicitReceiver,bindingId){const converted=convertPropertyBindingBuiltins({createLiteralArrayConverter:()=>args=>literalArr(args),createLiteralMapConverter:keys=>values=>literalMap(keys.map(((key,index)=>({key:key.key,value:values[index],quoted:key.quoted})))),createPipeConverter:()=>{throw new Error("Illegal State: Pipes are not allowed in this context")}},ast),visitor=new _AstToIrVisitor(localResolver,implicitReceiver,bindingId,!1),statements=[];return flattenStatements(converted.visit(visitor,_Mode.Statement),statements),statements}(block.trackBy.ast,scope,variable(CONTEXT_NAME),"track"),usesComponentInstance=scope.getComponentAccessCount()>0;let fn$1;if(!usesComponentInstance&&1===stmts.length&&stmts[0]instanceof ExpressionStatement)fn$1=arrowFn(params,stmts[0].expr);else{if(stmts.length>0){const lastStatement=stmts[stmts.length-1];lastStatement instanceof ExpressionStatement&&(stmts[stmts.length-1]=new ReturnStatement(lastStatement.expr))}fn$1=fn(params,stmts)}return{expression:this.constantPool.getSharedFunctionReference(fn$1,"_forTrack"),usesComponentInstance}}getConstCount(){return this._dataIndex}getVarCount(){return this._pureFunctionSlots}getConsts(){return this._constants}getNgContentSelectors(){return this._ngContentReservedSlots.length?this.constantPool.getConstLiteral(asLiteral(this._ngContentReservedSlots),!0):null}bindingContext(){return""+this._bindingContext++}templatePropertyBindings(templateIndex,attrs){const propertyBindings=[];for(const input of attrs){if(!(input instanceof BoundAttribute))continue;const value=input.value.visit(this._valueConverter);if(void 0!==value)if(this.allocateBindingSlots(value),value instanceof Interpolation$1){const params=[];this.interpolatedUpdateInstruction(getPropertyInterpolationExpression(value),templateIndex,input.name,input,value,params)}else propertyBindings.push({span:input.sourceSpan,paramsOrFn:getBindingFunctionParams((()=>this.convertPropertyBinding(value)),input.name)})}for(const propertyBinding of propertyBindings)this.updateInstructionWithAdvance(templateIndex,propertyBinding.span,Identifiers.property,propertyBinding.paramsOrFn)}instructionFn(fns,span,reference,paramsOrFn,prepend=!1){fns[prepend?"unshift":"push"]({span,reference,paramsOrFn})}processStylingUpdateInstruction(elementIndex,instruction){let allocateBindingSlots=0;if(instruction)for(const call of instruction.calls)allocateBindingSlots+=call.allocateBindingSlots,this.updateInstructionWithAdvance(elementIndex,call.sourceSpan,instruction.reference,(()=>call.params((value=>call.supportsInterpolation&&value instanceof Interpolation$1?this.getUpdateInstructionArguments(value):this.convertPropertyBinding(value)))));return allocateBindingSlots}creationInstruction(span,reference,paramsOrFn,prepend){this.instructionFn(this._creationCodeFns,span,reference,paramsOrFn||[],prepend)}updateInstructionWithAdvance(nodeIndex,span,reference,paramsOrFn){this.addAdvanceInstructionIfNecessary(nodeIndex,span),this.updateInstruction(span,reference,paramsOrFn)}updateInstruction(span,reference,paramsOrFn){this.instructionFn(this._updateCodeFns,span,reference,paramsOrFn||[])}addAdvanceInstructionIfNecessary(nodeIndex,span){if(nodeIndex!==this._currentIndex){const delta=nodeIndex-this._currentIndex;if(delta<1)throw new Error("advance instruction can only go forwards");this.instructionFn(this._updateCodeFns,span,Identifiers.advance,delta>1?[literal(delta)]:[]),this._currentIndex=nodeIndex}}allocatePureFunctionSlots(numSlots){const originalSlots=this._pureFunctionSlots;return this._pureFunctionSlots+=numSlots,originalSlots}allocateBindingSlots(value){this._bindingSlots+=value instanceof Interpolation$1?value.expressions.length:1}getImplicitReceiverExpr(){return this._implicitReceiverExpr?this._implicitReceiverExpr:this._implicitReceiverExpr=0===this.level?variable(CONTEXT_NAME):this._bindingScope.getOrCreateSharedContextVar(0)}convertPropertyBinding(value){const convertedPropertyBinding=convertPropertyBinding(this,this.getImplicitReceiverExpr(),value,this.bindingContext()),valExpr=convertedPropertyBinding.currValExpr;return this._tempVariables.push(...convertedPropertyBinding.stmts),valExpr}getUpdateInstructionArguments(value){const{args,stmts}=function convertUpdateArguments(localResolver,contextVariableExpression,expressionWithArgumentsToExtract,bindingId){const visitor=new _AstToIrVisitor(localResolver,contextVariableExpression,bindingId,!0),outputExpr=visitor.visitInterpolation(expressionWithArgumentsToExtract,_Mode.Expression);return visitor.usesImplicitReceiver&&localResolver.notifyImplicitReceiverUse(),{stmts:getStatementsFromVisitor(visitor,bindingId),args:outputExpr.args}}(this,this.getImplicitReceiverExpr(),value,this.bindingContext());return this._tempVariables.push(...stmts),args}allocateControlFlowTempVariable(){if(null===this._controlFlowTempVariable){const name=`${this.contextName}_contFlowTmp`;this._tempVariables.push(new DeclareVarStmt(name)),this._controlFlowTempVariable=variable(name)}return this._controlFlowTempVariable}getAttributeExpressions(elementName,renderAttributes,inputs,outputs,styles,templateAttrs=[],boundI18nAttrs=[]){const alreadySeen=new Set,attrExprs=[];let ngProjectAsAttr;for(const attr of renderAttributes)if("ngProjectAs"===attr.name&&(ngProjectAsAttr=attr),attr.i18n){const{i18nVarRefsCache}=this._constants;let i18nVarRef;i18nVarRefsCache.has(attr.i18n)?i18nVarRef=i18nVarRefsCache.get(attr.i18n):(i18nVarRef=this.i18nTranslate(attr.i18n),i18nVarRefsCache.set(attr.i18n,i18nVarRef)),attrExprs.push(literal(attr.name),i18nVarRef)}else attrExprs.push(...getAttributeNameLiterals(attr.name),trustedConstAttribute(elementName,attr));function addAttrExpr(key,value){"string"==typeof key?alreadySeen.has(key)||(attrExprs.push(...getAttributeNameLiterals(key)),void 0!==value&&attrExprs.push(value),alreadySeen.add(key)):attrExprs.push(literal(key))}if(ngProjectAsAttr&&attrExprs.push(...function getNgProjectAsLiteral(attribute){const parsedR3Selector=parseSelectorToR3Selector(attribute.value)[0];return[literal(5),asLiteral(parsedR3Selector)]}(ngProjectAsAttr)),styles&&styles.populateInitialStylingAttrs(attrExprs),inputs.length||outputs.length){const attrsLengthBeforeInputs=attrExprs.length;for(let i=0;iaddAttrExpr(attr.name)))),boundI18nAttrs.length&&(attrExprs.push(literal(6)),boundI18nAttrs.forEach((attr=>addAttrExpr(attr.name)))),attrExprs}addToConsts(expression){if(isNull(expression))return TYPED_NULL_EXPR;const consts=this._constants.constExpressions;for(let i=0;i0?this.addToConsts(literalArr(attrs)):TYPED_NULL_EXPR}prepareRefsArray(references){if(!references||0===references.length)return TYPED_NULL_EXPR;const refsParam=references.flatMap((reference=>{const slot=this.allocateDataSlot(),variableName=this._bindingScope.freshReferenceName(),retrievalLevel=this.level,lhs=variable(variableName);return this._bindingScope.set(retrievalLevel,reference.name,lhs,0,((scope,relativeLevel)=>{const nextContextStmt=relativeLevel>0?[generateNextContextExpr(relativeLevel).toStmt()]:[],refExpr=lhs.set(importExpr(Identifiers.reference).callFn([literal(slot)]));return nextContextStmt.concat(refExpr.toConstDecl())}),!0),[reference.name,reference.value]}));return asLiteral(refsParam)}prepareListenerParameter(tagName,outputAst,index){return()=>{const eventName=outputAst.name,bindingFnName=1===outputAst.type?prepareSyntheticListenerFunctionName(eventName,outputAst.phase):sanitizeIdentifier(eventName),handlerName=`${this.templateName}_${tagName}_${bindingFnName}_${index}_listener`,scope=this._bindingScope.nestedScope(this._bindingScope.bindingLevel,EVENT_BINDING_SCOPE_GLOBALS);return prepareEventListenerParameters(outputAst,handlerName,scope)}}}class ValueConverter extends AstMemoryEfficientTransformer{constructor(constantPool,allocateSlot,allocatePureFunctionSlots,definePipe){super(),this.constantPool=constantPool,this.allocateSlot=allocateSlot,this.allocatePureFunctionSlots=allocatePureFunctionSlots,this.definePipe=definePipe,this._pipeBindExprs=[]}visitPipe(pipe,context){const slot=this.allocateSlot(),slotPseudoLocal=`PIPE:${slot}`,pureFunctionSlot=this.allocatePureFunctionSlots(2+pipe.args.length),target=new PropertyRead(pipe.span,pipe.sourceSpan,pipe.nameSpan,new ImplicitReceiver(pipe.span,pipe.sourceSpan),slotPseudoLocal),{identifier,isVarLength}=function pipeBindingCallInfo(args){const identifier=pipeBindingIdentifiers[args.length];return{identifier:identifier||Identifiers.pipeBindV,isVarLength:!identifier}}(pipe.args);this.definePipe(pipe.name,slotPseudoLocal,slot,importExpr(identifier));const args=[pipe.exp,...pipe.args],convertedArgs=isVarLength?this.visitAll([new LiteralArray(pipe.span,pipe.sourceSpan,args)]):this.visitAll(args),pipeBindExpr=new Call(pipe.span,pipe.sourceSpan,target,[new LiteralPrimitive(pipe.span,pipe.sourceSpan,slot),new LiteralPrimitive(pipe.span,pipe.sourceSpan,pureFunctionSlot),...convertedArgs],null);return this._pipeBindExprs.push(pipeBindExpr),pipeBindExpr}updatePipeSlotOffsets(bindingSlots){this._pipeBindExprs.forEach((pipe=>{pipe.args[1].value+=bindingSlots}))}visitLiteralArray(array,context){return new BuiltinFunctionCall(array.span,array.sourceSpan,this.visitAll(array.expressions),(values=>{const literal=literalArr(values);return getLiteralFactory(this.constantPool,literal,this.allocatePureFunctionSlots)}))}visitLiteralMap(map,context){return new BuiltinFunctionCall(map.span,map.sourceSpan,this.visitAll(map.values),(values=>{const literal=literalMap(values.map(((value,index)=>({key:map.keys[index].key,value,quoted:map.keys[index].quoted}))));return getLiteralFactory(this.constantPool,literal,this.allocatePureFunctionSlots)}))}}const pipeBindingIdentifiers=[Identifiers.pipeBind1,Identifiers.pipeBind2,Identifiers.pipeBind3,Identifiers.pipeBind4];const pureFunctionIdentifiers=[Identifiers.pureFunction0,Identifiers.pureFunction1,Identifiers.pureFunction2,Identifiers.pureFunction3,Identifiers.pureFunction4,Identifiers.pureFunction5,Identifiers.pureFunction6,Identifiers.pureFunction7,Identifiers.pureFunction8];function generateNextContextExpr(relativeLevelDiff){return importExpr(Identifiers.nextContext).callFn(relativeLevelDiff>1?[literal(relativeLevelDiff)]:[])}function getLiteralFactory(constantPool,literal$1,allocateSlots){const{literalFactory,literalFactoryArguments}=constantPool.getLiteralFactory(literal$1),startSlot=allocateSlots(1+literalFactoryArguments.length),{identifier,isVarLength}=function pureFunctionCallInfo(args){const identifier=pureFunctionIdentifiers[args.length];return{identifier:identifier||Identifiers.pureFunctionV,isVarLength:!identifier}}(literalFactoryArguments),args=[literal(startSlot),literalFactory];return isVarLength?args.push(literalArr(literalFactoryArguments)):args.push(...literalFactoryArguments),importExpr(identifier).callFn(args)}function getAttributeNameLiterals(name){const[attributeNamespace,attributeName]=splitNsName(name),nameLiteral=literal(attributeName);return attributeNamespace?[literal(0),literal(attributeNamespace),nameLiteral]:[nameLiteral]}class BindingScope{static createRootScope(){return new BindingScope}constructor(bindingLevel=0,parent=null,globals){if(this.bindingLevel=bindingLevel,this.parent=parent,this.globals=globals,this.map=new Map,this.referenceNameIndex=0,this.restoreViewVariable=null,this.usesRestoredViewContext=!1,void 0!==globals)for(const name of globals)this.set(0,name,variable(name))}get(name){let current=this;for(;current;){let value=current.map.get(name);if(null!=value)return current!==this&&(value={retrievalLevel:value.retrievalLevel,lhs:value.lhs,declareLocalCallback:value.declareLocalCallback,declare:!1,priority:value.priority},this.map.set(name,value),this.maybeGenerateSharedContextVar(value),this.maybeRestoreView()),value.declareLocalCallback&&!value.declare&&(value.declare=!0),"function"==typeof value.lhs?value.lhs(this,value.retrievalLevel):value.lhs;current=current.parent}return 0===this.bindingLevel?null:this.getComponentProperty(name)}hasLocal(name){return this.map.has(name)}set(retrievalLevel,name,lhs,priority=0,declareLocalCallback,localRef){if(this.map.has(name)){if(localRef)return this;error(`The name ${name} is already defined in scope to be ${this.map.get(name)}`)}return this.map.set(name,{retrievalLevel,lhs,declare:!1,declareLocalCallback,priority}),this}getLocal(name){return this.get(name)}notifyImplicitReceiverUse(){0!==this.bindingLevel&&(this.map.get("$$shared_ctx$$0").declare=!0)}nestedScope(level,globals){const newScope=new BindingScope(level,this,globals);return level>0&&newScope.generateSharedContextVar(0),newScope}getOrCreateSharedContextVar(retrievalLevel){const bindingKey="$$shared_ctx$$"+retrievalLevel;return this.map.has(bindingKey)||this.generateSharedContextVar(retrievalLevel),this.map.get(bindingKey).lhs}getSharedContextName(retrievalLevel){const sharedCtxObj=this.map.get("$$shared_ctx$$"+retrievalLevel);return sharedCtxObj&&sharedCtxObj.declare?sharedCtxObj.lhs:null}maybeGenerateSharedContextVar(value){if(1===value.priority&&value.retrievalLevel[lhs.set(generateNextContextExpr(relativeLevel)).toConstDecl()],declare:!1,priority:2})}getComponentProperty(name){const componentValue=this.map.get("$$shared_ctx$$0");componentValue.declare=!0,this.maybeRestoreView();const lhs="function"==typeof componentValue.lhs?componentValue.lhs(this,componentValue.retrievalLevel):componentValue.lhs;return"#context"===name?lhs:lhs.prop(name)}maybeRestoreView(){this.isListenerScope()&&(this.parent.restoreViewVariable||(this.parent.restoreViewVariable=variable(this.parent.freshReferenceName())),this.restoreViewVariable=this.parent.restoreViewVariable)}restoreViewStatement(){if(this.restoreViewVariable){const restoreCall=invokeInstruction(null,Identifiers.restoreView,[this.restoreViewVariable]);return this.usesRestoredViewContext?variable("restoredCtx").set(restoreCall).toConstDecl():restoreCall.toStmt()}return null}viewSnapshotStatements(){return this.restoreViewVariable?[this.restoreViewVariable.set(invokeInstruction(null,Identifiers.getCurrentView,[])).toConstDecl()]:[]}isListenerScope(){return this.parent&&this.parent.bindingLevel===this.bindingLevel}variableDeclarations(){let currentContextLevel=0;return Array.from(this.map.values()).filter((value=>value.declare)).sort(((a,b)=>b.retrievalLevel-a.retrievalLevel||b.priority-a.priority)).reduce(((stmts,value)=>{const levelDiff=this.bindingLevel-value.retrievalLevel,currStmts=value.declareLocalCallback(this,levelDiff-currentContextLevel);return currentContextLevel=levelDiff,stmts.concat(currStmts)}),[])}freshReferenceName(){let current=this;for(;current.parent;)current=current.parent;return"_r"+current.referenceNameIndex++}hasRestoreViewVariable(){return!!this.restoreViewVariable}notifyRestoredViewContextUse(){this.usesRestoredViewContext=!0}}class TrackByBindingScope extends BindingScope{constructor(parentScope,globalOverrides){super(parentScope.bindingLevel+1,parentScope),this.globalOverrides=globalOverrides,this.componentAccessCount=0}get(name){if(this.globalOverrides.hasOwnProperty(name))return variable(this.globalOverrides[name]);let current=this.parent;for(;current;){if(current.hasLocal(name))return null;current=current.parent}return this.componentAccessCount++,variable("this").prop(name)}getComponentAccessCount(){return this.componentAccessCount}}function getPropertyInterpolationExpression(interpolation){switch(getInterpolationArgsLength(interpolation)){case 1:return Identifiers.propertyInterpolate;case 3:return Identifiers.propertyInterpolate1;case 5:return Identifiers.propertyInterpolate2;case 7:return Identifiers.propertyInterpolate3;case 9:return Identifiers.propertyInterpolate4;case 11:return Identifiers.propertyInterpolate5;case 13:return Identifiers.propertyInterpolate6;case 15:return Identifiers.propertyInterpolate7;case 17:return Identifiers.propertyInterpolate8;default:return Identifiers.propertyInterpolateV}}function parseTemplate(template,templateUrl,options={}){const{interpolationConfig,preserveWhitespaces,enableI18nLegacyMessageIdFormat}=options,bindingParser=makeBindingParser(interpolationConfig),parseResult=(new HtmlParser).parse(template,templateUrl,{leadingTriviaChars:LEADING_TRIVIA_CHARS,...options,tokenizeExpansionForms:!0,tokenizeBlocks:options.enableBlockSyntax??!0});if(!options.alwaysAttemptHtmlToR3AstConversion&&parseResult.errors&&parseResult.errors.length>0){const parsedTemplate={interpolationConfig,preserveWhitespaces,errors:parseResult.errors,nodes:[],styleUrls:[],styles:[],ngContentSelectors:[]};return options.collectCommentNodes&&(parsedTemplate.commentNodes=[]),parsedTemplate}let rootNodes=parseResult.rootNodes;const i18nMetaVisitor=new I18nMetaVisitor(interpolationConfig,!preserveWhitespaces,enableI18nLegacyMessageIdFormat),i18nMetaResult=i18nMetaVisitor.visitAllWithErrors(rootNodes);if(!options.alwaysAttemptHtmlToR3AstConversion&&i18nMetaResult.errors&&i18nMetaResult.errors.length>0){const parsedTemplate={interpolationConfig,preserveWhitespaces,errors:i18nMetaResult.errors,nodes:[],styleUrls:[],styles:[],ngContentSelectors:[]};return options.collectCommentNodes&&(parsedTemplate.commentNodes=[]),parsedTemplate}rootNodes=i18nMetaResult.rootNodes,preserveWhitespaces||(rootNodes=visitAll(new WhitespaceVisitor,rootNodes),i18nMetaVisitor.hasI18nMeta&&(rootNodes=visitAll(new I18nMetaVisitor(interpolationConfig,!1),rootNodes)));const{nodes,errors,styleUrls,styles,ngContentSelectors,commentNodes}=function htmlAstToRender3Ast(htmlNodes,bindingParser,options){const transformer=new HtmlAstToIvyAst(bindingParser,options),result={nodes:visitAll(transformer,htmlNodes,htmlNodes),errors:bindingParser.errors.concat(transformer.errors),styleUrls:transformer.styleUrls,styles:transformer.styles,ngContentSelectors:transformer.ngContentSelectors};return options.collectCommentNodes&&(result.commentNodes=transformer.commentNodes),result}(rootNodes,bindingParser,{collectCommentNodes:!!options.collectCommentNodes});errors.push(...parseResult.errors,...i18nMetaResult.errors);const parsedTemplate={interpolationConfig,preserveWhitespaces,errors:errors.length>0?errors:null,nodes,styleUrls,styles,ngContentSelectors};return options.collectCommentNodes&&(parsedTemplate.commentNodes=commentNodes),parsedTemplate}const elementRegistry=new DomElementSchemaRegistry;function makeBindingParser(interpolationConfig=DEFAULT_INTERPOLATION_CONFIG){return new BindingParser(new Parser$1(new Lexer),interpolationConfig,elementRegistry,[])}function resolveSanitizationFn(context,isAttribute){switch(context){case SecurityContext.HTML:return importExpr(Identifiers.sanitizeHtml);case SecurityContext.SCRIPT:return importExpr(Identifiers.sanitizeScript);case SecurityContext.STYLE:return isAttribute?importExpr(Identifiers.sanitizeStyle):null;case SecurityContext.URL:return importExpr(Identifiers.sanitizeUrl);case SecurityContext.RESOURCE_URL:return importExpr(Identifiers.sanitizeResourceUrl);default:return null}}function trustedConstAttribute(tagName,attr){const value=asLiteral(attr.value);if(!isTrustedTypesSink(tagName,attr.name))return value;switch(elementRegistry.securityContext(tagName,attr.name,!0)){case SecurityContext.HTML:return taggedTemplate(importExpr(Identifiers.trustConstantHtml),new TemplateLiteral([new TemplateLiteralElement(attr.value)],[]),void 0,attr.valueSpan);case SecurityContext.RESOURCE_URL:return taggedTemplate(importExpr(Identifiers.trustConstantResourceUrl),new TemplateLiteral([new TemplateLiteralElement(attr.value)],[]),void 0,attr.valueSpan);default:return value}}function isTextNode(node){return node instanceof Text$3||node instanceof BoundText||node instanceof Icu$1}function hasTextChildrenOnly(children){return children.every(isTextNode)}function getBindingFunctionParams(deferredParams,name,eagerParams){return()=>{const value=deferredParams(),fnParams=Array.isArray(value)?value:[value];return eagerParams&&fnParams.push(...eagerParams),name&&fnParams.unshift(literal(name)),fnParams}}const NG_I18N_CLOSURE_MODE="ngI18nClosureMode";function createClosureModeGuard(){return typeofExpr(variable(NG_I18N_CLOSURE_MODE)).notIdentical(literal("undefined",STRING_TYPE)).and(variable(NG_I18N_CLOSURE_MODE))}function createQueryCreateCall(query,constantPool,queryTypeFns,prependParams){const parameters=[];void 0!==prependParams&¶meters.push(...prependParams),query.isSignal&¶meters.push(new ReadPropExpr(variable(CONTEXT_NAME),query.propertyName)),parameters.push(function getQueryPredicate(query,constantPool){if(Array.isArray(query.predicate)){let predicate=[];return query.predicate.forEach((selector=>{const selectors=selector.split(",").map((token=>literal(token.trim())));predicate.push(...selectors)})),constantPool.getConstLiteral(literalArr(predicate),!0)}switch(query.predicate.forwardRef){case 0:case 2:return query.predicate.expression;case 1:return importExpr(Identifiers.resolveForwardRef).callFn([query.predicate.expression])}}(query,constantPool),literal(function toQueryFlags(query){return(query.descendants?1:0)|(query.static?2:0)|(query.emitDistinctChangesOnly?4:0)}(query))),query.read&¶meters.push(query.read);return importExpr(query.isSignal?queryTypeFns.signalBased:queryTypeFns.nonSignal).callFn(parameters)}const queryAdvancePlaceholder=Symbol("queryAdvancePlaceholder");function collapseAdvanceStatements(statements){const result=[];let advanceCollapseCount=0;const flushAdvanceCount=()=>{advanceCollapseCount>0&&(result.unshift(importExpr(Identifiers.queryAdvance).callFn(1===advanceCollapseCount?[]:[literal(advanceCollapseCount)]).toStmt()),advanceCollapseCount=0)};for(let i=statements.length-1;i>=0;i--){const st=statements[i];st===queryAdvancePlaceholder?advanceCollapseCount++:(flushAdvanceCount(),result.unshift(st))}return flushAdvanceCount(),result}const ATTR_REGEX=/attr\.([^\]]+)/,HOST_ATTR="_nghost-%COMP%",CONTENT_ATTR="_ngcontent-%COMP%";function baseDirectiveFields(meta,constantPool,bindingParser){const definitionMap=new DefinitionMap,selectors=parseSelectorToR3Selector(meta.selector);return definitionMap.set("type",meta.type.value),selectors.length>0&&definitionMap.set("selectors",asLiteral(selectors)),meta.queries.length>0&&definitionMap.set("contentQueries",function createContentQueriesFunction(queries,constantPool,name){const createStatements=[],updateStatements=[],tempAllocator=temporaryAllocator((st=>updateStatements.push(st)),TEMPORARY_NAME);for(const query of queries){if(createStatements.push(createQueryCreateCall(query,constantPool,{nonSignal:Identifiers.contentQuery,signalBased:Identifiers.contentQuerySignal},[variable("dirIndex")]).toStmt()),query.isSignal){updateStatements.push(queryAdvancePlaceholder);continue}const temporary=tempAllocator(),getQueryList=importExpr(Identifiers.loadQuery).callFn([]),refresh=importExpr(Identifiers.queryRefresh).callFn([temporary.set(getQueryList)]),updateDirective=variable(CONTEXT_NAME).prop(query.propertyName).set(query.first?temporary.prop("first"):temporary);updateStatements.push(refresh.and(updateDirective).toStmt())}const contentQueriesFnName=name?`${name}_ContentQueries`:null;return fn([new FnParam(RENDER_FLAGS,NUMBER_TYPE),new FnParam(CONTEXT_NAME,null),new FnParam("dirIndex",null)],[renderFlagCheckIfStmt(1,createStatements),renderFlagCheckIfStmt(2,collapseAdvanceStatements(updateStatements))],INFERRED_TYPE,null,contentQueriesFnName)}(meta.queries,constantPool,meta.name)),meta.viewQueries.length&&definitionMap.set("viewQuery",function createViewQueriesFunction(viewQueries,constantPool,name){const createStatements=[],updateStatements=[],tempAllocator=temporaryAllocator((st=>updateStatements.push(st)),TEMPORARY_NAME);viewQueries.forEach((query=>{const queryDefinitionCall=createQueryCreateCall(query,constantPool,{signalBased:Identifiers.viewQuerySignal,nonSignal:Identifiers.viewQuery});if(createStatements.push(queryDefinitionCall.toStmt()),query.isSignal)return void updateStatements.push(queryAdvancePlaceholder);const temporary=tempAllocator(),getQueryList=importExpr(Identifiers.loadQuery).callFn([]),refresh=importExpr(Identifiers.queryRefresh).callFn([temporary.set(getQueryList)]),updateDirective=variable(CONTEXT_NAME).prop(query.propertyName).set(query.first?temporary.prop("first"):temporary);updateStatements.push(refresh.and(updateDirective).toStmt())}));const viewQueryFnName=name?`${name}_Query`:null;return fn([new FnParam(RENDER_FLAGS,NUMBER_TYPE),new FnParam(CONTEXT_NAME,null)],[renderFlagCheckIfStmt(1,createStatements),renderFlagCheckIfStmt(2,collapseAdvanceStatements(updateStatements))],INFERRED_TYPE,null,viewQueryFnName)}(meta.viewQueries,constantPool,meta.name)),definitionMap.set("hostBindings",function createHostBindingsFunction(hostBindingsMetadata,typeSourceSpan,bindingParser,constantPool,selector,name,definitionMap){const bindings=bindingParser.createBoundHostProperties(hostBindingsMetadata.properties,typeSourceSpan),eventBindings=bindingParser.createDirectiveHostEventAsts(hostBindingsMetadata.listeners,typeSourceSpan);if(USE_TEMPLATE_PIPELINE||hostBindingsMetadata.useTemplatePipeline){hostBindingsMetadata.specialAttributes.styleAttr&&(hostBindingsMetadata.attributes.style=literal(hostBindingsMetadata.specialAttributes.styleAttr)),hostBindingsMetadata.specialAttributes.classAttr&&(hostBindingsMetadata.attributes.class=literal(hostBindingsMetadata.specialAttributes.classAttr));const hostJob=function ingestHostBinding(input,bindingParser,constantPool){const job=new HostBindingCompilationJob(input.componentName,constantPool,compatibilityMode);for(const property of input.properties??[]){let bindingKind=BindingKind.Property;property.name.startsWith("attr.")&&(property.name=property.name.substring(5),bindingKind=BindingKind.Attribute),property.isAnimation&&(bindingKind=BindingKind.Animation),ingestHostProperty(job,property,bindingKind,bindingParser.calcPossibleSecurityContexts(input.componentSelector,property.name,bindingKind===BindingKind.Attribute).filter((context=>context!==SecurityContext.NONE)))}for(const[name,expr]of Object.entries(input.attributes)??[])ingestHostAttribute(job,name,expr,bindingParser.calcPossibleSecurityContexts(input.componentSelector,name,!0).filter((context=>context!==SecurityContext.NONE)));for(const event of input.events??[])ingestHostEvent(job,event);return job}({componentName:name,componentSelector:selector,properties:bindings,events:eventBindings,attributes:hostBindingsMetadata.attributes},bindingParser,constantPool);transform(hostJob,CompilationJobKind.Host),definitionMap.set("hostAttrs",hostJob.root.attributes);const varCount=hostJob.root.vars;return null!==varCount&&varCount>0&&definitionMap.set("hostVars",literal(varCount)),function emitHostBindingFunction(job){if(null===job.root.fnName)throw new Error("AssertionError: host binding function is unnamed");const createStatements=[];for(const op of job.root.create){if(op.kind!==OpKind.Statement)throw new Error(`AssertionError: expected all create ops to have been compiled, but got ${OpKind[op.kind]}`);createStatements.push(op.statement)}const updateStatements=[];for(const op of job.root.update){if(op.kind!==OpKind.Statement)throw new Error(`AssertionError: expected all update ops to have been compiled, but got ${OpKind[op.kind]}`);updateStatements.push(op.statement)}if(0===createStatements.length&&0===updateStatements.length)return null;const createCond=maybeGenerateRfBlock(1,createStatements),updateCond=maybeGenerateRfBlock(2,updateStatements);return fn([new FnParam("rf"),new FnParam("ctx")],[...createCond,...updateCond],void 0,void 0,job.root.fnName)}(hostJob)}let bindingId=0;const getNextBindingId=()=>""+bindingId++,bindingContext=variable(CONTEXT_NAME),styleBuilder=new StylingBuilder(bindingContext),{styleAttr,classAttr}=hostBindingsMetadata.specialAttributes;void 0!==styleAttr&&styleBuilder.registerStyleAttr(styleAttr);void 0!==classAttr&&styleBuilder.registerClassAttr(classAttr);const createInstructions=[],updateInstructions=[],updateVariables=[],hostBindingSourceSpan=typeSourceSpan;eventBindings&&eventBindings.length&&createInstructions.push(...function createHostListeners(eventBindings,name){const listenerParams=[],syntheticListenerParams=[],instructions=[];for(const binding of eventBindings){let bindingName=binding.name&&sanitizeIdentifier(binding.name);const bindingFnName=1===binding.type?prepareSyntheticListenerFunctionName(bindingName,binding.targetOrPhase):bindingName,handlerName=name&&bindingName?`${name}_${bindingFnName}_HostBindingHandler`:null,params=prepareEventListenerParameters(BoundEvent.fromParsedEvent(binding),handlerName);1==binding.type?syntheticListenerParams.push(params):listenerParams.push(params)}for(const params of syntheticListenerParams)instructions.push({reference:Identifiers.syntheticHostListener,paramsOrFn:params,span:null});for(const params of listenerParams)instructions.push({reference:Identifiers.listener,paramsOrFn:params,span:null});return instructions}(eventBindings,name));const allOtherBindings=[];let valueConverter,totalHostVarsCount=0;bindings&&bindings.forEach((binding=>{styleBuilder.registerInputBasedOnName(binding.name,binding.expression,hostBindingSourceSpan)?totalHostVarsCount+=MIN_STYLING_BINDING_SLOTS_REQUIRED:(allOtherBindings.push(binding),totalHostVarsCount++)}));const getValueConverter=()=>{if(!valueConverter){valueConverter=new ValueConverter(constantPool,(()=>error("Unexpected node")),(numSlots=>{const originalVarsCount=totalHostVarsCount;return totalHostVarsCount+=numSlots,originalVarsCount}),(()=>error("Unexpected pipe")))}return valueConverter},propertyBindings=[],attributeBindings=[],syntheticHostBindings=[];for(const binding of allOtherBindings){const value=binding.expression.visit(getValueConverter()),bindingExpr=bindingFn(bindingContext,value,getNextBindingId),{bindingName,instruction,isAttribute}=getBindingNameAndInstruction(binding),securityContexts=bindingParser.calcPossibleSecurityContexts(selector,bindingName,isAttribute).filter((context=>context!==SecurityContext.NONE));let sanitizerFn=null;securityContexts.length&&(sanitizerFn=2===securityContexts.length&&securityContexts.indexOf(SecurityContext.URL)>-1&&securityContexts.indexOf(SecurityContext.RESOURCE_URL)>-1?importExpr(Identifiers.sanitizeUrlOrResourceUrl):resolveSanitizationFn(securityContexts[0],isAttribute));const instructionParams=[literal(bindingName),bindingExpr.currValExpr];sanitizerFn?instructionParams.push(sanitizerFn):isIframeSecuritySensitiveAttr(bindingName)&&instructionParams.push(importExpr(Identifiers.validateIframeAttribute)),updateVariables.push(...bindingExpr.stmts),instruction===Identifiers.hostProperty?propertyBindings.push(instructionParams):instruction===Identifiers.attribute?attributeBindings.push(instructionParams):instruction===Identifiers.syntheticHostProperty?syntheticHostBindings.push(instructionParams):updateInstructions.push({reference:instruction,paramsOrFn:instructionParams,span:null})}for(const bindingParams of propertyBindings)updateInstructions.push({reference:Identifiers.hostProperty,paramsOrFn:bindingParams,span:null});for(const bindingParams of attributeBindings)updateInstructions.push({reference:Identifiers.attribute,paramsOrFn:bindingParams,span:null});for(const bindingParams of syntheticHostBindings)updateInstructions.push({reference:Identifiers.syntheticHostProperty,paramsOrFn:bindingParams,span:null});const hostAttrs=function convertAttributesToExpressions(attributes){const values=[];for(let key of Object.getOwnPropertyNames(attributes)){const value=attributes[key];values.push(literal(key),value)}return values}(hostBindingsMetadata.attributes);styleBuilder.assignHostAttrs(hostAttrs,definitionMap),styleBuilder.hasBindings&&styleBuilder.buildUpdateLevelInstructions(getValueConverter()).forEach((instruction=>{for(const call of instruction.calls){totalHostVarsCount+=Math.max(call.allocateBindingSlots-MIN_STYLING_BINDING_SLOTS_REQUIRED,0);const{params,stmts}=convertStylingCall(call,bindingContext,bindingFn,getNextBindingId);updateVariables.push(...stmts),updateInstructions.push({reference:instruction.reference,paramsOrFn:params,span:null})}}));totalHostVarsCount&&definitionMap.set("hostVars",literal(totalHostVarsCount));if(createInstructions.length>0||updateInstructions.length>0){const hostBindingsFnName=name?`${name}_HostBindings`:null,statements=[];return createInstructions.length>0&&statements.push(renderFlagCheckIfStmt(1,getInstructionStatements(createInstructions))),updateInstructions.length>0&&statements.push(renderFlagCheckIfStmt(2,updateVariables.concat(getInstructionStatements(updateInstructions)))),fn([new FnParam(RENDER_FLAGS,NUMBER_TYPE),new FnParam(CONTEXT_NAME,null)],statements,INFERRED_TYPE,null,hostBindingsFnName)}return null}(meta.host,meta.typeSourceSpan,bindingParser,constantPool,meta.selector||"",meta.name,definitionMap)),definitionMap.set("inputs",conditionallyCreateDirectiveBindingLiteral(meta.inputs,!0)),definitionMap.set("outputs",conditionallyCreateDirectiveBindingLiteral(meta.outputs)),null!==meta.exportAs&&definitionMap.set("exportAs",literalArr(meta.exportAs.map((e=>literal(e))))),meta.isStandalone&&definitionMap.set("standalone",literal(!0)),meta.isSignal&&definitionMap.set("signals",literal(!0)),definitionMap}function addFeatures(definitionMap,meta){const features=[],providers=meta.providers,viewProviders=meta.viewProviders,inputKeys=Object.keys(meta.inputs);if(providers||viewProviders){const args=[providers||new LiteralArrayExpr([])];viewProviders&&args.push(viewProviders),features.push(importExpr(Identifiers.ProvidersFeature).callFn(args))}for(const key of inputKeys)if(null!==meta.inputs[key].transformFunction){features.push(importExpr(Identifiers.InputTransformsFeatureFeature));break}meta.hostDirectives?.length&&features.push(importExpr(Identifiers.HostDirectivesFeature).callFn([createHostDirectivesFeatureArg(meta.hostDirectives)])),meta.usesInheritance&&features.push(importExpr(Identifiers.InheritDefinitionFeature)),meta.fullInheritance&&features.push(importExpr(Identifiers.CopyDefinitionFeature)),meta.lifecycle.usesOnChanges&&features.push(importExpr(Identifiers.NgOnChangesFeature)),meta.hasOwnProperty("template")&&meta.isStandalone&&features.push(importExpr(Identifiers.StandaloneFeature)),features.length&&definitionMap.set("features",literalArr(features))}function compileDirectiveFromMetadata(meta,constantPool,bindingParser){const definitionMap=baseDirectiveFields(meta,constantPool,bindingParser);addFeatures(definitionMap,meta);return{expression:importExpr(Identifiers.defineDirective).callFn([definitionMap.toLiteralMap()],void 0,!0),type:createDirectiveType(meta),statements:[]}}function compileComponentFromMetadata(meta,constantPool,bindingParser){const definitionMap=baseDirectiveFields(meta,constantPool,bindingParser);addFeatures(definitionMap,meta);const selector=meta.selector&&CssSelector.parse(meta.selector),firstSelector=selector&&selector[0];if(firstSelector){const selectorAttributes=firstSelector.getAttrs();selectorAttributes.length&&definitionMap.set("attrs",constantPool.getConstLiteral(literalArr(selectorAttributes.map((value=>literal(null!=value?value:void 0)))),!0))}const templateTypeName=meta.name,templateName=templateTypeName?`${templateTypeName}_Template`:null;let allDeferrableDepsFn=null;if(meta.deferBlocks.size>0&&meta.deferrableTypes.size>0&&1===meta.deferBlockDepsEmitMode){allDeferrableDepsFn=function createDeferredDepsFunction(constantPool,name,deps){const dependencyExp=[];for(const[symbolName,{importPath,isDefaultImport}]of deps){const innerFn=arrowFn([new FnParam("m",DYNAMIC_TYPE)],variable("m").prop(isDefaultImport?"default":symbolName)),importExpr=new DynamicImportExpr(importPath).prop("then").callFn([innerFn]);dependencyExp.push(importExpr)}const depsFnExpr=arrowFn([],literalArr(dependencyExp));return constantPool.statements.push(depsFnExpr.toDeclStmt(name,StmtModifier.Final)),variable(name)}(constantPool,`${templateTypeName}_DeferFn`,meta.deferrableTypes)}if(USE_TEMPLATE_PIPELINE||meta.useTemplatePipeline){const tpl=function ingestComponent(componentName,template,constantPool,relativeContextFilePath,i18nUseExternalIds,deferBlocksMeta,allDeferrableDepsFn){const job=new ComponentCompilationJob(componentName,constantPool,compatibilityMode,relativeContextFilePath,i18nUseExternalIds,deferBlocksMeta,allDeferrableDepsFn);return ingestNodes(job.root,template),job}(meta.name,meta.template.nodes,constantPool,meta.relativeContextFilePath,meta.i18nUseExternalIds,meta.deferBlocks,allDeferrableDepsFn);transform(tpl,CompilationJobKind.Tmpl);const templateFn=emitTemplateFn(tpl,constantPool);null!==tpl.contentSelectors&&definitionMap.set("ngContentSelectors",tpl.contentSelectors),definitionMap.set("decls",literal(tpl.root.decls)),definitionMap.set("vars",literal(tpl.root.vars)),tpl.consts.length>0&&(tpl.constsInitializers.length>0?definitionMap.set("consts",arrowFn([],[...tpl.constsInitializers,new ReturnStatement(literalArr(tpl.consts))])):definitionMap.set("consts",literalArr(tpl.consts))),definitionMap.set("template",templateFn)}else{const template=meta.template,templateBuilder=new TemplateDefinitionBuilder(constantPool,BindingScope.createRootScope(),0,templateTypeName,null,null,templateName,Identifiers.namespaceHTML,meta.relativeContextFilePath,meta.i18nUseExternalIds,meta.deferBlocks,new Map,allDeferrableDepsFn),templateFunctionExpression=templateBuilder.buildTemplateFunction(template.nodes,[]),ngContentSelectors=templateBuilder.getNgContentSelectors();ngContentSelectors&&definitionMap.set("ngContentSelectors",ngContentSelectors),definitionMap.set("decls",literal(templateBuilder.getConstCount())),definitionMap.set("vars",literal(templateBuilder.getVarCount()));const{constExpressions,prepareStatements}=templateBuilder.getConsts();if(constExpressions.length>0){let constsExpr=literalArr(constExpressions);prepareStatements.length>0&&(constsExpr=arrowFn([],[...prepareStatements,new ReturnStatement(constsExpr)])),definitionMap.set("consts",constsExpr)}definitionMap.set("template",templateFunctionExpression)}if(3!==meta.declarationListEmitMode&&meta.declarations.length>0)definitionMap.set("dependencies",function compileDeclarationList(list,mode){switch(mode){case 0:return list;case 1:return arrowFn([],list);case 2:return arrowFn([],list.prop("map").callFn([importExpr(Identifiers.resolveForwardRef)]));case 3:throw new Error("Unsupported with an array of pre-resolved dependencies")}}(literalArr(meta.declarations.map((decl=>decl.type))),meta.declarationListEmitMode));else if(3===meta.declarationListEmitMode){const args=[meta.type.value];meta.rawImports&&args.push(meta.rawImports),definitionMap.set("dependencies",importExpr(Identifiers.getComponentDepsFactory).callFn(args))}if(null===meta.encapsulation&&(meta.encapsulation=ViewEncapsulation.Emulated),meta.styles&&meta.styles.length){const styleValues=meta.encapsulation==ViewEncapsulation.Emulated?function compileStyles(styles,selector,hostSelector){const shadowCss=new ShadowCss;return styles.map((style=>shadowCss.shimCssText(style,selector,hostSelector)))}(meta.styles,CONTENT_ATTR,HOST_ATTR):meta.styles,styleNodes=styleValues.reduce(((result,style)=>(style.trim().length>0&&result.push(constantPool.getConstLiteral(literal(style))),result)),[]);styleNodes.length>0&&definitionMap.set("styles",literalArr(styleNodes))}else meta.encapsulation===ViewEncapsulation.Emulated&&(meta.encapsulation=ViewEncapsulation.None);meta.encapsulation!==ViewEncapsulation.Emulated&&definitionMap.set("encapsulation",literal(meta.encapsulation)),null!==meta.animations&&definitionMap.set("data",literalMap([{key:"animation",value:meta.animations,quoted:!1}])),null!==meta.changeDetection&&("number"==typeof meta.changeDetection&&meta.changeDetection!==ChangeDetectionStrategy.Default?definitionMap.set("changeDetection",literal(meta.changeDetection)):"object"==typeof meta.changeDetection&&definitionMap.set("changeDetection",meta.changeDetection));return{expression:importExpr(Identifiers.defineComponent).callFn([definitionMap.toLiteralMap()],void 0,!0),type:createComponentType(meta),statements:[]}}function createComponentType(meta){const typeParams=createBaseDirectiveTypeParams(meta);return typeParams.push(stringArrayAsType(meta.template.ngContentSelectors)),typeParams.push(expressionType(literal(meta.isStandalone))),typeParams.push(createHostDirectivesType(meta)),meta.isSignal&&typeParams.push(expressionType(literal(meta.isSignal))),expressionType(importExpr(Identifiers.ComponentDeclaration,typeParams))}function stringMapAsLiteralExpression(map){return literalMap(Object.keys(map).map((key=>({key,value:literal(Array.isArray(map[key])?map[key][0]:map[key]),quoted:!0}))))}function stringArrayAsType(arr){return arr.length>0?expressionType(literalArr(arr.map((value=>literal(value))))):NONE_TYPE}function createBaseDirectiveTypeParams(meta){const selectorForType=null!==meta.selector?meta.selector.replace(/\n/g,""):null;return[typeWithParameters(meta.type.type,meta.typeArgumentCount),null!==selectorForType?(str=selectorForType,expressionType(literal(str))):NONE_TYPE,null!==meta.exportAs?stringArrayAsType(meta.exportAs):NONE_TYPE,expressionType(getInputsTypeExpression(meta)),expressionType(stringMapAsLiteralExpression(meta.outputs)),stringArrayAsType(meta.queries.map((q=>q.propertyName)))];var str}function getInputsTypeExpression(meta){return literalMap(Object.keys(meta.inputs).map((key=>{const value=meta.inputs[key],values=[{key:"alias",value:literal(value.bindingPropertyName),quoted:!0},{key:"required",value:literal(value.required),quoted:!0}];return value.isSignal&&values.push({key:"isSignal",value:literal(value.isSignal),quoted:!0}),{key,value:literalMap(values),quoted:!0}})))}function createDirectiveType(meta){const typeParams=createBaseDirectiveTypeParams(meta);return typeParams.push(NONE_TYPE),typeParams.push(expressionType(literal(meta.isStandalone))),typeParams.push(createHostDirectivesType(meta)),meta.isSignal&&typeParams.push(expressionType(literal(meta.isSignal))),expressionType(importExpr(Identifiers.DirectiveDeclaration,typeParams))}function bindingFn(implicit,value,getNextBindingIdFn){return convertPropertyBinding(null,implicit,value,getNextBindingIdFn())}function convertStylingCall(call,bindingContext,bindingFn,getNextBindingIdFn){const stmts=[];return{params:call.params((value=>{const result=bindingFn(bindingContext,value,getNextBindingIdFn);return Array.isArray(result.stmts)&&result.stmts.length>0&&stmts.push(...result.stmts),result.currValExpr})),stmts}}function getBindingNameAndInstruction(binding){let instruction,bindingName=binding.name;const attrMatches=bindingName.match(ATTR_REGEX);return attrMatches?(bindingName=attrMatches[1],instruction=Identifiers.attribute):binding.isAnimation?(bindingName=prepareSyntheticPropertyName(bindingName),instruction=Identifiers.syntheticHostProperty):instruction=Identifiers.hostProperty,{bindingName,instruction,isAttribute:!!attrMatches}}const HOST_REG_EXP=/^(?:\[([^\]]+)\])|(?:\(([^\)]+)\))$/;function parseHostBindings(host){const attributes={},listeners={},properties={},specialAttributes={};for(const key of Object.keys(host)){const value=host[key],matches=key.match(HOST_REG_EXP);if(null===matches)switch(key){case"class":if("string"!=typeof value)throw new Error("Class binding must be string");specialAttributes.classAttr=value;break;case"style":if("string"!=typeof value)throw new Error("Style binding must be string");specialAttributes.styleAttr=value;break;default:attributes[key]="string"==typeof value?literal(value):value}else if(null!=matches[1]){if("string"!=typeof value)throw new Error("Property binding must be string");properties[matches[1]]=value}else if(null!=matches[2]){if("string"!=typeof value)throw new Error("Event binding must be string");listeners[matches[2]]=value}}return{attributes,listeners,properties,specialAttributes}}function verifyHostBindings(bindings,sourceSpan){const bindingParser=makeBindingParser();return bindingParser.createDirectiveHostEventAsts(bindings.listeners,sourceSpan),bindingParser.createBoundHostProperties(bindings.properties,sourceSpan),bindingParser.errors}function encapsulateStyle(style){return(new ShadowCss).shimCssText(style,CONTENT_ATTR,HOST_ATTR)}function createHostDirectivesType(meta){return meta.hostDirectives?.length?expressionType(literalArr(meta.hostDirectives.map((hostMeta=>literalMap([{key:"directive",value:typeofExpr(hostMeta.directive.type),quoted:!1},{key:"inputs",value:stringMapAsLiteralExpression(hostMeta.inputs||{}),quoted:!1},{key:"outputs",value:stringMapAsLiteralExpression(hostMeta.outputs||{}),quoted:!1}]))))):NONE_TYPE}function createHostDirectivesFeatureArg(hostDirectives){const expressions=[];let hasForwardRef=!1;for(const current of hostDirectives){if(current.inputs||current.outputs){const keys=[{key:"directive",value:current.directive.type,quoted:!1}];if(current.inputs){const inputsLiteral=createHostDirectivesMappingArray(current.inputs);inputsLiteral&&keys.push({key:"inputs",value:inputsLiteral,quoted:!1})}if(current.outputs){const outputsLiteral=createHostDirectivesMappingArray(current.outputs);outputsLiteral&&keys.push({key:"outputs",value:outputsLiteral,quoted:!1})}expressions.push(literalMap(keys))}else expressions.push(current.directive.type);current.isForwardReference&&(hasForwardRef=!0)}return hasForwardRef?new FunctionExpr([],[new ReturnStatement(literalArr(expressions))]):literalArr(expressions)}function createHostDirectivesMappingArray(mapping){const elements=[];for(const publicName in mapping)mapping.hasOwnProperty(publicName)&&elements.push(literal(publicName),literal(mapping[publicName]));return elements.length>0?literalArr(elements):null}class R3TargetBinder{constructor(directiveMatcher){this.directiveMatcher=directiveMatcher}bind(target){if(!target.template)throw new Error("Binding without a template not yet supported");const scope=Scope.apply(target.template),scopedNodeEntities=function extractScopedNodeEntities(rootScope){const entityMap=new Map;function extractScopeEntities(scope){if(entityMap.has(scope.rootNode))return entityMap.get(scope.rootNode);const currentEntities=scope.namedEntities;let entities;return entities=null!==scope.parentScope?new Map([...extractScopeEntities(scope.parentScope),...currentEntities]):new Map(currentEntities),entityMap.set(scope.rootNode,entities),entities}const scopesToProcess=[rootScope];for(;scopesToProcess.length>0;){const scope=scopesToProcess.pop();for(const childScope of scope.childScopes.values())scopesToProcess.push(childScope);extractScopeEntities(scope)}const templateEntities=new Map;for(const[template,entities]of entityMap)templateEntities.set(template,new Set(entities.values()));return templateEntities}(scope),{directives,eagerDirectives,bindings,references}=DirectiveBinder.apply(target.template,this.directiveMatcher),{expressions,symbols,nestingLevel,usedPipes,eagerPipes,deferBlocks}=TemplateBinder.applyWithScope(target.template,scope);return new R3BoundTarget(target,directives,eagerDirectives,bindings,references,expressions,symbols,nestingLevel,scopedNodeEntities,usedPipes,eagerPipes,deferBlocks)}}class Scope{constructor(parentScope,rootNode){this.parentScope=parentScope,this.rootNode=rootNode,this.namedEntities=new Map,this.elementsInScope=new Set,this.childScopes=new Map,this.isDeferred=!(null===parentScope||!parentScope.isDeferred)||rootNode instanceof DeferredBlock}static newRootScope(){return new Scope(null,null)}static apply(template){const scope=Scope.newRootScope();return scope.ingest(template),scope}ingest(nodeOrNodes){nodeOrNodes instanceof Template?(nodeOrNodes.variables.forEach((node=>this.visitVariable(node))),nodeOrNodes.children.forEach((node=>node.visit(this)))):nodeOrNodes instanceof IfBlockBranch?(null!==nodeOrNodes.expressionAlias&&this.visitVariable(nodeOrNodes.expressionAlias),nodeOrNodes.children.forEach((node=>node.visit(this)))):nodeOrNodes instanceof ForLoopBlock?(this.visitVariable(nodeOrNodes.item),Object.values(nodeOrNodes.contextVariables).forEach((v=>this.visitVariable(v))),nodeOrNodes.children.forEach((node=>node.visit(this)))):nodeOrNodes instanceof SwitchBlockCase||nodeOrNodes instanceof ForLoopBlockEmpty||nodeOrNodes instanceof DeferredBlock||nodeOrNodes instanceof DeferredBlockError||nodeOrNodes instanceof DeferredBlockPlaceholder||nodeOrNodes instanceof DeferredBlockLoading?nodeOrNodes.children.forEach((node=>node.visit(this))):nodeOrNodes.forEach((node=>node.visit(this)))}visitElement(element){element.references.forEach((node=>this.visitReference(node))),element.children.forEach((node=>node.visit(this))),this.elementsInScope.add(element)}visitTemplate(template){template.references.forEach((node=>this.visitReference(node))),this.ingestScopedNode(template)}visitVariable(variable){this.maybeDeclare(variable)}visitReference(reference){this.maybeDeclare(reference)}visitDeferredBlock(deferred){this.ingestScopedNode(deferred),deferred.placeholder?.visit(this),deferred.loading?.visit(this),deferred.error?.visit(this)}visitDeferredBlockPlaceholder(block){this.ingestScopedNode(block)}visitDeferredBlockError(block){this.ingestScopedNode(block)}visitDeferredBlockLoading(block){this.ingestScopedNode(block)}visitSwitchBlock(block){block.cases.forEach((node=>node.visit(this)))}visitSwitchBlockCase(block){this.ingestScopedNode(block)}visitForLoopBlock(block){this.ingestScopedNode(block),block.empty?.visit(this)}visitForLoopBlockEmpty(block){this.ingestScopedNode(block)}visitIfBlock(block){block.branches.forEach((node=>node.visit(this)))}visitIfBlockBranch(block){this.ingestScopedNode(block)}visitContent(content){}visitBoundAttribute(attr){}visitBoundEvent(event){}visitBoundText(text){}visitText(text){}visitTextAttribute(attr){}visitIcu(icu){}visitDeferredTrigger(trigger){}visitUnknownBlock(block){}maybeDeclare(thing){this.namedEntities.has(thing.name)||this.namedEntities.set(thing.name,thing)}lookup(name){return this.namedEntities.has(name)?this.namedEntities.get(name):null!==this.parentScope?this.parentScope.lookup(name):null}getChildScope(node){const res=this.childScopes.get(node);if(void 0===res)throw new Error(`Assertion error: child scope for ${node} not found`);return res}ingestScopedNode(node){const scope=new Scope(this,node);scope.ingest(node),this.childScopes.set(node,scope)}}class DirectiveBinder{constructor(matcher,directives,eagerDirectives,bindings,references){this.matcher=matcher,this.directives=directives,this.eagerDirectives=eagerDirectives,this.bindings=bindings,this.references=references,this.isInDeferBlock=!1}static apply(template,selectorMatcher){const directives=new Map,bindings=new Map,references=new Map,eagerDirectives=[];return new DirectiveBinder(selectorMatcher,directives,eagerDirectives,bindings,references).ingest(template),{directives,eagerDirectives,bindings,references}}ingest(template){template.forEach((node=>node.visit(this)))}visitElement(element){this.visitElementOrTemplate(element)}visitTemplate(template){this.visitElementOrTemplate(template)}visitElementOrTemplate(node){const cssSelector=createCssSelectorFromNode(node),directives=[];this.matcher.match(cssSelector,((_selector,results)=>directives.push(...results))),directives.length>0&&(this.directives.set(node,directives),this.isInDeferBlock||this.eagerDirectives.push(...directives)),node.references.forEach((ref=>{let dirTarget=null;if(""===ref.value.trim())dirTarget=directives.find((dir=>dir.isComponent))||null;else if(dirTarget=directives.find((dir=>null!==dir.exportAs&&dir.exportAs.some((value=>value===ref.value))))||null,null===dirTarget)return;null!==dirTarget?this.references.set(ref,{directive:dirTarget,node}):this.references.set(ref,node)}));const setAttributeBinding=(attribute,ioType)=>{const dir=directives.find((dir=>dir[ioType].hasBindingPropertyName(attribute.name))),binding=void 0!==dir?dir:node;this.bindings.set(attribute,binding)};node.inputs.forEach((input=>setAttributeBinding(input,"inputs"))),node.attributes.forEach((attr=>setAttributeBinding(attr,"inputs"))),node instanceof Template&&node.templateAttrs.forEach((attr=>setAttributeBinding(attr,"inputs"))),node.outputs.forEach((output=>setAttributeBinding(output,"outputs"))),node.children.forEach((child=>child.visit(this)))}visitDeferredBlock(deferred){const wasInDeferBlock=this.isInDeferBlock;this.isInDeferBlock=!0,deferred.children.forEach((child=>child.visit(this))),this.isInDeferBlock=wasInDeferBlock,deferred.placeholder?.visit(this),deferred.loading?.visit(this),deferred.error?.visit(this)}visitDeferredBlockPlaceholder(block){block.children.forEach((child=>child.visit(this)))}visitDeferredBlockError(block){block.children.forEach((child=>child.visit(this)))}visitDeferredBlockLoading(block){block.children.forEach((child=>child.visit(this)))}visitSwitchBlock(block){block.cases.forEach((node=>node.visit(this)))}visitSwitchBlockCase(block){block.children.forEach((node=>node.visit(this)))}visitForLoopBlock(block){block.item.visit(this),Object.values(block.contextVariables).forEach((v=>v.visit(this))),block.children.forEach((node=>node.visit(this))),block.empty?.visit(this)}visitForLoopBlockEmpty(block){block.children.forEach((node=>node.visit(this)))}visitIfBlock(block){block.branches.forEach((node=>node.visit(this)))}visitIfBlockBranch(block){block.expressionAlias?.visit(this),block.children.forEach((node=>node.visit(this)))}visitContent(content){}visitVariable(variable){}visitReference(reference){}visitTextAttribute(attribute){}visitBoundAttribute(attribute){}visitBoundEvent(attribute){}visitBoundAttributeOrEvent(node){}visitText(text){}visitBoundText(text){}visitIcu(icu){}visitDeferredTrigger(trigger){}visitUnknownBlock(block){}}class TemplateBinder extends RecursiveAstVisitor{constructor(bindings,symbols,usedPipes,eagerPipes,deferBlocks,nestingLevel,scope,rootNode,level){super(),this.bindings=bindings,this.symbols=symbols,this.usedPipes=usedPipes,this.eagerPipes=eagerPipes,this.deferBlocks=deferBlocks,this.nestingLevel=nestingLevel,this.scope=scope,this.rootNode=rootNode,this.level=level,this.visitNode=node=>node.visit(this)}visit(node,context){node instanceof AST?node.visit(this,context):node.visit(this)}static applyWithScope(nodes,scope){const expressions=new Map,symbols=new Map,nestingLevel=new Map,usedPipes=new Set,eagerPipes=new Set,template=nodes instanceof Template?nodes:null,deferBlocks=new Map;return new TemplateBinder(expressions,symbols,usedPipes,eagerPipes,deferBlocks,nestingLevel,scope,template,0).ingest(nodes),{expressions,symbols,nestingLevel,usedPipes,eagerPipes,deferBlocks}}ingest(nodeOrNodes){if(nodeOrNodes instanceof Template)nodeOrNodes.variables.forEach(this.visitNode),nodeOrNodes.children.forEach(this.visitNode),this.nestingLevel.set(nodeOrNodes,this.level);else if(nodeOrNodes instanceof IfBlockBranch)null!==nodeOrNodes.expressionAlias&&this.visitNode(nodeOrNodes.expressionAlias),nodeOrNodes.children.forEach(this.visitNode),this.nestingLevel.set(nodeOrNodes,this.level);else if(nodeOrNodes instanceof ForLoopBlock)this.visitNode(nodeOrNodes.item),Object.values(nodeOrNodes.contextVariables).forEach((v=>this.visitNode(v))),nodeOrNodes.trackBy.visit(this),nodeOrNodes.children.forEach(this.visitNode),this.nestingLevel.set(nodeOrNodes,this.level);else if(nodeOrNodes instanceof DeferredBlock){if(this.scope.rootNode!==nodeOrNodes)throw new Error(`Assertion error: resolved incorrect scope for deferred block ${nodeOrNodes}`);this.deferBlocks.set(nodeOrNodes,this.scope),nodeOrNodes.children.forEach((node=>node.visit(this))),this.nestingLevel.set(nodeOrNodes,this.level)}else nodeOrNodes instanceof SwitchBlockCase||nodeOrNodes instanceof ForLoopBlockEmpty||nodeOrNodes instanceof DeferredBlockError||nodeOrNodes instanceof DeferredBlockPlaceholder||nodeOrNodes instanceof DeferredBlockLoading?(nodeOrNodes.children.forEach((node=>node.visit(this))),this.nestingLevel.set(nodeOrNodes,this.level)):nodeOrNodes.forEach(this.visitNode)}visitElement(element){element.inputs.forEach(this.visitNode),element.outputs.forEach(this.visitNode),element.children.forEach(this.visitNode),element.references.forEach(this.visitNode)}visitTemplate(template){template.inputs.forEach(this.visitNode),template.outputs.forEach(this.visitNode),template.templateAttrs.forEach(this.visitNode),template.references.forEach(this.visitNode),this.ingestScopedNode(template)}visitVariable(variable){null!==this.rootNode&&this.symbols.set(variable,this.rootNode)}visitReference(reference){null!==this.rootNode&&this.symbols.set(reference,this.rootNode)}visitText(text){}visitContent(content){}visitTextAttribute(attribute){}visitUnknownBlock(block){}visitDeferredTrigger(){}visitIcu(icu){Object.keys(icu.vars).forEach((key=>icu.vars[key].visit(this))),Object.keys(icu.placeholders).forEach((key=>icu.placeholders[key].visit(this)))}visitBoundAttribute(attribute){attribute.value.visit(this)}visitBoundEvent(event){event.handler.visit(this)}visitDeferredBlock(deferred){this.ingestScopedNode(deferred),deferred.triggers.when?.value.visit(this),deferred.prefetchTriggers.when?.value.visit(this),deferred.placeholder&&this.visitNode(deferred.placeholder),deferred.loading&&this.visitNode(deferred.loading),deferred.error&&this.visitNode(deferred.error)}visitDeferredBlockPlaceholder(block){this.ingestScopedNode(block)}visitDeferredBlockError(block){this.ingestScopedNode(block)}visitDeferredBlockLoading(block){this.ingestScopedNode(block)}visitSwitchBlock(block){block.expression.visit(this),block.cases.forEach(this.visitNode)}visitSwitchBlockCase(block){block.expression?.visit(this),this.ingestScopedNode(block)}visitForLoopBlock(block){block.expression.visit(this),this.ingestScopedNode(block),block.empty?.visit(this)}visitForLoopBlockEmpty(block){this.ingestScopedNode(block)}visitIfBlock(block){block.branches.forEach((node=>node.visit(this)))}visitIfBlockBranch(block){block.expression?.visit(this),this.ingestScopedNode(block)}visitBoundText(text){text.value.visit(this)}visitPipe(ast,context){return this.usedPipes.add(ast.name),this.scope.isDeferred||this.eagerPipes.add(ast.name),super.visitPipe(ast,context)}visitPropertyRead(ast,context){return this.maybeMap(ast,ast.name),super.visitPropertyRead(ast,context)}visitSafePropertyRead(ast,context){return this.maybeMap(ast,ast.name),super.visitSafePropertyRead(ast,context)}visitPropertyWrite(ast,context){return this.maybeMap(ast,ast.name),super.visitPropertyWrite(ast,context)}ingestScopedNode(node){const childScope=this.scope.getChildScope(node);new TemplateBinder(this.bindings,this.symbols,this.usedPipes,this.eagerPipes,this.deferBlocks,this.nestingLevel,childScope,node,this.level+1).ingest(node)}maybeMap(ast,name){if(!(ast.receiver instanceof ImplicitReceiver))return;let target=this.scope.lookup(name);null!==target&&this.bindings.set(ast,target)}}class R3BoundTarget{constructor(target,directives,eagerDirectives,bindings,references,exprTargets,symbols,nestingLevel,scopedNodeEntities,usedPipes,eagerPipes,deferBlocks){this.target=target,this.directives=directives,this.eagerDirectives=eagerDirectives,this.bindings=bindings,this.references=references,this.exprTargets=exprTargets,this.symbols=symbols,this.nestingLevel=nestingLevel,this.scopedNodeEntities=scopedNodeEntities,this.usedPipes=usedPipes,this.eagerPipes=eagerPipes,this.deferBlocks=deferBlocks}getEntitiesInScope(node){return this.scopedNodeEntities.get(node)??new Set}getDirectivesOfNode(node){return this.directives.get(node)||null}getReferenceTarget(ref){return this.references.get(ref)||null}getConsumerOfBinding(binding){return this.bindings.get(binding)||null}getExpressionTarget(expr){return this.exprTargets.get(expr)||null}getDefinitionNodeOfSymbol(symbol){return this.symbols.get(symbol)||null}getNestingLevel(node){return this.nestingLevel.get(node)||0}getUsedDirectives(){const set=new Set;return this.directives.forEach((dirs=>dirs.forEach((dir=>set.add(dir))))),Array.from(set.values())}getEagerlyUsedDirectives(){const set=new Set(this.eagerDirectives);return Array.from(set.values())}getUsedPipes(){return Array.from(this.usedPipes)}getEagerlyUsedPipes(){return Array.from(this.eagerPipes)}getDeferBlocks(){return Array.from(this.deferBlocks.keys())}getDeferredTriggerTarget(block,trigger){if(!(trigger instanceof InteractionDeferredTrigger||trigger instanceof ViewportDeferredTrigger||trigger instanceof HoverDeferredTrigger))return null;const name=trigger.reference;if(null===name){let trigger=null;if(null!==block.placeholder)for(const child of block.placeholder.children)if(!(child instanceof Comment$1)){if(null!==trigger)return null;child instanceof Element$1&&(trigger=child)}return trigger}const outsideRef=this.findEntityInScope(block,name);if(outsideRef instanceof Reference&&this.getDefinitionNodeOfSymbol(outsideRef)!==block){const target=this.getReferenceTarget(outsideRef);if(null!==target)return this.referenceTargetToElement(target)}if(null!==block.placeholder){const refInPlaceholder=this.findEntityInScope(block.placeholder,name),targetInPlaceholder=refInPlaceholder instanceof Reference?this.getReferenceTarget(refInPlaceholder):null;if(null!==targetInPlaceholder)return this.referenceTargetToElement(targetInPlaceholder)}return null}isDeferred(element){for(const deferredScope of this.deferBlocks.values()){const stack=[deferredScope];for(;stack.length>0;){const current=stack.pop();if(current.elementsInScope.has(element))return!0;stack.push(...current.childScopes.values())}}return!1}findEntityInScope(rootNode,name){const entities=this.getEntitiesInScope(rootNode);for(const entitity of entities)if(entitity.name===name)return entitity;return null}referenceTargetToElement(target){return target instanceof Element$1?target:target instanceof Template?null:this.referenceTargetToElement(target.node)}}class ResourceLoader{}class CompilerFacadeImpl{constructor(jitEvaluator=new JitEvaluator){this.jitEvaluator=jitEvaluator,this.FactoryTarget=FactoryTarget$1,this.ResourceLoader=ResourceLoader,this.elementSchemaRegistry=new DomElementSchemaRegistry}compilePipe(angularCoreEnv,sourceMapUrl,facade){const res=compilePipeFromMetadata({name:facade.name,type:wrapReference(facade.type),typeArgumentCount:0,deps:null,pipeName:facade.pipeName,pure:facade.pure,isStandalone:facade.isStandalone});return this.jitExpression(res.expression,angularCoreEnv,sourceMapUrl,[])}compilePipeDeclaration(angularCoreEnv,sourceMapUrl,declaration){const meta=function convertDeclarePipeFacadeToMetadata(declaration){return{name:declaration.type.name,type:wrapReference(declaration.type),typeArgumentCount:0,pipeName:declaration.name,deps:null,pure:declaration.pure??!0,isStandalone:declaration.isStandalone??!1}}(declaration),res=compilePipeFromMetadata(meta);return this.jitExpression(res.expression,angularCoreEnv,sourceMapUrl,[])}compileInjectable(angularCoreEnv,sourceMapUrl,facade){const{expression,statements}=compileInjectable({name:facade.name,type:wrapReference(facade.type),typeArgumentCount:facade.typeArgumentCount,providedIn:computeProvidedIn(facade.providedIn),useClass:convertToProviderExpression(facade,"useClass"),useFactory:wrapExpression(facade,"useFactory"),useValue:convertToProviderExpression(facade,"useValue"),useExisting:convertToProviderExpression(facade,"useExisting"),deps:facade.deps?.map(convertR3DependencyMetadata)},!0);return this.jitExpression(expression,angularCoreEnv,sourceMapUrl,statements)}compileInjectableDeclaration(angularCoreEnv,sourceMapUrl,facade){const{expression,statements}=compileInjectable({name:facade.type.name,type:wrapReference(facade.type),typeArgumentCount:0,providedIn:computeProvidedIn(facade.providedIn),useClass:convertToProviderExpression(facade,"useClass"),useFactory:wrapExpression(facade,"useFactory"),useValue:convertToProviderExpression(facade,"useValue"),useExisting:convertToProviderExpression(facade,"useExisting"),deps:facade.deps?.map(convertR3DeclareDependencyMetadata)},!0);return this.jitExpression(expression,angularCoreEnv,sourceMapUrl,statements)}compileInjector(angularCoreEnv,sourceMapUrl,facade){const res=compileInjector({name:facade.name,type:wrapReference(facade.type),providers:facade.providers&&facade.providers.length>0?new WrappedNodeExpr(facade.providers):null,imports:facade.imports.map((i=>new WrappedNodeExpr(i)))});return this.jitExpression(res.expression,angularCoreEnv,sourceMapUrl,[])}compileInjectorDeclaration(angularCoreEnv,sourceMapUrl,declaration){const meta=function convertDeclareInjectorFacadeToMetadata(declaration){return{name:declaration.type.name,type:wrapReference(declaration.type),providers:void 0!==declaration.providers&&declaration.providers.length>0?new WrappedNodeExpr(declaration.providers):null,imports:void 0!==declaration.imports?declaration.imports.map((i=>new WrappedNodeExpr(i))):[]}}(declaration),res=compileInjector(meta);return this.jitExpression(res.expression,angularCoreEnv,sourceMapUrl,[])}compileNgModule(angularCoreEnv,sourceMapUrl,facade){const res=compileNgModule({kind:R3NgModuleMetadataKind.Global,type:wrapReference(facade.type),bootstrap:facade.bootstrap.map(wrapReference),declarations:facade.declarations.map(wrapReference),publicDeclarationTypes:null,imports:facade.imports.map(wrapReference),includeImportTypes:!0,exports:facade.exports.map(wrapReference),selectorScopeMode:R3SelectorScopeMode.Inline,containsForwardDecls:!1,schemas:facade.schemas?facade.schemas.map(wrapReference):null,id:facade.id?new WrappedNodeExpr(facade.id):null});return this.jitExpression(res.expression,angularCoreEnv,sourceMapUrl,[])}compileNgModuleDeclaration(angularCoreEnv,sourceMapUrl,declaration){const expression=function compileNgModuleDeclarationExpression(meta){const definitionMap=new DefinitionMap;return definitionMap.set("type",new WrappedNodeExpr(meta.type)),void 0!==meta.bootstrap&&definitionMap.set("bootstrap",new WrappedNodeExpr(meta.bootstrap)),void 0!==meta.declarations&&definitionMap.set("declarations",new WrappedNodeExpr(meta.declarations)),void 0!==meta.imports&&definitionMap.set("imports",new WrappedNodeExpr(meta.imports)),void 0!==meta.exports&&definitionMap.set("exports",new WrappedNodeExpr(meta.exports)),void 0!==meta.schemas&&definitionMap.set("schemas",new WrappedNodeExpr(meta.schemas)),void 0!==meta.id&&definitionMap.set("id",new WrappedNodeExpr(meta.id)),importExpr(Identifiers.defineNgModule).callFn([definitionMap.toLiteralMap()])}(declaration);return this.jitExpression(expression,angularCoreEnv,sourceMapUrl,[])}compileDirective(angularCoreEnv,sourceMapUrl,facade){const meta=convertDirectiveFacadeToMetadata(facade);return this.compileDirectiveFromMeta(angularCoreEnv,sourceMapUrl,meta)}compileDirectiveDeclaration(angularCoreEnv,sourceMapUrl,declaration){const meta=convertDeclareDirectiveFacadeToMetadata(declaration,this.createParseSourceSpan("Directive",declaration.type.name,sourceMapUrl));return this.compileDirectiveFromMeta(angularCoreEnv,sourceMapUrl,meta)}compileDirectiveFromMeta(angularCoreEnv,sourceMapUrl,meta){const constantPool=new ConstantPool,res=compileDirectiveFromMetadata(meta,constantPool,makeBindingParser());return this.jitExpression(res.expression,angularCoreEnv,sourceMapUrl,constantPool.statements)}compileComponent(angularCoreEnv,sourceMapUrl,facade){const{template,interpolation,deferBlocks}=parseJitTemplate(facade.template,facade.name,sourceMapUrl,facade.preserveWhitespaces,facade.interpolation),meta={...facade,...convertDirectiveFacadeToMetadata(facade),selector:facade.selector||this.elementSchemaRegistry.getDefaultComponentElementName(),template,declarations:facade.declarations.map(convertDeclarationFacadeToMetadata),declarationListEmitMode:0,deferBlocks,deferrableTypes:new Map,deferrableDeclToImportDecl:new Map,deferBlockDepsEmitMode:0,styles:[...facade.styles,...template.styles],encapsulation:facade.encapsulation,interpolation,changeDetection:facade.changeDetection??null,animations:null!=facade.animations?new WrappedNodeExpr(facade.animations):null,viewProviders:null!=facade.viewProviders?new WrappedNodeExpr(facade.viewProviders):null,relativeContextFilePath:"",i18nUseExternalIds:!0,useTemplatePipeline:true},jitExpressionSourceMap=`ng:///${facade.name}.js`;return this.compileComponentFromMeta(angularCoreEnv,jitExpressionSourceMap,meta)}compileComponentDeclaration(angularCoreEnv,sourceMapUrl,declaration){const meta=function convertDeclareComponentFacadeToMetadata(decl,typeSourceSpan,sourceMapUrl){const{template,interpolation,deferBlocks}=parseJitTemplate(decl.template,decl.type.name,sourceMapUrl,decl.preserveWhitespaces??!1,decl.interpolation),declarations=[];if(decl.dependencies)for(const innerDep of decl.dependencies)switch(innerDep.kind){case"directive":case"component":declarations.push(convertDirectiveDeclarationToMetadata(innerDep));break;case"pipe":declarations.push(convertPipeDeclarationToMetadata(innerDep))}else(decl.components||decl.directives||decl.pipes)&&(decl.components&&declarations.push(...decl.components.map((dir=>convertDirectiveDeclarationToMetadata(dir,!0)))),decl.directives&&declarations.push(...decl.directives.map((dir=>convertDirectiveDeclarationToMetadata(dir)))),decl.pipes&&declarations.push(...function convertPipeMapToMetadata(pipes){if(!pipes)return[];return Object.keys(pipes).map((name=>({kind:R3TemplateDependencyKind.Pipe,name,type:new WrappedNodeExpr(pipes[name])})))}(decl.pipes)));return{...convertDeclareDirectiveFacadeToMetadata(decl,typeSourceSpan),template,styles:decl.styles??[],declarations,viewProviders:void 0!==decl.viewProviders?new WrappedNodeExpr(decl.viewProviders):null,animations:void 0!==decl.animations?new WrappedNodeExpr(decl.animations):null,deferBlocks,deferrableTypes:new Map,deferrableDeclToImportDecl:new Map,deferBlockDepsEmitMode:0,changeDetection:decl.changeDetection??ChangeDetectionStrategy.Default,encapsulation:decl.encapsulation??ViewEncapsulation.Emulated,interpolation,declarationListEmitMode:2,relativeContextFilePath:"",i18nUseExternalIds:!0,useTemplatePipeline:true}}(declaration,this.createParseSourceSpan("Component",declaration.type.name,sourceMapUrl),sourceMapUrl);return this.compileComponentFromMeta(angularCoreEnv,sourceMapUrl,meta)}compileComponentFromMeta(angularCoreEnv,sourceMapUrl,meta){const constantPool=new ConstantPool,res=compileComponentFromMetadata(meta,constantPool,makeBindingParser(meta.interpolation));return this.jitExpression(res.expression,angularCoreEnv,sourceMapUrl,constantPool.statements)}compileFactory(angularCoreEnv,sourceMapUrl,meta){const factoryRes=compileFactoryFunction({name:meta.name,type:wrapReference(meta.type),typeArgumentCount:meta.typeArgumentCount,deps:(facades=meta.deps,null==facades?null:facades.map(convertR3DependencyMetadata)),target:meta.target});var facades;return this.jitExpression(factoryRes.expression,angularCoreEnv,sourceMapUrl,factoryRes.statements)}compileFactoryDeclaration(angularCoreEnv,sourceMapUrl,meta){const factoryRes=compileFactoryFunction({name:meta.type.name,type:wrapReference(meta.type),typeArgumentCount:0,deps:Array.isArray(meta.deps)?meta.deps.map(convertR3DeclareDependencyMetadata):meta.deps,target:meta.target});return this.jitExpression(factoryRes.expression,angularCoreEnv,sourceMapUrl,factoryRes.statements)}createParseSourceSpan(kind,typeName,sourceUrl){return r3JitTypeSourceSpan(kind,typeName,sourceUrl)}jitExpression(def,context,sourceUrl,preStatements){const statements=[...preStatements,new DeclareVarStmt("$def",def,void 0,StmtModifier.Exported)];return this.jitEvaluator.evaluateStatements(sourceUrl,statements,new R3JitReflector(context),!0).$def}}function convertToR3QueryMetadata(facade){return{...facade,isSignal:facade.isSignal,predicate:convertQueryPredicate(facade.predicate),read:facade.read?new WrappedNodeExpr(facade.read):null,static:facade.static,emitDistinctChangesOnly:facade.emitDistinctChangesOnly}}function convertQueryDeclarationToMetadata(declaration){return{propertyName:declaration.propertyName,first:declaration.first??!1,predicate:convertQueryPredicate(declaration.predicate),descendants:declaration.descendants??!1,read:declaration.read?new WrappedNodeExpr(declaration.read):null,static:declaration.static??!1,emitDistinctChangesOnly:declaration.emitDistinctChangesOnly??!0,isSignal:!!declaration.isSignal}}function convertQueryPredicate(predicate){return Array.isArray(predicate)?predicate:createMayBeForwardRefExpression(new WrappedNodeExpr(predicate),1)}function convertDirectiveFacadeToMetadata(facade){const inputsFromMetadata=function parseInputsArray(values){return values.reduce(((results,value)=>{if("string"==typeof value){const[bindingPropertyName,classPropertyName]=parseMappingString(value);results[classPropertyName]={bindingPropertyName,classPropertyName,required:!1,isSignal:!1,transformFunction:null}}else results[value.name]={bindingPropertyName:value.alias||value.name,classPropertyName:value.name,required:value.required||!1,isSignal:!1,transformFunction:null!=value.transform?new WrappedNodeExpr(value.transform):null};return results}),{})}(facade.inputs||[]),outputsFromMetadata=parseMappingStringArray(facade.outputs||[]),propMetadata=facade.propMetadata,inputsFromType={},outputsFromType={};for(const field in propMetadata)propMetadata.hasOwnProperty(field)&&propMetadata[field].forEach((ann=>{"Input"===ann.ngMetadataName?inputsFromType[field]={bindingPropertyName:ann.alias||field,classPropertyName:field,required:ann.required||!1,isSignal:!!ann.isSignal,transformFunction:null!=ann.transform?new WrappedNodeExpr(ann.transform):null}:isOutput(ann)&&(outputsFromType[field]=ann.alias||field)}));const hostDirectives=facade.hostDirectives?.length?facade.hostDirectives.map((hostDirective=>"function"==typeof hostDirective?{directive:wrapReference(hostDirective),inputs:null,outputs:null,isForwardReference:!1}:{directive:wrapReference(hostDirective.directive),isForwardReference:!1,inputs:hostDirective.inputs?parseMappingStringArray(hostDirective.inputs):null,outputs:hostDirective.outputs?parseMappingStringArray(hostDirective.outputs):null})):null;return{...facade,typeArgumentCount:0,typeSourceSpan:facade.typeSourceSpan,type:wrapReference(facade.type),deps:null,host:{...extractHostBindings(facade.propMetadata,facade.typeSourceSpan,facade.host),useTemplatePipeline:true},inputs:{...inputsFromMetadata,...inputsFromType},outputs:{...outputsFromMetadata,...outputsFromType},queries:facade.queries.map(convertToR3QueryMetadata),providers:null!=facade.providers?new WrappedNodeExpr(facade.providers):null,viewQueries:facade.viewQueries.map(convertToR3QueryMetadata),fullInheritance:!1,hostDirectives}}function convertDeclareDirectiveFacadeToMetadata(declaration,typeSourceSpan){const hostDirectives=declaration.hostDirectives?.length?declaration.hostDirectives.map((dir=>({directive:wrapReference(dir.directive),isForwardReference:!1,inputs:dir.inputs?getHostDirectiveBindingMapping(dir.inputs):null,outputs:dir.outputs?getHostDirectiveBindingMapping(dir.outputs):null}))):null;return{name:declaration.type.name,type:wrapReference(declaration.type),typeSourceSpan,selector:declaration.selector??null,inputs:declaration.inputs?(inputs=declaration.inputs,Object.keys(inputs).reduce(((result,minifiedClassName)=>{const value=inputs[minifiedClassName];return"string"==typeof value||Array.isArray(value)?result[minifiedClassName]=function parseLegacyInputPartialOutput(value){if("string"==typeof value)return{bindingPropertyName:value,classPropertyName:value,transformFunction:null,required:!1,isSignal:!1};return{bindingPropertyName:value[0],classPropertyName:value[1],transformFunction:value[2]?new WrappedNodeExpr(value[2]):null,required:!1,isSignal:!1}}(value):result[minifiedClassName]={bindingPropertyName:value.publicName,classPropertyName:minifiedClassName,transformFunction:null!==value.transformFunction?new WrappedNodeExpr(value.transformFunction):null,required:value.isRequired,isSignal:value.isSignal},result}),{})):{},outputs:declaration.outputs??{},host:convertHostDeclarationToMetadata(declaration.host),queries:(declaration.queries??[]).map(convertQueryDeclarationToMetadata),viewQueries:(declaration.viewQueries??[]).map(convertQueryDeclarationToMetadata),providers:void 0!==declaration.providers?new WrappedNodeExpr(declaration.providers):null,exportAs:declaration.exportAs??null,usesInheritance:declaration.usesInheritance??!1,lifecycle:{usesOnChanges:declaration.usesOnChanges??!1},deps:null,typeArgumentCount:0,fullInheritance:!1,isStandalone:declaration.isStandalone??!1,isSignal:declaration.isSignal??!1,hostDirectives};var inputs}function convertHostDeclarationToMetadata(host={}){return{attributes:convertOpaqueValuesToExpressions(host.attributes??{}),listeners:host.listeners??{},properties:host.properties??{},specialAttributes:{classAttr:host.classAttribute,styleAttr:host.styleAttribute},useTemplatePipeline:true}}function getHostDirectiveBindingMapping(array){let result=null;for(let i=1;ierr.toString())).join(", ");throw new Error(`Errors during JIT compilation of template for ${typeName}: ${errors}`)}return{template:parsed,interpolation:interpolationConfig,deferBlocks:createR3DeferredMetadata(new R3TargetBinder(new SelectorMatcher).bind({template:parsed.nodes}))}}function convertToProviderExpression(obj,property){return obj.hasOwnProperty(property)?createMayBeForwardRefExpression(new WrappedNodeExpr(obj[property]),0):void 0}function wrapExpression(obj,property){return obj.hasOwnProperty(property)?new WrappedNodeExpr(obj[property]):void 0}function computeProvidedIn(providedIn){return createMayBeForwardRefExpression("function"==typeof providedIn?new WrappedNodeExpr(providedIn):new LiteralExpr(providedIn??null),0)}function convertR3DependencyMetadata(facade){const isAttributeDep=null!=facade.attribute,rawToken=null===facade.token?null:new WrappedNodeExpr(facade.token);return createR3DependencyMetadata(isAttributeDep?new WrappedNodeExpr(facade.attribute):rawToken,isAttributeDep,facade.host,facade.optional,facade.self,facade.skipSelf)}function convertR3DeclareDependencyMetadata(facade){const isAttributeDep=facade.attribute??!1;return createR3DependencyMetadata(null===facade.token?null:new WrappedNodeExpr(facade.token),isAttributeDep,facade.host??!1,facade.optional??!1,facade.self??!1,facade.skipSelf??!1)}function createR3DependencyMetadata(token,isAttributeDep,host,optional,self,skipSelf){return{token,attributeNameType:isAttributeDep?literal("unknown"):null,host,optional,self,skipSelf}}function createR3DeferredMetadata(boundTarget){const deferredBlocks=boundTarget.getDeferBlocks(),meta=new Map;for(const block of deferredBlocks){const triggerElements=new Map;resolveDeferTriggers(block,block.triggers,boundTarget,triggerElements),resolveDeferTriggers(block,block.prefetchTriggers,boundTarget,triggerElements),meta.set(block,{deps:[],triggerElements})}return meta}function resolveDeferTriggers(block,triggers,boundTarget,triggerElements){Object.keys(triggers).forEach((key=>{const trigger=triggers[key];triggerElements.set(trigger,boundTarget.getDeferredTriggerTarget(block,trigger))}))}function extractHostBindings(propMetadata,sourceSpan,host){const bindings=parseHostBindings(host||{}),errors=verifyHostBindings(bindings,sourceSpan);if(errors.length)throw new Error(errors.map((error=>error.msg)).join("\n"));for(const field in propMetadata)propMetadata.hasOwnProperty(field)&&propMetadata[field].forEach((ann=>{"HostBinding"===ann.ngMetadataName?bindings.properties[ann.hostPropertyName||field]=getSafePropertyAccessString("this",field):isHostListener(ann)&&(bindings.listeners[ann.eventName||field]=`${field}(${(ann.args||[]).join(",")})`)}));return bindings}function isHostListener(value){return"HostListener"===value.ngMetadataName}function isOutput(value){return"Output"===value.ngMetadataName}function parseMappingStringArray(values){return values.reduce(((results,value)=>{const[alias,fieldName]=parseMappingString(value);return results[fieldName]=alias,results}),{})}function parseMappingString(value){const[fieldName,bindingPropertyName]=value.split(":",2).map((str=>str.trim()));return[bindingPropertyName??fieldName,fieldName]}function publishFacade(global){(global.ng||(global.ng={})).ɵcompilerFacade=new CompilerFacadeImpl}const VERSION=new Version("17.3.12");class CompilerConfig{constructor({defaultEncapsulation=ViewEncapsulation.Emulated,preserveWhitespaces,strictInjectionParameters}={}){this.defaultEncapsulation=defaultEncapsulation,this.preserveWhitespaces=preserveWhitespacesDefault(function noUndefined(val){return void 0===val?null:val}(preserveWhitespaces)),this.strictInjectionParameters=!0===strictInjectionParameters}}function preserveWhitespacesDefault(preserveWhitespacesOption,defaultSetting=!1){return null===preserveWhitespacesOption?defaultSetting:preserveWhitespacesOption}const _I18N_COMMENT_PREFIX_REGEXP=/^i18n:?/;let i18nCommentsWarned=!1;class ExtractionResult{constructor(messages,errors){this.messages=messages,this.errors=errors}}var _VisitorMode;!function(_VisitorMode){_VisitorMode[_VisitorMode.Extract=0]="Extract",_VisitorMode[_VisitorMode.Merge=1]="Merge"}(_VisitorMode||(_VisitorMode={}));class _Visitor{constructor(_implicitTags,_implicitAttrs){this._implicitTags=_implicitTags,this._implicitAttrs=_implicitAttrs}extract(nodes,interpolationConfig){return this._init(_VisitorMode.Extract,interpolationConfig),nodes.forEach((node=>node.visit(this,null))),this._inI18nBlock&&this._reportError(nodes[nodes.length-1],"Unclosed block"),new ExtractionResult(this._messages,this._errors)}merge(nodes,translations,interpolationConfig){this._init(_VisitorMode.Merge,interpolationConfig),this._translations=translations;const translatedNode=new Element("wrapper",[],nodes,void 0,void 0,void 0).visit(this,null);return this._inI18nBlock&&this._reportError(nodes[nodes.length-1],"Unclosed block"),new ParseTreeResult(translatedNode.children,this._errors)}visitExpansionCase(icuCase,context){const expression=visitAll(this,icuCase.expression,context);if(this._mode===_VisitorMode.Merge)return new ExpansionCase(icuCase.value,expression,icuCase.sourceSpan,icuCase.valueSourceSpan,icuCase.expSourceSpan)}visitExpansion(icu,context){this._mayBeAddBlockChildren(icu);const wasInIcu=this._inIcu;this._inIcu||(this._isInTranslatableSection&&this._addMessage([icu]),this._inIcu=!0);const cases=visitAll(this,icu.cases,context);return this._mode===_VisitorMode.Merge&&(icu=new Expansion(icu.switchValue,icu.type,cases,icu.sourceSpan,icu.switchValueSourceSpan)),this._inIcu=wasInIcu,icu}visitComment(comment,context){const isOpening=function _isOpeningComment(n){return!!(n instanceof Comment&&n.value&&n.value.startsWith("i18n"))}(comment);if(isOpening&&this._isInTranslatableSection)return void this._reportError(comment,"Could not start a block inside a translatable section");const isClosing=function _isClosingComment(n){return!!(n instanceof Comment&&n.value&&"/i18n"===n.value)}(comment);if(!isClosing||this._inI18nBlock){if(!this._inI18nNode&&!this._inIcu)if(this._inI18nBlock){if(isClosing){if(this._depth==this._blockStartDepth){this._closeTranslatableSection(comment,this._blockChildren),this._inI18nBlock=!1;const message=this._addMessage(this._blockChildren,this._blockMeaningAndDesc);return visitAll(this,this._translateMessage(comment,message))}return void this._reportError(comment,"I18N blocks should not cross element boundaries")}}else if(isOpening){if(!i18nCommentsWarned&&console&&console.warn){i18nCommentsWarned=!0;const details=comment.sourceSpan.details?`, ${comment.sourceSpan.details}`:"";console.warn(`I18n comments are deprecated, use an element instead (${comment.sourceSpan.start}${details})`)}this._inI18nBlock=!0,this._blockStartDepth=this._depth,this._blockChildren=[],this._blockMeaningAndDesc=comment.value.replace(_I18N_COMMENT_PREFIX_REGEXP,"").trim(),this._openTranslatableSection(comment)}}else this._reportError(comment,"Trying to close an unopened block")}visitText(text,context){return this._isInTranslatableSection&&this._mayBeAddBlockChildren(text),text}visitElement(el,context){this._mayBeAddBlockChildren(el),this._depth++;const wasInI18nNode=this._inI18nNode,wasInImplicitNode=this._inImplicitNode;let translatedChildNodes,childNodes=[];const i18nAttr=function _getI18nAttr(p){return p.attrs.find((attr=>"i18n"===attr.name))||null}(el),i18nMeta=i18nAttr?i18nAttr.value:"",isImplicit=this._implicitTags.some((tag=>el.name===tag))&&!this._inIcu&&!this._isInTranslatableSection,isTopLevelImplicit=!wasInImplicitNode&&isImplicit;if(this._inImplicitNode=wasInImplicitNode||isImplicit,this._isInTranslatableSection||this._inIcu)(i18nAttr||isTopLevelImplicit)&&this._reportError(el,"Could not mark an element as translatable inside a translatable section"),this._mode==_VisitorMode.Extract&&visitAll(this,el.children);else{if(i18nAttr||isTopLevelImplicit){this._inI18nNode=!0;const message=this._addMessage(el.children,i18nMeta);translatedChildNodes=this._translateMessage(el,message)}if(this._mode==_VisitorMode.Extract){const isTranslatable=i18nAttr||isTopLevelImplicit;isTranslatable&&this._openTranslatableSection(el),visitAll(this,el.children),isTranslatable&&this._closeTranslatableSection(el,el.children)}}if(this._mode===_VisitorMode.Merge){(translatedChildNodes||el.children).forEach((child=>{const visited=child.visit(this,context);visited&&!this._isInTranslatableSection&&(childNodes=childNodes.concat(visited))}))}if(this._visitAttributesOf(el),this._depth--,this._inI18nNode=wasInI18nNode,this._inImplicitNode=wasInImplicitNode,this._mode===_VisitorMode.Merge){const translatedAttrs=this._translateAttributes(el);return new Element(el.name,translatedAttrs,childNodes,el.sourceSpan,el.startSourceSpan,el.endSourceSpan)}return null}visitAttribute(attribute,context){throw new Error("unreachable code")}visitBlock(block,context){visitAll(this,block.children,context)}visitBlockParameter(parameter,context){}_init(mode,interpolationConfig){this._mode=mode,this._inI18nBlock=!1,this._inI18nNode=!1,this._depth=0,this._inIcu=!1,this._msgCountAtSectionStart=void 0,this._errors=[],this._messages=[],this._inImplicitNode=!1,this._createI18nMessage=createI18nMessageFactory(interpolationConfig,DEFAULT_CONTAINER_BLOCKS)}_visitAttributesOf(el){const explicitAttrNameToValue={},implicitAttrNames=this._implicitAttrs[el.name]||[];el.attrs.filter((attr=>attr.name.startsWith("i18n-"))).forEach((attr=>explicitAttrNameToValue[attr.name.slice(5)]=attr.value)),el.attrs.forEach((attr=>{attr.name in explicitAttrNameToValue?this._addMessage([attr],explicitAttrNameToValue[attr.name]):implicitAttrNames.some((name=>attr.name===name))&&this._addMessage([attr])}))}_addMessage(ast,msgMeta){if(0==ast.length||1==ast.length&&ast[0]instanceof Attribute&&!ast[0].value)return null;const{meaning,description,id}=_parseMessageMeta(msgMeta),message=this._createI18nMessage(ast,meaning,description,id);return this._messages.push(message),message}_translateMessage(el,message){if(message&&this._mode===_VisitorMode.Merge){const nodes=this._translations.get(message);if(nodes)return nodes;this._reportError(el,`Translation unavailable for message id="${this._translations.digest(message)}"`)}return[]}_translateAttributes(el){const attributes=el.attrs,i18nParsedMessageMeta={};attributes.forEach((attr=>{attr.name.startsWith("i18n-")&&(i18nParsedMessageMeta[attr.name.slice(5)]=_parseMessageMeta(attr.value))}));const translatedAttributes=[];return attributes.forEach((attr=>{if("i18n"!==attr.name&&!attr.name.startsWith("i18n-"))if(attr.value&&""!=attr.value&&i18nParsedMessageMeta.hasOwnProperty(attr.name)){const{meaning,description,id}=i18nParsedMessageMeta[attr.name],message=this._createI18nMessage([attr],meaning,description,id),nodes=this._translations.get(message);if(nodes)if(0==nodes.length)translatedAttributes.push(new Attribute(attr.name,"",attr.sourceSpan,void 0,void 0,void 0,void 0));else if(nodes[0]instanceof Text){const value=nodes[0].value;translatedAttributes.push(new Attribute(attr.name,value,attr.sourceSpan,void 0,void 0,void 0,void 0))}else this._reportError(el,`Unexpected translation for attribute "${attr.name}" (id="${id||this._translations.digest(message)}")`);else this._reportError(el,`Translation unavailable for attribute "${attr.name}" (id="${id||this._translations.digest(message)}")`)}else translatedAttributes.push(attr)})),translatedAttributes}_mayBeAddBlockChildren(node){this._inI18nBlock&&!this._inIcu&&this._depth==this._blockStartDepth&&this._blockChildren.push(node)}_openTranslatableSection(node){this._isInTranslatableSection?this._reportError(node,"Unexpected section start"):this._msgCountAtSectionStart=this._messages.length}get _isInTranslatableSection(){return void 0!==this._msgCountAtSectionStart}_closeTranslatableSection(node,directChildren){if(!this._isInTranslatableSection)return void this._reportError(node,"Unexpected section end");const startIndex=this._msgCountAtSectionStart,significantChildren=directChildren.reduce(((count,node)=>count+(node instanceof Comment?0:1)),0);if(1==significantChildren)for(let i=this._messages.length-1;i>=startIndex;i--){const ast=this._messages[i].nodes;if(!(1==ast.length&&ast[0]instanceof Text$2)){this._messages.splice(i,1);break}}this._msgCountAtSectionStart=void 0}_reportError(node,msg){this._errors.push(new I18nError(node.sourceSpan,msg))}}function _parseMessageMeta(i18n){if(!i18n)return{meaning:"",description:"",id:""};const idIndex=i18n.indexOf("@@"),descIndex=i18n.indexOf("|"),[meaningAndDesc,id]=idIndex>-1?[i18n.slice(0,idIndex),i18n.slice(idIndex+2)]:[i18n,""],[meaning,description]=descIndex>-1?[meaningAndDesc.slice(0,descIndex),meaningAndDesc.slice(descIndex+1)]:["",meaningAndDesc];return{meaning,description,id:id.trim()}}const _TAG_DEFINITION=new class XmlTagDefinition{constructor(){this.closedByParent=!1,this.implicitNamespacePrefix=null,this.isVoid=!1,this.ignoreFirstLf=!1,this.canSelfClose=!0,this.preventNamespaceInheritance=!1}requireExtraParent(currentParent){return!1}isClosedByChild(name){return!1}getContentType(){return TagContentType.PARSABLE_DATA}};function getXmlTagDefinition(tagName){return _TAG_DEFINITION}class XmlParser extends Parser{constructor(){super(getXmlTagDefinition)}parse(source,url,options={}){return super.parse(source,url,{...options,tokenizeBlocks:!1})}}class Xliff extends Serializer{write(messages,locale){const visitor=new _WriteVisitor$1,transUnits=[];messages.forEach((message=>{let contextTags=[];message.sources.forEach((source=>{let contextGroupTag=new Tag("context-group",{purpose:"location"});contextGroupTag.children.push(new CR(10),new Tag("context",{"context-type":"sourcefile"},[new Text$1(source.filePath)]),new CR(10),new Tag("context",{"context-type":"linenumber"},[new Text$1(`${source.startLine}`)]),new CR(8)),contextTags.push(new CR(8),contextGroupTag)}));const transUnit=new Tag("trans-unit",{id:message.id,datatype:"html"});transUnit.children.push(new CR(8),new Tag("source",{},visitor.serialize(message.nodes)),...contextTags),message.description&&transUnit.children.push(new CR(8),new Tag("note",{priority:"1",from:"description"},[new Text$1(message.description)])),message.meaning&&transUnit.children.push(new CR(8),new Tag("note",{priority:"1",from:"meaning"},[new Text$1(message.meaning)])),transUnit.children.push(new CR(6)),transUnits.push(new CR(6),transUnit)}));const body=new Tag("body",{},[...transUnits,new CR(4)]),file=new Tag("file",{"source-language":locale||"en",datatype:"plaintext",original:"ng2.template"},[new CR(4),body,new CR(2)]),xliff=new Tag("xliff",{version:"1.2",xmlns:"urn:oasis:names:tc:xliff:document:1.2"},[new CR(2),file,new CR]);return serialize([new Declaration({version:"1.0",encoding:"UTF-8"}),new CR,xliff,new CR])}load(content,url){const xliffParser=new XliffParser,{locale,msgIdToHtml,errors}=xliffParser.parse(content,url),i18nNodesByMsgId={},converter=new XmlToI18n$2;if(Object.keys(msgIdToHtml).forEach((msgId=>{const{i18nNodes,errors:e}=converter.convert(msgIdToHtml[msgId],url);errors.push(...e),i18nNodesByMsgId[msgId]=i18nNodes})),errors.length)throw new Error(`xliff parse errors:\n${errors.join("\n")}`);return{locale,i18nNodesByMsgId}}digest(message){return digest$1(message)}}class _WriteVisitor$1{visitText(text,context){return[new Text$1(text.value)]}visitContainer(container,context){const nodes=[];return container.children.forEach((node=>nodes.push(...node.visit(this)))),nodes}visitIcu(icu,context){const nodes=[new Text$1(`{${icu.expressionPlaceholder}, ${icu.type}, `)];return Object.keys(icu.cases).forEach((c=>{nodes.push(new Text$1(`${c} {`),...icu.cases[c].visit(this),new Text$1("} "))})),nodes.push(new Text$1("}")),nodes}visitTagPlaceholder(ph,context){const ctype=function getCtypeForTag(tag){switch(tag.toLowerCase()){case"br":return"lb";case"img":return"image";default:return`x-${tag}`}}(ph.tag);if(ph.isVoid)return[new Tag("x",{id:ph.startName,ctype,"equiv-text":`<${ph.tag}/>`})];const startTagPh=new Tag("x",{id:ph.startName,ctype,"equiv-text":`<${ph.tag}>`}),closeTagPh=new Tag("x",{id:ph.closeName,ctype,"equiv-text":``});return[startTagPh,...this.serialize(ph.children),closeTagPh]}visitPlaceholder(ph,context){return[new Tag("x",{id:ph.name,"equiv-text":`{{${ph.value}}}`})]}visitBlockPlaceholder(ph,context){const ctype=`x-${ph.name.toLowerCase().replace(/[^a-z0-9]/g,"-")}`,startTagPh=new Tag("x",{id:ph.startName,ctype,"equiv-text":`@${ph.name}`}),closeTagPh=new Tag("x",{id:ph.closeName,ctype,"equiv-text":"}"});return[startTagPh,...this.serialize(ph.children),closeTagPh]}visitIcuPlaceholder(ph,context){const equivText=`{${ph.value.expression}, ${ph.value.type}, ${Object.keys(ph.value.cases).map((value=>value+" {...}")).join(" ")}}`;return[new Tag("x",{id:ph.name,"equiv-text":equivText})]}serialize(nodes){return[].concat(...nodes.map((node=>node.visit(this))))}}class XliffParser{constructor(){this._locale=null}parse(xliff,url){this._unitMlString=null,this._msgIdToHtml={};const xml=(new XmlParser).parse(xliff,url);return this._errors=xml.errors,visitAll(this,xml.rootNodes,null),{msgIdToHtml:this._msgIdToHtml,errors:this._errors,locale:this._locale}}visitElement(element,context){switch(element.name){case"trans-unit":this._unitMlString=null;const idAttr=element.attrs.find((attr=>"id"===attr.name));if(idAttr){const id=idAttr.value;this._msgIdToHtml.hasOwnProperty(id)?this._addError(element,`Duplicated translations for msg ${id}`):(visitAll(this,element.children,null),"string"==typeof this._unitMlString?this._msgIdToHtml[id]=this._unitMlString:this._addError(element,`Message ${id} misses a translation`))}else this._addError(element,' misses the "id" attribute');break;case"source":case"seg-source":case"alt-trans":break;case"target":const innerTextStart=element.startSourceSpan.end.offset,innerTextEnd=element.endSourceSpan.start.offset,innerText=element.startSourceSpan.start.file.content.slice(innerTextStart,innerTextEnd);this._unitMlString=innerText;break;case"file":const localeAttr=element.attrs.find((attr=>"target-language"===attr.name));localeAttr&&(this._locale=localeAttr.value),visitAll(this,element.children,null);break;default:visitAll(this,element.children,null)}}visitAttribute(attribute,context){}visitText(text,context){}visitComment(comment,context){}visitExpansion(expansion,context){}visitExpansionCase(expansionCase,context){}visitBlock(block,context){}visitBlockParameter(parameter,context){}_addError(node,message){this._errors.push(new I18nError(node.sourceSpan,message))}}class XmlToI18n$2{convert(message,url){const xmlIcu=(new XmlParser).parse(message,url,{tokenizeExpansionForms:!0});this._errors=xmlIcu.errors;return{i18nNodes:this._errors.length>0||0==xmlIcu.rootNodes.length?[]:[].concat(...visitAll(this,xmlIcu.rootNodes)),errors:this._errors}}visitText(text,context){return new Text$2(text.value,text.sourceSpan)}visitElement(el,context){if("x"===el.name){const nameAttr=el.attrs.find((attr=>"id"===attr.name));return nameAttr?new Placeholder("",nameAttr.value,el.sourceSpan):(this._addError(el,' misses the "id" attribute'),null)}return"mrk"===el.name?[].concat(...visitAll(this,el.children)):(this._addError(el,"Unexpected tag"),null)}visitExpansion(icu,context){const caseMap={};return visitAll(this,icu.cases).forEach((c=>{caseMap[c.value]=new Container(c.nodes,icu.sourceSpan)})),new Icu(icu.switchValue,icu.type,caseMap,icu.sourceSpan)}visitExpansionCase(icuCase,context){return{value:icuCase.value,nodes:visitAll(this,icuCase.expression)}}visitComment(comment,context){}visitAttribute(attribute,context){}visitBlock(block,context){}visitBlockParameter(parameter,context){}_addError(node,message){this._errors.push(new I18nError(node.sourceSpan,message))}}class Xliff2 extends Serializer{write(messages,locale){const visitor=new _WriteVisitor,units=[];messages.forEach((message=>{const unit=new Tag("unit",{id:message.id}),notes=new Tag("notes");(message.description||message.meaning)&&(message.description&¬es.children.push(new CR(8),new Tag("note",{category:"description"},[new Text$1(message.description)])),message.meaning&¬es.children.push(new CR(8),new Tag("note",{category:"meaning"},[new Text$1(message.meaning)]))),message.sources.forEach((source=>{notes.children.push(new CR(8),new Tag("note",{category:"location"},[new Text$1(`${source.filePath}:${source.startLine}${source.endLine!==source.startLine?","+source.endLine:""}`)]))})),notes.children.push(new CR(6)),unit.children.push(new CR(6),notes);const segment=new Tag("segment");segment.children.push(new CR(8),new Tag("source",{},visitor.serialize(message.nodes)),new CR(6)),unit.children.push(new CR(6),segment,new CR(4)),units.push(new CR(4),unit)}));const file=new Tag("file",{original:"ng.template",id:"ngi18n"},[...units,new CR(2)]),xliff=new Tag("xliff",{version:"2.0",xmlns:"urn:oasis:names:tc:xliff:document:2.0",srcLang:locale||"en"},[new CR(2),file,new CR]);return serialize([new Declaration({version:"1.0",encoding:"UTF-8"}),new CR,xliff,new CR])}load(content,url){const xliff2Parser=new Xliff2Parser,{locale,msgIdToHtml,errors}=xliff2Parser.parse(content,url),i18nNodesByMsgId={},converter=new XmlToI18n$1;if(Object.keys(msgIdToHtml).forEach((msgId=>{const{i18nNodes,errors:e}=converter.convert(msgIdToHtml[msgId],url);errors.push(...e),i18nNodesByMsgId[msgId]=i18nNodes})),errors.length)throw new Error(`xliff2 parse errors:\n${errors.join("\n")}`);return{locale,i18nNodesByMsgId}}digest(message){return decimalDigest(message)}}class _WriteVisitor{constructor(){this._nextPlaceholderId=0}visitText(text,context){return[new Text$1(text.value)]}visitContainer(container,context){const nodes=[];return container.children.forEach((node=>nodes.push(...node.visit(this)))),nodes}visitIcu(icu,context){const nodes=[new Text$1(`{${icu.expressionPlaceholder}, ${icu.type}, `)];return Object.keys(icu.cases).forEach((c=>{nodes.push(new Text$1(`${c} {`),...icu.cases[c].visit(this),new Text$1("} "))})),nodes.push(new Text$1("}")),nodes}visitTagPlaceholder(ph,context){const type=function getTypeForTag(tag){switch(tag.toLowerCase()){case"br":case"b":case"i":case"u":return"fmt";case"img":return"image";case"a":return"link";default:return"other"}}(ph.tag);if(ph.isVoid){return[new Tag("ph",{id:(this._nextPlaceholderId++).toString(),equiv:ph.startName,type,disp:`<${ph.tag}/>`})]}const tagPc=new Tag("pc",{id:(this._nextPlaceholderId++).toString(),equivStart:ph.startName,equivEnd:ph.closeName,type,dispStart:`<${ph.tag}>`,dispEnd:``}),nodes=[].concat(...ph.children.map((node=>node.visit(this))));return nodes.length?nodes.forEach((node=>tagPc.children.push(node))):tagPc.children.push(new Text$1("")),[tagPc]}visitPlaceholder(ph,context){const idStr=(this._nextPlaceholderId++).toString();return[new Tag("ph",{id:idStr,equiv:ph.name,disp:`{{${ph.value}}}`})]}visitBlockPlaceholder(ph,context){const tagPc=new Tag("pc",{id:(this._nextPlaceholderId++).toString(),equivStart:ph.startName,equivEnd:ph.closeName,type:"other",dispStart:`@${ph.name}`,dispEnd:"}"}),nodes=[].concat(...ph.children.map((node=>node.visit(this))));return nodes.length?nodes.forEach((node=>tagPc.children.push(node))):tagPc.children.push(new Text$1("")),[tagPc]}visitIcuPlaceholder(ph,context){const cases=Object.keys(ph.value.cases).map((value=>value+" {...}")).join(" "),idStr=(this._nextPlaceholderId++).toString();return[new Tag("ph",{id:idStr,equiv:ph.name,disp:`{${ph.value.expression}, ${ph.value.type}, ${cases}}`})]}serialize(nodes){return this._nextPlaceholderId=0,[].concat(...nodes.map((node=>node.visit(this))))}}class Xliff2Parser{constructor(){this._locale=null}parse(xliff,url){this._unitMlString=null,this._msgIdToHtml={};const xml=(new XmlParser).parse(xliff,url);return this._errors=xml.errors,visitAll(this,xml.rootNodes,null),{msgIdToHtml:this._msgIdToHtml,errors:this._errors,locale:this._locale}}visitElement(element,context){switch(element.name){case"unit":this._unitMlString=null;const idAttr=element.attrs.find((attr=>"id"===attr.name));if(idAttr){const id=idAttr.value;this._msgIdToHtml.hasOwnProperty(id)?this._addError(element,`Duplicated translations for msg ${id}`):(visitAll(this,element.children,null),"string"==typeof this._unitMlString?this._msgIdToHtml[id]=this._unitMlString:this._addError(element,`Message ${id} misses a translation`))}else this._addError(element,' misses the "id" attribute');break;case"source":break;case"target":const innerTextStart=element.startSourceSpan.end.offset,innerTextEnd=element.endSourceSpan.start.offset,innerText=element.startSourceSpan.start.file.content.slice(innerTextStart,innerTextEnd);this._unitMlString=innerText;break;case"xliff":const localeAttr=element.attrs.find((attr=>"trgLang"===attr.name));localeAttr&&(this._locale=localeAttr.value);const versionAttr=element.attrs.find((attr=>"version"===attr.name));if(versionAttr){const version=versionAttr.value;"2.0"!==version?this._addError(element,`The XLIFF file version ${version} is not compatible with XLIFF 2.0 serializer`):visitAll(this,element.children,null)}break;default:visitAll(this,element.children,null)}}visitAttribute(attribute,context){}visitText(text,context){}visitComment(comment,context){}visitExpansion(expansion,context){}visitExpansionCase(expansionCase,context){}visitBlock(block,context){}visitBlockParameter(parameter,context){}_addError(node,message){this._errors.push(new I18nError(node.sourceSpan,message))}}class XmlToI18n$1{convert(message,url){const xmlIcu=(new XmlParser).parse(message,url,{tokenizeExpansionForms:!0});this._errors=xmlIcu.errors;return{i18nNodes:this._errors.length>0||0==xmlIcu.rootNodes.length?[]:[].concat(...visitAll(this,xmlIcu.rootNodes)),errors:this._errors}}visitText(text,context){return new Text$2(text.value,text.sourceSpan)}visitElement(el,context){switch(el.name){case"ph":const nameAttr=el.attrs.find((attr=>"equiv"===attr.name));if(nameAttr)return[new Placeholder("",nameAttr.value,el.sourceSpan)];this._addError(el,' misses the "equiv" attribute');break;case"pc":const startAttr=el.attrs.find((attr=>"equivStart"===attr.name)),endAttr=el.attrs.find((attr=>"equivEnd"===attr.name));if(startAttr){if(endAttr){const startId=startAttr.value,endId=endAttr.value;return[].concat(new Placeholder("",startId,el.sourceSpan),...el.children.map((node=>node.visit(this,null))),new Placeholder("",endId,el.sourceSpan))}this._addError(el,' misses the "equivEnd" attribute')}else this._addError(el,' misses the "equivStart" attribute');break;case"mrk":return[].concat(...visitAll(this,el.children));default:this._addError(el,"Unexpected tag")}return null}visitExpansion(icu,context){const caseMap={};return visitAll(this,icu.cases).forEach((c=>{caseMap[c.value]=new Container(c.nodes,icu.sourceSpan)})),new Icu(icu.switchValue,icu.type,caseMap,icu.sourceSpan)}visitExpansionCase(icuCase,context){return{value:icuCase.value,nodes:[].concat(...visitAll(this,icuCase.expression))}}visitComment(comment,context){}visitAttribute(attribute,context){}visitBlock(block,context){}visitBlockParameter(parameter,context){}_addError(node,message){this._errors.push(new I18nError(node.sourceSpan,message))}}class Xtb extends Serializer{write(messages,locale){throw new Error("Unsupported")}load(content,url){const xtbParser=new XtbParser,{locale,msgIdToHtml,errors}=xtbParser.parse(content,url),i18nNodesByMsgId={},converter=new XmlToI18n;if(Object.keys(msgIdToHtml).forEach((msgId=>{!function createLazyProperty(messages,id,valueFn){Object.defineProperty(messages,id,{configurable:!0,enumerable:!0,get:function(){const value=valueFn();return Object.defineProperty(messages,id,{enumerable:!0,value}),value},set:_=>{throw new Error("Could not overwrite an XTB translation")}})}(i18nNodesByMsgId,msgId,(function(){const{i18nNodes,errors}=converter.convert(msgIdToHtml[msgId],url);if(errors.length)throw new Error(`xtb parse errors:\n${errors.join("\n")}`);return i18nNodes}))})),errors.length)throw new Error(`xtb parse errors:\n${errors.join("\n")}`);return{locale,i18nNodesByMsgId}}digest(message){return digest(message)}createNameMapper(message){return new SimplePlaceholderMapper(message,toPublicName)}}class XtbParser{constructor(){this._locale=null}parse(xtb,url){this._bundleDepth=0,this._msgIdToHtml={};const xml=(new XmlParser).parse(xtb,url);return this._errors=xml.errors,visitAll(this,xml.rootNodes),{msgIdToHtml:this._msgIdToHtml,errors:this._errors,locale:this._locale}}visitElement(element,context){switch(element.name){case"translationbundle":this._bundleDepth++,this._bundleDepth>1&&this._addError(element," elements can not be nested");const langAttr=element.attrs.find((attr=>"lang"===attr.name));langAttr&&(this._locale=langAttr.value),visitAll(this,element.children,null),this._bundleDepth--;break;case"translation":const idAttr=element.attrs.find((attr=>"id"===attr.name));if(idAttr){const id=idAttr.value;if(this._msgIdToHtml.hasOwnProperty(id))this._addError(element,`Duplicated translations for msg ${id}`);else{const innerTextStart=element.startSourceSpan.end.offset,innerTextEnd=element.endSourceSpan.start.offset,innerText=element.startSourceSpan.start.file.content.slice(innerTextStart,innerTextEnd);this._msgIdToHtml[id]=innerText}}else this._addError(element,' misses the "id" attribute');break;default:this._addError(element,"Unexpected tag")}}visitAttribute(attribute,context){}visitText(text,context){}visitComment(comment,context){}visitExpansion(expansion,context){}visitExpansionCase(expansionCase,context){}visitBlock(block,context){}visitBlockParameter(block,context){}_addError(node,message){this._errors.push(new I18nError(node.sourceSpan,message))}}class XmlToI18n{convert(message,url){const xmlIcu=(new XmlParser).parse(message,url,{tokenizeExpansionForms:!0});this._errors=xmlIcu.errors;return{i18nNodes:this._errors.length>0||0==xmlIcu.rootNodes.length?[]:visitAll(this,xmlIcu.rootNodes),errors:this._errors}}visitText(text,context){return new Text$2(text.value,text.sourceSpan)}visitExpansion(icu,context){const caseMap={};return visitAll(this,icu.cases).forEach((c=>{caseMap[c.value]=new Container(c.nodes,icu.sourceSpan)})),new Icu(icu.switchValue,icu.type,caseMap,icu.sourceSpan)}visitExpansionCase(icuCase,context){return{value:icuCase.value,nodes:visitAll(this,icuCase.expression)}}visitElement(el,context){if("ph"===el.name){const nameAttr=el.attrs.find((attr=>"name"===attr.name));if(nameAttr)return new Placeholder("",nameAttr.value,el.sourceSpan);this._addError(el,' misses the "name" attribute')}else this._addError(el,"Unexpected tag");return null}visitComment(comment,context){}visitAttribute(attribute,context){}visitBlock(block,context){}visitBlockParameter(block,context){}_addError(node,message){this._errors.push(new I18nError(node.sourceSpan,message))}}class TranslationBundle{constructor(_i18nNodesByMsgId={},locale,digest,mapperFactory,missingTranslationStrategy=MissingTranslationStrategy.Warning,console){this._i18nNodesByMsgId=_i18nNodesByMsgId,this.digest=digest,this.mapperFactory=mapperFactory,this._i18nToHtml=new I18nToHtmlVisitor(_i18nNodesByMsgId,locale,digest,mapperFactory,missingTranslationStrategy,console)}static load(content,url,serializer,missingTranslationStrategy,console){const{locale,i18nNodesByMsgId}=serializer.load(content,url);return new TranslationBundle(i18nNodesByMsgId,locale,(m=>serializer.digest(m)),(m=>serializer.createNameMapper(m)),missingTranslationStrategy,console)}get(srcMsg){const html=this._i18nToHtml.convert(srcMsg);if(html.errors.length)throw new Error(html.errors.join("\n"));return html.nodes}has(srcMsg){return this.digest(srcMsg)in this._i18nNodesByMsgId}}class I18nToHtmlVisitor{constructor(_i18nNodesByMsgId={},_locale,_digest,_mapperFactory,_missingTranslationStrategy,_console){this._i18nNodesByMsgId=_i18nNodesByMsgId,this._locale=_locale,this._digest=_digest,this._mapperFactory=_mapperFactory,this._missingTranslationStrategy=_missingTranslationStrategy,this._console=_console,this._errors=[],this._contextStack=[]}convert(srcMsg){this._contextStack.length=0,this._errors.length=0;const text=this._convertToText(srcMsg),url=srcMsg.nodes[0].sourceSpan.start.file.url,html=(new HtmlParser).parse(text,url,{tokenizeExpansionForms:!0});return{nodes:html.rootNodes,errors:[...this._errors,...html.errors]}}visitText(text,context){return escapeXml(text.value)}visitContainer(container,context){return container.children.map((n=>n.visit(this))).join("")}visitIcu(icu,context){const cases=Object.keys(icu.cases).map((k=>`${k} {${icu.cases[k].visit(this)}}`));return`{${this._srcMsg.placeholders.hasOwnProperty(icu.expression)?this._srcMsg.placeholders[icu.expression].text:icu.expression}, ${icu.type}, ${cases.join(" ")}}`}visitPlaceholder(ph,context){const phName=this._mapper(ph.name);return this._srcMsg.placeholders.hasOwnProperty(phName)?this._srcMsg.placeholders[phName].text:this._srcMsg.placeholderToMessage.hasOwnProperty(phName)?this._convertToText(this._srcMsg.placeholderToMessage[phName]):(this._addError(ph,`Unknown placeholder "${ph.name}"`),"")}visitTagPlaceholder(ph,context){const tag=`${ph.tag}`,attrs=Object.keys(ph.attrs).map((name=>`${name}="${ph.attrs[name]}"`)).join(" ");if(ph.isVoid)return`<${tag} ${attrs}/>`;return`<${tag} ${attrs}>${ph.children.map((c=>c.visit(this))).join("")}`}visitIcuPlaceholder(ph,context){return this._convertToText(this._srcMsg.placeholderToMessage[ph.name])}visitBlockPlaceholder(ph,context){const params=0===ph.parameters.length?"":` (${ph.parameters.join("; ")})`,children=ph.children.map((c=>c.visit(this))).join("");return`@${ph.name}${params} {${children}}`}_convertToText(srcMsg){const id=this._digest(srcMsg),mapper=this._mapperFactory?this._mapperFactory(srcMsg):null;let nodes;if(this._contextStack.push({msg:this._srcMsg,mapper:this._mapper}),this._srcMsg=srcMsg,this._i18nNodesByMsgId.hasOwnProperty(id))nodes=this._i18nNodesByMsgId[id],this._mapper=name=>mapper?mapper.toInternalName(name):name;else{if(this._missingTranslationStrategy===MissingTranslationStrategy.Error){const ctx=this._locale?` for locale "${this._locale}"`:"";this._addError(srcMsg.nodes[0],`Missing translation for message "${id}"${ctx}`)}else if(this._console&&this._missingTranslationStrategy===MissingTranslationStrategy.Warning){const ctx=this._locale?` for locale "${this._locale}"`:"";this._console.warn(`Missing translation for message "${id}"${ctx}`)}nodes=srcMsg.nodes,this._mapper=name=>name}const text=nodes.map((node=>node.visit(this))).join(""),context=this._contextStack.pop();return this._srcMsg=context.msg,this._mapper=context.mapper,text}_addError(el,msg){this._errors.push(new I18nError(el.sourceSpan,msg))}}class I18NHtmlParser{constructor(_htmlParser,translations,translationsFormat,missingTranslation=MissingTranslationStrategy.Warning,console){if(this._htmlParser=_htmlParser,translations){const serializer=function createSerializer(format){switch(format=(format||"xlf").toLowerCase()){case"xmb":return new Xmb;case"xtb":return new Xtb;case"xliff2":case"xlf2":return new Xliff2;default:return new Xliff}}(translationsFormat);this._translationBundle=TranslationBundle.load(translations,"i18n",serializer,missingTranslation,console)}else this._translationBundle=new TranslationBundle({},null,digest$1,void 0,missingTranslation,console)}parse(source,url,options={}){const interpolationConfig=options.interpolationConfig||DEFAULT_INTERPOLATION_CONFIG,parseResult=this._htmlParser.parse(source,url,{interpolationConfig,...options});return parseResult.errors.length?new ParseTreeResult(parseResult.rootNodes,parseResult.errors):function mergeTranslations(nodes,translations,interpolationConfig,implicitTags,implicitAttrs){return new _Visitor(implicitTags,implicitAttrs).merge(nodes,translations,interpolationConfig)}(parseResult.rootNodes,this._translationBundle,interpolationConfig,[],{})}}class MessageBundle{constructor(_htmlParser,_implicitTags,_implicitAttrs,_locale=null){this._htmlParser=_htmlParser,this._implicitTags=_implicitTags,this._implicitAttrs=_implicitAttrs,this._locale=_locale,this._messages=[]}updateFromTemplate(html,url,interpolationConfig){const htmlParserResult=this._htmlParser.parse(html,url,{tokenizeExpansionForms:!0,interpolationConfig});if(htmlParserResult.errors.length)return htmlParserResult.errors;const i18nParserResult=function extractMessages(nodes,interpolationConfig,implicitTags,implicitAttrs){return new _Visitor(implicitTags,implicitAttrs).extract(nodes,interpolationConfig)}(htmlParserResult.rootNodes,interpolationConfig,this._implicitTags,this._implicitAttrs);return i18nParserResult.errors.length?i18nParserResult.errors:(this._messages.push(...i18nParserResult.messages),[])}getMessages(){return this._messages}write(serializer,filterSources){const messages={},mapperVisitor=new MapPlaceholderNames;this._messages.forEach((message=>{const id=serializer.digest(message);messages.hasOwnProperty(id)?messages[id].sources.push(...message.sources):messages[id]=message}));const msgList=Object.keys(messages).map((id=>{const mapper=serializer.createNameMapper(messages[id]),src=messages[id],nodes=mapper?mapperVisitor.convert(src.nodes,mapper):src.nodes;let transformedMessage=new Message(nodes,{},{},src.meaning,src.description,id);return transformedMessage.sources=src.sources,filterSources&&transformedMessage.sources.forEach((source=>source.filePath=filterSources(source.filePath))),transformedMessage}));return serializer.write(msgList,this._locale)}}class MapPlaceholderNames extends CloneVisitor{convert(nodes,mapper){return mapper?nodes.map((n=>n.visit(this,mapper))):nodes}visitTagPlaceholder(ph,mapper){const startName=mapper.toPublicName(ph.startName),closeName=ph.closeName?mapper.toPublicName(ph.closeName):ph.closeName,children=ph.children.map((n=>n.visit(this,mapper)));return new TagPlaceholder(ph.tag,ph.attrs,startName,closeName,children,ph.isVoid,ph.sourceSpan,ph.startSourceSpan,ph.endSourceSpan)}visitBlockPlaceholder(ph,mapper){const startName=mapper.toPublicName(ph.startName),closeName=ph.closeName?mapper.toPublicName(ph.closeName):ph.closeName,children=ph.children.map((n=>n.visit(this,mapper)));return new BlockPlaceholder(ph.name,ph.parameters,startName,closeName,children,ph.sourceSpan,ph.startSourceSpan,ph.endSourceSpan)}visitPlaceholder(ph,mapper){return new Placeholder(ph.value,mapper.toPublicName(ph.name),ph.sourceSpan)}visitIcuPlaceholder(ph,mapper){return new IcuPlaceholder(ph.value,mapper.toPublicName(ph.name),ph.sourceSpan)}}var FactoryTarget;function compileClassMetadata(metadata){return arrowFn([],[devOnlyGuardedExpression(importExpr(Identifiers.setClassMetadata).callFn([metadata.type,metadata.decorators,metadata.ctorParameters??literal(null),metadata.propDecorators??literal(null)])).toStmt()]).callFn([])}function compileComponentClassMetadata(metadata,deferrableTypes){if(null===deferrableTypes||0===deferrableTypes.size)return compileClassMetadata(metadata);const dynamicImports=[],importedSymbols=[];for(const[symbolName,{importPath,isDefaultImport}]of deferrableTypes){const innerFn=arrowFn([new FnParam("m",DYNAMIC_TYPE)],variable("m").prop(isDefaultImport?"default":symbolName)),importExpr=new DynamicImportExpr(importPath).prop("then").callFn([innerFn]);dynamicImports.push(importExpr),importedSymbols.push(new FnParam(symbolName,DYNAMIC_TYPE))}const dependencyLoadingFn=arrowFn([],literalArr(dynamicImports)),setClassMetaWrapper=arrowFn(importedSymbols,[importExpr(Identifiers.setClassMetadata).callFn([metadata.type,metadata.decorators,metadata.ctorParameters??literal(null),metadata.propDecorators??literal(null)]).toStmt()]);return arrowFn([],[devOnlyGuardedExpression(importExpr(Identifiers.setClassMetadataAsync).callFn([metadata.type,dependencyLoadingFn,setClassMetaWrapper])).toStmt()]).callFn([])}function compileClassDebugInfo(debugInfo){const debugInfoObject={className:debugInfo.className};debugInfo.filePath&&(debugInfoObject.filePath=debugInfo.filePath,debugInfoObject.lineNumber=debugInfo.lineNumber),debugInfo.forbidOrphanRendering&&(debugInfoObject.forbidOrphanRendering=literal(!0));return arrowFn([],[devOnlyGuardedExpression(importExpr(Identifiers.setClassDebugInfo).callFn([debugInfo.type,mapLiteral(debugInfoObject)])).toStmt()]).callFn([])}!function(FactoryTarget){FactoryTarget[FactoryTarget.Directive=0]="Directive",FactoryTarget[FactoryTarget.Component=1]="Component",FactoryTarget[FactoryTarget.Injectable=2]="Injectable",FactoryTarget[FactoryTarget.Pipe=3]="Pipe",FactoryTarget[FactoryTarget.NgModule=4]="NgModule"}(FactoryTarget||(FactoryTarget={}));const MINIMUM_PARTIAL_LINKER_VERSION$5="12.0.0";function compileDeclareClassMetadata(metadata){const definitionMap=new DefinitionMap;return definitionMap.set("minVersion",literal(MINIMUM_PARTIAL_LINKER_VERSION$5)),definitionMap.set("version",literal("17.3.12")),definitionMap.set("ngImport",importExpr(Identifiers.core)),definitionMap.set("type",metadata.type),definitionMap.set("decorators",metadata.decorators),definitionMap.set("ctorParameters",metadata.ctorParameters),definitionMap.set("propDecorators",metadata.propDecorators),importExpr(Identifiers.declareClassMetadata).callFn([definitionMap.toLiteralMap()])}function toOptionalLiteralArray(values,mapper){return null===values||0===values.length?null:literalArr(values.map((value=>mapper(value))))}function toOptionalLiteralMap(object,mapper){const entries=Object.keys(object).map((key=>{const value=object[key];return{key,value:mapper(value),quoted:!0}}));return entries.length>0?literalMap(entries):null}function compileDependency(dep){const depMeta=new DefinitionMap;return depMeta.set("token",dep.token),null!==dep.attributeNameType&&depMeta.set("attribute",literal(!0)),dep.host&&depMeta.set("host",literal(!0)),dep.optional&&depMeta.set("optional",literal(!0)),dep.self&&depMeta.set("self",literal(!0)),dep.skipSelf&&depMeta.set("skipSelf",literal(!0)),depMeta.toLiteralMap()}function compileDeclareDirectiveFromMetadata(meta){const definitionMap=createDirectiveDefinitionMap(meta);return{expression:importExpr(Identifiers.declareDirective).callFn([definitionMap.toLiteralMap()]),type:createDirectiveType(meta),statements:[]}}function createDirectiveDefinitionMap(meta){const definitionMap=new DefinitionMap,minVersion=function getMinimumVersionForPartialOutput(meta){let minVersion="14.0.0";const hasDecoratorTransformFunctions=Object.values(meta.inputs).some((input=>null!==input.transformFunction));hasDecoratorTransformFunctions&&(minVersion="16.1.0");needsNewInputPartialOutput(meta)&&(minVersion="17.1.0");(meta.queries.some((q=>q.isSignal))||meta.viewQueries.some((q=>q.isSignal)))&&(minVersion="17.2.0");return minVersion}(meta);return definitionMap.set("minVersion",literal(minVersion)),definitionMap.set("version",literal("17.3.12")),definitionMap.set("type",meta.type.value),meta.isStandalone&&definitionMap.set("isStandalone",literal(meta.isStandalone)),meta.isSignal&&definitionMap.set("isSignal",literal(meta.isSignal)),null!==meta.selector&&definitionMap.set("selector",literal(meta.selector)),definitionMap.set("inputs",needsNewInputPartialOutput(meta)?function createInputsPartialMetadata(inputs){const keys=Object.getOwnPropertyNames(inputs);if(0===keys.length)return null;return literalMap(keys.map((declaredName=>{const value=inputs[declaredName];return{key:declaredName,quoted:UNSAFE_OBJECT_KEY_NAME_REGEXP.test(declaredName),value:literalMap([{key:"classPropertyName",quoted:!1,value:asLiteral(value.classPropertyName)},{key:"publicName",quoted:!1,value:asLiteral(value.bindingPropertyName)},{key:"isSignal",quoted:!1,value:asLiteral(value.isSignal)},{key:"isRequired",quoted:!1,value:asLiteral(value.required)},{key:"transformFunction",quoted:!1,value:value.transformFunction??NULL_EXPR}])}})))}(meta.inputs):function legacyInputsPartialMetadata(inputs){const keys=Object.getOwnPropertyNames(inputs);if(0===keys.length)return null;return literalMap(keys.map((declaredName=>{const value=inputs[declaredName],publicName=value.bindingPropertyName;let result;if(publicName!==declaredName||null!==value.transformFunction){const values=[asLiteral(publicName),asLiteral(declaredName)];null!==value.transformFunction&&values.push(value.transformFunction),result=literalArr(values)}else result=asLiteral(publicName);return{key:declaredName,quoted:UNSAFE_OBJECT_KEY_NAME_REGEXP.test(declaredName),value:result}})))}(meta.inputs)),definitionMap.set("outputs",conditionallyCreateDirectiveBindingLiteral(meta.outputs)),definitionMap.set("host",function compileHostMetadata(meta){const hostMetadata=new DefinitionMap;hostMetadata.set("attributes",toOptionalLiteralMap(meta.attributes,(expression=>expression))),hostMetadata.set("listeners",toOptionalLiteralMap(meta.listeners,literal)),hostMetadata.set("properties",toOptionalLiteralMap(meta.properties,literal)),meta.specialAttributes.styleAttr&&hostMetadata.set("styleAttribute",literal(meta.specialAttributes.styleAttr));meta.specialAttributes.classAttr&&hostMetadata.set("classAttribute",literal(meta.specialAttributes.classAttr));return hostMetadata.values.length>0?hostMetadata.toLiteralMap():null}(meta.host)),definitionMap.set("providers",meta.providers),meta.queries.length>0&&definitionMap.set("queries",literalArr(meta.queries.map(compileQuery))),meta.viewQueries.length>0&&definitionMap.set("viewQueries",literalArr(meta.viewQueries.map(compileQuery))),null!==meta.exportAs&&definitionMap.set("exportAs",asLiteral(meta.exportAs)),meta.usesInheritance&&definitionMap.set("usesInheritance",literal(!0)),meta.lifecycle.usesOnChanges&&definitionMap.set("usesOnChanges",literal(!0)),meta.hostDirectives?.length&&definitionMap.set("hostDirectives",function createHostDirectives(hostDirectives){return literalArr(hostDirectives.map((current=>{const keys=[{key:"directive",value:current.isForwardReference?generateForwardRef(current.directive.type):current.directive.type,quoted:!1}],inputsLiteral=current.inputs?createHostDirectivesMappingArray(current.inputs):null,outputsLiteral=current.outputs?createHostDirectivesMappingArray(current.outputs):null;return inputsLiteral&&keys.push({key:"inputs",value:inputsLiteral,quoted:!1}),outputsLiteral&&keys.push({key:"outputs",value:outputsLiteral,quoted:!1}),literalMap(keys)})))}(meta.hostDirectives)),definitionMap.set("ngImport",importExpr(Identifiers.core)),definitionMap}function needsNewInputPartialOutput(meta){return Object.values(meta.inputs).some((input=>input.isSignal))}function compileQuery(query){const meta=new DefinitionMap;return meta.set("propertyName",literal(query.propertyName)),query.first&&meta.set("first",literal(!0)),meta.set("predicate",Array.isArray(query.predicate)?asLiteral(query.predicate):convertFromMaybeForwardRefExpression(query.predicate)),query.emitDistinctChangesOnly||meta.set("emitDistinctChangesOnly",literal(!1)),query.descendants&&meta.set("descendants",literal(!0)),meta.set("read",query.read),query.static&&meta.set("static",literal(!0)),query.isSignal&&meta.set("isSignal",literal(!0)),meta.toLiteralMap()}function compileDeclareComponentFromMetadata(meta,template,additionalTemplateInfo){const definitionMap=function createComponentDefinitionMap(meta,template,templateInfo){const definitionMap=createDirectiveDefinitionMap(meta),blockVisitor=new BlockPresenceVisitor;visitAll$1(blockVisitor,template.nodes),definitionMap.set("template",function getTemplateExpression(template,templateInfo){if(null!==templateInfo.inlineTemplateLiteralExpression)return templateInfo.inlineTemplateLiteralExpression;if(templateInfo.isInline)return literal(templateInfo.content,null,null);const contents=templateInfo.content,file=new ParseSourceFile(contents,templateInfo.sourceUrl),start=new ParseLocation(file,0,0,0),end=function computeEndLocation(file,contents){const length=contents.length;let lineStart=0,lastLineStart=0,line=0;do{lineStart=contents.indexOf("\n",lastLineStart),-1!==lineStart&&(lastLineStart=lineStart+1,line++)}while(-1!==lineStart);return new ParseLocation(file,length,line,length-lastLineStart)}(file,contents),span=new ParseSourceSpan(start,end);return literal(contents,null,span)}(0,templateInfo)),templateInfo.isInline&&definitionMap.set("isInline",literal(!0));blockVisitor.hasBlocks&&definitionMap.set("minVersion",literal("17.0.0"));if(definitionMap.set("styles",toOptionalLiteralArray(meta.styles,literal)),definitionMap.set("dependencies",function compileUsedDependenciesMetadata(meta){const wrapType=0!==meta.declarationListEmitMode?generateForwardRef:expr=>expr;if(3===meta.declarationListEmitMode)throw new Error("Unsupported emit mode");return toOptionalLiteralArray(meta.declarations,(decl=>{switch(decl.kind){case R3TemplateDependencyKind.Directive:const dirMeta=new DefinitionMap;return dirMeta.set("kind",literal(decl.isComponent?"component":"directive")),dirMeta.set("type",wrapType(decl.type)),dirMeta.set("selector",literal(decl.selector)),dirMeta.set("inputs",toOptionalLiteralArray(decl.inputs,literal)),dirMeta.set("outputs",toOptionalLiteralArray(decl.outputs,literal)),dirMeta.set("exportAs",toOptionalLiteralArray(decl.exportAs,literal)),dirMeta.toLiteralMap();case R3TemplateDependencyKind.Pipe:const pipeMeta=new DefinitionMap;return pipeMeta.set("kind",literal("pipe")),pipeMeta.set("type",wrapType(decl.type)),pipeMeta.set("name",literal(decl.name)),pipeMeta.toLiteralMap();case R3TemplateDependencyKind.NgModule:const ngModuleMeta=new DefinitionMap;return ngModuleMeta.set("kind",literal("ngmodule")),ngModuleMeta.set("type",wrapType(decl.type)),ngModuleMeta.toLiteralMap()}}))}(meta)),definitionMap.set("viewProviders",meta.viewProviders),definitionMap.set("animations",meta.animations),null!==meta.changeDetection){if("object"==typeof meta.changeDetection)throw new Error("Impossible state! Change detection flag is not resolved!");definitionMap.set("changeDetection",importExpr(Identifiers.ChangeDetectionStrategy).prop(ChangeDetectionStrategy[meta.changeDetection]))}meta.encapsulation!==ViewEncapsulation.Emulated&&definitionMap.set("encapsulation",importExpr(Identifiers.ViewEncapsulation).prop(ViewEncapsulation[meta.encapsulation]));meta.interpolation!==DEFAULT_INTERPOLATION_CONFIG&&definitionMap.set("interpolation",literalArr([literal(meta.interpolation.start),literal(meta.interpolation.end)]));!0===template.preserveWhitespaces&&definitionMap.set("preserveWhitespaces",literal(!0));return definitionMap}(meta,template,additionalTemplateInfo);return{expression:importExpr(Identifiers.declareComponent).callFn([definitionMap.toLiteralMap()]),type:createComponentType(meta),statements:[]}}class BlockPresenceVisitor extends RecursiveVisitor$1{constructor(){super(...arguments),this.hasBlocks=!1}visitDeferredBlock(){this.hasBlocks=!0}visitDeferredBlockPlaceholder(){this.hasBlocks=!0}visitDeferredBlockLoading(){this.hasBlocks=!0}visitDeferredBlockError(){this.hasBlocks=!0}visitIfBlock(){this.hasBlocks=!0}visitIfBlockBranch(){this.hasBlocks=!0}visitForLoopBlock(){this.hasBlocks=!0}visitForLoopBlockEmpty(){this.hasBlocks=!0}visitSwitchBlock(){this.hasBlocks=!0}visitSwitchBlockCase(){this.hasBlocks=!0}}const MINIMUM_PARTIAL_LINKER_VERSION$4="12.0.0";function compileDeclareFactoryFunction(meta){const definitionMap=new DefinitionMap;return definitionMap.set("minVersion",literal(MINIMUM_PARTIAL_LINKER_VERSION$4)),definitionMap.set("version",literal("17.3.12")),definitionMap.set("ngImport",importExpr(Identifiers.core)),definitionMap.set("type",meta.type.value),definitionMap.set("deps",function compileDependencies(deps){return"invalid"===deps?literal("invalid"):null===deps?literal(null):literalArr(deps.map(compileDependency))}(meta.deps)),definitionMap.set("target",importExpr(Identifiers.FactoryTarget).prop(FactoryTarget$1[meta.target])),{expression:importExpr(Identifiers.declareFactory).callFn([definitionMap.toLiteralMap()]),statements:[],type:createFactoryType(meta)}}const MINIMUM_PARTIAL_LINKER_VERSION$3="12.0.0";function compileDeclareInjectableFromMetadata(meta){const definitionMap=function createInjectableDefinitionMap(meta){const definitionMap=new DefinitionMap;if(definitionMap.set("minVersion",literal(MINIMUM_PARTIAL_LINKER_VERSION$3)),definitionMap.set("version",literal("17.3.12")),definitionMap.set("ngImport",importExpr(Identifiers.core)),definitionMap.set("type",meta.type.value),void 0!==meta.providedIn){const providedIn=convertFromMaybeForwardRefExpression(meta.providedIn);null!==providedIn.value&&definitionMap.set("providedIn",providedIn)}void 0!==meta.useClass&&definitionMap.set("useClass",convertFromMaybeForwardRefExpression(meta.useClass));void 0!==meta.useExisting&&definitionMap.set("useExisting",convertFromMaybeForwardRefExpression(meta.useExisting));void 0!==meta.useValue&&definitionMap.set("useValue",convertFromMaybeForwardRefExpression(meta.useValue));void 0!==meta.useFactory&&definitionMap.set("useFactory",meta.useFactory);void 0!==meta.deps&&definitionMap.set("deps",literalArr(meta.deps.map(compileDependency)));return definitionMap}(meta);return{expression:importExpr(Identifiers.declareInjectable).callFn([definitionMap.toLiteralMap()]),type:createInjectableType(meta),statements:[]}}const MINIMUM_PARTIAL_LINKER_VERSION$2="12.0.0";function compileDeclareInjectorFromMetadata(meta){const definitionMap=function createInjectorDefinitionMap(meta){const definitionMap=new DefinitionMap;definitionMap.set("minVersion",literal(MINIMUM_PARTIAL_LINKER_VERSION$2)),definitionMap.set("version",literal("17.3.12")),definitionMap.set("ngImport",importExpr(Identifiers.core)),definitionMap.set("type",meta.type.value),definitionMap.set("providers",meta.providers),meta.imports.length>0&&definitionMap.set("imports",literalArr(meta.imports));return definitionMap}(meta);return{expression:importExpr(Identifiers.declareInjector).callFn([definitionMap.toLiteralMap()]),type:createInjectorType(meta),statements:[]}}const MINIMUM_PARTIAL_LINKER_VERSION$1="14.0.0";function compileDeclareNgModuleFromMetadata(meta){const definitionMap=function createNgModuleDefinitionMap(meta){const definitionMap=new DefinitionMap;if(meta.kind===R3NgModuleMetadataKind.Local)throw new Error("Invalid path! Local compilation mode should not get into the partial compilation path");definitionMap.set("minVersion",literal(MINIMUM_PARTIAL_LINKER_VERSION$1)),definitionMap.set("version",literal("17.3.12")),definitionMap.set("ngImport",importExpr(Identifiers.core)),definitionMap.set("type",meta.type.value),meta.bootstrap.length>0&&definitionMap.set("bootstrap",refsToArray(meta.bootstrap,meta.containsForwardDecls));meta.declarations.length>0&&definitionMap.set("declarations",refsToArray(meta.declarations,meta.containsForwardDecls));meta.imports.length>0&&definitionMap.set("imports",refsToArray(meta.imports,meta.containsForwardDecls));meta.exports.length>0&&definitionMap.set("exports",refsToArray(meta.exports,meta.containsForwardDecls));null!==meta.schemas&&meta.schemas.length>0&&definitionMap.set("schemas",literalArr(meta.schemas.map((ref=>ref.value))));null!==meta.id&&definitionMap.set("id",meta.id);return definitionMap}(meta);return{expression:importExpr(Identifiers.declareNgModule).callFn([definitionMap.toLiteralMap()]),type:createNgModuleType(meta),statements:[]}}const MINIMUM_PARTIAL_LINKER_VERSION="14.0.0";function compileDeclarePipeFromMetadata(meta){const definitionMap=function createPipeDefinitionMap(meta){const definitionMap=new DefinitionMap;definitionMap.set("minVersion",literal(MINIMUM_PARTIAL_LINKER_VERSION)),definitionMap.set("version",literal("17.3.12")),definitionMap.set("ngImport",importExpr(Identifiers.core)),definitionMap.set("type",meta.type.value),meta.isStandalone&&definitionMap.set("isStandalone",literal(meta.isStandalone));definitionMap.set("name",literal(meta.pipeName)),!1===meta.pure&&definitionMap.set("pure",literal(meta.pure));return definitionMap}(meta);return{expression:importExpr(Identifiers.declarePipe).callFn([definitionMap.toLiteralMap()]),type:createPipeType(meta),statements:[]}}publishFacade(_global)},"./node_modules/@angular/core/fesm2022/core.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{ANIMATION_MODULE_TYPE:()=>ANIMATION_MODULE_TYPE,APP_BOOTSTRAP_LISTENER:()=>APP_BOOTSTRAP_LISTENER,APP_ID:()=>APP_ID,APP_INITIALIZER:()=>APP_INITIALIZER,AfterRenderPhase:()=>AfterRenderPhase,ApplicationInitStatus:()=>ApplicationInitStatus,ApplicationModule:()=>ApplicationModule,ApplicationRef:()=>ApplicationRef,Attribute:()=>Attribute,COMPILER_OPTIONS:()=>COMPILER_OPTIONS,CSP_NONCE:()=>CSP_NONCE,CUSTOM_ELEMENTS_SCHEMA:()=>CUSTOM_ELEMENTS_SCHEMA,ChangeDetectionStrategy:()=>ChangeDetectionStrategy,ChangeDetectorRef:()=>ChangeDetectorRef,Compiler:()=>Compiler,CompilerFactory:()=>CompilerFactory,Component:()=>Component,ComponentFactory:()=>ComponentFactory$1,ComponentFactoryResolver:()=>ComponentFactoryResolver$1,ComponentRef:()=>ComponentRef$1,ContentChild:()=>ContentChild,ContentChildren:()=>ContentChildren,DEFAULT_CURRENCY_CODE:()=>DEFAULT_CURRENCY_CODE,DebugElement:()=>DebugElement,DebugEventListener:()=>DebugEventListener,DebugNode:()=>DebugNode,DefaultIterableDiffer:()=>DefaultIterableDiffer,DestroyRef:()=>DestroyRef,Directive:()=>Directive,ENVIRONMENT_INITIALIZER:()=>ENVIRONMENT_INITIALIZER,ElementRef:()=>ElementRef,EmbeddedViewRef:()=>EmbeddedViewRef,EnvironmentInjector:()=>EnvironmentInjector,ErrorHandler:()=>ErrorHandler,EventEmitter:()=>EventEmitter,Host:()=>Host,HostAttributeToken:()=>HostAttributeToken,HostBinding:()=>HostBinding,HostListener:()=>HostListener,INJECTOR:()=>INJECTOR$1,Inject:()=>Inject,InjectFlags:()=>InjectFlags,Injectable:()=>Injectable,InjectionToken:()=>InjectionToken,Injector:()=>Injector,Input:()=>Input,IterableDiffers:()=>IterableDiffers,KeyValueDiffers:()=>KeyValueDiffers,LOCALE_ID:()=>LOCALE_ID,MissingTranslationStrategy:()=>MissingTranslationStrategy,ModuleWithComponentFactories:()=>ModuleWithComponentFactories,NO_ERRORS_SCHEMA:()=>NO_ERRORS_SCHEMA,NgModule:()=>NgModule,NgModuleFactory:()=>NgModuleFactory$1,NgModuleRef:()=>NgModuleRef$1,NgProbeToken:()=>NgProbeToken,NgZone:()=>NgZone,Optional:()=>Optional,Output:()=>Output,OutputEmitterRef:()=>OutputEmitterRef,PACKAGE_ROOT_URL:()=>PACKAGE_ROOT_URL,PLATFORM_ID:()=>PLATFORM_ID,PLATFORM_INITIALIZER:()=>PLATFORM_INITIALIZER,Pipe:()=>Pipe,PlatformRef:()=>PlatformRef,Query:()=>Query,QueryList:()=>QueryList,Renderer2:()=>Renderer2,RendererFactory2:()=>RendererFactory2,RendererStyleFlags2:()=>RendererStyleFlags2,Sanitizer:()=>Sanitizer,SecurityContext:()=>SecurityContext,Self:()=>Self,SimpleChange:()=>SimpleChange,SkipSelf:()=>SkipSelf,TRANSLATIONS:()=>TRANSLATIONS,TRANSLATIONS_FORMAT:()=>TRANSLATIONS_FORMAT,TemplateRef:()=>TemplateRef,Testability:()=>Testability,TestabilityRegistry:()=>TestabilityRegistry,TransferState:()=>TransferState,Type:()=>Type,VERSION:()=>VERSION,Version:()=>Version,ViewChild:()=>ViewChild,ViewChildren:()=>ViewChildren,ViewContainerRef:()=>ViewContainerRef,ViewEncapsulation:()=>ViewEncapsulation$1,ViewRef:()=>ViewRef,afterNextRender:()=>afterNextRender,afterRender:()=>afterRender,asNativeElements:()=>asNativeElements,assertInInjectionContext:()=>assertInInjectionContext,assertNotInReactiveContext:()=>assertNotInReactiveContext,assertPlatform:()=>assertPlatform,booleanAttribute:()=>booleanAttribute,computed:()=>computed,contentChild:()=>contentChild,contentChildren:()=>contentChildren,createComponent:()=>createComponent,createEnvironmentInjector:()=>createEnvironmentInjector,createNgModule:()=>createNgModule,createNgModuleRef:()=>createNgModuleRef,createPlatform:()=>createPlatform,createPlatformFactory:()=>createPlatformFactory,defineInjectable:()=>defineInjectable,destroyPlatform:()=>destroyPlatform,effect:()=>effect,enableProdMode:()=>enableProdMode,forwardRef:()=>forwardRef,getDebugNode:()=>getDebugNode,getModuleFactory:()=>getModuleFactory,getNgModuleById:()=>getNgModuleById,getPlatform:()=>getPlatform,importProvidersFrom:()=>importProvidersFrom,inject:()=>inject,input:()=>input,isDevMode:()=>isDevMode,isSignal:()=>isSignal,isStandalone:()=>isStandalone,makeEnvironmentProviders:()=>makeEnvironmentProviders,makeStateKey:()=>makeStateKey,mergeApplicationConfig:()=>mergeApplicationConfig,model:()=>model,numberAttribute:()=>numberAttribute,output:()=>output,platformCore:()=>platformCore,provideZoneChangeDetection:()=>provideZoneChangeDetection,reflectComponentType:()=>reflectComponentType,resolveForwardRef:()=>resolveForwardRef,runInInjectionContext:()=>runInInjectionContext,setTestabilityGetter:()=>setTestabilityGetter,signal:()=>signal,untracked:()=>untracked,viewChild:()=>viewChild,viewChildren:()=>viewChildren,ɵALLOW_MULTIPLE_PLATFORMS:()=>ALLOW_MULTIPLE_PLATFORMS,ɵAfterRenderEventManager:()=>AfterRenderEventManager,ɵCONTAINER_HEADER_OFFSET:()=>CONTAINER_HEADER_OFFSET,ɵChangeDetectionScheduler:()=>ChangeDetectionScheduler,ɵComponentFactory:()=>ComponentFactory$1,ɵConsole:()=>Console,ɵDEFAULT_LOCALE_ID:()=>DEFAULT_LOCALE_ID,ɵDEFER_BLOCK_CONFIG:()=>DEFER_BLOCK_CONFIG,ɵDEFER_BLOCK_DEPENDENCY_INTERCEPTOR:()=>DEFER_BLOCK_DEPENDENCY_INTERCEPTOR,ɵDeferBlockBehavior:()=>DeferBlockBehavior,ɵDeferBlockState:()=>DeferBlockState,ɵEffectScheduler:()=>EffectScheduler,ɵIMAGE_CONFIG:()=>IMAGE_CONFIG,ɵIMAGE_CONFIG_DEFAULTS:()=>IMAGE_CONFIG_DEFAULTS,ɵINJECTOR_SCOPE:()=>INJECTOR_SCOPE,ɵINPUT_SIGNAL_BRAND_WRITE_TYPE:()=>ɵINPUT_SIGNAL_BRAND_WRITE_TYPE,ɵIS_HYDRATION_DOM_REUSE_ENABLED:()=>IS_HYDRATION_DOM_REUSE_ENABLED,ɵLContext:()=>LContext,ɵLifecycleHooksFeature:()=>LifecycleHooksFeature,ɵLocaleDataIndex:()=>LocaleDataIndex,ɵNG_COMP_DEF:()=>NG_COMP_DEF,ɵNG_DIR_DEF:()=>NG_DIR_DEF,ɵNG_ELEMENT_ID:()=>NG_ELEMENT_ID,ɵNG_INJ_DEF:()=>NG_INJ_DEF,ɵNG_MOD_DEF:()=>NG_MOD_DEF,ɵNG_PIPE_DEF:()=>NG_PIPE_DEF,ɵNG_PROV_DEF:()=>NG_PROV_DEF,ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR:()=>NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR,ɵNO_CHANGE:()=>NO_CHANGE,ɵNgModuleFactory:()=>NgModuleFactory,ɵNoopNgZone:()=>NoopNgZone,ɵPendingTasks:()=>PendingTasks,ɵReflectionCapabilities:()=>ReflectionCapabilities,ɵRender3ComponentFactory:()=>ComponentFactory,ɵRender3ComponentRef:()=>ComponentRef,ɵRender3NgModuleRef:()=>NgModuleRef,ɵRuntimeError:()=>RuntimeError,ɵSSR_CONTENT_INTEGRITY_MARKER:()=>SSR_CONTENT_INTEGRITY_MARKER,ɵTESTABILITY:()=>TESTABILITY,ɵTESTABILITY_GETTER:()=>TESTABILITY_GETTER,ɵUSE_RUNTIME_DEPS_TRACKER_FOR_JIT:()=>USE_RUNTIME_DEPS_TRACKER_FOR_JIT,ɵViewRef:()=>ViewRef$1,ɵXSS_SECURITY_URL:()=>XSS_SECURITY_URL,ɵ_sanitizeHtml:()=>_sanitizeHtml,ɵ_sanitizeUrl:()=>_sanitizeUrl,ɵallowSanitizationBypassAndThrow:()=>allowSanitizationBypassAndThrow,ɵannotateForHydration:()=>annotateForHydration,ɵbypassSanitizationTrustHtml:()=>bypassSanitizationTrustHtml,ɵbypassSanitizationTrustResourceUrl:()=>bypassSanitizationTrustResourceUrl,ɵbypassSanitizationTrustScript:()=>bypassSanitizationTrustScript,ɵbypassSanitizationTrustStyle:()=>bypassSanitizationTrustStyle,ɵbypassSanitizationTrustUrl:()=>bypassSanitizationTrustUrl,ɵclearResolutionOfComponentResourcesQueue:()=>clearResolutionOfComponentResourcesQueue,ɵcompileComponent:()=>compileComponent,ɵcompileDirective:()=>compileDirective,ɵcompileNgModule:()=>compileNgModule,ɵcompileNgModuleDefs:()=>compileNgModuleDefs,ɵcompileNgModuleFactory:()=>compileNgModuleFactory,ɵcompilePipe:()=>compilePipe,ɵconvertToBitFlags:()=>convertToBitFlags,ɵcreateInjector:()=>createInjector,ɵdefaultIterableDiffers:()=>defaultIterableDiffers,ɵdefaultKeyValueDiffers:()=>defaultKeyValueDiffers,ɵdepsTracker:()=>depsTracker,ɵdetectChangesInViewIfRequired:()=>detectChangesInViewIfRequired,ɵdevModeEqual:()=>devModeEqual,ɵfindLocaleData:()=>findLocaleData,ɵflushModuleScopingQueueAsMuchAsPossible:()=>flushModuleScopingQueueAsMuchAsPossible,ɵformatRuntimeError:()=>formatRuntimeError,ɵgenerateStandaloneInDeclarationsError:()=>generateStandaloneInDeclarationsError,ɵgetAsyncClassMetadataFn:()=>getAsyncClassMetadataFn,ɵgetDebugNode:()=>getDebugNode,ɵgetDeferBlocks:()=>getDeferBlocks,ɵgetDirectives:()=>getDirectives,ɵgetEnsureDirtyViewsAreAlwaysReachable:()=>getEnsureDirtyViewsAreAlwaysReachable,ɵgetHostElement:()=>getHostElement,ɵgetInjectableDef:()=>getInjectableDef,ɵgetLContext:()=>getLContext,ɵgetLocaleCurrencyCode:()=>getLocaleCurrencyCode,ɵgetLocalePluralCase:()=>getLocalePluralCase,ɵgetOutputDestroyRef:()=>getOutputDestroyRef,ɵgetSanitizationBypassType:()=>getSanitizationBypassType,ɵgetUnknownElementStrictMode:()=>ɵgetUnknownElementStrictMode,ɵgetUnknownPropertyStrictMode:()=>ɵgetUnknownPropertyStrictMode,ɵglobal:()=>_global,ɵinjectChangeDetectorRef:()=>injectChangeDetectorRef,ɵinternalAfterNextRender:()=>internalAfterNextRender,ɵinternalCreateApplication:()=>internalCreateApplication,ɵisBoundToModule:()=>isBoundToModule,ɵisComponentDefPendingResolution:()=>isComponentDefPendingResolution,ɵisEnvironmentProviders:()=>isEnvironmentProviders,ɵisInjectable:()=>isInjectable,ɵisNgModule:()=>isNgModule,ɵisPromise:()=>isPromise,ɵisSubscribable:()=>isSubscribable,ɵnoSideEffects:()=>noSideEffects,ɵpatchComponentDefWithScope:()=>patchComponentDefWithScope,ɵperformanceMarkFeature:()=>performanceMarkFeature,ɵprovideZonelessChangeDetection:()=>provideZonelessChangeDetection,ɵqueueStateUpdate:()=>queueStateUpdate,ɵreadHydrationInfo:()=>readHydrationInfo,ɵregisterLocaleData:()=>registerLocaleData,ɵrenderDeferBlockState:()=>renderDeferBlockState,ɵresetCompiledComponents:()=>resetCompiledComponents,ɵresetJitOptions:()=>resetJitOptions,ɵresolveComponentResources:()=>resolveComponentResources,ɵrestoreComponentResolutionQueue:()=>restoreComponentResolutionQueue,ɵsetAllowDuplicateNgModuleIdsForTest:()=>setAllowDuplicateNgModuleIdsForTest,ɵsetAlternateWeakRefImpl:()=>core_setAlternateWeakRefImpl,ɵsetClassDebugInfo:()=>ɵsetClassDebugInfo,ɵsetClassMetadata:()=>setClassMetadata,ɵsetClassMetadataAsync:()=>setClassMetadataAsync,ɵsetCurrentInjector:()=>setCurrentInjector,ɵsetDocument:()=>setDocument,ɵsetEnsureDirtyViewsAreAlwaysReachable:()=>setEnsureDirtyViewsAreAlwaysReachable,ɵsetInjectorProfilerContext:()=>setInjectorProfilerContext,ɵsetLocaleId:()=>setLocaleId,ɵsetUnknownElementStrictMode:()=>ɵsetUnknownElementStrictMode,ɵsetUnknownPropertyStrictMode:()=>ɵsetUnknownPropertyStrictMode,ɵstore:()=>store,ɵstringify:()=>stringify,ɵtransitiveScopesFor:()=>transitiveScopesFor,ɵtriggerResourceLoading:()=>triggerResourceLoading,ɵtruncateMiddle:()=>truncateMiddle,ɵunregisterLocaleData:()=>unregisterAllLocaleData,ɵunwrapSafeValue:()=>unwrapSafeValue,ɵunwrapWritableSignal:()=>ɵunwrapWritableSignal,ɵwhenStable:()=>whenStable,ɵwithDomHydration:()=>withDomHydration,ɵwithI18nHydration:()=>withI18nHydration,ɵɵCopyDefinitionFeature:()=>ɵɵCopyDefinitionFeature,ɵɵFactoryTarget:()=>FactoryTarget,ɵɵHostDirectivesFeature:()=>ɵɵHostDirectivesFeature,ɵɵInheritDefinitionFeature:()=>ɵɵInheritDefinitionFeature,ɵɵInputFlags:()=>InputFlags,ɵɵInputTransformsFeature:()=>ɵɵInputTransformsFeature,ɵɵNgOnChangesFeature:()=>ɵɵNgOnChangesFeature,ɵɵProvidersFeature:()=>ɵɵProvidersFeature,ɵɵStandaloneFeature:()=>ɵɵStandaloneFeature,ɵɵadvance:()=>ɵɵadvance,ɵɵattribute:()=>ɵɵattribute,ɵɵattributeInterpolate1:()=>ɵɵattributeInterpolate1,ɵɵattributeInterpolate2:()=>ɵɵattributeInterpolate2,ɵɵattributeInterpolate3:()=>ɵɵattributeInterpolate3,ɵɵattributeInterpolate4:()=>ɵɵattributeInterpolate4,ɵɵattributeInterpolate5:()=>ɵɵattributeInterpolate5,ɵɵattributeInterpolate6:()=>ɵɵattributeInterpolate6,ɵɵattributeInterpolate7:()=>ɵɵattributeInterpolate7,ɵɵattributeInterpolate8:()=>ɵɵattributeInterpolate8,ɵɵattributeInterpolateV:()=>ɵɵattributeInterpolateV,ɵɵclassMap:()=>ɵɵclassMap,ɵɵclassMapInterpolate1:()=>ɵɵclassMapInterpolate1,ɵɵclassMapInterpolate2:()=>ɵɵclassMapInterpolate2,ɵɵclassMapInterpolate3:()=>ɵɵclassMapInterpolate3,ɵɵclassMapInterpolate4:()=>ɵɵclassMapInterpolate4,ɵɵclassMapInterpolate5:()=>ɵɵclassMapInterpolate5,ɵɵclassMapInterpolate6:()=>ɵɵclassMapInterpolate6,ɵɵclassMapInterpolate7:()=>ɵɵclassMapInterpolate7,ɵɵclassMapInterpolate8:()=>ɵɵclassMapInterpolate8,ɵɵclassMapInterpolateV:()=>ɵɵclassMapInterpolateV,ɵɵclassProp:()=>ɵɵclassProp,ɵɵcomponentInstance:()=>ɵɵcomponentInstance,ɵɵconditional:()=>ɵɵconditional,ɵɵcontentQuery:()=>ɵɵcontentQuery,ɵɵcontentQuerySignal:()=>ɵɵcontentQuerySignal,ɵɵdefer:()=>ɵɵdefer,ɵɵdeferEnableTimerScheduling:()=>ɵɵdeferEnableTimerScheduling,ɵɵdeferOnHover:()=>ɵɵdeferOnHover,ɵɵdeferOnIdle:()=>ɵɵdeferOnIdle,ɵɵdeferOnImmediate:()=>ɵɵdeferOnImmediate,ɵɵdeferOnInteraction:()=>ɵɵdeferOnInteraction,ɵɵdeferOnTimer:()=>ɵɵdeferOnTimer,ɵɵdeferOnViewport:()=>ɵɵdeferOnViewport,ɵɵdeferPrefetchOnHover:()=>ɵɵdeferPrefetchOnHover,ɵɵdeferPrefetchOnIdle:()=>ɵɵdeferPrefetchOnIdle,ɵɵdeferPrefetchOnImmediate:()=>ɵɵdeferPrefetchOnImmediate,ɵɵdeferPrefetchOnInteraction:()=>ɵɵdeferPrefetchOnInteraction,ɵɵdeferPrefetchOnTimer:()=>ɵɵdeferPrefetchOnTimer,ɵɵdeferPrefetchOnViewport:()=>ɵɵdeferPrefetchOnViewport,ɵɵdeferPrefetchWhen:()=>ɵɵdeferPrefetchWhen,ɵɵdeferWhen:()=>ɵɵdeferWhen,ɵɵdefineComponent:()=>ɵɵdefineComponent,ɵɵdefineDirective:()=>ɵɵdefineDirective,ɵɵdefineInjectable:()=>ɵɵdefineInjectable,ɵɵdefineInjector:()=>ɵɵdefineInjector,ɵɵdefineNgModule:()=>ɵɵdefineNgModule,ɵɵdefinePipe:()=>ɵɵdefinePipe,ɵɵdirectiveInject:()=>ɵɵdirectiveInject,ɵɵdisableBindings:()=>ɵɵdisableBindings,ɵɵelement:()=>ɵɵelement,ɵɵelementContainer:()=>ɵɵelementContainer,ɵɵelementContainerEnd:()=>ɵɵelementContainerEnd,ɵɵelementContainerStart:()=>ɵɵelementContainerStart,ɵɵelementEnd:()=>ɵɵelementEnd,ɵɵelementStart:()=>ɵɵelementStart,ɵɵenableBindings:()=>ɵɵenableBindings,ɵɵgetComponentDepsFactory:()=>ɵɵgetComponentDepsFactory,ɵɵgetCurrentView:()=>ɵɵgetCurrentView,ɵɵgetInheritedFactory:()=>ɵɵgetInheritedFactory,ɵɵhostProperty:()=>ɵɵhostProperty,ɵɵi18n:()=>ɵɵi18n,ɵɵi18nApply:()=>ɵɵi18nApply,ɵɵi18nAttributes:()=>ɵɵi18nAttributes,ɵɵi18nEnd:()=>ɵɵi18nEnd,ɵɵi18nExp:()=>ɵɵi18nExp,ɵɵi18nPostprocess:()=>ɵɵi18nPostprocess,ɵɵi18nStart:()=>ɵɵi18nStart,ɵɵinject:()=>ɵɵinject,ɵɵinjectAttribute:()=>ɵɵinjectAttribute,ɵɵinvalidFactory:()=>ɵɵinvalidFactory,ɵɵinvalidFactoryDep:()=>ɵɵinvalidFactoryDep,ɵɵlistener:()=>ɵɵlistener,ɵɵloadQuery:()=>ɵɵloadQuery,ɵɵnamespaceHTML:()=>ɵɵnamespaceHTML,ɵɵnamespaceMathML:()=>ɵɵnamespaceMathML,ɵɵnamespaceSVG:()=>ɵɵnamespaceSVG,ɵɵnextContext:()=>ɵɵnextContext,ɵɵngDeclareClassMetadata:()=>ɵɵngDeclareClassMetadata,ɵɵngDeclareComponent:()=>ɵɵngDeclareComponent,ɵɵngDeclareDirective:()=>ɵɵngDeclareDirective,ɵɵngDeclareFactory:()=>ɵɵngDeclareFactory,ɵɵngDeclareInjectable:()=>ɵɵngDeclareInjectable,ɵɵngDeclareInjector:()=>ɵɵngDeclareInjector,ɵɵngDeclareNgModule:()=>ɵɵngDeclareNgModule,ɵɵngDeclarePipe:()=>ɵɵngDeclarePipe,ɵɵpipe:()=>ɵɵpipe,ɵɵpipeBind1:()=>ɵɵpipeBind1,ɵɵpipeBind2:()=>ɵɵpipeBind2,ɵɵpipeBind3:()=>ɵɵpipeBind3,ɵɵpipeBind4:()=>ɵɵpipeBind4,ɵɵpipeBindV:()=>ɵɵpipeBindV,ɵɵprojection:()=>ɵɵprojection,ɵɵprojectionDef:()=>ɵɵprojectionDef,ɵɵproperty:()=>ɵɵproperty,ɵɵpropertyInterpolate:()=>ɵɵpropertyInterpolate,ɵɵpropertyInterpolate1:()=>ɵɵpropertyInterpolate1,ɵɵpropertyInterpolate2:()=>ɵɵpropertyInterpolate2,ɵɵpropertyInterpolate3:()=>ɵɵpropertyInterpolate3,ɵɵpropertyInterpolate4:()=>ɵɵpropertyInterpolate4,ɵɵpropertyInterpolate5:()=>ɵɵpropertyInterpolate5,ɵɵpropertyInterpolate6:()=>ɵɵpropertyInterpolate6,ɵɵpropertyInterpolate7:()=>ɵɵpropertyInterpolate7,ɵɵpropertyInterpolate8:()=>ɵɵpropertyInterpolate8,ɵɵpropertyInterpolateV:()=>ɵɵpropertyInterpolateV,ɵɵpureFunction0:()=>ɵɵpureFunction0,ɵɵpureFunction1:()=>ɵɵpureFunction1,ɵɵpureFunction2:()=>ɵɵpureFunction2,ɵɵpureFunction3:()=>ɵɵpureFunction3,ɵɵpureFunction4:()=>ɵɵpureFunction4,ɵɵpureFunction5:()=>ɵɵpureFunction5,ɵɵpureFunction6:()=>ɵɵpureFunction6,ɵɵpureFunction7:()=>ɵɵpureFunction7,ɵɵpureFunction8:()=>ɵɵpureFunction8,ɵɵpureFunctionV:()=>ɵɵpureFunctionV,ɵɵqueryAdvance:()=>ɵɵqueryAdvance,ɵɵqueryRefresh:()=>ɵɵqueryRefresh,ɵɵreference:()=>ɵɵreference,ɵɵregisterNgModuleType:()=>registerNgModuleType,ɵɵrepeater:()=>ɵɵrepeater,ɵɵrepeaterCreate:()=>ɵɵrepeaterCreate,ɵɵrepeaterTrackByIdentity:()=>ɵɵrepeaterTrackByIdentity,ɵɵrepeaterTrackByIndex:()=>ɵɵrepeaterTrackByIndex,ɵɵresetView:()=>ɵɵresetView,ɵɵresolveBody:()=>ɵɵresolveBody,ɵɵresolveDocument:()=>ɵɵresolveDocument,ɵɵresolveWindow:()=>ɵɵresolveWindow,ɵɵrestoreView:()=>ɵɵrestoreView,ɵɵsanitizeHtml:()=>ɵɵsanitizeHtml,ɵɵsanitizeResourceUrl:()=>ɵɵsanitizeResourceUrl,ɵɵsanitizeScript:()=>ɵɵsanitizeScript,ɵɵsanitizeStyle:()=>ɵɵsanitizeStyle,ɵɵsanitizeUrl:()=>ɵɵsanitizeUrl,ɵɵsanitizeUrlOrResourceUrl:()=>ɵɵsanitizeUrlOrResourceUrl,ɵɵsetComponentScope:()=>ɵɵsetComponentScope,ɵɵsetNgModuleScope:()=>ɵɵsetNgModuleScope,ɵɵstyleMap:()=>ɵɵstyleMap,ɵɵstyleMapInterpolate1:()=>ɵɵstyleMapInterpolate1,ɵɵstyleMapInterpolate2:()=>ɵɵstyleMapInterpolate2,ɵɵstyleMapInterpolate3:()=>ɵɵstyleMapInterpolate3,ɵɵstyleMapInterpolate4:()=>ɵɵstyleMapInterpolate4,ɵɵstyleMapInterpolate5:()=>ɵɵstyleMapInterpolate5,ɵɵstyleMapInterpolate6:()=>ɵɵstyleMapInterpolate6,ɵɵstyleMapInterpolate7:()=>ɵɵstyleMapInterpolate7,ɵɵstyleMapInterpolate8:()=>ɵɵstyleMapInterpolate8,ɵɵstyleMapInterpolateV:()=>ɵɵstyleMapInterpolateV,ɵɵstyleProp:()=>ɵɵstyleProp,ɵɵstylePropInterpolate1:()=>ɵɵstylePropInterpolate1,ɵɵstylePropInterpolate2:()=>ɵɵstylePropInterpolate2,ɵɵstylePropInterpolate3:()=>ɵɵstylePropInterpolate3,ɵɵstylePropInterpolate4:()=>ɵɵstylePropInterpolate4,ɵɵstylePropInterpolate5:()=>ɵɵstylePropInterpolate5,ɵɵstylePropInterpolate6:()=>ɵɵstylePropInterpolate6,ɵɵstylePropInterpolate7:()=>ɵɵstylePropInterpolate7,ɵɵstylePropInterpolate8:()=>ɵɵstylePropInterpolate8,ɵɵstylePropInterpolateV:()=>ɵɵstylePropInterpolateV,ɵɵsyntheticHostListener:()=>ɵɵsyntheticHostListener,ɵɵsyntheticHostProperty:()=>ɵɵsyntheticHostProperty,ɵɵtemplate:()=>ɵɵtemplate,ɵɵtemplateRefExtractor:()=>ɵɵtemplateRefExtractor,ɵɵtext:()=>ɵɵtext,ɵɵtextInterpolate:()=>ɵɵtextInterpolate,ɵɵtextInterpolate1:()=>ɵɵtextInterpolate1,ɵɵtextInterpolate2:()=>ɵɵtextInterpolate2,ɵɵtextInterpolate3:()=>ɵɵtextInterpolate3,ɵɵtextInterpolate4:()=>ɵɵtextInterpolate4,ɵɵtextInterpolate5:()=>ɵɵtextInterpolate5,ɵɵtextInterpolate6:()=>ɵɵtextInterpolate6,ɵɵtextInterpolate7:()=>ɵɵtextInterpolate7,ɵɵtextInterpolate8:()=>ɵɵtextInterpolate8,ɵɵtextInterpolateV:()=>ɵɵtextInterpolateV,ɵɵtrustConstantHtml:()=>ɵɵtrustConstantHtml,ɵɵtrustConstantResourceUrl:()=>ɵɵtrustConstantResourceUrl,ɵɵtwoWayBindingSet:()=>ɵɵtwoWayBindingSet,ɵɵtwoWayListener:()=>ɵɵtwoWayListener,ɵɵtwoWayProperty:()=>ɵɵtwoWayProperty,ɵɵvalidateIframeAttribute:()=>ɵɵvalidateIframeAttribute,ɵɵviewQuery:()=>ɵɵviewQuery,ɵɵviewQuerySignal:()=>ɵɵviewQuerySignal});var asyncToGenerator=__webpack_require__("./node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js");function defaultEquals(a,b){return Object.is(a,b)}let activeConsumer=null,inNotificationPhase=!1,epoch=1;const SIGNAL=Symbol("SIGNAL");function setActiveConsumer(consumer){const prev=activeConsumer;return activeConsumer=consumer,prev}function getActiveConsumer(){return activeConsumer}const REACTIVE_NODE={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function producerAccessed(node){if(inNotificationPhase)throw new Error("undefined"!=typeof ngDevMode&&ngDevMode?"Assertion error: signal read during notification phase":"");if(null===activeConsumer)return;activeConsumer.consumerOnSignalRead(node);const idx=activeConsumer.nextProducerIndex++;if(assertConsumerNode(activeConsumer),idxnode.nextProducerIndex;)node.producerNode.pop(),node.producerLastReadVersion.pop(),node.producerIndexOfThis.pop()}}function consumerPollProducersForChange(node){assertConsumerNode(node);for(let i=0;i=node.liveConsumerNode.length)throw new Error(`Assertion error: active consumer index ${idx} is out of bounds of ${node.liveConsumerNode.length} consumers)`);if(1===node.liveConsumerNode.length)for(let i=0;i0}function assertConsumerNode(node){node.producerNode??=[],node.producerIndexOfThis??=[],node.producerLastReadVersion??=[]}function assertProducerNode(node){node.liveConsumerNode??=[],node.liveConsumerIndexOfThis??=[]}function createComputed(computation){const node=Object.create(COMPUTED_NODE);node.computation=computation;const computed=()=>{if(producerUpdateValueVersion(node),producerAccessed(node),node.value===ERRORED)throw node.error;return node.value};return computed[SIGNAL]=node,computed}const UNSET=Symbol("UNSET"),COMPUTING=Symbol("COMPUTING"),ERRORED=Symbol("ERRORED"),COMPUTED_NODE=(()=>({...REACTIVE_NODE,value:UNSET,dirty:!0,error:null,equal:defaultEquals,producerMustRecompute:node=>node.value===UNSET||node.value===COMPUTING,producerRecomputeValue(node){if(node.value===COMPUTING)throw new Error("Detected cycle in computations.");const oldValue=node.value;node.value=COMPUTING;const prevConsumer=consumerBeforeComputation(node);let newValue;try{newValue=node.computation()}catch(err){newValue=ERRORED,node.error=err}finally{consumerAfterComputation(node,prevConsumer)}oldValue!==UNSET&&oldValue!==ERRORED&&newValue!==ERRORED&&node.equal(oldValue,newValue)?node.value=oldValue:(node.value=newValue,node.version++)}}))();let throwInvalidWriteToSignalErrorFn=function defaultThrowError(){throw new Error};function throwInvalidWriteToSignalError(){throwInvalidWriteToSignalErrorFn()}let postSignalSetFn=null;function signalSetFn(node,newValue){producerUpdatesAllowed()||throwInvalidWriteToSignalError(),node.equal(node.value,newValue)||(node.value=newValue,function signalValueChanged(node){node.version++,function producerIncrementEpoch(){epoch++}(),producerNotifyConsumers(node),postSignalSetFn?.()}(node))}const SIGNAL_NODE=(()=>({...REACTIVE_NODE,equal:defaultEquals,value:void 0}))();function createWatch(fn,schedule,allowSignalWrites){const node=Object.create(WATCH_NODE);allowSignalWrites&&(node.consumerAllowSignalWrites=!0),node.fn=fn,node.schedule=schedule;const registerOnCleanup=cleanupFn=>{node.cleanupFn=cleanupFn};return node.ref={notify:()=>consumerMarkDirty(node),run:()=>{if(null===node.fn)return;if(function isInNotificationPhase(){return inNotificationPhase}())throw new Error("Schedulers cannot synchronously execute watches while scheduling.");if(node.dirty=!1,node.hasRun&&!consumerPollProducersForChange(node))return;node.hasRun=!0;const prevConsumer=consumerBeforeComputation(node);try{node.cleanupFn(),node.cleanupFn=NOOP_CLEANUP_FN,node.fn(registerOnCleanup)}finally{consumerAfterComputation(node,prevConsumer)}},cleanup:()=>node.cleanupFn(),destroy:()=>function destroyWatchNode(node){(function isWatchNodeDestroyed(node){return null===node.fn&&null===node.schedule})(node)||(consumerDestroy(node),node.cleanupFn(),node.fn=null,node.schedule=null,node.cleanupFn=NOOP_CLEANUP_FN)}(node),[SIGNAL]:node},node.ref}const NOOP_CLEANUP_FN=()=>{},WATCH_NODE=(()=>({...REACTIVE_NODE,consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!1,consumerMarkedDirty:node=>{null!==node.schedule&&node.schedule(node.ref)},hasRun:!1,cleanupFn:NOOP_CLEANUP_FN}))();var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),internal_Observable=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Observable.js"),Subscription=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Subscription.js"),createErrorClass=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js"),ObjectUnsubscribedError=(0,createErrorClass.L)((function(_super){return function ObjectUnsubscribedErrorImpl(){_super(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}})),arrRemove=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/arrRemove.js"),errorContext=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/errorContext.js"),Subject=function(_super){function Subject(){var _this=_super.call(this)||this;return _this.closed=!1,_this.currentObservers=null,_this.observers=[],_this.isStopped=!1,_this.hasError=!1,_this.thrownError=null,_this}return(0,tslib_es6.C6)(Subject,_super),Subject.prototype.lift=function(operator){var subject=new AnonymousSubject(this,this);return subject.operator=operator,subject},Subject.prototype._throwIfClosed=function(){if(this.closed)throw new ObjectUnsubscribedError},Subject.prototype.next=function(value){var _this=this;(0,errorContext.Y)((function(){var e_1,_a;if(_this._throwIfClosed(),!_this.isStopped){_this.currentObservers||(_this.currentObservers=Array.from(_this.observers));try{for(var _b=(0,tslib_es6.Ju)(_this.currentObservers),_c=_b.next();!_c.done;_c=_b.next()){_c.value.next(value)}}catch(e_1_1){e_1={error:e_1_1}}finally{try{_c&&!_c.done&&(_a=_b.return)&&_a.call(_b)}finally{if(e_1)throw e_1.error}}}}))},Subject.prototype.error=function(err){var _this=this;(0,errorContext.Y)((function(){if(_this._throwIfClosed(),!_this.isStopped){_this.hasError=_this.isStopped=!0,_this.thrownError=err;for(var observers=_this.observers;observers.length;)observers.shift().error(err)}}))},Subject.prototype.complete=function(){var _this=this;(0,errorContext.Y)((function(){if(_this._throwIfClosed(),!_this.isStopped){_this.isStopped=!0;for(var observers=_this.observers;observers.length;)observers.shift().complete()}}))},Subject.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(Subject.prototype,"observed",{get:function(){var _a;return(null===(_a=this.observers)||void 0===_a?void 0:_a.length)>0},enumerable:!1,configurable:!0}),Subject.prototype._trySubscribe=function(subscriber){return this._throwIfClosed(),_super.prototype._trySubscribe.call(this,subscriber)},Subject.prototype._subscribe=function(subscriber){return this._throwIfClosed(),this._checkFinalizedStatuses(subscriber),this._innerSubscribe(subscriber)},Subject.prototype._innerSubscribe=function(subscriber){var _this=this,hasError=this.hasError,isStopped=this.isStopped,observers=this.observers;return hasError||isStopped?Subscription.Kn:(this.currentObservers=null,observers.push(subscriber),new Subscription.yU((function(){_this.currentObservers=null,(0,arrRemove.o)(observers,subscriber)})))},Subject.prototype._checkFinalizedStatuses=function(subscriber){var hasError=this.hasError,thrownError=this.thrownError,isStopped=this.isStopped;hasError?subscriber.error(thrownError):isStopped&&subscriber.complete()},Subject.prototype.asObservable=function(){var observable=new internal_Observable.c;return observable.source=this,observable},Subject.create=function(destination,source){return new AnonymousSubject(destination,source)},Subject}(internal_Observable.c),AnonymousSubject=function(_super){function AnonymousSubject(destination,source){var _this=_super.call(this)||this;return _this.destination=destination,_this.source=source,_this}return(0,tslib_es6.C6)(AnonymousSubject,_super),AnonymousSubject.prototype.next=function(value){var _a,_b;null===(_b=null===(_a=this.destination)||void 0===_a?void 0:_a.next)||void 0===_b||_b.call(_a,value)},AnonymousSubject.prototype.error=function(err){var _a,_b;null===(_b=null===(_a=this.destination)||void 0===_a?void 0:_a.error)||void 0===_b||_b.call(_a,err)},AnonymousSubject.prototype.complete=function(){var _a,_b;null===(_b=null===(_a=this.destination)||void 0===_a?void 0:_a.complete)||void 0===_b||_b.call(_a)},AnonymousSubject.prototype._subscribe=function(subscriber){var _a,_b;return null!==(_b=null===(_a=this.source)||void 0===_a?void 0:_a.subscribe(subscriber))&&void 0!==_b?_b:Subscription.Kn},AnonymousSubject}(Subject),BehaviorSubject=function(_super){function BehaviorSubject(_value){var _this=_super.call(this)||this;return _this._value=_value,_this}return(0,tslib_es6.C6)(BehaviorSubject,_super),Object.defineProperty(BehaviorSubject.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),BehaviorSubject.prototype._subscribe=function(subscriber){var subscription=_super.prototype._subscribe.call(this,subscriber);return!subscription.closed&&subscriber.next(this._value),subscription},BehaviorSubject.prototype.getValue=function(){var hasError=this.hasError,thrownError=this.thrownError,_value=this._value;if(hasError)throw thrownError;return this._throwIfClosed(),_value},BehaviorSubject.prototype.next=function(value){_super.prototype.next.call(this,this._value=value)},BehaviorSubject}(Subject),map=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),EmptyError=(0,createErrorClass.L)((function(_super){return function EmptyErrorImpl(){_super(this),this.name="EmptyError",this.message="no elements in sequence"}})),filter=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/filter.js"),EMPTY=new internal_Observable.c((function(subscriber){return subscriber.complete()}));var lift=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js"),OperatorSubscriber=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js");function defaultErrorFactory(){return new EmptyError}var identity=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/identity.js");function first(predicate,defaultValue){var hasDefaultValue=arguments.length>=2;return function(source){return source.pipe(predicate?(0,filter.p)((function(v,i){return predicate(v,i,source)})):identity.D,function take(count){return count<=0?function(){return EMPTY}:(0,lift.N)((function(source,subscriber){var seen=0;source.subscribe((0,OperatorSubscriber._)(subscriber,(function(value){++seen<=count&&(subscriber.next(value),count<=seen&&subscriber.complete())})))}))}(1),hasDefaultValue?function defaultIfEmpty(defaultValue){return(0,lift.N)((function(source,subscriber){var hasValue=!1;source.subscribe((0,OperatorSubscriber._)(subscriber,(function(value){hasValue=!0,subscriber.next(value)}),(function(){hasValue||subscriber.next(defaultValue),subscriber.complete()})))}))}(defaultValue):function throwIfEmpty(errorFactory){return void 0===errorFactory&&(errorFactory=defaultErrorFactory),(0,lift.N)((function(source,subscriber){var hasValue=!1;source.subscribe((0,OperatorSubscriber._)(subscriber,(function(value){hasValue=!0,subscriber.next(value)}),(function(){return hasValue?subscriber.complete():subscriber.error(errorFactory())})))}))}((function(){return new EmptyError})))}}const ERROR_DETAILS_PAGE_BASE_URL="https://angular.io/errors",XSS_SECURITY_URL="https://g.co/ng/security#xss";class RuntimeError extends Error{constructor(code,message){super(formatRuntimeError(code,message)),this.code=code}}function formatRuntimeError(code,message){const fullCode=`NG0${Math.abs(code)}`;let errorMessage=`${fullCode}${message?": "+message:""}`;if(ngDevMode&&code<0){const addPeriodSeparator=!errorMessage.match(/[.,;!?\n]$/);errorMessage=`${errorMessage}${addPeriodSeparator?".":""} Find more at ${ERROR_DETAILS_PAGE_BASE_URL}/${fullCode}`}return errorMessage}const REQUIRED_UNSET_VALUE=Symbol("InputSignalNode#UNSET"),INPUT_SIGNAL_NODE=(()=>({...SIGNAL_NODE,transformFn:void 0,applyValueToInputSignal(node,value){signalSetFn(node,value)}}))(),ɵINPUT_SIGNAL_BRAND_WRITE_TYPE=Symbol();function createInputSignal(initialValue,options){const node=Object.create(INPUT_SIGNAL_NODE);function inputValueFn(){if(producerAccessed(node),node.value===REQUIRED_UNSET_VALUE)throw new RuntimeError(-950,ngDevMode&&"Input is required but no value is available yet.");return node.value}return node.value=initialValue,node.transformFn=options?.transform,inputValueFn[SIGNAL]=node,ngDevMode&&(inputValueFn.toString=()=>`[Input Signal: ${inputValueFn()}]`),inputValueFn}function noSideEffects(fn){return{toString:fn}.toString()}const ANNOTATIONS="__annotations__",PARAMETERS="__parameters__",PROP_METADATA="__prop__metadata__";function makeDecorator(name,props,parentClass,additionalProcessing,typeFn){return noSideEffects((()=>{const metaCtor=makeMetadataCtor(props);function DecoratorFactory(...args){if(this instanceof DecoratorFactory)return metaCtor.call(this,...args),this;const annotationInstance=new DecoratorFactory(...args);return function TypeDecorator(cls){typeFn&&typeFn(cls,...args);return(cls.hasOwnProperty(ANNOTATIONS)?cls[ANNOTATIONS]:Object.defineProperty(cls,ANNOTATIONS,{value:[]})[ANNOTATIONS]).push(annotationInstance),additionalProcessing&&additionalProcessing(cls),cls}}return parentClass&&(DecoratorFactory.prototype=Object.create(parentClass.prototype)),DecoratorFactory.prototype.ngMetadataName=name,DecoratorFactory.annotationCls=DecoratorFactory,DecoratorFactory}))}function makeMetadataCtor(props){return function ctor(...args){if(props){const values=props(...args);for(const propName in values)this[propName]=values[propName]}}}function makeParamDecorator(name,props,parentClass){return noSideEffects((()=>{const metaCtor=makeMetadataCtor(props);function ParamDecoratorFactory(...args){if(this instanceof ParamDecoratorFactory)return metaCtor.apply(this,args),this;const annotationInstance=new ParamDecoratorFactory(...args);return ParamDecorator.annotation=annotationInstance,ParamDecorator;function ParamDecorator(cls,unusedKey,index){const parameters=cls.hasOwnProperty(PARAMETERS)?cls[PARAMETERS]:Object.defineProperty(cls,PARAMETERS,{value:[]})[PARAMETERS];for(;parameters.length<=index;)parameters.push(null);return(parameters[index]=parameters[index]||[]).push(annotationInstance),cls}}return parentClass&&(ParamDecoratorFactory.prototype=Object.create(parentClass.prototype)),ParamDecoratorFactory.prototype.ngMetadataName=name,ParamDecoratorFactory.annotationCls=ParamDecoratorFactory,ParamDecoratorFactory}))}function makePropDecorator(name,props,parentClass,additionalProcessing){return noSideEffects((()=>{const metaCtor=makeMetadataCtor(props);function PropDecoratorFactory(...args){if(this instanceof PropDecoratorFactory)return metaCtor.apply(this,args),this;const decoratorInstance=new PropDecoratorFactory(...args);return function PropDecorator(target,name){if(void 0===target)throw new Error("Standard Angular field decorators are not supported in JIT mode.");const constructor=target.constructor,meta=constructor.hasOwnProperty(PROP_METADATA)?constructor[PROP_METADATA]:Object.defineProperty(constructor,PROP_METADATA,{value:{}})[PROP_METADATA];meta[name]=meta.hasOwnProperty(name)&&meta[name]||[],meta[name].unshift(decoratorInstance),additionalProcessing&&additionalProcessing(target,name,...args)}}return parentClass&&(PropDecoratorFactory.prototype=Object.create(parentClass.prototype)),PropDecoratorFactory.prototype.ngMetadataName=name,PropDecoratorFactory.annotationCls=PropDecoratorFactory,PropDecoratorFactory}))}const _global=globalThis;function initNgDevMode(){return!("undefined"!=typeof ngDevMode&&!ngDevMode)&&("object"==typeof ngDevMode&&0!==Object.keys(ngDevMode).length||function ngDevModeResetPerfCounters(){const locationString="undefined"!=typeof location?location.toString():"",newCounters={namedConstructors:-1!=locationString.indexOf("ngDevMode=namedConstructors"),firstCreatePass:0,tNode:0,tView:0,rendererCreateTextNode:0,rendererSetText:0,rendererCreateElement:0,rendererAddEventListener:0,rendererSetAttribute:0,rendererRemoveAttribute:0,rendererSetProperty:0,rendererSetClassName:0,rendererAddClass:0,rendererRemoveClass:0,rendererSetStyle:0,rendererRemoveStyle:0,rendererDestroy:0,rendererDestroyNode:0,rendererMoveNode:0,rendererRemoveNode:0,rendererAppendChild:0,rendererInsertBefore:0,rendererCreateComment:0,hydratedNodes:0,hydratedComponents:0,dehydratedViewsRemoved:0,dehydratedViewsCleanupRuns:0,componentsSkippedHydration:0};return-1===locationString.indexOf("ngDevMode=false")?("object"!=typeof _global.ngDevMode&&(_global.ngDevMode={}),Object.assign(_global.ngDevMode,newCounters)):_global.ngDevMode=!1,newCounters}(),"undefined"!=typeof ngDevMode&&!!ngDevMode)}function getClosureSafeProperty(objWithPropertyToExtract){for(let key in objWithPropertyToExtract)if(objWithPropertyToExtract[key]===getClosureSafeProperty)return key;throw Error("Could not find renamed property on target object.")}function fillProperties(target,source){for(const key in source)source.hasOwnProperty(key)&&!target.hasOwnProperty(key)&&(target[key]=source[key])}function stringify(token){if("string"==typeof token)return token;if(Array.isArray(token))return"["+token.map(stringify).join(", ")+"]";if(null==token)return""+token;if(token.overriddenName)return`${token.overriddenName}`;if(token.name)return`${token.name}`;const res=token.toString();if(null==res)return""+res;const newLineIndex=res.indexOf("\n");return-1===newLineIndex?res:res.substring(0,newLineIndex)}function concatStringsWithSpace(before,after){return null==before||""===before?null===after?"":after:null==after||""===after?before:before+" "+after}function truncateMiddle(str,maxLength=100){if(!str||maxLength<1||str.length<=maxLength)return str;if(1==maxLength)return str.substring(0,1)+"...";const halfLimit=Math.round(maxLength/2);return str.substring(0,halfLimit)+"..."+str.substring(str.length-halfLimit)}const __forward_ref__=getClosureSafeProperty({__forward_ref__:getClosureSafeProperty});function forwardRef(forwardRefFn){return forwardRefFn.__forward_ref__=forwardRef,forwardRefFn.toString=function(){return stringify(this())},forwardRefFn}function resolveForwardRef(type){return isForwardRef(type)?type():type}function isForwardRef(fn){return"function"==typeof fn&&fn.hasOwnProperty(__forward_ref__)&&fn.__forward_ref__===forwardRef}function assertNumber(actual,msg){"number"!=typeof actual&&throwError(msg,typeof actual,"number","===")}function assertNumberInRange(actual,minInclusive,maxInclusive){assertNumber(actual,"Expected a number"),assertLessThanOrEqual(actual,maxInclusive,"Expected number to be less than or equal to"),assertGreaterThanOrEqual(actual,minInclusive,"Expected number to be greater than or equal to")}function assertString(actual,msg){"string"!=typeof actual&&throwError(msg,null===actual?"null":typeof actual,"string","===")}function assertFunction(actual,msg){"function"!=typeof actual&&throwError(msg,null===actual?"null":typeof actual,"function","===")}function assertEqual(actual,expected,msg){actual!=expected&&throwError(msg,actual,expected,"==")}function assertNotEqual(actual,expected,msg){actual==expected&&throwError(msg,actual,expected,"!=")}function assertSame(actual,expected,msg){actual!==expected&&throwError(msg,actual,expected,"===")}function assertNotSame(actual,expected,msg){actual===expected&&throwError(msg,actual,expected,"!==")}function assertLessThan(actual,expected,msg){actualexpected||throwError(msg,actual,expected,">")}function assertGreaterThanOrEqual(actual,expected,msg){actual>=expected||throwError(msg,actual,expected,">=")}function assertDefined(actual,msg){null==actual&&throwError(msg,actual,null,"!=")}function throwError(msg,actual,expected,comparison){throw new Error(`ASSERTION ERROR: ${msg}`+(null==comparison?"":` [Expected=> ${expected} ${comparison} ${actual} <=Actual]`))}function assertDomNode(node){node instanceof Node||throwError(`The provided value must be an instance of a DOM Node but got ${stringify(node)}`)}function assertIndexInRange(arr,index){assertDefined(arr,"Array must be defined.");const maxLen=arr.length;(index<0||index>=maxLen)&&throwError(`Index expected to be less than ${maxLen} but got ${index}`)}function assertOneOf(value,...validValues){if(-1!==validValues.indexOf(value))return!0;throwError(`Expected value to be one of ${JSON.stringify(validValues)} but was ${JSON.stringify(value)}.`)}function assertNotReactive(fn){null!==getActiveConsumer()&&throwError(`${fn}() should never be called in a reactive context.`)}function ɵɵdefineInjectable(opts){return{token:opts.token,providedIn:opts.providedIn||null,factory:opts.factory,value:void 0}}const defineInjectable=ɵɵdefineInjectable;function ɵɵdefineInjector(options){return{providers:options.providers||[],imports:options.imports||[]}}function getInjectableDef(type){return getOwnDefinition(type,NG_PROV_DEF)||getOwnDefinition(type,NG_INJECTABLE_DEF)}function isInjectable(type){return null!==getInjectableDef(type)}function getOwnDefinition(type,field){return type.hasOwnProperty(field)?type[field]:null}function getInjectorDef(type){return type&&(type.hasOwnProperty(NG_INJ_DEF)||type.hasOwnProperty(NG_INJECTOR_DEF))?type[NG_INJ_DEF]:null}const NG_PROV_DEF=getClosureSafeProperty({ɵprov:getClosureSafeProperty}),NG_INJ_DEF=getClosureSafeProperty({ɵinj:getClosureSafeProperty}),NG_INJECTABLE_DEF=getClosureSafeProperty({ngInjectableDef:getClosureSafeProperty}),NG_INJECTOR_DEF=getClosureSafeProperty({ngInjectorDef:getClosureSafeProperty});class InjectionToken{constructor(_desc,options){this._desc=_desc,this.ngMetadataName="InjectionToken",this.ɵprov=void 0,"number"==typeof options?(("undefined"==typeof ngDevMode||ngDevMode)&&assertLessThan(options,0,"Only negative numbers are supported here"),this.__NG_ELEMENT_ID__=options):void 0!==options&&(this.ɵprov=ɵɵdefineInjectable({token:this,providedIn:options.providedIn||"root",factory:options.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}let _injectorProfilerContext;function getInjectorProfilerContext(){return!ngDevMode&&throwError("getInjectorProfilerContext should never be called in production mode"),_injectorProfilerContext}function setInjectorProfilerContext(context){!ngDevMode&&throwError("setInjectorProfilerContext should never be called in production mode");const previous=_injectorProfilerContext;return _injectorProfilerContext=context,previous}let injectorProfilerCallback=null;const setInjectorProfiler=injectorProfiler=>{!ngDevMode&&throwError("setInjectorProfiler should never be called in production mode"),injectorProfilerCallback=injectorProfiler};function injectorProfiler(event){!ngDevMode&&throwError("Injector profiler should never be called in production mode"),null!=injectorProfilerCallback&&injectorProfilerCallback(event)}function emitProviderConfiguredEvent(eventProvider,isViewProvider=!1){let token;!ngDevMode&&throwError("Injector profiler should never be called in production mode"),token="function"==typeof eventProvider||eventProvider instanceof InjectionToken?eventProvider:resolveForwardRef(eventProvider.provide);let provider=eventProvider;eventProvider instanceof InjectionToken&&(provider=eventProvider.ɵprov||eventProvider),injectorProfiler({type:2,context:getInjectorProfilerContext(),providerRecord:{token,provider,isViewProvider}})}function emitInstanceCreatedByInjectorEvent(instance){!ngDevMode&&throwError("Injector profiler should never be called in production mode"),injectorProfiler({type:1,context:getInjectorProfilerContext(),instance:{value:instance}})}function emitInjectEvent(token,value,flags){!ngDevMode&&throwError("Injector profiler should never be called in production mode"),injectorProfiler({type:0,context:getInjectorProfilerContext(),service:{token,value,flags}})}function runInInjectorProfilerContext(injector,token,callback){!ngDevMode&&throwError("runInInjectorProfilerContext should never be called in production mode");const prevInjectContext=setInjectorProfilerContext({injector,token});try{callback()}finally{setInjectorProfilerContext(prevInjectContext)}}function isEnvironmentProviders(value){return value&&!!value.ɵproviders}const NG_COMP_DEF=getClosureSafeProperty({ɵcmp:getClosureSafeProperty}),NG_DIR_DEF=getClosureSafeProperty({ɵdir:getClosureSafeProperty}),NG_PIPE_DEF=getClosureSafeProperty({ɵpipe:getClosureSafeProperty}),NG_MOD_DEF=getClosureSafeProperty({ɵmod:getClosureSafeProperty}),NG_FACTORY_DEF=getClosureSafeProperty({ɵfac:getClosureSafeProperty}),NG_ELEMENT_ID=getClosureSafeProperty({__NG_ELEMENT_ID__:getClosureSafeProperty}),NG_ENV_ID=getClosureSafeProperty({__NG_ENV_ID__:getClosureSafeProperty});function renderStringify(value){return"string"==typeof value?value:null==value?"":String(value)}function stringifyForError(value){return"function"==typeof value?value.name||value.toString():"object"==typeof value&&null!=value&&"function"==typeof value.type?value.type.name||value.type.toString():renderStringify(value)}function throwCyclicDependencyError(token,path){const depPath=path?`. Dependency path: ${path.join(" > ")} > ${token}`:"";throw new RuntimeError(-200,ngDevMode?`Circular dependency in DI detected for ${token}${depPath}`:token)}function throwMixedMultiProviderError(){throw new Error("Cannot mix multi providers and regular providers")}function throwInvalidProviderError(ngModuleType,providers,provider){if(ngModuleType&&providers){const providerDetail=providers.map((v=>v==provider?"?"+provider+"?":"..."));throw new Error(`Invalid provider for the NgModule '${stringify(ngModuleType)}' - only instances of Provider and Type are allowed, got: [${providerDetail.join(", ")}]`)}throw isEnvironmentProviders(provider)?provider.ɵfromNgModule?new RuntimeError(207,"Invalid providers from 'importProvidersFrom' present in a non-environment injector. 'importProvidersFrom' can't be used for component providers."):new RuntimeError(207,"Invalid providers present in a non-environment injector. 'EnvironmentProviders' can't be used for component providers."):new Error("Invalid provider")}function throwProviderNotFoundError(token,injectorName){const errorMessage=ngDevMode&&`No provider for ${stringifyForError(token)} found${injectorName?` in ${injectorName}`:""}`;throw new RuntimeError(-201,errorMessage)}var InjectFlags;let _injectImplementation;function getInjectImplementation(){return _injectImplementation}function setInjectImplementation(impl){const previous=_injectImplementation;return _injectImplementation=impl,previous}function injectRootLimpMode(token,notFoundValue,flags){const injectableDef=getInjectableDef(token);return injectableDef&&"root"==injectableDef.providedIn?void 0===injectableDef.value?injectableDef.value=injectableDef.factory():injectableDef.value:flags&InjectFlags.Optional?null:void 0!==notFoundValue?notFoundValue:void throwProviderNotFoundError(token,"Injector")}!function(InjectFlags){InjectFlags[InjectFlags.Default=0]="Default",InjectFlags[InjectFlags.Host=1]="Host",InjectFlags[InjectFlags.Self=2]="Self",InjectFlags[InjectFlags.SkipSelf=4]="SkipSelf",InjectFlags[InjectFlags.Optional=8]="Optional"}(InjectFlags||(InjectFlags={}));const THROW_IF_NOT_FOUND={},DI_DECORATOR_FLAG="__NG_DI_FLAG__",NEW_LINE=/\n/gm;let _currentInjector;function setCurrentInjector(injector){const former=_currentInjector;return _currentInjector=injector,former}function injectInjectorOnly(token,flags=InjectFlags.Default){if(void 0===_currentInjector)throw new RuntimeError(-203,ngDevMode&&"inject() must be called from an injection context such as a constructor, a factory function, a field initializer, or a function used with `runInInjectionContext`.");if(null===_currentInjector)return injectRootLimpMode(token,void 0,flags);{const value=_currentInjector.get(token,flags&InjectFlags.Optional?null:void 0,flags);return ngDevMode&&emitInjectEvent(token,value,flags),value}}function ɵɵinject(token,flags=InjectFlags.Default){return(getInjectImplementation()||injectInjectorOnly)(resolveForwardRef(token),flags)}function ɵɵinvalidFactoryDep(index){throw new RuntimeError(202,ngDevMode&&`This constructor is not compatible with Angular Dependency Injection because its dependency at index ${index} of the parameter list is invalid.\nThis can happen if the dependency type is a primitive like a string or if an ancestor of this class is missing an Angular decorator.\n\nPlease check that 1) the type for the parameter at index ${index} is correct and 2) the correct Angular decorators are defined for this class and its ancestors.`)}function inject(token,flags=InjectFlags.Default){return ɵɵinject(token,convertToBitFlags(flags))}function convertToBitFlags(flags){return void 0===flags||"number"==typeof flags?flags:(flags.optional&&8)|(flags.host&&1)|(flags.self&&2)|(flags.skipSelf&&4)}function injectArgs(types){const args=[];for(let i=0;i ");else if("object"==typeof obj){let parts=[];for(let key in obj)if(obj.hasOwnProperty(key)){let value=obj[key];parts.push(key+":"+("string"==typeof value?JSON.stringify(value):stringify(value)))}context=`{${parts.join(", ")}}`}return`${injectorErrorName}${source?"("+source+")":""}[${context}]: ${text.replace(NEW_LINE,"\n ")}`}("\n"+e.message,tokenPath,injectorErrorName,source),e.ngTokenPath=tokenPath,e.ngTempTokenPath=null,e}const Inject=attachInjectFlag(makeParamDecorator("Inject",(token=>({token}))),-1),Optional=attachInjectFlag(makeParamDecorator("Optional"),8),Self=attachInjectFlag(makeParamDecorator("Self"),2),SkipSelf=attachInjectFlag(makeParamDecorator("SkipSelf"),4),Host=attachInjectFlag(makeParamDecorator("Host"),1);function getFactoryDef(type,throwNotFound){const hasFactoryDef=type.hasOwnProperty(NG_FACTORY_DEF);if(!hasFactoryDef&&!0===throwNotFound&&ngDevMode)throw new Error(`Type ${stringify(type)} does not have 'ɵfac' property.`);return hasFactoryDef?type[NG_FACTORY_DEF]:null}function flatten(list){return list.flat(Number.POSITIVE_INFINITY)}function deepForEach(input,fn){input.forEach((value=>Array.isArray(value)?deepForEach(value,fn):fn(value)))}function addToArray(arr,index,value){index>=arr.length?arr.push(value):arr.splice(index,0,value)}function removeFromArray(arr,index){return index>=arr.length-1?arr.pop():arr.splice(index,1)[0]}function newArray(size,value){const list=[];for(let i=0;iindex;){const previousEnd=end-2;array[end]=array[previousEnd],end--}array[index]=value1,array[index+1]=value2}}function keyValueArraySet(keyValueArray,key,value){let index=keyValueArrayIndexOf(keyValueArray,key);return index>=0?keyValueArray[1|index]=value:(index=~index,arrayInsert2(keyValueArray,index,key,value)),index}function keyValueArrayGet(keyValueArray,key){const index=keyValueArrayIndexOf(keyValueArray,key);if(index>=0)return keyValueArray[1|index]}function keyValueArrayIndexOf(keyValueArray,key){return _arrayIndexOfSorted(keyValueArray,key,1)}function _arrayIndexOfSorted(array,value,shift){ngDevMode&&assertEqual(Array.isArray(array),!0,"Expecting an array");let start=0,end=array.length>>shift;for(;end!==start;){const middle=start+(end-start>>1),current=array[middle<value?end=middle:start=middle+1}return~(end<marker){markerInsertPosition=i-1;break}}}for(;i-1){let item;for(;++inameOnlyMarkerIdx?nodeAttrValue="":(ngDevMode&&assertNotEqual(nodeAttrs[attrIndexInNode],0,"We do not match directives on namespaced attributes"),nodeAttrValue=nodeAttrs[attrIndexInNode+1].toLowerCase()),2&mode&&selectorAttrValue!==nodeAttrValue){if(isPositive(mode))return!1;skipToNextSelector=!0}}}}else{if(!skipToNextSelector&&!isPositive(mode)&&!isPositive(current))return!1;if(skipToNextSelector&&isPositive(current))continue;skipToNextSelector=!1,mode=current|1&mode}}return isPositive(mode)||skipToNextSelector}function isPositive(mode){return!(1&mode)}function findAttrIndexInNode(name,attrs,isInlineTemplate,isProjectionMode){if(null===attrs)return-1;let i=0;if(isProjectionMode||!isInlineTemplate){let bindingsMode=!1;for(;i-1)for(i++;i0?'="'+attrValue+'"':"")+"]"}else 8&mode?currentChunk+="."+valueOrMarker:4&mode&&(currentChunk+=" "+valueOrMarker);else""===currentChunk||isPositive(valueOrMarker)||(result+=maybeWrapInNotSelector(isNegativeMode,currentChunk),currentChunk=""),mode=valueOrMarker,isNegativeMode=isNegativeMode||!isPositive(mode);i++}return""!==currentChunk&&(result+=maybeWrapInNotSelector(isNegativeMode,currentChunk)),result}function stringifyCSSSelectorList(selectorList){return selectorList.map(stringifyCSSSelector).join(",")}function ɵɵdefineComponent(componentDefinition){return noSideEffects((()=>{("undefined"==typeof ngDevMode||ngDevMode)&&initNgDevMode();const baseDef=getNgDirectiveDef(componentDefinition),def={...baseDef,decls:componentDefinition.decls,vars:componentDefinition.vars,template:componentDefinition.template,consts:componentDefinition.consts||null,ngContentSelectors:componentDefinition.ngContentSelectors,onPush:componentDefinition.changeDetection===ChangeDetectionStrategy.OnPush,directiveDefs:null,pipeDefs:null,dependencies:baseDef.standalone&&componentDefinition.dependencies||null,getStandaloneInjector:null,signals:componentDefinition.signals??!1,data:componentDefinition.data||{},encapsulation:componentDefinition.encapsulation||ViewEncapsulation$1.Emulated,styles:componentDefinition.styles||EMPTY_ARRAY,_:null,schemas:componentDefinition.schemas||null,tView:null,id:""};initFeatures(def);const dependencies=componentDefinition.dependencies;return def.directiveDefs=extractDefListOrFactory(dependencies,!1),def.pipeDefs=extractDefListOrFactory(dependencies,!0),def.id=function getComponentId(componentDef){let hash=0;const hashSelectors=[componentDef.selectors,componentDef.ngContentSelectors,componentDef.hostVars,componentDef.hostAttrs,componentDef.consts,componentDef.vars,componentDef.decls,componentDef.encapsulation,componentDef.standalone,componentDef.signals,componentDef.exportAs,JSON.stringify(componentDef.inputs),JSON.stringify(componentDef.outputs),Object.getOwnPropertyNames(componentDef.type.prototype),!!componentDef.contentQueries,!!componentDef.viewQuery].join("|");for(const char of hashSelectors)hash=Math.imul(31,hash)+char.charCodeAt(0)|0;hash+=2147483648;const compId="c"+hash;if("undefined"==typeof ngDevMode||ngDevMode)if(GENERATED_COMP_IDS.has(compId)){const previousCompDefType=GENERATED_COMP_IDS.get(compId);previousCompDefType!==componentDef.type&&console.warn(formatRuntimeError(-912,`Component ID generation collision detected. Components '${previousCompDefType.name}' and '${componentDef.type.name}' with selector '${stringifyCSSSelectorList(componentDef.selectors)}' generated the same component ID. To fix this, you can change the selector of one of those components or add an extra host attribute to force a different ID.`))}else GENERATED_COMP_IDS.set(compId,componentDef.type);return compId}(def),def}))}function extractDirectiveDef(type){return getComponentDef(type)||getDirectiveDef(type)}function nonNull(value){return null!==value}function ɵɵdefineNgModule(def){return noSideEffects((()=>({type:def.type,bootstrap:def.bootstrap||EMPTY_ARRAY,declarations:def.declarations||EMPTY_ARRAY,imports:def.imports||EMPTY_ARRAY,exports:def.exports||EMPTY_ARRAY,transitiveCompileScopes:null,schemas:def.schemas||null,id:def.id||null})))}function parseAndConvertBindingsForDefinition(obj,declaredInputs){if(null==obj)return EMPTY_OBJ;const newLookup={};for(const minifiedKey in obj)if(obj.hasOwnProperty(minifiedKey)){const value=obj[minifiedKey];let publicName,declaredName,inputFlags=InputFlags.None;Array.isArray(value)?(inputFlags=value[0],publicName=value[1],declaredName=value[2]??publicName):(publicName=value,declaredName=value),declaredInputs?(newLookup[publicName]=inputFlags!==InputFlags.None?[minifiedKey,inputFlags]:minifiedKey,declaredInputs[publicName]=declaredName):newLookup[publicName]=minifiedKey}return newLookup}function ɵɵdefineDirective(directiveDefinition){return noSideEffects((()=>{const def=getNgDirectiveDef(directiveDefinition);return initFeatures(def),def}))}function ɵɵdefinePipe(pipeDef){return{type:pipeDef.type,name:pipeDef.name,factory:null,pure:!1!==pipeDef.pure,standalone:!0===pipeDef.standalone,onDestroy:pipeDef.type.prototype.ngOnDestroy||null}}function getComponentDef(type){return type[NG_COMP_DEF]||null}function getDirectiveDef(type){return type[NG_DIR_DEF]||null}function getPipeDef$1(type){return type[NG_PIPE_DEF]||null}function isStandalone(type){const def=getComponentDef(type)||getDirectiveDef(type)||getPipeDef$1(type);return null!==def&&def.standalone}function getNgModuleDef(type,throwNotFound){const ngModuleDef=type[NG_MOD_DEF]||null;if(!ngModuleDef&&!0===throwNotFound)throw new Error(`Type ${stringify(type)} does not have 'ɵmod' property.`);return ngModuleDef}function getNgDirectiveDef(directiveDefinition){const declaredInputs={};return{type:directiveDefinition.type,providersResolver:null,factory:null,hostBindings:directiveDefinition.hostBindings||null,hostVars:directiveDefinition.hostVars||0,hostAttrs:directiveDefinition.hostAttrs||null,contentQueries:directiveDefinition.contentQueries||null,declaredInputs,inputTransforms:null,inputConfig:directiveDefinition.inputs||EMPTY_OBJ,exportAs:directiveDefinition.exportAs||null,standalone:!0===directiveDefinition.standalone,signals:!0===directiveDefinition.signals,selectors:directiveDefinition.selectors||EMPTY_ARRAY,viewQuery:directiveDefinition.viewQuery||null,features:directiveDefinition.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:parseAndConvertBindingsForDefinition(directiveDefinition.inputs,declaredInputs),outputs:parseAndConvertBindingsForDefinition(directiveDefinition.outputs),debugInfo:null}}function initFeatures(definition){definition.features?.forEach((fn=>fn(definition)))}function extractDefListOrFactory(dependencies,pipeDef){if(!dependencies)return null;const defExtractor=pipeDef?getPipeDef$1:extractDirectiveDef;return()=>("function"==typeof dependencies?dependencies():dependencies).map((dep=>defExtractor(dep))).filter(nonNull)}const GENERATED_COMP_IDS=new Map;function makeEnvironmentProviders(providers){return{ɵproviders:providers}}function importProvidersFrom(...sources){return{ɵproviders:internalImportProvidersFrom(!0,sources),ɵfromNgModule:!0}}function internalImportProvidersFrom(checkForStandaloneCmp,...sources){const providersOut=[],dedup=new Set;let injectorTypesWithProviders;const collectProviders=provider=>{providersOut.push(provider)};return deepForEach(sources,(source=>{if(("undefined"==typeof ngDevMode||ngDevMode)&&checkForStandaloneCmp){const cmpDef=getComponentDef(source);if(cmpDef?.standalone)throw new RuntimeError(800,`Importing providers supports NgModule or ModuleWithProviders but got a standalone component "${stringifyForError(source)}"`)}const internalSource=source;walkProviderTree(internalSource,collectProviders,[],dedup)&&(injectorTypesWithProviders||=[],injectorTypesWithProviders.push(internalSource))})),void 0!==injectorTypesWithProviders&&processInjectorTypesWithProviders(injectorTypesWithProviders,collectProviders),providersOut}function processInjectorTypesWithProviders(typesWithProviders,visitor){for(let i=0;i{ngDevMode&&validateProvider(provider,providers||EMPTY_ARRAY,ngModule),visitor(provider,ngModule)}))}}function walkProviderTree(container,visitor,parents,dedup){if(!(container=resolveForwardRef(container)))return!1;let defType=null,injDef=getInjectorDef(container);const cmpDef=!injDef&&getComponentDef(container);if(injDef||cmpDef){if(cmpDef&&!cmpDef.standalone)return!1;defType=container}else{const ngModule=container.ngModule;if(injDef=getInjectorDef(ngModule),!injDef)return!1;defType=ngModule}if(ngDevMode&&-1!==parents.indexOf(defType)){throwCyclicDependencyError(stringify(defType),parents.map(stringify))}const isDuplicate=dedup.has(defType);if(cmpDef){if(isDuplicate)return!1;if(dedup.add(defType),cmpDef.dependencies){const deps="function"==typeof cmpDef.dependencies?cmpDef.dependencies():cmpDef.dependencies;for(const dep of deps)walkProviderTree(dep,visitor,parents,dedup)}}else{if(!injDef)return!1;{if(null!=injDef.imports&&!isDuplicate){let importTypesWithProviders;ngDevMode&&parents.push(defType),dedup.add(defType);try{deepForEach(injDef.imports,(imported=>{walkProviderTree(imported,visitor,parents,dedup)&&(importTypesWithProviders||=[],importTypesWithProviders.push(imported))}))}finally{ngDevMode&&parents.pop()}void 0!==importTypesWithProviders&&processInjectorTypesWithProviders(importTypesWithProviders,visitor)}if(!isDuplicate){const factory=getFactoryDef(defType)||(()=>new defType);visitor({provide:defType,useFactory:factory,deps:EMPTY_ARRAY},defType),visitor({provide:INJECTOR_DEF_TYPES,useValue:defType,multi:!0},defType),visitor({provide:ENVIRONMENT_INITIALIZER,useValue:()=>ɵɵinject(defType),multi:!0},defType)}const defProviders=injDef.providers;if(null!=defProviders&&!isDuplicate){const injectorType=container;deepForEachProvider(defProviders,(provider=>{ngDevMode&&validateProvider(provider,defProviders,injectorType),visitor(provider,injectorType)}))}}}return defType!==container&&void 0!==container.providers}function validateProvider(provider,providers,containerType){if(isTypeProvider(provider)||isValueProvider(provider)||isFactoryProvider(provider)||isExistingProvider(provider))return;resolveForwardRef(provider&&(provider.useClass||provider.provide))||throwInvalidProviderError(containerType,providers,provider)}function deepForEachProvider(providers,fn){for(let provider of providers)isEnvironmentProviders(provider)&&(provider=provider.ɵproviders),Array.isArray(provider)?deepForEachProvider(provider,fn):fn(provider)}const USE_VALUE$1=getClosureSafeProperty({provide:String,useValue:getClosureSafeProperty});function isValueProvider(value){return null!==value&&"object"==typeof value&&USE_VALUE$1 in value}function isExistingProvider(value){return!(!value||!value.useExisting)}function isFactoryProvider(value){return!(!value||!value.useFactory)}function isTypeProvider(value){return"function"==typeof value}const INJECTOR_SCOPE=new InjectionToken(ngDevMode?"Set Injector scope.":""),NOT_YET={},CIRCULAR={};let NULL_INJECTOR;function getNullInjector(){return void 0===NULL_INJECTOR&&(NULL_INJECTOR=new NullInjector),NULL_INJECTOR}class EnvironmentInjector{}class R3Injector extends EnvironmentInjector{get destroyed(){return this._destroyed}constructor(providers,parent,source,scopes){super(),this.parent=parent,this.source=source,this.scopes=scopes,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,forEachSingleProvider(providers,(provider=>this.processProvider(provider))),this.records.set(INJECTOR$1,makeRecord(void 0,this)),scopes.has("environment")&&this.records.set(EnvironmentInjector,makeRecord(void 0,this));const record=this.records.get(INJECTOR_SCOPE);null!=record&&"string"==typeof record.value&&this.scopes.add(record.value),this.injectorDefTypes=new Set(this.get(INJECTOR_DEF_TYPES,EMPTY_ARRAY,InjectFlags.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;const prevConsumer=setActiveConsumer(null);try{for(const service of this._ngOnDestroyHooks)service.ngOnDestroy();const onDestroyHooks=this._onDestroyHooks;this._onDestroyHooks=[];for(const hook of onDestroyHooks)hook()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),setActiveConsumer(prevConsumer)}}onDestroy(callback){return this.assertNotDestroyed(),this._onDestroyHooks.push(callback),()=>this.removeOnDestroy(callback)}runInContext(fn){this.assertNotDestroyed();const previousInjector=setCurrentInjector(this),previousInjectImplementation=setInjectImplementation(void 0);let prevInjectContext;ngDevMode&&(prevInjectContext=setInjectorProfilerContext({injector:this,token:null}));try{return fn()}finally{setCurrentInjector(previousInjector),setInjectImplementation(previousInjectImplementation),ngDevMode&&setInjectorProfilerContext(prevInjectContext)}}get(token,notFoundValue=THROW_IF_NOT_FOUND,flags=InjectFlags.Default){if(this.assertNotDestroyed(),token.hasOwnProperty(NG_ENV_ID))return token[NG_ENV_ID](this);let prevInjectContext;flags=convertToBitFlags(flags),ngDevMode&&(prevInjectContext=setInjectorProfilerContext({injector:this,token}));const previousInjector=setCurrentInjector(this),previousInjectImplementation=setInjectImplementation(void 0);try{if(!(flags&InjectFlags.SkipSelf)){let record=this.records.get(token);if(void 0===record){const def=function couldBeInjectableType(value){return"function"==typeof value||"object"==typeof value&&value instanceof InjectionToken}(token)&&getInjectableDef(token);def&&this.injectableDefInScope(def)?(ngDevMode&&runInInjectorProfilerContext(this,token,(()=>{emitProviderConfiguredEvent(token)})),record=makeRecord(injectableDefOrInjectorDefFactory(token),NOT_YET)):record=null,this.records.set(token,record)}if(null!=record)return this.hydrate(token,record)}const nextInjector=flags&InjectFlags.Self?getNullInjector():this.parent;return notFoundValue=flags&InjectFlags.Optional&¬FoundValue===THROW_IF_NOT_FOUND?null:notFoundValue,nextInjector.get(token,notFoundValue)}catch(e){if("NullInjectorError"===e.name){if((e.ngTempTokenPath=e.ngTempTokenPath||[]).unshift(stringify(token)),previousInjector)throw e;return catchInjectorError(e,token,"R3InjectorError",this.source)}throw e}finally{setInjectImplementation(previousInjectImplementation),setCurrentInjector(previousInjector),ngDevMode&&setInjectorProfilerContext(prevInjectContext)}}resolveInjectorInitializers(){const prevConsumer=setActiveConsumer(null),previousInjector=setCurrentInjector(this),previousInjectImplementation=setInjectImplementation(void 0);let prevInjectContext;ngDevMode&&(prevInjectContext=setInjectorProfilerContext({injector:this,token:null}));try{const initializers=this.get(ENVIRONMENT_INITIALIZER,EMPTY_ARRAY,InjectFlags.Self);if(ngDevMode&&!Array.isArray(initializers))throw new RuntimeError(-209,`Unexpected type of the \`ENVIRONMENT_INITIALIZER\` token value (expected an array, but got ${typeof initializers}). Please check that the \`ENVIRONMENT_INITIALIZER\` token is configured as a \`multi: true\` provider.`);for(const initializer of initializers)initializer()}finally{setCurrentInjector(previousInjector),setInjectImplementation(previousInjectImplementation),ngDevMode&&setInjectorProfilerContext(prevInjectContext),setActiveConsumer(prevConsumer)}}toString(){const tokens=[],records=this.records;for(const token of records.keys())tokens.push(stringify(token));return`R3Injector[${tokens.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new RuntimeError(205,ngDevMode&&"Injector has already been destroyed.")}processProvider(provider){let token=isTypeProvider(provider=resolveForwardRef(provider))?provider:resolveForwardRef(provider&&provider.provide);const record=function providerToRecord(provider){if(isValueProvider(provider))return makeRecord(void 0,provider.useValue);return makeRecord(providerToFactory(provider),NOT_YET)}(provider);if(ngDevMode&&runInInjectorProfilerContext(this,token,(()=>{isValueProvider(provider)&&emitInstanceCreatedByInjectorEvent(provider.useValue),emitProviderConfiguredEvent(provider)})),isTypeProvider(provider)||!0!==provider.multi){if(ngDevMode){const existing=this.records.get(token);existing&&void 0!==existing.multi&&throwMixedMultiProviderError()}}else{let multiRecord=this.records.get(token);multiRecord?ngDevMode&&void 0===multiRecord.multi&&throwMixedMultiProviderError():(multiRecord=makeRecord(void 0,NOT_YET,!0),multiRecord.factory=()=>injectArgs(multiRecord.multi),this.records.set(token,multiRecord)),token=provider,multiRecord.multi.push(provider)}this.records.set(token,record)}hydrate(token,record){const prevConsumer=setActiveConsumer(null);try{return ngDevMode&&record.value===CIRCULAR?throwCyclicDependencyError(stringify(token)):record.value===NOT_YET&&(record.value=CIRCULAR,ngDevMode?runInInjectorProfilerContext(this,token,(()=>{record.value=record.factory(),emitInstanceCreatedByInjectorEvent(record.value)})):record.value=record.factory()),"object"==typeof record.value&&record.value&&function hasOnDestroy(value){return null!==value&&"object"==typeof value&&"function"==typeof value.ngOnDestroy}(record.value)&&this._ngOnDestroyHooks.add(record.value),record.value}finally{setActiveConsumer(prevConsumer)}}injectableDefInScope(def){if(!def.providedIn)return!1;const providedIn=resolveForwardRef(def.providedIn);return"string"==typeof providedIn?"any"===providedIn||this.scopes.has(providedIn):this.injectorDefTypes.has(providedIn)}removeOnDestroy(callback){const destroyCBIdx=this._onDestroyHooks.indexOf(callback);-1!==destroyCBIdx&&this._onDestroyHooks.splice(destroyCBIdx,1)}}function injectableDefOrInjectorDefFactory(token){const injectableDef=getInjectableDef(token),factory=null!==injectableDef?injectableDef.factory:getFactoryDef(token);if(null!==factory)return factory;if(token instanceof InjectionToken)throw new RuntimeError(204,ngDevMode&&`Token ${stringify(token)} is missing a ɵprov definition.`);if(token instanceof Function)return function getUndecoratedInjectableFactory(token){const paramLength=token.length;if(paramLength>0)throw new RuntimeError(204,ngDevMode&&`Can't resolve all parameters for ${stringify(token)}: (${newArray(paramLength,"?").join(", ")}).`);const inheritedInjectableDef=function getInheritedInjectableDef(type){const def=type&&(type[NG_PROV_DEF]||type[NG_INJECTABLE_DEF]);return def?(ngDevMode&&console.warn(`DEPRECATED: DI is instantiating a token "${type.name}" that inherits its @Injectable decorator but does not provide one itself.\nThis will become an error in a future version of Angular. Please add @Injectable() to the "${type.name}" class.`),def):null}(token);return null!==inheritedInjectableDef?()=>inheritedInjectableDef.factory(token):()=>new token}(token);throw new RuntimeError(204,ngDevMode&&"unreachable")}function providerToFactory(provider,ngModuleType,providers){let factory;if(ngDevMode&&isEnvironmentProviders(provider)&&throwInvalidProviderError(void 0,providers,provider),isTypeProvider(provider)){const unwrappedProvider=resolveForwardRef(provider);return getFactoryDef(unwrappedProvider)||injectableDefOrInjectorDefFactory(unwrappedProvider)}if(isValueProvider(provider))factory=()=>resolveForwardRef(provider.useValue);else if(isFactoryProvider(provider))factory=()=>provider.useFactory(...injectArgs(provider.deps||[]));else if(isExistingProvider(provider))factory=()=>ɵɵinject(resolveForwardRef(provider.useExisting));else{const classRef=resolveForwardRef(provider&&(provider.useClass||provider.provide));if(ngDevMode&&!classRef&&throwInvalidProviderError(ngModuleType,providers,provider),!function hasDeps(value){return!!value.deps}(provider))return getFactoryDef(classRef)||injectableDefOrInjectorDefFactory(classRef);factory=()=>new classRef(...injectArgs(provider.deps))}return factory}function makeRecord(factory,value,multi=!1){return{factory,value,multi:multi?[]:void 0}}function forEachSingleProvider(providers,fn){for(const provider of providers)Array.isArray(provider)?forEachSingleProvider(provider,fn):provider&&isEnvironmentProviders(provider)?forEachSingleProvider(provider.ɵproviders,fn):fn(provider)}function runInInjectionContext(injector,fn){let prevInjectorProfilerContext;injector instanceof R3Injector&&injector.assertNotDestroyed(),ngDevMode&&(prevInjectorProfilerContext=setInjectorProfilerContext({injector,token:null}));const prevInjector=setCurrentInjector(injector),previousInjectImplementation=setInjectImplementation(void 0);try{return fn()}finally{setCurrentInjector(prevInjector),ngDevMode&&setInjectorProfilerContext(prevInjectorProfilerContext),setInjectImplementation(previousInjectImplementation)}}function isInInjectionContext(){return void 0!==getInjectImplementation()||null!=function getCurrentInjector(){return _currentInjector}()}function assertInInjectionContext(debugFn){if(!isInInjectionContext())throw new RuntimeError(-203,ngDevMode&&debugFn.name+"() can only be used within an injection context such as a constructor, a factory function, a field initializer, or a function used with `runInInjectionContext`")}var FactoryTarget,R3TemplateDependencyKind,ViewEncapsulation;function getCompilerFacade(request){const globalNg=_global.ng;if(globalNg&&globalNg.ɵcompilerFacade)return globalNg.ɵcompilerFacade;if("undefined"==typeof ngDevMode||ngDevMode){console.error(`JIT compilation failed for ${request.kind}`,request.type);let message=`The ${request.kind} '${request.type.name}' needs to be compiled using the JIT compiler, but '@angular/compiler' is not available.\n\n`;throw 1===request.usage?(message+=`The ${request.kind} is part of a library that has been partially compiled.\n`,message+="However, the Angular Linker has not processed the library such that JIT compilation is used as fallback.\n",message+="\n",message+="Ideally, the library is processed using the Angular Linker to become fully AOT compiled.\n"):message+="JIT compilation is discouraged for production use-cases! Consider using AOT mode instead.\n",message+="Alternatively, the JIT compiler should be loaded by bootstrapping using '@angular/platform-browser-dynamic' or '@angular/platform-server',\n",message+="or manually provide the compiler with 'import \"@angular/compiler\";' before bootstrapping.",new Error(message)}throw new Error("JIT compiler unavailable")}!function(FactoryTarget){FactoryTarget[FactoryTarget.Directive=0]="Directive",FactoryTarget[FactoryTarget.Component=1]="Component",FactoryTarget[FactoryTarget.Injectable=2]="Injectable",FactoryTarget[FactoryTarget.Pipe=3]="Pipe",FactoryTarget[FactoryTarget.NgModule=4]="NgModule"}(FactoryTarget||(FactoryTarget={})),function(R3TemplateDependencyKind){R3TemplateDependencyKind[R3TemplateDependencyKind.Directive=0]="Directive",R3TemplateDependencyKind[R3TemplateDependencyKind.Pipe=1]="Pipe",R3TemplateDependencyKind[R3TemplateDependencyKind.NgModule=2]="NgModule"}(R3TemplateDependencyKind||(R3TemplateDependencyKind={})),function(ViewEncapsulation){ViewEncapsulation[ViewEncapsulation.Emulated=0]="Emulated",ViewEncapsulation[ViewEncapsulation.None=2]="None",ViewEncapsulation[ViewEncapsulation.ShadowDom=3]="ShadowDom"}(ViewEncapsulation||(ViewEncapsulation={}));const angularCoreDiEnv={ɵɵdefineInjectable,ɵɵdefineInjector,ɵɵinject,ɵɵinvalidFactoryDep,resolveForwardRef},Type=Function;function isType(v){return"function"==typeof v}const ES5_DELEGATE_CTOR=/^function\s+\S+\(\)\s*{[\s\S]+\.apply\(this,\s*(arguments|(?:[^()]+\(\[\],)?[^()]+\(arguments\).*)\)/,ES2015_INHERITED_CLASS=/^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{/,ES2015_INHERITED_CLASS_WITH_CTOR=/^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{[\s\S]*constructor\s*\(/,ES2015_INHERITED_CLASS_WITH_DELEGATE_CTOR=/^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{[\s\S]*constructor\s*\(\)\s*{[^}]*super\(\.\.\.arguments\)/;class ReflectionCapabilities{constructor(reflect){this._reflect=reflect||_global.Reflect}factory(t){return(...args)=>new t(...args)}_zipTypesAndAnnotations(paramTypes,paramAnnotations){let result;result=newArray(void 0===paramTypes?paramAnnotations.length:paramTypes.length);for(let i=0;ictorParam&&ctorParam.type)),paramAnnotations=ctorParameters.map((ctorParam=>ctorParam&&convertTsickleDecoratorIntoMetadata(ctorParam.decorators)));return this._zipTypesAndAnnotations(paramTypes,paramAnnotations)}const paramAnnotations=type.hasOwnProperty(PARAMETERS)&&type[PARAMETERS],paramTypes=this._reflect&&this._reflect.getOwnMetadata&&this._reflect.getOwnMetadata("design:paramtypes",type);return paramTypes||paramAnnotations?this._zipTypesAndAnnotations(paramTypes,paramAnnotations):newArray(type.length)}parameters(type){if(!isType(type))return[];const parentCtor=getParentCtor(type);let parameters=this._ownParameters(type,parentCtor);return parameters||parentCtor===Object||(parameters=this.parameters(parentCtor)),parameters||[]}_ownAnnotations(typeOrFunc,parentCtor){if(typeOrFunc.annotations&&typeOrFunc.annotations!==parentCtor.annotations){let annotations=typeOrFunc.annotations;return"function"==typeof annotations&&annotations.annotations&&(annotations=annotations.annotations),annotations}return typeOrFunc.decorators&&typeOrFunc.decorators!==parentCtor.decorators?convertTsickleDecoratorIntoMetadata(typeOrFunc.decorators):typeOrFunc.hasOwnProperty(ANNOTATIONS)?typeOrFunc[ANNOTATIONS]:null}annotations(typeOrFunc){if(!isType(typeOrFunc))return[];const parentCtor=getParentCtor(typeOrFunc),ownAnnotations=this._ownAnnotations(typeOrFunc,parentCtor)||[];return(parentCtor!==Object?this.annotations(parentCtor):[]).concat(ownAnnotations)}_ownPropMetadata(typeOrFunc,parentCtor){if(typeOrFunc.propMetadata&&typeOrFunc.propMetadata!==parentCtor.propMetadata){let propMetadata=typeOrFunc.propMetadata;return"function"==typeof propMetadata&&propMetadata.propMetadata&&(propMetadata=propMetadata.propMetadata),propMetadata}if(typeOrFunc.propDecorators&&typeOrFunc.propDecorators!==parentCtor.propDecorators){const propDecorators=typeOrFunc.propDecorators,propMetadata={};return Object.keys(propDecorators).forEach((prop=>{propMetadata[prop]=convertTsickleDecoratorIntoMetadata(propDecorators[prop])})),propMetadata}return typeOrFunc.hasOwnProperty(PROP_METADATA)?typeOrFunc[PROP_METADATA]:null}propMetadata(typeOrFunc){if(!isType(typeOrFunc))return{};const parentCtor=getParentCtor(typeOrFunc),propMetadata={};if(parentCtor!==Object){const parentPropMetadata=this.propMetadata(parentCtor);Object.keys(parentPropMetadata).forEach((propName=>{propMetadata[propName]=parentPropMetadata[propName]}))}const ownPropMetadata=this._ownPropMetadata(typeOrFunc,parentCtor);return ownPropMetadata&&Object.keys(ownPropMetadata).forEach((propName=>{const decorators=[];propMetadata.hasOwnProperty(propName)&&decorators.push(...propMetadata[propName]),decorators.push(...ownPropMetadata[propName]),propMetadata[propName]=decorators})),propMetadata}ownPropMetadata(typeOrFunc){return isType(typeOrFunc)&&this._ownPropMetadata(typeOrFunc,getParentCtor(typeOrFunc))||{}}hasLifecycleHook(type,lcProperty){return type instanceof Type&&lcProperty in type.prototype}}function convertTsickleDecoratorIntoMetadata(decoratorInvocations){return decoratorInvocations?decoratorInvocations.map((decoratorInvocation=>new(0,decoratorInvocation.type.annotationCls)(...decoratorInvocation.args?decoratorInvocation.args:[]))):[]}function getParentCtor(ctor){const parentProto=ctor.prototype?Object.getPrototypeOf(ctor.prototype):null;return(parentProto?parentProto.constructor:null)||Object}const HOST=0,TVIEW=1,FLAGS=2,PARENT=3,NEXT=4,T_HOST=5,HYDRATION=6,CLEANUP=7,CONTEXT=8,INJECTOR=9,ENVIRONMENT=10,RENDERER=11,CHILD_HEAD=12,CHILD_TAIL=13,DECLARATION_VIEW=14,DECLARATION_COMPONENT_VIEW=15,DECLARATION_LCONTAINER=16,PREORDER_HOOK_FLAGS=17,QUERIES=18,ID=19,EMBEDDED_VIEW_INJECTOR=20,ON_DESTROY_HOOKS=21,EFFECTS_TO_SCHEDULE=22,REACTIVE_TEMPLATE_CONSUMER=23,HEADER_OFFSET=25,TYPE=1,DEHYDRATED_VIEWS=6,NATIVE=7,MOVED_VIEWS=9,CONTAINER_HEADER_OFFSET=10;var LContainerFlags;function isLView(value){return Array.isArray(value)&&"object"==typeof value[TYPE]}function isLContainer(value){return Array.isArray(value)&&!0===value[TYPE]}function isContentQueryHost(tNode){return!!(4&tNode.flags)}function isComponentHost(tNode){return tNode.componentOffset>-1}function isDirectiveHost(tNode){return!(1&~tNode.flags)}function isComponentDef(def){return!!def.template}function isRootView(target){return!!(512&target[FLAGS])}function isProjectionTNode(tNode){return!(16&~tNode.type)}function isDestroyed(lView){return!(256&~lView[FLAGS])}function assertTNodeForLView(tNode,lView){assertTNodeForTView(tNode,lView[TVIEW])}function assertTNodeForTView(tNode,tView){assertTNode(tNode);const tData=tView.data;for(let i=HEADER_OFFSET;i0;)ngDevMode&&assertDefined(currentView[DECLARATION_VIEW],"Declaration view should be defined if nesting level is greater than 0."),currentView=currentView[DECLARATION_VIEW],nestingLevel--;return currentView}function requiresRefreshOrTraversal(lView){return!!(9216&lView[FLAGS]||lView[REACTIVE_TEMPLATE_CONSUMER]?.dirty)}function updateAncestorTraversalFlagsOnAttach(lView){lView[ENVIRONMENT].changeDetectionScheduler?.notify(1),requiresRefreshOrTraversal(lView)?markAncestorsForTraversal(lView):64&lView[FLAGS]&&(getEnsureDirtyViewsAreAlwaysReachable()?(lView[FLAGS]|=1024,markAncestorsForTraversal(lView)):lView[ENVIRONMENT].changeDetectionScheduler?.notify())}function markAncestorsForTraversal(lView){lView[ENVIRONMENT].changeDetectionScheduler?.notify();let parent=getLViewParent(lView);for(;null!==parent&&!(8192&parent[FLAGS])&&(parent[FLAGS]|=8192,viewAttachedToChangeDetector(parent));)parent=getLViewParent(parent)}function storeLViewOnDestroy(lView,onDestroyCallback){if(!(256&~lView[FLAGS]))throw new RuntimeError(911,ngDevMode&&"View has already been destroyed.");null===lView[ON_DESTROY_HOOKS]&&(lView[ON_DESTROY_HOOKS]=[]),lView[ON_DESTROY_HOOKS].push(onDestroyCallback)}function removeLViewOnDestroy(lView,onDestroyCallback){if(null===lView[ON_DESTROY_HOOKS])return;const destroyCBIdx=lView[ON_DESTROY_HOOKS].indexOf(onDestroyCallback);-1!==destroyCBIdx&&lView[ON_DESTROY_HOOKS].splice(destroyCBIdx,1)}function getLViewParent(lView){ngDevMode&&assertLView(lView);const parent=lView[PARENT];return isLContainer(parent)?parent[PARENT]:parent}const instructionState={lFrame:createLFrame(null),bindingsEnabled:!0,skipHydrationRootTNode:null};let _isInCheckNoChangesMode=!1;function getBindingsEnabled(){return instructionState.bindingsEnabled}function isInSkipHydrationBlock$1(){return null!==instructionState.skipHydrationRootTNode}function ɵɵenableBindings(){instructionState.bindingsEnabled=!0}function ɵɵdisableBindings(){instructionState.bindingsEnabled=!1}function getLView(){return instructionState.lFrame.lView}function getTView(){return instructionState.lFrame.tView}function ɵɵrestoreView(viewToRestore){return instructionState.lFrame.contextLView=viewToRestore,viewToRestore[CONTEXT]}function ɵɵresetView(value){return instructionState.lFrame.contextLView=null,value}function getCurrentTNode(){let currentTNode=getCurrentTNodePlaceholderOk();for(;null!==currentTNode&&64===currentTNode.type;)currentTNode=currentTNode.parent;return currentTNode}function getCurrentTNodePlaceholderOk(){return instructionState.lFrame.currentTNode}function getCurrentParentTNode(){const lFrame=instructionState.lFrame,currentTNode=lFrame.currentTNode;return lFrame.isParent?currentTNode:currentTNode.parent}function setCurrentTNode(tNode,isParent){ngDevMode&&tNode&&assertTNodeForTView(tNode,instructionState.lFrame.tView);const lFrame=instructionState.lFrame;lFrame.currentTNode=tNode,lFrame.isParent=isParent}function isCurrentTNodeParent(){return instructionState.lFrame.isParent}function setCurrentTNodeAsNotParent(){instructionState.lFrame.isParent=!1}function isInCheckNoChangesMode(){return!ngDevMode&&throwError("Must never be called in production mode"),_isInCheckNoChangesMode}function setIsInCheckNoChangesMode(mode){!ngDevMode&&throwError("Must never be called in production mode"),_isInCheckNoChangesMode=mode}function getBindingRoot(){const lFrame=instructionState.lFrame;let index=lFrame.bindingRootIndex;return-1===index&&(index=lFrame.bindingRootIndex=lFrame.tView.bindingStartIndex),index}function getBindingIndex(){return instructionState.lFrame.bindingIndex}function setBindingIndex(value){return instructionState.lFrame.bindingIndex=value}function nextBindingIndex(){return instructionState.lFrame.bindingIndex++}function incrementBindingIndex(count){const lFrame=instructionState.lFrame,index=lFrame.bindingIndex;return lFrame.bindingIndex=lFrame.bindingIndex+count,index}function setInI18nBlock(isInI18nBlock){instructionState.lFrame.inI18n=isInI18nBlock}function setBindingRootForHostBindings(bindingRootIndex,currentDirectiveIndex){const lFrame=instructionState.lFrame;lFrame.bindingIndex=lFrame.bindingRootIndex=bindingRootIndex,setCurrentDirectiveIndex(currentDirectiveIndex)}function setCurrentDirectiveIndex(currentDirectiveIndex){instructionState.lFrame.currentDirectiveIndex=currentDirectiveIndex}function getCurrentDirectiveDef(tData){const currentDirectiveIndex=instructionState.lFrame.currentDirectiveIndex;return-1===currentDirectiveIndex?null:tData[currentDirectiveIndex]}function getCurrentQueryIndex(){return instructionState.lFrame.currentQueryIndex}function setCurrentQueryIndex(value){instructionState.lFrame.currentQueryIndex=value}function getDeclarationTNode(lView){const tView=lView[TVIEW];return 2===tView.type?(ngDevMode&&assertDefined(tView.declTNode,"Embedded TNodes should have declaration parents."),tView.declTNode):1===tView.type?lView[T_HOST]:null}function enterDI(lView,tNode,flags){if(ngDevMode&&assertLViewOrUndefined(lView),flags&InjectFlags.SkipSelf){ngDevMode&&assertTNodeForTView(tNode,lView[TVIEW]);let parentTNode=tNode,parentLView=lView;for(;!(ngDevMode&&assertDefined(parentTNode,"Parent TNode should be defined"),parentTNode=parentTNode.parent,null!==parentTNode||flags&InjectFlags.Host||(parentTNode=getDeclarationTNode(parentLView),null===parentTNode)||(ngDevMode&&assertDefined(parentLView,"Parent LView should be defined"),parentLView=parentLView[DECLARATION_VIEW],10&parentTNode.type)););if(null===parentTNode)return!1;tNode=parentTNode,lView=parentLView}ngDevMode&&assertTNodeForLView(tNode,lView);const lFrame=instructionState.lFrame=allocLFrame();return lFrame.currentTNode=tNode,lFrame.lView=lView,!0}function enterView(newView){ngDevMode&&assertNotEqual(newView[0],newView[1],"????"),ngDevMode&&assertLViewOrUndefined(newView);const newLFrame=allocLFrame();ngDevMode&&(assertEqual(newLFrame.isParent,!0,"Expected clean LFrame"),assertEqual(newLFrame.lView,null,"Expected clean LFrame"),assertEqual(newLFrame.tView,null,"Expected clean LFrame"),assertEqual(newLFrame.selectedIndex,-1,"Expected clean LFrame"),assertEqual(newLFrame.elementDepthCount,0,"Expected clean LFrame"),assertEqual(newLFrame.currentDirectiveIndex,-1,"Expected clean LFrame"),assertEqual(newLFrame.currentNamespace,null,"Expected clean LFrame"),assertEqual(newLFrame.bindingRootIndex,-1,"Expected clean LFrame"),assertEqual(newLFrame.currentQueryIndex,0,"Expected clean LFrame"));const tView=newView[TVIEW];instructionState.lFrame=newLFrame,ngDevMode&&tView.firstChild&&assertTNodeForTView(tView.firstChild,tView),newLFrame.currentTNode=tView.firstChild,newLFrame.lView=newView,newLFrame.tView=tView,newLFrame.contextLView=newView,newLFrame.bindingIndex=tView.bindingStartIndex,newLFrame.inI18n=!1}function allocLFrame(){const currentLFrame=instructionState.lFrame,childLFrame=null===currentLFrame?null:currentLFrame.child;return null===childLFrame?createLFrame(currentLFrame):childLFrame}function createLFrame(parent){const lFrame={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent,child:null,inI18n:!1};return null!==parent&&(parent.child=lFrame),lFrame}function leaveViewLight(){const oldLFrame=instructionState.lFrame;return instructionState.lFrame=oldLFrame.parent,oldLFrame.currentTNode=null,oldLFrame.lView=null,oldLFrame}const leaveDI=leaveViewLight;function leaveView(){const oldLFrame=leaveViewLight();oldLFrame.isParent=!0,oldLFrame.tView=null,oldLFrame.selectedIndex=-1,oldLFrame.contextLView=null,oldLFrame.elementDepthCount=0,oldLFrame.currentDirectiveIndex=-1,oldLFrame.currentNamespace=null,oldLFrame.bindingRootIndex=-1,oldLFrame.bindingIndex=-1,oldLFrame.currentQueryIndex=0}function getSelectedIndex(){return instructionState.lFrame.selectedIndex}function setSelectedIndex(index){ngDevMode&&-1!==index&&assertGreaterThanOrEqual(index,HEADER_OFFSET,"Index must be past HEADER_OFFSET (or -1)."),ngDevMode&&assertLessThan(index,instructionState.lFrame.lView.length,"Can't set index passed end of LView"),instructionState.lFrame.selectedIndex=index}function getSelectedTNode(){const lFrame=instructionState.lFrame;return getTNode(lFrame.tView,lFrame.selectedIndex)}function ɵɵnamespaceSVG(){instructionState.lFrame.currentNamespace=SVG_NAMESPACE}function ɵɵnamespaceMathML(){instructionState.lFrame.currentNamespace=MATH_ML_NAMESPACE}function ɵɵnamespaceHTML(){!function namespaceHTMLInternal(){instructionState.lFrame.currentNamespace=null}()}function getNamespace$1(){return instructionState.lFrame.currentNamespace}let _wasLastNodeCreated=!0;function wasLastNodeCreated(){return _wasLastNodeCreated}function lastNodeWasCreated(flag){_wasLastNodeCreated=flag}function registerPostOrderHooks(tView,tNode){ngDevMode&&assertFirstCreatePass(tView);for(let i=tNode.directiveStart,end=tNode.directiveEnd;i=currentNodeIndex)break}else{arr[i]<0&&(currentView[PREORDER_HOOK_FLAGS]+=65536),(lastNodeIndexFound>14>16&&(3¤tView[FLAGS])===initPhase&&(currentView[FLAGS]+=16384,callHookInternal(directive,hook))}else callHookInternal(directive,hook)}const NO_PARENT_INJECTOR=-1;class NodeInjectorFactory{constructor(factory,isViewProvider,injectImplementation){this.factory=factory,this.resolving=!1,ngDevMode&&assertDefined(factory,"Factory not specified"),ngDevMode&&assertEqual(typeof factory,"function","Expected factory function."),this.canSeeViewProviders=isViewProvider,this.injectImpl=injectImplementation}}function toTNodeTypeAsString(tNodeType){let text="";return 1&tNodeType&&(text+="|Text"),2&tNodeType&&(text+="|Element"),4&tNodeType&&(text+="|Container"),8&tNodeType&&(text+="|ElementContainer"),16&tNodeType&&(text+="|Projection"),32&tNodeType&&(text+="|IcuContainer"),64&tNodeType&&(text+="|Placeholder"),text.length>0?text.substring(1):text}function assertTNodeType(tNode,expectedTypes,message){assertDefined(tNode,"should be called with a TNode"),tNode.type&expectedTypes||throwError(message||`Expected [${toTNodeTypeAsString(expectedTypes)}] but got ${toTNodeTypeAsString(tNode.type)}.`)}function hasParentInjector(parentLocation){return parentLocation!==NO_PARENT_INJECTOR}function getParentInjectorIndex(parentLocation){if(ngDevMode){assertNumber(parentLocation,"Number expected"),assertNotEqual(parentLocation,-1,"Not a valid state.");assertGreaterThan(32767&parentLocation,HEADER_OFFSET,"Parent injector must be pointing past HEADER_OFFSET.")}return 32767&parentLocation}function getParentInjectorView(location,startView){let viewOffset=function getParentInjectorViewOffset(parentLocation){return parentLocation>>16}(location),parentView=startView;for(;viewOffset>0;)parentView=parentView[DECLARATION_VIEW],viewOffset--;return parentView}let includeViewProviders=!0;function setIncludeViewProviders(v){const oldValue=includeViewProviders;return includeViewProviders=v,oldValue}const BLOOM_MASK=255,BLOOM_BUCKET_BITS=5;let nextNgElementId=0;const NOT_FOUND={};function getOrCreateNodeInjectorForNode(tNode,lView){const existingInjectorIndex=getInjectorIndex(tNode,lView);if(-1!==existingInjectorIndex)return existingInjectorIndex;const tView=lView[TVIEW];tView.firstCreatePass&&(tNode.injectorIndex=lView.length,insertBloom(tView.data,tNode),insertBloom(lView,null),insertBloom(tView.blueprint,null));const parentLoc=getParentInjectorLocation(tNode,lView),injectorIndex=tNode.injectorIndex;if(hasParentInjector(parentLoc)){const parentIndex=getParentInjectorIndex(parentLoc),parentLView=getParentInjectorView(parentLoc,lView),parentData=parentLView[TVIEW].data;for(let i=0;i<8;i++)lView[injectorIndex+i]=parentLView[parentIndex+i]|parentData[parentIndex+i]}return lView[injectorIndex+8]=parentLoc,injectorIndex}function insertBloom(arr,footer){arr.push(0,0,0,0,0,0,0,0,footer)}function getInjectorIndex(tNode,lView){return-1===tNode.injectorIndex||tNode.parent&&tNode.parent.injectorIndex===tNode.injectorIndex||null===lView[tNode.injectorIndex+8]?-1:(ngDevMode&&assertIndexInRange(lView,tNode.injectorIndex),tNode.injectorIndex)}function getParentInjectorLocation(tNode,lView){if(tNode.parent&&-1!==tNode.parent.injectorIndex)return tNode.parent.injectorIndex;let declarationViewOffset=0,parentTNode=null,lViewCursor=lView;for(;null!==lViewCursor;){if(parentTNode=getTNodeFromLView(lViewCursor),null===parentTNode)return NO_PARENT_INJECTOR;if(ngDevMode&&parentTNode&&assertTNodeForLView(parentTNode,lViewCursor[DECLARATION_VIEW]),declarationViewOffset++,lViewCursor=lViewCursor[DECLARATION_VIEW],-1!==parentTNode.injectorIndex)return parentTNode.injectorIndex|declarationViewOffset<<16}return NO_PARENT_INJECTOR}function diPublicInInjector(injectorIndex,tView,token){!function bloomAdd(injectorIndex,tView,type){let id;ngDevMode&&assertEqual(tView.firstCreatePass,!0,"expected firstCreatePass to be true"),"string"==typeof type?id=type.charCodeAt(0)||0:type.hasOwnProperty(NG_ELEMENT_ID)&&(id=type[NG_ELEMENT_ID]),null==id&&(id=type[NG_ELEMENT_ID]=nextNgElementId++);const bloomHash=id&BLOOM_MASK,mask=1<>BLOOM_BUCKET_BITS)]|=mask}(injectorIndex,tView,token)}function notFoundValueOrThrow(notFoundValue,token,flags){if(flags&InjectFlags.Optional||void 0!==notFoundValue)return notFoundValue;throwProviderNotFoundError(token,"NodeInjector")}function lookupTokenUsingModuleInjector(lView,token,flags,notFoundValue){if(flags&InjectFlags.Optional&&void 0===notFoundValue&&(notFoundValue=null),!(flags&(InjectFlags.Self|InjectFlags.Host))){const moduleInjector=lView[INJECTOR],previousInjectImplementation=setInjectImplementation(void 0);try{return moduleInjector?moduleInjector.get(token,notFoundValue,flags&InjectFlags.Optional):injectRootLimpMode(token,notFoundValue,flags&InjectFlags.Optional)}finally{setInjectImplementation(previousInjectImplementation)}}return notFoundValueOrThrow(notFoundValue,token,flags)}function getOrCreateInjectable(tNode,lView,token,flags=InjectFlags.Default,notFoundValue){if(null!==tNode){if(2048&lView[FLAGS]&&!(flags&InjectFlags.Self)){const embeddedInjectorValue=function lookupTokenUsingEmbeddedInjector(tNode,lView,token,flags,notFoundValue){let currentTNode=tNode,currentLView=lView;for(;null!==currentTNode&&null!==currentLView&&2048¤tLView[FLAGS]&&!(512¤tLView[FLAGS]);){ngDevMode&&assertTNodeForLView(currentTNode,currentLView);const nodeInjectorValue=lookupTokenUsingNodeInjector(currentTNode,currentLView,token,flags|InjectFlags.Self,NOT_FOUND);if(nodeInjectorValue!==NOT_FOUND)return nodeInjectorValue;let parentTNode=currentTNode.parent;if(!parentTNode){const embeddedViewInjector=currentLView[EMBEDDED_VIEW_INJECTOR];if(embeddedViewInjector){const embeddedViewInjectorValue=embeddedViewInjector.get(token,NOT_FOUND,flags);if(embeddedViewInjectorValue!==NOT_FOUND)return embeddedViewInjectorValue}parentTNode=getTNodeFromLView(currentLView),currentLView=currentLView[DECLARATION_VIEW]}currentTNode=parentTNode}return notFoundValue}(tNode,lView,token,flags,NOT_FOUND);if(embeddedInjectorValue!==NOT_FOUND)return embeddedInjectorValue}const value=lookupTokenUsingNodeInjector(tNode,lView,token,flags,NOT_FOUND);if(value!==NOT_FOUND)return value}return lookupTokenUsingModuleInjector(lView,token,flags,notFoundValue)}function lookupTokenUsingNodeInjector(tNode,lView,token,flags,notFoundValue){const bloomHash=function bloomHashBitOrFactory(token){if(ngDevMode&&assertDefined(token,"token must be defined"),"string"==typeof token)return token.charCodeAt(0)||0;const tokenId=token.hasOwnProperty(NG_ELEMENT_ID)?token[NG_ELEMENT_ID]:void 0;return"number"==typeof tokenId?tokenId>=0?tokenId&BLOOM_MASK:(ngDevMode&&assertEqual(tokenId,-1,"Expecting to get Special Injector Id"),createNodeInjector):tokenId}(token);if("function"==typeof bloomHash){if(!enterDI(lView,tNode,flags))return flags&InjectFlags.Host?notFoundValueOrThrow(notFoundValue,token,flags):lookupTokenUsingModuleInjector(lView,token,flags,notFoundValue);try{let value;if(ngDevMode?runInInjectorProfilerContext(new NodeInjector(getCurrentTNode(),getLView()),token,(()=>{value=bloomHash(flags),null!=value&&emitInstanceCreatedByInjectorEvent(value)})):value=bloomHash(flags),null!=value||flags&InjectFlags.Optional)return value;throwProviderNotFoundError(token)}finally{leaveDI()}}else if("number"==typeof bloomHash){let previousTView=null,injectorIndex=getInjectorIndex(tNode,lView),parentLocation=NO_PARENT_INJECTOR,hostTElementNode=flags&InjectFlags.Host?lView[DECLARATION_COMPONENT_VIEW][T_HOST]:null;for((-1===injectorIndex||flags&InjectFlags.SkipSelf)&&(parentLocation=-1===injectorIndex?getParentInjectorLocation(tNode,lView):lView[injectorIndex+8],parentLocation!==NO_PARENT_INJECTOR&&shouldSearchParent(flags,!1)?(previousTView=lView[TVIEW],injectorIndex=getParentInjectorIndex(parentLocation),lView=getParentInjectorView(parentLocation,lView)):injectorIndex=-1);-1!==injectorIndex;){ngDevMode&&assertNodeInjector(lView,injectorIndex);const tView=lView[TVIEW];if(ngDevMode&&assertTNodeForLView(tView.data[injectorIndex+8],lView),bloomHasToken(bloomHash,injectorIndex,tView.data)){const instance=searchTokensOnInjector(injectorIndex,lView,token,previousTView,flags,hostTElementNode);if(instance!==NOT_FOUND)return instance}parentLocation=lView[injectorIndex+8],parentLocation!==NO_PARENT_INJECTOR&&shouldSearchParent(flags,lView[TVIEW].data[injectorIndex+8]===hostTElementNode)&&bloomHasToken(bloomHash,injectorIndex,lView)?(previousTView=tView,injectorIndex=getParentInjectorIndex(parentLocation),lView=getParentInjectorView(parentLocation,lView)):injectorIndex=-1}}return notFoundValue}function searchTokensOnInjector(injectorIndex,lView,token,previousTView,flags,hostTElementNode){const currentTView=lView[TVIEW],tNode=currentTView.data[injectorIndex+8],injectableIdx=locateDirectiveOrProvider(tNode,currentTView,token,null==previousTView?isComponentHost(tNode)&&includeViewProviders:previousTView!=currentTView&&!!(3&tNode.type),flags&InjectFlags.Host&&hostTElementNode===tNode);return null!==injectableIdx?getNodeInjectable(lView,currentTView,injectableIdx,tNode):NOT_FOUND}function locateDirectiveOrProvider(tNode,tView,token,canAccessViewProviders,isHostSpecialCase){const nodeProviderIndexes=tNode.providerIndexes,tInjectables=tView.data,injectablesStart=1048575&nodeProviderIndexes,directivesStart=tNode.directiveStart,directiveEnd=tNode.directiveEnd,cptViewProvidersCount=nodeProviderIndexes>>20,endIndex=isHostSpecialCase?injectablesStart+cptViewProvidersCount:directiveEnd;for(let i=canAccessViewProviders?injectablesStart:injectablesStart+cptViewProvidersCount;i=directivesStart&&providerTokenOrDef.type===token)return i}if(isHostSpecialCase){const dirDef=tInjectables[directivesStart];if(dirDef&&isComponentDef(dirDef)&&dirDef.type===token)return directivesStart}return null}function getNodeInjectable(lView,tView,index,tNode){let value=lView[index];const tData=tView.data;if(function isFactory(obj){return obj instanceof NodeInjectorFactory}(value)){const factory=value;factory.resolving&&throwCyclicDependencyError(stringifyForError(tData[index]));const previousIncludeViewProviders=setIncludeViewProviders(factory.canSeeViewProviders);let prevInjectContext;if(factory.resolving=!0,ngDevMode){const token=tData[index].type||tData[index];prevInjectContext=setInjectorProfilerContext({injector:new NodeInjector(tNode,lView),token})}const previousInjectImplementation=factory.injectImpl?setInjectImplementation(factory.injectImpl):null,success=enterDI(lView,tNode,InjectFlags.Default);ngDevMode&&assertEqual(success,!0,"Because flags do not contain `SkipSelf' we expect this to always succeed.");try{value=lView[index]=factory.factory(void 0,tData,lView,tNode),ngDevMode&&emitInstanceCreatedByInjectorEvent(value),tView.firstCreatePass&&index>=tNode.directiveStart&&(ngDevMode&&function assertDirectiveDef(obj){void 0!==obj.type&&null!=obj.selectors&&void 0!==obj.inputs||throwError("Expected a DirectiveDef/ComponentDef and this object does not seem to have the expected shape.")}(tData[index]),function registerPreOrderHooks(directiveIndex,directiveDef,tView){ngDevMode&&assertFirstCreatePass(tView);const{ngOnChanges,ngOnInit,ngDoCheck}=directiveDef.type.prototype;if(ngOnChanges){const wrappedOnChanges=NgOnChangesFeatureImpl(directiveDef);(tView.preOrderHooks??=[]).push(directiveIndex,wrappedOnChanges),(tView.preOrderCheckHooks??=[]).push(directiveIndex,wrappedOnChanges)}ngOnInit&&(tView.preOrderHooks??=[]).push(0-directiveIndex,ngOnInit),ngDoCheck&&((tView.preOrderHooks??=[]).push(directiveIndex,ngDoCheck),(tView.preOrderCheckHooks??=[]).push(directiveIndex,ngDoCheck))}(index,tData[index],tView))}finally{ngDevMode&&setInjectorProfilerContext(prevInjectContext),null!==previousInjectImplementation&&setInjectImplementation(previousInjectImplementation),setIncludeViewProviders(previousIncludeViewProviders),factory.resolving=!1,leaveDI()}}return value}function bloomHasToken(bloomHash,injectorIndex,injectorView){const mask=1<>BLOOM_BUCKET_BITS)]&mask)}function shouldSearchParent(flags,isFirstHostTNode){return!(flags&InjectFlags.Self||flags&InjectFlags.Host&&isFirstHostTNode)}function getNodeInjectorLView(nodeInjector){return nodeInjector._lView}function getNodeInjectorTNode(nodeInjector){return nodeInjector._tNode}class NodeInjector{constructor(_tNode,_lView){this._tNode=_tNode,this._lView=_lView}get(token,notFoundValue,flags){return getOrCreateInjectable(this._tNode,this._lView,token,convertToBitFlags(flags),notFoundValue)}}function createNodeInjector(){return new NodeInjector(getCurrentTNode(),getLView())}function ɵɵgetInheritedFactory(type){return noSideEffects((()=>{const ownConstructor=type.prototype.constructor,ownFactory=ownConstructor[NG_FACTORY_DEF]||getFactoryOf(ownConstructor),objectPrototype=Object.prototype;let parent=Object.getPrototypeOf(type.prototype).constructor;for(;parent&&parent!==objectPrototype;){const factory=parent[NG_FACTORY_DEF]||getFactoryOf(parent);if(factory&&factory!==ownFactory)return factory;parent=Object.getPrototypeOf(parent)}return t=>new t}))}function getFactoryOf(type){return isForwardRef(type)?()=>{const factory=getFactoryOf(resolveForwardRef(type));return factory&&factory()}:getFactoryDef(type)}function getTNodeFromLView(lView){const tView=lView[TVIEW],tViewType=tView.type;return 2===tViewType?(ngDevMode&&assertDefined(tView.declTNode,"Embedded TNodes should have declaration parents."),tView.declTNode):1===tViewType?lView[T_HOST]:null}function ɵɵinjectAttribute(attrNameToInject){return function injectAttributeImpl(tNode,attrNameToInject){if(ngDevMode&&assertTNodeType(tNode,15),ngDevMode&&assertDefined(tNode,"expecting tNode"),"class"===attrNameToInject)return tNode.classes;if("style"===attrNameToInject)return tNode.styles;const attrs=tNode.attrs;if(attrs){const attrsLength=attrs.length;let i=0;for(;i({attributeName,__NG_ELEMENT_ID__:()=>ɵɵinjectAttribute(attributeName)})));let _reflect=null;function getReflect(){return _reflect=_reflect||new ReflectionCapabilities}function reflectDependencies(type){return convertDependencies(getReflect().parameters(type))}function convertDependencies(deps){return deps.map((dep=>function reflectDependency(dep){const meta={token:null,attribute:null,host:!1,optional:!1,self:!1,skipSelf:!1};if(Array.isArray(dep)&&dep.length>0)for(let j=0;j{if(null===ngInjectableDef){const compiler=getCompilerFacade({usage:0,kind:"injectable",type});ngInjectableDef=compiler.compileInjectable(angularCoreDiEnv,`ng:///${type.name}/ɵprov.js`,function getInjectableMetadata(type,srcMeta){const meta=srcMeta||{providedIn:null},compilerMeta={name:type.name,type,typeArgumentCount:0,providedIn:meta.providedIn};(isUseClassProvider(meta)||isUseFactoryProvider(meta))&&void 0!==meta.deps&&(compilerMeta.deps=convertDependencies(meta.deps));isUseClassProvider(meta)?compilerMeta.useClass=meta.useClass:!function isUseValueProvider(meta){return USE_VALUE in meta}(meta)?isUseFactoryProvider(meta)?compilerMeta.useFactory=meta.useFactory:function isUseExistingProvider(meta){return void 0!==meta.useExisting}(meta)&&(compilerMeta.useExisting=meta.useExisting):compilerMeta.useValue=meta.useValue;return compilerMeta}(type,meta))}return ngInjectableDef}}),type.hasOwnProperty(NG_FACTORY_DEF)||Object.defineProperty(type,NG_FACTORY_DEF,{get:()=>{if(null===ngFactoryDef){const compiler=getCompilerFacade({usage:0,kind:"injectable",type});ngFactoryDef=compiler.compileFactory(angularCoreDiEnv,`ng:///${type.name}/ɵfac.js`,{name:type.name,type,typeArgumentCount:0,deps:reflectDependencies(type),target:compiler.FactoryTarget.Injectable})}return ngFactoryDef},configurable:!0})}const USE_VALUE=getClosureSafeProperty({provide:String,useValue:getClosureSafeProperty});function isUseClassProvider(meta){return void 0!==meta.useClass}function isUseFactoryProvider(meta){return void 0!==meta.useFactory}const Injectable=makeDecorator("Injectable",void 0,void 0,void 0,((type,meta)=>compileInjectable(type,meta)));function createInjector(defType,parent=null,additionalProviders=null,name){const injector=createInjectorWithoutInjectorInstances(defType,parent,additionalProviders,name);return injector.resolveInjectorInitializers(),injector}function createInjectorWithoutInjectorInstances(defType,parent=null,additionalProviders=null,name,scopes=new Set){const providers=[additionalProviders||EMPTY_ARRAY,importProvidersFrom(defType)];return name=name||("object"==typeof defType?void 0:stringify(defType)),new R3Injector(providers,parent||getNullInjector(),name||null,scopes)}class Injector{static{this.THROW_IF_NOT_FOUND=THROW_IF_NOT_FOUND}static{this.NULL=new NullInjector}static create(options,parent){if(Array.isArray(options))return createInjector({name:""},parent,options,"");{const name=options.name??"";return createInjector({name},options.parent,options.providers,name)}}static{this.ɵprov=ɵɵdefineInjectable({token:Injector,providedIn:"any",factory:()=>ɵɵinject(INJECTOR$1)})}static{this.__NG_ELEMENT_ID__=-1}}class HostAttributeToken{constructor(attributeName){this.attributeName=attributeName,this.__NG_ELEMENT_ID__=()=>ɵɵinjectAttribute(this.attributeName)}toString(){return`HostAttributeToken ${this.attributeName}`}}function getOriginalError(error){return error.ngOriginalError}class ErrorHandler{constructor(){this._console=console}handleError(error){const originalError=this._findOriginalError(error);this._console.error("ERROR",error),originalError&&this._console.error("ORIGINAL ERROR",originalError)}_findOriginalError(error){let e=error&&getOriginalError(error);for(;e&&getOriginalError(e);)e=getOriginalError(e);return e||null}}const INTERNAL_APPLICATION_ERROR_HANDLER=new InjectionToken("undefined"==typeof ngDevMode||ngDevMode?"internal error handler":"",{providedIn:"root",factory:()=>inject(ErrorHandler).handleError.bind(void 0)});class DestroyRef{static{this.__NG_ELEMENT_ID__=injectDestroyRef}static{this.__NG_ENV_ID__=injector=>injector}}class NodeInjectorDestroyRef extends DestroyRef{constructor(_lView){super(),this._lView=_lView}onDestroy(callback){return storeLViewOnDestroy(this._lView,callback),()=>removeLViewOnDestroy(this._lView,callback)}}function injectDestroyRef(){return new NodeInjectorDestroyRef(getLView())}class OutputEmitterRef{constructor(){this.destroyed=!1,this.listeners=null,this.errorHandler=inject(ErrorHandler,{optional:!0}),this.destroyRef=inject(DestroyRef),this.destroyRef.onDestroy((()=>{this.destroyed=!0,this.listeners=null}))}subscribe(callback){if(this.destroyed)throw new RuntimeError(953,ngDevMode&&"Unexpected subscription to destroyed `OutputRef`. The owning directive/component is destroyed.");return(this.listeners??=[]).push(callback),{unsubscribe:()=>{const idx=this.listeners?.indexOf(callback);void 0!==idx&&-1!==idx&&this.listeners?.splice(idx,1)}}}emit(value){if(this.destroyed)throw new RuntimeError(953,ngDevMode&&"Unexpected emit for destroyed `OutputRef`. The owning directive/component is destroyed.");if(null===this.listeners)return;const previousConsumer=setActiveConsumer(null);try{for(const listenerFn of this.listeners)try{listenerFn(value)}catch(err){this.errorHandler?.handleError(err)}}finally{setActiveConsumer(previousConsumer)}}}function getOutputDestroyRef(ref){return ref.destroyRef}function output(opts){return ngDevMode&&assertInInjectionContext(output),new OutputEmitterRef}function inputFunction(initialValue,opts){return ngDevMode&&assertInInjectionContext(input),createInputSignal(initialValue,opts)}function inputRequiredFunction(opts){return ngDevMode&&assertInInjectionContext(input),createInputSignal(REQUIRED_UNSET_VALUE,opts)}const input=(inputFunction.required=inputRequiredFunction,inputFunction);function injectElementRef(){return createElementRef(getCurrentTNode(),getLView())}function createElementRef(tNode,lView){return new ElementRef(getNativeByTNode(tNode,lView))}class ElementRef{constructor(nativeElement){this.nativeElement=nativeElement}static{this.__NG_ELEMENT_ID__=injectElementRef}}function unwrapElementRef(value){return value instanceof ElementRef?value.nativeElement:value}function _wrapInTimeout(fn){return value=>{setTimeout(fn,void 0,value)}}const EventEmitter=class EventEmitter_ extends Subject{constructor(isAsync=!1){super(),this.destroyRef=void 0,this.__isAsync=isAsync,isInInjectionContext()&&(this.destroyRef=inject(DestroyRef,{optional:!0})??void 0)}emit(value){const prevConsumer=setActiveConsumer(null);try{super.next(value)}finally{setActiveConsumer(prevConsumer)}}subscribe(observerOrNext,error,complete){let nextFn=observerOrNext,errorFn=error||(()=>null),completeFn=complete;if(observerOrNext&&"object"==typeof observerOrNext){const observer=observerOrNext;nextFn=observer.next?.bind(observer),errorFn=observer.error?.bind(observer),completeFn=observer.complete?.bind(observer)}this.__isAsync&&(errorFn=_wrapInTimeout(errorFn),nextFn&&(nextFn=_wrapInTimeout(nextFn)),completeFn&&(completeFn=_wrapInTimeout(completeFn)));const sink=super.subscribe({next:nextFn,error:errorFn,complete:completeFn});return observerOrNext instanceof Subscription.yU&&observerOrNext.add(sink),sink}};function symbolIterator(){return this._results[Symbol.iterator]()}class QueryList{static{Symbol.iterator}get changes(){return this._changes??=new EventEmitter}constructor(_emitDistinctChangesOnly=!1){this._emitDistinctChangesOnly=_emitDistinctChangesOnly,this.dirty=!0,this._onDirty=void 0,this._results=[],this._changesDetected=!1,this._changes=void 0,this.length=0,this.first=void 0,this.last=void 0;const proto=QueryList.prototype;proto[Symbol.iterator]||(proto[Symbol.iterator]=symbolIterator)}get(index){return this._results[index]}map(fn){return this._results.map(fn)}filter(fn){return this._results.filter(fn)}find(fn){return this._results.find(fn)}reduce(fn,init){return this._results.reduce(fn,init)}forEach(fn){this._results.forEach(fn)}some(fn){return this._results.some(fn)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(resultsTree,identityAccessor){this.dirty=!1;const newResultFlat=flatten(resultsTree);(this._changesDetected=!function arrayEquals(a,b,identityAccessor){if(a.length!==b.length)return!1;for(let i=0;i=0){const native=unwrapRNode(lView[index]),context=createLContext(lView,index,native);attachPatchData(native,context),mpValue=context;break}}}}return mpValue||null}function createLContext(lView,nodeIndex,native){return new LContext(lView[ID],nodeIndex,native)}function getComponentViewByInstance(componentInstance){let lView,patchedData=readPatchedData(componentInstance);if(isLView(patchedData)){const contextLView=patchedData,nodeIndex=findViaComponent(contextLView,componentInstance);lView=getComponentLViewByIndex(nodeIndex,contextLView);const context=createLContext(contextLView,nodeIndex,lView[HOST]);context.component=componentInstance,attachPatchData(componentInstance,context),attachPatchData(context.native,context)}else{const context=patchedData,contextLView=context.lView;ngDevMode&&assertLView(contextLView),lView=getComponentLViewByIndex(context.nodeIndex,contextLView)}return lView}const MONKEY_PATCH_KEY_NAME="__ngContext__";function attachPatchData(target,data){ngDevMode&&assertDefined(target,"Target expected"),isLView(data)?(target[MONKEY_PATCH_KEY_NAME]=data[ID],function registerLView(lView){ngDevMode&&assertNumber(lView[ID],"LView must have an ID in order to be registered"),TRACKED_LVIEWS.set(lView[ID],lView)}(data)):target[MONKEY_PATCH_KEY_NAME]=data}function readPatchedData(target){ngDevMode&&assertDefined(target,"Target expected");const data=target[MONKEY_PATCH_KEY_NAME];return"number"==typeof data?getLViewById(data):data||null}function readPatchedLView(target){const value=readPatchedData(target);return value?isLView(value)?value:value.lView:null}function isComponentInstance(instance){return instance&&instance.constructor&&instance.constructor.ɵcmp}function findViaNativeElement(lView,target){const tView=lView[TVIEW];for(let i=HEADER_OFFSET;i-1?lView[directiveStart+componentOffset]:null}(context.nodeIndex,lView)}return context.component}function getContext(element){assertDomElement(element);const context=getLContext(element),lView=context?context.lView:null;return null===lView?null:lView[CONTEXT]}function getOwningComponent(elementOrDir){const context=getLContext(elementOrDir);let parent,lView=context?context.lView:null;if(null===lView)return null;for(;2===lView[TVIEW].type&&(parent=getLViewParent(lView));)lView=parent;return 512&lView[FLAGS]?null:lView[CONTEXT]}function getRootComponents(elementOrDir){const lView=readPatchedLView(elementOrDir);return null!==lView?[getRootContext(lView)]:[]}function getInjector(elementOrDir){const context=getLContext(elementOrDir),lView=context?context.lView:null;if(null===lView)return Injector.NULL;const tNode=lView[TVIEW].data[context.nodeIndex];return new NodeInjector(tNode,lView)}function getDirectives(node){if(node instanceof Text)return[];const context=getLContext(node),lView=context?context.lView:null;if(null===lView)return[];const tView=lView[TVIEW],nodeIndex=context.nodeIndex;return tView?.data[nodeIndex]?(void 0===context.directives&&(context.directives=getDirectivesAtNodeIndex(nodeIndex,lView)),null===context.directives?[]:[...context.directives]):[]}function getLocalRefs(target){const context=getLContext(target);if(null===context)return{};if(void 0===context.localRefs){const lView=context.lView;if(null===lView)return{};context.localRefs=function discoverLocalRefs(lView,nodeIndex){const tNode=lView[TVIEW].data[nodeIndex];if(tNode&&tNode.localNames){const result={};let localIndex=tNode.index+1;for(let i=0;i=0?"dom":"output",useCapture="boolean"==typeof useCaptureOrIndx&&useCaptureOrIndx;element==listenerElement&&listeners.push({element,name,callback,useCapture,type})}}return listeners.sort(sortListeners),listeners}function sortListeners(a,b){return a.name==b.name?0:a.nameDEFAULT_APP_ID}),DEFAULT_APP_ID="ng",PLATFORM_INITIALIZER=new InjectionToken(ngDevMode?"Platform Initializer":""),PLATFORM_ID=new InjectionToken(ngDevMode?"Platform ID":"",{providedIn:"platform",factory:()=>"unknown"}),PACKAGE_ROOT_URL=new InjectionToken(ngDevMode?"Application Packages Root URL":""),ANIMATION_MODULE_TYPE=new InjectionToken(ngDevMode?"AnimationModuleType":""),CSP_NONCE=new InjectionToken(ngDevMode?"CSP nonce":"",{providedIn:"root",factory:()=>getDocument().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null}),IMAGE_CONFIG_DEFAULTS={breakpoints:[16,32,48,64,96,128,256,384,640,750,828,1080,1200,1920,2048,3840],placeholderResolution:30,disableImageSizeWarning:!1,disableImageLazyLoadWarning:!1},IMAGE_CONFIG=new InjectionToken(ngDevMode?"ImageConfig":"",{providedIn:"root",factory:()=>IMAGE_CONFIG_DEFAULTS});function makeStateKey(key){return key}function initTransferState(){const transferState=new TransferState;return"browser"===inject(PLATFORM_ID)&&(transferState.store=function retrieveTransferredState(doc,appId){const script=doc.getElementById(appId+"-state");if(script?.textContent)try{return JSON.parse(script.textContent)}catch(e){console.warn("Exception while restoring TransferState for app "+appId,e)}return{}}(getDocument(),inject(APP_ID))),transferState}class TransferState{constructor(){this.store={},this.onSerializeCallbacks={}}static{this.ɵprov=ɵɵdefineInjectable({token:TransferState,providedIn:"root",factory:initTransferState})}get(key,defaultValue){return void 0!==this.store[key]?this.store[key]:defaultValue}set(key,value){this.store[key]=value}remove(key){delete this.store[key]}hasKey(key){return this.store.hasOwnProperty(key)}get isEmpty(){return 0===Object.keys(this.store).length}onSerialize(key,callback){this.onSerializeCallbacks[key]=callback}toJson(){for(const key in this.onSerializeCallbacks)if(this.onSerializeCallbacks.hasOwnProperty(key))try{this.store[key]=this.onSerializeCallbacks[key]()}catch(e){console.warn("Exception in onSerialize callback: ",e)}return JSON.stringify(this.store).replace(/null;function retrieveHydrationInfoImpl(rNode,injector,isRootView=!1){let nghAttrValue=rNode.getAttribute(NGH_ATTR_NAME);if(null==nghAttrValue)return null;const[componentViewNgh,rootViewNgh]=nghAttrValue.split("|");if(nghAttrValue=isRootView?rootViewNgh:componentViewNgh,!nghAttrValue)return null;const remainingNgh=isRootView?componentViewNgh:rootViewNgh?`|${rootViewNgh}`:"";let data={};if(""!==nghAttrValue){const transferState=injector.get(TransferState,null,{optional:!0});if(null!==transferState){data=transferState.get(NGH_DATA_KEY,[])[Number(nghAttrValue)],ngDevMode&&assertDefined(data,"Unable to retrieve hydration info from the TransferState.")}}const dehydratedView={data,firstChild:rNode.firstChild??null};return isRootView&&(dehydratedView.firstChild=rNode,setSegmentHead(dehydratedView,0,rNode.nextSibling)),remainingNgh?rNode.setAttribute(NGH_ATTR_NAME,remainingNgh):rNode.removeAttribute(NGH_ATTR_NAME),ngDevMode&&markRNodeAsClaimedByHydration(rNode,!1),ngDevMode&&ngDevMode.hydratedComponents++,dehydratedView}function retrieveHydrationInfo(rNode,injector,isRootView=!1){return _retrieveHydrationInfoImpl(rNode,injector,isRootView)}function getLNodeForHydration(viewRef){let lView=viewRef._lView;return 2===lView[TVIEW].type?null:(isRootView(lView)&&(lView=lView[HEADER_OFFSET]),lView)}var HydrationStatus;!function(HydrationStatus){HydrationStatus.Hydrated="hydrated",HydrationStatus.Skipped="skipped",HydrationStatus.Mismatched="mismatched"}(HydrationStatus||(HydrationStatus={}));const HYDRATION_INFO_KEY="__ngDebugHydrationInfo__";function patchHydrationInfo(node,info){node[HYDRATION_INFO_KEY]=info}function readHydrationInfo(node){return node[HYDRATION_INFO_KEY]??null}function markRNodeAsClaimedByHydration(node,checkIfAlreadyClaimed=!0){if(!ngDevMode)throw new Error("Calling `markRNodeAsClaimedByHydration` in prod mode is not supported and likely a mistake.");if(checkIfAlreadyClaimed&&function isRNodeClaimedForHydration(node){return readHydrationInfo(node)?.status===HydrationStatus.Hydrated}(node))throw new Error("Trying to claim a node, which was claimed already.");patchHydrationInfo(node,{status:HydrationStatus.Hydrated}),ngDevMode.hydratedNodes++}function markRNodeAsHavingHydrationMismatch(node,expectedNodeDetails=null,actualNodeDetails=null){if(!ngDevMode)throw new Error("Calling `markRNodeAsMismatchedByHydration` in prod mode is not supported and likely a mistake.");for(;node&&!getComponent$1(node);)node=node?.parentNode;node&&patchHydrationInfo(node,{status:HydrationStatus.Mismatched,expectedNodeDetails,actualNodeDetails})}function setSegmentHead(hydrationInfo,index,node){hydrationInfo.segmentHeads??={},hydrationInfo.segmentHeads[index]=node}function getSegmentHead(hydrationInfo,index){return hydrationInfo.segmentHeads?.[index]??null}function getSerializedContainerViews(hydrationInfo,index){return hydrationInfo.data[CONTAINERS]?.[index]??null}function calcSerializedContainerSize(hydrationInfo,index){const views=getSerializedContainerViews(hydrationInfo,index)??[];let numNodes=0;for(let view of views)numNodes+=view[NUM_ROOT_NODES]*(view[MULTIPLIER]??1);return numNodes}function isDisconnectedNode$1(hydrationInfo,index){if(void 0===hydrationInfo.disconnectedNodes){const nodeIds=hydrationInfo.data[DISCONNECTED_NODES];hydrationInfo.disconnectedNodes=nodeIds?new Set(nodeIds):null}return!!hydrationInfo.disconnectedNodes?.has(index)}const IS_HYDRATION_DOM_REUSE_ENABLED=new InjectionToken("undefined"==typeof ngDevMode||ngDevMode?"IS_HYDRATION_DOM_REUSE_ENABLED":""),PRESERVE_HOST_CONTENT=new InjectionToken("undefined"==typeof ngDevMode||ngDevMode?"PRESERVE_HOST_CONTENT":"",{providedIn:"root",factory:()=>false}),IS_I18N_HYDRATION_ENABLED=new InjectionToken("undefined"==typeof ngDevMode||ngDevMode?"IS_I18N_HYDRATION_ENABLED":"");let policy$1,policy;function getPolicy$1(){if(void 0===policy$1&&(policy$1=null,_global.trustedTypes))try{policy$1=_global.trustedTypes.createPolicy("angular",{createHTML:s=>s,createScript:s=>s,createScriptURL:s=>s})}catch{}return policy$1}function trustedHTMLFromString(html){return getPolicy$1()?.createHTML(html)||html}function getPolicy(){if(void 0===policy&&(policy=null,_global.trustedTypes))try{policy=_global.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:s=>s,createScript:s=>s,createScriptURL:s=>s})}catch{}return policy}function trustedHTMLFromStringBypass(html){return getPolicy()?.createHTML(html)||html}function trustedScriptFromStringBypass(script){return getPolicy()?.createScript(script)||script}function trustedScriptURLFromStringBypass(url){return getPolicy()?.createScriptURL(url)||url}class SafeValueImpl{constructor(changingThisBreaksApplicationSecurity){this.changingThisBreaksApplicationSecurity=changingThisBreaksApplicationSecurity}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${XSS_SECURITY_URL})`}}class SafeHtmlImpl extends SafeValueImpl{getTypeName(){return"HTML"}}class SafeStyleImpl extends SafeValueImpl{getTypeName(){return"Style"}}class SafeScriptImpl extends SafeValueImpl{getTypeName(){return"Script"}}class SafeUrlImpl extends SafeValueImpl{getTypeName(){return"URL"}}class SafeResourceUrlImpl extends SafeValueImpl{getTypeName(){return"ResourceURL"}}function unwrapSafeValue(value){return value instanceof SafeValueImpl?value.changingThisBreaksApplicationSecurity:value}function allowSanitizationBypassAndThrow(value,type){const actualType=getSanitizationBypassType(value);if(null!=actualType&&actualType!==type){if("ResourceURL"===actualType&&"URL"===type)return!0;throw new Error(`Required a safe ${type}, got a ${actualType} (see ${XSS_SECURITY_URL})`)}return actualType===type}function getSanitizationBypassType(value){return value instanceof SafeValueImpl&&value.getTypeName()||null}function bypassSanitizationTrustHtml(trustedHtml){return new SafeHtmlImpl(trustedHtml)}function bypassSanitizationTrustStyle(trustedStyle){return new SafeStyleImpl(trustedStyle)}function bypassSanitizationTrustScript(trustedScript){return new SafeScriptImpl(trustedScript)}function bypassSanitizationTrustUrl(trustedUrl){return new SafeUrlImpl(trustedUrl)}function bypassSanitizationTrustResourceUrl(trustedResourceUrl){return new SafeResourceUrlImpl(trustedResourceUrl)}function getInertBodyHelper(defaultDoc){const inertDocumentHelper=new InertDocumentHelper(defaultDoc);return function isDOMParserAvailable(){try{return!!(new window.DOMParser).parseFromString(trustedHTMLFromString(""),"text/html")}catch{return!1}}()?new DOMParserHelper(inertDocumentHelper):inertDocumentHelper}class DOMParserHelper{constructor(inertDocumentHelper){this.inertDocumentHelper=inertDocumentHelper}getInertBodyElement(html){html=""+html;try{const body=(new window.DOMParser).parseFromString(trustedHTMLFromString(html),"text/html").body;return null===body?this.inertDocumentHelper.getInertBodyElement(html):(body.removeChild(body.firstChild),body)}catch{return null}}}class InertDocumentHelper{constructor(defaultDoc){this.defaultDoc=defaultDoc,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(html){const templateEl=this.inertDocument.createElement("template");return templateEl.innerHTML=trustedHTMLFromString(html),templateEl}}const SAFE_URL_PATTERN=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function _sanitizeUrl(url){return(url=String(url)).match(SAFE_URL_PATTERN)?url:(("undefined"==typeof ngDevMode||ngDevMode)&&console.warn(`WARNING: sanitizing unsafe URL value ${url} (see ${XSS_SECURITY_URL})`),"unsafe:"+url)}function tagSet(tags){const res={};for(const t of tags.split(","))res[t]=!0;return res}function merge(...sets){const res={};for(const s of sets)for(const v in s)s.hasOwnProperty(v)&&(res[v]=!0);return res}const VOID_ELEMENTS=tagSet("area,br,col,hr,img,wbr"),OPTIONAL_END_TAG_BLOCK_ELEMENTS=tagSet("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),OPTIONAL_END_TAG_INLINE_ELEMENTS=tagSet("rp,rt"),OPTIONAL_END_TAG_ELEMENTS=merge(OPTIONAL_END_TAG_INLINE_ELEMENTS,OPTIONAL_END_TAG_BLOCK_ELEMENTS),BLOCK_ELEMENTS=merge(OPTIONAL_END_TAG_BLOCK_ELEMENTS,tagSet("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),INLINE_ELEMENTS=merge(OPTIONAL_END_TAG_INLINE_ELEMENTS,tagSet("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),VALID_ELEMENTS=merge(VOID_ELEMENTS,BLOCK_ELEMENTS,INLINE_ELEMENTS,OPTIONAL_END_TAG_ELEMENTS),URI_ATTRS=tagSet("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),HTML_ATTRS=tagSet("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),ARIA_ATTRS=tagSet("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext"),VALID_ATTRS=merge(URI_ATTRS,HTML_ATTRS,ARIA_ATTRS),SKIP_TRAVERSING_CONTENT_IF_INVALID_ELEMENTS=tagSet("script,style,template");class SanitizingHtmlSerializer{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(el){let current=el.firstChild,traverseContent=!0,parentNodes=[];for(;current;)if(current.nodeType===Node.ELEMENT_NODE?traverseContent=this.startElement(current):current.nodeType===Node.TEXT_NODE?this.chars(current.nodeValue):this.sanitizedSomething=!0,traverseContent&¤t.firstChild)parentNodes.push(current),current=getFirstChild(current);else for(;current;){current.nodeType===Node.ELEMENT_NODE&&this.endElement(current);let next=getNextSibling(current);if(next){current=next;break}current=parentNodes.pop()}return this.buf.join("")}startElement(element){const tagName=getNodeName(element).toLowerCase();if(!VALID_ELEMENTS.hasOwnProperty(tagName))return this.sanitizedSomething=!0,!SKIP_TRAVERSING_CONTENT_IF_INVALID_ELEMENTS.hasOwnProperty(tagName);this.buf.push("<"),this.buf.push(tagName);const elAttrs=element.attributes;for(let i=0;i"),!0}endElement(current){const tagName=getNodeName(current).toLowerCase();VALID_ELEMENTS.hasOwnProperty(tagName)&&!VOID_ELEMENTS.hasOwnProperty(tagName)&&(this.buf.push(""))}chars(chars){this.buf.push(encodeEntities(chars))}}function getNextSibling(node){const nextSibling=node.nextSibling;if(nextSibling&&node!==nextSibling.previousSibling)throw clobberedElementError(nextSibling);return nextSibling}function getFirstChild(node){const firstChild=node.firstChild;if(firstChild&&function isClobberedElement(parentNode,childNode){return(parentNode.compareDocumentPosition(childNode)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}(node,firstChild))throw clobberedElementError(firstChild);return firstChild}function getNodeName(node){const nodeName=node.nodeName;return"string"==typeof nodeName?nodeName:"FORM"}function clobberedElementError(node){return new Error(`Failed to sanitize html because the element is clobbered: ${node.outerHTML}`)}const SURROGATE_PAIR_REGEXP=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,NON_ALPHANUMERIC_REGEXP=/([^\#-~ |!])/g;function encodeEntities(value){return value.replace(/&/g,"&").replace(SURROGATE_PAIR_REGEXP,(function(match){return"&#"+(1024*(match.charCodeAt(0)-55296)+(match.charCodeAt(1)-56320)+65536)+";"})).replace(NON_ALPHANUMERIC_REGEXP,(function(match){return"&#"+match.charCodeAt(0)+";"})).replace(//g,">")}let inertBodyHelper;function _sanitizeHtml(defaultDoc,unsafeHtmlInput){let inertBodyElement=null;try{inertBodyHelper=inertBodyHelper||getInertBodyHelper(defaultDoc);let unsafeHtml=unsafeHtmlInput?String(unsafeHtmlInput):"";inertBodyElement=inertBodyHelper.getInertBodyElement(unsafeHtml);let mXSSAttempts=5,parsedHtml=unsafeHtml;do{if(0===mXSSAttempts)throw new Error("Failed to sanitize html because the input is unstable");mXSSAttempts--,unsafeHtml=parsedHtml,parsedHtml=inertBodyElement.innerHTML,inertBodyElement=inertBodyHelper.getInertBodyElement(unsafeHtml)}while(unsafeHtml!==parsedHtml);const sanitizer=new SanitizingHtmlSerializer,safeHtml=sanitizer.sanitizeChildren(getTemplateContent(inertBodyElement)||inertBodyElement);return("undefined"==typeof ngDevMode||ngDevMode)&&sanitizer.sanitizedSomething&&console.warn(`WARNING: sanitizing HTML stripped some content, see ${XSS_SECURITY_URL}`),trustedHTMLFromString(safeHtml)}finally{if(inertBodyElement){const parent=getTemplateContent(inertBodyElement)||inertBodyElement;for(;parent.firstChild;)parent.removeChild(parent.firstChild)}}}function getTemplateContent(el){return"content"in el&&function isTemplateElement(el){return el.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===el.nodeName}(el)?el.content:null}var SecurityContext;function ɵɵsanitizeHtml(unsafeHtml){const sanitizer=getSanitizer();return sanitizer?trustedHTMLFromStringBypass(sanitizer.sanitize(SecurityContext.HTML,unsafeHtml)||""):allowSanitizationBypassAndThrow(unsafeHtml,"HTML")?trustedHTMLFromStringBypass(unwrapSafeValue(unsafeHtml)):_sanitizeHtml(getDocument(),renderStringify(unsafeHtml))}function ɵɵsanitizeStyle(unsafeStyle){const sanitizer=getSanitizer();return sanitizer?sanitizer.sanitize(SecurityContext.STYLE,unsafeStyle)||"":allowSanitizationBypassAndThrow(unsafeStyle,"Style")?unwrapSafeValue(unsafeStyle):renderStringify(unsafeStyle)}function ɵɵsanitizeUrl(unsafeUrl){const sanitizer=getSanitizer();return sanitizer?sanitizer.sanitize(SecurityContext.URL,unsafeUrl)||"":allowSanitizationBypassAndThrow(unsafeUrl,"URL")?unwrapSafeValue(unsafeUrl):_sanitizeUrl(renderStringify(unsafeUrl))}function ɵɵsanitizeResourceUrl(unsafeResourceUrl){const sanitizer=getSanitizer();if(sanitizer)return trustedScriptURLFromStringBypass(sanitizer.sanitize(SecurityContext.RESOURCE_URL,unsafeResourceUrl)||"");if(allowSanitizationBypassAndThrow(unsafeResourceUrl,"ResourceURL"))return trustedScriptURLFromStringBypass(unwrapSafeValue(unsafeResourceUrl));throw new RuntimeError(904,ngDevMode&&`unsafe value used in a resource URL context (see ${XSS_SECURITY_URL})`)}function ɵɵsanitizeScript(unsafeScript){const sanitizer=getSanitizer();if(sanitizer)return trustedScriptFromStringBypass(sanitizer.sanitize(SecurityContext.SCRIPT,unsafeScript)||"");if(allowSanitizationBypassAndThrow(unsafeScript,"Script"))return trustedScriptFromStringBypass(unwrapSafeValue(unsafeScript));throw new RuntimeError(905,ngDevMode&&"unsafe value used in a script context")}function ɵɵtrustConstantHtml(html){if(ngDevMode&&(!Array.isArray(html)||!Array.isArray(html.raw)||1!==html.length))throw new Error(`Unexpected interpolation in trusted HTML constant: ${html.join("?")}`);return trustedHTMLFromString(html[0])}function ɵɵtrustConstantResourceUrl(url){if(ngDevMode&&(!Array.isArray(url)||!Array.isArray(url.raw)||1!==url.length))throw new Error(`Unexpected interpolation in trusted URL constant: ${url.join("?")}`);return function trustedScriptURLFromString(url){return getPolicy$1()?.createScriptURL(url)||url}(url[0])}function ɵɵsanitizeUrlOrResourceUrl(unsafeUrl,tag,prop){return function getUrlSanitizer(tag,prop){return"src"===prop&&("embed"===tag||"frame"===tag||"iframe"===tag||"media"===tag||"script"===tag)||"href"===prop&&("base"===tag||"link"===tag)?ɵɵsanitizeResourceUrl:ɵɵsanitizeUrl}(tag,prop)(unsafeUrl)}function getSanitizer(){const lView=getLView();return lView&&lView[ENVIRONMENT].sanitizer}!function(SecurityContext){SecurityContext[SecurityContext.NONE=0]="NONE",SecurityContext[SecurityContext.HTML=1]="HTML",SecurityContext[SecurityContext.STYLE=2]="STYLE",SecurityContext[SecurityContext.SCRIPT=3]="SCRIPT",SecurityContext[SecurityContext.URL=4]="URL",SecurityContext[SecurityContext.RESOURCE_URL=5]="RESOURCE_URL"}(SecurityContext||(SecurityContext={}));const COMMENT_DISALLOWED=/^>|^->||--!>|)/g,COMMENT_DELIMITER_ESCAPED="​$1​";function escapeCommentText(value){return value.replace(COMMENT_DISALLOWED,(text=>text.replace(COMMENT_DELIMITER,COMMENT_DELIMITER_ESCAPED)))}function normalizeDebugBindingName(name){return name=function camelCaseToDashCase(input){return input.replace(CAMEL_CASE_REGEXP,((...m)=>"-"+m[1].toLowerCase()))}(name.replace(/[$@]/g,"_")),`ng-reflect-${name}`}const CAMEL_CASE_REGEXP=/([A-Z])/g;const CUSTOM_ELEMENTS_SCHEMA={name:"custom-elements"},NO_ERRORS_SCHEMA={name:"no-errors-schema"};let shouldThrowErrorOnUnknownElement=!1;function ɵsetUnknownElementStrictMode(shouldThrow){shouldThrowErrorOnUnknownElement=shouldThrow}function ɵgetUnknownElementStrictMode(){return shouldThrowErrorOnUnknownElement}let shouldThrowErrorOnUnknownProperty=!1;function ɵsetUnknownPropertyStrictMode(shouldThrow){shouldThrowErrorOnUnknownProperty=shouldThrow}function ɵgetUnknownPropertyStrictMode(){return shouldThrowErrorOnUnknownProperty}function handleUnknownPropertyError(propName,tagName,nodeType,lView){tagName||4!==nodeType||(tagName="ng-template");const isHostStandalone=isHostComponentStandalone(lView);let message=`Can't bind to '${propName}' since it isn't a known property of '${tagName}'${getTemplateLocationDetails(lView)}.`;const schemas=`'${isHostStandalone?"@Component":"@NgModule"}.schemas'`,importLocation=isHostStandalone?"included in the '@Component.imports' of this component":"a part of an @NgModule where this component is declared";if(KNOWN_CONTROL_FLOW_DIRECTIVES.has(propName)){message+=`\nIf the '${propName}' is an Angular control flow directive, please make sure that either the '${KNOWN_CONTROL_FLOW_DIRECTIVES.get(propName)}' directive or the 'CommonModule' is ${importLocation}.`}else message+=`\n1. If '${tagName}' is an Angular component and it has the '${propName}' input, then verify that it is ${importLocation}.`,tagName&&tagName.indexOf("-")>-1?(message+=`\n2. If '${tagName}' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the ${schemas} of this component to suppress this message.`,message+=`\n3. To allow any property add 'NO_ERRORS_SCHEMA' to the ${schemas} of this component.`):message+=`\n2. To allow any property add 'NO_ERRORS_SCHEMA' to the ${schemas} of this component.`;reportUnknownPropertyError(message)}function reportUnknownPropertyError(message){if(shouldThrowErrorOnUnknownProperty)throw new RuntimeError(303,message);console.error(formatRuntimeError(303,message))}function getDeclarationComponentDef(lView){!ngDevMode&&throwError("Must never be called in production mode");const context=lView[DECLARATION_COMPONENT_VIEW][CONTEXT];return context&&context.constructor?getComponentDef(context.constructor):null}function isHostComponentStandalone(lView){!ngDevMode&&throwError("Must never be called in production mode");const componentDef=getDeclarationComponentDef(lView);return!!componentDef?.standalone}function getTemplateLocationDetails(lView){!ngDevMode&&throwError("Must never be called in production mode");const hostComponentDef=getDeclarationComponentDef(lView),componentClassName=hostComponentDef?.type?.name;return componentClassName?` (used in the '${componentClassName}' component template)`:""}const KNOWN_CONTROL_FLOW_DIRECTIVES=new Map([["ngIf","NgIf"],["ngFor","NgFor"],["ngSwitchCase","NgSwitchCase"],["ngSwitchDefault","NgSwitchDefault"]]);function matchingSchemas(schemas,tagName){if(null!==schemas)for(let i=0;i-1)return!0}return!1}function ɵɵresolveWindow(element){return element.ownerDocument.defaultView}function ɵɵresolveDocument(element){return element.ownerDocument}function ɵɵresolveBody(element){return element.ownerDocument.body}const INTERPOLATION_DELIMITER="�";function maybeUnwrapFn(value){return value instanceof Function?value():value}function isPlatformBrowser(injector){return"browser"===(injector??inject(Injector)).get(PLATFORM_ID)}const VALUE_STRING_LENGTH_LIMIT=200;function assertComponentDef(type){if(!getComponentDef(type))throw new RuntimeError(906,`The ${stringifyForError(type)} is not an Angular component, make sure it has the \`@Component\` decorator.`)}function throwMultipleComponentError(tNode,first,second){throw new RuntimeError(-300,`Multiple components match node with tagname ${tNode.value}: ${stringifyForError(first)} and ${stringifyForError(second)}`)}function formatValue(value){let strValue=String(value);try{(Array.isArray(value)||"[object Object]"===strValue)&&(strValue=JSON.stringify(value))}catch(error){}return strValue.length>VALUE_STRING_LENGTH_LIMIT?strValue.substring(0,VALUE_STRING_LENGTH_LIMIT)+"…":strValue}function constructDetailsForInterpolation(lView,rootIndex,expressionIndex,meta,changedValue){const[propName,prefix,...chunks]=meta.split(INTERPOLATION_DELIMITER);let oldValue=prefix,newValue=prefix;for(let i=0;i0&&(lContainer[indexInContainer-1][NEXT]=lView),index0&&(lContainer[indexInContainer-1][NEXT]=viewToDetach[NEXT]);const removedLView=removeFromArray(lContainer,CONTAINER_HEADER_OFFSET+removeIndex);!function removeViewFromDOM(tView,lView){detachViewFromDOM(tView,lView),lView[HOST]=null,lView[T_HOST]=null}(viewToDetach[TVIEW],viewToDetach);const lQueries=removedLView[QUERIES];null!==lQueries&&lQueries.detachView(removedLView[TVIEW]),viewToDetach[PARENT]=null,viewToDetach[NEXT]=null,viewToDetach[FLAGS]&=-129}return viewToDetach}function destroyLView(tView,lView){if(!(256&lView[FLAGS])){const renderer=lView[RENDERER];renderer.destroyNode&&applyView(tView,lView,renderer,3,null,null),function destroyViewTree(rootView){let lViewOrLContainer=rootView[CHILD_HEAD];if(!lViewOrLContainer)return cleanUpView(rootView[TVIEW],rootView);for(;lViewOrLContainer;){let next=null;if(isLView(lViewOrLContainer))next=lViewOrLContainer[CHILD_HEAD];else{ngDevMode&&assertLContainer(lViewOrLContainer);const firstView=lViewOrLContainer[CONTAINER_HEADER_OFFSET];firstView&&(next=firstView)}if(!next){for(;lViewOrLContainer&&!lViewOrLContainer[NEXT]&&lViewOrLContainer!==rootView;)isLView(lViewOrLContainer)&&cleanUpView(lViewOrLContainer[TVIEW],lViewOrLContainer),lViewOrLContainer=lViewOrLContainer[PARENT];null===lViewOrLContainer&&(lViewOrLContainer=rootView),isLView(lViewOrLContainer)&&cleanUpView(lViewOrLContainer[TVIEW],lViewOrLContainer),next=lViewOrLContainer&&lViewOrLContainer[NEXT]}lViewOrLContainer=next}}(lView)}}function cleanUpView(tView,lView){if(256&lView[FLAGS])return;const prevConsumer=setActiveConsumer(null);try{lView[FLAGS]&=-129,lView[FLAGS]|=256,lView[REACTIVE_TEMPLATE_CONSUMER]&&consumerDestroy(lView[REACTIVE_TEMPLATE_CONSUMER]),executeOnDestroys(tView,lView),processCleanups(tView,lView),1===lView[TVIEW].type&&(ngDevMode&&ngDevMode.rendererDestroy++,lView[RENDERER].destroy());const declarationContainer=lView[DECLARATION_LCONTAINER];if(null!==declarationContainer&&isLContainer(lView[PARENT])){declarationContainer!==lView[PARENT]&&detachMovedView(declarationContainer,lView);const lQueries=lView[QUERIES];null!==lQueries&&lQueries.detachView(tView)}!function unregisterLView(lView){ngDevMode&&assertNumber(lView[ID],"Cannot stop tracking an LView that does not have an ID"),TRACKED_LVIEWS.delete(lView[ID])}(lView)}finally{setActiveConsumer(prevConsumer)}}function processCleanups(tView,lView){ngDevMode&&assertNotReactive(processCleanups.name);const tCleanup=tView.cleanup,lCleanup=lView[CLEANUP];if(null!==tCleanup)for(let i=0;i=0?lCleanup[targetIdx]():lCleanup[-targetIdx].unsubscribe(),i+=2}else{const context=lCleanup[tCleanup[i+1]];tCleanup[i].call(context)}null!==lCleanup&&(lView[CLEANUP]=null);const destroyHooks=lView[ON_DESTROY_HOOKS];if(null!==destroyHooks){lView[ON_DESTROY_HOOKS]=null;for(let i=0;i-1){ngDevMode&&assertTNodeForLView(parentTNode,lView);const{encapsulation}=tView.data[parentTNode.directiveStart+componentOffset];if(encapsulation===ViewEncapsulation$1.None||encapsulation===ViewEncapsulation$1.Emulated)return null}return getNativeByTNode(parentTNode,lView)}}function nativeInsertBefore(renderer,parent,child,beforeNode,isMove){ngDevMode&&ngDevMode.rendererInsertBefore++,renderer.insertBefore(parent,child,beforeNode,isMove)}function nativeAppendChild(renderer,parent,child){ngDevMode&&ngDevMode.rendererAppendChild++,ngDevMode&&assertDefined(parent,"parent node must be defined"),renderer.appendChild(parent,child)}function nativeAppendOrInsertBefore(renderer,parent,child,beforeNode,isMove){null!==beforeNode?nativeInsertBefore(renderer,parent,child,beforeNode,isMove):nativeAppendChild(renderer,parent,child)}function nativeParentNode(renderer,node){return renderer.parentNode(node)}function getInsertInFrontOfRNode(parentTNode,currentTNode,lView){return _getInsertInFrontOfRNodeWithI18n(parentTNode,currentTNode,lView)}function getInsertInFrontOfRNodeWithNoI18n(parentTNode,currentTNode,lView){return 40&parentTNode.type?getNativeByTNode(parentTNode,lView):null}!function(RendererStyleFlags2){RendererStyleFlags2[RendererStyleFlags2.Important=1]="Important",RendererStyleFlags2[RendererStyleFlags2.DashCase=2]="DashCase"}(RendererStyleFlags2||(RendererStyleFlags2={}));let _processI18nInsertBefore,_getInsertInFrontOfRNodeWithI18n=getInsertInFrontOfRNodeWithNoI18n;function setI18nHandling(getInsertInFrontOfRNodeWithI18n,processI18nInsertBefore){_getInsertInFrontOfRNodeWithI18n=getInsertInFrontOfRNodeWithI18n,_processI18nInsertBefore=processI18nInsertBefore}function appendChild(tView,lView,childRNode,childTNode){const parentRNode=getParentRElement(tView,childTNode,lView),renderer=lView[RENDERER],anchorNode=getInsertInFrontOfRNode(childTNode.parent||lView[T_HOST],childTNode,lView);if(null!=parentRNode)if(Array.isArray(childRNode))for(let i=0;i) must have projection slots defined.")}(lView),componentHost.projection[slotIdx]}return null}function getBeforeNodeForView(viewIndexInContainer,lContainer){const nextViewIndex=CONTAINER_HEADER_OFFSET+viewIndexInContainer+1;if(nextViewIndexHEADER_OFFSET&&selectIndexInternal(tView,lView,HEADER_OFFSET,!!ngDevMode&&isInCheckNoChangesMode());profiler(isUpdatePhase?2:0,context),templateFn(rf,context)}finally{setSelectedIndex(prevSelectedIndex);profiler(isUpdatePhase?3:1,context)}}function executeContentQueries(tView,tNode,lView){if(isContentQueryHost(tNode)){const prevConsumer=setActiveConsumer(null);try{const start=tNode.directiveStart,end=tNode.directiveEnd;for(let directiveIndex=start;directiveIndexnull;function applyRootElementTransformImpl(rootElement){hasSkipHydrationAttrOnRElement(rootElement)?clearElementContents(rootElement):function processTextNodeMarkersBeforeHydration(node){const doc=getDocument(),commentNodesIterator=doc.createNodeIterator(node,NodeFilter.SHOW_COMMENT,{acceptNode(node){const content=function getTextNodeContent(node){return node.textContent?.replace(/\s/gm,"")}(node);return"ngetn"===content||"ngtns"===content?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}});let currentNode;const nodes=[];for(;currentNode=commentNodesIterator.nextNode();)nodes.push(currentNode);for(const node of nodes)"ngetn"===node.textContent?node.replaceWith(doc.createTextNode("")):node.remove()}(rootElement)}function captureNodeBindings(mode,aliasMap,directiveIndex,bindingsResult,hostDirectiveAliasMap){for(let publicName in aliasMap){if(!aliasMap.hasOwnProperty(publicName))continue;const value=aliasMap[publicName];if(void 0===value)continue;let internalName;bindingsResult??={};let inputFlags=InputFlags.None;Array.isArray(value)?(internalName=value[0],inputFlags=value[1]):internalName=value;let finalPublicName=publicName;if(null!==hostDirectiveAliasMap){if(!hostDirectiveAliasMap.hasOwnProperty(publicName))continue;finalPublicName=hostDirectiveAliasMap[publicName]}0===mode?addPropertyBinding(bindingsResult,directiveIndex,finalPublicName,internalName,inputFlags):addPropertyBinding(bindingsResult,directiveIndex,finalPublicName,internalName)}return bindingsResult}function addPropertyBinding(bindings,directiveIndex,publicName,internalName,inputFlags){let values;bindings.hasOwnProperty(publicName)?(values=bindings[publicName]).push(directiveIndex,internalName):values=bindings[publicName]=[directiveIndex,internalName],void 0!==inputFlags&&values.push(inputFlags)}function elementPropertyInternal(tView,tNode,lView,propName,value,renderer,sanitizer,nativeOnly){ngDevMode&&assertNotSame(value,NO_CHANGE,"Incoming value should never be NO_CHANGE.");const element=getNativeByTNode(tNode,lView);let dataValue,inputData=tNode.inputs;!nativeOnly&&null!=inputData&&(dataValue=inputData[propName])?(setInputsForProperty(tView,lView,dataValue,propName,value),isComponentHost(tNode)&&function markDirtyIfOnPush(lView,viewIndex){ngDevMode&&assertLView(lView);const childComponentLView=getComponentLViewByIndex(viewIndex,lView);16&childComponentLView[FLAGS]||(childComponentLView[FLAGS]|=64)}(lView,tNode.index),ngDevMode&&function setNgReflectProperties(lView,element,type,dataValue,value){if(7&type)for(let i=0;i0;){const value=hostBindingOpCodes[--i];if("number"==typeof value&&value<0)return value}return 0})(hostBindingOpCodes)!=elementIndx&&hostBindingOpCodes.push(elementIndx),hostBindingOpCodes.push(directiveIdx,directiveVarsIdx,hostBindings)}}(tView,tNode,directiveIndex,allocExpando(tView,lView,def.hostVars,NO_CHANGE),def)}function elementAttributeInternal(tNode,lView,name,value,sanitizer,namespace){ngDevMode&&(assertNotSame(value,NO_CHANGE,"Incoming value should never be NO_CHANGE."),function validateAgainstEventAttributes(name){if(name.toLowerCase().startsWith("on")){const errorMessage=`Binding to event attribute '${name}' is disallowed for security reasons, please use (${name.slice(2)})=...`;throw new RuntimeError(306,errorMessage)}}(name),assertTNodeType(tNode,2,`Attempted to set attribute \`${name}\` on a container node. Host bindings are not valid on ng-container or ng-template.`));const element=getNativeByTNode(tNode,lView);setElementAttribute(lView[RENDERER],element,namespace,tNode.value,name,value,sanitizer)}function setElementAttribute(renderer,element,namespace,tagName,name,value,sanitizer){if(null==value)ngDevMode&&ngDevMode.rendererRemoveAttribute++,renderer.removeAttribute(element,name,namespace);else{ngDevMode&&ngDevMode.rendererSetAttribute++;const strValue=null==sanitizer?renderStringify(value):sanitizer(value,tagName||"",name);renderer.setAttribute(element,name,strValue,namespace)}}function setInputsFromAttrs(lView,directiveIndex,instance,def,tNode,initialInputData){const initialInputs=initialInputData[directiveIndex];if(null!==initialInputs)for(let i=0;i0&&(bindingMetadata+=INTERPOLATION_DELIMITER+interpolationParts.join(INTERPOLATION_DELIMITER)),tData[bindingIndex]=bindingMetadata}}function getOrCreateLViewCleanup(view){return view[CLEANUP]||(view[CLEANUP]=[])}function getOrCreateTViewCleanup(tView){return tView.cleanup||(tView.cleanup=[])}function loadComponentRenderer(currentDef,tNode,lView){return(null===currentDef||isComponentDef(currentDef))&&(lView=unwrapLView(lView[tNode.index])),lView[RENDERER]}function handleError(lView,error){const injector=lView[INJECTOR],errorHandler=injector?injector.get(ErrorHandler,null):null;errorHandler&&errorHandler.handleError(error)}function setInputsForProperty(tView,lView,inputs,publicName,value){for(let i=0;i{markAncestorsForTraversal(node.lView)},consumerOnSignalRead(){this.lView[REACTIVE_TEMPLATE_CONSUMER]=this}},MAXIMUM_REFRESH_RERUNS=100;function detectChangesInternal(lView,notifyErrorHandler=!0,mode=0){const environment=lView[ENVIRONMENT],rendererFactory=environment.rendererFactory,checkNoChangesMode=!!ngDevMode&&isInCheckNoChangesMode();checkNoChangesMode||rendererFactory.begin?.();try{!function detectChangesInViewWhileDirty(lView,mode){detectChangesInView$1(lView,mode);let retries=0;for(;requiresRefreshOrTraversal(lView);){if(retries===MAXIMUM_REFRESH_RERUNS)throw new RuntimeError(103,ngDevMode&&"Infinite change detection while trying to refresh views. There may be components which each cause the other to require a refresh, causing an infinite loop.");retries++,detectChangesInView$1(lView,1)}}(lView,mode)}catch(error){throw notifyErrorHandler&&handleError(lView,error),error}finally{checkNoChangesMode||(rendererFactory.end?.(),environment.inlineEffectRunner?.flush())}}function refreshView(tView,lView,templateFn,context){ngDevMode&&assertEqual(isCreationMode(lView),!1,"Should be run in update mode");const flags=lView[FLAGS];if(!(256&~flags))return;const isInCheckNoChangesPass=ngDevMode&&isInCheckNoChangesMode();!isInCheckNoChangesPass&&lView[ENVIRONMENT].inlineEffectRunner?.flush(),enterView(lView);let prevConsumer=null,currentConsumer=null;!isInCheckNoChangesPass&&function viewShouldHaveReactiveConsumer(tView){return 2!==tView.type}(tView)&&(currentConsumer=getOrBorrowReactiveLViewConsumer(lView),prevConsumer=consumerBeforeComputation(currentConsumer));try{resetPreOrderHookFlags(lView),setBindingIndex(tView.bindingStartIndex),null!==templateFn&&executeTemplate(tView,lView,templateFn,2,context);const hooksInitPhaseCompleted=!(3&~flags);if(!isInCheckNoChangesPass)if(hooksInitPhaseCompleted){const preOrderCheckHooks=tView.preOrderCheckHooks;null!==preOrderCheckHooks&&executeCheckHooks(lView,preOrderCheckHooks,null)}else{const preOrderHooks=tView.preOrderHooks;null!==preOrderHooks&&executeInitAndCheckHooks(lView,preOrderHooks,0,null),incrementInitPhaseFlags(lView,0)}if(function markTransplantedViewsForRefresh(lView){for(let lContainer=getFirstLContainer(lView);null!==lContainer;lContainer=getNextLContainer(lContainer)){if(!(lContainer[FLAGS]&LContainerFlags.HasTransplantedViews))continue;const movedViews=lContainer[MOVED_VIEWS];ngDevMode&&assertDefined(movedViews,"Transplanted View flags set but missing MOVED_VIEWS");for(let i=0;i-1&&(ngDevMode&&assertEqual(index,parent.indexOf(this._lView)-CONTAINER_HEADER_OFFSET,"An attached view should be in the same position within its container as its ViewRef in the VIEW_REFS array."),detachView(parent,index),removeFromArray(viewRefs,index))}this._attachedToViewContainer=!1}destroyLView(this._lView[TVIEW],this._lView)}onDestroy(callback){storeLViewOnDestroy(this._lView,callback)}markForCheck(){markViewDirty(this._cdRefInjectingView||this._lView)}detach(){this._lView[FLAGS]&=-129}reattach(){updateAncestorTraversalFlagsOnAttach(this._lView),this._lView[FLAGS]|=128}detectChanges(){this._lView[FLAGS]|=1024,detectChangesInternal(this._lView,this.notifyErrorHandler)}checkNoChanges(){ngDevMode&&function checkNoChangesInternal(lView,notifyErrorHandler=!0){setIsInCheckNoChangesMode(!0);try{detectChangesInternal(lView,notifyErrorHandler)}finally{setIsInCheckNoChangesMode(!1)}}(this._lView,this.notifyErrorHandler)}attachToViewContainerRef(){if(this._appRef)throw new RuntimeError(902,ngDevMode&&"This view is already attached directly to the ApplicationRef!");this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,detachViewFromDOM(this._lView[TVIEW],this._lView)}attachToAppRef(appRef){if(this._attachedToViewContainer)throw new RuntimeError(902,ngDevMode&&"This view is already attached to a ViewContainer!");this._appRef=appRef,updateAncestorTraversalFlagsOnAttach(this._lView)}}class TemplateRef{static{this.__NG_ELEMENT_ID__=injectTemplateRef}}const ViewEngineTemplateRef=TemplateRef,R3TemplateRef=class TemplateRef extends ViewEngineTemplateRef{constructor(_declarationLView,_declarationTContainer,elementRef){super(),this._declarationLView=_declarationLView,this._declarationTContainer=_declarationTContainer,this.elementRef=elementRef}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(context,injector){return this.createEmbeddedViewImpl(context,injector)}createEmbeddedViewImpl(context,injector,dehydratedView){const embeddedLView=createAndRenderEmbeddedLView(this._declarationLView,this._declarationTContainer,context,{embeddedViewInjector:injector,dehydratedView});return new ViewRef$1(embeddedLView)}};function injectTemplateRef(){return createTemplateRef(getCurrentTNode(),getLView())}function createTemplateRef(hostTNode,hostLView){return 4&hostTNode.type?(ngDevMode&&assertDefined(hostTNode.tView,"TView must be allocated"),new R3TemplateRef(hostLView,hostTNode,createElementRef(hostTNode,hostLView))):null}const AT_THIS_LOCATION="<-- AT THIS LOCATION";function validateMatchingNode(node,nodeType,tagName,lView,tNode,isViewContainerAnchor=!1){if(!node||node.nodeType!==nodeType||node.nodeType===Node.ELEMENT_NODE&&node.tagName.toLowerCase()!==tagName?.toLowerCase()){let header=`During hydration Angular expected ${shortRNodeDescription(nodeType,tagName,null)} but `;const hostComponentDef=getDeclarationComponentDef(lView),componentClassName=hostComponentDef?.type?.name,expectedDom=describeExpectedDom(lView,tNode,isViewContainerAnchor),expected=`Angular expected this DOM:\n\n${expectedDom}\n\n`;let actual="";const componentHostElement=unwrapRNode(lView[HOST]);if(node){header+=`found ${shortRNodeDescription(node.nodeType,node.tagName??null,node.textContent??null)}.\n\n`;const actualDom=describeDomFromNode(node);actual=`Actual DOM is:\n\n${actualDom}\n\n`,markRNodeAsHavingHydrationMismatch(componentHostElement,expectedDom,actualDom)}else header+="the node was not found.\n\n",markRNodeAsHavingHydrationMismatch(componentHostElement,expectedDom);const footer=getHydrationErrorFooter(componentClassName);throw new RuntimeError(-500,header+expected+actual+"Note: attributes are only displayed to better represent the DOM but have no effect on hydration mismatches.\n\n"+footer)}}function validateSiblingNodeExists(node){if(validateNodeExists(node),!node.nextSibling){const header="During hydration Angular expected more sibling nodes to be present.\n\n",actual=`Actual DOM is:\n\n${describeDomFromNode(node)}\n\n`,message=header+actual+getHydrationErrorFooter();throw markRNodeAsHavingHydrationMismatch(node,"",actual),new RuntimeError(-501,message)}}function validateNodeExists(node,lView=null,tNode=null){if(!node){const header="During hydration, Angular expected an element to be present at this location.\n\n";let expected="",footer="";throw null!==lView&&null!==tNode&&(expected=describeExpectedDom(lView,tNode,!1),footer=getHydrationErrorFooter(),markRNodeAsHavingHydrationMismatch(unwrapRNode(lView[HOST]),expected,"")),new RuntimeError(-502,`${header}${expected}\n\n${footer}`)}}function nodeNotFoundAtPathError(host,path){const header=`During hydration Angular was unable to locate a node using the "${path}" path, starting from the ${describeRNode(host)} node.\n\n`,footer=getHydrationErrorFooter();throw markRNodeAsHavingHydrationMismatch(host),new RuntimeError(-502,header+footer)}function unsupportedProjectionOfDomNodes(rNode){const actual=`${describeDomFromNode(rNode)}\n\n`;return new RuntimeError(-503,"During serialization, Angular detected DOM nodes that were created outside of Angular context and provided as projectable nodes (likely via `ViewContainerRef.createComponent` or `createComponent` APIs). Hydration is not supported for such cases, consider refactoring the code to avoid this pattern or using `ngSkipHydration` on the host element of the component.\n\n"+actual+"Note: attributes are only displayed to better represent the DOM but have no effect on hydration mismatches.\n\n")}const internalAttrs=new Set(["ngh","ng-version","ng-server-context"]);function describeTNode(tNode,innerContent="…"){switch(tNode.type){case 1:return`#text${tNode.value?`(${tNode.value})`:""}`;case 2:const attrs=function stringifyTNodeAttrs(tNode){const results=[];if(tNode.attrs)for(let i=0;i${innerContent}`;case 8:return"\x3c!-- ng-container --\x3e";case 4:return"\x3c!-- container --\x3e";default:return`#node(${function getFriendlyStringFromTNodeType(tNodeType){switch(tNodeType){case 4:return"view container";case 2:return"element";case 8:return"ng-container";case 32:return"icu";case 64:return"i18n";case 16:return"projection";case 1:return"text";default:return""}}(tNode.type)})`}}function describeRNode(rNode,innerContent="…"){const node=rNode;switch(node.nodeType){case Node.ELEMENT_NODE:const tag=node.tagName.toLowerCase(),attrs=function stringifyRNodeAttrs(rNode){const results=[];for(let i=0;i${innerContent}`;case Node.TEXT_NODE:const content=node.textContent?shorten(node.textContent):"";return"#text"+(content?`(${content})`:"");case Node.COMMENT_NODE:return`\x3c!-- ${shorten(node.textContent??"")} --\x3e`;default:return`#node(${node.nodeType})`}}function describeExpectedDom(lView,tNode,isViewContainerAnchor){let content="";tNode.prev?(content+=" …\n",content+=" "+describeTNode(tNode.prev)+"\n"):tNode.type&&12&tNode.type&&(content+=" …\n"),isViewContainerAnchor?(content+=" "+describeTNode(tNode)+"\n",content+=` \x3c!-- container --\x3e ${AT_THIS_LOCATION}\n`):content+=" "+describeTNode(tNode)+` ${AT_THIS_LOCATION}\n`,content+=" …\n";const parentRNode=tNode.type?getParentRElement(lView[TVIEW],tNode,lView):null;return parentRNode&&(content=describeRNode(parentRNode,"\n"+content)),content}function describeDomFromNode(node){let content="";const currentNode=node;return currentNode.previousSibling&&(content+=" …\n",content+=" "+describeRNode(currentNode.previousSibling)+"\n"),content+=" "+describeRNode(currentNode)+` ${AT_THIS_LOCATION}\n`,node.nextSibling&&(content+=" …\n"),node.parentNode&&(content=describeRNode(currentNode.parentNode,"\n"+content)),content}function shortRNodeDescription(nodeType,tagName,textContent){switch(nodeType){case Node.ELEMENT_NODE:return`<${tagName.toLowerCase()}>`;case Node.TEXT_NODE:return`a text node${textContent?` (with the "${shorten(textContent)}" content)`:""}`;case Node.COMMENT_NODE:return"a comment node";default:return`#node(nodeType=${nodeType})`}}function getHydrationErrorFooter(componentClassName){return`To fix this problem:\n * check ${componentClassName?`the "${componentClassName}"`:"corresponding"} component for hydration-related issues\n * check to see if your template has valid HTML structure\n * or skip hydration by adding the \`ngSkipHydration\` attribute to its host node in a template\n\n`}function shorten(input,maxLength=50){return input?(input=function stripNewlines(input){return input.replace(/\s+/gm,"")}(input)).length>maxLength?`${input.substring(0,maxLength-1)}…`:input:""}function removeDehydratedViews(lContainer){const views=lContainer[DEHYDRATED_VIEWS]??[],renderer=lContainer[PARENT][RENDERER];for(const view of views)removeDehydratedView(view,renderer),ngDevMode&&ngDevMode.dehydratedViewsRemoved++;lContainer[DEHYDRATED_VIEWS]=EMPTY_ARRAY}function removeDehydratedView(dehydratedView,renderer){let nodesRemoved=0,currentRNode=dehydratedView.firstChild;if(currentRNode){const numNodes=dehydratedView.data[NUM_ROOT_NODES];for(;nodesRemoved0&&result[lastIdx-1]===segment){const value=result[lastIdx]||1;result[lastIdx]=value+1}else result.push(segment,"")}return result.join("")}(fromNodeName,path)}function calcPathForNode(tNode,lView){let parentIndex,parentRNode,referenceNodeName,parentTNode=tNode.parent;for(;null!==parentTNode&&isDisconnectedNode(parentTNode,lView);)parentTNode=parentTNode.parent;null!==parentTNode&&3&parentTNode.type?(parentIndex=parentTNode.index,parentRNode=unwrapRNode(lView[parentIndex]),referenceNodeName=renderStringify(parentIndex-HEADER_OFFSET)):(parentIndex=referenceNodeName=REFERENCE_NODE_HOST,parentRNode=lView[DECLARATION_COMPONENT_VIEW][HOST]);let rNode=unwrapRNode(lView[tNode.index]);if(12&tNode.type){const firstRNode=getFirstNativeNode(lView,tNode);firstRNode&&(rNode=firstRNode)}let path=calcPathBetween(parentRNode,rNode,referenceNodeName);if(null===path&&parentRNode!==rNode){if(path=calcPathBetween(parentRNode.ownerDocument.body,rNode,REFERENCE_NODE_BODY),null===path)throw function nodeNotFoundError(lView,tNode){const expected=`${describeExpectedDom(lView,tNode,!1)}\n\n`,footer=getHydrationErrorFooter();throw new RuntimeError(-502,"During serialization, Angular was unable to find an element in the DOM:\n\n"+expected+footer)}(lView,tNode)}return path}let _findMatchingDehydratedViewImpl=()=>null;function findMatchingDehydratedViewImpl(lContainer,template){const views=lContainer[DEHYDRATED_VIEWS];if(!template||null===views||0===views.length)return null;return views[0].data[TEMPLATE_ID]===template?views.shift():(removeDehydratedViews(lContainer),null)}function findMatchingDehydratedView(lContainer,template){return _findMatchingDehydratedViewImpl(lContainer,template)}class ChangeDetectionScheduler{}class ComponentRef$1{}class ComponentFactory$1{}const ERROR_COMPONENT="ngComponent";class _NullComponentFactoryResolver{resolveComponentFactory(component){throw function noComponentFactoryError(component){const error=Error(`No component factory found for ${stringify(component)}.`);return error[ERROR_COMPONENT]=component,error}(component)}}class ComponentFactoryResolver$1{static{this.NULL=new _NullComponentFactoryResolver}}class RendererFactory2{}class Renderer2{constructor(){this.destroyNode=null}static{this.__NG_ELEMENT_ID__=()=>function injectRenderer2(){const lView=getLView(),nodeAtIndex=getComponentLViewByIndex(getCurrentTNode().index,lView);return(isLView(nodeAtIndex)?nodeAtIndex:lView)[RENDERER]}()}}class Sanitizer{static{this.ɵprov=ɵɵdefineInjectable({token:Sanitizer,providedIn:"root",factory:()=>null})}}const NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR={};function assertNotInReactiveContext(debugFn,extraContext){if(null!==getActiveConsumer())throw new RuntimeError(-602,ngDevMode&&`${debugFn.name}() cannot be called from within a reactive context.${extraContext?` ${extraContext}`:""}`)}const markedFeatures=new Set;function performanceMarkFeature(feature){markedFeatures.has(feature)||(markedFeatures.add(feature),performance?.mark?.("mark_feature_usage",{detail:{feature}}))}function noop(...args){}class AsyncStackTaggingZoneSpec{constructor(namePrefix,consoleAsyncStackTaggingImpl=console){this.name="asyncStackTagging for "+namePrefix,this.createTask=consoleAsyncStackTaggingImpl?.createTask??(()=>null)}onScheduleTask(delegate,_current,target,task){return task.consoleTask=this.createTask(`Zone - ${task.source||task.type}`),delegate.scheduleTask(target,task)}onInvokeTask(delegate,_currentZone,targetZone,task,applyThis,applyArgs){let ret;return ret=task.consoleTask?task.consoleTask.run((()=>delegate.invokeTask(targetZone,task,applyThis,applyArgs))):delegate.invokeTask(targetZone,task,applyThis,applyArgs),ret}}class NgZone{constructor({enableLongStackTrace=!1,shouldCoalesceEventChangeDetection=!1,shouldCoalesceRunChangeDetection=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new EventEmitter(!1),this.onMicrotaskEmpty=new EventEmitter(!1),this.onStable=new EventEmitter(!1),this.onError=new EventEmitter(!1),"undefined"==typeof Zone)throw new RuntimeError(908,ngDevMode&&"In this configuration Angular requires Zone.js");Zone.assertZonePatched();const self=this;self._nesting=0,self._outer=self._inner=Zone.current,ngDevMode&&(self._inner=self._inner.fork(new AsyncStackTaggingZoneSpec("Angular"))),Zone.TaskTrackingZoneSpec&&(self._inner=self._inner.fork(new Zone.TaskTrackingZoneSpec)),enableLongStackTrace&&Zone.longStackTraceZoneSpec&&(self._inner=self._inner.fork(Zone.longStackTraceZoneSpec)),self.shouldCoalesceEventChangeDetection=!shouldCoalesceRunChangeDetection&&shouldCoalesceEventChangeDetection,self.shouldCoalesceRunChangeDetection=shouldCoalesceRunChangeDetection,self.lastRequestAnimationFrameId=-1,self.nativeRequestAnimationFrame=function getNativeRequestAnimationFrame(){const isBrowser="function"==typeof _global.requestAnimationFrame;let nativeRequestAnimationFrame=_global[isBrowser?"requestAnimationFrame":"setTimeout"],nativeCancelAnimationFrame=_global[isBrowser?"cancelAnimationFrame":"clearTimeout"];if("undefined"!=typeof Zone&&nativeRequestAnimationFrame&&nativeCancelAnimationFrame){const unpatchedRequestAnimationFrame=nativeRequestAnimationFrame[Zone.__symbol__("OriginalDelegate")];unpatchedRequestAnimationFrame&&(nativeRequestAnimationFrame=unpatchedRequestAnimationFrame);const unpatchedCancelAnimationFrame=nativeCancelAnimationFrame[Zone.__symbol__("OriginalDelegate")];unpatchedCancelAnimationFrame&&(nativeCancelAnimationFrame=unpatchedCancelAnimationFrame)}return{nativeRequestAnimationFrame,nativeCancelAnimationFrame}}().nativeRequestAnimationFrame,function forkInnerZoneWithAngularBehavior(zone){const delayChangeDetectionForEventsDelegate=()=>{!function delayChangeDetectionForEvents(zone){if(zone.isCheckStableRunning||-1!==zone.lastRequestAnimationFrameId)return;zone.lastRequestAnimationFrameId=zone.nativeRequestAnimationFrame.call(_global,(()=>{zone.fakeTopEventTask||(zone.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",(()=>{zone.lastRequestAnimationFrameId=-1,updateMicroTaskStatus(zone),zone.isCheckStableRunning=!0,checkStable(zone),zone.isCheckStableRunning=!1}),void 0,(()=>{}),(()=>{}))),zone.fakeTopEventTask.invoke()})),updateMicroTaskStatus(zone)}(zone)};zone._inner=zone._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(delegate,current,target,task,applyThis,applyArgs)=>{if(function shouldBeIgnoredByZone(applyArgs){if(!Array.isArray(applyArgs))return!1;if(1!==applyArgs.length)return!1;return!0===applyArgs[0].data?.__ignore_ng_zone__}(applyArgs))return delegate.invokeTask(target,task,applyThis,applyArgs);try{return onEnter(zone),delegate.invokeTask(target,task,applyThis,applyArgs)}finally{(zone.shouldCoalesceEventChangeDetection&&"eventTask"===task.type||zone.shouldCoalesceRunChangeDetection)&&delayChangeDetectionForEventsDelegate(),onLeave(zone)}},onInvoke:(delegate,current,target,callback,applyThis,applyArgs,source)=>{try{return onEnter(zone),delegate.invoke(target,callback,applyThis,applyArgs,source)}finally{zone.shouldCoalesceRunChangeDetection&&delayChangeDetectionForEventsDelegate(),onLeave(zone)}},onHasTask:(delegate,current,target,hasTaskState)=>{delegate.hasTask(target,hasTaskState),current===target&&("microTask"==hasTaskState.change?(zone._hasPendingMicrotasks=hasTaskState.microTask,updateMicroTaskStatus(zone),checkStable(zone)):"macroTask"==hasTaskState.change&&(zone.hasPendingMacrotasks=hasTaskState.macroTask))},onHandleError:(delegate,current,target,error)=>(delegate.handleError(target,error),zone.runOutsideAngular((()=>zone.onError.emit(error))),!1)})}(self)}static isInAngularZone(){return"undefined"!=typeof Zone&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!NgZone.isInAngularZone())throw new RuntimeError(909,ngDevMode&&"Expected to be in Angular Zone, but it is not!")}static assertNotInAngularZone(){if(NgZone.isInAngularZone())throw new RuntimeError(909,ngDevMode&&"Expected to not be in Angular Zone, but it is!")}run(fn,applyThis,applyArgs){return this._inner.run(fn,applyThis,applyArgs)}runTask(fn,applyThis,applyArgs,name){const zone=this._inner,task=zone.scheduleEventTask("NgZoneEvent: "+name,fn,EMPTY_PAYLOAD,noop,noop);try{return zone.runTask(task,applyThis,applyArgs)}finally{zone.cancelTask(task)}}runGuarded(fn,applyThis,applyArgs){return this._inner.runGuarded(fn,applyThis,applyArgs)}runOutsideAngular(fn){return this._outer.run(fn)}}const EMPTY_PAYLOAD={};function checkStable(zone){if(0==zone._nesting&&!zone.hasPendingMicrotasks&&!zone.isStable)try{zone._nesting++,zone.onMicrotaskEmpty.emit(null)}finally{if(zone._nesting--,!zone.hasPendingMicrotasks)try{zone.runOutsideAngular((()=>zone.onStable.emit(null)))}finally{zone.isStable=!0}}}function updateMicroTaskStatus(zone){zone._hasPendingMicrotasks||(zone.shouldCoalesceEventChangeDetection||zone.shouldCoalesceRunChangeDetection)&&-1!==zone.lastRequestAnimationFrameId?zone.hasPendingMicrotasks=!0:zone.hasPendingMicrotasks=!1}function onEnter(zone){zone._nesting++,zone.isStable&&(zone.isStable=!1,zone.onUnstable.emit(null))}function onLeave(zone){zone._nesting--,checkStable(zone)}class NoopNgZone{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new EventEmitter,this.onMicrotaskEmpty=new EventEmitter,this.onStable=new EventEmitter,this.onError=new EventEmitter}run(fn,applyThis,applyArgs){return fn.apply(applyThis,applyArgs)}runGuarded(fn,applyThis,applyArgs){return fn.apply(applyThis,applyArgs)}runOutsideAngular(fn){return fn()}runTask(fn,applyThis,applyArgs,name){return fn.apply(applyThis,applyArgs)}}var AfterRenderPhase;!function(AfterRenderPhase){AfterRenderPhase[AfterRenderPhase.EarlyRead=0]="EarlyRead",AfterRenderPhase[AfterRenderPhase.Write=1]="Write",AfterRenderPhase[AfterRenderPhase.MixedReadWrite=2]="MixedReadWrite",AfterRenderPhase[AfterRenderPhase.Read=3]="Read"}(AfterRenderPhase||(AfterRenderPhase={}));const NOOP_AFTER_RENDER_REF={destroy(){}};function internalAfterNextRender(callback,options){const injector=options?.injector??inject(Injector);if(!options?.runOnServer&&!isPlatformBrowser(injector))return;injector.get(AfterRenderEventManager).internalCallbacks.push(callback)}function afterRender(callback,options){ngDevMode&&assertNotInReactiveContext(afterRender,"Call `afterRender` outside of a reactive context. For example, schedule the render callback inside the component constructor`."),!options&&assertInInjectionContext(afterRender);const injector=options?.injector??inject(Injector);if(!isPlatformBrowser(injector))return NOOP_AFTER_RENDER_REF;performanceMarkFeature("NgAfterRender");const afterRenderEventManager=injector.get(AfterRenderEventManager),callbackHandler=afterRenderEventManager.handler??=new AfterRenderCallbackHandlerImpl,phase=options?.phase??AfterRenderPhase.MixedReadWrite,destroy=()=>{callbackHandler.unregister(instance),unregisterFn()},unregisterFn=injector.get(DestroyRef).onDestroy(destroy),instance=runInInjectionContext(injector,(()=>new AfterRenderCallback(phase,callback)));return callbackHandler.register(instance),{destroy}}function afterNextRender(callback,options){!options&&assertInInjectionContext(afterNextRender);const injector=options?.injector??inject(Injector);if(!isPlatformBrowser(injector))return NOOP_AFTER_RENDER_REF;performanceMarkFeature("NgAfterNextRender");const afterRenderEventManager=injector.get(AfterRenderEventManager),callbackHandler=afterRenderEventManager.handler??=new AfterRenderCallbackHandlerImpl,phase=options?.phase??AfterRenderPhase.MixedReadWrite,destroy=()=>{callbackHandler.unregister(instance),unregisterFn()},unregisterFn=injector.get(DestroyRef).onDestroy(destroy),instance=runInInjectionContext(injector,(()=>new AfterRenderCallback(phase,(()=>{destroy(),callback()}))));return callbackHandler.register(instance),{destroy}}class AfterRenderCallback{constructor(phase,callbackFn){this.phase=phase,this.callbackFn=callbackFn,this.zone=inject(NgZone),this.errorHandler=inject(ErrorHandler,{optional:!0}),inject(ChangeDetectionScheduler,{optional:!0})?.notify(1)}invoke(){try{this.zone.runOutsideAngular(this.callbackFn)}catch(err){this.errorHandler?.handleError(err)}}}class AfterRenderCallbackHandlerImpl{constructor(){this.executingCallbacks=!1,this.buckets={[AfterRenderPhase.EarlyRead]:new Set,[AfterRenderPhase.Write]:new Set,[AfterRenderPhase.MixedReadWrite]:new Set,[AfterRenderPhase.Read]:new Set},this.deferredCallbacks=new Set}register(callback){(this.executingCallbacks?this.deferredCallbacks:this.buckets[callback.phase]).add(callback)}unregister(callback){this.buckets[callback.phase].delete(callback),this.deferredCallbacks.delete(callback)}execute(){this.executingCallbacks=!0;for(const bucket of Object.values(this.buckets))for(const callback of bucket)callback.invoke();this.executingCallbacks=!1;for(const callback of this.deferredCallbacks)this.buckets[callback.phase].add(callback);this.deferredCallbacks.clear()}destroy(){for(const bucket of Object.values(this.buckets))bucket.clear();this.deferredCallbacks.clear()}}class AfterRenderEventManager{constructor(){this.handler=null,this.internalCallbacks=[]}execute(){this.executeInternalCallbacks(),this.handler?.execute()}executeInternalCallbacks(){const callbacks=[...this.internalCallbacks];this.internalCallbacks.length=0;for(const callback of callbacks)callback()}ngOnDestroy(){this.handler?.destroy(),this.handler=null,this.internalCallbacks.length=0}static{this.ɵprov=ɵɵdefineInjectable({token:AfterRenderEventManager,providedIn:"root",factory:()=>new AfterRenderEventManager})}}function isModuleWithProviders(value){return void 0!==value.ngModule}function isNgModule(value){return!!getNgModuleDef(value)}function isPipe(value){return!!getPipeDef$1(value)}function isDirective(value){return!!getDirectiveDef(value)}function isComponent(value){return!!getComponentDef(value)}function verifyStandaloneImport(depType,importingType){if(isForwardRef(depType)&&!(depType=resolveForwardRef(depType)))throw new Error(`Expected forwardRef function, imported from "${stringifyForError(importingType)}", to return a standalone entity or NgModule but got "${stringifyForError(depType)||depType}".`);if(null==getNgModuleDef(depType)){const def=getComponentDef(depType)||getDirectiveDef(depType)||getPipeDef$1(depType);if(null==def)throw isModuleWithProviders(depType)?new Error(`A module with providers was imported from "${stringifyForError(importingType)}". Modules with providers are not supported in standalone components imports.`):new Error(`The "${stringifyForError(depType)}" type, imported from "${stringifyForError(importingType)}", must be a standalone component / directive / pipe or an NgModule. Did you forget to add the required @Component / @Directive / @Pipe or @NgModule annotation?`);if(!def.standalone)throw new Error(`The "${stringifyForError(depType)}" ${function getDependencyTypeForError(type){return getComponentDef(type)?"component":getDirectiveDef(type)?"directive":getPipeDef$1(type)?"pipe":"type"}(depType)}, imported from "${stringifyForError(importingType)}", is not standalone. Did you forget to add the standalone: true flag?`)}}const USE_RUNTIME_DEPS_TRACKER_FOR_JIT=!0;class DepsTracker{constructor(){this.ownerNgModule=new Map,this.ngModulesWithSomeUnresolvedDecls=new Set,this.ngModulesScopeCache=new Map,this.standaloneComponentsScopeCache=new Map}resolveNgModulesDecls(){if(0!==this.ngModulesWithSomeUnresolvedDecls.size){for(const moduleType of this.ngModulesWithSomeUnresolvedDecls){const def=getNgModuleDef(moduleType);if(def?.declarations)for(const decl of maybeUnwrapFn(def.declarations))isComponent(decl)&&this.ownerNgModule.set(decl,moduleType)}this.ngModulesWithSomeUnresolvedDecls.clear()}}getComponentDependencies(type,rawImports){this.resolveNgModulesDecls();const def=getComponentDef(type);if(null===def)throw new Error(`Attempting to get component dependencies for a type that is not a component: ${type}`);if(def.standalone){const scope=this.getStandaloneComponentScope(type,rawImports);return scope.compilation.isPoisoned?{dependencies:[]}:{dependencies:[...scope.compilation.directives,...scope.compilation.pipes,...scope.compilation.ngModules]}}{if(!this.ownerNgModule.has(type))return{dependencies:[]};const scope=this.getNgModuleScope(this.ownerNgModule.get(type));return scope.compilation.isPoisoned?{dependencies:[]}:{dependencies:[...scope.compilation.directives,...scope.compilation.pipes]}}}registerNgModule(type,scopeInfo){if(!isNgModule(type))throw new Error(`Attempting to register a Type which is not NgModule as NgModule: ${type}`);this.ngModulesWithSomeUnresolvedDecls.add(type)}clearScopeCacheFor(type){this.ngModulesScopeCache.delete(type),this.standaloneComponentsScopeCache.delete(type)}getNgModuleScope(type){if(this.ngModulesScopeCache.has(type))return this.ngModulesScopeCache.get(type);const scope=this.computeNgModuleScope(type);return this.ngModulesScopeCache.set(type,scope),scope}computeNgModuleScope(type){const def=getNgModuleDef(type,!0),scope={exported:{directives:new Set,pipes:new Set},compilation:{directives:new Set,pipes:new Set}};for(const imported of maybeUnwrapFn(def.imports))if(isNgModule(imported)){const importedScope=this.getNgModuleScope(imported);addSet(importedScope.exported.directives,scope.compilation.directives),addSet(importedScope.exported.pipes,scope.compilation.pipes)}else{if(!isStandalone(imported)){scope.compilation.isPoisoned=!0;break}if(isDirective(imported)||isComponent(imported))scope.compilation.directives.add(imported);else{if(!isPipe(imported))throw new RuntimeError(1e3,"The standalone imported type is neither a component nor a directive nor a pipe");scope.compilation.pipes.add(imported)}}if(!scope.compilation.isPoisoned)for(const decl of maybeUnwrapFn(def.declarations)){if(isNgModule(decl)||isStandalone(decl)){scope.compilation.isPoisoned=!0;break}isPipe(decl)?scope.compilation.pipes.add(decl):scope.compilation.directives.add(decl)}for(const exported of maybeUnwrapFn(def.exports))if(isNgModule(exported)){const exportedScope=this.getNgModuleScope(exported);addSet(exportedScope.exported.directives,scope.exported.directives),addSet(exportedScope.exported.pipes,scope.exported.pipes),addSet(exportedScope.exported.directives,scope.compilation.directives),addSet(exportedScope.exported.pipes,scope.compilation.pipes)}else isPipe(exported)?scope.exported.pipes.add(exported):scope.exported.directives.add(exported);return scope}getStandaloneComponentScope(type,rawImports){if(this.standaloneComponentsScopeCache.has(type))return this.standaloneComponentsScopeCache.get(type);const ans=this.computeStandaloneComponentScope(type,rawImports);return this.standaloneComponentsScopeCache.set(type,ans),ans}computeStandaloneComponentScope(type,rawImports){const ans={compilation:{directives:new Set([type]),pipes:new Set,ngModules:new Set}};for(const rawImport of flatten(rawImports??[])){const imported=resolveForwardRef(rawImport);try{verifyStandaloneImport(imported,type)}catch(e){return ans.compilation.isPoisoned=!0,ans}if(isNgModule(imported)){ans.compilation.ngModules.add(imported);const importedScope=this.getNgModuleScope(imported);if(importedScope.exported.isPoisoned)return ans.compilation.isPoisoned=!0,ans;addSet(importedScope.exported.directives,ans.compilation.directives),addSet(importedScope.exported.pipes,ans.compilation.pipes)}else if(isPipe(imported))ans.compilation.pipes.add(imported);else{if(!isDirective(imported)&&!isComponent(imported))return ans.compilation.isPoisoned=!0,ans;ans.compilation.directives.add(imported)}}return ans}isOrphanComponent(cmp){const def=getComponentDef(cmp);return!(!def||def.standalone)&&(this.resolveNgModulesDecls(),!this.ownerNgModule.has(cmp))}}function addSet(sourceSet,targetSet){for(const m of sourceSet)targetSet.add(m)}const depsTracker=new DepsTracker;function computeStaticStyling(tNode,attrs,writeToHost){ngDevMode&&assertFirstCreatePass(getTView(),"Expecting to be called in first template pass only");let styles=writeToHost?tNode.styles:null,classes=writeToHost?tNode.classes:null,mode=0;if(null!==attrs)for(let i=0;i0&&writeDirectClass(hostRenderer,hostRNode,classes.join(" "))}}(hostRenderer,rootComponentDef,hostRNode,rootSelectorOrNode),void 0!==projectableNodes&&function projectNodes(tNode,ngContentSelectors,projectableNodes){const projection=tNode.projection=[];for(let i=0;i0;)this.remove(this.length-1)}get(index){const viewRefs=getViewRefs(this._lContainer);return null!==viewRefs&&viewRefs[index]||null}get length(){return this._lContainer.length-CONTAINER_HEADER_OFFSET}createEmbeddedView(templateRef,context,indexOrOptions){let index,injector;"number"==typeof indexOrOptions?index=indexOrOptions:null!=indexOrOptions&&(index=indexOrOptions.index,injector=indexOrOptions.injector);const dehydratedView=findMatchingDehydratedView(this._lContainer,templateRef.ssrId),viewRef=templateRef.createEmbeddedViewImpl(context||{},injector,dehydratedView);return this.insertImpl(viewRef,index,shouldAddViewToDom(this._hostTNode,dehydratedView)),viewRef}createComponent(componentFactoryOrType,indexOrOptions,injector,projectableNodes,environmentInjector){const isComponentFactory=componentFactoryOrType&&!isType(componentFactoryOrType);let index;if(isComponentFactory)ngDevMode&&assertEqual("object"!=typeof indexOrOptions,!0,"It looks like Component factory was provided as the first argument and an options object as the second argument. This combination of arguments is incompatible. You can either change the first argument to provide Component type or change the second argument to be a number (representing an index at which to insert the new component's host view into this container)"),index=indexOrOptions;else{ngDevMode&&(assertDefined(getComponentDef(componentFactoryOrType),"Provided Component class doesn't contain Component definition. Please check whether provided class has @Component decorator."),assertEqual("number"!=typeof indexOrOptions,!0,"It looks like Component type was provided as the first argument and a number (representing an index at which to insert the new component's host view into this container as the second argument. This combination of arguments is incompatible. Please use an object as the second argument instead."));const options=indexOrOptions||{};ngDevMode&&options.environmentInjector&&options.ngModuleRef&&throwError("Cannot pass both environmentInjector and ngModuleRef options to createComponent()."),index=options.index,injector=options.injector,projectableNodes=options.projectableNodes,environmentInjector=options.environmentInjector||options.ngModuleRef}const componentFactory=isComponentFactory?componentFactoryOrType:new ComponentFactory(getComponentDef(componentFactoryOrType)),contextInjector=injector||this.parentInjector;if(!environmentInjector&&null==componentFactory.ngModule){const result=(isComponentFactory?contextInjector:this.parentInjector).get(EnvironmentInjector,null);result&&(environmentInjector=result)}const componentDef=getComponentDef(componentFactory.componentType??{}),dehydratedView=findMatchingDehydratedView(this._lContainer,componentDef?.id??null),rNode=dehydratedView?.firstChild??null,componentRef=componentFactory.create(contextInjector,projectableNodes,rNode,environmentInjector);return this.insertImpl(componentRef.hostView,index,shouldAddViewToDom(this._hostTNode,dehydratedView)),componentRef}insert(viewRef,index){return this.insertImpl(viewRef,index,!0)}insertImpl(viewRef,index,addToDOM){const lView=viewRef._lView;if(ngDevMode&&viewRef.destroyed)throw new Error("Cannot insert a destroyed View in a ViewContainer!");if(function viewAttachedToContainer(view){return isLContainer(view[PARENT])}(lView)){const prevIdx=this.indexOf(viewRef);if(-1!==prevIdx)this.detach(prevIdx);else{const prevLContainer=lView[PARENT];ngDevMode&&assertEqual(isLContainer(prevLContainer),!0,"An attached view should have its PARENT point to a container.");const prevVCRef=new R3ViewContainerRef(prevLContainer,prevLContainer[T_HOST],prevLContainer[PARENT]);prevVCRef.detach(prevVCRef.indexOf(viewRef))}}const adjustedIdx=this._adjustIndex(index),lContainer=this._lContainer;return addLViewToLContainer(lContainer,lView,adjustedIdx,addToDOM),viewRef.attachToViewContainerRef(),addToArray(getOrCreateViewRefs(lContainer),adjustedIdx,viewRef),viewRef}move(viewRef,newIndex){if(ngDevMode&&viewRef.destroyed)throw new Error("Cannot move a destroyed View in a ViewContainer!");return this.insert(viewRef,newIndex)}indexOf(viewRef){const viewRefsArr=getViewRefs(this._lContainer);return null!==viewRefsArr?viewRefsArr.indexOf(viewRef):-1}remove(index){const adjustedIdx=this._adjustIndex(index,-1),detachedView=detachView(this._lContainer,adjustedIdx);detachedView&&(removeFromArray(getOrCreateViewRefs(this._lContainer),adjustedIdx),destroyLView(detachedView[TVIEW],detachedView))}detach(index){const adjustedIdx=this._adjustIndex(index,-1),view=detachView(this._lContainer,adjustedIdx);return view&&null!=removeFromArray(getOrCreateViewRefs(this._lContainer),adjustedIdx)?new ViewRef$1(view):null}_adjustIndex(index,shift=0){return null==index?this.length+shift:(ngDevMode&&(assertGreaterThan(index,-1,`ViewRef index must be positive, got ${index}`),assertLessThan(index,this.length+1+shift,"index")),index)}};function getViewRefs(lContainer){return lContainer[8]}function getOrCreateViewRefs(lContainer){return lContainer[8]||(lContainer[8]=[])}function createContainerRef(hostTNode,hostLView){let lContainer;ngDevMode&&assertTNodeType(hostTNode,15);const slotValue=hostLView[hostTNode.index];return isLContainer(slotValue)?lContainer=slotValue:(lContainer=createLContainer(slotValue,hostLView,null,hostTNode),hostLView[hostTNode.index]=lContainer,addToViewTree(hostLView,lContainer)),_locateOrCreateAnchorNode(lContainer,hostLView,hostTNode,slotValue),new R3ViewContainerRef(lContainer,hostTNode,hostLView)}let _locateOrCreateAnchorNode=createAnchorNode,_populateDehydratedViewsInLContainer=()=>!1;function populateDehydratedViewsInLContainer(lContainer,tNode,hostLView){return _populateDehydratedViewsInLContainer(lContainer,tNode,hostLView)}function createAnchorNode(lContainer,hostLView,hostTNode,slotValue){if(lContainer[NATIVE])return;let commentNode;commentNode=8&hostTNode.type?unwrapRNode(slotValue):function insertAnchorNode(hostLView,hostTNode){const renderer=hostLView[RENDERER];ngDevMode&&ngDevMode.rendererCreateComment++;const commentNode=renderer.createComment(ngDevMode?"container":""),hostNative=getNativeByTNode(hostTNode,hostLView);return nativeInsertBefore(renderer,nativeParentNode(renderer,hostNative),commentNode,function nativeNextSibling(renderer,node){return renderer.nextSibling(node)}(renderer,hostNative),!1),commentNode}(hostLView,hostTNode),lContainer[NATIVE]=commentNode}function populateDehydratedViewsInLContainerImpl(lContainer,tNode,hostLView){if(lContainer[NATIVE]&&lContainer[DEHYDRATED_VIEWS])return!0;const hydrationInfo=hostLView[HYDRATION],noOffsetIndex=tNode.index-HEADER_OFFSET;if(!hydrationInfo||isInSkipHydrationBlock(tNode)||isDisconnectedNode$1(hydrationInfo,noOffsetIndex))return!1;const currentRNode=getSegmentHead(hydrationInfo,noOffsetIndex),serializedViews=hydrationInfo.data[CONTAINERS]?.[noOffsetIndex];ngDevMode&&assertDefined(serializedViews,"Unexpected state: no hydration info available for a given TNode, which represents a view container.");const[commentNode,dehydratedViews]=function locateDehydratedViewsInContainer(currentRNode,serializedViews){const dehydratedViews=[];for(const serializedView of serializedViews)for(let i=0;i<(serializedView[MULTIPLIER]??1);i++){const view={data:serializedView,firstChild:null};serializedView[NUM_ROOT_NODES]>0&&(view.firstChild=currentRNode,currentRNode=siblingAfter(serializedView[NUM_ROOT_NODES],currentRNode)),dehydratedViews.push(view)}return[currentRNode,dehydratedViews]}(currentRNode,serializedViews);return ngDevMode&&(validateMatchingNode(commentNode,Node.COMMENT_NODE,null,hostLView,tNode,!0),markRNodeAsClaimedByHydration(commentNode,!1)),lContainer[NATIVE]=commentNode,lContainer[DEHYDRATED_VIEWS]=dehydratedViews,!0}function locateOrCreateAnchorNode(lContainer,hostLView,hostTNode,slotValue){_populateDehydratedViewsInLContainer(lContainer,hostTNode,hostLView)||createAnchorNode(lContainer,hostLView,hostTNode,slotValue)}class LQuery_{constructor(queryList){this.queryList=queryList,this.matches=null}clone(){return new LQuery_(this.queryList)}setDirty(){this.queryList.setDirty()}}class LQueries_{constructor(queries=[]){this.queries=queries}createEmbeddedView(tView){const tQueries=tView.queries;if(null!==tQueries){const noOfInheritedQueries=null!==tView.contentQueries?tView.contentQueries[0]:tQueries.length,viewLQueries=[];for(let i=0;is.trim()))}(predicate):predicate}}class TQueries_{constructor(queries=[]){this.queries=queries}elementStart(tView,tNode){ngDevMode&&assertFirstCreatePass(tView,"Queries should collect results on the first template pass only");for(let i=0;i0)result.push(lViewResults[i/2]);else{const childQueryIndex=tQueryMatches[i+1],declarationLContainer=lView[-tNodeIdx];ngDevMode&&assertLContainer(declarationLContainer);for(let i=CONTAINER_HEADER_OFFSET;i(producerAccessed(node),node.value);return getter[SIGNAL]=node,getter}(initialValue),node=signalFn[SIGNAL];return options?.equal&&(node.equal=options.equal),signalFn.set=newValue=>signalSetFn(node,newValue),signalFn.update=updateFn=>function signalUpdateFn(node,updater){producerUpdatesAllowed()||throwInvalidWriteToSignalError(),signalSetFn(node,updater(node.value))}(node,updateFn),signalFn.asReadonly=signalAsReadonlyFn.bind(signalFn),ngDevMode&&(signalFn.toString=()=>`[Signal: ${signalFn()}]`),signalFn}function signalAsReadonlyFn(){const node=this[SIGNAL];if(void 0===node.readonlyFn){const readonlyFn=()=>this();readonlyFn[SIGNAL]=node,node.readonlyFn=readonlyFn}return node.readonlyFn}function isWritableSignal(value){return isSignal(value)&&"function"==typeof value.set}function createQuerySignalFn(firstOnly,required){let node;const signalFn=createComputed((()=>{node._dirtyCounter();const value=function refreshSignalQuery(node,firstOnly){const lView=node._lView,queryIndex=node._queryIndex;if(void 0===lView||void 0===queryIndex||4&lView[FLAGS])return firstOnly?void 0:EMPTY_ARRAY;const queryList=loadQueryInternal(lView,queryIndex),results=getQueryResults(lView,queryIndex);if(queryList.reset(results,unwrapElementRef),firstOnly)return queryList.first;return queryList._changesDetected||void 0===node._flatValue?node._flatValue=queryList.toArray():node._flatValue}(node,firstOnly);if(required&&void 0===value)throw new RuntimeError(-951,ngDevMode&&"Child query result is required but no value is available.");return value}));return node=signalFn[SIGNAL],node._dirtyCounter=signal(0),node._flatValue=void 0,ngDevMode&&(signalFn.toString=()=>"[Query Signal]"),signalFn}function createSingleResultOptionalQuerySignalFn(){return createQuerySignalFn(!0,!1)}function createSingleResultRequiredQuerySignalFn(){return createQuerySignalFn(!0,!0)}function createMultiResultQuerySignalFn(){return createQuerySignalFn(!1,!1)}function bindQueryToSignal(target,queryIndex){const node=target[SIGNAL];node._lView=getLView(),node._queryIndex=queryIndex,node._queryList=loadQueryInternal(node._lView,queryIndex),node._queryList.onDirty((()=>node._dirtyCounter.update((v=>v+1))))}function viewChildFn(locator,opts){return ngDevMode&&assertInInjectionContext(viewChild),createSingleResultOptionalQuerySignalFn()}function viewChildRequiredFn(locator,opts){return ngDevMode&&assertInInjectionContext(viewChild),createSingleResultRequiredQuerySignalFn()}const viewChild=(viewChildFn.required=viewChildRequiredFn,viewChildFn);function viewChildren(locator,opts){return ngDevMode&&assertInInjectionContext(viewChildren),createMultiResultQuerySignalFn()}function contentChildFn(locator,opts){return ngDevMode&&assertInInjectionContext(contentChild),createSingleResultOptionalQuerySignalFn()}function contentChildRequiredFn(locator,opts){return ngDevMode&&assertInInjectionContext(contentChildren),createSingleResultRequiredQuerySignalFn()}const contentChild=(contentChildFn.required=contentChildRequiredFn,contentChildFn);function contentChildren(locator,opts){return createMultiResultQuerySignalFn()}function createModelSignal(initialValue){const node=Object.create(INPUT_SIGNAL_NODE),emitterRef=new OutputEmitterRef;function getter(){return producerAccessed(node),assertModelSet(node.value),node.value}return node.value=initialValue,getter[SIGNAL]=node,getter.asReadonly=signalAsReadonlyFn.bind(getter),getter.set=newValue=>{node.equal(node.value,newValue)||(signalSetFn(node,newValue),emitterRef.emit(newValue))},getter.update=updateFn=>{assertModelSet(node.value),getter.set(updateFn(node.value))},getter.subscribe=emitterRef.subscribe.bind(emitterRef),getter.destroyRef=emitterRef.destroyRef,ngDevMode&&(getter.toString=()=>`[Model Signal: ${getter()}]`),getter}function assertModelSet(value){if(value===REQUIRED_UNSET_VALUE)throw new RuntimeError(-952,ngDevMode&&"Model is required but no value is available yet.")}function modelFunction(initialValue){return ngDevMode&&assertInInjectionContext(model),createModelSignal(initialValue)}function modelRequiredFunction(){return ngDevMode&&assertInInjectionContext(model),createModelSignal(REQUIRED_UNSET_VALUE)}const model=(modelFunction.required=modelRequiredFunction,modelFunction);class Query{}const ContentChildren=makePropDecorator("ContentChildren",((selector,opts={})=>({selector,first:!1,isViewQuery:!1,descendants:!1,emitDistinctChangesOnly:true,...opts})),Query),ContentChild=makePropDecorator("ContentChild",((selector,opts={})=>({selector,first:!0,isViewQuery:!1,descendants:!0,...opts})),Query),ViewChildren=makePropDecorator("ViewChildren",((selector,opts={})=>({selector,first:!1,isViewQuery:!0,descendants:!0,emitDistinctChangesOnly:true,...opts})),Query),ViewChild=makePropDecorator("ViewChild",((selector,opts)=>({selector,first:!0,isViewQuery:!0,descendants:!0,...opts})),Query);function resolveComponentResources(resourceResolver){const componentResolved=[],urlMap=new Map;function cachedResourceResolve(url){let promise=urlMap.get(url);if(!promise){const resp=resourceResolver(url);urlMap.set(url,promise=resp.then(unwrapResponse))}return promise}return componentResourceResolutionQueue.forEach(((component,type)=>{const promises=[];component.templateUrl&&promises.push(cachedResourceResolve(component.templateUrl).then((template=>{component.template=template})));const styles="string"==typeof component.styles?[component.styles]:component.styles||[];if(component.styles=styles,component.styleUrl&&component.styleUrls?.length)throw new Error("@Component cannot define both `styleUrl` and `styleUrls`. Use `styleUrl` if the component has one stylesheet, or `styleUrls` if it has multiple");if(component.styleUrls?.length){const styleOffset=component.styles.length,styleUrls=component.styleUrls;component.styleUrls.forEach(((styleUrl,index)=>{styles.push(""),promises.push(cachedResourceResolve(styleUrl).then((style=>{styles[styleOffset+index]=style,styleUrls.splice(styleUrls.indexOf(styleUrl),1),0==styleUrls.length&&(component.styleUrls=void 0)})))}))}else component.styleUrl&&promises.push(cachedResourceResolve(component.styleUrl).then((style=>{styles.push(style),component.styleUrl=void 0})));const fullyResolved=Promise.all(promises).then((()=>function componentDefResolved(type){componentDefPendingResolution.delete(type)}(type)));componentResolved.push(fullyResolved)})),clearResolutionOfComponentResourcesQueue(),Promise.all(componentResolved).then((()=>{}))}let componentResourceResolutionQueue=new Map;const componentDefPendingResolution=new Set;function isComponentDefPendingResolution(type){return componentDefPendingResolution.has(type)}function componentNeedsResolution(component){return!!(component.templateUrl&&!component.hasOwnProperty("template")||component.styleUrls&&component.styleUrls.length||component.styleUrl)}function clearResolutionOfComponentResourcesQueue(){const old=componentResourceResolutionQueue;return componentResourceResolutionQueue=new Map,old}function restoreComponentResolutionQueue(queue){componentDefPendingResolution.clear(),queue.forEach(((_,type)=>componentDefPendingResolution.add(type))),componentResourceResolutionQueue=queue}function unwrapResponse(response){return"string"==typeof response?response:response.text()}const modules=new Map;let checkForDuplicateNgModules=!0;function registerNgModuleType(ngModuleType,id){!function assertSameOrNotExisting(id,type,incoming){if(type&&type!==incoming&&checkForDuplicateNgModules)throw new Error(`Duplicate module registered for ${id} - ${stringify(type)} vs ${stringify(type.name)}`)}(id,modules.get(id)||null,ngModuleType),modules.set(id,ngModuleType)}function getRegisteredNgModuleType(id){return modules.get(id)}function setAllowDuplicateNgModuleIdsForTest(allowDuplicates){checkForDuplicateNgModules=!allowDuplicates}function ɵɵvalidateIframeAttribute(attrValue,tagName,attrName){const lView=getLView(),tNode=getSelectedTNode(),element=getNativeByTNode(tNode,lView);if(2===tNode.type&&"iframe"===tagName.toLowerCase()){const iframe=element;iframe.src="",iframe.srcdoc=trustedHTMLFromString(""),nativeRemoveNode(lView[RENDERER],iframe);const errorMessage=ngDevMode&&`Angular has detected that the \`${attrName}\` was applied as a binding to an