@angular/compiler 17.0.0-rc.0 → 17.0.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/esm2022/src/ml_parser/ast.mjs +3 -2
  2. package/esm2022/src/ml_parser/html_whitespaces.mjs +2 -2
  3. package/esm2022/src/ml_parser/icu_ast_expander.mjs +2 -2
  4. package/esm2022/src/ml_parser/lexer.mjs +2 -13
  5. package/esm2022/src/ml_parser/parser.mjs +3 -3
  6. package/esm2022/src/render3/partial/class_metadata.mjs +1 -1
  7. package/esm2022/src/render3/partial/directive.mjs +1 -1
  8. package/esm2022/src/render3/partial/factory.mjs +1 -1
  9. package/esm2022/src/render3/partial/injectable.mjs +1 -1
  10. package/esm2022/src/render3/partial/injector.mjs +1 -1
  11. package/esm2022/src/render3/partial/ng_module.mjs +1 -1
  12. package/esm2022/src/render3/partial/pipe.mjs +1 -1
  13. package/esm2022/src/render3/r3_ast.mjs +57 -62
  14. package/esm2022/src/render3/r3_control_flow.mjs +18 -14
  15. package/esm2022/src/render3/r3_deferred_blocks.mjs +7 -8
  16. package/esm2022/src/render3/r3_deferred_triggers.mjs +46 -27
  17. package/esm2022/src/render3/r3_template_transform.mjs +2 -2
  18. package/esm2022/src/render3/view/t2_api.mjs +1 -1
  19. package/esm2022/src/render3/view/t2_binder.mjs +22 -10
  20. package/esm2022/src/render3/view/template.mjs +54 -5
  21. package/esm2022/src/template/pipeline/ir/index.mjs +2 -1
  22. package/esm2022/src/template/pipeline/ir/src/enums.mjs +124 -38
  23. package/esm2022/src/template/pipeline/ir/src/expression.mjs +127 -64
  24. package/esm2022/src/template/pipeline/ir/src/handle.mjs +13 -0
  25. package/esm2022/src/template/pipeline/ir/src/ops/create.mjs +71 -50
  26. package/esm2022/src/template/pipeline/ir/src/ops/shared.mjs +3 -2
  27. package/esm2022/src/template/pipeline/ir/src/ops/update.mjs +19 -8
  28. package/esm2022/src/template/pipeline/ir/src/traits.mjs +1 -32
  29. package/esm2022/src/template/pipeline/ir/src/variable.mjs +1 -1
  30. package/esm2022/src/template/pipeline/src/compilation.mjs +6 -1
  31. package/esm2022/src/template/pipeline/src/conversion.mjs +2 -2
  32. package/esm2022/src/template/pipeline/src/emit.mjs +118 -99
  33. package/esm2022/src/template/pipeline/src/ingest.mjs +204 -50
  34. package/esm2022/src/template/pipeline/src/instruction.mjs +57 -12
  35. package/esm2022/src/template/pipeline/src/phases/any_cast.mjs +4 -3
  36. package/esm2022/src/template/pipeline/src/phases/apply_i18n_expressions.mjs +3 -3
  37. package/esm2022/src/template/pipeline/src/phases/assign_i18n_slot_dependencies.mjs +2 -2
  38. package/esm2022/src/template/pipeline/src/phases/attribute_extraction.mjs +4 -4
  39. package/esm2022/src/template/pipeline/src/phases/binding_specialization.mjs +2 -2
  40. package/esm2022/src/template/pipeline/src/phases/chaining.mjs +2 -2
  41. package/esm2022/src/template/pipeline/src/phases/collapse_singleton_interpolations.mjs +31 -0
  42. package/esm2022/src/template/pipeline/src/phases/conditionals.mjs +9 -6
  43. package/esm2022/src/template/pipeline/src/phases/const_collection.mjs +2 -2
  44. package/esm2022/src/template/pipeline/src/phases/defer_configs.mjs +30 -0
  45. package/esm2022/src/template/pipeline/src/phases/defer_resolve_targets.mjs +93 -0
  46. package/esm2022/src/template/pipeline/src/phases/empty_elements.mjs +4 -4
  47. package/esm2022/src/template/pipeline/src/phases/expand_safe_reads.mjs +7 -4
  48. package/esm2022/src/template/pipeline/src/phases/format_i18n_params.mjs +114 -0
  49. package/esm2022/src/template/pipeline/src/phases/generate_advance.mjs +4 -4
  50. package/esm2022/src/template/pipeline/src/phases/generate_projection_def.mjs +2 -2
  51. package/esm2022/src/template/pipeline/src/phases/generate_variables.mjs +13 -6
  52. package/esm2022/src/template/pipeline/src/phases/has_const_expression_collection.mjs +28 -0
  53. package/esm2022/src/template/pipeline/src/phases/host_style_property_parsing.mjs +8 -2
  54. package/esm2022/src/template/pipeline/src/phases/i18n_const_collection.mjs +129 -7
  55. package/esm2022/src/template/pipeline/src/phases/i18n_message_extraction.mjs +4 -105
  56. package/esm2022/src/template/pipeline/src/phases/i18n_text_extraction.mjs +9 -6
  57. package/esm2022/src/template/pipeline/src/phases/icu_extraction.mjs +8 -5
  58. package/esm2022/src/template/pipeline/src/phases/local_refs.mjs +2 -2
  59. package/esm2022/src/template/pipeline/src/phases/namespace.mjs +2 -2
  60. package/esm2022/src/template/pipeline/src/phases/naming.mjs +27 -11
  61. package/esm2022/src/template/pipeline/src/phases/next_context_merging.mjs +2 -2
  62. package/esm2022/src/template/pipeline/src/phases/ng_container.mjs +2 -2
  63. package/esm2022/src/template/pipeline/src/phases/nonbindable.mjs +2 -2
  64. package/esm2022/src/template/pipeline/src/phases/nullish_coalescing.mjs +8 -2
  65. package/esm2022/src/template/pipeline/src/phases/ordering.mjs +46 -32
  66. package/esm2022/src/template/pipeline/src/phases/parse_extracted_styles.mjs +3 -3
  67. package/esm2022/src/template/pipeline/src/phases/phase_remove_content_selectors.mjs +9 -9
  68. package/esm2022/src/template/pipeline/src/phases/pipe_creation.mjs +23 -6
  69. package/esm2022/src/template/pipeline/src/phases/pipe_variadic.mjs +7 -3
  70. package/esm2022/src/template/pipeline/src/phases/propagate_i18n_blocks.mjs +2 -2
  71. package/esm2022/src/template/pipeline/src/phases/propagate_i18n_placeholders.mjs +61 -0
  72. package/esm2022/src/template/pipeline/src/phases/pure_function_extraction.mjs +3 -2
  73. package/esm2022/src/template/pipeline/src/phases/pure_literal_structures.mjs +4 -4
  74. package/esm2022/src/template/pipeline/src/phases/reify.mjs +77 -26
  75. package/esm2022/src/template/pipeline/src/phases/remove_empty_bindings.mjs +5 -2
  76. package/esm2022/src/template/pipeline/src/phases/repeater_derived_vars.mjs +45 -0
  77. package/esm2022/src/template/pipeline/src/phases/resolve_contexts.mjs +7 -3
  78. package/esm2022/src/template/pipeline/src/phases/resolve_dollar_event.mjs +5 -5
  79. package/esm2022/src/template/pipeline/src/phases/resolve_i18n_element_placeholders.mjs +109 -0
  80. package/esm2022/src/template/pipeline/src/phases/resolve_i18n_expression_placeholders.mjs +58 -0
  81. package/esm2022/src/template/pipeline/src/phases/resolve_names.mjs +4 -3
  82. package/esm2022/src/template/pipeline/src/phases/resolve_sanitizers.mjs +5 -5
  83. package/esm2022/src/template/pipeline/src/phases/save_restore_view.mjs +16 -11
  84. package/esm2022/src/template/pipeline/src/phases/slot_allocation.mjs +5 -30
  85. package/esm2022/src/template/pipeline/src/phases/style_binding_specialization.mjs +3 -3
  86. package/esm2022/src/template/pipeline/src/phases/temporary_variables.mjs +3 -3
  87. package/esm2022/src/template/pipeline/src/phases/track_fn_generation.mjs +49 -0
  88. package/esm2022/src/template/pipeline/src/phases/track_fn_optimization.mjs +81 -0
  89. package/esm2022/src/template/pipeline/src/phases/track_variables.mjs +36 -0
  90. package/esm2022/src/template/pipeline/src/phases/var_counting.mjs +37 -4
  91. package/esm2022/src/template/pipeline/src/phases/variable_optimization.mjs +47 -7
  92. package/esm2022/src/template/pipeline/src/phases/wrap_icus.mjs +2 -2
  93. package/esm2022/src/template/pipeline/src/util/elements.mjs +6 -6
  94. package/esm2022/src/version.mjs +1 -1
  95. package/fesm2022/compiler.mjs +2004 -1048
  96. package/fesm2022/compiler.mjs.map +1 -1
  97. package/index.d.ts +45 -60
  98. package/package.json +3 -3
  99. package/esm2022/src/template/pipeline/src/phases/align_pipe_variadic_var_offset.mjs +0 -42
  100. package/esm2022/src/template/pipeline/src/phases/has_const_trait_collection.mjs +0 -34
  101. package/esm2022/src/template/pipeline/src/phases/resolve_i18n_placeholders.mjs +0 -288
@@ -9,14 +9,14 @@ import * as ir from '../../ir';
9
9
  /**
10
10
  * Gets a map of all elements in the given view by their xref id.
11
11
  */
12
- export function getElementsByXrefId(unit) {
13
- const elements = new Map();
12
+ export function createOpXrefMap(unit) {
13
+ const map = new Map();
14
14
  for (const op of unit.create) {
15
- if (!ir.isElementOrContainerOp(op)) {
15
+ if (!ir.hasConsumesSlotTrait(op)) {
16
16
  continue;
17
17
  }
18
- elements.set(op.xref, op);
18
+ map.set(op.xref, op);
19
19
  }
20
- return elements;
20
+ return map;
21
21
  }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci9zcmMvdGVtcGxhdGUvcGlwZWxpbmUvc3JjL3V0aWwvZWxlbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHL0I7O0dBRUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsSUFBcUI7SUFDdkQsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLEVBQXVDLENBQUM7SUFDaEUsS0FBSyxNQUFNLEVBQUUsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1FBQzVCLElBQUksQ0FBQyxFQUFFLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDbEMsU0FBUztTQUNWO1FBQ0QsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0tBQzNCO0lBQ0QsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyBpciBmcm9tICcuLi8uLi9pcic7XG5pbXBvcnQgdHlwZSB7Q29tcGlsYXRpb25Vbml0fSBmcm9tICcuLi9jb21waWxhdGlvbic7XG5cbi8qKlxuICogR2V0cyBhIG1hcCBvZiBhbGwgZWxlbWVudHMgaW4gdGhlIGdpdmVuIHZpZXcgYnkgdGhlaXIgeHJlZiBpZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEVsZW1lbnRzQnlYcmVmSWQodW5pdDogQ29tcGlsYXRpb25Vbml0KSB7XG4gIGNvbnN0IGVsZW1lbnRzID0gbmV3IE1hcDxpci5YcmVmSWQsIGlyLkVsZW1lbnRPckNvbnRhaW5lck9wcz4oKTtcbiAgZm9yIChjb25zdCBvcCBvZiB1bml0LmNyZWF0ZSkge1xuICAgIGlmICghaXIuaXNFbGVtZW50T3JDb250YWluZXJPcChvcCkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBlbGVtZW50cy5zZXQob3AueHJlZiwgb3ApO1xuICB9XG4gIHJldHVybiBlbGVtZW50cztcbn1cbiJdfQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci9zcmMvdGVtcGxhdGUvcGlwZWxpbmUvc3JjL3V0aWwvZWxlbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHL0I7O0dBRUc7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFDLElBQXFCO0lBRW5ELE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxFQUFpRCxDQUFDO0lBQ3JFLEtBQUssTUFBTSxFQUFFLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUM1QixJQUFJLENBQUMsRUFBRSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ2hDLFNBQVM7U0FDVjtRQUNELEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztLQUN0QjtJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyBpciBmcm9tICcuLi8uLi9pcic7XG5pbXBvcnQgdHlwZSB7Q29tcGlsYXRpb25Vbml0fSBmcm9tICcuLi9jb21waWxhdGlvbic7XG5cbi8qKlxuICogR2V0cyBhIG1hcCBvZiBhbGwgZWxlbWVudHMgaW4gdGhlIGdpdmVuIHZpZXcgYnkgdGhlaXIgeHJlZiBpZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU9wWHJlZk1hcCh1bml0OiBDb21waWxhdGlvblVuaXQpOlxuICAgIE1hcDxpci5YcmVmSWQsIGlyLkNvbnN1bWVzU2xvdE9wVHJhaXQmaXIuQ3JlYXRlT3A+IHtcbiAgY29uc3QgbWFwID0gbmV3IE1hcDxpci5YcmVmSWQsIGlyLkNvbnN1bWVzU2xvdE9wVHJhaXQmaXIuQ3JlYXRlT3A+KCk7XG4gIGZvciAoY29uc3Qgb3Agb2YgdW5pdC5jcmVhdGUpIHtcbiAgICBpZiAoIWlyLmhhc0NvbnN1bWVzU2xvdFRyYWl0KG9wKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIG1hcC5zZXQob3AueHJlZiwgb3ApO1xuICB9XG4gIHJldHVybiBtYXA7XG59XG4iXX0=
@@ -11,5 +11,5 @@
11
11
  * Entry point for all public APIs of the compiler package.
12
12
  */
13
13
  import { Version } from './util';
14
- export const VERSION = new Version('17.0.0-rc.0');
14
+ export const VERSION = new Version('17.0.0-rc.2');
15
15
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVIOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBRS9CLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8qKlxuICogQG1vZHVsZVxuICogQGRlc2NyaXB0aW9uXG4gKiBFbnRyeSBwb2ludCBmb3IgYWxsIHB1YmxpYyBBUElzIG9mIHRoZSBjb21waWxlciBwYWNrYWdlLlxuICovXG5cbmltcG9ydCB7VmVyc2lvbn0gZnJvbSAnLi91dGlsJztcblxuZXhwb3J0IGNvbnN0IFZFUlNJT04gPSBuZXcgVmVyc2lvbignMC4wLjAtUExBQ0VIT0xERVInKTtcbiJdfQ==