@angular/core 8.0.3 → 8.1.0-beta.0

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 (206) hide show
  1. package/bundles/core-testing.umd.js +35 -9
  2. package/bundles/core-testing.umd.js.map +1 -1
  3. package/bundles/core-testing.umd.min.js +10 -10
  4. package/bundles/core-testing.umd.min.js.map +1 -1
  5. package/bundles/core.umd.js +11379 -9387
  6. package/bundles/core.umd.js.map +1 -1
  7. package/bundles/core.umd.min.js +205 -135
  8. package/bundles/core.umd.min.js.map +1 -1
  9. package/core.d.ts +1286 -406
  10. package/core.metadata.json +1 -1
  11. package/esm2015/core.js +2 -3
  12. package/esm2015/index.js +2 -2
  13. package/esm2015/public_api.js +2 -2
  14. package/esm2015/src/application_ref.js +7 -1
  15. package/esm2015/src/codegen_private_exports.js +2 -2
  16. package/esm2015/src/compiler/compiler_facade_interface.js +1 -1
  17. package/esm2015/src/core.js +4 -4
  18. package/esm2015/src/core_private_export.js +3 -1
  19. package/esm2015/src/core_render3_private_export.js +5 -3
  20. package/esm2015/src/debug/debug_node.js +4 -4
  21. package/esm2015/src/di/index.js +3 -3
  22. package/esm2015/src/di/injectable.js +1 -1
  23. package/esm2015/src/di/injector.js +24 -96
  24. package/esm2015/src/di/injector_compatibility.js +103 -6
  25. package/esm2015/src/di/interface/defs.js +24 -3
  26. package/esm2015/src/di/interface/provider.js +1 -1
  27. package/esm2015/src/di/r3_injector.js +82 -49
  28. package/esm2015/src/di/reflective_injector.js +3 -2
  29. package/esm2015/src/di.js +1 -1
  30. package/esm2015/src/i18n/locale_data.js +61 -0
  31. package/esm2015/src/i18n/locale_data_api.js +53 -0
  32. package/esm2015/src/i18n/locale_en.js +51 -0
  33. package/esm2015/src/i18n/localization.js +37 -0
  34. package/esm2015/src/linker/ng_module_factory_loader.js +4 -52
  35. package/esm2015/src/linker/ng_module_factory_registration.js +83 -0
  36. package/esm2015/src/metadata/directives.js +2 -2
  37. package/esm2015/src/metadata/ng_module.js +6 -1
  38. package/esm2015/src/metadata/resource_loading.js +2 -2
  39. package/esm2015/src/reflection/reflection_capabilities.js +14 -3
  40. package/esm2015/src/render3/assert.js +3 -2
  41. package/esm2015/src/render3/component.js +11 -5
  42. package/esm2015/src/render3/component_ref.js +4 -2
  43. package/esm2015/src/render3/debug.js +23 -15
  44. package/esm2015/src/render3/definition.js +12 -2
  45. package/esm2015/src/render3/errors.js +29 -1
  46. package/esm2015/src/render3/features/inherit_definition_feature.js +51 -37
  47. package/esm2015/src/render3/fields.js +3 -1
  48. package/esm2015/src/render3/i18n.js +76 -465
  49. package/esm2015/src/render3/index.js +3 -3
  50. package/esm2015/src/render3/instructions/all.js +10 -5
  51. package/esm2015/src/render3/instructions/attribute.js +28 -0
  52. package/esm2015/src/render3/instructions/attribute_interpolation.js +376 -0
  53. package/esm2015/src/render3/instructions/container.js +17 -16
  54. package/esm2015/src/render3/instructions/element.js +57 -35
  55. package/esm2015/src/render3/instructions/element_container.js +9 -8
  56. package/esm2015/src/render3/instructions/embedded_view.js +9 -12
  57. package/esm2015/src/render3/instructions/interpolation.js +375 -0
  58. package/esm2015/src/render3/instructions/listener.js +3 -2
  59. package/esm2015/src/render3/instructions/projection.js +18 -57
  60. package/esm2015/src/render3/instructions/property.js +10 -4
  61. package/esm2015/src/render3/instructions/property_interpolation.js +49 -382
  62. package/esm2015/src/render3/instructions/shared.js +82 -118
  63. package/esm2015/src/render3/instructions/styling.js +189 -236
  64. package/esm2015/src/render3/instructions/text.js +8 -7
  65. package/esm2015/src/render3/instructions/text_interpolation.js +357 -0
  66. package/esm2015/src/render3/interfaces/container.js +9 -5
  67. package/esm2015/src/render3/interfaces/definition.js +12 -6
  68. package/esm2015/src/render3/interfaces/node.js +20 -8
  69. package/esm2015/src/render3/interfaces/projection.js +1 -1
  70. package/esm2015/src/render3/interfaces/styling.js +16 -15
  71. package/esm2015/src/render3/interfaces/view.js +2 -2
  72. package/esm2015/src/render3/jit/directive.js +14 -5
  73. package/esm2015/src/render3/jit/environment.js +30 -15
  74. package/esm2015/src/render3/jit/module.js +38 -19
  75. package/esm2015/src/render3/ng_module_ref.js +39 -3
  76. package/esm2015/src/render3/node_manipulation.js +45 -43
  77. package/esm2015/src/render3/node_selector_matcher.js +40 -14
  78. package/esm2015/src/render3/query.js +77 -61
  79. package/esm2015/src/render3/state.js +33 -6
  80. package/esm2015/src/render3/styling/class_and_style_bindings.js +92 -80
  81. package/esm2015/src/render3/styling/host_instructions_queue.js +8 -5
  82. package/esm2015/src/render3/styling/shared.js +2 -2
  83. package/esm2015/src/render3/styling/util.js +2 -2
  84. package/esm2015/src/render3/styling_next/bindings.js +602 -0
  85. package/esm2015/src/render3/styling_next/instructions.js +366 -0
  86. package/esm2015/src/render3/styling_next/interfaces.js +374 -0
  87. package/esm2015/src/render3/styling_next/map_based_bindings.js +408 -0
  88. package/esm2015/src/render3/styling_next/state.js +51 -0
  89. package/esm2015/src/render3/styling_next/styling_debug.js +291 -0
  90. package/esm2015/src/render3/styling_next/util.js +259 -0
  91. package/esm2015/src/render3/util/attrs_utils.js +4 -3
  92. package/esm2015/src/render3/util/debug_utils.js +18 -0
  93. package/esm2015/src/render3/util/view_traversal_utils.js +2 -2
  94. package/esm2015/src/render3/view_engine_compatibility.js +24 -10
  95. package/esm2015/src/sanitization/sanitization.js +17 -7
  96. package/esm2015/src/sanitization/style_sanitizer.js +11 -1
  97. package/esm2015/src/util/ng_dev_mode.js +7 -3
  98. package/esm2015/src/version.js +1 -1
  99. package/esm2015/src/view/ng_module.js +3 -3
  100. package/esm2015/src/view/util.js +2 -2
  101. package/esm2015/testing/src/r3_test_bed_compiler.js +44 -12
  102. package/esm2015/testing/src/test_bed_common.js +2 -5
  103. package/esm5/core.js +2 -3
  104. package/esm5/src/application_ref.js +6 -1
  105. package/esm5/src/codegen_private_exports.js +2 -2
  106. package/esm5/src/compiler/compiler_facade_interface.js +1 -1
  107. package/esm5/src/core_private_export.js +3 -1
  108. package/esm5/src/core_render3_private_export.js +5 -3
  109. package/esm5/src/debug/debug_node.js +4 -4
  110. package/esm5/src/di/index.js +3 -3
  111. package/esm5/src/di/injectable.js +1 -1
  112. package/esm5/src/di/injector.js +14 -74
  113. package/esm5/src/di/injector_compatibility.js +77 -6
  114. package/esm5/src/di/interface/defs.js +24 -3
  115. package/esm5/src/di/interface/provider.js +1 -1
  116. package/esm5/src/di/r3_injector.js +60 -37
  117. package/esm5/src/di/reflective_injector.js +3 -2
  118. package/esm5/src/i18n/locale_data.js +38 -0
  119. package/esm5/src/i18n/locale_data_api.js +46 -0
  120. package/esm5/src/i18n/locale_en.js +39 -0
  121. package/esm5/src/i18n/localization.js +29 -0
  122. package/esm5/src/linker/ng_module_factory_loader.js +4 -32
  123. package/esm5/src/linker/ng_module_factory_registration.js +50 -0
  124. package/esm5/src/metadata/directives.js +2 -2
  125. package/esm5/src/metadata/ng_module.js +1 -1
  126. package/esm5/src/metadata/resource_loading.js +2 -2
  127. package/esm5/src/reflection/reflection_capabilities.js +14 -3
  128. package/esm5/src/render3/assert.js +2 -1
  129. package/esm5/src/render3/component.js +10 -4
  130. package/esm5/src/render3/component_ref.js +4 -2
  131. package/esm5/src/render3/debug.js +17 -10
  132. package/esm5/src/render3/definition.js +8 -2
  133. package/esm5/src/render3/errors.js +14 -1
  134. package/esm5/src/render3/features/inherit_definition_feature.js +41 -36
  135. package/esm5/src/render3/fields.js +2 -1
  136. package/esm5/src/render3/i18n.js +67 -437
  137. package/esm5/src/render3/index.js +3 -3
  138. package/esm5/src/render3/instructions/all.js +6 -1
  139. package/esm5/src/render3/instructions/attribute.js +22 -0
  140. package/esm5/src/render3/instructions/attribute_interpolation.js +346 -0
  141. package/esm5/src/render3/instructions/container.js +16 -15
  142. package/esm5/src/render3/instructions/element.js +43 -32
  143. package/esm5/src/render3/instructions/element_container.js +9 -8
  144. package/esm5/src/render3/instructions/embedded_view.js +8 -11
  145. package/esm5/src/render3/instructions/interpolation.js +243 -0
  146. package/esm5/src/render3/instructions/listener.js +3 -2
  147. package/esm5/src/render3/instructions/projection.js +19 -54
  148. package/esm5/src/render3/instructions/property.js +10 -4
  149. package/esm5/src/render3/instructions/property_interpolation.js +40 -254
  150. package/esm5/src/render3/instructions/shared.js +70 -105
  151. package/esm5/src/render3/instructions/styling.js +167 -209
  152. package/esm5/src/render3/instructions/text.js +8 -7
  153. package/esm5/src/render3/instructions/text_interpolation.js +264 -0
  154. package/esm5/src/render3/interfaces/container.js +8 -2
  155. package/esm5/src/render3/interfaces/definition.js +1 -1
  156. package/esm5/src/render3/interfaces/node.js +1 -8
  157. package/esm5/src/render3/interfaces/projection.js +1 -1
  158. package/esm5/src/render3/interfaces/styling.js +2 -2
  159. package/esm5/src/render3/interfaces/view.js +1 -1
  160. package/esm5/src/render3/jit/directive.js +12 -5
  161. package/esm5/src/render3/jit/environment.js +30 -15
  162. package/esm5/src/render3/jit/module.js +23 -18
  163. package/esm5/src/render3/ng_module_ref.js +37 -3
  164. package/esm5/src/render3/node_manipulation.js +39 -38
  165. package/esm5/src/render3/node_selector_matcher.js +36 -14
  166. package/esm5/src/render3/query.js +75 -53
  167. package/esm5/src/render3/state.js +29 -5
  168. package/esm5/src/render3/styling/class_and_style_bindings.js +80 -66
  169. package/esm5/src/render3/styling/host_instructions_queue.js +6 -3
  170. package/esm5/src/render3/styling/shared.js +2 -2
  171. package/esm5/src/render3/styling/util.js +2 -2
  172. package/esm5/src/render3/styling_next/bindings.js +446 -0
  173. package/esm5/src/render3/styling_next/instructions.js +277 -0
  174. package/esm5/src/render3/styling_next/interfaces.js +1 -0
  175. package/esm5/src/render3/styling_next/map_based_bindings.js +324 -0
  176. package/esm5/src/render3/styling_next/state.js +23 -0
  177. package/esm5/src/render3/styling_next/styling_debug.js +130 -0
  178. package/esm5/src/render3/styling_next/util.js +147 -0
  179. package/esm5/src/render3/util/attrs_utils.js +4 -3
  180. package/esm5/src/render3/util/debug_utils.js +11 -0
  181. package/esm5/src/render3/util/view_traversal_utils.js +2 -2
  182. package/esm5/src/render3/view_engine_compatibility.js +23 -10
  183. package/esm5/src/sanitization/sanitization.js +14 -6
  184. package/esm5/src/sanitization/style_sanitizer.js +1 -1
  185. package/esm5/src/util/ng_dev_mode.js +7 -3
  186. package/esm5/src/version.js +1 -1
  187. package/esm5/src/view/ng_module.js +3 -3
  188. package/esm5/src/view/util.js +2 -2
  189. package/esm5/testing/src/r3_test_bed_compiler.js +37 -11
  190. package/esm5/testing/src/test_bed_common.js +1 -1
  191. package/fesm2015/core.js +13604 -10868
  192. package/fesm2015/core.js.map +1 -1
  193. package/fesm2015/testing.js +43 -11
  194. package/fesm2015/testing.js.map +1 -1
  195. package/fesm5/core.js +11279 -9305
  196. package/fesm5/core.js.map +1 -1
  197. package/fesm5/testing.js +36 -10
  198. package/fesm5/testing.js.map +1 -1
  199. package/package.json +1 -1
  200. package/schematics/migrations/injectable-pipe/index.js +2 -5
  201. package/schematics/migrations/move-document/index.js +2 -5
  202. package/schematics/migrations/static-queries/index.js +2 -5
  203. package/schematics/migrations/template-var-assignment/index.js +2 -5
  204. package/src/r3_symbols.d.ts +24 -18
  205. package/testing/testing.d.ts +2 -5
  206. package/testing.d.ts +1 -1
package/core.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v8.0.3
2
+ * @license Angular v8.1.0-beta.0
3
3
  * (c) 2010-2019 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -634,7 +634,6 @@ declare const CHILD_TAIL = 15;
634
634
  * For more details, see the ["Dependency Injection Guide"](guide/dependency-injection).
635
635
  *
636
636
  * @usageNotes
637
- *
638
637
  * ### Example
639
638
  *
640
639
  * {@example core/di/ts/provider_spec.ts region='ClassProvider'}
@@ -663,13 +662,17 @@ export declare interface ClassProvider extends ClassSansProvider {
663
662
 
664
663
  /**
665
664
  * Configures the `Injector` to return a value by invoking a `useClass` function.
666
- * Base for `ClassProvider` decorator.
667
665
  *
668
666
  * For more details, see the ["Dependency Injection Guide"](guide/dependency-injection).
669
667
  *
668
+ * @usageNotes
669
+ * ### Example
670
+ *
671
+ * {@example core/di/ts/provider_spec.ts region='ClassSansProvider'}
672
+ *
670
673
  * @publicApi
671
674
  */
672
- export declare interface ClassSansProvider {
675
+ declare interface ClassSansProvider {
673
676
  /**
674
677
  * Class to instantiate for the `token`.
675
678
  */
@@ -1139,7 +1142,6 @@ export declare abstract class ComponentRef<C> {
1139
1142
  */
1140
1143
  declare type ComponentTemplate<T> = {
1141
1144
  <U extends T>(rf: ɵRenderFlags, ctx: T | U): void;
1142
- ngPrivateData?: never;
1143
1145
  };
1144
1146
 
1145
1147
  /**
@@ -1148,7 +1150,6 @@ declare type ComponentTemplate<T> = {
1148
1150
  * For more details, see the ["Dependency Injection Guide"](guide/dependency-injection).
1149
1151
  *
1150
1152
  * @usageNotes
1151
- *
1152
1153
  * ### Example
1153
1154
  *
1154
1155
  * {@example core/di/ts/provider_spec.ts region='ConstructorProvider'}
@@ -1156,8 +1157,6 @@ declare type ComponentTemplate<T> = {
1156
1157
  * ### Multi-value example
1157
1158
  *
1158
1159
  * {@example core/di/ts/provider_spec.ts region='MultiProviderAspect'}
1159
- *
1160
- * @publicApi
1161
1160
  */
1162
1161
  declare interface ConstructorProvider extends ConstructorSansProvider {
1163
1162
  /**
@@ -1177,7 +1176,6 @@ declare interface ConstructorProvider extends ConstructorSansProvider {
1177
1176
  * For more details, see the ["Dependency Injection Guide"](guide/dependency-injection).
1178
1177
  *
1179
1178
  * @usageNotes
1180
- *
1181
1179
  * ### Example
1182
1180
  *
1183
1181
  * ```
@@ -1357,7 +1355,7 @@ declare interface CreateComponentOptions {
1357
1355
  * Typically, the features in this list are features that cannot be added to the
1358
1356
  * other features list in the component definition because they rely on other factors.
1359
1357
  *
1360
- * Example: `RootLifecycleHooks` is a function that adds lifecycle hook capabilities
1358
+ * Example: `LifecycleHooksFeature` is a function that adds lifecycle hook capabilities
1361
1359
  * to root components in a tree-shakable way. It cannot be added to the component
1362
1360
  * features list because there's no way of knowing when the component will be used as
1363
1361
  * a root component.
@@ -1707,25 +1705,18 @@ export declare interface Directive {
1707
1705
  * ### Example
1708
1706
  *
1709
1707
  * ```typescript
1710
- * @Component({
1708
+ * @Directive({
1711
1709
  * selector: 'child-dir',
1712
- * outputs: [ 'bankNameChange' ]
1713
- * template: `<input (input)="bankNameChange.emit($event.target.value)" />`
1710
+ * exportAs: 'child'
1714
1711
  * })
1715
1712
  * class ChildDir {
1716
- * bankNameChange: EventEmitter<string> = new EventEmitter<string>();
1717
1713
  * }
1718
1714
  *
1719
1715
  * @Component({
1720
1716
  * selector: 'main',
1721
- * template: ` {{ bankName }} <child-dir (bankNameChange)="onBankNameChange($event)"></child-dir>`
1717
+ * template: `<child-dir #c="child"></child-dir>`
1722
1718
  * })
1723
1719
  * class MainComponent {
1724
- * bankName: string;
1725
- *
1726
- * onBankNameChange(bankName: string) {
1727
- * this.bankName = bankName;
1728
- * }
1729
1720
  * }
1730
1721
  * ```
1731
1722
  *
@@ -2307,7 +2298,6 @@ export declare class EventEmitter<T> extends Subject<T> {
2307
2298
  * For more details, see the ["Dependency Injection Guide"](guide/dependency-injection).
2308
2299
  *
2309
2300
  * @usageNotes
2310
- *
2311
2301
  * ### Example
2312
2302
  *
2313
2303
  * {@example core/di/ts/provider_spec.ts region='ExistingProvider'}
@@ -2336,12 +2326,9 @@ export declare interface ExistingProvider extends ExistingSansProvider {
2336
2326
  * For more details, see the ["Dependency Injection Guide"](guide/dependency-injection).
2337
2327
  *
2338
2328
  * @usageNotes
2339
- *
2340
2329
  * ### Example
2341
2330
  *
2342
2331
  * {@example core/di/ts/provider_spec.ts region='ExistingSansProvider'}
2343
- *
2344
- * @publicApi
2345
2332
  */
2346
2333
  declare interface ExistingSansProvider {
2347
2334
  /**
@@ -2379,7 +2366,6 @@ declare type FactoryFn<T> = {
2379
2366
  * For more details, see the ["Dependency Injection Guide"](guide/dependency-injection).
2380
2367
  *
2381
2368
  * @usageNotes
2382
- *
2383
2369
  * ### Example
2384
2370
  *
2385
2371
  * {@example core/di/ts/provider_spec.ts region='FactoryProvider'}
@@ -2621,7 +2607,7 @@ declare type HostFeature = (<T>(component: T, componentDef: ɵComponentDef<T>) =
2621
2607
  * the styling is applied).
2622
2608
  *
2623
2609
  * This queue is used when any `hostStyling` instructions are executed from the `hostBindings`
2624
- * function. Template-level styling functions (e.g. `elementStylingMap` and `elementClassProp`)
2610
+ * function. Template-level styling functions (e.g. `styleMap` and `classProp`)
2625
2611
  * do not make use of this queue (they are applied to the styling context immediately).
2626
2612
  *
2627
2613
  * Due to the nature of how components/directives are evaluated, directives (both parent and
@@ -2655,7 +2641,7 @@ declare type HostFeature = (<T>(component: T, componentDef: ɵComponentDef<T>) =
2655
2641
  * inside of `renderStyling`).
2656
2642
  *
2657
2643
  * Right now each directive's hostBindings function, as well the template function, both
2658
- * call `elementStylingApply()` and `hostStylingApply()`. The fact that this is called
2644
+ * call `stylingApply()` and `hostStylingApply()`. The fact that this is called
2659
2645
  * multiple times for the same element (b/c of change detection) causes some issues. To avoid
2660
2646
  * having styling code be rendered on an element multiple times, the `HostInstructionsQueue`
2661
2647
  * reserves a slot for a reference pointing to the very last directive that was registered and
@@ -2673,7 +2659,7 @@ declare interface HostInstructionsQueue extends Array<number | Function | any[]>
2673
2659
  */
2674
2660
  export declare interface HostListener {
2675
2661
  /**
2676
- * The DOM event to listen for.
2662
+ * The CSS event to listen for.
2677
2663
  */
2678
2664
  eventName?: string;
2679
2665
  /**
@@ -2683,7 +2669,7 @@ export declare interface HostListener {
2683
2669
  }
2684
2670
 
2685
2671
  /**
2686
- * Binds a DOM event to a host listener and supplies configuration metadata.
2672
+ * Binds a CSS event to a host listener and supplies configuration metadata.
2687
2673
  * Angular invokes the supplied handler method when the host element emits the specified event,
2688
2674
  * and updates the bound element with the result.
2689
2675
  * If the handler method returns false, applies `preventDefault` on the bound element.
@@ -3168,7 +3154,7 @@ export declare interface InjectableDecorator {
3168
3154
  *
3169
3155
  * The following example shows how service classes are properly marked as
3170
3156
  * injectable.
3171
- *
3157
+ *Z
3172
3158
  * <code-example path="core/di/ts/metadata_spec.ts" region="Injectable"></code-example>
3173
3159
  *
3174
3160
  */
@@ -3820,14 +3806,6 @@ declare interface LContainer extends Array<any> {
3820
3806
  [T_HOST]: TNode;
3821
3807
  /** The comment element that serves as an anchor for this LContainer. */
3822
3808
  readonly [NATIVE]: RComment;
3823
- /**
3824
- *A list of the container's currently active child views. Views will be inserted
3825
- *here as they are added and spliced from here when they are removed. We need
3826
- *to keep a record of current views so we know which views are already in the DOM
3827
- *(and don't need to be re-added) and so we can remove views from the DOM when they
3828
- *are no longer required.
3829
- */
3830
- [VIEWS]: ɵangular_packages_core_core_bm[];
3831
3809
  }
3832
3810
 
3833
3811
  /**
@@ -3921,6 +3899,36 @@ declare interface LQueries {
3921
3899
  track<T>(queryList: QueryList<T>, predicate: Type<any> | string[], descend?: boolean, read?: Type<T>): void;
3922
3900
  }
3923
3901
 
3902
+ /**
3903
+ * Array-based representation of a key/value array.
3904
+ *
3905
+ * The format of the array is "property", "value", "property2",
3906
+ * "value2", etc...
3907
+ *
3908
+ * The first value in the array is reserved to store the instance
3909
+ * of the key/value array that was used to populate the property/
3910
+ * value entries that take place in the remainder of the array.
3911
+ */
3912
+ declare interface LStylingMap extends Array<{} | string | number | null> {
3913
+ [LStylingMapIndex.RawValuePosition]: {} | string | null;
3914
+ }
3915
+
3916
+ /**
3917
+ * An index of position and offset points for any data stored within a `LStylingMap` instance.
3918
+ */
3919
+ declare const enum LStylingMapIndex {
3920
+ /** The location of the raw key/value map instance used last to populate the array entries */
3921
+ RawValuePosition = 0,
3922
+ /** Where the values start in the array */
3923
+ ValuesStartPosition = 1,
3924
+ /** The size of each property/value entry */
3925
+ TupleSize = 2,
3926
+ /** The offset for the property entry in the tuple */
3927
+ PropOffset = 0,
3928
+ /** The offset for the value entry in the tuple */
3929
+ ValueOffset = 1
3930
+ }
3931
+
3924
3932
  /** Flags associated with an LView (saved in LView[FLAGS]) */
3925
3933
  declare const enum LViewFlags {
3926
3934
  /** The state of the init phase on the first 2 bits */
@@ -5169,16 +5177,6 @@ declare interface ProceduralRenderer3 {
5169
5177
  */
5170
5178
  declare type ProcessProvidersFunction = (providers: Provider[]) => Provider[];
5171
5179
 
5172
- /**
5173
- * List of slots for a projection. A slot can be either based on a parsed CSS selector
5174
- * which will be used to determine nodes which are projected into that slot.
5175
- *
5176
- * When set to "*", the slot is reserved and can be used for multi-slot projection
5177
- * using {@link ViewContainerRef#createComponent}. The last slot that specifies the
5178
- * wildcard selector will retrieve all projectable nodes which do not match any selector.
5179
- */
5180
- declare type ProjectionSlots = (ɵCssSelectorList | '*')[];
5181
-
5182
5180
  /**
5183
5181
  * This mapping is necessary so we can set input properties and output listeners
5184
5182
  * properly at runtime when property names are minified or aliased.
@@ -5403,6 +5401,7 @@ declare class R3Injector {
5403
5401
  */
5404
5402
  destroy(): void;
5405
5403
  get<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: any, flags?: InjectFlags): T;
5404
+ toString(): string;
5406
5405
  private assertNotDestroyed;
5407
5406
  /**
5408
5407
  * Add an `InjectorType` or `InjectorDefTypeWithProviders` and all of its transitive providers
@@ -6449,7 +6448,6 @@ export declare interface SkipSelfDecorator {
6449
6448
  * For more details, see the ["Dependency Injection Guide"](guide/dependency-injection).
6450
6449
  *
6451
6450
  * @usageNotes
6452
- *
6453
6451
  * ### Example
6454
6452
  *
6455
6453
  * {@example core/di/ts/provider_spec.ts region='StaticClassProvider'}
@@ -6461,8 +6459,6 @@ export declare interface SkipSelfDecorator {
6461
6459
  * ### Multi-value example
6462
6460
  *
6463
6461
  * {@example core/di/ts/provider_spec.ts region='MultiProviderAspect'}
6464
- *
6465
- * @publicApi
6466
6462
  */
6467
6463
  declare interface StaticClassProvider extends StaticClassSansProvider {
6468
6464
  /**
@@ -6478,7 +6474,13 @@ declare interface StaticClassProvider extends StaticClassSansProvider {
6478
6474
 
6479
6475
  /**
6480
6476
  * Configures the `Injector` to return an instance of `useClass` for a token.
6481
- * Base for `StaticClassProvider` decorator.
6477
+ *
6478
+ * For more details, see the ["Dependency Injection Guide"](guide/dependency-injection).
6479
+ *
6480
+ * @usageNotes
6481
+ * ### Example
6482
+ *
6483
+ * {@example core/di/ts/provider_spec.ts region='StaticClassSansProvider'}
6482
6484
  *
6483
6485
  * @publicApi
6484
6486
  */
@@ -6516,11 +6518,31 @@ export declare type StaticProvider = ValueProvider | ExistingProvider | StaticCl
6516
6518
  * If a value is provided then the sanitized version of that will be returned.
6517
6519
  */
6518
6520
  declare interface StyleSanitizeFn {
6519
- /** This mode is designed to instruct whether the property will be used for sanitization
6520
- * at a later point */
6521
- (prop: string): boolean;
6522
- /** This mode is designed to sanitize the provided value */
6523
- (prop: string, value: string): string;
6521
+ (prop: string, value: string | null, mode?: StyleSanitizeMode): any;
6522
+ }
6523
+
6524
+ /**
6525
+ * A series of flags to instruct a style sanitizer to either validate
6526
+ * or sanitize a value.
6527
+ *
6528
+ * Because sanitization is dependent on the style property (i.e. style
6529
+ * sanitization for `width` is much different than for `background-image`)
6530
+ * the sanitization function (e.g. `StyleSanitizerFn`) needs to check a
6531
+ * property value first before it actually sanitizes any values.
6532
+ *
6533
+ * This enum exist to allow a style sanitization function to either only
6534
+ * do validation (check the property to see whether a value will be
6535
+ * sanitized or not) or to sanitize the value (or both).
6536
+ *
6537
+ * @publicApi
6538
+ */
6539
+ declare const enum StyleSanitizeMode {
6540
+ /** Just check to see if the property is required to be sanitized or not */
6541
+ ValidateProperty = 1,
6542
+ /** Skip checking the property; just sanitize the value */
6543
+ SanitizeOnly = 2,
6544
+ /** Check the property and (if true) then sanitize the value */
6545
+ ValidateAndSanitize = 3
6524
6546
  }
6525
6547
 
6526
6548
  /**
@@ -6562,7 +6584,7 @@ declare interface StyleSanitizeFn {
6562
6584
  * Once the styling context is created then single and multi properties can be stored within it.
6563
6585
  * For this to happen, the following function needs to be called:
6564
6586
  *
6565
- * `elementStyling` (called with style properties, class properties and a sanitizer + a directive
6587
+ * `styling` (called with style properties, class properties and a sanitizer + a directive
6566
6588
  * instance).
6567
6589
  *
6568
6590
  * When this instruction is called it will populate the styling context with the provided style
@@ -6633,8 +6655,8 @@ declare interface StyleSanitizeFn {
6633
6655
  * values are and how they work.
6634
6656
  *
6635
6657
  * Each time a binding property is updated (whether it be through a single
6636
- * property instruction like `elementStyleProp`, `elementClassProp` or
6637
- * `elementStylingMap`) then the values in the context will be updated as
6658
+ * property instruction like `styleProp`, `classProp`,
6659
+ * `styleMap` or `classMap`) then the values in the context will be updated as
6638
6660
  * well.
6639
6661
  *
6640
6662
  * If for example `[style.width]` updates to `555px` then its value will be reflected
@@ -6653,9 +6675,9 @@ declare interface StyleSanitizeFn {
6653
6675
  *
6654
6676
  * Despite the context being updated, nothing has been rendered on screen (not styles or
6655
6677
  * classes have been set on the element). To kick off rendering for an element the following
6656
- * function needs to be run `elementStylingApply`.
6678
+ * function needs to be run `stylingApply`.
6657
6679
  *
6658
- * `elementStylingApply` will run through the context and find each dirty value and render them onto
6680
+ * `stylingApply` will run through the context and find each dirty value and render them onto
6659
6681
  * the element. Once complete, all styles/classes will be set to clean. Because of this, the render
6660
6682
  * function will now know not to rerun itself again if called again unless new style/class values
6661
6683
  * have changed.
@@ -6669,11 +6691,12 @@ declare interface StyleSanitizeFn {
6669
6691
  * Each of the following instructions supports accepting a directive instance as an input parameter:
6670
6692
  *
6671
6693
  * - `elementHostAttrs`
6672
- * - `elementStyling`
6673
- * - `elementStyleProp`
6674
- * - `elementClassProp`
6675
- * - `elementStylingMap`
6676
- * - `elementStylingApply`
6694
+ * - `styling`
6695
+ * - `styleProp`
6696
+ * - `classProp`
6697
+ * - `styleMap`
6698
+ * - `classMap`
6699
+ * - `stylingApply`
6677
6700
  *
6678
6701
  * Each time a directive value is passed in, it will be converted into an index by examining the
6679
6702
  * directive registry (which lives in the context configuration area). The index is then used
@@ -6767,7 +6790,7 @@ declare interface StyleSanitizeFn {
6767
6790
  *
6768
6791
  * ## Rendering
6769
6792
  * The rendering mechanism (when the styling data is applied on screen) occurs via the
6770
- * `elementStylingApply` function and is designed to run after **all** styling functions have been
6793
+ * `stylingApply` function and is designed to run after **all** styling functions have been
6771
6794
  * evaluated. The rendering algorithm will loop over the context and only apply the styles that are
6772
6795
  * flagged as dirty (either because they are new, updated or have been removed via multi or
6773
6796
  * single bindings).
@@ -6799,17 +6822,17 @@ declare interface StylingContext extends Array<{
6799
6822
  [StylingIndex.InitialClassValuesPosition]: InitialStylingValues;
6800
6823
  /**
6801
6824
  * A numeric value representing the class index offset value. Whenever a single class is
6802
- * applied (using `elementClassProp`) it should have an styling index value that doesn't
6825
+ * applied (using `classProp`) it should have an styling index value that doesn't
6803
6826
  * need to take into account any style values that exist in the context.
6804
6827
  */
6805
6828
  [StylingIndex.SinglePropOffsetPositions]: SinglePropOffsetValues;
6806
6829
  /**
6807
- * The last class value that was interpreted by elementStylingMap. This is cached
6830
+ * The last class value that was interpreted by `styleMap`. This is cached
6808
6831
  * So that the algorithm can exit early incase the value has not changed.
6809
6832
  */
6810
6833
  [StylingIndex.CachedMultiClasses]: any | MapBasedOffsetValues;
6811
6834
  /**
6812
- * The last style value that was interpreted by elementStylingMap. This is cached
6835
+ * The last style value that was interpreted by `classMap`. This is cached
6813
6836
  * So that the algorithm can exit early incase the value has not changed.
6814
6837
  */
6815
6838
  [StylingIndex.CachedMultiStyles]: any | MapBasedOffsetValues;
@@ -6817,12 +6840,12 @@ declare interface StylingContext extends Array<{
6817
6840
  * A queue of all hostStyling instructions.
6818
6841
  *
6819
6842
  * This array (queue) is populated only when host-level styling instructions
6820
- * (e.g. `hostStylingMap` and `hostClassProp`) are used to apply style and
6843
+ * (e.g. `hostStyleMap` and `hostClassProp`) are used to apply style and
6821
6844
  * class values via host bindings to the host element. Despite these being
6822
6845
  * standard angular instructions, they are not designed to immediately apply
6823
6846
  * their values to the styling context when executed. What happens instead is
6824
6847
  * a queue is constructed and each instruction is populated into the queue.
6825
- * Then, once the style/class values are set to flush (via `elementStylingApply` or
6848
+ * Then, once the style/class values are set to flush (via `stylingApply` or
6826
6849
  * `hostStylingApply`), the queue is flushed and the values are rendered onto
6827
6850
  * the host element.
6828
6851
  */
@@ -7429,6 +7452,8 @@ declare interface TNode {
7429
7452
  * with functions each time the creation block is called.
7430
7453
  */
7431
7454
  onElementCreationFns: Function[] | null;
7455
+ newStyles: TStylingContext | null;
7456
+ newClasses: TStylingContext | null;
7432
7457
  }
7433
7458
 
7434
7459
  /**
@@ -7632,6 +7657,313 @@ declare interface TrustedUrlString extends TrustedString {
7632
7657
  */
7633
7658
  declare type TsickleIssue1009 = any;
7634
7659
 
7660
+ /**
7661
+ * A series of flags used to configure the config value present within a
7662
+ * `TStylingContext` value.
7663
+ */
7664
+ declare const enum TStylingConfigFlags {
7665
+ /**
7666
+ * The initial state of the styling context config
7667
+ */
7668
+ Initial = 0,
7669
+ /**
7670
+ * A flag which marks the context as being locked.
7671
+ *
7672
+ * The styling context is constructed across an element template
7673
+ * function as well as any associated hostBindings functions. When
7674
+ * this occurs, the context itself is open to mutation and only once
7675
+ * it has been flushed once then it will be locked for good (no extra
7676
+ * bindings can be added to it).
7677
+ */
7678
+ Locked = 1
7679
+ }
7680
+
7681
+ /**
7682
+ * --------
7683
+ *
7684
+ * This file contains the core interfaces for styling in Angular.
7685
+ *
7686
+ * To learn more about the algorithm see `TStylingContext`.
7687
+ *
7688
+ * --------
7689
+ */
7690
+ /**
7691
+ * A static-level representation of all style or class bindings/values
7692
+ * associated with a `TNode`.
7693
+ *
7694
+ * The `TStylingContext` unites all template styling bindings (i.e.
7695
+ * `[class]` and `[style]` bindings) as well as all host-level
7696
+ * styling bindings (for components and directives) together into
7697
+ * a single manifest. It is used each time there are one or more
7698
+ * styling bindings present for an element.
7699
+ *
7700
+ * The styling context is stored on a `TNode` on and there are
7701
+ * two instances of it: one for classes and another for styles.
7702
+ *
7703
+ * ```typescript
7704
+ * tNode.styles = [ ... a context only for styles ... ];
7705
+ * tNode.classes = [ ... a context only for classes ... ];
7706
+ * ```
7707
+ *
7708
+ * Due to the fact the the `TStylingContext` is stored on a `TNode`
7709
+ * this means that all data within the context is static. Instead of
7710
+ * storing actual styling binding values, the lView binding index values
7711
+ * are stored within the context. (static nature means it is more compact.)
7712
+
7713
+ *
7714
+ * ```typescript
7715
+ * // <div [class.active]="c" // lView binding index = 20
7716
+ * // [style.width]="x" // lView binding index = 21
7717
+ * // [style.height]="y"> // lView binding index = 22
7718
+ * tNode.stylesContext = [
7719
+ * 0, // the context config value
7720
+ *
7721
+ * 0b001, // guard mask for width
7722
+ * 2, // total entries for width
7723
+ * 'width', // the property name
7724
+ * 21, // the binding location for the "x" binding in the lView
7725
+ * null,
7726
+ *
7727
+ * 0b010, // guard mask for height
7728
+ * 2, // total entries for height
7729
+ * 'height', // the property name
7730
+ * 22, // the binding location for the "y" binding in the lView
7731
+ * null,
7732
+ * ];
7733
+ *
7734
+ * tNode.classesContext = [
7735
+ * 0, // the context config value
7736
+ *
7737
+ * 0b001, // guard mask for active
7738
+ * 2, // total entries for active
7739
+ * 'active', // the property name
7740
+ * 20, // the binding location for the "c" binding in the lView
7741
+ * null,
7742
+ * ];
7743
+ * ```
7744
+ *
7745
+ * Entry value present in an entry (called a tuple) within the
7746
+ * styling context is as follows:
7747
+ *
7748
+ * ```typescript
7749
+ * context = [
7750
+ * CONFIG, // the styling context config value
7751
+ * //...
7752
+ * guardMask,
7753
+ * totalEntries,
7754
+ * propName,
7755
+ * bindingIndices...,
7756
+ * defaultValue
7757
+ * ];
7758
+ * ```
7759
+ *
7760
+ * Below is a breakdown of each value:
7761
+ *
7762
+ * - **guardMask**:
7763
+ * A numeric value where each bit represents a binding index
7764
+ * location. Each binding index location is assigned based on
7765
+ * a local counter value that increments each time an instruction
7766
+ * is called:
7767
+ *
7768
+ * ```
7769
+ * <div [style.width]="x" // binding index = 21 (counter index = 0)
7770
+ * [style.height]="y"> // binding index = 22 (counter index = 1)
7771
+ * ```
7772
+ *
7773
+ * In the example code above, if the `width` value where to change
7774
+ * then the first bit in the local bit mask value would be flipped
7775
+ * (and the second bit for when `height`).
7776
+ *
7777
+ * If and when there are more than 32 binding sources in the context
7778
+ * (more than 32 `[style/class]` bindings) then the bit masking will
7779
+ * overflow and we are left with a situation where a `-1` value will
7780
+ * represent the bit mask. Due to the way that JavaScript handles
7781
+ * negative values, when the bit mask is `-1` then all bits within
7782
+ * that value will be automatically flipped (this is a quick and
7783
+ * efficient way to flip all bits on the mask when a special kind
7784
+ * of caching scenario occurs or when there are more than 32 bindings).
7785
+ *
7786
+ * - **totalEntries**:
7787
+ * Each property present in the contains various binding sources of
7788
+ * where the styling data could come from. This includes template
7789
+ * level bindings, directive/component host bindings as well as the
7790
+ * default value (or static value) all writing to the same property.
7791
+ * This value depicts how many binding source entries exist for the
7792
+ * property.
7793
+ *
7794
+ * The reason why the totalEntries value is needed is because the
7795
+ * styling context is dynamic in size and it's not possible
7796
+ * for the flushing or update algorithms to know when and where
7797
+ * a property starts and ends without it.
7798
+ *
7799
+ * - **propName**:
7800
+ * The CSS property name or class name (e.g `width` or `active`).
7801
+ *
7802
+ * - **bindingIndices...**:
7803
+ * A series of numeric binding values that reflect where in the
7804
+ * lView to find the style/class values associated with the property.
7805
+ * Each value is in order in terms of priority (templates are first,
7806
+ * then directives and then components). When the context is flushed
7807
+ * and the style/class values are applied to the element (this happens
7808
+ * inside of the `stylingApply` instruction) then the flushing code
7809
+ * will keep checking each binding index against the associated lView
7810
+ * to find the first style/class value that is non-null.
7811
+ *
7812
+ * - **defaultValue**:
7813
+ * This is the default that will always be applied to the element if
7814
+ * and when all other binding sources return a result that is null.
7815
+ * Usually this value is null but it can also be a static value that
7816
+ * is intercepted when the tNode is first constructured (e.g.
7817
+ * `<div style="width:200px">` has a default value of `200px` for
7818
+ * the `width` property).
7819
+ *
7820
+ * Each time a new binding is encountered it is registered into the
7821
+ * context. The context then is continually updated until the first
7822
+ * styling apply call has been called (this is triggered by the
7823
+ * `stylingApply()` instruction for the active element).
7824
+ *
7825
+ * # How Styles/Classes are Rendered
7826
+ * Each time a styling instruction (e.g. `[class.name]`, `[style.prop]`,
7827
+ * etc...) is executed, the associated `lView` for the view is updated
7828
+ * at the current binding location. Also, when this happens, a local
7829
+ * counter value is incremented. If the binding value has changed then
7830
+ * a local `bitMask` variable is updated with the specific bit based
7831
+ * on the counter value.
7832
+ *
7833
+ * Below is a lightweight example of what happens when a single style
7834
+ * property is updated (i.e. `<div [style.prop]="val">`):
7835
+ *
7836
+ * ```typescript
7837
+ * function updateStyleProp(prop: string, value: string) {
7838
+ * const lView = getLView();
7839
+ * const bindingIndex = BINDING_INDEX++;
7840
+ * const indexForStyle = localStylesCounter++;
7841
+ * if (lView[bindingIndex] !== value) {
7842
+ * lView[bindingIndex] = value;
7843
+ * localBitMaskForStyles |= 1 << indexForStyle;
7844
+ * }
7845
+ * }
7846
+ * ```
7847
+ *
7848
+ * ## The Apply Algorithm
7849
+ * As explained above, each time a binding updates its value, the resulting
7850
+ * value is stored in the `lView` array. These styling values have yet to
7851
+ * be flushed to the element.
7852
+ *
7853
+ * Once all the styling instructions have been evaluated, then the styling
7854
+ * context(s) are flushed to the element. When this happens, the context will
7855
+ * be iterated over (property by property) and each binding source will be
7856
+ * examined and the first non-null value will be applied to the element.
7857
+ *
7858
+ * Let's say that we the following template code:
7859
+ *
7860
+ * ```html
7861
+ * <div [style.width]="w1" dir-that-set-width="w2"></div>
7862
+ * ```
7863
+ *
7864
+ * There are two styling bindings in the code above and they both write
7865
+ * to the `width` property. When styling is flushed on the element, the
7866
+ * algorithm will try and figure out which one of these values to write
7867
+ * to the element.
7868
+ *
7869
+ * In order to figure out which value to apply, the following
7870
+ * binding prioritization is adhered to:
7871
+ *
7872
+ * 1. First template-level styling bindings are applied (if present).
7873
+ * This includes things like `[style.width]` and `[class.active]`.
7874
+ *
7875
+ * 2. Second are styling-level host bindings present in directives.
7876
+ * (if there are sub/super directives present then the sub directives
7877
+ * are applied first).
7878
+ *
7879
+ * 3. Third are styling-level host bindings present in components.
7880
+ * (if there are sub/super components present then the sub directives
7881
+ * are applied first).
7882
+ *
7883
+ * This means that in the code above the styling binding present in the
7884
+ * template is applied first and, only if its falsy, then the directive
7885
+ * styling binding for width will be applied.
7886
+ *
7887
+ * ### What about map-based styling bindings?
7888
+ * Map-based styling bindings are activated when there are one or more
7889
+ * `[style]` and/or `[class]` bindings present on an element. When this
7890
+ * code is activated, the apply algorithm will iterate over each map
7891
+ * entry and apply each styling value to the element with the same
7892
+ * prioritization rules as above.
7893
+ *
7894
+ * For the algorithm to apply styling values efficiently, the
7895
+ * styling map entries must be applied in sync (property by property)
7896
+ * with prop-based bindings. (The map-based algorithm is described
7897
+ * more inside of the `render3/styling_next/map_based_bindings.ts` file.)
7898
+ *
7899
+ * ## Sanitization
7900
+ * Sanitization is used to prevent invalid style values from being applied to
7901
+ * the element.
7902
+ *
7903
+ * It is enabled in two cases:
7904
+ *
7905
+ * 1. The `styleSanitizer(sanitizerFn)` instruction was called (just before any other
7906
+ * styling instructions are run).
7907
+ *
7908
+ * 2. The component/directive `LView` instance has a sanitizer object attached to it
7909
+ * (this happens when `renderComponent` is executed with a `sanitizer` value or
7910
+ * if the ngModule contains a sanitizer provider attached to it).
7911
+ *
7912
+ * If and when sanitization is active then all property/value entries will be evaluated
7913
+ * through the active sanitizer before they are applied to the element (or the styling
7914
+ * debug handler).
7915
+ *
7916
+ * If a `Sanitizer` object is used (via the `LView[SANITIZER]` value) then that object
7917
+ * will be used for every property.
7918
+ *
7919
+ * If a `StyleSanitizerFn` function is used (via the `styleSanitizer`) then it will be
7920
+ * called in two ways:
7921
+ *
7922
+ * 1. property validation mode: this will be called early to mark whether a property
7923
+ * should be sanitized or not at during the flushing stage.
7924
+ *
7925
+ * 2. value sanitization mode: this will be called during the flushing stage and will
7926
+ * run the sanitizer function against the value before applying it to the element.
7927
+ *
7928
+ * If sanitization returns an empty value then that empty value will be applied
7929
+ * to the element.
7930
+ */
7931
+ declare interface TStylingContext extends Array<number | string | number | boolean | null | LStylingMap> {
7932
+ /** Configuration data for the context */
7933
+ [TStylingContextIndex.ConfigPosition]: TStylingConfigFlags;
7934
+ /** Temporary value used to track directive index entries until
7935
+ the old styling code is fully removed. The reason why this
7936
+ is required is to figure out which directive is last and,
7937
+ when encountered, trigger a styling flush to happen */
7938
+ [TStylingContextIndex.MaxDirectiveIndexPosition]: number;
7939
+ /** The bit guard value for all map-based bindings on an element */
7940
+ [TStylingContextIndex.MapBindingsBitGuardPosition]: number;
7941
+ /** The total amount of map-based bindings present on an element */
7942
+ [TStylingContextIndex.MapBindingsValuesCountPosition]: number;
7943
+ /** The prop value for map-based bindings (there actually isn't a
7944
+ * value at all, but this is just used in the context to avoid
7945
+ * having any special code to update the binding information for
7946
+ * map-based entries). */
7947
+ [TStylingContextIndex.MapBindingsPropPosition]: string;
7948
+ }
7949
+
7950
+ /**
7951
+ * An index of position and offset values used to natigate the `TStylingContext`.
7952
+ */
7953
+ declare const enum TStylingContextIndex {
7954
+ ConfigPosition = 0,
7955
+ MaxDirectiveIndexPosition = 1,
7956
+ MapBindingsPosition = 2,
7957
+ MapBindingsBitGuardPosition = 2,
7958
+ MapBindingsValuesCountPosition = 3,
7959
+ MapBindingsPropPosition = 4,
7960
+ MapBindingsBindingsStartPosition = 5,
7961
+ ConfigAndGuardOffset = 0,
7962
+ ValuesCountOffset = 1,
7963
+ PropOffset = 2,
7964
+ BindingsStartOffset = 3
7965
+ }
7966
+
7635
7967
  /** Static data for a text node */
7636
7968
  declare interface TTextNode extends TNode {
7637
7969
  /** Index in the data[] array */
@@ -7653,7 +7985,7 @@ declare const TVIEW = 1;
7653
7985
  * The static data for an LView (shared between all templates of a
7654
7986
  * given type).
7655
7987
  *
7656
- * Stored on the template function as ngPrivateData.
7988
+ * Stored on the `ComponentDef.tView`.
7657
7989
  */
7658
7990
  declare interface TView {
7659
7991
  /**
@@ -7929,7 +8261,6 @@ export declare interface TypeDecorator {
7929
8261
  * For more details, see the ["Dependency Injection Guide"](guide/dependency-injection).
7930
8262
  *
7931
8263
  * @usageNotes
7932
- *
7933
8264
  * ### Example
7934
8265
  *
7935
8266
  * {@example core/di/ts/provider_spec.ts region='TypeProvider'}
@@ -7945,7 +8276,6 @@ export declare interface TypeProvider extends Type<any> {
7945
8276
  * For more details, see the ["Dependency Injection Guide"](guide/dependency-injection).
7946
8277
  *
7947
8278
  * @usageNotes
7948
- *
7949
8279
  * ### Example
7950
8280
  *
7951
8281
  * {@example core/di/ts/provider_spec.ts region='ValueProvider'}
@@ -7970,11 +8300,17 @@ export declare interface ValueProvider extends ValueSansProvider {
7970
8300
 
7971
8301
  /**
7972
8302
  * Configures the `Injector` to return a value for a token.
7973
- * Base for `ValueProvider` decorator.
8303
+ *
8304
+ * For more details, see the ["Dependency Injection Guide"](guide/dependency-injection).
8305
+ *
8306
+ * @usageNotes
8307
+ * ### Example
8308
+ *
8309
+ * {@example core/di/ts/provider_spec.ts region='ValueSansProvider'}
7974
8310
  *
7975
8311
  * @publicApi
7976
8312
  */
7977
- export declare interface ValueSansProvider {
8313
+ declare interface ValueSansProvider {
7978
8314
  /**
7979
8315
  * The value to inject.
7980
8316
  */
@@ -8551,8 +8887,6 @@ declare class ViewRef_2<T> implements EmbeddedViewRef<T>, InternalViewRef, viewE
8551
8887
  private _lookUpContext;
8552
8888
  }
8553
8889
 
8554
- declare const VIEWS = 8;
8555
-
8556
8890
  /**
8557
8891
  * Bitmask of states
8558
8892
  */
@@ -8730,13 +9064,13 @@ export declare const ɵALLOW_MULTIPLE_PLATFORMS: InjectionToken<boolean>;
8730
9064
 
8731
9065
  export declare function ɵand(flags: ɵNodeFlags, matchedQueriesDsl: null | [string | number, ɵQueryValueType][], ngContentIndex: null | number, childCount: number, handleEvent?: null | ElementHandleEventFn, templateFactory?: ViewDefinitionFactory): NodeDef;
8732
9066
 
8733
- export declare class ɵangular_packages_core_core_a implements Injector {
8734
- get(token: any, notFoundValue?: any): any;
8735
- }
9067
+ export declare function ɵangular_packages_core_core_a<T>(token: Type<T> | InjectionToken<T>): T;
8736
9068
 
8737
- export declare function ɵangular_packages_core_core_b<T>(token: Type<T> | InjectionToken<T>): T;
9069
+ export declare function ɵangular_packages_core_core_a<T>(token: Type<T> | InjectionToken<T>, flags?: InjectFlags): T | null;
8738
9070
 
8739
- export declare function ɵangular_packages_core_core_b<T>(token: Type<T> | InjectionToken<T>, flags?: InjectFlags): T | null;
9071
+ export declare class ɵangular_packages_core_core_b implements Injector {
9072
+ get(token: any, notFoundValue?: any): any;
9073
+ }
8740
9074
 
8741
9075
  export declare abstract class ɵangular_packages_core_core_ba {
8742
9076
  abstract readonly view: ViewData;
@@ -9321,7 +9655,22 @@ export declare const enum ɵAttributeMarker {
9321
9655
  * ['attr', 'value', AttributeMarker.ProjectAs, ['', 'title', '']]
9322
9656
  * ```
9323
9657
  */
9324
- ProjectAs = 5
9658
+ ProjectAs = 5,
9659
+ /**
9660
+ * Signals that the following attribute will be translated by runtime i18n
9661
+ *
9662
+ * For example, given the following HTML:
9663
+ *
9664
+ * ```
9665
+ * <div moo="car" foo="value" i18n-foo [bar]="binding" i18n-bar>
9666
+ * ```
9667
+ *
9668
+ * the generated code is:
9669
+ *
9670
+ * ```
9671
+ * var _c1 = ['moo', 'car', AttributeMarker.I18n, 'foo', 'bar'];
9672
+ */
9673
+ I18n = 6
9325
9674
  }
9326
9675
 
9327
9676
  export declare const enum ɵBindingFlags {
@@ -9496,8 +9845,11 @@ export declare function ɵcompileNgModule(moduleType: Type<any>, ngModule?: NgMo
9496
9845
 
9497
9846
  /**
9498
9847
  * Compiles and adds the `ngModuleDef` and `ngInjectorDef` properties to the module class.
9848
+ *
9849
+ * It's possible to compile a module via this API which will allow duplicate declarations in its
9850
+ * root.
9499
9851
  */
9500
- export declare function ɵcompileNgModuleDefs(moduleType: ɵNgModuleType, ngModule: NgModule): void;
9852
+ export declare function ɵcompileNgModuleDefs(moduleType: ɵNgModuleType, ngModule: NgModule, allowDuplicateDeclarationsInRoot?: boolean): void;
9501
9853
 
9502
9854
  export declare function ɵcompileNgModuleFactory__POST_R3__<M>(injector: Injector, options: CompilerOptions, moduleType: Type<M>): Promise<NgModuleFactory<M>>;
9503
9855
 
@@ -9595,6 +9947,11 @@ export declare interface ɵComponentDef<T> extends ɵDirectiveDef<T> {
9595
9947
  * The set of schemas that declare elements to be allowed in the component's template.
9596
9948
  */
9597
9949
  schemas: SchemaMetadata[] | null;
9950
+ /**
9951
+ * Ivy runtime uses this place to store the computed tView for the component. This gets filled on
9952
+ * the first run of component.
9953
+ */
9954
+ tView: TView | null;
9598
9955
  /**
9599
9956
  * Used to store the result of `noSideEffects` function so that it is not removed by closure
9600
9957
  * compiler. The property should never be read.
@@ -9642,6 +9999,13 @@ export declare function ɵcrt(values: {
9642
9999
  */
9643
10000
  export declare type ɵCssSelectorList = CssSelector[];
9644
10001
 
10002
+ /**
10003
+ * The locale id that the application is currently using (for translations and ICU expressions).
10004
+ * This is the ivy version of `LOCALE_ID` that was defined as an injection token for the view engine
10005
+ * but is now defined as a global value.
10006
+ */
10007
+ export declare const ɵDEFAULT_LOCALE_ID = "en-US";
10008
+
9645
10009
  export declare const ɵdefaultIterableDiffers: IterableDiffers;
9646
10010
 
9647
10011
  export declare const ɵdefaultKeyValueDiffers: KeyValueDiffers;
@@ -9711,10 +10075,6 @@ export declare interface ɵDirectiveDef<T> extends ɵɵBaseDef<T> {
9711
10075
  * Factory function used to create a new directive instance.
9712
10076
  */
9713
10077
  factory: FactoryFn<T>;
9714
- /**
9715
- * Refreshes host bindings on the associated directive.
9716
- */
9717
- hostBindings: HostBindingsFunction<T> | null;
9718
10078
  onChanges: (() => void) | null;
9719
10079
  onInit: (() => void) | null;
9720
10080
  doCheck: (() => void) | null;
@@ -9757,6 +10117,15 @@ export declare const ɵEMPTY_MAP: {
9757
10117
  [key: string]: any;
9758
10118
  };
9759
10119
 
10120
+ /**
10121
+ * Finds the locale data for a given locale.
10122
+ *
10123
+ * @param locale The locale code.
10124
+ * @returns The locale data.
10125
+ * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n)
10126
+ */
10127
+ export declare function ɵfindLocaleData(locale: string): any;
10128
+
9760
10129
  /**
9761
10130
  * Loops over queued module definitions, if a given module definition has all of its
9762
10131
  * declarations resolved, it dequeues that module definition and sets the scope on
@@ -9794,9 +10163,10 @@ export declare function ɵgetDirectives(target: {}): Array<{}>;
9794
10163
  export declare function ɵgetHostElement<T>(directive: T): Element;
9795
10164
 
9796
10165
  /**
9797
- * Read the `ngInjectableDef` type in a way which is immune to accidentally reading inherited value.
10166
+ * Read the `ngInjectableDef` for `type` in a way which is immune to accidentally reading inherited
10167
+ * value.
9798
10168
  *
9799
- * @param type type which may have `ngInjectableDef`
10169
+ * @param type A type which may have its own (non-inherited) `ngInjectableDef`.
9800
10170
  */
9801
10171
  export declare function ɵgetInjectableDef<T>(type: any): ɵɵInjectableDef<T> | null;
9802
10172
 
@@ -9821,6 +10191,17 @@ export declare function ɵgetInjectableDef<T>(type: any): ɵɵInjectableDef<T> |
9821
10191
  */
9822
10192
  export declare function ɵgetLContext(target: any): ɵLContext | null;
9823
10193
 
10194
+
10195
+ /**
10196
+ * Retrieves the plural function used by ICU expressions to determine the plural case to use
10197
+ * for a given locale.
10198
+ * @param locale A locale code for the locale format rules to use.
10199
+ * @returns The plural function for the locale.
10200
+ * @see `NgPlural`
10201
+ * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n)
10202
+ */
10203
+ export declare function ɵgetLocalePluralCase(locale: string): (value: number) => number;
10204
+
9824
10205
  export declare function ɵgetModuleFactory__POST_R3__(id: string): NgModuleFactory<any>;
9825
10206
 
9826
10207
  /**
@@ -9849,6 +10230,8 @@ export declare function ɵi18nConfigureLocalize(options?: I18nLocalizeOptions):
9849
10230
 
9850
10231
  export declare function ɵinitServicesIfNeeded(): void;
9851
10232
 
10233
+ export declare function ɵINJECTOR_IMPL__POST_R3__(providers: StaticProvider[], parent: Injector | undefined, name: string): Injector;
10234
+
9852
10235
  export declare function ɵinlineInterpolate(valueCount: number, c0: string, a1: any, c1: string, a2?: any, c2?: string, a3?: any, c3?: string, a4?: any, c4?: string, a5?: any, c5?: string, a6?: any, c6?: string, a7?: any, c7?: string, a8?: any, c8?: string, a9?: any, c9?: string): string;
9853
10236
 
9854
10237
  export declare function ɵinterpolate(valueCount: number, constAndInterp: string[]): string;
@@ -9933,6 +10316,39 @@ export declare interface ɵLContext {
9933
10316
  */
9934
10317
  export declare function ɵLifecycleHooksFeature(component: any, def: ɵComponentDef<any>): void;
9935
10318
 
10319
+ /**
10320
+ * This const is used to store the locale data registered with `registerLocaleData`
10321
+ */
10322
+ export declare const ɵLOCALE_DATA: {
10323
+ [localeId: string]: any;
10324
+ };
10325
+
10326
+ /**
10327
+ * Index of each type of locale data from the locale data array
10328
+ */
10329
+ export declare enum ɵLocaleDataIndex {
10330
+ LocaleId = 0,
10331
+ DayPeriodsFormat = 1,
10332
+ DayPeriodsStandalone = 2,
10333
+ DaysFormat = 3,
10334
+ DaysStandalone = 4,
10335
+ MonthsFormat = 5,
10336
+ MonthsStandalone = 6,
10337
+ Eras = 7,
10338
+ FirstDayOfWeek = 8,
10339
+ WeekendRange = 9,
10340
+ DateFormat = 10,
10341
+ TimeFormat = 11,
10342
+ DateTimeFormat = 12,
10343
+ NumberSymbols = 13,
10344
+ NumberFormats = 14,
10345
+ CurrencySymbol = 15,
10346
+ CurrencyName = 16,
10347
+ Currencies = 17,
10348
+ PluralCase = 18,
10349
+ ExtraData = 19
10350
+ }
10351
+
9936
10352
 
9937
10353
  export declare function ɵlooseIdentical(a: any, b: any): boolean;
9938
10354
 
@@ -10025,6 +10441,8 @@ export declare interface ɵNgModuleDef<T> {
10025
10441
  transitiveCompileScopes: ɵNgModuleTransitiveScopes | null;
10026
10442
  /** The set of schemas that declare elements to be allowed in the NgModule. */
10027
10443
  schemas: SchemaMetadata[] | null;
10444
+ /** Unique ID for the module with which it should be registered. */
10445
+ id: string | null;
10028
10446
  }
10029
10447
 
10030
10448
  export declare class ɵNgModuleFactory<T> extends NgModuleFactory<T> {
@@ -10319,7 +10737,7 @@ export declare class ɵReflectionCapabilities implements PlatformReflectionCapab
10319
10737
  */
10320
10738
  export declare function ɵregisterModuleFactory(id: string, factory: NgModuleFactory<any>): void;
10321
10739
 
10322
- export declare function ɵregisterNgModuleType(id: string, ngModuleType: ɵNgModuleType): void;
10740
+ export declare function ɵregisterNgModuleType(ngModuleType: ɵNgModuleType): void;
10323
10741
 
10324
10742
  /**
10325
10743
  * Render3 implementation of {@link viewEngine_ComponentFactory}.
@@ -10479,6 +10897,15 @@ export declare function ɵsetClassMetadata(type: Type<any>, decorators: any[] |
10479
10897
 
10480
10898
  export declare function ɵsetCurrentInjector(injector: Injector | null | undefined): Injector | undefined | null;
10481
10899
 
10900
+ /**
10901
+ * Sets the locale id that will be used for translations and ICU expressions.
10902
+ * This is the ivy version of `LOCALE_ID` that was defined as an injection token for the view engine
10903
+ * but is now defined as a global value.
10904
+ *
10905
+ * @param localeId
10906
+ */
10907
+ export declare function ɵsetLocaleId(localeId: string): void;
10908
+
10482
10909
 
10483
10910
  export declare type ɵSetterFn = (obj: any, value: any) => void;
10484
10911
 
@@ -10587,75 +11014,436 @@ export declare function ɵwhenRendered(component: any): Promise<null>;
10587
11014
  export declare function ɵɵallocHostVars(count: number): void;
10588
11015
 
10589
11016
  /**
10590
- * Runtime information for classes that are inherited by components or directives
10591
- * that aren't defined as components or directives.
11017
+ * Updates the value of or removes a bound attribute on an Element.
10592
11018
  *
10593
- * This is an internal data structure used by the renderer to determine what inputs
10594
- * and outputs should be inherited.
11019
+ * Used in the case of `[attr.title]="value"`
10595
11020
  *
10596
- * See: {@link defineBase}
11021
+ * @param name name The name of the attribute.
11022
+ * @param value value The attribute is removed when value is `null` or `undefined`.
11023
+ * Otherwise the attribute value is set to the stringified value.
11024
+ * @param sanitizer An optional function used to sanitize the value.
11025
+ * @param namespace Optional namespace to use when setting the attribute.
10597
11026
  *
10598
11027
  * @codeGenApi
10599
11028
  */
10600
- export declare interface ɵɵBaseDef<T> {
10601
- /**
10602
- * A dictionary mapping the inputs' minified property names to their public API names, which
10603
- * are their aliases if any, or their original unminified property names
10604
- * (as in `@Input('alias') propertyName: any;`).
10605
- */
10606
- readonly inputs: {
10607
- [P in keyof T]: string;
10608
- };
10609
- /**
10610
- * @deprecated This is only here because `NgOnChanges` incorrectly uses declared name instead of
10611
- * public or minified name.
10612
- */
10613
- readonly declaredInputs: {
10614
- [P in keyof T]: string;
10615
- };
10616
- /**
10617
- * A dictionary mapping the outputs' minified property names to their public API names, which
10618
- * are their aliases if any, or their original unminified property names
10619
- * (as in `@Output('alias') propertyName: any;`).
10620
- */
10621
- readonly outputs: {
10622
- [P in keyof T]: string;
10623
- };
10624
- /**
10625
- * Function to create and refresh content queries associated with a given directive.
10626
- */
10627
- contentQueries: ContentQueriesFunction<T> | null;
10628
- /**
10629
- * Query-related instructions for a directive. Note that while directives don't have a
10630
- * view and as such view queries won't necessarily do anything, there might be
10631
- * components that extend the directive.
10632
- */
10633
- viewQuery: ViewQueriesFunction<T> | null;
10634
- }
11029
+ export declare function ɵɵattribute(name: string, value: any, sanitizer?: SanitizerFn | null, namespace?: string): void;
10635
11030
 
10636
11031
  /**
10637
- * Creates a single value binding.
10638
11032
  *
10639
- * @param value Value to diff
11033
+ * Update an interpolated attribute on an element with single bound value surrounded by text.
11034
+ *
11035
+ * Used when the value passed to a property has 1 interpolated value in it:
11036
+ *
11037
+ * ```html
11038
+ * <div attr.title="prefix{{v0}}suffix"></div>
11039
+ * ```
11040
+ *
11041
+ * Its compiled representation is::
11042
+ *
11043
+ * ```ts
11044
+ * ɵɵattributeInterpolate1('title', 'prefix', v0, 'suffix');
11045
+ * ```
10640
11046
  *
11047
+ * @param attrName The name of the attribute to update
11048
+ * @param prefix Static value used for concatenation only.
11049
+ * @param v0 Value checked for change.
11050
+ * @param suffix Static value used for concatenation only.
11051
+ * @param sanitizer An optional sanitizer function
11052
+ * @returns itself, so that it may be chained.
10641
11053
  * @codeGenApi
10642
11054
  */
10643
- export declare function ɵɵbind<T>(value: T): T | ɵNO_CHANGE;
11055
+ export declare function ɵɵattributeInterpolate1(attrName: string, prefix: string, v0: any, suffix: string, sanitizer?: SanitizerFn, namespace?: string): TsickleIssue1009;
10644
11056
 
10645
11057
  /**
11058
+ *
11059
+ * Update an interpolated attribute on an element with 2 bound values surrounded by text.
11060
+ *
11061
+ * Used when the value passed to a property has 2 interpolated values in it:
11062
+ *
11063
+ * ```html
11064
+ * <div attr.title="prefix{{v0}}-{{v1}}suffix"></div>
11065
+ * ```
11066
+ *
11067
+ * Its compiled representation is::
11068
+ *
11069
+ * ```ts
11070
+ * ɵɵattributeInterpolate2('title', 'prefix', v0, '-', v1, 'suffix');
11071
+ * ```
11072
+ *
11073
+ * @param attrName The name of the attribute to update
11074
+ * @param prefix Static value used for concatenation only.
11075
+ * @param v0 Value checked for change.
11076
+ * @param i0 Static value used for concatenation only.
11077
+ * @param v1 Value checked for change.
11078
+ * @param suffix Static value used for concatenation only.
11079
+ * @param sanitizer An optional sanitizer function
11080
+ * @returns itself, so that it may be chained.
10646
11081
  * @codeGenApi
10647
11082
  */
10648
- export declare type ɵɵComponentDefWithMeta<T, Selector extends String, ExportAs extends string[], InputMap extends {
10649
- [key: string]: string;
10650
- }, OutputMap extends {
10651
- [key: string]: string;
10652
- }, QueryFields extends string[]> = ɵComponentDef<T>;
11083
+ export declare function ɵɵattributeInterpolate2(attrName: string, prefix: string, v0: any, i0: string, v1: any, suffix: string, sanitizer?: SanitizerFn, namespace?: string): TsickleIssue1009;
10653
11084
 
10654
11085
  /**
10655
- * Registers a synthetic host listener (e.g. `(@foo.start)`) on a component.
10656
- *
10657
- * This instruction is for compatibility purposes and is designed to ensure that a
10658
- * synthetic host listener (e.g. `@HostListener('@foo.start')`) properly gets rendered
11086
+ *
11087
+ * Update an interpolated attribute on an element with 3 bound values surrounded by text.
11088
+ *
11089
+ * Used when the value passed to a property has 3 interpolated values in it:
11090
+ *
11091
+ * ```html
11092
+ * <div attr.title="prefix{{v0}}-{{v1}}-{{v2}}suffix"></div>
11093
+ * ```
11094
+ *
11095
+ * Its compiled representation is::
11096
+ *
11097
+ * ```ts
11098
+ * ɵɵattributeInterpolate3(
11099
+ * 'title', 'prefix', v0, '-', v1, '-', v2, 'suffix');
11100
+ * ```
11101
+ *
11102
+ * @param attrName The name of the attribute to update
11103
+ * @param prefix Static value used for concatenation only.
11104
+ * @param v0 Value checked for change.
11105
+ * @param i0 Static value used for concatenation only.
11106
+ * @param v1 Value checked for change.
11107
+ * @param i1 Static value used for concatenation only.
11108
+ * @param v2 Value checked for change.
11109
+ * @param suffix Static value used for concatenation only.
11110
+ * @param sanitizer An optional sanitizer function
11111
+ * @returns itself, so that it may be chained.
11112
+ * @codeGenApi
11113
+ */
11114
+ export declare function ɵɵattributeInterpolate3(attrName: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, suffix: string, sanitizer?: SanitizerFn, namespace?: string): TsickleIssue1009;
11115
+
11116
+ /**
11117
+ *
11118
+ * Update an interpolated attribute on an element with 4 bound values surrounded by text.
11119
+ *
11120
+ * Used when the value passed to a property has 4 interpolated values in it:
11121
+ *
11122
+ * ```html
11123
+ * <div attr.title="prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}suffix"></div>
11124
+ * ```
11125
+ *
11126
+ * Its compiled representation is::
11127
+ *
11128
+ * ```ts
11129
+ * ɵɵattributeInterpolate4(
11130
+ * 'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, 'suffix');
11131
+ * ```
11132
+ *
11133
+ * @param attrName The name of the attribute to update
11134
+ * @param prefix Static value used for concatenation only.
11135
+ * @param v0 Value checked for change.
11136
+ * @param i0 Static value used for concatenation only.
11137
+ * @param v1 Value checked for change.
11138
+ * @param i1 Static value used for concatenation only.
11139
+ * @param v2 Value checked for change.
11140
+ * @param i2 Static value used for concatenation only.
11141
+ * @param v3 Value checked for change.
11142
+ * @param suffix Static value used for concatenation only.
11143
+ * @param sanitizer An optional sanitizer function
11144
+ * @returns itself, so that it may be chained.
11145
+ * @codeGenApi
11146
+ */
11147
+ export declare function ɵɵattributeInterpolate4(attrName: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, suffix: string, sanitizer?: SanitizerFn, namespace?: string): TsickleIssue1009;
11148
+
11149
+ /**
11150
+ *
11151
+ * Update an interpolated attribute on an element with 5 bound values surrounded by text.
11152
+ *
11153
+ * Used when the value passed to a property has 5 interpolated values in it:
11154
+ *
11155
+ * ```html
11156
+ * <div attr.title="prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}suffix"></div>
11157
+ * ```
11158
+ *
11159
+ * Its compiled representation is::
11160
+ *
11161
+ * ```ts
11162
+ * ɵɵattributeInterpolate5(
11163
+ * 'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, 'suffix');
11164
+ * ```
11165
+ *
11166
+ * @param attrName The name of the attribute to update
11167
+ * @param prefix Static value used for concatenation only.
11168
+ * @param v0 Value checked for change.
11169
+ * @param i0 Static value used for concatenation only.
11170
+ * @param v1 Value checked for change.
11171
+ * @param i1 Static value used for concatenation only.
11172
+ * @param v2 Value checked for change.
11173
+ * @param i2 Static value used for concatenation only.
11174
+ * @param v3 Value checked for change.
11175
+ * @param i3 Static value used for concatenation only.
11176
+ * @param v4 Value checked for change.
11177
+ * @param suffix Static value used for concatenation only.
11178
+ * @param sanitizer An optional sanitizer function
11179
+ * @returns itself, so that it may be chained.
11180
+ * @codeGenApi
11181
+ */
11182
+ export declare function ɵɵattributeInterpolate5(attrName: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, suffix: string, sanitizer?: SanitizerFn, namespace?: string): TsickleIssue1009;
11183
+
11184
+ /**
11185
+ *
11186
+ * Update an interpolated attribute on an element with 6 bound values surrounded by text.
11187
+ *
11188
+ * Used when the value passed to a property has 6 interpolated values in it:
11189
+ *
11190
+ * ```html
11191
+ * <div attr.title="prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}suffix"></div>
11192
+ * ```
11193
+ *
11194
+ * Its compiled representation is::
11195
+ *
11196
+ * ```ts
11197
+ * ɵɵattributeInterpolate6(
11198
+ * 'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, 'suffix');
11199
+ * ```
11200
+ *
11201
+ * @param attrName The name of the attribute to update
11202
+ * @param prefix Static value used for concatenation only.
11203
+ * @param v0 Value checked for change.
11204
+ * @param i0 Static value used for concatenation only.
11205
+ * @param v1 Value checked for change.
11206
+ * @param i1 Static value used for concatenation only.
11207
+ * @param v2 Value checked for change.
11208
+ * @param i2 Static value used for concatenation only.
11209
+ * @param v3 Value checked for change.
11210
+ * @param i3 Static value used for concatenation only.
11211
+ * @param v4 Value checked for change.
11212
+ * @param i4 Static value used for concatenation only.
11213
+ * @param v5 Value checked for change.
11214
+ * @param suffix Static value used for concatenation only.
11215
+ * @param sanitizer An optional sanitizer function
11216
+ * @returns itself, so that it may be chained.
11217
+ * @codeGenApi
11218
+ */
11219
+ export declare function ɵɵattributeInterpolate6(attrName: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, suffix: string, sanitizer?: SanitizerFn, namespace?: string): TsickleIssue1009;
11220
+
11221
+ /**
11222
+ *
11223
+ * Update an interpolated attribute on an element with 7 bound values surrounded by text.
11224
+ *
11225
+ * Used when the value passed to a property has 7 interpolated values in it:
11226
+ *
11227
+ * ```html
11228
+ * <div attr.title="prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}suffix"></div>
11229
+ * ```
11230
+ *
11231
+ * Its compiled representation is::
11232
+ *
11233
+ * ```ts
11234
+ * ɵɵattributeInterpolate7(
11235
+ * 'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, 'suffix');
11236
+ * ```
11237
+ *
11238
+ * @param attrName The name of the attribute to update
11239
+ * @param prefix Static value used for concatenation only.
11240
+ * @param v0 Value checked for change.
11241
+ * @param i0 Static value used for concatenation only.
11242
+ * @param v1 Value checked for change.
11243
+ * @param i1 Static value used for concatenation only.
11244
+ * @param v2 Value checked for change.
11245
+ * @param i2 Static value used for concatenation only.
11246
+ * @param v3 Value checked for change.
11247
+ * @param i3 Static value used for concatenation only.
11248
+ * @param v4 Value checked for change.
11249
+ * @param i4 Static value used for concatenation only.
11250
+ * @param v5 Value checked for change.
11251
+ * @param i5 Static value used for concatenation only.
11252
+ * @param v6 Value checked for change.
11253
+ * @param suffix Static value used for concatenation only.
11254
+ * @param sanitizer An optional sanitizer function
11255
+ * @returns itself, so that it may be chained.
11256
+ * @codeGenApi
11257
+ */
11258
+ export declare function ɵɵattributeInterpolate7(attrName: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, i5: string, v6: any, suffix: string, sanitizer?: SanitizerFn, namespace?: string): TsickleIssue1009;
11259
+
11260
+ /**
11261
+ *
11262
+ * Update an interpolated attribute on an element with 8 bound values surrounded by text.
11263
+ *
11264
+ * Used when the value passed to a property has 8 interpolated values in it:
11265
+ *
11266
+ * ```html
11267
+ * <div attr.title="prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}-{{v7}}suffix"></div>
11268
+ * ```
11269
+ *
11270
+ * Its compiled representation is::
11271
+ *
11272
+ * ```ts
11273
+ * ɵɵattributeInterpolate8(
11274
+ * 'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, '-', v7, 'suffix');
11275
+ * ```
11276
+ *
11277
+ * @param attrName The name of the attribute to update
11278
+ * @param prefix Static value used for concatenation only.
11279
+ * @param v0 Value checked for change.
11280
+ * @param i0 Static value used for concatenation only.
11281
+ * @param v1 Value checked for change.
11282
+ * @param i1 Static value used for concatenation only.
11283
+ * @param v2 Value checked for change.
11284
+ * @param i2 Static value used for concatenation only.
11285
+ * @param v3 Value checked for change.
11286
+ * @param i3 Static value used for concatenation only.
11287
+ * @param v4 Value checked for change.
11288
+ * @param i4 Static value used for concatenation only.
11289
+ * @param v5 Value checked for change.
11290
+ * @param i5 Static value used for concatenation only.
11291
+ * @param v6 Value checked for change.
11292
+ * @param i6 Static value used for concatenation only.
11293
+ * @param v7 Value checked for change.
11294
+ * @param suffix Static value used for concatenation only.
11295
+ * @param sanitizer An optional sanitizer function
11296
+ * @returns itself, so that it may be chained.
11297
+ * @codeGenApi
11298
+ */
11299
+ export declare function ɵɵattributeInterpolate8(attrName: string, prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, i5: string, v6: any, i6: string, v7: any, suffix: string, sanitizer?: SanitizerFn, namespace?: string): TsickleIssue1009;
11300
+
11301
+ /**
11302
+ * Update an interpolated attribute on an element with 8 or more bound values surrounded by text.
11303
+ *
11304
+ * Used when the number of interpolated values exceeds 7.
11305
+ *
11306
+ * ```html
11307
+ * <div
11308
+ * title="prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}-{{v7}}-{{v8}}-{{v9}}suffix"></div>
11309
+ * ```
11310
+ *
11311
+ * Its compiled representation is::
11312
+ *
11313
+ * ```ts
11314
+ * ɵɵattributeInterpolateV(
11315
+ * 'title', ['prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, '-', v7, '-', v9,
11316
+ * 'suffix']);
11317
+ * ```
11318
+ *
11319
+ * @param attrName The name of the attribute to update.
11320
+ * @param values The a collection of values and the strings in-between those values, beginning with
11321
+ * a string prefix and ending with a string suffix.
11322
+ * (e.g. `['prefix', value0, '-', value1, '-', value2, ..., value99, 'suffix']`)
11323
+ * @param sanitizer An optional sanitizer function
11324
+ * @returns itself, so that it may be chained.
11325
+ * @codeGenApi
11326
+ */
11327
+ export declare function ɵɵattributeInterpolateV(attrName: string, values: any[], sanitizer?: SanitizerFn, namespace?: string): TsickleIssue1009;
11328
+
11329
+ /**
11330
+ * Runtime information for classes that are inherited by components or directives
11331
+ * that aren't defined as components or directives.
11332
+ *
11333
+ * This is an internal data structure used by the renderer to determine what inputs
11334
+ * and outputs should be inherited.
11335
+ *
11336
+ * See: {@link defineBase}
11337
+ *
11338
+ * @codeGenApi
11339
+ */
11340
+ export declare interface ɵɵBaseDef<T> {
11341
+ /**
11342
+ * A dictionary mapping the inputs' minified property names to their public API names, which
11343
+ * are their aliases if any, or their original unminified property names
11344
+ * (as in `@Input('alias') propertyName: any;`).
11345
+ */
11346
+ readonly inputs: {
11347
+ [P in keyof T]: string;
11348
+ };
11349
+ /**
11350
+ * @deprecated This is only here because `NgOnChanges` incorrectly uses declared name instead of
11351
+ * public or minified name.
11352
+ */
11353
+ readonly declaredInputs: {
11354
+ [P in keyof T]: string;
11355
+ };
11356
+ /**
11357
+ * A dictionary mapping the outputs' minified property names to their public API names, which
11358
+ * are their aliases if any, or their original unminified property names
11359
+ * (as in `@Output('alias') propertyName: any;`).
11360
+ */
11361
+ readonly outputs: {
11362
+ [P in keyof T]: string;
11363
+ };
11364
+ /**
11365
+ * Function to create and refresh content queries associated with a given directive.
11366
+ */
11367
+ contentQueries: ContentQueriesFunction<T> | null;
11368
+ /**
11369
+ * Query-related instructions for a directive. Note that while directives don't have a
11370
+ * view and as such view queries won't necessarily do anything, there might be
11371
+ * components that extend the directive.
11372
+ */
11373
+ viewQuery: ViewQueriesFunction<T> | null;
11374
+ /**
11375
+ * Refreshes host bindings on the associated directive.
11376
+ */
11377
+ hostBindings: HostBindingsFunction<T> | null;
11378
+ }
11379
+
11380
+ /**
11381
+ * Creates a single value binding.
11382
+ *
11383
+ * @param value Value to diff
11384
+ *
11385
+ * @codeGenApi
11386
+ */
11387
+ export declare function ɵɵbind<T>(value: T): T | ɵNO_CHANGE;
11388
+
11389
+ /**
11390
+ * Update class bindings using an object literal or class-string on an element.
11391
+ *
11392
+ * This instruction is meant to apply styling via the `[class]="exp"` template bindings.
11393
+ * When classes are applied to the element they will then be updated with
11394
+ * respect to any styles/classes set via `classProp`. If any
11395
+ * classes are set to falsy then they will be removed from the element.
11396
+ *
11397
+ * Note that the styling instruction will not be applied until `stylingApply` is called.
11398
+ * Note that this will the provided classMap value to the host element if this function is called
11399
+ * within a host binding.
11400
+ *
11401
+ * @param classes A key/value map or string of CSS classes that will be added to the
11402
+ * given element. Any missing classes (that have already been applied to the element
11403
+ * beforehand) will be removed (unset) from the element's list of CSS classes.
11404
+ *
11405
+ * @codeGenApi
11406
+ */
11407
+ export declare function ɵɵclassMap(classes: {
11408
+ [styleName: string]: any;
11409
+ } | ɵNO_CHANGE | string | null): void;
11410
+
11411
+ /**
11412
+ * Update a class binding on an element with the provided value.
11413
+ *
11414
+ * This instruction is meant to handle the `[class.foo]="exp"` case and,
11415
+ * therefore, the class binding itself must already be allocated using
11416
+ * `styling` within the creation block.
11417
+ *
11418
+ * @param classIndex Index of class to toggle. This index value refers to the
11419
+ * index of the class in the class bindings array that was passed into
11420
+ * `styling` (which is meant to be called before this
11421
+ * function is).
11422
+ * @param value A true/false value which will turn the class on or off.
11423
+ * @param forceOverride Whether or not this value will be applied regardless
11424
+ * of where it is being set within the styling priority structure.
11425
+ *
11426
+ * Note that this will apply the provided class value to the host element if this function
11427
+ * is called within a host binding.
11428
+ *
11429
+ * @codeGenApi
11430
+ */
11431
+ export declare function ɵɵclassProp(classIndex: number, value: boolean | ɵPlayerFactory, forceOverride?: boolean): void;
11432
+
11433
+ /**
11434
+ * @codeGenApi
11435
+ */
11436
+ export declare type ɵɵComponentDefWithMeta<T, Selector extends String, ExportAs extends string[], InputMap extends {
11437
+ [key: string]: string;
11438
+ }, OutputMap extends {
11439
+ [key: string]: string;
11440
+ }, QueryFields extends string[]> = ɵComponentDef<T>;
11441
+
11442
+ /**
11443
+ * Registers a synthetic host listener (e.g. `(@foo.start)`) on a component.
11444
+ *
11445
+ * This instruction is for compatibility purposes and is designed to ensure that a
11446
+ * synthetic host listener (e.g. `@HostListener('@foo.start')`) properly gets rendered
10659
11447
  * in the component's renderer. Normally all host listeners are evaluated with the
10660
11448
  * parent component's renderer, but, in the case of animation @triggers, they need
10661
11449
  * to be evaluated with the sub component's renderer (because that's where the
@@ -10837,6 +11625,10 @@ export declare function ɵɵdefineBase<T>(baseDefinition: {
10837
11625
  * set of instructions to be inserted into the template function.
10838
11626
  */
10839
11627
  viewQuery?: ViewQueriesFunction<T> | null;
11628
+ /**
11629
+ * Function executed by the parent template to allow children to apply host bindings.
11630
+ */
11631
+ hostBindings?: HostBindingsFunction<T>;
10840
11632
  }): ɵɵBaseDef<T>;
10841
11633
 
10842
11634
  /**
@@ -11219,6 +12011,8 @@ export declare function ɵɵdefineNgModule<T>(def: {
11219
12011
  exports?: Type<any>[] | (() => Type<any>[]);
11220
12012
  /** The set of schemas that declare elements to be allowed in the NgModule. */
11221
12013
  schemas?: SchemaMetadata[] | null;
12014
+ /** Unique ID for the module that is used with `getModuleFactory`. */
12015
+ id?: string | null;
11222
12016
  }): never;
11223
12017
 
11224
12018
  /**
@@ -11320,9 +12114,9 @@ export declare function ɵɵdisableBindings(): void;
11320
12114
  export declare function ɵɵelement(index: number, name: string, attrs?: TAttributes | null, localRefs?: string[] | null): void;
11321
12115
 
11322
12116
  /**
11323
- * Updates the value of removes an attribute on an Element.
12117
+ * Updates the value or removes an attribute on an Element.
11324
12118
  *
11325
- * @param number index The index of the element in the data array
12119
+ * @param index The index of the element in the data array
11326
12120
  * @param name name The name of the attribute.
11327
12121
  * @param value value The attribute is removed when value is `null` or `undefined`.
11328
12122
  * Otherwise the attribute value is set to the stringified value.
@@ -11333,26 +12127,6 @@ export declare function ɵɵelement(index: number, name: string, attrs?: TAttrib
11333
12127
  */
11334
12128
  export declare function ɵɵelementAttribute(index: number, name: string, value: any, sanitizer?: SanitizerFn | null, namespace?: string): void;
11335
12129
 
11336
- /**
11337
- * Update a class binding on an element with the provided value.
11338
- *
11339
- * This instruction is meant to handle the `[class.foo]="exp"` case and,
11340
- * therefore, the class binding itself must already be allocated using
11341
- * `elementStyling` within the creation block.
11342
- *
11343
- * @param index Index of the element's with which styling is associated.
11344
- * @param classIndex Index of class to toggle. This index value refers to the
11345
- * index of the class in the class bindings array that was passed into
11346
- * `elementStyling` (which is meant to be called before this
11347
- * function is).
11348
- * @param value A true/false value which will turn the class on or off.
11349
- * @param forceOverride Whether or not this value will be applied regardless
11350
- * of where it is being set within the styling priority structure.
11351
- *
11352
- * @codeGenApi
11353
- */
11354
- export declare function ɵɵelementClassProp(index: number, classIndex: number, value: boolean | ɵPlayerFactory, forceOverride?: boolean): void;
11355
-
11356
12130
  /**
11357
12131
  * Mark the end of the <ng-container>.
11358
12132
  *
@@ -11414,253 +12188,52 @@ export declare function ɵɵelementEnd(): void;
11414
12188
  * the entries. The marker values themselves are set via entries found in the
11415
12189
  * [AttributeMarker] enum.
11416
12190
  *
11417
- * NOTE: This instruction is meant to used from `hostBindings` function only.
11418
- *
11419
- * @param directive A directive instance the styling is associated with.
11420
- * @param attrs An array of static values (attributes, classes and styles) with the correct marker
11421
- * values.
11422
- *
11423
- * @codeGenApi
11424
- */
11425
- export declare function ɵɵelementHostAttrs(attrs: TAttributes): void;
11426
-
11427
- /**
11428
- * Update a class host binding for a directive's/component's host element within
11429
- * the host bindings function.
11430
- *
11431
- * This instruction is meant to handle the `@HostBinding('class.foo')` case and,
11432
- * therefore, the class binding itself must already be allocated using
11433
- * `elementHostStyling` within the creation block.
11434
- *
11435
- * @param classIndex Index of class to toggle. This index value refers to the
11436
- * index of the class in the class bindings array that was passed into
11437
- * `elementHostStlying` (which is meant to be called before this
11438
- * function is).
11439
- * @param value A true/false value which will turn the class on or off.
11440
- * @param forceOverride Whether or not this value will be applied regardless
11441
- * of where it is being set within the stylings priority structure.
11442
- *
11443
- * @codeGenApi
11444
- */
11445
- export declare function ɵɵelementHostClassProp(classIndex: number, value: boolean | ɵPlayerFactory, forceOverride?: boolean): void;
11446
-
11447
- /**
11448
- * Update a host style binding value on the host element within a component/directive.
11449
- *
11450
- * If the style value is falsy then it will be removed from the host element
11451
- * (or assigned a different value depending if there are any styles placed
11452
- * on the same element with `elementHostStylingMap` or any static styles that
11453
- * are present from when the element was patched with `elementHostStyling`).
11454
- *
11455
- * Note that the styling applied to the host element once
11456
- * `elementHostStylingApply` is called.
11457
- *
11458
- * @param styleIndex Index of style to update. This index value refers to the
11459
- * index of the style in the style bindings array that was passed into
11460
- * `elementHostStyling`.
11461
- * @param value New value to write (falsy to remove). The value may or may not
11462
- * be applied to the element depending on the template/component/directive
11463
- * prioritization (see `interfaces/styling.ts`)
11464
- * @param suffix Optional suffix. Used with scalar values to add unit such as `px`.
11465
- * Note that when a suffix is provided then the underlying sanitizer will
11466
- * be ignored.
11467
- * @param forceOverride Whether or not to update the styling value immediately
11468
- * (despite the other bindings possibly having priority)
11469
- *
11470
- * @codeGenApi
11471
- */
11472
- export declare function ɵɵelementHostStyleProp(styleIndex: number, value: string | number | String | ɵPlayerFactory | null, suffix?: string | null, forceOverride?: boolean): void;
11473
-
11474
- /**
11475
- * Allocates style and class binding properties on the host element during creation mode
11476
- * within the host bindings function of a directive or component.
11477
- *
11478
- * This instruction is meant to be called during creation mode to register all
11479
- * dynamic style and class host bindings on the host element of a directive or
11480
- * component. Note that this is only used for binding values (see `elementHostAttrs`
11481
- * to learn how to assign static styling values to the host element).
11482
- *
11483
- * @param classBindingNames An array containing bindable class names.
11484
- * The `elementHostClassProp` instruction refers to the class name by index in
11485
- * this array (i.e. `['foo', 'bar']` means `foo=0` and `bar=1`).
11486
- * @param styleBindingNames An array containing bindable style properties.
11487
- * The `elementHostStyleProp` instruction refers to the class name by index in
11488
- * this array (i.e. `['width', 'height']` means `width=0` and `height=1`).
11489
- * @param styleSanitizer An optional sanitizer function that will be used to sanitize any CSS
11490
- * style values that are applied to the element (during rendering).
11491
- * Note that the sanitizer instance itself is tied to the provided `directive` and
11492
- * will not be used if the same property is assigned in another directive or
11493
- * on the element directly.
11494
- *
11495
- * @codeGenApi
11496
- */
11497
- export declare function ɵɵelementHostStyling(classBindingNames?: string[] | null, styleBindingNames?: string[] | null, styleSanitizer?: StyleSanitizeFn | null): void;
11498
-
11499
- /**
11500
- * Apply all style and class host binding values to the element.
11501
- *
11502
- * This instruction is meant to be run after `elementHostStylingMap`,
11503
- * `elementHostStyleProp` or `elementHostClassProp` instructions have
11504
- * been run and will only apply styling to the host element if any
11505
- * styling bindings have been updated.
11506
- *
11507
- * @codeGenApi
11508
- */
11509
- export declare function ɵɵelementHostStylingApply(): void;
11510
-
11511
- /**
11512
- * Update style and/or class host bindings using object literals on an element within the host
11513
- * bindings function for a directive/component.
11514
- *
11515
- * This instruction is meant to apply styling via the `@HostBinding('style')` and
11516
- * `@HostBinding('class')` bindings for a component's or directive's host element.
11517
- * When styles/classes are applied to the host element they will then be updated
11518
- * with respect to any styles/classes set with `elementHostStyleProp` or
11519
- * `elementHostClassProp`. If any styles or classes are set to falsy then they
11520
- * will be removed from the element.
11521
- *
11522
- * Note that the styling instruction will not be applied until
11523
- * `elementHostStylingApply` is called.
11524
- *
11525
- * @param classes A key/value map or string of CSS classes that will be added to the
11526
- * given element. Any missing classes (that have already been applied to the element
11527
- * beforehand) will be removed (unset) from the element's list of CSS classes.
11528
- * @param styles A key/value style map of the styles that will be applied to the given element.
11529
- * Any missing styles (that have already been applied to the element beforehand) will be
11530
- * removed (unset) from the element's styling.
11531
- *
11532
- * @codeGenApi
11533
- */
11534
- export declare function ɵɵelementHostStylingMap(classes: {
11535
- [key: string]: any;
11536
- } | string | ɵNO_CHANGE | null, styles?: {
11537
- [styleName: string]: any;
11538
- } | ɵNO_CHANGE | null): void;
11539
-
11540
- /**
11541
- * **TODO: Remove this function after `property` is in use**
11542
- * Update a property on an element.
11543
- *
11544
- * If the property name also exists as an input property on one of the element's directives,
11545
- * the component property will be set instead of the element property. This check must
11546
- * be conducted at runtime so child components that add new @Inputs don't have to be re-compiled.
11547
- *
11548
- * @param index The index of the element to update in the data array
11549
- * @param propName Name of property. Because it is going to DOM, this is not subject to
11550
- * renaming as part of minification.
11551
- * @param value New value to write.
11552
- * @param sanitizer An optional function used to sanitize the value.
11553
- * @param nativeOnly Whether or not we should only set native properties and skip input check
11554
- * (this is necessary for host property bindings)
11555
- *
11556
- * @codeGenApi
11557
- */
11558
- export declare function ɵɵelementProperty<T>(index: number, propName: string, value: T | ɵNO_CHANGE, sanitizer?: SanitizerFn | null, nativeOnly?: boolean): void;
11559
-
11560
- /**
11561
- * Create DOM element. The instruction must later be followed by `elementEnd()` call.
11562
- *
11563
- * @param index Index of the element in the LView array
11564
- * @param name Name of the DOM Node
11565
- * @param attrs Statically bound set of attributes, classes, and styles to be written into the DOM
11566
- * element on creation. Use [AttributeMarker] to denote the meaning of this array.
11567
- * @param localRefs A set of local reference bindings on the element.
11568
- *
11569
- * Attributes and localRefs are passed as an array of strings where elements with an even index
11570
- * hold an attribute name and elements with an odd index hold an attribute value, ex.:
11571
- * ['id', 'warning5', 'class', 'alert']
11572
- *
11573
- * @codeGenApi
11574
- */
11575
- export declare function ɵɵelementStart(index: number, name: string, attrs?: TAttributes | null, localRefs?: string[] | null): void;
11576
-
11577
- /**
11578
- * Update a style binding on an element with the provided value.
11579
- *
11580
- * If the style value is falsy then it will be removed from the element
11581
- * (or assigned a different value depending if there are any styles placed
11582
- * on the element with `elementStylingMap` or any static styles that are
11583
- * present from when the element was created with `elementStyling`).
11584
- *
11585
- * Note that the styling element is updated as part of `elementStylingApply`.
11586
- *
11587
- * @param index Index of the element's with which styling is associated.
11588
- * @param styleIndex Index of style to update. This index value refers to the
11589
- * index of the style in the style bindings array that was passed into
11590
- * `elementStyling`.
11591
- * @param value New value to write (falsy to remove). Note that if a directive also
11592
- * attempts to write to the same binding value (via `elementHostStyleProp`)
11593
- * then it will only be able to do so if the binding value assigned via
11594
- * `elementStyleProp` is falsy (or doesn't exist at all).
11595
- * @param suffix Optional suffix. Used with scalar values to add unit such as `px`.
11596
- * Note that when a suffix is provided then the underlying sanitizer will
11597
- * be ignored.
11598
- * @param forceOverride Whether or not to update the styling value immediately
11599
- * (despite the other bindings possibly having priority)
11600
- *
11601
- * @codeGenApi
11602
- */
11603
- export declare function ɵɵelementStyleProp(index: number, styleIndex: number, value: string | number | String | ɵPlayerFactory | null, suffix?: string | null, forceOverride?: boolean): void;
11604
-
11605
- /**
11606
- * Allocates style and class binding properties on the element during creation mode.
11607
- *
11608
- * This instruction is meant to be called during creation mode to register all
11609
- * dynamic style and class bindings on the element. Note that this is only used
11610
- * for binding values (see `elementStart` to learn how to assign static styling
11611
- * values to an element).
12191
+ * NOTE: This instruction is meant to used from `hostBindings` function only.
11612
12192
  *
11613
- * @param classBindingNames An array containing bindable class names.
11614
- * The `elementClassProp` instruction refers to the class name by index in
11615
- * this array (i.e. `['foo', 'bar']` means `foo=0` and `bar=1`).
11616
- * @param styleBindingNames An array containing bindable style properties.
11617
- * The `elementStyleProp` instruction refers to the class name by index in
11618
- * this array (i.e. `['width', 'height']` means `width=0` and `height=1`).
11619
- * @param styleSanitizer An optional sanitizer function that will be used to sanitize any CSS
11620
- * style values that are applied to the element (during rendering).
12193
+ * @param directive A directive instance the styling is associated with.
12194
+ * @param attrs An array of static values (attributes, classes and styles) with the correct marker
12195
+ * values.
11621
12196
  *
11622
12197
  * @codeGenApi
11623
12198
  */
11624
- export declare function ɵɵelementStyling(classBindingNames?: string[] | null, styleBindingNames?: string[] | null, styleSanitizer?: StyleSanitizeFn | null): void;
12199
+ export declare function ɵɵelementHostAttrs(attrs: TAttributes): void;
11625
12200
 
11626
12201
  /**
11627
- * Apply all style and class binding values to the element.
11628
- *
11629
- * This instruction is meant to be run after `elementStylingMap`, `elementStyleProp`
11630
- * or `elementClassProp` instructions have been run and will only apply styling to
11631
- * the element if any styling bindings have been updated.
11632
- *
11633
- * @param index Index of the element's with which styling is associated.
12202
+ * **TODO: Remove this function after `property` is in use**
12203
+ * Update a property on an element.
12204
+ *
12205
+ * If the property name also exists as an input property on one of the element's directives,
12206
+ * the component property will be set instead of the element property. This check must
12207
+ * be conducted at runtime so child components that add new @Inputs don't have to be re-compiled.
12208
+ *
12209
+ * @param index The index of the element to update in the data array
12210
+ * @param propName Name of property. Because it is going to DOM, this is not subject to
12211
+ * renaming as part of minification.
12212
+ * @param value New value to write.
12213
+ * @param sanitizer An optional function used to sanitize the value.
12214
+ * @param nativeOnly Whether or not we should only set native properties and skip input check
12215
+ * (this is necessary for host property bindings)
11634
12216
  *
11635
12217
  * @codeGenApi
11636
- */
11637
- export declare function ɵɵelementStylingApply(index: number): void;
12218
+ */
12219
+ export declare function ɵɵelementProperty<T>(index: number, propName: string, value: T | ɵNO_CHANGE, sanitizer?: SanitizerFn | null, nativeOnly?: boolean): void;
11638
12220
 
11639
12221
  /**
11640
- * Update style and/or class bindings using object literals on an element.
11641
- *
11642
- * This instruction is meant to apply styling via the `[style]="exp"` and `[class]="exp"` template
11643
- * bindings. When styles/classes are applied to the element they will then be updated with
11644
- * respect to any styles/classes set with `elementStyleProp` or `elementClassProp`. If any
11645
- * styles or classes are set to falsy then they will be removed from the element.
12222
+ * Create DOM element. The instruction must later be followed by `elementEnd()` call.
11646
12223
  *
11647
- * Note that the styling instruction will not be applied until `elementStylingApply` is called.
12224
+ * @param index Index of the element in the LView array
12225
+ * @param name Name of the DOM Node
12226
+ * @param attrs Statically bound set of attributes, classes, and styles to be written into the DOM
12227
+ * element on creation. Use [AttributeMarker] to denote the meaning of this array.
12228
+ * @param localRefs A set of local reference bindings on the element.
11648
12229
  *
11649
- * @param index Index of the element's with which styling is associated.
11650
- * @param classes A key/value map or string of CSS classes that will be added to the
11651
- * given element. Any missing classes (that have already been applied to the element
11652
- * beforehand) will be removed (unset) from the element's list of CSS classes.
11653
- * @param styles A key/value style map of the styles that will be applied to the given element.
11654
- * Any missing styles (that have already been applied to the element beforehand) will be
11655
- * removed (unset) from the element's styling.
12230
+ * Attributes and localRefs are passed as an array of strings where elements with an even index
12231
+ * hold an attribute name and elements with an odd index hold an attribute value, ex.:
12232
+ * ['id', 'warning5', 'class', 'alert']
11656
12233
  *
11657
12234
  * @codeGenApi
11658
12235
  */
11659
- export declare function ɵɵelementStylingMap(index: number, classes: {
11660
- [key: string]: any;
11661
- } | string | ɵNO_CHANGE | null, styles?: {
11662
- [styleName: string]: any;
11663
- } | ɵNO_CHANGE | null): void;
12236
+ export declare function ɵɵelementStart(index: number, name: string, attrs?: TAttributes | null, localRefs?: string[] | null): void;
11664
12237
 
11665
12238
  /**
11666
12239
  * Marks the end of an embedded view.
@@ -11794,7 +12367,7 @@ export declare function ɵɵi18nExp<T>(expression: T | ɵNO_CHANGE): void;
11794
12367
  * running outside of Closure Compiler. This method will not be needed once runtime translation
11795
12368
  * service support is introduced.
11796
12369
  *
11797
- * @publicApi
12370
+ * @codeGenApi
11798
12371
  * @deprecated this method is temporary & should not be used as it will be removed soon
11799
12372
  */
11800
12373
  export declare function ɵɵi18nLocalize(input: string, placeholders?: {
@@ -12234,14 +12807,12 @@ export declare function ɵɵprojection(nodeIndex: number, selectorIndex?: number
12234
12807
  * - we can't have only a parsed as we can't re-construct textual form from it (as entered by a
12235
12808
  * template author).
12236
12809
  *
12237
- * @param projectionSlots? A collection of projection slots. A projection slot can be based
12238
- * on a parsed CSS selectors or set to the wildcard selector ("*") in order to match
12239
- * all nodes which do not match any selector. If not specified, a single wildcard
12240
- * selector projection slot will be defined.
12810
+ * @param selectors A collection of parsed CSS selectors
12811
+ * @param rawSelectors A collection of CSS selectors in the raw, un-parsed form
12241
12812
  *
12242
12813
  * @codeGenApi
12243
12814
  */
12244
- export declare function ɵɵprojectionDef(projectionSlots?: ProjectionSlots): void;
12815
+ export declare function ɵɵprojectionDef(selectors?: ɵCssSelectorList[]): void;
12245
12816
 
12246
12817
  /**
12247
12818
  * Update a property on a selected element.
@@ -13090,6 +13661,91 @@ export declare function ɵɵstaticContentQuery<T>(directiveIndex: number, predic
13090
13661
  */
13091
13662
  export declare function ɵɵstaticViewQuery<T>(predicate: Type<any> | string[], descend: boolean, read: any): void;
13092
13663
 
13664
+ /**
13665
+ * Update style bindings using an object literal on an element.
13666
+ *
13667
+ * This instruction is meant to apply styling via the `[style]="exp"` template bindings.
13668
+ * When styles are applied to the element they will then be updated with respect to
13669
+ * any styles/classes set via `styleProp`. If any styles are set to falsy
13670
+ * then they will be removed from the element.
13671
+ *
13672
+ * Note that the styling instruction will not be applied until `stylingApply` is called.
13673
+ *
13674
+ * @param styles A key/value style map of the styles that will be applied to the given element.
13675
+ * Any missing styles (that have already been applied to the element beforehand) will be
13676
+ * removed (unset) from the element's styling.
13677
+ *
13678
+ * Note that this will apply the provided styleMap value to the host element if this function
13679
+ * is called within a host binding.
13680
+ *
13681
+ * @codeGenApi
13682
+ */
13683
+ export declare function ɵɵstyleMap(styles: {
13684
+ [styleName: string]: any;
13685
+ } | ɵNO_CHANGE | null): void;
13686
+
13687
+ /**
13688
+ * Update a style binding on an element with the provided value.
13689
+ *
13690
+ * If the style value is falsy then it will be removed from the element
13691
+ * (or assigned a different value depending if there are any styles placed
13692
+ * on the element with `styleMap` or any static styles that are
13693
+ * present from when the element was created with `styling`).
13694
+ *
13695
+ * Note that the styling element is updated as part of `stylingApply`.
13696
+ *
13697
+ * @param styleIndex Index of style to update. This index value refers to the
13698
+ * index of the style in the style bindings array that was passed into
13699
+ * `styling`.
13700
+ * @param value New value to write (falsy to remove).
13701
+ * @param suffix Optional suffix. Used with scalar values to add unit such as `px`.
13702
+ * Note that when a suffix is provided then the underlying sanitizer will
13703
+ * be ignored.
13704
+ * @param forceOverride Whether or not to update the styling value immediately
13705
+ * (despite the other bindings possibly having priority)
13706
+ *
13707
+ * Note that this will apply the provided style value to the host element if this function is called
13708
+ * within a host binding.
13709
+ *
13710
+ * @codeGenApi
13711
+ */
13712
+ export declare function ɵɵstyleProp(styleIndex: number, value: string | number | String | ɵPlayerFactory | null, suffix?: string | null, forceOverride?: boolean): void;
13713
+
13714
+ /**
13715
+ * Allocates style and class binding properties on the element during creation mode.
13716
+ *
13717
+ * This instruction is meant to be called during creation mode to register all
13718
+ * dynamic style and class bindings on the element. Note that this is only used
13719
+ * for binding values (see `elementStart` to learn how to assign static styling
13720
+ * values to an element).
13721
+ *
13722
+ * @param classBindingNames An array containing bindable class names.
13723
+ * The `classProp` instruction refers to the class name by index in
13724
+ * this array (i.e. `['foo', 'bar']` means `foo=0` and `bar=1`).
13725
+ * @param styleBindingNames An array containing bindable style properties.
13726
+ * The `styleProp` instruction refers to the class name by index in
13727
+ * this array (i.e. `['width', 'height']` means `width=0` and `height=1`).
13728
+ * @param styleSanitizer An optional sanitizer function that will be used to sanitize any CSS
13729
+ * style values that are applied to the element (during rendering).
13730
+ *
13731
+ * Note that this will allocate the provided style/class bindings to the host element if
13732
+ * this function is called within a host binding.
13733
+ *
13734
+ * @codeGenApi
13735
+ */
13736
+ export declare function ɵɵstyling(classBindingNames?: string[] | null, styleBindingNames?: string[] | null, styleSanitizer?: StyleSanitizeFn | null): void;
13737
+
13738
+ /**
13739
+ * Apply all style and class binding values to the element.
13740
+ *
13741
+ * This instruction is meant to be run after `styleMap`, `classMap`,
13742
+ * `styleProp` or `classProp` instructions have been run and will
13743
+ * only apply styling to the element if any styling bindings have been updated.
13744
+ *
13745
+ * @codeGenApi
13746
+ */
13747
+ export declare function ɵɵstylingApply(): void;
13748
+
13093
13749
  /**
13094
13750
  * Creates an LContainer for an ng-template (dynamically-inserted view), e.g.
13095
13751
  *
@@ -13140,6 +13796,230 @@ export declare function ɵɵtext(index: number, value?: any): void;
13140
13796
  */
13141
13797
  export declare function ɵɵtextBinding<T>(index: number, value: T | ɵNO_CHANGE): void;
13142
13798
 
13799
+ /**
13800
+ *
13801
+ * Update text content with a lone bound value
13802
+ *
13803
+ * Used when a text node has 1 interpolated value in it, an no additional text
13804
+ * surrounds that interpolated value:
13805
+ *
13806
+ * ```html
13807
+ * <div>{{v0}}</div>
13808
+ * ```
13809
+ *
13810
+ * Its compiled representation is:
13811
+ *
13812
+ * ```ts
13813
+ * ɵɵtextInterpolate(v0);
13814
+ * ```
13815
+ * @returns itself, so that it may be chained.
13816
+ * @see textInterpolateV
13817
+ * @codeGenApi
13818
+ */
13819
+ export declare function ɵɵtextInterpolate(v0: any): TsickleIssue1009;
13820
+
13821
+ /**
13822
+ *
13823
+ * Update text content with single bound value surrounded by other text.
13824
+ *
13825
+ * Used when a text node has 1 interpolated value in it:
13826
+ *
13827
+ * ```html
13828
+ * <div>prefix{{v0}}suffix</div>
13829
+ * ```
13830
+ *
13831
+ * Its compiled representation is:
13832
+ *
13833
+ * ```ts
13834
+ * ɵɵtextInterpolate1('prefix', v0, 'suffix');
13835
+ * ```
13836
+ * @returns itself, so that it may be chained.
13837
+ * @see textInterpolateV
13838
+ * @codeGenApi
13839
+ */
13840
+ export declare function ɵɵtextInterpolate1(prefix: string, v0: any, suffix: string): TsickleIssue1009;
13841
+
13842
+ /**
13843
+ *
13844
+ * Update text content with 2 bound values surrounded by other text.
13845
+ *
13846
+ * Used when a text node has 2 interpolated values in it:
13847
+ *
13848
+ * ```html
13849
+ * <div>prefix{{v0}}-{{v1}}suffix</div>
13850
+ * ```
13851
+ *
13852
+ * Its compiled representation is:
13853
+ *
13854
+ * ```ts
13855
+ * ɵɵtextInterpolate2('prefix', v0, '-', v1, 'suffix');
13856
+ * ```
13857
+ * @returns itself, so that it may be chained.
13858
+ * @see textInterpolateV
13859
+ * @codeGenApi
13860
+ */
13861
+ export declare function ɵɵtextInterpolate2(prefix: string, v0: any, i0: string, v1: any, suffix: string): TsickleIssue1009;
13862
+
13863
+ /**
13864
+ *
13865
+ * Update text content with 3 bound values surrounded by other text.
13866
+ *
13867
+ * Used when a text node has 3 interpolated values in it:
13868
+ *
13869
+ * ```html
13870
+ * <div>prefix{{v0}}-{{v1}}-{{v2}}suffix</div>
13871
+ * ```
13872
+ *
13873
+ * Its compiled representation is:
13874
+ *
13875
+ * ```ts
13876
+ * ɵɵtextInterpolate3(
13877
+ * 'prefix', v0, '-', v1, '-', v2, 'suffix');
13878
+ * ```
13879
+ * @returns itself, so that it may be chained.
13880
+ * @see textInterpolateV
13881
+ * @codeGenApi
13882
+ */
13883
+ export declare function ɵɵtextInterpolate3(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, suffix: string): TsickleIssue1009;
13884
+
13885
+ /**
13886
+ *
13887
+ * Update text content with 4 bound values surrounded by other text.
13888
+ *
13889
+ * Used when a text node has 4 interpolated values in it:
13890
+ *
13891
+ * ```html
13892
+ * <div>prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}suffix</div>
13893
+ * ```
13894
+ *
13895
+ * Its compiled representation is:
13896
+ *
13897
+ * ```ts
13898
+ * ɵɵtextInterpolate4(
13899
+ * 'prefix', v0, '-', v1, '-', v2, '-', v3, 'suffix');
13900
+ * ```
13901
+ * @returns itself, so that it may be chained.
13902
+ * @see ɵɵtextInterpolateV
13903
+ * @codeGenApi
13904
+ */
13905
+ export declare function ɵɵtextInterpolate4(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, suffix: string): TsickleIssue1009;
13906
+
13907
+ /**
13908
+ *
13909
+ * Update text content with 5 bound values surrounded by other text.
13910
+ *
13911
+ * Used when a text node has 5 interpolated values in it:
13912
+ *
13913
+ * ```html
13914
+ * <div>prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}suffix</div>
13915
+ * ```
13916
+ *
13917
+ * Its compiled representation is:
13918
+ *
13919
+ * ```ts
13920
+ * ɵɵtextInterpolate5(
13921
+ * 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, 'suffix');
13922
+ * ```
13923
+ * @returns itself, so that it may be chained.
13924
+ * @see textInterpolateV
13925
+ * @codeGenApi
13926
+ */
13927
+ export declare function ɵɵtextInterpolate5(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, suffix: string): TsickleIssue1009;
13928
+
13929
+ /**
13930
+ *
13931
+ * Update text content with 6 bound values surrounded by other text.
13932
+ *
13933
+ * Used when a text node has 6 interpolated values in it:
13934
+ *
13935
+ * ```html
13936
+ * <div>prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}suffix</div>
13937
+ * ```
13938
+ *
13939
+ * Its compiled representation is:
13940
+ *
13941
+ * ```ts
13942
+ * ɵɵtextInterpolate6(
13943
+ * 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, 'suffix');
13944
+ * ```
13945
+ *
13946
+ * @param i4 Static value used for concatenation only.
13947
+ * @param v5 Value checked for change. @returns itself, so that it may be chained.
13948
+ * @see textInterpolateV
13949
+ * @codeGenApi
13950
+ */
13951
+ export declare function ɵɵtextInterpolate6(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, suffix: string): TsickleIssue1009;
13952
+
13953
+ /**
13954
+ *
13955
+ * Update text content with 7 bound values surrounded by other text.
13956
+ *
13957
+ * Used when a text node has 7 interpolated values in it:
13958
+ *
13959
+ * ```html
13960
+ * <div>prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}suffix</div>
13961
+ * ```
13962
+ *
13963
+ * Its compiled representation is:
13964
+ *
13965
+ * ```ts
13966
+ * ɵɵtextInterpolate7(
13967
+ * 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, 'suffix');
13968
+ * ```
13969
+ * @returns itself, so that it may be chained.
13970
+ * @see textInterpolateV
13971
+ * @codeGenApi
13972
+ */
13973
+ export declare function ɵɵtextInterpolate7(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, i5: string, v6: any, suffix: string): TsickleIssue1009;
13974
+
13975
+ /**
13976
+ *
13977
+ * Update text content with 8 bound values surrounded by other text.
13978
+ *
13979
+ * Used when a text node has 8 interpolated values in it:
13980
+ *
13981
+ * ```html
13982
+ * <div>prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}-{{v7}}suffix</div>
13983
+ * ```
13984
+ *
13985
+ * Its compiled representation is:
13986
+ *
13987
+ * ```ts
13988
+ * ɵɵtextInterpolate8(
13989
+ * 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, '-', v7, 'suffix');
13990
+ * ```
13991
+ * @returns itself, so that it may be chained.
13992
+ * @see textInterpolateV
13993
+ * @codeGenApi
13994
+ */
13995
+ export declare function ɵɵtextInterpolate8(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, i5: string, v6: any, i6: string, v7: any, suffix: string): TsickleIssue1009;
13996
+
13997
+ /**
13998
+ * Update text content with 9 or more bound values other surrounded by text.
13999
+ *
14000
+ * Used when the number of interpolated values exceeds 8.
14001
+ *
14002
+ * ```html
14003
+ * <div>prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}-{{v6}}-{{v7}}-{{v8}}-{{v9}}suffix</div>
14004
+ * ```
14005
+ *
14006
+ * Its compiled representation is:
14007
+ *
14008
+ * ```ts
14009
+ * ɵɵtextInterpolateV(
14010
+ * ['prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, '-', v6, '-', v7, '-', v9,
14011
+ * 'suffix']);
14012
+ * ```
14013
+ *.
14014
+ * @param values The a collection of values and the strings in between those values, beginning with
14015
+ * a string prefix and ending with a string suffix.
14016
+ * (e.g. `['prefix', value0, '-', value1, '-', value2, ..., value99, 'suffix']`)
14017
+ *
14018
+ * @returns itself, so that it may be chained.
14019
+ * @codeGenApi
14020
+ */
14021
+ export declare function ɵɵtextInterpolateV(values: any[]): TsickleIssue1009;
14022
+
13143
14023
  /**
13144
14024
  * Creates new QueryList, stores the reference in LView and returns QueryList.
13145
14025
  *