@yoobic/yobi 8.3.0-32 → 8.3.0-35

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 (1172) hide show
  1. package/dist/cjs/{button.factory-0de98db0.js → button.factory-b681a543.js} +2 -2
  2. package/dist/cjs/{camera-helpers-b017bf7d.js → camera-helpers-66de4634.js} +3 -3
  3. package/dist/cjs/{chat-helpers-70680c7d.js → chat-helpers-89cc86fb.js} +2 -2
  4. package/dist/cjs/{common-helpers-03171bbd.js → common-helpers-5819efe0.js} +2 -2
  5. package/dist/cjs/design-system.cjs.js +1 -1
  6. package/dist/cjs/{draggable-dots-helpers-0c6d1f7d.js → draggable-dots-helpers-a9e1ae8e.js} +2 -2
  7. package/dist/cjs/{draggable-tags-helpers-fd708301.js → draggable-tags-helpers-ffd75a6d.js} +2 -2
  8. package/dist/cjs/{entities-helpers-298d2620.js → entities-helpers-a9b072c3.js} +3 -3
  9. package/dist/cjs/{filters-helpers-b30b3ea7.js → filters-helpers-7da25ab0.js} +3 -3
  10. package/dist/cjs/{form-choice-helpers-3812b8ab.js → form-choice-helpers-02da698f.js} +5 -5
  11. package/dist/cjs/{form-helpers-c6beec00.js → form-helpers-844ea625.js} +3 -3
  12. package/dist/cjs/{form-input-helpers-425be3ea.js → form-input-helpers-0460110d.js} +4 -4
  13. package/dist/cjs/{form-text-area-helpers-a3ad0e64.js → form-text-area-helpers-947e5f4f.js} +2 -2
  14. package/dist/cjs/{grid-renderers-8a8c04eb.js → grid-renderers-4f658216.js} +7 -7
  15. package/dist/cjs/{incentive-helpers-e5263f62.js → incentive-helpers-bcb94d78.js} +3 -3
  16. package/dist/cjs/{index-153c8e28.js → index-06ed9db0.js} +3 -3
  17. package/dist/cjs/{index-e3d346bc.js → index-37cf5545.js} +2 -2
  18. package/dist/cjs/{index-7bb35a50.js → index-4c1742b3.js} +1 -1
  19. package/dist/cjs/index-50bf3ad4.js +4 -0
  20. package/dist/cjs/index-6083890a.js +4 -0
  21. package/dist/cjs/{index-8f48ac42.js → index-6e5c67f3.js} +14 -1
  22. package/dist/cjs/{index-4cc48ba6.js → index-8ebe9d77.js} +1 -1
  23. package/dist/cjs/{index-f833fae9.js → index-96ffd843.js} +3 -3
  24. package/dist/cjs/{index-4bb469be.js → index-e8313a86.js} +1 -1
  25. package/dist/cjs/loader.cjs.js +1 -1
  26. package/dist/cjs/{localForage-8e1af981.js → localForage-522b992c.js} +2 -2
  27. package/dist/cjs/{map-helpers-5cc34278.js → map-helpers-039ed8f8.js} +2 -2
  28. package/dist/cjs/{mission-locked-banner-f9b8ea67.js → mission-locked-banner-ad54b181.js} +2 -2
  29. package/dist/cjs/{missions-helpers-078bef28.js → missions-helpers-4fd3f75f.js} +4 -4
  30. package/dist/cjs/{modal-animations-ac198cd2.js → modal-animations-5af87555.js} +2 -2
  31. package/dist/cjs/{operation-helpers-9fdb8e12.js → operation-helpers-c87a2757.js} +2 -2
  32. package/dist/cjs/{overlays-1e1d13ed.js → overlays-ab138114.js} +2 -2
  33. package/dist/cjs/{overlays-3336db5b.js → overlays-b8b5311f.js} +3 -3
  34. package/dist/cjs/{swiper-85a04eb4.js → swiper-94bda614.js} +6 -6
  35. package/dist/cjs/{theme-0c4353c2.js → theme-b38cb314.js} +2 -2
  36. package/dist/cjs/{tippy.esm-967e43c8.js → tippy.esm-4b6b17e8.js} +1 -1
  37. package/dist/cjs/{video-player-helpers-00c01bb5.js → video-player-helpers-1a18ab0e.js} +4 -4
  38. package/dist/cjs/{web-8687e392.js → web-17607290.js} +4 -4
  39. package/dist/cjs/{web-ce104380.js → web-44284703.js} +2 -2
  40. package/dist/cjs/{web-ab21612e.js → web-bd1cb63e.js} +2 -2
  41. package/dist/cjs/{web-ad37c884.js → web-dd0a96a4.js} +2 -2
  42. package/dist/cjs/yoo-about.cjs.entry.js +3 -3
  43. package/dist/cjs/yoo-accordion.cjs.entry.js +8 -8
  44. package/dist/cjs/yoo-action-sheet-controller.cjs.entry.js +4 -4
  45. package/dist/cjs/yoo-action-sheet.cjs.entry.js +6 -6
  46. package/dist/cjs/yoo-ag-grid.cjs.entry.js +8 -8
  47. package/dist/cjs/yoo-alert.cjs.entry.js +6 -6
  48. package/dist/cjs/yoo-amap.cjs.entry.js +5 -5
  49. package/dist/cjs/yoo-announcement-heading.cjs.entry.js +16 -7
  50. package/dist/cjs/yoo-app.cjs.entry.js +3 -3
  51. package/dist/cjs/yoo-audio-player.cjs.entry.js +4 -4
  52. package/dist/cjs/yoo-audio-recorder-dialog.cjs.entry.js +4 -4
  53. package/dist/cjs/yoo-avatar.cjs.entry.js +4 -4
  54. package/dist/cjs/yoo-avatars.cjs.entry.js +3 -3
  55. package/dist/cjs/yoo-background.cjs.entry.js +4 -4
  56. package/dist/cjs/yoo-banner.cjs.entry.js +4 -4
  57. package/dist/cjs/yoo-barcode-dialog.cjs.entry.js +3 -3
  58. package/dist/cjs/yoo-battle-count-down.cjs.entry.js +4 -4
  59. package/dist/cjs/yoo-battle-result.cjs.entry.js +3 -3
  60. package/dist/cjs/yoo-battle-user-stats.cjs.entry.js +4 -4
  61. package/dist/cjs/yoo-breadcrumbs.cjs.entry.js +3 -3
  62. package/dist/cjs/yoo-button.cjs.entry.js +4 -4
  63. package/dist/cjs/yoo-calendar.cjs.entry.js +3 -3
  64. package/dist/cjs/yoo-camera-preview-dialog.cjs.entry.js +6 -6
  65. package/dist/cjs/yoo-card-battle-result.cjs.entry.js +3 -3
  66. package/dist/cjs/yoo-card-battle.cjs.entry.js +3 -3
  67. package/dist/cjs/yoo-card-calendar.cjs.entry.js +4 -4
  68. package/dist/cjs/yoo-card-campaign.cjs.entry.js +4 -4
  69. package/dist/cjs/yoo-card-cell.cjs.entry.js +4 -4
  70. package/dist/cjs/yoo-card-chat.cjs.entry.js +3 -3
  71. package/dist/cjs/yoo-card-course-row-compact.cjs.entry.js +3 -3
  72. package/dist/cjs/yoo-card-course-row.cjs.entry.js +5 -5
  73. package/dist/cjs/yoo-card-course.cjs.entry.js +3 -3
  74. package/dist/cjs/yoo-card-feed-row.cjs.entry.js +3 -3
  75. package/dist/cjs/yoo-card-feed.cjs.entry.js +7 -7
  76. package/dist/cjs/yoo-card-file.cjs.entry.js +3 -3
  77. package/dist/cjs/yoo-card-image.cjs.entry.js +4 -4
  78. package/dist/cjs/yoo-card-inbox.cjs.entry.js +3 -3
  79. package/dist/cjs/yoo-card-incentive-rank.cjs.entry.js +3 -3
  80. package/dist/cjs/yoo-card-incentive.cjs.entry.js +5 -5
  81. package/dist/cjs/yoo-card-kanban.cjs.entry.js +4 -4
  82. package/dist/cjs/yoo-card-lesson.cjs.entry.js +4 -4
  83. package/dist/cjs/yoo-card-list-collapsible.cjs.entry.js +4 -4
  84. package/dist/cjs/yoo-card-list-color.cjs.entry.js +3 -3
  85. package/dist/cjs/yoo-card-list-simple.cjs.entry.js +4 -4
  86. package/dist/cjs/yoo-card-list.cjs.entry.js +4 -4
  87. package/dist/cjs/yoo-card-location.cjs.entry.js +3 -3
  88. package/dist/cjs/yoo-card-media.cjs.entry.js +4 -4
  89. package/dist/cjs/yoo-card-menu.cjs.entry.js +4 -4
  90. package/dist/cjs/yoo-card-notification.cjs.entry.js +3 -3
  91. package/dist/cjs/yoo-card-plan.cjs.entry.js +4 -4
  92. package/dist/cjs/yoo-card-progress.cjs.entry.js +3 -3
  93. package/dist/cjs/yoo-card-recommendation.cjs.entry.js +4 -4
  94. package/dist/cjs/yoo-card-sticky.cjs.entry.js +4 -4
  95. package/dist/cjs/yoo-card-video.cjs.entry.js +3 -3
  96. package/dist/cjs/yoo-card.cjs.entry.js +1 -1
  97. package/dist/cjs/yoo-chart.cjs.entry.js +3 -3
  98. package/dist/cjs/yoo-chat-message-dialog.cjs.entry.js +4 -4
  99. package/dist/cjs/yoo-chat-message-preview.cjs.entry.js +3 -3
  100. package/dist/cjs/yoo-chat-message.cjs.entry.js +5 -5
  101. package/dist/cjs/yoo-chat.cjs.entry.js +7 -7
  102. package/dist/cjs/yoo-collapsible.cjs.entry.js +3 -3
  103. package/dist/cjs/yoo-color-selector.cjs.entry.js +3 -3
  104. package/dist/cjs/yoo-community-detail.cjs.entry.js +4 -4
  105. package/dist/cjs/yoo-context-menu-dialog.cjs.entry.js +4 -4
  106. package/dist/cjs/yoo-context-menu.cjs.entry.js +4 -4
  107. package/dist/cjs/yoo-copyright.cjs.entry.js +3 -3
  108. package/dist/cjs/yoo-count-down.cjs.entry.js +4 -4
  109. package/dist/cjs/yoo-course-info-card.cjs.entry.js +3 -3
  110. package/dist/cjs/yoo-course-summary.cjs.entry.js +4 -4
  111. package/dist/cjs/yoo-dashboard-detail.cjs.entry.js +3 -3
  112. package/dist/cjs/yoo-date.cjs.entry.js +3 -3
  113. package/dist/cjs/yoo-detail-bar.cjs.entry.js +4 -4
  114. package/dist/cjs/yoo-device-list.cjs.entry.js +3 -3
  115. package/dist/cjs/yoo-device.cjs.entry.js +3 -3
  116. package/dist/cjs/yoo-draw-flow.cjs.entry.js +39 -21
  117. package/dist/cjs/yoo-empty-state.cjs.entry.js +1 -1
  118. package/dist/cjs/yoo-entity-query-builder.cjs.entry.js +4 -4
  119. package/dist/cjs/yoo-entity-search-dialog.cjs.entry.js +4 -4
  120. package/dist/cjs/yoo-entity-search-filters.cjs.entry.js +5 -5
  121. package/dist/cjs/yoo-entity-search-recent.cjs.entry.js +3 -3
  122. package/dist/cjs/yoo-entity-search-sorts.cjs.entry.js +4 -4
  123. package/dist/cjs/yoo-entity-search-tags.cjs.entry.js +4 -4
  124. package/dist/cjs/yoo-entity-search.cjs.entry.js +4 -4
  125. package/dist/cjs/yoo-entity.cjs.entry.js +12 -11
  126. package/dist/cjs/yoo-feed-detail.cjs.entry.js +6 -6
  127. package/dist/cjs/yoo-flag.cjs.entry.js +3 -3
  128. package/dist/cjs/yoo-form-audience.cjs.entry.js +5 -5
  129. package/dist/cjs/yoo-form-autocomplete-dialog.cjs.entry.js +4 -4
  130. package/dist/cjs/yoo-form-autocomplete.cjs.entry.js +7 -6
  131. package/dist/cjs/yoo-form-barcode-dialog.cjs.entry.js +4 -4
  132. package/dist/cjs/yoo-form-barcode.cjs.entry.js +5 -5
  133. package/dist/cjs/yoo-form-calendar-dialog.cjs.entry.js +4 -4
  134. package/dist/cjs/yoo-form-capture-map-dialog.cjs.entry.js +3 -3
  135. package/dist/cjs/yoo-form-capture-tag-dialog.cjs.entry.js +4 -4
  136. package/dist/cjs/yoo-form-capture-view-dialog.cjs.entry.js +4 -4
  137. package/dist/cjs/yoo-form-capture-webcam-dialog.cjs.entry.js +5 -5
  138. package/dist/cjs/yoo-form-capture.cjs.entry.js +7 -7
  139. package/dist/cjs/yoo-form-carousel.cjs.entry.js +4 -4
  140. package/dist/cjs/yoo-form-catalog-dialog.cjs.entry.js +4 -4
  141. package/dist/cjs/yoo-form-catalog.cjs.entry.js +5 -5
  142. package/dist/cjs/yoo-form-categorize-words.cjs.entry.js +7 -7
  143. package/dist/cjs/yoo-form-checkbox.cjs.entry.js +5 -5
  144. package/dist/cjs/yoo-form-checklist.cjs.entry.js +5 -5
  145. package/dist/cjs/yoo-form-choice-button.cjs.entry.js +7 -7
  146. package/dist/cjs/yoo-form-choice-card.cjs.entry.js +7 -7
  147. package/dist/cjs/yoo-form-choice-chat.cjs.entry.js +7 -7
  148. package/dist/cjs/yoo-form-choice-image.cjs.entry.js +7 -7
  149. package/dist/cjs/yoo-form-choice-radio.cjs.entry.js +7 -7
  150. package/dist/cjs/yoo-form-color-field.cjs.entry.js +5 -5
  151. package/dist/cjs/yoo-form-color-picker.cjs.entry.js +3 -3
  152. package/dist/cjs/yoo-form-conditions.cjs.entry.js +3 -3
  153. package/dist/cjs/yoo-form-connect.cjs.entry.js +6 -6
  154. package/dist/cjs/yoo-form-creator-block-expandable.cjs.entry.js +6 -6
  155. package/dist/cjs/yoo-form-creator-block-simple.cjs.entry.js +5 -5
  156. package/dist/cjs/yoo-form-creator-condition-block.cjs.entry.js +5 -5
  157. package/dist/cjs/yoo-form-creator-field-selector.cjs.entry.js +10 -6
  158. package/dist/cjs/yoo-form-creator-header.cjs.entry.js +4 -4
  159. package/dist/cjs/yoo-form-creator-live-preview.cjs.entry.js +4 -4
  160. package/dist/cjs/yoo-form-creator-overlay.cjs.entry.js +3 -3
  161. package/dist/cjs/yoo-form-creator-page-card-list.cjs.entry.js +4 -4
  162. package/dist/cjs/yoo-form-creator-page-card.cjs.entry.js +4 -4
  163. package/dist/cjs/yoo-form-creator-score-expandable.cjs.entry.js +5 -5
  164. package/dist/cjs/yoo-form-creator-scoring-card-list.cjs.entry.js +3 -3
  165. package/dist/cjs/yoo-form-creator-scoring-card.cjs.entry.js +3 -3
  166. package/dist/cjs/yoo-form-creator-scoring-quick-setup.cjs.entry.js +3 -3
  167. package/dist/cjs/yoo-form-creator-translate-dialog.cjs.entry.js +4 -4
  168. package/dist/cjs/yoo-form-creator-translate.cjs.entry.js +5 -5
  169. package/dist/cjs/yoo-form-creator-workflow-side-selection.cjs.entry.js +5 -5
  170. package/dist/cjs/yoo-form-creator-workflow-step.cjs.entry.js +4 -4
  171. package/dist/cjs/yoo-form-creator.cjs.entry.js +7 -7
  172. package/dist/cjs/yoo-form-date-time.cjs.entry.js +5 -5
  173. package/dist/cjs/yoo-form-daterange.cjs.entry.js +5 -5
  174. package/dist/cjs/yoo-form-document-dialog.cjs.entry.js +4 -4
  175. package/dist/cjs/yoo-form-document.cjs.entry.js +5 -5
  176. package/dist/cjs/yoo-form-dynamic-dialog.cjs.entry.js +5 -5
  177. package/dist/cjs/yoo-form-dynamic.cjs.entry.js +8 -8
  178. package/dist/cjs/yoo-form-emailreport.cjs.entry.js +5 -5
  179. package/dist/cjs/yoo-form-entity-value-pairs.cjs.entry.js +3 -3
  180. package/dist/cjs/yoo-form-explanation.cjs.entry.js +3 -3
  181. package/dist/cjs/yoo-form-feed-preview.cjs.entry.js +5 -5
  182. package/dist/cjs/yoo-form-feedback.cjs.entry.js +5 -5
  183. package/dist/cjs/yoo-form-filter-date.cjs.entry.js +3 -3
  184. package/dist/cjs/yoo-form-filter-number.cjs.entry.js +3 -3
  185. package/dist/cjs/yoo-form-filter-text.cjs.entry.js +3 -3
  186. package/dist/cjs/yoo-form-filter.cjs.entry.js +4 -4
  187. package/dist/cjs/yoo-form-footer.cjs.entry.js +6 -6
  188. package/dist/cjs/yoo-form-formula.cjs.entry.js +5 -5
  189. package/dist/cjs/yoo-form-hotzones-creator.cjs.entry.js +3 -3
  190. package/dist/cjs/yoo-form-hotzones.cjs.entry.js +7 -7
  191. package/dist/cjs/yoo-form-iframe-dialog.cjs.entry.js +3 -3
  192. package/dist/cjs/yoo-form-image-collection.cjs.entry.js +6 -6
  193. package/dist/cjs/yoo-form-image-tagging-creator.cjs.entry.js +6 -6
  194. package/dist/cjs/yoo-form-image-tagging.cjs.entry.js +9 -9
  195. package/dist/cjs/yoo-form-incentive-participants.cjs.entry.js +1 -1
  196. package/dist/cjs/yoo-form-incentive-targets.cjs.entry.js +5 -5
  197. package/dist/cjs/yoo-form-input-comments.cjs.entry.js +3 -3
  198. package/dist/cjs/yoo-form-input-container.cjs.entry.js +6 -6
  199. package/dist/cjs/yoo-form-input.cjs.entry.js +9 -9
  200. package/dist/cjs/yoo-form-json.cjs.entry.js +6 -6
  201. package/dist/cjs/yoo-form-location.cjs.entry.js +5 -5
  202. package/dist/cjs/yoo-form-missing-word.cjs.entry.js +7 -7
  203. package/dist/cjs/yoo-form-missionfield.cjs.entry.js +5 -5
  204. package/dist/cjs/yoo-form-multi-input.cjs.entry.js +5 -5
  205. package/dist/cjs/yoo-form-number-picker-dialog.cjs.entry.js +3 -3
  206. package/dist/cjs/yoo-form-number-picker.cjs.entry.js +3 -3
  207. package/dist/cjs/yoo-form-opening-hours.cjs.entry.js +3 -3
  208. package/dist/cjs/yoo-form-permissions.cjs.entry.js +4 -4
  209. package/dist/cjs/yoo-form-phone-number.cjs.entry.js +3 -3
  210. package/dist/cjs/yoo-form-plan-assign.cjs.entry.js +5 -5
  211. package/dist/cjs/yoo-form-plan.cjs.entry.js +5 -5
  212. package/dist/cjs/yoo-form-pricecheck.cjs.entry.js +5 -5
  213. package/dist/cjs/yoo-form-product-batch.cjs.entry.js +6 -6
  214. package/dist/cjs/yoo-form-products-sales.cjs.entry.js +5 -5
  215. package/dist/cjs/yoo-form-progress-indicator.cjs.entry.js +4 -4
  216. package/dist/cjs/yoo-form-qrcode.cjs.entry.js +5 -5
  217. package/dist/cjs/yoo-form-query-builder.cjs.entry.js +5 -5
  218. package/dist/cjs/yoo-form-range.cjs.entry.js +5 -5
  219. package/dist/cjs/yoo-form-ranking.cjs.entry.js +6 -6
  220. package/dist/cjs/yoo-form-recap-step.cjs.entry.js +3 -3
  221. package/dist/cjs/yoo-form-recurrence-delay.cjs.entry.js +3 -3
  222. package/dist/cjs/yoo-form-recurrence-preview.cjs.entry.js +4 -4
  223. package/dist/cjs/yoo-form-recurrence.cjs.entry.js +3 -3
  224. package/dist/cjs/yoo-form-reorder.cjs.entry.js +5 -5
  225. package/dist/cjs/yoo-form-scorm.cjs.entry.js +5 -5
  226. package/dist/cjs/yoo-form-shopping.cjs.entry.js +5 -5
  227. package/dist/cjs/yoo-form-signature-pad-dialog.cjs.entry.js +4 -4
  228. package/dist/cjs/yoo-form-signature-pad.cjs.entry.js +5 -5
  229. package/dist/cjs/yoo-form-sorts.cjs.entry.js +5 -5
  230. package/dist/cjs/yoo-form-star-rating.cjs.entry.js +5 -5
  231. package/dist/cjs/yoo-form-stripe-card.cjs.entry.js +5 -5
  232. package/dist/cjs/yoo-form-swipe-cards.cjs.entry.js +6 -6
  233. package/dist/cjs/yoo-form-table.cjs.entry.js +5 -5
  234. package/dist/cjs/yoo-form-task.cjs.entry.js +5 -5
  235. package/dist/cjs/yoo-form-text-area.cjs.entry.js +6 -6
  236. package/dist/cjs/yoo-form-text-editor.cjs.entry.js +7 -7
  237. package/dist/cjs/yoo-form-time.cjs.entry.js +5 -5
  238. package/dist/cjs/yoo-form-timeslots.cjs.entry.js +5 -5
  239. package/dist/cjs/yoo-form-todo-dialog.cjs.entry.js +4 -4
  240. package/dist/cjs/yoo-form-todo-list-dialog.cjs.entry.js +5 -5
  241. package/dist/cjs/yoo-form-todo-list-task.cjs.entry.js +5 -5
  242. package/dist/cjs/yoo-form-todo-list.cjs.entry.js +5 -5
  243. package/dist/cjs/yoo-form-todo-single.cjs.entry.js +5 -5
  244. package/dist/cjs/yoo-form-todo.cjs.entry.js +5 -5
  245. package/dist/cjs/yoo-form-toggle.cjs.entry.js +5 -5
  246. package/dist/cjs/yoo-form-uploader.cjs.entry.js +5 -5
  247. package/dist/cjs/yoo-form-videoplayer.cjs.entry.js +5 -5
  248. package/dist/cjs/yoo-form-wiki.cjs.entry.js +5 -5
  249. package/dist/cjs/yoo-grid-calendar.cjs.entry.js +6 -6
  250. package/dist/cjs/yoo-grid.cjs.entry.js +16 -15
  251. package/dist/cjs/yoo-gridstack.cjs.entry.js +4 -4
  252. package/dist/cjs/yoo-header.cjs.entry.js +4 -4
  253. package/dist/cjs/yoo-healthscore-dialog.cjs.entry.js +4 -4
  254. package/dist/cjs/yoo-healthscore.cjs.entry.js +3 -3
  255. package/dist/cjs/yoo-image-cropper-dialog.cjs.entry.js +3 -3
  256. package/dist/cjs/yoo-img.cjs.entry.js +5 -5
  257. package/dist/cjs/yoo-incentive-detail.cjs.entry.js +5 -5
  258. package/dist/cjs/yoo-input-bar.cjs.entry.js +1755 -1950
  259. package/dist/cjs/yoo-ion-alert-controller.cjs.entry.js +4 -4
  260. package/dist/cjs/yoo-ion-content.cjs.entry.js +3 -3
  261. package/dist/cjs/yoo-ion-footer.cjs.entry.js +4 -4
  262. package/dist/cjs/yoo-ion-infinite-scroll-content.cjs.entry.js +3 -3
  263. package/dist/cjs/yoo-ion-infinite-scroll.cjs.entry.js +3 -3
  264. package/dist/cjs/yoo-ion-item-divider.cjs.entry.js +5 -5
  265. package/dist/cjs/yoo-ion-item-options.cjs.entry.js +4 -4
  266. package/dist/cjs/yoo-ion-item-sliding.cjs.entry.js +5 -5
  267. package/dist/cjs/yoo-ion-item.cjs.entry.js +5 -5
  268. package/dist/cjs/yoo-ion-list.cjs.entry.js +4 -4
  269. package/dist/cjs/yoo-ion-modal-controller.cjs.entry.js +4 -4
  270. package/dist/cjs/yoo-ion-modal.cjs.entry.js +9 -9
  271. package/dist/cjs/yoo-ion-refresher.cjs.entry.js +4 -4
  272. package/dist/cjs/yoo-ion-scroll.cjs.entry.js +4 -4
  273. package/dist/cjs/yoo-ion-slide.cjs.entry.js +4 -4
  274. package/dist/cjs/{yoo-ion-slides-0c6323bf.js → yoo-ion-slides-a68057a3.js} +25 -22
  275. package/dist/cjs/yoo-ion-slides.cjs.entry.js +6 -6
  276. package/dist/cjs/yoo-ion-toast-controller.cjs.entry.js +4 -4
  277. package/dist/cjs/yoo-kanban.cjs.entry.js +4 -4
  278. package/dist/cjs/yoo-kpi-card.cjs.entry.js +3 -3
  279. package/dist/cjs/yoo-kpi-container.cjs.entry.js +4 -4
  280. package/dist/cjs/yoo-kpi-external.cjs.entry.js +3 -3
  281. package/dist/cjs/yoo-kpi.cjs.entry.js +3 -3
  282. package/dist/cjs/yoo-layout-sections.cjs.entry.js +3 -3
  283. package/dist/cjs/yoo-layout-tabs.cjs.entry.js +3 -3
  284. package/dist/cjs/yoo-layout-two-columns.cjs.entry.js +3 -3
  285. package/dist/cjs/yoo-lesson-detail-card.cjs.entry.js +3 -3
  286. package/dist/cjs/yoo-lesson-detail.cjs.entry.js +4 -4
  287. package/dist/cjs/yoo-lesson-heading.cjs.entry.js +4 -4
  288. package/dist/cjs/yoo-lesson-highscores.cjs.entry.js +3 -3
  289. package/dist/cjs/yoo-lesson-question-result.cjs.entry.js +3 -3
  290. package/dist/cjs/yoo-line-state.cjs.entry.js +1 -1
  291. package/dist/cjs/yoo-links-menu.cjs.entry.js +3 -3
  292. package/dist/cjs/yoo-links-preview.cjs.entry.js +5 -5
  293. package/dist/cjs/yoo-loader.cjs.entry.js +3 -3
  294. package/dist/cjs/yoo-location-info.cjs.entry.js +3 -3
  295. package/dist/cjs/yoo-location-map.cjs.entry.js +4 -4
  296. package/dist/cjs/yoo-login.cjs.entry.js +3 -3
  297. package/dist/cjs/yoo-lottie.cjs.entry.js +3 -3
  298. package/dist/cjs/yoo-map-gl.cjs.entry.js +4 -4
  299. package/dist/cjs/yoo-map-js.cjs.entry.js +5 -5
  300. package/dist/cjs/yoo-map-legend.cjs.entry.js +5 -5
  301. package/dist/cjs/yoo-map.cjs.entry.js +4 -4
  302. package/dist/cjs/yoo-markdown.cjs.entry.js +5 -5
  303. package/dist/cjs/yoo-memo-list-dialog.cjs.entry.js +3 -3
  304. package/dist/cjs/yoo-memo-list.cjs.entry.js +3 -3
  305. package/dist/cjs/yoo-mention-tag.cjs.entry.js +3 -3
  306. package/dist/cjs/yoo-mission-details.cjs.entry.js +5 -5
  307. package/dist/cjs/yoo-mission-heading.cjs.entry.js +7 -7
  308. package/dist/cjs/yoo-mission-score.cjs.entry.js +3 -3
  309. package/dist/cjs/yoo-mission-todo.cjs.entry.js +4 -4
  310. package/dist/cjs/yoo-mobile-tabbar-more.cjs.entry.js +3 -3
  311. package/dist/cjs/yoo-mobile-tabbar.cjs.entry.js +4 -4
  312. package/dist/cjs/yoo-modal.cjs.entry.js +4 -4
  313. package/dist/cjs/yoo-navbar.cjs.entry.js +4 -4
  314. package/dist/cjs/yoo-numbers-display.cjs.entry.js +4 -4
  315. package/dist/cjs/yoo-photo-editor.cjs.entry.js +8 -8
  316. package/dist/cjs/yoo-pivot-table.cjs.entry.js +8 -8
  317. package/dist/cjs/yoo-podium.cjs.entry.js +3 -3
  318. package/dist/cjs/yoo-profile-list.cjs.entry.js +3 -3
  319. package/dist/cjs/yoo-profile-summary.cjs.entry.js +4 -4
  320. package/dist/cjs/yoo-progress-bar.cjs.entry.js +3 -3
  321. package/dist/cjs/yoo-progress-loader.cjs.entry.js +3 -3
  322. package/dist/cjs/yoo-progress-recap.cjs.entry.js +3 -3
  323. package/dist/cjs/yoo-property-card.cjs.entry.js +4 -4
  324. package/dist/cjs/yoo-range.cjs.entry.js +5 -5
  325. package/dist/cjs/yoo-rating.cjs.entry.js +3 -3
  326. package/dist/cjs/yoo-reset-password.cjs.entry.js +3 -3
  327. package/dist/cjs/yoo-result-dialog.cjs.entry.js +4 -4
  328. package/dist/cjs/yoo-reveal.cjs.entry.js +3 -3
  329. package/dist/cjs/yoo-salesai-formula.cjs.entry.js +3 -3
  330. package/dist/cjs/yoo-scandit.cjs.entry.js +4 -4
  331. package/dist/cjs/yoo-scratch-card-creator.cjs.entry.js +3 -3
  332. package/dist/cjs/yoo-scratch-card.cjs.entry.js +5 -5
  333. package/dist/cjs/yoo-section-list.cjs.entry.js +3 -3
  334. package/dist/cjs/yoo-segmented-control.cjs.entry.js +3 -3
  335. package/dist/cjs/yoo-side-menu-tree.cjs.entry.js +3 -3
  336. package/dist/cjs/yoo-side-menu.cjs.entry.js +5 -4
  337. package/dist/cjs/yoo-slides-media.cjs.entry.js +6 -6
  338. package/dist/cjs/yoo-start-meeting-popup.cjs.entry.js +4 -4
  339. package/dist/cjs/yoo-tabs.cjs.entry.js +3 -3
  340. package/dist/cjs/yoo-text-sequence.cjs.entry.js +4 -4
  341. package/dist/cjs/yoo-text.cjs.entry.js +4 -4
  342. package/dist/cjs/yoo-toast.cjs.entry.js +5 -5
  343. package/dist/cjs/yoo-tooltip.cjs.entry.js +6 -6
  344. package/dist/cjs/yoo-truncate.cjs.entry.js +4 -4
  345. package/dist/cjs/yoo-truncated-line.cjs.entry.js +3 -3
  346. package/dist/cjs/yoo-user-detail.cjs.entry.js +3 -3
  347. package/dist/cjs/yoo-user-profile.cjs.entry.js +5 -5
  348. package/dist/cjs/yoo-user-wizard.cjs.entry.js +7 -5
  349. package/dist/cjs/yoo-videoplayer-core.cjs.entry.js +4 -4
  350. package/dist/cjs/yoo-videoplayer-dailymotion.cjs.entry.js +5 -5
  351. package/dist/cjs/yoo-videoplayer-videojs.cjs.entry.js +6 -6
  352. package/dist/cjs/yoo-videoplayer-vimeo.cjs.entry.js +5 -5
  353. package/dist/cjs/yoo-videoplayer-youtube.cjs.entry.js +5 -5
  354. package/dist/cjs/yoo-virtual-item.cjs.entry.js +3 -3
  355. package/dist/cjs/yoo-virtual-scroll.cjs.entry.js +4 -4
  356. package/dist/cjs/yoo-waitlist-location-result.cjs.entry.js +3 -3
  357. package/dist/cjs/yoo-waitlist-location-start.cjs.entry.js +3 -3
  358. package/dist/cjs/yoo-walkthrough.cjs.entry.js +3 -3
  359. package/dist/cjs/yoo-web-menu.cjs.entry.js +4 -4
  360. package/dist/cjs/yoo-webcam.cjs.entry.js +3 -3
  361. package/dist/cjs/yoo-welcome-banner.cjs.entry.js +4 -4
  362. package/dist/cjs/yoo-widget-chart.cjs.entry.js +3 -3
  363. package/dist/cjs/yoo-widget-small-size.cjs.entry.js +3 -3
  364. package/dist/cjs/yoo-widget-tab.cjs.entry.js +3 -3
  365. package/dist/cjs/yoo-widget-tile.cjs.entry.js +3 -3
  366. package/dist/cjs/yoo-workflow-state-dialog.cjs.entry.js +3 -3
  367. package/dist/cjs/yoo-workflow-state.cjs.entry.js +3 -3
  368. package/dist/cjs/yoo-workflow.cjs.entry.js +6 -6
  369. package/dist/cjs/yoo-zebra.cjs.entry.js +3 -3
  370. package/dist/cjs/yoo-zoom.cjs.entry.js +3 -3
  371. package/dist/collection/components/1.atoms/avatar/avatar.css +2 -1
  372. package/dist/collection/components/2.molecules/accordion/accordion.js +2 -1
  373. package/dist/collection/components/2.molecules/modal/modal.js +3 -2
  374. package/dist/collection/components/2.molecules/scroll-to-button/scroll-to-button.js +1 -1
  375. package/dist/collection/components/2.molecules/slide/slide.css +2 -2
  376. package/dist/collection/components/2.molecules/slides/slides.css +2 -2
  377. package/dist/collection/components/entities/card/card.css +2 -1
  378. package/dist/collection/components/entities/card-image/card-image.css +24 -1
  379. package/dist/collection/components/entities/card-placeholder/card-placeholder.js +1 -1
  380. package/dist/collection/components/entities/entity/constants/index.js +1 -0
  381. package/dist/collection/components/entities/entity/entity.js +1 -1
  382. package/dist/collection/components/form/form-autocomplete/form-autocomplete.css +4 -0
  383. package/dist/collection/components/form/form-autocomplete/form-autocomplete.js +3 -2
  384. package/dist/collection/components/form/form-autocomplete-dialog/form-autocomplete-dialog.js +1 -1
  385. package/dist/collection/components/form/form-dynamic/form-dynamic.js +1 -1
  386. package/dist/collection/components/form/form-entity-value-pairs/form-entity-value-pairs.js +1 -1
  387. package/dist/collection/components/form/form-table/form-table.js +1 -1
  388. package/dist/collection/components/form-creator/form-creator-block-expandable/form-creator-block-expandable.css +58 -61
  389. package/dist/collection/components/form-creator/form-creator-block-simple/form-creator-block-simple.css +6 -9
  390. package/dist/collection/components/form-creator/form-creator-condition-block/form-creator-condition-block.css +6 -9
  391. package/dist/collection/components/form-creator/form-creator-field-selector/form-creator-field-selector.js +43 -2
  392. package/dist/collection/components/form-creator/form-creator-score-expandable/form-creator-score-expandable.css +40 -34
  393. package/dist/collection/components/form-creator/form-creator-translate/form-creator-translate.js +2 -2
  394. package/dist/collection/components/grid/grid/grid.js +3 -2
  395. package/dist/collection/components/grid/grid-calendar/grid-calendar.js +1 -1
  396. package/dist/collection/components/grid/kanban/kanban.js +1 -1
  397. package/dist/collection/feature-communicate/feed/card-feed/default/card-feed.js +1 -1
  398. package/dist/collection/feature-communicate/feed/user-wizard/user-wizard.js +24 -1
  399. package/dist/collection/feature-operate/mission/announcement-heading/announcement-heading.css +19 -4
  400. package/dist/collection/feature-operate/mission/announcement-heading/announcement-heading.js +14 -1
  401. package/dist/collection/feature-operate/mission/helpers/missions-helpers.js +2 -2
  402. package/dist/collection/feature-operate/mission/mission-heading/mission-heading.css +3 -3
  403. package/dist/collection/feature-platform/admin/draw-flow/draw-flow.css +155 -76
  404. package/dist/collection/feature-platform/admin/draw-flow/draw-flow.js +79 -31
  405. package/dist/collection/feature-platform/app/app/app.js +1 -1
  406. package/dist/collection/feature-platform/menu/side-menu/side-menu.js +2 -1
  407. package/dist/design-system/{button.factory-548f00ff.js → button.factory-267a47c5.js} +2 -2
  408. package/dist/design-system/{camera-helpers-b16f47f2.js → camera-helpers-0fe4abe6.js} +3 -3
  409. package/dist/{esm/chat-helpers-e8a3a6e2.js → design-system/chat-helpers-584b7b94.js} +2 -2
  410. package/dist/{esm/common-helpers-641f84cf.js → design-system/common-helpers-9287d544.js} +2 -2
  411. package/dist/design-system/design-system.esm.js +1 -1
  412. package/dist/design-system/{draggable-dots-helpers-79bf1f7a.js → draggable-dots-helpers-56d1cde1.js} +2 -2
  413. package/dist/{esm/draggable-tags-helpers-c1097a8c.js → design-system/draggable-tags-helpers-7112f15c.js} +2 -2
  414. package/dist/{esm/entities-helpers-2a80a41c.js → design-system/entities-helpers-d9aabd07.js} +3 -3
  415. package/dist/design-system/{filters-helpers-3305ff76.js → filters-helpers-6f2cf95d.js} +3 -3
  416. package/dist/design-system/{form-choice-helpers-49666400.js → form-choice-helpers-4ef33480.js} +5 -5
  417. package/dist/{esm/form-helpers-4ff88a48.js → design-system/form-helpers-d65b2153.js} +3 -3
  418. package/dist/{esm/form-input-helpers-7ecb9d6b.js → design-system/form-input-helpers-0d25ddc9.js} +4 -4
  419. package/dist/design-system/{form-text-area-helpers-f1a0044f.js → form-text-area-helpers-ee7de2a0.js} +2 -2
  420. package/dist/design-system/{grid-renderers-15a38038.js → grid-renderers-67150c27.js} +7 -7
  421. package/dist/{esm/incentive-helpers-9b9177ec.js → design-system/incentive-helpers-16da150d.js} +3 -3
  422. package/dist/design-system/{index-c79e2959.js → index-3a831972.js} +14 -2
  423. package/dist/{esm/index-4495b427.js → design-system/index-91143f04.js} +1 -1
  424. package/dist/{esm/index-673b1a64.js → design-system/index-a168bec8.js} +1 -1
  425. package/dist/{esm/index-77dfdf51.js → design-system/index-a40f7726.js} +1 -1
  426. package/dist/design-system/{index-51fc9b51.js → index-a6bc8964.js} +2 -2
  427. package/dist/{esm/index-181fe32c.js → design-system/index-af2cdf5e.js} +3 -3
  428. package/dist/{esm/index-1c9c7197.js → design-system/index-c01ccc82.js} +3 -3
  429. package/dist/design-system/index-cf714d9a.js +1 -0
  430. package/dist/design-system/index-e991ab7c.js +1 -0
  431. package/dist/design-system/{localForage-1804a51c.js → localForage-9449ed63.js} +2 -2
  432. package/dist/{esm/map-helpers-6ffcb9df.js → design-system/map-helpers-69e9f79b.js} +2 -2
  433. package/dist/design-system/{mission-locked-banner-9be5e25c.js → mission-locked-banner-6df7a16d.js} +2 -2
  434. package/dist/design-system/{missions-helpers-f4a522bb.js → missions-helpers-e4c81563.js} +4 -4
  435. package/dist/design-system/{modal-animations-89e5badf.js → modal-animations-2e37179c.js} +2 -2
  436. package/dist/{esm/operation-helpers-888900f4.js → design-system/operation-helpers-1b224c8c.js} +2 -2
  437. package/dist/{esm/overlays-e3cdcf07.js → design-system/overlays-01369a07.js} +2 -2
  438. package/dist/design-system/{overlays-8ed6c5e4.js → overlays-a6b28f2f.js} +3 -3
  439. package/dist/design-system/swiper-91a35c4c.js +12 -0
  440. package/dist/{esm/theme-e481c7a9.js → design-system/theme-d99da4dd.js} +2 -2
  441. package/dist/{esm/tippy.esm-0dbfaeec.js → design-system/tippy.esm-dd3e74f7.js} +1 -1
  442. package/dist/design-system/{video-player-helpers-ce9c661b.js → video-player-helpers-8d8c2b63.js} +4 -4
  443. package/dist/{esm/web-3dd9ef35.js → design-system/web-415ce403.js} +2 -2
  444. package/dist/{esm/web-9ecc48b4.js → design-system/web-83addf61.js} +4 -4
  445. package/dist/{esm/web-4475031c.js → design-system/web-a7649898.js} +2 -2
  446. package/dist/{esm/web-ce74eca3.js → design-system/web-be0e2f20.js} +2 -2
  447. package/dist/design-system/yoo-about.entry.js +3 -3
  448. package/dist/design-system/yoo-accordion.entry.js +8 -8
  449. package/dist/design-system/yoo-action-sheet-controller.entry.js +4 -4
  450. package/dist/design-system/yoo-action-sheet.entry.js +6 -6
  451. package/dist/design-system/yoo-ag-grid.entry.js +8 -8
  452. package/dist/design-system/yoo-alert.entry.js +6 -6
  453. package/dist/design-system/yoo-amap.entry.js +5 -5
  454. package/dist/design-system/yoo-announcement-heading.entry.js +16 -7
  455. package/dist/design-system/yoo-app.entry.js +3 -3
  456. package/dist/design-system/yoo-audio-player.entry.js +4 -4
  457. package/dist/design-system/yoo-audio-recorder-dialog.entry.js +4 -4
  458. package/dist/design-system/yoo-avatar.entry.js +4 -4
  459. package/dist/design-system/yoo-avatars.entry.js +3 -3
  460. package/dist/design-system/yoo-background.entry.js +4 -4
  461. package/dist/design-system/yoo-banner.entry.js +4 -4
  462. package/dist/design-system/yoo-barcode-dialog.entry.js +3 -3
  463. package/dist/design-system/yoo-battle-count-down.entry.js +4 -4
  464. package/dist/design-system/yoo-battle-result.entry.js +3 -3
  465. package/dist/design-system/yoo-battle-user-stats.entry.js +4 -4
  466. package/dist/design-system/yoo-breadcrumbs.entry.js +3 -3
  467. package/dist/design-system/yoo-button.entry.js +4 -4
  468. package/dist/design-system/yoo-calendar.entry.js +3 -3
  469. package/dist/design-system/yoo-camera-preview-dialog.entry.js +6 -6
  470. package/dist/design-system/yoo-card-battle-result.entry.js +3 -3
  471. package/dist/design-system/yoo-card-battle.entry.js +3 -3
  472. package/dist/design-system/yoo-card-calendar.entry.js +4 -4
  473. package/dist/design-system/yoo-card-campaign.entry.js +4 -4
  474. package/dist/design-system/yoo-card-cell.entry.js +4 -4
  475. package/dist/design-system/yoo-card-chat.entry.js +3 -3
  476. package/dist/design-system/yoo-card-course-row-compact.entry.js +3 -3
  477. package/dist/design-system/yoo-card-course-row.entry.js +5 -5
  478. package/dist/design-system/yoo-card-course.entry.js +3 -3
  479. package/dist/design-system/yoo-card-feed-row.entry.js +3 -3
  480. package/dist/design-system/yoo-card-feed.entry.js +7 -7
  481. package/dist/design-system/yoo-card-file.entry.js +3 -3
  482. package/dist/design-system/yoo-card-image.entry.js +4 -4
  483. package/dist/design-system/yoo-card-inbox.entry.js +3 -3
  484. package/dist/design-system/yoo-card-incentive-rank.entry.js +3 -3
  485. package/dist/design-system/yoo-card-incentive.entry.js +5 -5
  486. package/dist/design-system/yoo-card-kanban.entry.js +4 -4
  487. package/dist/design-system/yoo-card-lesson.entry.js +4 -4
  488. package/dist/design-system/yoo-card-list-collapsible.entry.js +4 -4
  489. package/dist/design-system/yoo-card-list-color.entry.js +3 -3
  490. package/dist/design-system/yoo-card-list-simple.entry.js +4 -4
  491. package/dist/design-system/yoo-card-list.entry.js +4 -4
  492. package/dist/design-system/yoo-card-location.entry.js +3 -3
  493. package/dist/design-system/yoo-card-media.entry.js +4 -4
  494. package/dist/design-system/yoo-card-menu.entry.js +4 -4
  495. package/dist/design-system/yoo-card-notification.entry.js +3 -3
  496. package/dist/design-system/yoo-card-plan.entry.js +4 -4
  497. package/dist/design-system/yoo-card-progress.entry.js +3 -3
  498. package/dist/design-system/yoo-card-recommendation.entry.js +4 -4
  499. package/dist/design-system/yoo-card-sticky.entry.js +4 -4
  500. package/dist/design-system/yoo-card-video.entry.js +3 -3
  501. package/dist/design-system/yoo-card.entry.js +1 -1
  502. package/dist/design-system/yoo-chart.entry.js +3 -3
  503. package/dist/design-system/yoo-chat-message-dialog.entry.js +4 -4
  504. package/dist/design-system/yoo-chat-message-preview.entry.js +3 -3
  505. package/dist/design-system/yoo-chat-message.entry.js +5 -5
  506. package/dist/design-system/yoo-chat.entry.js +7 -7
  507. package/dist/design-system/yoo-collapsible.entry.js +3 -3
  508. package/dist/design-system/yoo-color-selector.entry.js +3 -3
  509. package/dist/design-system/yoo-community-detail.entry.js +4 -4
  510. package/dist/design-system/yoo-context-menu-dialog.entry.js +4 -4
  511. package/dist/design-system/yoo-context-menu.entry.js +4 -4
  512. package/dist/design-system/yoo-copyright.entry.js +3 -3
  513. package/dist/design-system/yoo-count-down.entry.js +4 -4
  514. package/dist/design-system/yoo-course-info-card.entry.js +3 -3
  515. package/dist/design-system/yoo-course-summary.entry.js +4 -4
  516. package/dist/design-system/yoo-dashboard-detail.entry.js +3 -3
  517. package/dist/design-system/yoo-date.entry.js +3 -3
  518. package/dist/design-system/yoo-detail-bar.entry.js +4 -4
  519. package/dist/design-system/yoo-device-list.entry.js +3 -3
  520. package/dist/design-system/yoo-device.entry.js +3 -3
  521. package/dist/design-system/yoo-draw-flow.entry.js +39 -21
  522. package/dist/design-system/yoo-empty-state.entry.js +1 -1
  523. package/dist/design-system/yoo-entity-query-builder.entry.js +4 -4
  524. package/dist/design-system/yoo-entity-search-dialog.entry.js +4 -4
  525. package/dist/design-system/yoo-entity-search-filters.entry.js +5 -5
  526. package/dist/design-system/yoo-entity-search-recent.entry.js +3 -3
  527. package/dist/design-system/yoo-entity-search-sorts.entry.js +4 -4
  528. package/dist/design-system/yoo-entity-search-tags.entry.js +4 -4
  529. package/dist/design-system/yoo-entity-search.entry.js +4 -4
  530. package/dist/design-system/yoo-entity.entry.js +12 -11
  531. package/dist/design-system/yoo-feed-detail.entry.js +6 -6
  532. package/dist/design-system/yoo-flag.entry.js +3 -3
  533. package/dist/design-system/yoo-form-audience.entry.js +5 -5
  534. package/dist/design-system/yoo-form-autocomplete-dialog.entry.js +4 -4
  535. package/dist/design-system/yoo-form-autocomplete.entry.js +7 -6
  536. package/dist/design-system/yoo-form-barcode-dialog.entry.js +4 -4
  537. package/dist/design-system/yoo-form-barcode.entry.js +5 -5
  538. package/dist/design-system/yoo-form-calendar-dialog.entry.js +4 -4
  539. package/dist/design-system/yoo-form-capture-map-dialog.entry.js +3 -3
  540. package/dist/design-system/yoo-form-capture-tag-dialog.entry.js +4 -4
  541. package/dist/design-system/yoo-form-capture-view-dialog.entry.js +4 -4
  542. package/dist/design-system/yoo-form-capture-webcam-dialog.entry.js +5 -5
  543. package/dist/design-system/yoo-form-capture.entry.js +7 -7
  544. package/dist/design-system/yoo-form-carousel.entry.js +4 -4
  545. package/dist/design-system/yoo-form-catalog-dialog.entry.js +4 -4
  546. package/dist/design-system/yoo-form-catalog.entry.js +5 -5
  547. package/dist/design-system/yoo-form-categorize-words.entry.js +7 -7
  548. package/dist/design-system/yoo-form-checkbox.entry.js +5 -5
  549. package/dist/design-system/yoo-form-checklist.entry.js +5 -5
  550. package/dist/design-system/yoo-form-choice-button.entry.js +7 -7
  551. package/dist/design-system/yoo-form-choice-card.entry.js +7 -7
  552. package/dist/design-system/yoo-form-choice-chat.entry.js +7 -7
  553. package/dist/design-system/yoo-form-choice-image.entry.js +7 -7
  554. package/dist/design-system/yoo-form-choice-radio.entry.js +7 -7
  555. package/dist/design-system/yoo-form-color-field.entry.js +5 -5
  556. package/dist/design-system/yoo-form-color-picker.entry.js +3 -3
  557. package/dist/design-system/yoo-form-conditions.entry.js +3 -3
  558. package/dist/design-system/yoo-form-connect.entry.js +6 -6
  559. package/dist/design-system/yoo-form-creator-block-expandable.entry.js +6 -6
  560. package/dist/design-system/yoo-form-creator-block-simple.entry.js +5 -5
  561. package/dist/design-system/yoo-form-creator-condition-block.entry.js +5 -5
  562. package/dist/design-system/yoo-form-creator-field-selector.entry.js +10 -6
  563. package/dist/design-system/yoo-form-creator-header.entry.js +4 -4
  564. package/dist/design-system/yoo-form-creator-live-preview.entry.js +4 -4
  565. package/dist/design-system/yoo-form-creator-overlay.entry.js +3 -3
  566. package/dist/design-system/yoo-form-creator-page-card-list.entry.js +4 -4
  567. package/dist/design-system/yoo-form-creator-page-card.entry.js +4 -4
  568. package/dist/design-system/yoo-form-creator-score-expandable.entry.js +5 -5
  569. package/dist/design-system/yoo-form-creator-scoring-card-list.entry.js +3 -3
  570. package/dist/design-system/yoo-form-creator-scoring-card.entry.js +3 -3
  571. package/dist/design-system/yoo-form-creator-scoring-quick-setup.entry.js +3 -3
  572. package/dist/design-system/yoo-form-creator-translate-dialog.entry.js +4 -4
  573. package/dist/design-system/yoo-form-creator-translate.entry.js +5 -5
  574. package/dist/design-system/yoo-form-creator-workflow-side-selection.entry.js +5 -5
  575. package/dist/design-system/yoo-form-creator-workflow-step.entry.js +4 -4
  576. package/dist/design-system/yoo-form-creator.entry.js +7 -7
  577. package/dist/design-system/yoo-form-date-time.entry.js +5 -5
  578. package/dist/design-system/yoo-form-daterange.entry.js +5 -5
  579. package/dist/design-system/yoo-form-document-dialog.entry.js +4 -4
  580. package/dist/design-system/yoo-form-document.entry.js +5 -5
  581. package/dist/design-system/yoo-form-dynamic-dialog.entry.js +5 -5
  582. package/dist/design-system/yoo-form-dynamic.entry.js +8 -8
  583. package/dist/design-system/yoo-form-emailreport.entry.js +5 -5
  584. package/dist/design-system/yoo-form-entity-value-pairs.entry.js +3 -3
  585. package/dist/design-system/yoo-form-explanation.entry.js +3 -3
  586. package/dist/design-system/yoo-form-feed-preview.entry.js +5 -5
  587. package/dist/design-system/yoo-form-feedback.entry.js +5 -5
  588. package/dist/design-system/yoo-form-filter-date.entry.js +3 -3
  589. package/dist/design-system/yoo-form-filter-number.entry.js +3 -3
  590. package/dist/design-system/yoo-form-filter-text.entry.js +3 -3
  591. package/dist/design-system/yoo-form-filter.entry.js +4 -4
  592. package/dist/design-system/yoo-form-footer.entry.js +6 -6
  593. package/dist/design-system/yoo-form-formula.entry.js +5 -5
  594. package/dist/design-system/yoo-form-hotzones-creator.entry.js +3 -3
  595. package/dist/design-system/yoo-form-hotzones.entry.js +7 -7
  596. package/dist/design-system/yoo-form-iframe-dialog.entry.js +3 -3
  597. package/dist/design-system/yoo-form-image-collection.entry.js +6 -6
  598. package/dist/design-system/yoo-form-image-tagging-creator.entry.js +6 -6
  599. package/dist/design-system/yoo-form-image-tagging.entry.js +9 -9
  600. package/dist/design-system/yoo-form-incentive-participants.entry.js +1 -1
  601. package/dist/design-system/yoo-form-incentive-targets.entry.js +5 -5
  602. package/dist/design-system/yoo-form-input-comments.entry.js +3 -3
  603. package/dist/design-system/yoo-form-input-container.entry.js +6 -6
  604. package/dist/design-system/yoo-form-input.entry.js +9 -9
  605. package/dist/design-system/yoo-form-json.entry.js +6 -6
  606. package/dist/design-system/yoo-form-location.entry.js +5 -5
  607. package/dist/design-system/yoo-form-missing-word.entry.js +7 -7
  608. package/dist/design-system/yoo-form-missionfield.entry.js +5 -5
  609. package/dist/design-system/yoo-form-multi-input.entry.js +5 -5
  610. package/dist/design-system/yoo-form-number-picker-dialog.entry.js +3 -3
  611. package/dist/design-system/yoo-form-number-picker.entry.js +3 -3
  612. package/dist/design-system/yoo-form-opening-hours.entry.js +3 -3
  613. package/dist/design-system/yoo-form-permissions.entry.js +4 -4
  614. package/dist/design-system/yoo-form-phone-number.entry.js +3 -3
  615. package/dist/design-system/yoo-form-plan-assign.entry.js +5 -5
  616. package/dist/design-system/yoo-form-plan.entry.js +5 -5
  617. package/dist/design-system/yoo-form-pricecheck.entry.js +5 -5
  618. package/dist/design-system/yoo-form-product-batch.entry.js +6 -6
  619. package/dist/design-system/yoo-form-products-sales.entry.js +5 -5
  620. package/dist/design-system/yoo-form-progress-indicator.entry.js +4 -4
  621. package/dist/design-system/yoo-form-qrcode.entry.js +5 -5
  622. package/dist/design-system/yoo-form-query-builder.entry.js +5 -5
  623. package/dist/design-system/yoo-form-range.entry.js +5 -5
  624. package/dist/design-system/yoo-form-ranking.entry.js +6 -6
  625. package/dist/design-system/yoo-form-recap-step.entry.js +3 -3
  626. package/dist/design-system/yoo-form-recurrence-delay.entry.js +3 -3
  627. package/dist/design-system/yoo-form-recurrence-preview.entry.js +4 -4
  628. package/dist/design-system/yoo-form-recurrence.entry.js +3 -3
  629. package/dist/design-system/yoo-form-reorder.entry.js +5 -5
  630. package/dist/design-system/yoo-form-scorm.entry.js +5 -5
  631. package/dist/design-system/yoo-form-shopping.entry.js +5 -5
  632. package/dist/design-system/yoo-form-signature-pad-dialog.entry.js +4 -4
  633. package/dist/design-system/yoo-form-signature-pad.entry.js +5 -5
  634. package/dist/design-system/yoo-form-sorts.entry.js +5 -5
  635. package/dist/design-system/yoo-form-star-rating.entry.js +5 -5
  636. package/dist/design-system/yoo-form-stripe-card.entry.js +5 -5
  637. package/dist/design-system/yoo-form-swipe-cards.entry.js +6 -6
  638. package/dist/design-system/yoo-form-table.entry.js +5 -5
  639. package/dist/design-system/yoo-form-task.entry.js +5 -5
  640. package/dist/design-system/yoo-form-text-area.entry.js +6 -6
  641. package/dist/design-system/yoo-form-text-editor.entry.js +7 -7
  642. package/dist/design-system/yoo-form-time.entry.js +5 -5
  643. package/dist/design-system/yoo-form-timeslots.entry.js +5 -5
  644. package/dist/design-system/yoo-form-todo-dialog.entry.js +4 -4
  645. package/dist/design-system/yoo-form-todo-list-dialog.entry.js +5 -5
  646. package/dist/design-system/yoo-form-todo-list-task.entry.js +5 -5
  647. package/dist/design-system/yoo-form-todo-list.entry.js +5 -5
  648. package/dist/design-system/yoo-form-todo-single.entry.js +5 -5
  649. package/dist/design-system/yoo-form-todo.entry.js +5 -5
  650. package/dist/design-system/yoo-form-toggle.entry.js +5 -5
  651. package/dist/design-system/yoo-form-uploader.entry.js +5 -5
  652. package/dist/design-system/yoo-form-videoplayer.entry.js +5 -5
  653. package/dist/design-system/yoo-form-wiki.entry.js +5 -5
  654. package/dist/design-system/yoo-grid-calendar.entry.js +6 -6
  655. package/dist/design-system/yoo-grid.entry.js +16 -15
  656. package/dist/design-system/yoo-gridstack.entry.js +4 -4
  657. package/dist/design-system/yoo-header.entry.js +4 -4
  658. package/dist/design-system/yoo-healthscore-dialog.entry.js +4 -4
  659. package/dist/design-system/yoo-healthscore.entry.js +3 -3
  660. package/dist/design-system/yoo-image-cropper-dialog.entry.js +3 -3
  661. package/dist/design-system/yoo-img.entry.js +5 -5
  662. package/dist/design-system/yoo-incentive-detail.entry.js +5 -5
  663. package/dist/design-system/yoo-input-bar.entry.js +1755 -1950
  664. package/dist/design-system/yoo-ion-alert-controller.entry.js +4 -4
  665. package/dist/design-system/yoo-ion-content.entry.js +3 -3
  666. package/dist/design-system/yoo-ion-footer.entry.js +4 -4
  667. package/dist/design-system/yoo-ion-infinite-scroll-content.entry.js +3 -3
  668. package/dist/design-system/yoo-ion-infinite-scroll.entry.js +3 -3
  669. package/dist/design-system/yoo-ion-item-divider.entry.js +5 -5
  670. package/dist/design-system/yoo-ion-item-options.entry.js +4 -4
  671. package/dist/design-system/yoo-ion-item-sliding.entry.js +5 -5
  672. package/dist/design-system/yoo-ion-item.entry.js +5 -5
  673. package/dist/design-system/yoo-ion-list.entry.js +4 -4
  674. package/dist/design-system/yoo-ion-modal-controller.entry.js +4 -4
  675. package/dist/design-system/yoo-ion-modal.entry.js +9 -9
  676. package/dist/design-system/yoo-ion-refresher.entry.js +4 -4
  677. package/dist/design-system/yoo-ion-scroll.entry.js +4 -4
  678. package/dist/design-system/yoo-ion-slide.entry.js +4 -4
  679. package/dist/{esm/yoo-ion-slides-21356ade.js → design-system/yoo-ion-slides-e4104281.js} +25 -22
  680. package/dist/design-system/yoo-ion-slides.entry.js +6 -6
  681. package/dist/design-system/yoo-ion-toast-controller.entry.js +4 -4
  682. package/dist/design-system/yoo-kanban.entry.js +4 -4
  683. package/dist/design-system/yoo-kpi-card.entry.js +3 -3
  684. package/dist/design-system/yoo-kpi-container.entry.js +4 -4
  685. package/dist/design-system/yoo-kpi-external.entry.js +3 -3
  686. package/dist/design-system/yoo-kpi.entry.js +3 -3
  687. package/dist/design-system/yoo-layout-sections.entry.js +3 -3
  688. package/dist/design-system/yoo-layout-tabs.entry.js +3 -3
  689. package/dist/design-system/yoo-layout-two-columns.entry.js +3 -3
  690. package/dist/design-system/yoo-lesson-detail-card.entry.js +3 -3
  691. package/dist/design-system/yoo-lesson-detail.entry.js +4 -4
  692. package/dist/design-system/yoo-lesson-heading.entry.js +4 -4
  693. package/dist/design-system/yoo-lesson-highscores.entry.js +3 -3
  694. package/dist/design-system/yoo-lesson-question-result.entry.js +3 -3
  695. package/dist/design-system/yoo-line-state.entry.js +1 -1
  696. package/dist/design-system/yoo-links-menu.entry.js +3 -3
  697. package/dist/design-system/yoo-links-preview.entry.js +5 -5
  698. package/dist/design-system/yoo-loader.entry.js +3 -3
  699. package/dist/design-system/yoo-location-info.entry.js +3 -3
  700. package/dist/design-system/yoo-location-map.entry.js +4 -4
  701. package/dist/design-system/yoo-login.entry.js +3 -3
  702. package/dist/design-system/yoo-lottie.entry.js +3 -3
  703. package/dist/design-system/yoo-map-gl.entry.js +4 -4
  704. package/dist/design-system/yoo-map-js.entry.js +5 -5
  705. package/dist/design-system/yoo-map-legend.entry.js +5 -5
  706. package/dist/design-system/yoo-map.entry.js +4 -4
  707. package/dist/design-system/yoo-markdown.entry.js +5 -5
  708. package/dist/design-system/yoo-memo-list-dialog.entry.js +3 -3
  709. package/dist/design-system/yoo-memo-list.entry.js +3 -3
  710. package/dist/design-system/yoo-mention-tag.entry.js +3 -3
  711. package/dist/design-system/yoo-mission-details.entry.js +5 -5
  712. package/dist/design-system/yoo-mission-heading.entry.js +7 -7
  713. package/dist/design-system/yoo-mission-score.entry.js +3 -3
  714. package/dist/design-system/yoo-mission-todo.entry.js +4 -4
  715. package/dist/design-system/yoo-mobile-tabbar-more.entry.js +3 -3
  716. package/dist/design-system/yoo-mobile-tabbar.entry.js +4 -4
  717. package/dist/design-system/yoo-modal.entry.js +4 -4
  718. package/dist/design-system/yoo-navbar.entry.js +4 -4
  719. package/dist/design-system/yoo-numbers-display.entry.js +4 -4
  720. package/dist/design-system/yoo-photo-editor.entry.js +8 -8
  721. package/dist/design-system/yoo-pivot-table.entry.js +8 -8
  722. package/dist/design-system/yoo-podium.entry.js +3 -3
  723. package/dist/design-system/yoo-profile-list.entry.js +3 -3
  724. package/dist/design-system/yoo-profile-summary.entry.js +4 -4
  725. package/dist/design-system/yoo-progress-bar.entry.js +3 -3
  726. package/dist/design-system/yoo-progress-loader.entry.js +3 -3
  727. package/dist/design-system/yoo-progress-recap.entry.js +3 -3
  728. package/dist/design-system/yoo-property-card.entry.js +4 -4
  729. package/dist/design-system/yoo-range.entry.js +5 -5
  730. package/dist/design-system/yoo-rating.entry.js +3 -3
  731. package/dist/design-system/yoo-reset-password.entry.js +3 -3
  732. package/dist/design-system/yoo-result-dialog.entry.js +4 -4
  733. package/dist/design-system/yoo-reveal.entry.js +3 -3
  734. package/dist/design-system/yoo-salesai-formula.entry.js +3 -3
  735. package/dist/design-system/yoo-scandit.entry.js +4 -4
  736. package/dist/design-system/yoo-scratch-card-creator.entry.js +3 -3
  737. package/dist/design-system/yoo-scratch-card.entry.js +5 -5
  738. package/dist/design-system/yoo-section-list.entry.js +3 -3
  739. package/dist/design-system/yoo-segmented-control.entry.js +3 -3
  740. package/dist/design-system/yoo-side-menu-tree.entry.js +3 -3
  741. package/dist/design-system/yoo-side-menu.entry.js +5 -4
  742. package/dist/design-system/yoo-slides-media.entry.js +6 -6
  743. package/dist/design-system/yoo-start-meeting-popup.entry.js +4 -4
  744. package/dist/design-system/yoo-tabs.entry.js +3 -3
  745. package/dist/design-system/yoo-text-sequence.entry.js +4 -4
  746. package/dist/design-system/yoo-text.entry.js +4 -4
  747. package/dist/design-system/yoo-toast.entry.js +5 -5
  748. package/dist/design-system/yoo-tooltip.entry.js +6 -6
  749. package/dist/design-system/yoo-truncate.entry.js +4 -4
  750. package/dist/design-system/yoo-truncated-line.entry.js +3 -3
  751. package/dist/design-system/yoo-user-detail.entry.js +3 -3
  752. package/dist/design-system/yoo-user-profile.entry.js +5 -5
  753. package/dist/design-system/yoo-user-wizard.entry.js +7 -5
  754. package/dist/design-system/yoo-videoplayer-core.entry.js +4 -4
  755. package/dist/design-system/yoo-videoplayer-dailymotion.entry.js +5 -5
  756. package/dist/design-system/yoo-videoplayer-videojs.entry.js +6 -6
  757. package/dist/design-system/yoo-videoplayer-vimeo.entry.js +5 -5
  758. package/dist/design-system/yoo-videoplayer-youtube.entry.js +5 -5
  759. package/dist/design-system/yoo-virtual-item.entry.js +3 -3
  760. package/dist/design-system/yoo-virtual-scroll.entry.js +4 -4
  761. package/dist/design-system/yoo-waitlist-location-result.entry.js +3 -3
  762. package/dist/design-system/yoo-waitlist-location-start.entry.js +3 -3
  763. package/dist/design-system/yoo-walkthrough.entry.js +3 -3
  764. package/dist/design-system/yoo-web-menu.entry.js +4 -4
  765. package/dist/design-system/yoo-webcam.entry.js +3 -3
  766. package/dist/design-system/yoo-welcome-banner.entry.js +4 -4
  767. package/dist/design-system/yoo-widget-chart.entry.js +3 -3
  768. package/dist/design-system/yoo-widget-small-size.entry.js +3 -3
  769. package/dist/design-system/yoo-widget-tab.entry.js +3 -3
  770. package/dist/design-system/yoo-widget-tile.entry.js +3 -3
  771. package/dist/design-system/yoo-workflow-state-dialog.entry.js +3 -3
  772. package/dist/design-system/yoo-workflow-state.entry.js +3 -3
  773. package/dist/design-system/yoo-workflow.entry.js +6 -6
  774. package/dist/design-system/yoo-zebra.entry.js +3 -3
  775. package/dist/design-system/yoo-zoom.entry.js +3 -3
  776. package/dist/esm/{button.factory-548f00ff.js → button.factory-267a47c5.js} +2 -2
  777. package/dist/esm/{camera-helpers-b16f47f2.js → camera-helpers-0fe4abe6.js} +3 -3
  778. package/dist/{design-system/chat-helpers-e8a3a6e2.js → esm/chat-helpers-584b7b94.js} +2 -2
  779. package/dist/{design-system/common-helpers-641f84cf.js → esm/common-helpers-9287d544.js} +2 -2
  780. package/dist/esm/design-system.js +1 -1
  781. package/dist/esm/{draggable-dots-helpers-79bf1f7a.js → draggable-dots-helpers-56d1cde1.js} +2 -2
  782. package/dist/{design-system/draggable-tags-helpers-c1097a8c.js → esm/draggable-tags-helpers-7112f15c.js} +2 -2
  783. package/dist/{design-system/entities-helpers-2a80a41c.js → esm/entities-helpers-d9aabd07.js} +3 -3
  784. package/dist/esm/{filters-helpers-3305ff76.js → filters-helpers-6f2cf95d.js} +3 -3
  785. package/dist/esm/{form-choice-helpers-49666400.js → form-choice-helpers-4ef33480.js} +5 -5
  786. package/dist/{design-system/form-helpers-4ff88a48.js → esm/form-helpers-d65b2153.js} +3 -3
  787. package/dist/{design-system/form-input-helpers-7ecb9d6b.js → esm/form-input-helpers-0d25ddc9.js} +4 -4
  788. package/dist/esm/{form-text-area-helpers-f1a0044f.js → form-text-area-helpers-ee7de2a0.js} +2 -2
  789. package/dist/esm/{grid-renderers-15a38038.js → grid-renderers-67150c27.js} +7 -7
  790. package/dist/{design-system/incentive-helpers-9b9177ec.js → esm/incentive-helpers-16da150d.js} +3 -3
  791. package/dist/esm/{index-c79e2959.js → index-3a831972.js} +14 -2
  792. package/dist/{design-system/index-4495b427.js → esm/index-91143f04.js} +1 -1
  793. package/dist/{design-system/index-673b1a64.js → esm/index-a168bec8.js} +1 -1
  794. package/dist/{design-system/index-77dfdf51.js → esm/index-a40f7726.js} +1 -1
  795. package/dist/esm/{index-51fc9b51.js → index-a6bc8964.js} +2 -2
  796. package/dist/{design-system/index-181fe32c.js → esm/index-af2cdf5e.js} +3 -3
  797. package/dist/{design-system/index-1c9c7197.js → esm/index-c01ccc82.js} +3 -3
  798. package/dist/esm/index-cf714d9a.js +1 -0
  799. package/dist/esm/index-e991ab7c.js +1 -0
  800. package/dist/esm/loader.js +1 -1
  801. package/dist/esm/{localForage-1804a51c.js → localForage-9449ed63.js} +2 -2
  802. package/dist/{design-system/map-helpers-6ffcb9df.js → esm/map-helpers-69e9f79b.js} +2 -2
  803. package/dist/esm/{mission-locked-banner-9be5e25c.js → mission-locked-banner-6df7a16d.js} +2 -2
  804. package/dist/esm/{missions-helpers-f4a522bb.js → missions-helpers-e4c81563.js} +4 -4
  805. package/dist/esm/{modal-animations-89e5badf.js → modal-animations-2e37179c.js} +2 -2
  806. package/dist/{design-system/operation-helpers-888900f4.js → esm/operation-helpers-1b224c8c.js} +2 -2
  807. package/dist/{design-system/overlays-e3cdcf07.js → esm/overlays-01369a07.js} +2 -2
  808. package/dist/esm/{overlays-8ed6c5e4.js → overlays-a6b28f2f.js} +3 -3
  809. package/dist/esm/swiper-91a35c4c.js +12 -0
  810. package/dist/{design-system/theme-e481c7a9.js → esm/theme-d99da4dd.js} +2 -2
  811. package/dist/{design-system/tippy.esm-0dbfaeec.js → esm/tippy.esm-dd3e74f7.js} +1 -1
  812. package/dist/esm/{video-player-helpers-ce9c661b.js → video-player-helpers-8d8c2b63.js} +4 -4
  813. package/dist/{design-system/web-3dd9ef35.js → esm/web-415ce403.js} +2 -2
  814. package/dist/{design-system/web-9ecc48b4.js → esm/web-83addf61.js} +4 -4
  815. package/dist/{design-system/web-4475031c.js → esm/web-a7649898.js} +2 -2
  816. package/dist/{design-system/web-ce74eca3.js → esm/web-be0e2f20.js} +2 -2
  817. package/dist/esm/yoo-about.entry.js +3 -3
  818. package/dist/esm/yoo-accordion.entry.js +8 -8
  819. package/dist/esm/yoo-action-sheet-controller.entry.js +4 -4
  820. package/dist/esm/yoo-action-sheet.entry.js +6 -6
  821. package/dist/esm/yoo-ag-grid.entry.js +8 -8
  822. package/dist/esm/yoo-alert.entry.js +6 -6
  823. package/dist/esm/yoo-amap.entry.js +5 -5
  824. package/dist/esm/yoo-announcement-heading.entry.js +16 -7
  825. package/dist/esm/yoo-app.entry.js +3 -3
  826. package/dist/esm/yoo-audio-player.entry.js +4 -4
  827. package/dist/esm/yoo-audio-recorder-dialog.entry.js +4 -4
  828. package/dist/esm/yoo-avatar.entry.js +4 -4
  829. package/dist/esm/yoo-avatars.entry.js +3 -3
  830. package/dist/esm/yoo-background.entry.js +4 -4
  831. package/dist/esm/yoo-banner.entry.js +4 -4
  832. package/dist/esm/yoo-barcode-dialog.entry.js +3 -3
  833. package/dist/esm/yoo-battle-count-down.entry.js +4 -4
  834. package/dist/esm/yoo-battle-result.entry.js +3 -3
  835. package/dist/esm/yoo-battle-user-stats.entry.js +4 -4
  836. package/dist/esm/yoo-breadcrumbs.entry.js +3 -3
  837. package/dist/esm/yoo-button.entry.js +4 -4
  838. package/dist/esm/yoo-calendar.entry.js +3 -3
  839. package/dist/esm/yoo-camera-preview-dialog.entry.js +6 -6
  840. package/dist/esm/yoo-card-battle-result.entry.js +3 -3
  841. package/dist/esm/yoo-card-battle.entry.js +3 -3
  842. package/dist/esm/yoo-card-calendar.entry.js +4 -4
  843. package/dist/esm/yoo-card-campaign.entry.js +4 -4
  844. package/dist/esm/yoo-card-cell.entry.js +4 -4
  845. package/dist/esm/yoo-card-chat.entry.js +3 -3
  846. package/dist/esm/yoo-card-course-row-compact.entry.js +3 -3
  847. package/dist/esm/yoo-card-course-row.entry.js +5 -5
  848. package/dist/esm/yoo-card-course.entry.js +3 -3
  849. package/dist/esm/yoo-card-feed-row.entry.js +3 -3
  850. package/dist/esm/yoo-card-feed.entry.js +7 -7
  851. package/dist/esm/yoo-card-file.entry.js +3 -3
  852. package/dist/esm/yoo-card-image.entry.js +4 -4
  853. package/dist/esm/yoo-card-inbox.entry.js +3 -3
  854. package/dist/esm/yoo-card-incentive-rank.entry.js +3 -3
  855. package/dist/esm/yoo-card-incentive.entry.js +5 -5
  856. package/dist/esm/yoo-card-kanban.entry.js +4 -4
  857. package/dist/esm/yoo-card-lesson.entry.js +4 -4
  858. package/dist/esm/yoo-card-list-collapsible.entry.js +4 -4
  859. package/dist/esm/yoo-card-list-color.entry.js +3 -3
  860. package/dist/esm/yoo-card-list-simple.entry.js +4 -4
  861. package/dist/esm/yoo-card-list.entry.js +4 -4
  862. package/dist/esm/yoo-card-location.entry.js +3 -3
  863. package/dist/esm/yoo-card-media.entry.js +4 -4
  864. package/dist/esm/yoo-card-menu.entry.js +4 -4
  865. package/dist/esm/yoo-card-notification.entry.js +3 -3
  866. package/dist/esm/yoo-card-plan.entry.js +4 -4
  867. package/dist/esm/yoo-card-progress.entry.js +3 -3
  868. package/dist/esm/yoo-card-recommendation.entry.js +4 -4
  869. package/dist/esm/yoo-card-sticky.entry.js +4 -4
  870. package/dist/esm/yoo-card-video.entry.js +3 -3
  871. package/dist/esm/yoo-card.entry.js +1 -1
  872. package/dist/esm/yoo-chart.entry.js +3 -3
  873. package/dist/esm/yoo-chat-message-dialog.entry.js +4 -4
  874. package/dist/esm/yoo-chat-message-preview.entry.js +3 -3
  875. package/dist/esm/yoo-chat-message.entry.js +5 -5
  876. package/dist/esm/yoo-chat.entry.js +7 -7
  877. package/dist/esm/yoo-collapsible.entry.js +3 -3
  878. package/dist/esm/yoo-color-selector.entry.js +3 -3
  879. package/dist/esm/yoo-community-detail.entry.js +4 -4
  880. package/dist/esm/yoo-context-menu-dialog.entry.js +4 -4
  881. package/dist/esm/yoo-context-menu.entry.js +4 -4
  882. package/dist/esm/yoo-copyright.entry.js +3 -3
  883. package/dist/esm/yoo-count-down.entry.js +4 -4
  884. package/dist/esm/yoo-course-info-card.entry.js +3 -3
  885. package/dist/esm/yoo-course-summary.entry.js +4 -4
  886. package/dist/esm/yoo-dashboard-detail.entry.js +3 -3
  887. package/dist/esm/yoo-date.entry.js +3 -3
  888. package/dist/esm/yoo-detail-bar.entry.js +4 -4
  889. package/dist/esm/yoo-device-list.entry.js +3 -3
  890. package/dist/esm/yoo-device.entry.js +3 -3
  891. package/dist/esm/yoo-draw-flow.entry.js +39 -21
  892. package/dist/esm/yoo-empty-state.entry.js +1 -1
  893. package/dist/esm/yoo-entity-query-builder.entry.js +4 -4
  894. package/dist/esm/yoo-entity-search-dialog.entry.js +4 -4
  895. package/dist/esm/yoo-entity-search-filters.entry.js +5 -5
  896. package/dist/esm/yoo-entity-search-recent.entry.js +3 -3
  897. package/dist/esm/yoo-entity-search-sorts.entry.js +4 -4
  898. package/dist/esm/yoo-entity-search-tags.entry.js +4 -4
  899. package/dist/esm/yoo-entity-search.entry.js +4 -4
  900. package/dist/esm/yoo-entity.entry.js +12 -11
  901. package/dist/esm/yoo-feed-detail.entry.js +6 -6
  902. package/dist/esm/yoo-flag.entry.js +3 -3
  903. package/dist/esm/yoo-form-audience.entry.js +5 -5
  904. package/dist/esm/yoo-form-autocomplete-dialog.entry.js +4 -4
  905. package/dist/esm/yoo-form-autocomplete.entry.js +7 -6
  906. package/dist/esm/yoo-form-barcode-dialog.entry.js +4 -4
  907. package/dist/esm/yoo-form-barcode.entry.js +5 -5
  908. package/dist/esm/yoo-form-calendar-dialog.entry.js +4 -4
  909. package/dist/esm/yoo-form-capture-map-dialog.entry.js +3 -3
  910. package/dist/esm/yoo-form-capture-tag-dialog.entry.js +4 -4
  911. package/dist/esm/yoo-form-capture-view-dialog.entry.js +4 -4
  912. package/dist/esm/yoo-form-capture-webcam-dialog.entry.js +5 -5
  913. package/dist/esm/yoo-form-capture.entry.js +7 -7
  914. package/dist/esm/yoo-form-carousel.entry.js +4 -4
  915. package/dist/esm/yoo-form-catalog-dialog.entry.js +4 -4
  916. package/dist/esm/yoo-form-catalog.entry.js +5 -5
  917. package/dist/esm/yoo-form-categorize-words.entry.js +7 -7
  918. package/dist/esm/yoo-form-checkbox.entry.js +5 -5
  919. package/dist/esm/yoo-form-checklist.entry.js +5 -5
  920. package/dist/esm/yoo-form-choice-button.entry.js +7 -7
  921. package/dist/esm/yoo-form-choice-card.entry.js +7 -7
  922. package/dist/esm/yoo-form-choice-chat.entry.js +7 -7
  923. package/dist/esm/yoo-form-choice-image.entry.js +7 -7
  924. package/dist/esm/yoo-form-choice-radio.entry.js +7 -7
  925. package/dist/esm/yoo-form-color-field.entry.js +5 -5
  926. package/dist/esm/yoo-form-color-picker.entry.js +3 -3
  927. package/dist/esm/yoo-form-conditions.entry.js +3 -3
  928. package/dist/esm/yoo-form-connect.entry.js +6 -6
  929. package/dist/esm/yoo-form-creator-block-expandable.entry.js +6 -6
  930. package/dist/esm/yoo-form-creator-block-simple.entry.js +5 -5
  931. package/dist/esm/yoo-form-creator-condition-block.entry.js +5 -5
  932. package/dist/esm/yoo-form-creator-field-selector.entry.js +10 -6
  933. package/dist/esm/yoo-form-creator-header.entry.js +4 -4
  934. package/dist/esm/yoo-form-creator-live-preview.entry.js +4 -4
  935. package/dist/esm/yoo-form-creator-overlay.entry.js +3 -3
  936. package/dist/esm/yoo-form-creator-page-card-list.entry.js +4 -4
  937. package/dist/esm/yoo-form-creator-page-card.entry.js +4 -4
  938. package/dist/esm/yoo-form-creator-score-expandable.entry.js +5 -5
  939. package/dist/esm/yoo-form-creator-scoring-card-list.entry.js +3 -3
  940. package/dist/esm/yoo-form-creator-scoring-card.entry.js +3 -3
  941. package/dist/esm/yoo-form-creator-scoring-quick-setup.entry.js +3 -3
  942. package/dist/esm/yoo-form-creator-translate-dialog.entry.js +4 -4
  943. package/dist/esm/yoo-form-creator-translate.entry.js +5 -5
  944. package/dist/esm/yoo-form-creator-workflow-side-selection.entry.js +5 -5
  945. package/dist/esm/yoo-form-creator-workflow-step.entry.js +4 -4
  946. package/dist/esm/yoo-form-creator.entry.js +7 -7
  947. package/dist/esm/yoo-form-date-time.entry.js +5 -5
  948. package/dist/esm/yoo-form-daterange.entry.js +5 -5
  949. package/dist/esm/yoo-form-document-dialog.entry.js +4 -4
  950. package/dist/esm/yoo-form-document.entry.js +5 -5
  951. package/dist/esm/yoo-form-dynamic-dialog.entry.js +5 -5
  952. package/dist/esm/yoo-form-dynamic.entry.js +8 -8
  953. package/dist/esm/yoo-form-emailreport.entry.js +5 -5
  954. package/dist/esm/yoo-form-entity-value-pairs.entry.js +3 -3
  955. package/dist/esm/yoo-form-explanation.entry.js +3 -3
  956. package/dist/esm/yoo-form-feed-preview.entry.js +5 -5
  957. package/dist/esm/yoo-form-feedback.entry.js +5 -5
  958. package/dist/esm/yoo-form-filter-date.entry.js +3 -3
  959. package/dist/esm/yoo-form-filter-number.entry.js +3 -3
  960. package/dist/esm/yoo-form-filter-text.entry.js +3 -3
  961. package/dist/esm/yoo-form-filter.entry.js +4 -4
  962. package/dist/esm/yoo-form-footer.entry.js +6 -6
  963. package/dist/esm/yoo-form-formula.entry.js +5 -5
  964. package/dist/esm/yoo-form-hotzones-creator.entry.js +3 -3
  965. package/dist/esm/yoo-form-hotzones.entry.js +7 -7
  966. package/dist/esm/yoo-form-iframe-dialog.entry.js +3 -3
  967. package/dist/esm/yoo-form-image-collection.entry.js +6 -6
  968. package/dist/esm/yoo-form-image-tagging-creator.entry.js +6 -6
  969. package/dist/esm/yoo-form-image-tagging.entry.js +9 -9
  970. package/dist/esm/yoo-form-incentive-participants.entry.js +1 -1
  971. package/dist/esm/yoo-form-incentive-targets.entry.js +5 -5
  972. package/dist/esm/yoo-form-input-comments.entry.js +3 -3
  973. package/dist/esm/yoo-form-input-container.entry.js +6 -6
  974. package/dist/esm/yoo-form-input.entry.js +9 -9
  975. package/dist/esm/yoo-form-json.entry.js +6 -6
  976. package/dist/esm/yoo-form-location.entry.js +5 -5
  977. package/dist/esm/yoo-form-missing-word.entry.js +7 -7
  978. package/dist/esm/yoo-form-missionfield.entry.js +5 -5
  979. package/dist/esm/yoo-form-multi-input.entry.js +5 -5
  980. package/dist/esm/yoo-form-number-picker-dialog.entry.js +3 -3
  981. package/dist/esm/yoo-form-number-picker.entry.js +3 -3
  982. package/dist/esm/yoo-form-opening-hours.entry.js +3 -3
  983. package/dist/esm/yoo-form-permissions.entry.js +4 -4
  984. package/dist/esm/yoo-form-phone-number.entry.js +3 -3
  985. package/dist/esm/yoo-form-plan-assign.entry.js +5 -5
  986. package/dist/esm/yoo-form-plan.entry.js +5 -5
  987. package/dist/esm/yoo-form-pricecheck.entry.js +5 -5
  988. package/dist/esm/yoo-form-product-batch.entry.js +6 -6
  989. package/dist/esm/yoo-form-products-sales.entry.js +5 -5
  990. package/dist/esm/yoo-form-progress-indicator.entry.js +4 -4
  991. package/dist/esm/yoo-form-qrcode.entry.js +5 -5
  992. package/dist/esm/yoo-form-query-builder.entry.js +5 -5
  993. package/dist/esm/yoo-form-range.entry.js +5 -5
  994. package/dist/esm/yoo-form-ranking.entry.js +6 -6
  995. package/dist/esm/yoo-form-recap-step.entry.js +3 -3
  996. package/dist/esm/yoo-form-recurrence-delay.entry.js +3 -3
  997. package/dist/esm/yoo-form-recurrence-preview.entry.js +4 -4
  998. package/dist/esm/yoo-form-recurrence.entry.js +3 -3
  999. package/dist/esm/yoo-form-reorder.entry.js +5 -5
  1000. package/dist/esm/yoo-form-scorm.entry.js +5 -5
  1001. package/dist/esm/yoo-form-shopping.entry.js +5 -5
  1002. package/dist/esm/yoo-form-signature-pad-dialog.entry.js +4 -4
  1003. package/dist/esm/yoo-form-signature-pad.entry.js +5 -5
  1004. package/dist/esm/yoo-form-sorts.entry.js +5 -5
  1005. package/dist/esm/yoo-form-star-rating.entry.js +5 -5
  1006. package/dist/esm/yoo-form-stripe-card.entry.js +5 -5
  1007. package/dist/esm/yoo-form-swipe-cards.entry.js +6 -6
  1008. package/dist/esm/yoo-form-table.entry.js +5 -5
  1009. package/dist/esm/yoo-form-task.entry.js +5 -5
  1010. package/dist/esm/yoo-form-text-area.entry.js +6 -6
  1011. package/dist/esm/yoo-form-text-editor.entry.js +7 -7
  1012. package/dist/esm/yoo-form-time.entry.js +5 -5
  1013. package/dist/esm/yoo-form-timeslots.entry.js +5 -5
  1014. package/dist/esm/yoo-form-todo-dialog.entry.js +4 -4
  1015. package/dist/esm/yoo-form-todo-list-dialog.entry.js +5 -5
  1016. package/dist/esm/yoo-form-todo-list-task.entry.js +5 -5
  1017. package/dist/esm/yoo-form-todo-list.entry.js +5 -5
  1018. package/dist/esm/yoo-form-todo-single.entry.js +5 -5
  1019. package/dist/esm/yoo-form-todo.entry.js +5 -5
  1020. package/dist/esm/yoo-form-toggle.entry.js +5 -5
  1021. package/dist/esm/yoo-form-uploader.entry.js +5 -5
  1022. package/dist/esm/yoo-form-videoplayer.entry.js +5 -5
  1023. package/dist/esm/yoo-form-wiki.entry.js +5 -5
  1024. package/dist/esm/yoo-grid-calendar.entry.js +6 -6
  1025. package/dist/esm/yoo-grid.entry.js +16 -15
  1026. package/dist/esm/yoo-gridstack.entry.js +4 -4
  1027. package/dist/esm/yoo-header.entry.js +4 -4
  1028. package/dist/esm/yoo-healthscore-dialog.entry.js +4 -4
  1029. package/dist/esm/yoo-healthscore.entry.js +3 -3
  1030. package/dist/esm/yoo-image-cropper-dialog.entry.js +3 -3
  1031. package/dist/esm/yoo-img.entry.js +5 -5
  1032. package/dist/esm/yoo-incentive-detail.entry.js +5 -5
  1033. package/dist/esm/yoo-input-bar.entry.js +1755 -1950
  1034. package/dist/esm/yoo-ion-alert-controller.entry.js +4 -4
  1035. package/dist/esm/yoo-ion-content.entry.js +3 -3
  1036. package/dist/esm/yoo-ion-footer.entry.js +4 -4
  1037. package/dist/esm/yoo-ion-infinite-scroll-content.entry.js +3 -3
  1038. package/dist/esm/yoo-ion-infinite-scroll.entry.js +3 -3
  1039. package/dist/esm/yoo-ion-item-divider.entry.js +5 -5
  1040. package/dist/esm/yoo-ion-item-options.entry.js +4 -4
  1041. package/dist/esm/yoo-ion-item-sliding.entry.js +5 -5
  1042. package/dist/esm/yoo-ion-item.entry.js +5 -5
  1043. package/dist/esm/yoo-ion-list.entry.js +4 -4
  1044. package/dist/esm/yoo-ion-modal-controller.entry.js +4 -4
  1045. package/dist/esm/yoo-ion-modal.entry.js +9 -9
  1046. package/dist/esm/yoo-ion-refresher.entry.js +4 -4
  1047. package/dist/esm/yoo-ion-scroll.entry.js +4 -4
  1048. package/dist/esm/yoo-ion-slide.entry.js +4 -4
  1049. package/dist/{design-system/yoo-ion-slides-21356ade.js → esm/yoo-ion-slides-e4104281.js} +25 -22
  1050. package/dist/esm/yoo-ion-slides.entry.js +6 -6
  1051. package/dist/esm/yoo-ion-toast-controller.entry.js +4 -4
  1052. package/dist/esm/yoo-kanban.entry.js +4 -4
  1053. package/dist/esm/yoo-kpi-card.entry.js +3 -3
  1054. package/dist/esm/yoo-kpi-container.entry.js +4 -4
  1055. package/dist/esm/yoo-kpi-external.entry.js +3 -3
  1056. package/dist/esm/yoo-kpi.entry.js +3 -3
  1057. package/dist/esm/yoo-layout-sections.entry.js +3 -3
  1058. package/dist/esm/yoo-layout-tabs.entry.js +3 -3
  1059. package/dist/esm/yoo-layout-two-columns.entry.js +3 -3
  1060. package/dist/esm/yoo-lesson-detail-card.entry.js +3 -3
  1061. package/dist/esm/yoo-lesson-detail.entry.js +4 -4
  1062. package/dist/esm/yoo-lesson-heading.entry.js +4 -4
  1063. package/dist/esm/yoo-lesson-highscores.entry.js +3 -3
  1064. package/dist/esm/yoo-lesson-question-result.entry.js +3 -3
  1065. package/dist/esm/yoo-line-state.entry.js +1 -1
  1066. package/dist/esm/yoo-links-menu.entry.js +3 -3
  1067. package/dist/esm/yoo-links-preview.entry.js +5 -5
  1068. package/dist/esm/yoo-loader.entry.js +3 -3
  1069. package/dist/esm/yoo-location-info.entry.js +3 -3
  1070. package/dist/esm/yoo-location-map.entry.js +4 -4
  1071. package/dist/esm/yoo-login.entry.js +3 -3
  1072. package/dist/esm/yoo-lottie.entry.js +3 -3
  1073. package/dist/esm/yoo-map-gl.entry.js +4 -4
  1074. package/dist/esm/yoo-map-js.entry.js +5 -5
  1075. package/dist/esm/yoo-map-legend.entry.js +5 -5
  1076. package/dist/esm/yoo-map.entry.js +4 -4
  1077. package/dist/esm/yoo-markdown.entry.js +5 -5
  1078. package/dist/esm/yoo-memo-list-dialog.entry.js +3 -3
  1079. package/dist/esm/yoo-memo-list.entry.js +3 -3
  1080. package/dist/esm/yoo-mention-tag.entry.js +3 -3
  1081. package/dist/esm/yoo-mission-details.entry.js +5 -5
  1082. package/dist/esm/yoo-mission-heading.entry.js +7 -7
  1083. package/dist/esm/yoo-mission-score.entry.js +3 -3
  1084. package/dist/esm/yoo-mission-todo.entry.js +4 -4
  1085. package/dist/esm/yoo-mobile-tabbar-more.entry.js +3 -3
  1086. package/dist/esm/yoo-mobile-tabbar.entry.js +4 -4
  1087. package/dist/esm/yoo-modal.entry.js +4 -4
  1088. package/dist/esm/yoo-navbar.entry.js +4 -4
  1089. package/dist/esm/yoo-numbers-display.entry.js +4 -4
  1090. package/dist/esm/yoo-photo-editor.entry.js +8 -8
  1091. package/dist/esm/yoo-pivot-table.entry.js +8 -8
  1092. package/dist/esm/yoo-podium.entry.js +3 -3
  1093. package/dist/esm/yoo-profile-list.entry.js +3 -3
  1094. package/dist/esm/yoo-profile-summary.entry.js +4 -4
  1095. package/dist/esm/yoo-progress-bar.entry.js +3 -3
  1096. package/dist/esm/yoo-progress-loader.entry.js +3 -3
  1097. package/dist/esm/yoo-progress-recap.entry.js +3 -3
  1098. package/dist/esm/yoo-property-card.entry.js +4 -4
  1099. package/dist/esm/yoo-range.entry.js +5 -5
  1100. package/dist/esm/yoo-rating.entry.js +3 -3
  1101. package/dist/esm/yoo-reset-password.entry.js +3 -3
  1102. package/dist/esm/yoo-result-dialog.entry.js +4 -4
  1103. package/dist/esm/yoo-reveal.entry.js +3 -3
  1104. package/dist/esm/yoo-salesai-formula.entry.js +3 -3
  1105. package/dist/esm/yoo-scandit.entry.js +4 -4
  1106. package/dist/esm/yoo-scratch-card-creator.entry.js +3 -3
  1107. package/dist/esm/yoo-scratch-card.entry.js +5 -5
  1108. package/dist/esm/yoo-section-list.entry.js +3 -3
  1109. package/dist/esm/yoo-segmented-control.entry.js +3 -3
  1110. package/dist/esm/yoo-side-menu-tree.entry.js +3 -3
  1111. package/dist/esm/yoo-side-menu.entry.js +5 -4
  1112. package/dist/esm/yoo-slides-media.entry.js +6 -6
  1113. package/dist/esm/yoo-start-meeting-popup.entry.js +4 -4
  1114. package/dist/esm/yoo-tabs.entry.js +3 -3
  1115. package/dist/esm/yoo-text-sequence.entry.js +4 -4
  1116. package/dist/esm/yoo-text.entry.js +4 -4
  1117. package/dist/esm/yoo-toast.entry.js +5 -5
  1118. package/dist/esm/yoo-tooltip.entry.js +6 -6
  1119. package/dist/esm/yoo-truncate.entry.js +4 -4
  1120. package/dist/esm/yoo-truncated-line.entry.js +3 -3
  1121. package/dist/esm/yoo-user-detail.entry.js +3 -3
  1122. package/dist/esm/yoo-user-profile.entry.js +5 -5
  1123. package/dist/esm/yoo-user-wizard.entry.js +7 -5
  1124. package/dist/esm/yoo-videoplayer-core.entry.js +4 -4
  1125. package/dist/esm/yoo-videoplayer-dailymotion.entry.js +5 -5
  1126. package/dist/esm/yoo-videoplayer-videojs.entry.js +6 -6
  1127. package/dist/esm/yoo-videoplayer-vimeo.entry.js +5 -5
  1128. package/dist/esm/yoo-videoplayer-youtube.entry.js +5 -5
  1129. package/dist/esm/yoo-virtual-item.entry.js +3 -3
  1130. package/dist/esm/yoo-virtual-scroll.entry.js +4 -4
  1131. package/dist/esm/yoo-waitlist-location-result.entry.js +3 -3
  1132. package/dist/esm/yoo-waitlist-location-start.entry.js +3 -3
  1133. package/dist/esm/yoo-walkthrough.entry.js +3 -3
  1134. package/dist/esm/yoo-web-menu.entry.js +4 -4
  1135. package/dist/esm/yoo-webcam.entry.js +3 -3
  1136. package/dist/esm/yoo-welcome-banner.entry.js +4 -4
  1137. package/dist/esm/yoo-widget-chart.entry.js +3 -3
  1138. package/dist/esm/yoo-widget-small-size.entry.js +3 -3
  1139. package/dist/esm/yoo-widget-tab.entry.js +3 -3
  1140. package/dist/esm/yoo-widget-tile.entry.js +3 -3
  1141. package/dist/esm/yoo-workflow-state-dialog.entry.js +3 -3
  1142. package/dist/esm/yoo-workflow-state.entry.js +3 -3
  1143. package/dist/esm/yoo-workflow.entry.js +6 -6
  1144. package/dist/esm/yoo-zebra.entry.js +3 -3
  1145. package/dist/esm/yoo-zoom.entry.js +3 -3
  1146. package/dist/types/components/2.molecules/accordion/types/index.d.ts +2 -0
  1147. package/dist/types/components/form-creator/form-creator-field-selector/form-creator-field-selector.d.ts +5 -0
  1148. package/dist/types/components.d.ts +14 -6
  1149. package/dist/types/feature-communicate/feed/user-wizard/user-wizard.d.ts +2 -1
  1150. package/dist/types/feature-operate/mission/announcement-heading/announcement-heading.d.ts +1 -0
  1151. package/dist/types/feature-platform/admin/draw-flow/draw-flow.d.ts +11 -6
  1152. package/dist/types/home/runner/work/yoobic-ng-6/yoobic-ng-6/design-system/stencil/.stencil/shared/interfaces/src/entities/algorithm/algorithm.interface.d.ts +2 -0
  1153. package/dist/types/home/runner/work/yoobic-ng-6/yoobic-ng-6/design-system/stencil/.stencil/shared/interfaces/src/entities/battle/battle.interface.d.ts +2 -3
  1154. package/dist/types/home/runner/work/yoobic-ng-6/yoobic-ng-6/design-system/stencil/.stencil/shared/interfaces/src/entities/condition/condition.interface.d.ts +1 -1
  1155. package/dist/types/home/runner/work/yoobic-ng-6/yoobic-ng-6/design-system/stencil/.stencil/shared/interfaces/src/entities/custom-app/custom-app.interface.d.ts +11 -1
  1156. package/dist/types/home/runner/work/yoobic-ng-6/yoobic-ng-6/design-system/stencil/.stencil/shared/interfaces/src/entities/entity/entity.interface.d.ts +1 -1
  1157. package/dist/types/home/runner/work/yoobic-ng-6/yoobic-ng-6/design-system/stencil/.stencil/shared/interfaces/src/entities/index.d.ts +1 -0
  1158. package/dist/types/home/runner/work/yoobic-ng-6/yoobic-ng-6/design-system/stencil/.stencil/shared/interfaces/src/entities/journey/journey.interface.d.ts +26 -0
  1159. package/dist/types/home/runner/work/yoobic-ng-6/yoobic-ng-6/design-system/stencil/.stencil/shared/interfaces/src/entities/page/page.interface.d.ts +2 -1
  1160. package/dist/types/home/runner/work/yoobic-ng-6/yoobic-ng-6/design-system/stencil/.stencil/shared/interfaces/src/types/routes.d.ts +2 -0
  1161. package/dist/types/home/runner/work/yoobic-ng-6/yoobic-ng-6/design-system/stencil/.stencil/shared/interfaces/src/ui/app/app.interface.d.ts +1 -1
  1162. package/dist/types/home/runner/work/yoobic-ng-6/yoobic-ng-6/design-system/stencil/.stencil/shared/interfaces/src/ui/button/button.interface.d.ts +1 -0
  1163. package/dist/types/home/runner/work/yoobic-ng-6/yoobic-ng-6/design-system/stencil/.stencil/shared/interfaces/src/ui/modal/modal.interface.d.ts +3 -0
  1164. package/package.json +1 -1
  1165. package/dist/cjs/index-5c167de6.js +0 -4
  1166. package/dist/cjs/index-afea1559.js +0 -4
  1167. package/dist/design-system/index-38d4fe1e.js +0 -1
  1168. package/dist/design-system/index-fe99ca0c.js +0 -1
  1169. package/dist/design-system/swiper-90a4231e.js +0 -12
  1170. package/dist/esm/index-38d4fe1e.js +0 -1
  1171. package/dist/esm/index-fe99ca0c.js +0 -1
  1172. package/dist/esm/swiper-90a4231e.js +0 -12
@@ -3,12 +3,12 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-6482c595.js');
6
- const cameraHelpers = require('./camera-helpers-b017bf7d.js');
7
- const overlays = require('./overlays-3336db5b.js');
8
- const index$1 = require('./index-8f48ac42.js');
9
- require('./index-4cc48ba6.js');
6
+ const cameraHelpers = require('./camera-helpers-66de4634.js');
7
+ const overlays = require('./overlays-b8b5311f.js');
8
+ const index$1 = require('./index-6e5c67f3.js');
9
+ require('./index-8ebe9d77.js');
10
10
  const lodash = require('./lodash-597bda6d.js');
11
- const commonHelpers = require('./common-helpers-03171bbd.js');
11
+ const commonHelpers = require('./common-helpers-5819efe0.js');
12
12
  require('./_commonjsHelpers-94df2ea7.js');
13
13
 
14
14
  function partition(predicate, thisArg) {
@@ -20,7 +20,7 @@ function race(...args) {
20
20
  }
21
21
 
22
22
  /**
23
- * @license Angular v14.0.4
23
+ * @license Angular v14.0.5
24
24
  * (c) 2010-2022 Google LLC. https://angular.io/
25
25
  * License: MIT
26
26
  */
@@ -1604,96 +1604,6 @@ function getNamespaceUri(namespace) {
1604
1604
  (name === MATH_ML_NAMESPACE ? MATH_ML_NAMESPACE_URI : null);
1605
1605
  }
1606
1606
 
1607
- /**
1608
- * @license
1609
- * Copyright Google LLC All Rights Reserved.
1610
- *
1611
- * Use of this source code is governed by an MIT-style license that can be
1612
- * found in the LICENSE file at https://angular.io/license
1613
- */
1614
- /**
1615
- * Most of the use of `document` in Angular is from within the DI system so it is possible to simply
1616
- * inject the `DOCUMENT` token and are done.
1617
- *
1618
- * Ivy is special because it does not rely upon the DI and must get hold of the document some other
1619
- * way.
1620
- *
1621
- * The solution is to define `getDocument()` and `setDocument()` top-level functions for ivy.
1622
- * Wherever ivy needs the global document, it calls `getDocument()` instead.
1623
- *
1624
- * When running ivy outside of a browser environment, it is necessary to call `setDocument()` to
1625
- * tell ivy what the global `document` is.
1626
- *
1627
- * Angular does this for us in each of the standard platforms (`Browser`, `Server`, and `WebWorker`)
1628
- * by calling `setDocument()` when providing the `DOCUMENT` token.
1629
- */
1630
- let DOCUMENT = undefined;
1631
- /**
1632
- * Tell ivy what the `document` is for this platform.
1633
- *
1634
- * It is only necessary to call this if the current platform is not a browser.
1635
- *
1636
- * @param document The object representing the global `document` in this environment.
1637
- */
1638
- function setDocument(document) {
1639
- DOCUMENT = document;
1640
- }
1641
- /**
1642
- * Access the object that represents the `document` for this platform.
1643
- *
1644
- * Ivy calls this whenever it needs to access the `document` object.
1645
- * For example to create the renderer or to do sanitization.
1646
- */
1647
- function getDocument() {
1648
- if (DOCUMENT !== undefined) {
1649
- return DOCUMENT;
1650
- }
1651
- else if (typeof document !== 'undefined') {
1652
- return document;
1653
- }
1654
- // No "document" can be found. This should only happen if we are running ivy outside Angular and
1655
- // the current platform is not a browser. Since this is not a supported scenario at the moment
1656
- // this should not happen in Angular apps.
1657
- // Once we support running ivy outside of Angular we will need to publish `setDocument()` as a
1658
- // public API. Meanwhile we just return `undefined` and let the application fail.
1659
- return undefined;
1660
- }
1661
-
1662
- /**
1663
- * @license
1664
- * Copyright Google LLC All Rights Reserved.
1665
- *
1666
- * Use of this source code is governed by an MIT-style license that can be
1667
- * found in the LICENSE file at https://angular.io/license
1668
- */
1669
- // TODO: cleanup once the code is merged in angular/angular
1670
- var RendererStyleFlags3;
1671
- (function (RendererStyleFlags3) {
1672
- RendererStyleFlags3[RendererStyleFlags3["Important"] = 1] = "Important";
1673
- RendererStyleFlags3[RendererStyleFlags3["DashCase"] = 2] = "DashCase";
1674
- })(RendererStyleFlags3 || (RendererStyleFlags3 = {}));
1675
- /** Returns whether the `renderer` is a `ProceduralRenderer3` */
1676
- function isProceduralRenderer(renderer) {
1677
- return !!(renderer.listen);
1678
- }
1679
- let renderer3Enabled = false;
1680
- function enableRenderer3() {
1681
- renderer3Enabled = true;
1682
- }
1683
- const domRendererFactory3 = {
1684
- createRenderer: (hostElement, rendererType) => {
1685
- if (!renderer3Enabled) {
1686
- throw new Error(ngDevMode ?
1687
- `Renderer3 is not supported. This problem is likely caused by some component in the hierarchy was constructed without a correct parent injector.` :
1688
- 'Renderer3 disabled');
1689
- }
1690
- return getDocument();
1691
- }
1692
- };
1693
- // Note: This hack is necessary so we don't erroneously get a circular dependency
1694
- // failure based on types.
1695
- const unusedValueExportToPlacateAjd$6 = 1;
1696
-
1697
1607
  /**
1698
1608
  * @license
1699
1609
  * Copyright Google LLC All Rights Reserved.
@@ -1776,7 +1686,6 @@ function getNativeByTNode(tNode, lView) {
1776
1686
  ngDevMode && assertTNodeForLView(tNode, lView);
1777
1687
  ngDevMode && assertIndexInRange(lView, tNode.index);
1778
1688
  const node = unwrapRNode(lView[tNode.index]);
1779
- ngDevMode && !isProceduralRenderer(lView[RENDERER]) && assertDomNode(node);
1780
1689
  return node;
1781
1690
  }
1782
1691
  /**
@@ -1792,7 +1701,6 @@ function getNativeByTNodeOrNull(tNode, lView) {
1792
1701
  if (index !== -1) {
1793
1702
  ngDevMode && assertTNodeForLView(tNode, lView);
1794
1703
  const node = unwrapRNode(lView[index]);
1795
- ngDevMode && node !== null && !isProceduralRenderer(lView[RENDERER]) && assertDomNode(node);
1796
1704
  return node;
1797
1705
  }
1798
1706
  return null;
@@ -2741,7 +2649,7 @@ function isFactory(obj) {
2741
2649
  }
2742
2650
  // Note: This hack is necessary so we don't erroneously get a circular dependency
2743
2651
  // failure based on types.
2744
- const unusedValueExportToPlacateAjd$5 = 1;
2652
+ const unusedValueExportToPlacateAjd$6 = 1;
2745
2653
 
2746
2654
  /**
2747
2655
  * Converts `TNodeType` into human readable text.
@@ -2760,7 +2668,7 @@ function toTNodeTypeAsString(tNodeType) {
2760
2668
  }
2761
2669
  // Note: This hack is necessary so we don't erroneously get a circular dependency
2762
2670
  // failure based on types.
2763
- const unusedValueExportToPlacateAjd$4 = 1;
2671
+ const unusedValueExportToPlacateAjd$5 = 1;
2764
2672
  /**
2765
2673
  * Returns `true` if the `TNode` has a directive which has `@Input()` for `class` binding.
2766
2674
  *
@@ -2864,7 +2772,6 @@ function assertPureTNodeType(type) {
2864
2772
  * @returns the index value that was last accessed in the attributes array
2865
2773
  */
2866
2774
  function setUpAttributes(renderer, native, attrs) {
2867
- const isProc = isProceduralRenderer(renderer);
2868
2775
  let i = 0;
2869
2776
  while (i < attrs.length) {
2870
2777
  const value = attrs[i];
@@ -2881,9 +2788,7 @@ function setUpAttributes(renderer, native, attrs) {
2881
2788
  const attrName = attrs[i++];
2882
2789
  const attrVal = attrs[i++];
2883
2790
  ngDevMode && ngDevMode.rendererSetAttribute++;
2884
- isProc ?
2885
- renderer.setAttribute(native, attrName, attrVal, namespaceURI) :
2886
- native.setAttributeNS(namespaceURI, attrName, attrVal);
2791
+ renderer.setAttribute(native, attrName, attrVal, namespaceURI);
2887
2792
  }
2888
2793
  else {
2889
2794
  // attrName is string;
@@ -2892,14 +2797,10 @@ function setUpAttributes(renderer, native, attrs) {
2892
2797
  // Standard attributes
2893
2798
  ngDevMode && ngDevMode.rendererSetAttribute++;
2894
2799
  if (isAnimationProp(attrName)) {
2895
- if (isProc) {
2896
- renderer.setProperty(native, attrName, attrVal);
2897
- }
2800
+ renderer.setProperty(native, attrName, attrVal);
2898
2801
  }
2899
2802
  else {
2900
- isProc ?
2901
- renderer.setAttribute(native, attrName, attrVal) :
2902
- native.setAttribute(attrName, attrVal);
2803
+ renderer.setAttribute(native, attrName, attrVal);
2903
2804
  }
2904
2805
  i++;
2905
2806
  }
@@ -5341,6 +5242,61 @@ function setAllowDuplicateNgModuleIdsForTest(allowDuplicates) {
5341
5242
  checkForDuplicateNgModules = !allowDuplicates;
5342
5243
  }
5343
5244
 
5245
+ /**
5246
+ * @license
5247
+ * Copyright Google LLC All Rights Reserved.
5248
+ *
5249
+ * Use of this source code is governed by an MIT-style license that can be
5250
+ * found in the LICENSE file at https://angular.io/license
5251
+ */
5252
+ /**
5253
+ * Most of the use of `document` in Angular is from within the DI system so it is possible to simply
5254
+ * inject the `DOCUMENT` token and are done.
5255
+ *
5256
+ * Ivy is special because it does not rely upon the DI and must get hold of the document some other
5257
+ * way.
5258
+ *
5259
+ * The solution is to define `getDocument()` and `setDocument()` top-level functions for ivy.
5260
+ * Wherever ivy needs the global document, it calls `getDocument()` instead.
5261
+ *
5262
+ * When running ivy outside of a browser environment, it is necessary to call `setDocument()` to
5263
+ * tell ivy what the global `document` is.
5264
+ *
5265
+ * Angular does this for us in each of the standard platforms (`Browser`, `Server`, and `WebWorker`)
5266
+ * by calling `setDocument()` when providing the `DOCUMENT` token.
5267
+ */
5268
+ let DOCUMENT = undefined;
5269
+ /**
5270
+ * Tell ivy what the `document` is for this platform.
5271
+ *
5272
+ * It is only necessary to call this if the current platform is not a browser.
5273
+ *
5274
+ * @param document The object representing the global `document` in this environment.
5275
+ */
5276
+ function setDocument(document) {
5277
+ DOCUMENT = document;
5278
+ }
5279
+ /**
5280
+ * Access the object that represents the `document` for this platform.
5281
+ *
5282
+ * Ivy calls this whenever it needs to access the `document` object.
5283
+ * For example to create the renderer or to do sanitization.
5284
+ */
5285
+ function getDocument() {
5286
+ if (DOCUMENT !== undefined) {
5287
+ return DOCUMENT;
5288
+ }
5289
+ else if (typeof document !== 'undefined') {
5290
+ return document;
5291
+ }
5292
+ // No "document" can be found. This should only happen if we are running ivy outside Angular and
5293
+ // the current platform is not a browser. Since this is not a supported scenario at the moment
5294
+ // this should not happen in Angular apps.
5295
+ // Once we support running ivy outside of Angular we will need to publish `setDocument()` as a
5296
+ // public API. Meanwhile we just return `undefined` and let the application fail.
5297
+ return undefined;
5298
+ }
5299
+
5344
5300
  /**
5345
5301
  * @license
5346
5302
  * Copyright Google LLC All Rights Reserved.
@@ -7076,6 +7032,17 @@ function ensureIcuContainerVisitorLoaded(loader) {
7076
7032
  }
7077
7033
  }
7078
7034
 
7035
+ /**
7036
+ * @license
7037
+ * Copyright Google LLC All Rights Reserved.
7038
+ *
7039
+ * Use of this source code is governed by an MIT-style license that can be
7040
+ * found in the LICENSE file at https://angular.io/license
7041
+ */
7042
+ // Note: This hack is necessary so we don't erroneously get a circular dependency
7043
+ // failure based on types.
7044
+ const unusedValueExportToPlacateAjd$4 = 1;
7045
+
7079
7046
  /**
7080
7047
  * @license
7081
7048
  * Copyright Google LLC All Rights Reserved.
@@ -7158,7 +7125,7 @@ function getNearestLContainer(viewOrContainer) {
7158
7125
  * Use of this source code is governed by an MIT-style license that can be
7159
7126
  * found in the LICENSE file at https://angular.io/license
7160
7127
  */
7161
- const unusedValueToPlacateAjd$2 = unusedValueExportToPlacateAjd$8 + unusedValueExportToPlacateAjd$4 + unusedValueExportToPlacateAjd$3 + unusedValueExportToPlacateAjd$6 + unusedValueExportToPlacateAjd$7;
7128
+ const unusedValueToPlacateAjd$2 = unusedValueExportToPlacateAjd$8 + unusedValueExportToPlacateAjd$5 + unusedValueExportToPlacateAjd$4 + unusedValueExportToPlacateAjd$3 + unusedValueExportToPlacateAjd$7;
7162
7129
  /**
7163
7130
  * NOTE: for performance reasons, the possible actions are inlined within the function instead of
7164
7131
  * being passed as an argument.
@@ -7183,7 +7150,6 @@ function applyToElementOrContainer(action, renderer, parent, lNodeToHandle, befo
7183
7150
  lNodeToHandle = lNodeToHandle[HOST];
7184
7151
  }
7185
7152
  const rNode = unwrapRNode(lNodeToHandle);
7186
- ngDevMode && !isProceduralRenderer(renderer) && assertDomNode(rNode);
7187
7153
  if (action === 0 /* WalkTNodeTreeAction.Create */ && parent !== null) {
7188
7154
  if (beforeNode == null) {
7189
7155
  nativeAppendChild(renderer, parent, rNode);
@@ -7210,17 +7176,14 @@ function applyToElementOrContainer(action, renderer, parent, lNodeToHandle, befo
7210
7176
  function createTextNode(renderer, value) {
7211
7177
  ngDevMode && ngDevMode.rendererCreateTextNode++;
7212
7178
  ngDevMode && ngDevMode.rendererSetText++;
7213
- return isProceduralRenderer(renderer) ? renderer.createText(value) :
7214
- renderer.createTextNode(value);
7179
+ return renderer.createText(value);
7215
7180
  }
7216
7181
  function updateTextNode(renderer, rNode, value) {
7217
7182
  ngDevMode && ngDevMode.rendererSetText++;
7218
- isProceduralRenderer(renderer) ? renderer.setValue(rNode, value) : rNode.textContent = value;
7183
+ renderer.setValue(rNode, value);
7219
7184
  }
7220
7185
  function createCommentNode(renderer, value) {
7221
7186
  ngDevMode && ngDevMode.rendererCreateComment++;
7222
- // isProceduralRenderer check is not needed because both `Renderer2` and `Renderer3` have the same
7223
- // method name.
7224
7187
  return renderer.createComment(escapeCommentText(value));
7225
7188
  }
7226
7189
  /**
@@ -7232,14 +7195,7 @@ function createCommentNode(renderer, value) {
7232
7195
  */
7233
7196
  function createElementNode(renderer, name, namespace) {
7234
7197
  ngDevMode && ngDevMode.rendererCreateElement++;
7235
- if (isProceduralRenderer(renderer)) {
7236
- return renderer.createElement(name, namespace);
7237
- }
7238
- else {
7239
- const namespaceUri = namespace !== null ? getNamespaceUri(namespace) : null;
7240
- return namespaceUri === null ? renderer.createElement(name) :
7241
- renderer.createElementNS(namespaceUri, name);
7242
- }
7198
+ return renderer.createElement(name, namespace);
7243
7199
  }
7244
7200
  /**
7245
7201
  * Removes all DOM elements associated with a view.
@@ -7471,7 +7427,7 @@ function detachView(lContainer, removeIndex) {
7471
7427
  function destroyLView(tView, lView) {
7472
7428
  if (!(lView[FLAGS] & 128 /* LViewFlags.Destroyed */)) {
7473
7429
  const renderer = lView[RENDERER];
7474
- if (isProceduralRenderer(renderer) && renderer.destroyNode) {
7430
+ if (renderer.destroyNode) {
7475
7431
  applyView(tView, lView, renderer, 3 /* WalkTNodeTreeAction.Destroy */, null, null);
7476
7432
  }
7477
7433
  destroyViewTree(lView);
@@ -7499,7 +7455,7 @@ function cleanUpView(tView, lView) {
7499
7455
  executeOnDestroys(tView, lView);
7500
7456
  processCleanups(tView, lView);
7501
7457
  // For component views only, the local renderer is destroyed at clean up time.
7502
- if (lView[TVIEW].type === 1 /* TViewType.Component */ && isProceduralRenderer(lView[RENDERER])) {
7458
+ if (lView[TVIEW].type === 1 /* TViewType.Component */) {
7503
7459
  ngDevMode && ngDevMode.rendererDestroy++;
7504
7460
  lView[RENDERER].destroy();
7505
7461
  }
@@ -7675,30 +7631,17 @@ function getClosestRElement(tView, tNode, lView) {
7675
7631
  }
7676
7632
  }
7677
7633
  /**
7678
- * Inserts a native node before another native node for a given parent using {@link Renderer3}.
7679
- * This is a utility function that can be used when native nodes were determined - it abstracts an
7680
- * actual renderer being used.
7634
+ * Inserts a native node before another native node for a given parent.
7635
+ * This is a utility function that can be used when native nodes were determined.
7681
7636
  */
7682
7637
  function nativeInsertBefore(renderer, parent, child, beforeNode, isMove) {
7683
7638
  ngDevMode && ngDevMode.rendererInsertBefore++;
7684
- if (isProceduralRenderer(renderer)) {
7685
- renderer.insertBefore(parent, child, beforeNode, isMove);
7686
- }
7687
- else {
7688
- const targetParent = isTemplateNode(parent) ? parent.content : parent;
7689
- targetParent.insertBefore(child, beforeNode, isMove);
7690
- }
7639
+ renderer.insertBefore(parent, child, beforeNode, isMove);
7691
7640
  }
7692
7641
  function nativeAppendChild(renderer, parent, child) {
7693
7642
  ngDevMode && ngDevMode.rendererAppendChild++;
7694
7643
  ngDevMode && assertDefined(parent, 'parent node must be defined');
7695
- if (isProceduralRenderer(renderer)) {
7696
- renderer.appendChild(parent, child);
7697
- }
7698
- else {
7699
- const targetParent = isTemplateNode(parent) ? parent.content : parent;
7700
- targetParent.appendChild(child);
7701
- }
7644
+ renderer.appendChild(parent, child);
7702
7645
  }
7703
7646
  function nativeAppendOrInsertBefore(renderer, parent, child, beforeNode, isMove) {
7704
7647
  if (beforeNode !== null) {
@@ -7710,12 +7653,7 @@ function nativeAppendOrInsertBefore(renderer, parent, child, beforeNode, isMove)
7710
7653
  }
7711
7654
  /** Removes a node from the DOM given its native parent. */
7712
7655
  function nativeRemoveChild(renderer, parent, child, isHostElement) {
7713
- if (isProceduralRenderer(renderer)) {
7714
- renderer.removeChild(parent, child, isHostElement);
7715
- }
7716
- else {
7717
- parent.removeChild(child);
7718
- }
7656
+ renderer.removeChild(parent, child, isHostElement);
7719
7657
  }
7720
7658
  /** Checks if an element is a `<template>` node. */
7721
7659
  function isTemplateNode(node) {
@@ -7725,13 +7663,13 @@ function isTemplateNode(node) {
7725
7663
  * Returns a native parent of a given native node.
7726
7664
  */
7727
7665
  function nativeParentNode(renderer, node) {
7728
- return (isProceduralRenderer(renderer) ? renderer.parentNode(node) : node.parentNode);
7666
+ return renderer.parentNode(node);
7729
7667
  }
7730
7668
  /**
7731
7669
  * Returns a native sibling of a given native node.
7732
7670
  */
7733
7671
  function nativeNextSibling(renderer, node) {
7734
- return isProceduralRenderer(renderer) ? renderer.nextSibling(node) : node.nextSibling;
7672
+ return renderer.nextSibling(node);
7735
7673
  }
7736
7674
  /**
7737
7675
  * Find a node in front of which `currentTNode` should be inserted.
@@ -8040,39 +7978,22 @@ function applyContainer(renderer, action, lContainer, parentRElement, beforeNode
8040
7978
  * otherwise).
8041
7979
  */
8042
7980
  function applyStyling(renderer, isClassBased, rNode, prop, value) {
8043
- const isProcedural = isProceduralRenderer(renderer);
8044
7981
  if (isClassBased) {
8045
7982
  // We actually want JS true/false here because any truthy value should add the class
8046
7983
  if (!value) {
8047
7984
  ngDevMode && ngDevMode.rendererRemoveClass++;
8048
- if (isProcedural) {
8049
- renderer.removeClass(rNode, prop);
8050
- }
8051
- else {
8052
- rNode.classList.remove(prop);
8053
- }
7985
+ renderer.removeClass(rNode, prop);
8054
7986
  }
8055
7987
  else {
8056
7988
  ngDevMode && ngDevMode.rendererAddClass++;
8057
- if (isProcedural) {
8058
- renderer.addClass(rNode, prop);
8059
- }
8060
- else {
8061
- ngDevMode && assertDefined(rNode.classList, 'HTMLElement expected');
8062
- rNode.classList.add(prop);
8063
- }
7989
+ renderer.addClass(rNode, prop);
8064
7990
  }
8065
7991
  }
8066
7992
  else {
8067
7993
  let flags = prop.indexOf('-') === -1 ? undefined : RendererStyleFlags2.DashCase;
8068
7994
  if (value == null /** || value === undefined */) {
8069
7995
  ngDevMode && ngDevMode.rendererRemoveStyle++;
8070
- if (isProcedural) {
8071
- renderer.removeStyle(rNode, prop, flags);
8072
- }
8073
- else {
8074
- rNode.style.removeProperty(prop);
8075
- }
7996
+ renderer.removeStyle(rNode, prop, flags);
8076
7997
  }
8077
7998
  else {
8078
7999
  // A value is important if it ends with `!important`. The style
@@ -8084,13 +8005,7 @@ function applyStyling(renderer, isClassBased, rNode, prop, value) {
8084
8005
  flags |= RendererStyleFlags2.Important;
8085
8006
  }
8086
8007
  ngDevMode && ngDevMode.rendererSetStyle++;
8087
- if (isProcedural) {
8088
- renderer.setStyle(rNode, prop, value, flags);
8089
- }
8090
- else {
8091
- ngDevMode && assertDefined(rNode.style, 'HTMLElement expected');
8092
- rNode.style.setProperty(prop, value, isImportant ? 'important' : '');
8093
- }
8008
+ renderer.setStyle(rNode, prop, value, flags);
8094
8009
  }
8095
8010
  }
8096
8011
  }
@@ -8106,12 +8021,7 @@ function applyStyling(renderer, isClassBased, rNode, prop, value) {
8106
8021
  */
8107
8022
  function writeDirectStyle(renderer, element, newValue) {
8108
8023
  ngDevMode && assertString(newValue, '\'newValue\' should be a string');
8109
- if (isProceduralRenderer(renderer)) {
8110
- renderer.setAttribute(element, 'style', newValue);
8111
- }
8112
- else {
8113
- element.style.cssText = newValue;
8114
- }
8024
+ renderer.setAttribute(element, 'style', newValue);
8115
8025
  ngDevMode && ngDevMode.rendererSetStyle++;
8116
8026
  }
8117
8027
  /**
@@ -8126,17 +8036,12 @@ function writeDirectStyle(renderer, element, newValue) {
8126
8036
  */
8127
8037
  function writeDirectClass(renderer, element, newValue) {
8128
8038
  ngDevMode && assertString(newValue, '\'newValue\' should be a string');
8129
- if (isProceduralRenderer(renderer)) {
8130
- if (newValue === '') {
8131
- // There are tests in `google3` which expect `element.getAttribute('class')` to be `null`.
8132
- renderer.removeAttribute(element, 'class');
8133
- }
8134
- else {
8135
- renderer.setAttribute(element, 'class', newValue);
8136
- }
8039
+ if (newValue === '') {
8040
+ // There are tests in `google3` which expect `element.getAttribute('class')` to be `null`.
8041
+ renderer.removeAttribute(element, 'class');
8137
8042
  }
8138
8043
  else {
8139
- element.className = newValue;
8044
+ renderer.setAttribute(element, 'class', newValue);
8140
8045
  }
8141
8046
  ngDevMode && ngDevMode.rendererSetClassName++;
8142
8047
  }
@@ -8186,7 +8091,7 @@ function classIndexOf(className, classToSearch, startingIndex) {
8186
8091
  * Use of this source code is governed by an MIT-style license that can be
8187
8092
  * found in the LICENSE file at https://angular.io/license
8188
8093
  */
8189
- const unusedValueToPlacateAjd$1 = unusedValueExportToPlacateAjd$4 + unusedValueExportToPlacateAjd$3;
8094
+ const unusedValueToPlacateAjd$1 = unusedValueExportToPlacateAjd$5 + unusedValueExportToPlacateAjd$4;
8190
8095
  const NG_TEMPLATE_SELECTOR = 'ng-template';
8191
8096
  /**
8192
8097
  * Search the `TAttributes` to see if it contains `cssClassToMatch` (case insensitive)
@@ -11517,6 +11422,13 @@ class LContainerDebug {
11517
11422
  }
11518
11423
  }
11519
11424
 
11425
+ /**
11426
+ * @license
11427
+ * Copyright Google LLC All Rights Reserved.
11428
+ *
11429
+ * Use of this source code is governed by an MIT-style license that can be
11430
+ * found in the LICENSE file at https://angular.io/license
11431
+ */
11520
11432
  /**
11521
11433
  * A permanent marker promise which signifies that the current CD tree is
11522
11434
  * clean.
@@ -11584,7 +11496,7 @@ function refreshChildComponents(hostLView, components) {
11584
11496
  /** Renders child components in the current view (creation mode). */
11585
11497
  function renderChildComponents(hostLView, components) {
11586
11498
  for (let i = 0; i < components.length; i++) {
11587
- renderComponent$1(hostLView, components[i]);
11499
+ renderComponent(hostLView, components[i]);
11588
11500
  }
11589
11501
  }
11590
11502
  function createLView(parentLView, tView, context, flags, host, tHostNode, rendererFactory, renderer, sanitizer, injector, embeddedViewInjector) {
@@ -12102,16 +12014,6 @@ function createViewBlueprint(bindingStartIndex, initialViewLength) {
12102
12014
  function createError(text, token) {
12103
12015
  return new Error(`Renderer: ${text} [${stringifyForError(token)}]`);
12104
12016
  }
12105
- function assertHostNodeExists(rElement, elementOrSelector) {
12106
- if (!rElement) {
12107
- if (typeof elementOrSelector === 'string') {
12108
- throw createError('Host node with selector not found:', elementOrSelector);
12109
- }
12110
- else {
12111
- throw createError('Host node is required:', elementOrSelector);
12112
- }
12113
- }
12114
- }
12115
12017
  /**
12116
12018
  * Locates the host native element, used for bootstrapping existing nodes into rendering pipeline.
12117
12019
  *
@@ -12120,21 +12022,9 @@ function assertHostNodeExists(rElement, elementOrSelector) {
12120
12022
  * @param encapsulation View Encapsulation defined for component that requests host element.
12121
12023
  */
12122
12024
  function locateHostElement(renderer, elementOrSelector, encapsulation) {
12123
- if (isProceduralRenderer(renderer)) {
12124
- // When using native Shadow DOM, do not clear host element to allow native slot projection
12125
- const preserveContent = encapsulation === ViewEncapsulation$1.ShadowDom;
12126
- return renderer.selectRootElement(elementOrSelector, preserveContent);
12127
- }
12128
- let rElement = typeof elementOrSelector === 'string' ?
12129
- renderer.querySelector(elementOrSelector) :
12130
- elementOrSelector;
12131
- ngDevMode && assertHostNodeExists(rElement, elementOrSelector);
12132
- // Always clear host element's content when Renderer3 is in use. For procedural renderer case we
12133
- // make it depend on whether ShadowDom encapsulation is used (in which case the content should be
12134
- // preserved to allow native slot projection). ShadowDom encapsulation requires procedural
12135
- // renderer, and procedural renderer case is handled above.
12136
- rElement.textContent = '';
12137
- return rElement;
12025
+ // When using native Shadow DOM, do not clear host element to allow native slot projection
12026
+ const preserveContent = encapsulation === ViewEncapsulation$1.ShadowDom;
12027
+ return renderer.selectRootElement(elementOrSelector, preserveContent);
12138
12028
  }
12139
12029
  /**
12140
12030
  * Saves context for this cleanup function in LView.cleanupInstances.
@@ -12349,13 +12239,7 @@ function elementPropertyInternal(tView, tNode, lView, propName, value, renderer,
12349
12239
  // It is assumed that the sanitizer is only added when the compiler determines that the
12350
12240
  // property is risky, so sanitization can be done without further checks.
12351
12241
  value = sanitizer != null ? sanitizer(value, tNode.value || '', propName) : value;
12352
- if (isProceduralRenderer(renderer)) {
12353
- renderer.setProperty(element, propName, value);
12354
- }
12355
- else if (!isAnimationProp(propName)) {
12356
- element.setProperty ? element.setProperty(propName, value) :
12357
- element[propName] = value;
12358
- }
12242
+ renderer.setProperty(element, propName, value);
12359
12243
  }
12360
12244
  else if (tNode.type & 12 /* TNodeType.AnyContainer */) {
12361
12245
  // If the node is a container and the property didn't
@@ -12379,23 +12263,15 @@ function setNgReflectProperty(lView, element, type, attrName, value) {
12379
12263
  const debugValue = normalizeDebugBindingValue(value);
12380
12264
  if (type & 3 /* TNodeType.AnyRNode */) {
12381
12265
  if (value == null) {
12382
- isProceduralRenderer(renderer) ? renderer.removeAttribute(element, attrName) :
12383
- element.removeAttribute(attrName);
12266
+ renderer.removeAttribute(element, attrName);
12384
12267
  }
12385
12268
  else {
12386
- isProceduralRenderer(renderer) ?
12387
- renderer.setAttribute(element, attrName, debugValue) :
12388
- element.setAttribute(attrName, debugValue);
12269
+ renderer.setAttribute(element, attrName, debugValue);
12389
12270
  }
12390
12271
  }
12391
12272
  else {
12392
12273
  const textContent = escapeCommentText(`bindings=${JSON.stringify({ [attrName]: debugValue }, null, 2)}`);
12393
- if (isProceduralRenderer(renderer)) {
12394
- renderer.setValue(element, textContent);
12395
- }
12396
- else {
12397
- element.textContent = textContent;
12398
- }
12274
+ renderer.setValue(element, textContent);
12399
12275
  }
12400
12276
  }
12401
12277
  function setNgReflectProperties(lView, element, type, dataValue, value) {
@@ -12749,19 +12625,12 @@ function elementAttributeInternal(tNode, lView, name, value, sanitizer, namespac
12749
12625
  function setElementAttribute(renderer, element, namespace, tagName, name, value, sanitizer) {
12750
12626
  if (value == null) {
12751
12627
  ngDevMode && ngDevMode.rendererRemoveAttribute++;
12752
- isProceduralRenderer(renderer) ? renderer.removeAttribute(element, name, namespace) :
12753
- element.removeAttribute(name);
12628
+ renderer.removeAttribute(element, name, namespace);
12754
12629
  }
12755
12630
  else {
12756
12631
  ngDevMode && ngDevMode.rendererSetAttribute++;
12757
12632
  const strValue = sanitizer == null ? renderStringify(value) : sanitizer(value, tagName || '', name);
12758
- if (isProceduralRenderer(renderer)) {
12759
- renderer.setAttribute(element, name, strValue, namespace);
12760
- }
12761
- else {
12762
- namespace ? element.setAttributeNS(namespace, name, strValue) :
12763
- element.setAttribute(name, strValue);
12764
- }
12633
+ renderer.setAttribute(element, name, strValue, namespace);
12765
12634
  }
12766
12635
  }
12767
12636
  /**
@@ -12853,7 +12722,6 @@ const LContainerArray = class LContainer extends Array {
12853
12722
  */
12854
12723
  function createLContainer(hostNative, currentView, native, tNode) {
12855
12724
  ngDevMode && assertLView(currentView);
12856
- ngDevMode && !isProceduralRenderer(currentView[RENDERER]) && assertDomNode(native);
12857
12725
  // https://jsperf.com/array-literal-vs-new-array-really
12858
12726
  const lContainer = new (ngDevMode ? LContainerArray : Array)(hostNative, // host native
12859
12727
  true, // Boolean `true` in this position signifies that this is an `LContainer`
@@ -12969,7 +12837,7 @@ function refreshContainsDirtyView(lView) {
12969
12837
  }
12970
12838
  }
12971
12839
  }
12972
- function renderComponent$1(hostLView, componentHostIdx) {
12840
+ function renderComponent(hostLView, componentHostIdx) {
12973
12841
  ngDevMode && assertEqual(isCreationMode(hostLView), true, 'Should be run in creation mode');
12974
12842
  const componentView = getComponentLViewByIndex(componentHostIdx, hostLView);
12975
12843
  const componentTView = componentView[TVIEW];
@@ -13321,48 +13189,135 @@ function computeStaticStyling(tNode, attrs, writeToHost) {
13321
13189
  * Use of this source code is governed by an MIT-style license that can be
13322
13190
  * found in the LICENSE file at https://angular.io/license
13323
13191
  */
13192
+ // TODO: A hack to not pull in the NullInjector from @angular/core.
13193
+ const NULL_INJECTOR = {
13194
+ get: (token, notFoundValue) => {
13195
+ throwProviderNotFoundError(token, 'NullInjector');
13196
+ }
13197
+ };
13324
13198
  /**
13325
- * Synchronously perform change detection on a component (and possibly its sub-components).
13199
+ * Creates the root component view and the root component node.
13326
13200
  *
13327
- * This function triggers change detection in a synchronous way on a component.
13201
+ * @param rNode Render host element.
13202
+ * @param def ComponentDef
13203
+ * @param rootView The parent view where the host node is stored
13204
+ * @param rendererFactory Factory to be used for creating child renderers.
13205
+ * @param hostRenderer The current renderer
13206
+ * @param sanitizer The sanitizer, if provided
13328
13207
  *
13329
- * @param component The component which the change detection should be performed on.
13208
+ * @returns Component view created
13330
13209
  */
13331
- function detectChanges(component) {
13332
- const view = getComponentViewByInstance(component);
13333
- detectChangesInternal(view[TVIEW], view, component);
13210
+ function createRootComponentView(rNode, def, rootView, rendererFactory, hostRenderer, sanitizer) {
13211
+ const tView = rootView[TVIEW];
13212
+ const index = HEADER_OFFSET;
13213
+ ngDevMode && assertIndexInRange(rootView, index);
13214
+ rootView[index] = rNode;
13215
+ // '#host' is added here as we don't know the real host DOM name (we don't want to read it) and at
13216
+ // the same time we want to communicate the debug `TNode` that this is a special `TNode`
13217
+ // representing a host element.
13218
+ const tNode = getOrCreateTNode(tView, index, 2 /* TNodeType.Element */, '#host', null);
13219
+ const mergedAttrs = tNode.mergedAttrs = def.hostAttrs;
13220
+ if (mergedAttrs !== null) {
13221
+ computeStaticStyling(tNode, mergedAttrs, true);
13222
+ if (rNode !== null) {
13223
+ setUpAttributes(hostRenderer, rNode, mergedAttrs);
13224
+ if (tNode.classes !== null) {
13225
+ writeDirectClass(hostRenderer, rNode, tNode.classes);
13226
+ }
13227
+ if (tNode.styles !== null) {
13228
+ writeDirectStyle(hostRenderer, rNode, tNode.styles);
13229
+ }
13230
+ }
13231
+ }
13232
+ const viewRenderer = rendererFactory.createRenderer(rNode, def);
13233
+ const componentView = createLView(rootView, getOrCreateTComponentView(def), null, def.onPush ? 32 /* LViewFlags.Dirty */ : 16 /* LViewFlags.CheckAlways */, rootView[index], tNode, rendererFactory, viewRenderer, sanitizer || null, null, null);
13234
+ if (tView.firstCreatePass) {
13235
+ diPublicInInjector(getOrCreateNodeInjectorForNode(tNode, rootView), tView, def.type);
13236
+ markAsComponentHost(tView, tNode);
13237
+ initTNodeFlags(tNode, rootView.length, 1);
13238
+ }
13239
+ addToViewTree(rootView, componentView);
13240
+ // Store component view at node index, with node as the HOST
13241
+ return rootView[index] = componentView;
13334
13242
  }
13335
13243
  /**
13336
- * Marks the component as dirty (needing change detection). Marking a component dirty will
13337
- * schedule a change detection on it at some point in the future.
13338
- *
13339
- * Marking an already dirty component as dirty won't do anything. Only one outstanding change
13340
- * detection can be scheduled per component tree.
13341
- *
13342
- * @param component Component to mark as dirty.
13244
+ * Creates a root component and sets it up with features and host bindings. Shared by
13245
+ * renderComponent() and ViewContainerRef.createComponent().
13343
13246
  */
13344
- function markDirty(component) {
13345
- ngDevMode && assertDefined(component, 'component');
13346
- const rootView = markViewDirty(getComponentViewByInstance(component));
13347
- ngDevMode && assertDefined(rootView[CONTEXT], 'rootContext should be defined');
13348
- scheduleTick(rootView[CONTEXT], 1 /* RootContextFlags.DetectChanges */);
13349
- }
13247
+ function createRootComponent(componentView, componentDef, rootLView, rootContext, hostFeatures) {
13248
+ const tView = rootLView[TVIEW];
13249
+ // Create directive instance with factory() and store at next index in viewData
13250
+ const component = instantiateRootComponent(tView, rootLView, componentDef);
13251
+ rootContext.components.push(component);
13252
+ componentView[CONTEXT] = component;
13253
+ if (hostFeatures !== null) {
13254
+ for (const feature of hostFeatures) {
13255
+ feature(component, componentDef);
13256
+ }
13257
+ }
13258
+ // We want to generate an empty QueryList for root content queries for backwards
13259
+ // compatibility with ViewEngine.
13260
+ if (componentDef.contentQueries) {
13261
+ const tNode = getCurrentTNode();
13262
+ ngDevMode && assertDefined(tNode, 'TNode expected');
13263
+ componentDef.contentQueries(1 /* RenderFlags.Create */, component, tNode.directiveStart);
13264
+ }
13265
+ const rootTNode = getCurrentTNode();
13266
+ ngDevMode && assertDefined(rootTNode, 'tNode should have been already created');
13267
+ if (tView.firstCreatePass &&
13268
+ (componentDef.hostBindings !== null || componentDef.hostAttrs !== null)) {
13269
+ setSelectedIndex(rootTNode.index);
13270
+ const rootTView = rootLView[TVIEW];
13271
+ registerHostBindingOpCodes(rootTView, rootTNode, rootLView, rootTNode.directiveStart, rootTNode.directiveEnd, componentDef);
13272
+ invokeHostBindingsInCreationMode(componentDef, component);
13273
+ }
13274
+ return component;
13275
+ }
13276
+ function createRootContext(scheduler, playerHandler) {
13277
+ return {
13278
+ components: [],
13279
+ scheduler: scheduler || defaultScheduler,
13280
+ clean: CLEAN_PROMISE,
13281
+ playerHandler: playerHandler || null,
13282
+ flags: 0 /* RootContextFlags.Empty */
13283
+ };
13284
+ }
13350
13285
  /**
13351
- * Used to perform change detection on the whole application.
13286
+ * Used to enable lifecycle hooks on the root component.
13352
13287
  *
13353
- * This is equivalent to `detectChanges`, but invoked on root component. Additionally, `tick`
13354
- * executes lifecycle hooks and conditionally checks components based on their
13355
- * `ChangeDetectionStrategy` and dirtiness.
13288
+ * Include this feature when calling `renderComponent` if the root component
13289
+ * you are rendering has lifecycle hooks defined. Otherwise, the hooks won't
13290
+ * be called properly.
13356
13291
  *
13357
- * The preferred way to trigger change detection is to call `markDirty`. `markDirty` internally
13358
- * schedules `tick` using a scheduler in order to coalesce multiple `markDirty` calls into a
13359
- * single change detection run. By default, the scheduler is `requestAnimationFrame`, but can
13360
- * be changed when calling `renderComponent` and providing the `scheduler` option.
13292
+ * Example:
13293
+ *
13294
+ * ```
13295
+ * renderComponent(AppComponent, {hostFeatures: [LifecycleHooksFeature]});
13296
+ * ```
13361
13297
  */
13362
- function tick(component) {
13363
- const rootView = getRootView(component);
13364
- const rootContext = rootView[CONTEXT];
13365
- tickRootContext(rootContext);
13298
+ function LifecycleHooksFeature() {
13299
+ const tNode = getCurrentTNode();
13300
+ ngDevMode && assertDefined(tNode, 'TNode is required');
13301
+ registerPostOrderHooks(getLView()[TVIEW], tNode);
13302
+ }
13303
+ /**
13304
+ * Wait on component until it is rendered.
13305
+ *
13306
+ * This function returns a `Promise` which is resolved when the component's
13307
+ * change detection is executed. This is determined by finding the scheduler
13308
+ * associated with the `component`'s render tree and waiting until the scheduler
13309
+ * flushes. If nothing is scheduled, the function returns a resolved promise.
13310
+ *
13311
+ * Example:
13312
+ * ```
13313
+ * await whenRendered(myComponent);
13314
+ * ```
13315
+ *
13316
+ * @param component Component to wait upon
13317
+ * @returns Promise which resolves when the component is rendered.
13318
+ */
13319
+ function whenRendered(component) {
13320
+ return getRootContext(component).clean;
13366
13321
  }
13367
13322
 
13368
13323
  /**
@@ -13372,407 +13327,312 @@ function tick(component) {
13372
13327
  * Use of this source code is governed by an MIT-style license that can be
13373
13328
  * found in the LICENSE file at https://angular.io/license
13374
13329
  */
13330
+ function getSuperType(type) {
13331
+ return Object.getPrototypeOf(type.prototype).constructor;
13332
+ }
13375
13333
  /**
13376
- * Retrieves the component instance associated with a given DOM element.
13377
- *
13378
- * @usageNotes
13379
- * Given the following DOM structure:
13380
- *
13381
- * ```html
13382
- * <app-root>
13383
- * <div>
13384
- * <child-comp></child-comp>
13385
- * </div>
13386
- * </app-root>
13387
- * ```
13388
- *
13389
- * Calling `getComponent` on `<child-comp>` will return the instance of `ChildComponent`
13390
- * associated with this DOM element.
13391
- *
13392
- * Calling the function on `<app-root>` will return the `MyApp` instance.
13393
- *
13394
- *
13395
- * @param element DOM element from which the component should be retrieved.
13396
- * @returns Component instance associated with the element or `null` if there
13397
- * is no component associated with it.
13334
+ * Merges the definition from a super class to a sub class.
13335
+ * @param definition The definition that is a SubClass of another directive of component
13398
13336
  *
13399
- * @publicApi
13400
- * @globalApi ng
13337
+ * @codeGenApi
13401
13338
  */
13402
- function getComponent$1(element) {
13403
- ngDevMode && assertDomElement(element);
13404
- const context = getLContext(element);
13405
- if (context === null)
13406
- return null;
13407
- if (context.component === undefined) {
13408
- const lView = context.lView;
13409
- if (lView === null) {
13410
- return null;
13339
+ function ɵɵInheritDefinitionFeature(definition) {
13340
+ let superType = getSuperType(definition.type);
13341
+ let shouldInheritFields = true;
13342
+ const inheritanceChain = [definition];
13343
+ while (superType) {
13344
+ let superDef = undefined;
13345
+ if (isComponentDef(definition)) {
13346
+ // Don't use getComponentDef/getDirectiveDef. This logic relies on inheritance.
13347
+ superDef = superType.ɵcmp || superType.ɵdir;
13411
13348
  }
13412
- context.component = getComponentAtNodeIndex(context.nodeIndex, lView);
13349
+ else {
13350
+ if (superType.ɵcmp) {
13351
+ throw new RuntimeError(903 /* RuntimeErrorCode.INVALID_INHERITANCE */, ngDevMode &&
13352
+ `Directives cannot inherit Components. Directive ${stringifyForError(definition.type)} is attempting to extend component ${stringifyForError(superType)}`);
13353
+ }
13354
+ // Don't use getComponentDef/getDirectiveDef. This logic relies on inheritance.
13355
+ superDef = superType.ɵdir;
13356
+ }
13357
+ if (superDef) {
13358
+ if (shouldInheritFields) {
13359
+ inheritanceChain.push(superDef);
13360
+ // Some fields in the definition may be empty, if there were no values to put in them that
13361
+ // would've justified object creation. Unwrap them if necessary.
13362
+ const writeableDef = definition;
13363
+ writeableDef.inputs = maybeUnwrapEmpty(definition.inputs);
13364
+ writeableDef.declaredInputs = maybeUnwrapEmpty(definition.declaredInputs);
13365
+ writeableDef.outputs = maybeUnwrapEmpty(definition.outputs);
13366
+ // Merge hostBindings
13367
+ const superHostBindings = superDef.hostBindings;
13368
+ superHostBindings && inheritHostBindings(definition, superHostBindings);
13369
+ // Merge queries
13370
+ const superViewQuery = superDef.viewQuery;
13371
+ const superContentQueries = superDef.contentQueries;
13372
+ superViewQuery && inheritViewQuery(definition, superViewQuery);
13373
+ superContentQueries && inheritContentQueries(definition, superContentQueries);
13374
+ // Merge inputs and outputs
13375
+ fillProperties(definition.inputs, superDef.inputs);
13376
+ fillProperties(definition.declaredInputs, superDef.declaredInputs);
13377
+ fillProperties(definition.outputs, superDef.outputs);
13378
+ // Merge animations metadata.
13379
+ // If `superDef` is a Component, the `data` field is present (defaults to an empty object).
13380
+ if (isComponentDef(superDef) && superDef.data.animation) {
13381
+ // If super def is a Component, the `definition` is also a Component, since Directives can
13382
+ // not inherit Components (we throw an error above and cannot reach this code).
13383
+ const defData = definition.data;
13384
+ defData.animation = (defData.animation || []).concat(superDef.data.animation);
13385
+ }
13386
+ }
13387
+ // Run parent features
13388
+ const features = superDef.features;
13389
+ if (features) {
13390
+ for (let i = 0; i < features.length; i++) {
13391
+ const feature = features[i];
13392
+ if (feature && feature.ngInherit) {
13393
+ feature(definition);
13394
+ }
13395
+ // If `InheritDefinitionFeature` is a part of the current `superDef`, it means that this
13396
+ // def already has all the necessary information inherited from its super class(es), so we
13397
+ // can stop merging fields from super classes. However we need to iterate through the
13398
+ // prototype chain to look for classes that might contain other "features" (like
13399
+ // NgOnChanges), which we should invoke for the original `definition`. We set the
13400
+ // `shouldInheritFields` flag to indicate that, essentially skipping fields inheritance
13401
+ // logic and only invoking functions from the "features" list.
13402
+ if (feature === ɵɵInheritDefinitionFeature) {
13403
+ shouldInheritFields = false;
13404
+ }
13405
+ }
13406
+ }
13407
+ }
13408
+ superType = Object.getPrototypeOf(superType);
13413
13409
  }
13414
- return context.component;
13410
+ mergeHostAttrsAcrossInheritance(inheritanceChain);
13415
13411
  }
13416
13412
  /**
13417
- * If inside an embedded view (e.g. `*ngIf` or `*ngFor`), retrieves the context of the embedded
13418
- * view that the element is part of. Otherwise retrieves the instance of the component whose view
13419
- * owns the element (in this case, the result is the same as calling `getOwningComponent`).
13420
- *
13421
- * @param element Element for which to get the surrounding component instance.
13422
- * @returns Instance of the component that is around the element or null if the element isn't
13423
- * inside any component.
13413
+ * Merge the `hostAttrs` and `hostVars` from the inherited parent to the base class.
13424
13414
  *
13425
- * @publicApi
13426
- * @globalApi ng
13415
+ * @param inheritanceChain A list of `WritableDefs` starting at the top most type and listing
13416
+ * sub-types in order. For each type take the `hostAttrs` and `hostVars` and merge it with the child
13417
+ * type.
13427
13418
  */
13428
- function getContext(element) {
13429
- assertDomElement(element);
13430
- const context = getLContext(element);
13431
- const lView = context ? context.lView : null;
13432
- return lView === null ? null : lView[CONTEXT];
13419
+ function mergeHostAttrsAcrossInheritance(inheritanceChain) {
13420
+ let hostVars = 0;
13421
+ let hostAttrs = null;
13422
+ // We process the inheritance order from the base to the leaves here.
13423
+ for (let i = inheritanceChain.length - 1; i >= 0; i--) {
13424
+ const def = inheritanceChain[i];
13425
+ // For each `hostVars`, we need to add the superclass amount.
13426
+ def.hostVars = (hostVars += def.hostVars);
13427
+ // for each `hostAttrs` we need to merge it with superclass.
13428
+ def.hostAttrs =
13429
+ mergeHostAttrs(def.hostAttrs, hostAttrs = mergeHostAttrs(hostAttrs, def.hostAttrs));
13430
+ }
13433
13431
  }
13434
- /**
13435
- * Retrieves the component instance whose view contains the DOM element.
13436
- *
13437
- * For example, if `<child-comp>` is used in the template of `<app-comp>`
13438
- * (i.e. a `ViewChild` of `<app-comp>`), calling `getOwningComponent` on `<child-comp>`
13439
- * would return `<app-comp>`.
13440
- *
13441
- * @param elementOrDir DOM element, component or directive instance
13442
- * for which to retrieve the root components.
13443
- * @returns Component instance whose view owns the DOM element or null if the element is not
13444
- * part of a component view.
13445
- *
13446
- * @publicApi
13447
- * @globalApi ng
13448
- */
13449
- function getOwningComponent(elementOrDir) {
13450
- const context = getLContext(elementOrDir);
13451
- let lView = context ? context.lView : null;
13452
- if (lView === null)
13453
- return null;
13454
- let parent;
13455
- while (lView[TVIEW].type === 2 /* TViewType.Embedded */ && (parent = getLViewParent(lView))) {
13456
- lView = parent;
13432
+ function maybeUnwrapEmpty(value) {
13433
+ if (value === EMPTY_OBJ) {
13434
+ return {};
13435
+ }
13436
+ else if (value === EMPTY_ARRAY) {
13437
+ return [];
13438
+ }
13439
+ else {
13440
+ return value;
13457
13441
  }
13458
- return lView[FLAGS] & 256 /* LViewFlags.IsRoot */ ? null : lView[CONTEXT];
13459
13442
  }
13460
- /**
13461
- * Retrieves all root components associated with a DOM element, directive or component instance.
13462
- * Root components are those which have been bootstrapped by Angular.
13463
- *
13464
- * @param elementOrDir DOM element, component or directive instance
13465
- * for which to retrieve the root components.
13466
- * @returns Root components associated with the target object.
13467
- *
13468
- * @publicApi
13469
- * @globalApi ng
13470
- */
13471
- function getRootComponents(elementOrDir) {
13472
- const lView = readPatchedLView(elementOrDir);
13473
- return lView !== null ? [...getRootContext(lView).components] : [];
13443
+ function inheritViewQuery(definition, superViewQuery) {
13444
+ const prevViewQuery = definition.viewQuery;
13445
+ if (prevViewQuery) {
13446
+ definition.viewQuery = (rf, ctx) => {
13447
+ superViewQuery(rf, ctx);
13448
+ prevViewQuery(rf, ctx);
13449
+ };
13450
+ }
13451
+ else {
13452
+ definition.viewQuery = superViewQuery;
13453
+ }
13454
+ }
13455
+ function inheritContentQueries(definition, superContentQueries) {
13456
+ const prevContentQueries = definition.contentQueries;
13457
+ if (prevContentQueries) {
13458
+ definition.contentQueries = (rf, ctx, directiveIndex) => {
13459
+ superContentQueries(rf, ctx, directiveIndex);
13460
+ prevContentQueries(rf, ctx, directiveIndex);
13461
+ };
13462
+ }
13463
+ else {
13464
+ definition.contentQueries = superContentQueries;
13465
+ }
13466
+ }
13467
+ function inheritHostBindings(definition, superHostBindings) {
13468
+ const prevHostBindings = definition.hostBindings;
13469
+ if (prevHostBindings) {
13470
+ definition.hostBindings = (rf, ctx) => {
13471
+ superHostBindings(rf, ctx);
13472
+ prevHostBindings(rf, ctx);
13473
+ };
13474
+ }
13475
+ else {
13476
+ definition.hostBindings = superHostBindings;
13477
+ }
13474
13478
  }
13479
+
13475
13480
  /**
13476
- * Retrieves an `Injector` associated with an element, component or directive instance.
13477
- *
13478
- * @param elementOrDir DOM element, component or directive instance for which to
13479
- * retrieve the injector.
13480
- * @returns Injector associated with the element, component or directive instance.
13481
+ * @license
13482
+ * Copyright Google LLC All Rights Reserved.
13481
13483
  *
13482
- * @publicApi
13483
- * @globalApi ng
13484
+ * Use of this source code is governed by an MIT-style license that can be
13485
+ * found in the LICENSE file at https://angular.io/license
13484
13486
  */
13485
- function getInjector(elementOrDir) {
13486
- const context = getLContext(elementOrDir);
13487
- const lView = context ? context.lView : null;
13488
- if (lView === null)
13489
- return Injector.NULL;
13490
- const tNode = lView[TVIEW].data[context.nodeIndex];
13491
- return new NodeInjector(tNode, lView);
13492
- }
13493
13487
  /**
13494
- * Retrieve a set of injection tokens at a given DOM node.
13495
- *
13496
- * @param element Element for which the injection tokens should be retrieved.
13488
+ * Fields which exist on either directive or component definitions, and need to be copied from
13489
+ * parent to child classes by the `ɵɵCopyDefinitionFeature`.
13497
13490
  */
13498
- function getInjectionTokens(element) {
13499
- const context = getLContext(element);
13500
- const lView = context ? context.lView : null;
13501
- if (lView === null)
13502
- return [];
13503
- const tView = lView[TVIEW];
13504
- const tNode = tView.data[context.nodeIndex];
13505
- const providerTokens = [];
13506
- const startIndex = tNode.providerIndexes & 1048575 /* TNodeProviderIndexes.ProvidersStartIndexMask */;
13507
- const endIndex = tNode.directiveEnd;
13508
- for (let i = startIndex; i < endIndex; i++) {
13509
- let value = tView.data[i];
13510
- if (isDirectiveDefHack(value)) {
13511
- // The fact that we sometimes store Type and sometimes DirectiveDef in this location is a
13512
- // design flaw. We should always store same type so that we can be monomorphic. The issue
13513
- // is that for Components/Directives we store the def instead the type. The correct behavior
13514
- // is that we should always be storing injectable type in this location.
13515
- value = value.type;
13516
- }
13517
- providerTokens.push(value);
13518
- }
13519
- return providerTokens;
13520
- }
13491
+ const COPY_DIRECTIVE_FIELDS = [
13492
+ // The child class should use the providers of its parent.
13493
+ 'providersResolver',
13494
+ // Not listed here are any fields which are handled by the `ɵɵInheritDefinitionFeature`, such
13495
+ // as inputs, outputs, and host binding functions.
13496
+ ];
13521
13497
  /**
13522
- * Retrieves directive instances associated with a given DOM node. Does not include
13523
- * component instances.
13524
- *
13525
- * @usageNotes
13526
- * Given the following DOM structure:
13498
+ * Fields which exist only on component definitions, and need to be copied from parent to child
13499
+ * classes by the `ɵɵCopyDefinitionFeature`.
13527
13500
  *
13528
- * ```html
13529
- * <app-root>
13530
- * <button my-button></button>
13531
- * <my-comp></my-comp>
13532
- * </app-root>
13533
- * ```
13501
+ * The type here allows any field of `ComponentDef` which is not also a property of `DirectiveDef`,
13502
+ * since those should go in `COPY_DIRECTIVE_FIELDS` above.
13503
+ */
13504
+ const COPY_COMPONENT_FIELDS = [
13505
+ // The child class should use the template function of its parent, including all template
13506
+ // semantics.
13507
+ 'template',
13508
+ 'decls',
13509
+ 'consts',
13510
+ 'vars',
13511
+ 'onPush',
13512
+ 'ngContentSelectors',
13513
+ // The child class should use the CSS styles of its parent, including all styling semantics.
13514
+ 'styles',
13515
+ 'encapsulation',
13516
+ // The child class should be checked by the runtime in the same way as its parent.
13517
+ 'schemas',
13518
+ ];
13519
+ /**
13520
+ * Copies the fields not handled by the `ɵɵInheritDefinitionFeature` from the supertype of a
13521
+ * definition.
13534
13522
  *
13535
- * Calling `getDirectives` on `<button>` will return an array with an instance of the `MyButton`
13536
- * directive that is associated with the DOM node.
13523
+ * This exists primarily to support ngcc migration of an existing View Engine pattern, where an
13524
+ * entire decorator is inherited from a parent to a child class. When ngcc detects this case, it
13525
+ * generates a skeleton definition on the child class, and applies this feature.
13537
13526
  *
13538
- * Calling `getDirectives` on `<my-comp>` will return an empty array.
13527
+ * The `ɵɵCopyDefinitionFeature` then copies any needed fields from the parent class' definition,
13528
+ * including things like the component template function.
13539
13529
  *
13540
- * @param node DOM node for which to get the directives.
13541
- * @returns Array of directives associated with the node.
13530
+ * @param definition The definition of a child class which inherits from a parent class with its
13531
+ * own definition.
13542
13532
  *
13543
- * @publicApi
13544
- * @globalApi ng
13533
+ * @codeGenApi
13545
13534
  */
13546
- function getDirectives(node) {
13547
- // Skip text nodes because we can't have directives associated with them.
13548
- if (node instanceof Text) {
13549
- return [];
13535
+ function ɵɵCopyDefinitionFeature(definition) {
13536
+ let superType = getSuperType(definition.type);
13537
+ let superDef = undefined;
13538
+ if (isComponentDef(definition)) {
13539
+ // Don't use getComponentDef/getDirectiveDef. This logic relies on inheritance.
13540
+ superDef = superType.ɵcmp;
13550
13541
  }
13551
- const context = getLContext(node);
13552
- const lView = context ? context.lView : null;
13553
- if (lView === null) {
13554
- return [];
13542
+ else {
13543
+ // Don't use getComponentDef/getDirectiveDef. This logic relies on inheritance.
13544
+ superDef = superType.ɵdir;
13555
13545
  }
13556
- const tView = lView[TVIEW];
13557
- const nodeIndex = context.nodeIndex;
13558
- if (!(tView === null || tView === void 0 ? void 0 : tView.data[nodeIndex])) {
13559
- return [];
13546
+ // Needed because `definition` fields are readonly.
13547
+ const defAny = definition;
13548
+ // Copy over any fields that apply to either directives or components.
13549
+ for (const field of COPY_DIRECTIVE_FIELDS) {
13550
+ defAny[field] = superDef[field];
13560
13551
  }
13561
- if (context.directives === undefined) {
13562
- context.directives = getDirectivesAtNodeIndex(nodeIndex, lView, false);
13552
+ if (isComponentDef(superDef)) {
13553
+ // Copy over any component-specific fields.
13554
+ for (const field of COPY_COMPONENT_FIELDS) {
13555
+ defAny[field] = superDef[field];
13556
+ }
13563
13557
  }
13564
- // The `directives` in this case are a named array called `LComponentView`. Clone the
13565
- // result so we don't expose an internal data structure in the user's console.
13566
- return context.directives === null ? [] : [...context.directives];
13567
13558
  }
13559
+
13568
13560
  /**
13569
- * Returns the debug (partial) metadata for a particular directive or component instance.
13570
- * The function accepts an instance of a directive or component and returns the corresponding
13571
- * metadata.
13572
- *
13573
- * @param directiveOrComponentInstance Instance of a directive or component
13574
- * @returns metadata of the passed directive or component
13561
+ * @license
13562
+ * Copyright Google LLC All Rights Reserved.
13575
13563
  *
13576
- * @publicApi
13577
- * @globalApi ng
13564
+ * Use of this source code is governed by an MIT-style license that can be
13565
+ * found in the LICENSE file at https://angular.io/license
13578
13566
  */
13579
- function getDirectiveMetadata$1(directiveOrComponentInstance) {
13580
- const { constructor } = directiveOrComponentInstance;
13581
- if (!constructor) {
13582
- throw new Error('Unable to find the instance constructor');
13583
- }
13584
- // In case a component inherits from a directive, we may have component and directive metadata
13585
- // To ensure we don't get the metadata of the directive, we want to call `getComponentDef` first.
13586
- const componentDef = getComponentDef(constructor);
13587
- if (componentDef) {
13588
- return {
13589
- inputs: componentDef.inputs,
13590
- outputs: componentDef.outputs,
13591
- encapsulation: componentDef.encapsulation,
13592
- changeDetection: componentDef.onPush ? ChangeDetectionStrategy.OnPush :
13593
- ChangeDetectionStrategy.Default
13594
- };
13595
- }
13596
- const directiveDef = getDirectiveDef(constructor);
13597
- if (directiveDef) {
13598
- return { inputs: directiveDef.inputs, outputs: directiveDef.outputs };
13567
+ let _symbolIterator = null;
13568
+ function getSymbolIterator() {
13569
+ if (!_symbolIterator) {
13570
+ const Symbol = _global['Symbol'];
13571
+ if (Symbol && Symbol.iterator) {
13572
+ _symbolIterator = Symbol.iterator;
13573
+ }
13574
+ else {
13575
+ // es6-shim specific logic
13576
+ const keys = Object.getOwnPropertyNames(Map.prototype);
13577
+ for (let i = 0; i < keys.length; ++i) {
13578
+ const key = keys[i];
13579
+ if (key !== 'entries' && key !== 'size' &&
13580
+ Map.prototype[key] === Map.prototype['entries']) {
13581
+ _symbolIterator = key;
13582
+ }
13583
+ }
13584
+ }
13599
13585
  }
13600
- return null;
13586
+ return _symbolIterator;
13601
13587
  }
13588
+
13602
13589
  /**
13603
- * Retrieve map of local references.
13604
- *
13605
- * The references are retrieved as a map of local reference name to element or directive instance.
13590
+ * @license
13591
+ * Copyright Google LLC All Rights Reserved.
13606
13592
  *
13607
- * @param target DOM element, component or directive instance for which to retrieve
13608
- * the local references.
13593
+ * Use of this source code is governed by an MIT-style license that can be
13594
+ * found in the LICENSE file at https://angular.io/license
13609
13595
  */
13610
- function getLocalRefs(target) {
13611
- const context = getLContext(target);
13612
- if (context === null)
13613
- return {};
13614
- if (context.localRefs === undefined) {
13615
- const lView = context.lView;
13616
- if (lView === null) {
13617
- return {};
13618
- }
13619
- context.localRefs = discoverLocalRefs(lView, context.nodeIndex);
13620
- }
13621
- return context.localRefs || {};
13622
- }
13623
- /**
13624
- * Retrieves the host element of a component or directive instance.
13625
- * The host element is the DOM element that matched the selector of the directive.
13626
- *
13627
- * @param componentOrDirective Component or directive instance for which the host
13628
- * element should be retrieved.
13629
- * @returns Host element of the target.
13630
- *
13631
- * @publicApi
13632
- * @globalApi ng
13633
- */
13634
- function getHostElement(componentOrDirective) {
13635
- return getLContext(componentOrDirective).native;
13596
+ function isIterable(obj) {
13597
+ return obj !== null && typeof obj === 'object' && obj[getSymbolIterator()] !== undefined;
13636
13598
  }
13637
- /**
13638
- * Retrieves the rendered text for a given component.
13639
- *
13640
- * This function retrieves the host element of a component and
13641
- * and then returns the `textContent` for that element. This implies
13642
- * that the text returned will include re-projected content of
13643
- * the component as well.
13644
- *
13645
- * @param component The component to return the content text for.
13646
- */
13647
- function getRenderedText(component) {
13648
- const hostElement = getHostElement(component);
13649
- return hostElement.textContent || '';
13599
+ function isListLikeIterable(obj) {
13600
+ if (!isJsObject(obj))
13601
+ return false;
13602
+ return Array.isArray(obj) ||
13603
+ (!(obj instanceof Map) && // JS Map are iterables but return entries as [k, v]
13604
+ getSymbolIterator() in obj); // JS Iterable have a Symbol.iterator prop
13650
13605
  }
13651
- /**
13652
- * Retrieves a list of event listeners associated with a DOM element. The list does include host
13653
- * listeners, but it does not include event listeners defined outside of the Angular context
13654
- * (e.g. through `addEventListener`).
13655
- *
13656
- * @usageNotes
13657
- * Given the following DOM structure:
13658
- *
13659
- * ```html
13660
- * <app-root>
13661
- * <div (click)="doSomething()"></div>
13662
- * </app-root>
13663
- * ```
13664
- *
13665
- * Calling `getListeners` on `<div>` will return an object that looks as follows:
13666
- *
13667
- * ```ts
13668
- * {
13669
- * name: 'click',
13670
- * element: <div>,
13671
- * callback: () => doSomething(),
13672
- * useCapture: false
13673
- * }
13674
- * ```
13675
- *
13676
- * @param element Element for which the DOM listeners should be retrieved.
13677
- * @returns Array of event listeners on the DOM element.
13678
- *
13679
- * @publicApi
13680
- * @globalApi ng
13681
- */
13682
- function getListeners(element) {
13683
- ngDevMode && assertDomElement(element);
13684
- const lContext = getLContext(element);
13685
- const lView = lContext === null ? null : lContext.lView;
13686
- if (lView === null)
13687
- return [];
13688
- const tView = lView[TVIEW];
13689
- const lCleanup = lView[CLEANUP];
13690
- const tCleanup = tView.cleanup;
13691
- const listeners = [];
13692
- if (tCleanup && lCleanup) {
13693
- for (let i = 0; i < tCleanup.length;) {
13694
- const firstParam = tCleanup[i++];
13695
- const secondParam = tCleanup[i++];
13696
- if (typeof firstParam === 'string') {
13697
- const name = firstParam;
13698
- const listenerElement = unwrapRNode(lView[secondParam]);
13699
- const callback = lCleanup[tCleanup[i++]];
13700
- const useCaptureOrIndx = tCleanup[i++];
13701
- // if useCaptureOrIndx is boolean then report it as is.
13702
- // if useCaptureOrIndx is positive number then it in unsubscribe method
13703
- // if useCaptureOrIndx is negative number then it is a Subscription
13704
- const type = (typeof useCaptureOrIndx === 'boolean' || useCaptureOrIndx >= 0) ? 'dom' : 'output';
13705
- const useCapture = typeof useCaptureOrIndx === 'boolean' ? useCaptureOrIndx : false;
13706
- if (element == listenerElement) {
13707
- listeners.push({ element, name, callback, useCapture, type });
13708
- }
13709
- }
13710
- }
13606
+ function areIterablesEqual(a, b, comparator) {
13607
+ const iterator1 = a[getSymbolIterator()]();
13608
+ const iterator2 = b[getSymbolIterator()]();
13609
+ while (true) {
13610
+ const item1 = iterator1.next();
13611
+ const item2 = iterator2.next();
13612
+ if (item1.done && item2.done)
13613
+ return true;
13614
+ if (item1.done || item2.done)
13615
+ return false;
13616
+ if (!comparator(item1.value, item2.value))
13617
+ return false;
13711
13618
  }
13712
- listeners.sort(sortListeners);
13713
- return listeners;
13714
- }
13715
- function sortListeners(a, b) {
13716
- if (a.name == b.name)
13717
- return 0;
13718
- return a.name < b.name ? -1 : 1;
13719
- }
13720
- /**
13721
- * This function should not exist because it is megamorphic and only mostly correct.
13722
- *
13723
- * See call site for more info.
13724
- */
13725
- function isDirectiveDefHack(obj) {
13726
- return obj.type !== undefined && obj.template !== undefined && obj.declaredInputs !== undefined;
13727
13619
  }
13728
- /**
13729
- * Returns the attached `DebugNode` instance for an element in the DOM.
13730
- *
13731
- * @param element DOM element which is owned by an existing component's view.
13732
- */
13733
- function getDebugNode$1(element) {
13734
- if (ngDevMode && !(element instanceof Node)) {
13735
- throw new Error('Expecting instance of DOM Element');
13736
- }
13737
- const lContext = getLContext(element);
13738
- const lView = lContext ? lContext.lView : null;
13739
- if (lView === null) {
13740
- return null;
13620
+ function iterateListLike(obj, fn) {
13621
+ if (Array.isArray(obj)) {
13622
+ for (let i = 0; i < obj.length; i++) {
13623
+ fn(obj[i]);
13624
+ }
13741
13625
  }
13742
- const nodeIndex = lContext.nodeIndex;
13743
- if (nodeIndex !== -1) {
13744
- const valueInLView = lView[nodeIndex];
13745
- // this means that value in the lView is a component with its own
13746
- // data. In this situation the TNode is not accessed at the same spot.
13747
- const tNode = isLView(valueInLView) ? valueInLView[T_HOST] : getTNode(lView[TVIEW], nodeIndex);
13748
- ngDevMode &&
13749
- assertEqual(tNode.index, nodeIndex, 'Expecting that TNode at index is same as index');
13750
- return buildDebugNode(tNode, lView);
13626
+ else {
13627
+ const iterator = obj[getSymbolIterator()]();
13628
+ let item;
13629
+ while (!((item = iterator.next()).done)) {
13630
+ fn(item.value);
13631
+ }
13751
13632
  }
13752
- return null;
13753
- }
13754
- /**
13755
- * Retrieve the component `LView` from component/element.
13756
- *
13757
- * NOTE: `LView` is a private and should not be leaked outside.
13758
- * Don't export this method to `ng.*` on window.
13759
- *
13760
- * @param target DOM element or component instance for which to retrieve the LView.
13761
- */
13762
- function getComponentLView(target) {
13763
- const lContext = getLContext(target);
13764
- const nodeIndx = lContext.nodeIndex;
13765
- const lView = lContext.lView;
13766
- ngDevMode && assertLView(lView);
13767
- const componentLView = lView[nodeIndx];
13768
- ngDevMode && assertLView(componentLView);
13769
- return componentLView;
13770
13633
  }
13771
- /** Asserts that a value is a DOM Element. */
13772
- function assertDomElement(value) {
13773
- if (typeof Element !== 'undefined' && !(value instanceof Element)) {
13774
- throw new Error('Expecting instance of DOM Element');
13775
- }
13634
+ function isJsObject(o) {
13635
+ return o !== null && (typeof o === 'function' || typeof o === 'object');
13776
13636
  }
13777
13637
 
13778
13638
  /**
@@ -13782,18 +13642,22 @@ function assertDomElement(value) {
13782
13642
  * Use of this source code is governed by an MIT-style license that can be
13783
13643
  * found in the LICENSE file at https://angular.io/license
13784
13644
  */
13785
- /**
13786
- * Marks a component for check (in case of OnPush components) and synchronously
13787
- * performs change detection on the application this component belongs to.
13788
- *
13789
- * @param component Component to {@link ChangeDetectorRef#markForCheck mark for check}.
13790
- *
13791
- * @publicApi
13792
- * @globalApi ng
13793
- */
13794
- function applyChanges(component) {
13795
- markDirty(component);
13796
- getRootComponents(component).forEach(rootComponent => detectChanges(rootComponent));
13645
+ function devModeEqual(a, b) {
13646
+ const isListLikeIterableA = isListLikeIterable(a);
13647
+ const isListLikeIterableB = isListLikeIterable(b);
13648
+ if (isListLikeIterableA && isListLikeIterableB) {
13649
+ return areIterablesEqual(a, b, devModeEqual);
13650
+ }
13651
+ else {
13652
+ const isAObject = a && (typeof a === 'object' || typeof a === 'function');
13653
+ const isBObject = b && (typeof b === 'object' || typeof b === 'function');
13654
+ if (!isListLikeIterableA && isAObject && !isListLikeIterableB && isBObject) {
13655
+ return true;
13656
+ }
13657
+ else {
13658
+ return Object.is(a, b);
13659
+ }
13660
+ }
13797
13661
  }
13798
13662
 
13799
13663
  /**
@@ -13803,70 +13667,73 @@ function applyChanges(component) {
13803
13667
  * Use of this source code is governed by an MIT-style license that can be
13804
13668
  * found in the LICENSE file at https://angular.io/license
13805
13669
  */
13670
+ // TODO(misko): consider inlining
13671
+ /** Updates binding and returns the value. */
13672
+ function updateBinding(lView, bindingIndex, value) {
13673
+ return lView[bindingIndex] = value;
13674
+ }
13675
+ /** Gets the current binding value. */
13676
+ function getBinding(lView, bindingIndex) {
13677
+ ngDevMode && assertIndexInRange(lView, bindingIndex);
13678
+ ngDevMode &&
13679
+ assertNotSame(lView[bindingIndex], NO_CHANGE, 'Stored value should never be NO_CHANGE.');
13680
+ return lView[bindingIndex];
13681
+ }
13806
13682
  /**
13807
- * This file introduces series of globally accessible debug tools
13808
- * to allow for the Angular debugging story to function.
13809
- *
13810
- * To see this in action run the following command:
13811
- *
13812
- * bazel run //packages/core/test/bundling/todo:devserver
13683
+ * Updates binding if changed, then returns whether it was updated.
13813
13684
  *
13814
- * Then load `localhost:5432` and start using the console tools.
13815
- */
13816
- /**
13817
- * This value reflects the property on the window where the dev
13818
- * tools are patched (window.ng).
13819
- * */
13820
- const GLOBAL_PUBLISH_EXPANDO_KEY = 'ng';
13821
- let _published = false;
13822
- /**
13823
- * Publishes a collection of default debug tools onto`window.ng`.
13685
+ * This function also checks the `CheckNoChangesMode` and throws if changes are made.
13686
+ * Some changes (Objects/iterables) during `CheckNoChangesMode` are exempt to comply with VE
13687
+ * behavior.
13824
13688
  *
13825
- * These functions are available globally when Angular is in development
13826
- * mode and are automatically stripped away from prod mode is on.
13689
+ * @param lView current `LView`
13690
+ * @param bindingIndex The binding in the `LView` to check
13691
+ * @param value New value to check against `lView[bindingIndex]`
13692
+ * @returns `true` if the bindings has changed. (Throws if binding has changed during
13693
+ * `CheckNoChangesMode`)
13827
13694
  */
13828
- function publishDefaultGlobalUtils$1() {
13829
- if (!_published) {
13830
- _published = true;
13831
- /**
13832
- * Warning: this function is *INTERNAL* and should not be relied upon in application's code.
13833
- * The contract of the function might be changed in any release and/or the function can be
13834
- * removed completely.
13835
- */
13836
- publishGlobalUtil('ɵsetProfiler', setProfiler);
13837
- publishGlobalUtil('getDirectiveMetadata', getDirectiveMetadata$1);
13838
- publishGlobalUtil('getComponent', getComponent$1);
13839
- publishGlobalUtil('getContext', getContext);
13840
- publishGlobalUtil('getListeners', getListeners);
13841
- publishGlobalUtil('getOwningComponent', getOwningComponent);
13842
- publishGlobalUtil('getHostElement', getHostElement);
13843
- publishGlobalUtil('getInjector', getInjector);
13844
- publishGlobalUtil('getRootComponents', getRootComponents);
13845
- publishGlobalUtil('getDirectives', getDirectives);
13846
- publishGlobalUtil('applyChanges', applyChanges);
13695
+ function bindingUpdated(lView, bindingIndex, value) {
13696
+ ngDevMode && assertNotSame(value, NO_CHANGE, 'Incoming value should never be NO_CHANGE.');
13697
+ ngDevMode &&
13698
+ assertLessThan(bindingIndex, lView.length, `Slot should have been initialized to NO_CHANGE`);
13699
+ const oldValue = lView[bindingIndex];
13700
+ if (Object.is(oldValue, value)) {
13701
+ return false;
13847
13702
  }
13848
- }
13849
- /**
13850
- * Publishes the given function to `window.ng` so that it can be
13851
- * used from the browser console when an application is not in production.
13852
- */
13853
- function publishGlobalUtil(name, fn) {
13854
- if (typeof COMPILED === 'undefined' || !COMPILED) {
13855
- // Note: we can't export `ng` when using closure enhanced optimization as:
13856
- // - closure declares globals itself for minified names, which sometimes clobber our `ng` global
13857
- // - we can't declare a closure extern as the namespace `ng` is already used within Google
13858
- // for typings for AngularJS (via `goog.provide('ng....')`).
13859
- const w = _global;
13860
- ngDevMode && assertDefined(fn, 'function not defined');
13861
- if (w) {
13862
- let container = w[GLOBAL_PUBLISH_EXPANDO_KEY];
13863
- if (!container) {
13864
- container = w[GLOBAL_PUBLISH_EXPANDO_KEY] = {};
13703
+ else {
13704
+ if (ngDevMode && isInCheckNoChangesMode()) {
13705
+ // View engine didn't report undefined values as changed on the first checkNoChanges pass
13706
+ // (before the change detection was run).
13707
+ const oldValueToCompare = oldValue !== NO_CHANGE ? oldValue : undefined;
13708
+ if (!devModeEqual(oldValueToCompare, value)) {
13709
+ const details = getExpressionChangedErrorDetails(lView, bindingIndex, oldValueToCompare, value);
13710
+ throwErrorIfNoChangesMode(oldValue === NO_CHANGE, details.oldValue, details.newValue, details.propName);
13865
13711
  }
13866
- container[name] = fn;
13712
+ // There was a change, but the `devModeEqual` decided that the change is exempt from an error.
13713
+ // For this reason we exit as if no change. The early exit is needed to prevent the changed
13714
+ // value to be written into `LView` (If we would write the new value that we would not see it
13715
+ // as change on next CD.)
13716
+ return false;
13867
13717
  }
13718
+ lView[bindingIndex] = value;
13719
+ return true;
13868
13720
  }
13869
13721
  }
13722
+ /** Updates 2 bindings if changed, then returns whether either was updated. */
13723
+ function bindingUpdated2(lView, bindingIndex, exp1, exp2) {
13724
+ const different = bindingUpdated(lView, bindingIndex, exp1);
13725
+ return bindingUpdated(lView, bindingIndex + 1, exp2) || different;
13726
+ }
13727
+ /** Updates 3 bindings if changed, then returns whether any was updated. */
13728
+ function bindingUpdated3(lView, bindingIndex, exp1, exp2, exp3) {
13729
+ const different = bindingUpdated2(lView, bindingIndex, exp1, exp2);
13730
+ return bindingUpdated(lView, bindingIndex + 2, exp3) || different;
13731
+ }
13732
+ /** Updates 4 bindings if changed, then returns whether any was updated. */
13733
+ function bindingUpdated4(lView, bindingIndex, exp1, exp2, exp3, exp4) {
13734
+ const different = bindingUpdated2(lView, bindingIndex, exp1, exp2);
13735
+ return bindingUpdated2(lView, bindingIndex + 2, exp3, exp4) || different;
13736
+ }
13870
13737
 
13871
13738
  /**
13872
13739
  * @license
@@ -13875,981 +13742,377 @@ function publishGlobalUtil(name, fn) {
13875
13742
  * Use of this source code is governed by an MIT-style license that can be
13876
13743
  * found in the LICENSE file at https://angular.io/license
13877
13744
  */
13878
- // TODO: A hack to not pull in the NullInjector from @angular/core.
13879
- const NULL_INJECTOR = {
13880
- get: (token, notFoundValue) => {
13881
- throwProviderNotFoundError(token, 'NullInjector');
13882
- }
13883
- };
13884
13745
  /**
13885
- * Bootstraps a Component into an existing host element and returns an instance
13886
- * of the component.
13746
+ * Updates the value of or removes a bound attribute on an Element.
13747
+ *
13748
+ * Used in the case of `[attr.title]="value"`
13887
13749
  *
13888
- * Use this function to bootstrap a component into the DOM tree. Each invocation
13889
- * of this function will create a separate tree of components, injectors and
13890
- * change detection cycles and lifetimes. To dynamically insert a new component
13891
- * into an existing tree such that it shares the same injection, change detection
13892
- * and object lifetime, use {@link ViewContainer#createComponent}.
13750
+ * @param name name The name of the attribute.
13751
+ * @param value value The attribute is removed when value is `null` or `undefined`.
13752
+ * Otherwise the attribute value is set to the stringified value.
13753
+ * @param sanitizer An optional function used to sanitize the value.
13754
+ * @param namespace Optional namespace to use when setting the attribute.
13893
13755
  *
13894
- * @param componentType Component to bootstrap
13895
- * @param options Optional parameters which control bootstrapping
13756
+ * @codeGenApi
13896
13757
  */
13897
- function renderComponent(componentType /* Type as workaround for: Microsoft/TypeScript/issues/4881 */, opts = {}) {
13898
- ngDevMode && publishDefaultGlobalUtils$1();
13899
- ngDevMode && assertComponentType(componentType);
13900
- enableRenderer3();
13901
- const rendererFactory = opts.rendererFactory || domRendererFactory3;
13902
- const sanitizer = opts.sanitizer || null;
13903
- const componentDef = getComponentDef(componentType);
13904
- if (componentDef.type != componentType)
13905
- componentDef.type = componentType;
13906
- // The first index of the first selector is the tag name.
13907
- const componentTag = componentDef.selectors[0][0];
13908
- const hostRenderer = rendererFactory.createRenderer(null, null);
13909
- const hostRNode = locateHostElement(hostRenderer, opts.host || componentTag, componentDef.encapsulation);
13910
- const rootFlags = componentDef.onPush ? 32 /* LViewFlags.Dirty */ | 256 /* LViewFlags.IsRoot */ :
13911
- 16 /* LViewFlags.CheckAlways */ | 256 /* LViewFlags.IsRoot */;
13912
- const rootContext = createRootContext(opts.scheduler, opts.playerHandler);
13913
- const renderer = rendererFactory.createRenderer(hostRNode, componentDef);
13914
- const rootTView = createTView(0 /* TViewType.Root */, null, null, 1, 0, null, null, null, null, null);
13915
- const rootView = createLView(null, rootTView, rootContext, rootFlags, null, null, rendererFactory, renderer, null, opts.injector || null, null);
13916
- enterView(rootView);
13917
- let component;
13918
- try {
13919
- if (rendererFactory.begin)
13920
- rendererFactory.begin();
13921
- const componentView = createRootComponentView(hostRNode, componentDef, rootView, rendererFactory, renderer, sanitizer);
13922
- component = createRootComponent(componentView, componentDef, rootView, rootContext, opts.hostFeatures || null);
13923
- // create mode pass
13924
- renderView(rootTView, rootView, null);
13925
- // update mode pass
13926
- refreshView(rootTView, rootView, null, null);
13927
- }
13928
- finally {
13929
- leaveView();
13930
- if (rendererFactory.end)
13931
- rendererFactory.end();
13758
+ function ɵɵattribute(name, value, sanitizer, namespace) {
13759
+ const lView = getLView();
13760
+ const bindingIndex = nextBindingIndex();
13761
+ if (bindingUpdated(lView, bindingIndex, value)) {
13762
+ const tView = getTView();
13763
+ const tNode = getSelectedTNode();
13764
+ elementAttributeInternal(tNode, lView, name, value, sanitizer, namespace);
13765
+ ngDevMode && storePropertyBindingMetadata(tView.data, tNode, 'attr.' + name, bindingIndex);
13932
13766
  }
13933
- return component;
13767
+ return ɵɵattribute;
13934
13768
  }
13769
+
13935
13770
  /**
13936
- * Creates the root component view and the root component node.
13937
- *
13938
- * @param rNode Render host element.
13939
- * @param def ComponentDef
13940
- * @param rootView The parent view where the host node is stored
13941
- * @param rendererFactory Factory to be used for creating child renderers.
13942
- * @param hostRenderer The current renderer
13943
- * @param sanitizer The sanitizer, if provided
13771
+ * @license
13772
+ * Copyright Google LLC All Rights Reserved.
13944
13773
  *
13945
- * @returns Component view created
13774
+ * Use of this source code is governed by an MIT-style license that can be
13775
+ * found in the LICENSE file at https://angular.io/license
13946
13776
  */
13947
- function createRootComponentView(rNode, def, rootView, rendererFactory, hostRenderer, sanitizer) {
13948
- const tView = rootView[TVIEW];
13949
- const index = HEADER_OFFSET;
13950
- ngDevMode && assertIndexInRange(rootView, index);
13951
- rootView[index] = rNode;
13952
- // '#host' is added here as we don't know the real host DOM name (we don't want to read it) and at
13953
- // the same time we want to communicate the debug `TNode` that this is a special `TNode`
13954
- // representing a host element.
13955
- const tNode = getOrCreateTNode(tView, index, 2 /* TNodeType.Element */, '#host', null);
13956
- const mergedAttrs = tNode.mergedAttrs = def.hostAttrs;
13957
- if (mergedAttrs !== null) {
13958
- computeStaticStyling(tNode, mergedAttrs, true);
13959
- if (rNode !== null) {
13960
- setUpAttributes(hostRenderer, rNode, mergedAttrs);
13961
- if (tNode.classes !== null) {
13962
- writeDirectClass(hostRenderer, rNode, tNode.classes);
13963
- }
13964
- if (tNode.styles !== null) {
13965
- writeDirectStyle(hostRenderer, rNode, tNode.styles);
13966
- }
13967
- }
13968
- }
13969
- const viewRenderer = rendererFactory.createRenderer(rNode, def);
13970
- const componentView = createLView(rootView, getOrCreateTComponentView(def), null, def.onPush ? 32 /* LViewFlags.Dirty */ : 16 /* LViewFlags.CheckAlways */, rootView[index], tNode, rendererFactory, viewRenderer, sanitizer || null, null, null);
13971
- if (tView.firstCreatePass) {
13972
- diPublicInInjector(getOrCreateNodeInjectorForNode(tNode, rootView), tView, def.type);
13973
- markAsComponentHost(tView, tNode);
13974
- initTNodeFlags(tNode, rootView.length, 1);
13975
- }
13976
- addToViewTree(rootView, componentView);
13977
- // Store component view at node index, with node as the HOST
13978
- return rootView[index] = componentView;
13979
- }
13980
13777
  /**
13981
- * Creates a root component and sets it up with features and host bindings. Shared by
13982
- * renderComponent() and ViewContainerRef.createComponent().
13778
+ * Create interpolation bindings with a variable number of expressions.
13779
+ *
13780
+ * If there are 1 to 8 expressions `interpolation1()` to `interpolation8()` should be used instead.
13781
+ * Those are faster because there is no need to create an array of expressions and iterate over it.
13782
+ *
13783
+ * `values`:
13784
+ * - has static text at even indexes,
13785
+ * - has evaluated expressions at odd indexes.
13786
+ *
13787
+ * Returns the concatenated string when any of the arguments changes, `NO_CHANGE` otherwise.
13983
13788
  */
13984
- function createRootComponent(componentView, componentDef, rootLView, rootContext, hostFeatures) {
13985
- const tView = rootLView[TVIEW];
13986
- // Create directive instance with factory() and store at next index in viewData
13987
- const component = instantiateRootComponent(tView, rootLView, componentDef);
13988
- rootContext.components.push(component);
13989
- componentView[CONTEXT] = component;
13990
- if (hostFeatures !== null) {
13991
- for (const feature of hostFeatures) {
13992
- feature(component, componentDef);
13993
- }
13789
+ function interpolationV(lView, values) {
13790
+ ngDevMode && assertLessThan(2, values.length, 'should have at least 3 values');
13791
+ ngDevMode && assertEqual(values.length % 2, 1, 'should have an odd number of values');
13792
+ let isBindingUpdated = false;
13793
+ let bindingIndex = getBindingIndex();
13794
+ for (let i = 1; i < values.length; i += 2) {
13795
+ // Check if bindings (odd indexes) have changed
13796
+ isBindingUpdated = bindingUpdated(lView, bindingIndex++, values[i]) || isBindingUpdated;
13994
13797
  }
13995
- // We want to generate an empty QueryList for root content queries for backwards
13996
- // compatibility with ViewEngine.
13997
- if (componentDef.contentQueries) {
13998
- const tNode = getCurrentTNode();
13999
- ngDevMode && assertDefined(tNode, 'TNode expected');
14000
- componentDef.contentQueries(1 /* RenderFlags.Create */, component, tNode.directiveStart);
13798
+ setBindingIndex(bindingIndex);
13799
+ if (!isBindingUpdated) {
13800
+ return NO_CHANGE;
14001
13801
  }
14002
- const rootTNode = getCurrentTNode();
14003
- ngDevMode && assertDefined(rootTNode, 'tNode should have been already created');
14004
- if (tView.firstCreatePass &&
14005
- (componentDef.hostBindings !== null || componentDef.hostAttrs !== null)) {
14006
- setSelectedIndex(rootTNode.index);
14007
- const rootTView = rootLView[TVIEW];
14008
- registerHostBindingOpCodes(rootTView, rootTNode, rootLView, rootTNode.directiveStart, rootTNode.directiveEnd, componentDef);
14009
- invokeHostBindingsInCreationMode(componentDef, component);
13802
+ // Build the updated content
13803
+ let content = values[0];
13804
+ for (let i = 1; i < values.length; i += 2) {
13805
+ content += renderStringify(values[i]) + values[i + 1];
14010
13806
  }
14011
- return component;
14012
- }
14013
- function createRootContext(scheduler, playerHandler) {
14014
- return {
14015
- components: [],
14016
- scheduler: scheduler || defaultScheduler,
14017
- clean: CLEAN_PROMISE,
14018
- playerHandler: playerHandler || null,
14019
- flags: 0 /* RootContextFlags.Empty */
14020
- };
13807
+ return content;
14021
13808
  }
14022
13809
  /**
14023
- * Used to enable lifecycle hooks on the root component.
14024
- *
14025
- * Include this feature when calling `renderComponent` if the root component
14026
- * you are rendering has lifecycle hooks defined. Otherwise, the hooks won't
14027
- * be called properly.
14028
- *
14029
- * Example:
13810
+ * Creates an interpolation binding with 1 expression.
14030
13811
  *
14031
- * ```
14032
- * renderComponent(AppComponent, {hostFeatures: [LifecycleHooksFeature]});
14033
- * ```
13812
+ * @param prefix static value used for concatenation only.
13813
+ * @param v0 value checked for change.
13814
+ * @param suffix static value used for concatenation only.
14034
13815
  */
14035
- function LifecycleHooksFeature() {
14036
- const tNode = getCurrentTNode();
14037
- ngDevMode && assertDefined(tNode, 'TNode is required');
14038
- registerPostOrderHooks(getLView()[TVIEW], tNode);
13816
+ function interpolation1(lView, prefix, v0, suffix) {
13817
+ const different = bindingUpdated(lView, nextBindingIndex(), v0);
13818
+ return different ? prefix + renderStringify(v0) + suffix : NO_CHANGE;
14039
13819
  }
14040
13820
  /**
14041
- * Wait on component until it is rendered.
14042
- *
14043
- * This function returns a `Promise` which is resolved when the component's
14044
- * change detection is executed. This is determined by finding the scheduler
14045
- * associated with the `component`'s render tree and waiting until the scheduler
14046
- * flushes. If nothing is scheduled, the function returns a resolved promise.
14047
- *
14048
- * Example:
14049
- * ```
14050
- * await whenRendered(myComponent);
14051
- * ```
14052
- *
14053
- * @param component Component to wait upon
14054
- * @returns Promise which resolves when the component is rendered.
13821
+ * Creates an interpolation binding with 2 expressions.
14055
13822
  */
14056
- function whenRendered(component) {
14057
- return getRootContext(component).clean;
13823
+ function interpolation2(lView, prefix, v0, i0, v1, suffix) {
13824
+ const bindingIndex = getBindingIndex();
13825
+ const different = bindingUpdated2(lView, bindingIndex, v0, v1);
13826
+ incrementBindingIndex(2);
13827
+ return different ? prefix + renderStringify(v0) + i0 + renderStringify(v1) + suffix : NO_CHANGE;
14058
13828
  }
14059
-
14060
13829
  /**
14061
- * @license
14062
- * Copyright Google LLC All Rights Reserved.
14063
- *
14064
- * Use of this source code is governed by an MIT-style license that can be
14065
- * found in the LICENSE file at https://angular.io/license
13830
+ * Creates an interpolation binding with 3 expressions.
14066
13831
  */
14067
- function getSuperType(type) {
14068
- return Object.getPrototypeOf(type.prototype).constructor;
13832
+ function interpolation3(lView, prefix, v0, i0, v1, i1, v2, suffix) {
13833
+ const bindingIndex = getBindingIndex();
13834
+ const different = bindingUpdated3(lView, bindingIndex, v0, v1, v2);
13835
+ incrementBindingIndex(3);
13836
+ return different ?
13837
+ prefix + renderStringify(v0) + i0 + renderStringify(v1) + i1 + renderStringify(v2) + suffix :
13838
+ NO_CHANGE;
14069
13839
  }
14070
13840
  /**
14071
- * Merges the definition from a super class to a sub class.
14072
- * @param definition The definition that is a SubClass of another directive of component
14073
- *
14074
- * @codeGenApi
13841
+ * Create an interpolation binding with 4 expressions.
14075
13842
  */
14076
- function ɵɵInheritDefinitionFeature(definition) {
14077
- let superType = getSuperType(definition.type);
14078
- let shouldInheritFields = true;
14079
- const inheritanceChain = [definition];
14080
- while (superType) {
14081
- let superDef = undefined;
14082
- if (isComponentDef(definition)) {
14083
- // Don't use getComponentDef/getDirectiveDef. This logic relies on inheritance.
14084
- superDef = superType.ɵcmp || superType.ɵdir;
14085
- }
14086
- else {
14087
- if (superType.ɵcmp) {
14088
- throw new RuntimeError(903 /* RuntimeErrorCode.INVALID_INHERITANCE */, ngDevMode &&
14089
- `Directives cannot inherit Components. Directive ${stringifyForError(definition.type)} is attempting to extend component ${stringifyForError(superType)}`);
14090
- }
14091
- // Don't use getComponentDef/getDirectiveDef. This logic relies on inheritance.
14092
- superDef = superType.ɵdir;
14093
- }
14094
- if (superDef) {
14095
- if (shouldInheritFields) {
14096
- inheritanceChain.push(superDef);
14097
- // Some fields in the definition may be empty, if there were no values to put in them that
14098
- // would've justified object creation. Unwrap them if necessary.
14099
- const writeableDef = definition;
14100
- writeableDef.inputs = maybeUnwrapEmpty(definition.inputs);
14101
- writeableDef.declaredInputs = maybeUnwrapEmpty(definition.declaredInputs);
14102
- writeableDef.outputs = maybeUnwrapEmpty(definition.outputs);
14103
- // Merge hostBindings
14104
- const superHostBindings = superDef.hostBindings;
14105
- superHostBindings && inheritHostBindings(definition, superHostBindings);
14106
- // Merge queries
14107
- const superViewQuery = superDef.viewQuery;
14108
- const superContentQueries = superDef.contentQueries;
14109
- superViewQuery && inheritViewQuery(definition, superViewQuery);
14110
- superContentQueries && inheritContentQueries(definition, superContentQueries);
14111
- // Merge inputs and outputs
14112
- fillProperties(definition.inputs, superDef.inputs);
14113
- fillProperties(definition.declaredInputs, superDef.declaredInputs);
14114
- fillProperties(definition.outputs, superDef.outputs);
14115
- // Merge animations metadata.
14116
- // If `superDef` is a Component, the `data` field is present (defaults to an empty object).
14117
- if (isComponentDef(superDef) && superDef.data.animation) {
14118
- // If super def is a Component, the `definition` is also a Component, since Directives can
14119
- // not inherit Components (we throw an error above and cannot reach this code).
14120
- const defData = definition.data;
14121
- defData.animation = (defData.animation || []).concat(superDef.data.animation);
14122
- }
14123
- }
14124
- // Run parent features
14125
- const features = superDef.features;
14126
- if (features) {
14127
- for (let i = 0; i < features.length; i++) {
14128
- const feature = features[i];
14129
- if (feature && feature.ngInherit) {
14130
- feature(definition);
14131
- }
14132
- // If `InheritDefinitionFeature` is a part of the current `superDef`, it means that this
14133
- // def already has all the necessary information inherited from its super class(es), so we
14134
- // can stop merging fields from super classes. However we need to iterate through the
14135
- // prototype chain to look for classes that might contain other "features" (like
14136
- // NgOnChanges), which we should invoke for the original `definition`. We set the
14137
- // `shouldInheritFields` flag to indicate that, essentially skipping fields inheritance
14138
- // logic and only invoking functions from the "features" list.
14139
- if (feature === ɵɵInheritDefinitionFeature) {
14140
- shouldInheritFields = false;
14141
- }
14142
- }
14143
- }
14144
- }
14145
- superType = Object.getPrototypeOf(superType);
14146
- }
14147
- mergeHostAttrsAcrossInheritance(inheritanceChain);
13843
+ function interpolation4(lView, prefix, v0, i0, v1, i1, v2, i2, v3, suffix) {
13844
+ const bindingIndex = getBindingIndex();
13845
+ const different = bindingUpdated4(lView, bindingIndex, v0, v1, v2, v3);
13846
+ incrementBindingIndex(4);
13847
+ return different ? prefix + renderStringify(v0) + i0 + renderStringify(v1) + i1 +
13848
+ renderStringify(v2) + i2 + renderStringify(v3) + suffix :
13849
+ NO_CHANGE;
14148
13850
  }
14149
13851
  /**
14150
- * Merge the `hostAttrs` and `hostVars` from the inherited parent to the base class.
14151
- *
14152
- * @param inheritanceChain A list of `WritableDefs` starting at the top most type and listing
14153
- * sub-types in order. For each type take the `hostAttrs` and `hostVars` and merge it with the child
14154
- * type.
13852
+ * Creates an interpolation binding with 5 expressions.
14155
13853
  */
14156
- function mergeHostAttrsAcrossInheritance(inheritanceChain) {
14157
- let hostVars = 0;
14158
- let hostAttrs = null;
14159
- // We process the inheritance order from the base to the leaves here.
14160
- for (let i = inheritanceChain.length - 1; i >= 0; i--) {
14161
- const def = inheritanceChain[i];
14162
- // For each `hostVars`, we need to add the superclass amount.
14163
- def.hostVars = (hostVars += def.hostVars);
14164
- // for each `hostAttrs` we need to merge it with superclass.
14165
- def.hostAttrs =
14166
- mergeHostAttrs(def.hostAttrs, hostAttrs = mergeHostAttrs(hostAttrs, def.hostAttrs));
14167
- }
14168
- }
14169
- function maybeUnwrapEmpty(value) {
14170
- if (value === EMPTY_OBJ) {
14171
- return {};
14172
- }
14173
- else if (value === EMPTY_ARRAY) {
14174
- return [];
14175
- }
14176
- else {
14177
- return value;
14178
- }
14179
- }
14180
- function inheritViewQuery(definition, superViewQuery) {
14181
- const prevViewQuery = definition.viewQuery;
14182
- if (prevViewQuery) {
14183
- definition.viewQuery = (rf, ctx) => {
14184
- superViewQuery(rf, ctx);
14185
- prevViewQuery(rf, ctx);
14186
- };
14187
- }
14188
- else {
14189
- definition.viewQuery = superViewQuery;
14190
- }
14191
- }
14192
- function inheritContentQueries(definition, superContentQueries) {
14193
- const prevContentQueries = definition.contentQueries;
14194
- if (prevContentQueries) {
14195
- definition.contentQueries = (rf, ctx, directiveIndex) => {
14196
- superContentQueries(rf, ctx, directiveIndex);
14197
- prevContentQueries(rf, ctx, directiveIndex);
14198
- };
14199
- }
14200
- else {
14201
- definition.contentQueries = superContentQueries;
14202
- }
14203
- }
14204
- function inheritHostBindings(definition, superHostBindings) {
14205
- const prevHostBindings = definition.hostBindings;
14206
- if (prevHostBindings) {
14207
- definition.hostBindings = (rf, ctx) => {
14208
- superHostBindings(rf, ctx);
14209
- prevHostBindings(rf, ctx);
14210
- };
14211
- }
14212
- else {
14213
- definition.hostBindings = superHostBindings;
14214
- }
13854
+ function interpolation5(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, suffix) {
13855
+ const bindingIndex = getBindingIndex();
13856
+ let different = bindingUpdated4(lView, bindingIndex, v0, v1, v2, v3);
13857
+ different = bindingUpdated(lView, bindingIndex + 4, v4) || different;
13858
+ incrementBindingIndex(5);
13859
+ return different ? prefix + renderStringify(v0) + i0 + renderStringify(v1) + i1 +
13860
+ renderStringify(v2) + i2 + renderStringify(v3) + i3 + renderStringify(v4) + suffix :
13861
+ NO_CHANGE;
14215
13862
  }
14216
-
14217
13863
  /**
14218
- * @license
14219
- * Copyright Google LLC All Rights Reserved.
14220
- *
14221
- * Use of this source code is governed by an MIT-style license that can be
14222
- * found in the LICENSE file at https://angular.io/license
13864
+ * Creates an interpolation binding with 6 expressions.
14223
13865
  */
13866
+ function interpolation6(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, suffix) {
13867
+ const bindingIndex = getBindingIndex();
13868
+ let different = bindingUpdated4(lView, bindingIndex, v0, v1, v2, v3);
13869
+ different = bindingUpdated2(lView, bindingIndex + 4, v4, v5) || different;
13870
+ incrementBindingIndex(6);
13871
+ return different ?
13872
+ prefix + renderStringify(v0) + i0 + renderStringify(v1) + i1 + renderStringify(v2) + i2 +
13873
+ renderStringify(v3) + i3 + renderStringify(v4) + i4 + renderStringify(v5) + suffix :
13874
+ NO_CHANGE;
13875
+ }
14224
13876
  /**
14225
- * Fields which exist on either directive or component definitions, and need to be copied from
14226
- * parent to child classes by the `ɵɵCopyDefinitionFeature`.
13877
+ * Creates an interpolation binding with 7 expressions.
14227
13878
  */
14228
- const COPY_DIRECTIVE_FIELDS = [
14229
- // The child class should use the providers of its parent.
14230
- 'providersResolver',
14231
- // Not listed here are any fields which are handled by the `ɵɵInheritDefinitionFeature`, such
14232
- // as inputs, outputs, and host binding functions.
14233
- ];
13879
+ function interpolation7(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, suffix) {
13880
+ const bindingIndex = getBindingIndex();
13881
+ let different = bindingUpdated4(lView, bindingIndex, v0, v1, v2, v3);
13882
+ different = bindingUpdated3(lView, bindingIndex + 4, v4, v5, v6) || different;
13883
+ incrementBindingIndex(7);
13884
+ return different ? prefix + renderStringify(v0) + i0 + renderStringify(v1) + i1 +
13885
+ renderStringify(v2) + i2 + renderStringify(v3) + i3 + renderStringify(v4) + i4 +
13886
+ renderStringify(v5) + i5 + renderStringify(v6) + suffix :
13887
+ NO_CHANGE;
13888
+ }
14234
13889
  /**
14235
- * Fields which exist only on component definitions, and need to be copied from parent to child
14236
- * classes by the `ɵɵCopyDefinitionFeature`.
14237
- *
14238
- * The type here allows any field of `ComponentDef` which is not also a property of `DirectiveDef`,
14239
- * since those should go in `COPY_DIRECTIVE_FIELDS` above.
13890
+ * Creates an interpolation binding with 8 expressions.
14240
13891
  */
14241
- const COPY_COMPONENT_FIELDS = [
14242
- // The child class should use the template function of its parent, including all template
14243
- // semantics.
14244
- 'template',
14245
- 'decls',
14246
- 'consts',
14247
- 'vars',
14248
- 'onPush',
14249
- 'ngContentSelectors',
14250
- // The child class should use the CSS styles of its parent, including all styling semantics.
14251
- 'styles',
14252
- 'encapsulation',
14253
- // The child class should be checked by the runtime in the same way as its parent.
14254
- 'schemas',
14255
- ];
13892
+ function interpolation8(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, i6, v7, suffix) {
13893
+ const bindingIndex = getBindingIndex();
13894
+ let different = bindingUpdated4(lView, bindingIndex, v0, v1, v2, v3);
13895
+ different = bindingUpdated4(lView, bindingIndex + 4, v4, v5, v6, v7) || different;
13896
+ incrementBindingIndex(8);
13897
+ return different ? prefix + renderStringify(v0) + i0 + renderStringify(v1) + i1 +
13898
+ renderStringify(v2) + i2 + renderStringify(v3) + i3 + renderStringify(v4) + i4 +
13899
+ renderStringify(v5) + i5 + renderStringify(v6) + i6 + renderStringify(v7) + suffix :
13900
+ NO_CHANGE;
13901
+ }
13902
+
14256
13903
  /**
14257
- * Copies the fields not handled by the `ɵɵInheritDefinitionFeature` from the supertype of a
14258
- * definition.
14259
13904
  *
14260
- * This exists primarily to support ngcc migration of an existing View Engine pattern, where an
14261
- * entire decorator is inherited from a parent to a child class. When ngcc detects this case, it
14262
- * generates a skeleton definition on the child class, and applies this feature.
13905
+ * Update an interpolated attribute on an element with single bound value surrounded by text.
14263
13906
  *
14264
- * The `ɵɵCopyDefinitionFeature` then copies any needed fields from the parent class' definition,
14265
- * including things like the component template function.
13907
+ * Used when the value passed to a property has 1 interpolated value in it:
14266
13908
  *
14267
- * @param definition The definition of a child class which inherits from a parent class with its
14268
- * own definition.
13909
+ * ```html
13910
+ * <div attr.title="prefix{{v0}}suffix"></div>
13911
+ * ```
14269
13912
  *
14270
- * @codeGenApi
14271
- */
14272
- function ɵɵCopyDefinitionFeature(definition) {
14273
- let superType = getSuperType(definition.type);
14274
- let superDef = undefined;
14275
- if (isComponentDef(definition)) {
14276
- // Don't use getComponentDef/getDirectiveDef. This logic relies on inheritance.
14277
- superDef = superType.ɵcmp;
14278
- }
14279
- else {
14280
- // Don't use getComponentDef/getDirectiveDef. This logic relies on inheritance.
14281
- superDef = superType.ɵdir;
14282
- }
14283
- // Needed because `definition` fields are readonly.
14284
- const defAny = definition;
14285
- // Copy over any fields that apply to either directives or components.
14286
- for (const field of COPY_DIRECTIVE_FIELDS) {
14287
- defAny[field] = superDef[field];
14288
- }
14289
- if (isComponentDef(superDef)) {
14290
- // Copy over any component-specific fields.
14291
- for (const field of COPY_COMPONENT_FIELDS) {
14292
- defAny[field] = superDef[field];
14293
- }
14294
- }
14295
- }
14296
-
14297
- /**
14298
- * @license
14299
- * Copyright Google LLC All Rights Reserved.
13913
+ * Its compiled representation is::
14300
13914
  *
14301
- * Use of this source code is governed by an MIT-style license that can be
14302
- * found in the LICENSE file at https://angular.io/license
13915
+ * ```ts
13916
+ * ɵɵattributeInterpolate1('title', 'prefix', v0, 'suffix');
13917
+ * ```
13918
+ *
13919
+ * @param attrName The name of the attribute to update
13920
+ * @param prefix Static value used for concatenation only.
13921
+ * @param v0 Value checked for change.
13922
+ * @param suffix Static value used for concatenation only.
13923
+ * @param sanitizer An optional sanitizer function
13924
+ * @returns itself, so that it may be chained.
13925
+ * @codeGenApi
14303
13926
  */
14304
- let _symbolIterator = null;
14305
- function getSymbolIterator() {
14306
- if (!_symbolIterator) {
14307
- const Symbol = _global['Symbol'];
14308
- if (Symbol && Symbol.iterator) {
14309
- _symbolIterator = Symbol.iterator;
14310
- }
14311
- else {
14312
- // es6-shim specific logic
14313
- const keys = Object.getOwnPropertyNames(Map.prototype);
14314
- for (let i = 0; i < keys.length; ++i) {
14315
- const key = keys[i];
14316
- if (key !== 'entries' && key !== 'size' &&
14317
- Map.prototype[key] === Map.prototype['entries']) {
14318
- _symbolIterator = key;
14319
- }
14320
- }
14321
- }
13927
+ function ɵɵattributeInterpolate1(attrName, prefix, v0, suffix, sanitizer, namespace) {
13928
+ const lView = getLView();
13929
+ const interpolatedValue = interpolation1(lView, prefix, v0, suffix);
13930
+ if (interpolatedValue !== NO_CHANGE) {
13931
+ const tNode = getSelectedTNode();
13932
+ elementAttributeInternal(tNode, lView, attrName, interpolatedValue, sanitizer, namespace);
13933
+ ngDevMode &&
13934
+ storePropertyBindingMetadata(getTView().data, tNode, 'attr.' + attrName, getBindingIndex() - 1, prefix, suffix);
14322
13935
  }
14323
- return _symbolIterator;
13936
+ return ɵɵattributeInterpolate1;
14324
13937
  }
14325
-
14326
13938
  /**
14327
- * @license
14328
- * Copyright Google LLC All Rights Reserved.
14329
13939
  *
14330
- * Use of this source code is governed by an MIT-style license that can be
14331
- * found in the LICENSE file at https://angular.io/license
13940
+ * Update an interpolated attribute on an element with 2 bound values surrounded by text.
13941
+ *
13942
+ * Used when the value passed to a property has 2 interpolated values in it:
13943
+ *
13944
+ * ```html
13945
+ * <div attr.title="prefix{{v0}}-{{v1}}suffix"></div>
13946
+ * ```
13947
+ *
13948
+ * Its compiled representation is::
13949
+ *
13950
+ * ```ts
13951
+ * ɵɵattributeInterpolate2('title', 'prefix', v0, '-', v1, 'suffix');
13952
+ * ```
13953
+ *
13954
+ * @param attrName The name of the attribute to update
13955
+ * @param prefix Static value used for concatenation only.
13956
+ * @param v0 Value checked for change.
13957
+ * @param i0 Static value used for concatenation only.
13958
+ * @param v1 Value checked for change.
13959
+ * @param suffix Static value used for concatenation only.
13960
+ * @param sanitizer An optional sanitizer function
13961
+ * @returns itself, so that it may be chained.
13962
+ * @codeGenApi
14332
13963
  */
14333
- function isIterable(obj) {
14334
- return obj !== null && typeof obj === 'object' && obj[getSymbolIterator()] !== undefined;
14335
- }
14336
- function isListLikeIterable(obj) {
14337
- if (!isJsObject(obj))
14338
- return false;
14339
- return Array.isArray(obj) ||
14340
- (!(obj instanceof Map) && // JS Map are iterables but return entries as [k, v]
14341
- getSymbolIterator() in obj); // JS Iterable have a Symbol.iterator prop
14342
- }
14343
- function areIterablesEqual(a, b, comparator) {
14344
- const iterator1 = a[getSymbolIterator()]();
14345
- const iterator2 = b[getSymbolIterator()]();
14346
- while (true) {
14347
- const item1 = iterator1.next();
14348
- const item2 = iterator2.next();
14349
- if (item1.done && item2.done)
14350
- return true;
14351
- if (item1.done || item2.done)
14352
- return false;
14353
- if (!comparator(item1.value, item2.value))
14354
- return false;
14355
- }
14356
- }
14357
- function iterateListLike(obj, fn) {
14358
- if (Array.isArray(obj)) {
14359
- for (let i = 0; i < obj.length; i++) {
14360
- fn(obj[i]);
14361
- }
14362
- }
14363
- else {
14364
- const iterator = obj[getSymbolIterator()]();
14365
- let item;
14366
- while (!((item = iterator.next()).done)) {
14367
- fn(item.value);
14368
- }
13964
+ function ɵɵattributeInterpolate2(attrName, prefix, v0, i0, v1, suffix, sanitizer, namespace) {
13965
+ const lView = getLView();
13966
+ const interpolatedValue = interpolation2(lView, prefix, v0, i0, v1, suffix);
13967
+ if (interpolatedValue !== NO_CHANGE) {
13968
+ const tNode = getSelectedTNode();
13969
+ elementAttributeInternal(tNode, lView, attrName, interpolatedValue, sanitizer, namespace);
13970
+ ngDevMode &&
13971
+ storePropertyBindingMetadata(getTView().data, tNode, 'attr.' + attrName, getBindingIndex() - 2, prefix, i0, suffix);
14369
13972
  }
13973
+ return ɵɵattributeInterpolate2;
14370
13974
  }
14371
- function isJsObject(o) {
14372
- return o !== null && (typeof o === 'function' || typeof o === 'object');
14373
- }
14374
-
14375
13975
  /**
14376
- * @license
14377
- * Copyright Google LLC All Rights Reserved.
14378
13976
  *
14379
- * Use of this source code is governed by an MIT-style license that can be
14380
- * found in the LICENSE file at https://angular.io/license
13977
+ * Update an interpolated attribute on an element with 3 bound values surrounded by text.
13978
+ *
13979
+ * Used when the value passed to a property has 3 interpolated values in it:
13980
+ *
13981
+ * ```html
13982
+ * <div attr.title="prefix{{v0}}-{{v1}}-{{v2}}suffix"></div>
13983
+ * ```
13984
+ *
13985
+ * Its compiled representation is::
13986
+ *
13987
+ * ```ts
13988
+ * ɵɵattributeInterpolate3(
13989
+ * 'title', 'prefix', v0, '-', v1, '-', v2, 'suffix');
13990
+ * ```
13991
+ *
13992
+ * @param attrName The name of the attribute to update
13993
+ * @param prefix Static value used for concatenation only.
13994
+ * @param v0 Value checked for change.
13995
+ * @param i0 Static value used for concatenation only.
13996
+ * @param v1 Value checked for change.
13997
+ * @param i1 Static value used for concatenation only.
13998
+ * @param v2 Value checked for change.
13999
+ * @param suffix Static value used for concatenation only.
14000
+ * @param sanitizer An optional sanitizer function
14001
+ * @returns itself, so that it may be chained.
14002
+ * @codeGenApi
14381
14003
  */
14382
- function devModeEqual(a, b) {
14383
- const isListLikeIterableA = isListLikeIterable(a);
14384
- const isListLikeIterableB = isListLikeIterable(b);
14385
- if (isListLikeIterableA && isListLikeIterableB) {
14386
- return areIterablesEqual(a, b, devModeEqual);
14387
- }
14388
- else {
14389
- const isAObject = a && (typeof a === 'object' || typeof a === 'function');
14390
- const isBObject = b && (typeof b === 'object' || typeof b === 'function');
14391
- if (!isListLikeIterableA && isAObject && !isListLikeIterableB && isBObject) {
14392
- return true;
14393
- }
14394
- else {
14395
- return Object.is(a, b);
14396
- }
14004
+ function ɵɵattributeInterpolate3(attrName, prefix, v0, i0, v1, i1, v2, suffix, sanitizer, namespace) {
14005
+ const lView = getLView();
14006
+ const interpolatedValue = interpolation3(lView, prefix, v0, i0, v1, i1, v2, suffix);
14007
+ if (interpolatedValue !== NO_CHANGE) {
14008
+ const tNode = getSelectedTNode();
14009
+ elementAttributeInternal(tNode, lView, attrName, interpolatedValue, sanitizer, namespace);
14010
+ ngDevMode &&
14011
+ storePropertyBindingMetadata(getTView().data, tNode, 'attr.' + attrName, getBindingIndex() - 3, prefix, i0, i1, suffix);
14397
14012
  }
14013
+ return ɵɵattributeInterpolate3;
14398
14014
  }
14399
-
14400
14015
  /**
14401
- * @license
14402
- * Copyright Google LLC All Rights Reserved.
14403
14016
  *
14404
- * Use of this source code is governed by an MIT-style license that can be
14405
- * found in the LICENSE file at https://angular.io/license
14017
+ * Update an interpolated attribute on an element with 4 bound values surrounded by text.
14018
+ *
14019
+ * Used when the value passed to a property has 4 interpolated values in it:
14020
+ *
14021
+ * ```html
14022
+ * <div attr.title="prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}suffix"></div>
14023
+ * ```
14024
+ *
14025
+ * Its compiled representation is::
14026
+ *
14027
+ * ```ts
14028
+ * ɵɵattributeInterpolate4(
14029
+ * 'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, 'suffix');
14030
+ * ```
14031
+ *
14032
+ * @param attrName The name of the attribute to update
14033
+ * @param prefix Static value used for concatenation only.
14034
+ * @param v0 Value checked for change.
14035
+ * @param i0 Static value used for concatenation only.
14036
+ * @param v1 Value checked for change.
14037
+ * @param i1 Static value used for concatenation only.
14038
+ * @param v2 Value checked for change.
14039
+ * @param i2 Static value used for concatenation only.
14040
+ * @param v3 Value checked for change.
14041
+ * @param suffix Static value used for concatenation only.
14042
+ * @param sanitizer An optional sanitizer function
14043
+ * @returns itself, so that it may be chained.
14044
+ * @codeGenApi
14406
14045
  */
14407
- // TODO(misko): consider inlining
14408
- /** Updates binding and returns the value. */
14409
- function updateBinding(lView, bindingIndex, value) {
14410
- return lView[bindingIndex] = value;
14411
- }
14412
- /** Gets the current binding value. */
14413
- function getBinding(lView, bindingIndex) {
14414
- ngDevMode && assertIndexInRange(lView, bindingIndex);
14415
- ngDevMode &&
14416
- assertNotSame(lView[bindingIndex], NO_CHANGE, 'Stored value should never be NO_CHANGE.');
14417
- return lView[bindingIndex];
14046
+ function ɵɵattributeInterpolate4(attrName, prefix, v0, i0, v1, i1, v2, i2, v3, suffix, sanitizer, namespace) {
14047
+ const lView = getLView();
14048
+ const interpolatedValue = interpolation4(lView, prefix, v0, i0, v1, i1, v2, i2, v3, suffix);
14049
+ if (interpolatedValue !== NO_CHANGE) {
14050
+ const tNode = getSelectedTNode();
14051
+ elementAttributeInternal(tNode, lView, attrName, interpolatedValue, sanitizer, namespace);
14052
+ ngDevMode &&
14053
+ storePropertyBindingMetadata(getTView().data, tNode, 'attr.' + attrName, getBindingIndex() - 4, prefix, i0, i1, i2, suffix);
14054
+ }
14055
+ return ɵɵattributeInterpolate4;
14418
14056
  }
14419
14057
  /**
14420
- * Updates binding if changed, then returns whether it was updated.
14421
14058
  *
14422
- * This function also checks the `CheckNoChangesMode` and throws if changes are made.
14423
- * Some changes (Objects/iterables) during `CheckNoChangesMode` are exempt to comply with VE
14424
- * behavior.
14425
- *
14426
- * @param lView current `LView`
14427
- * @param bindingIndex The binding in the `LView` to check
14428
- * @param value New value to check against `lView[bindingIndex]`
14429
- * @returns `true` if the bindings has changed. (Throws if binding has changed during
14430
- * `CheckNoChangesMode`)
14431
- */
14432
- function bindingUpdated(lView, bindingIndex, value) {
14433
- ngDevMode && assertNotSame(value, NO_CHANGE, 'Incoming value should never be NO_CHANGE.');
14434
- ngDevMode &&
14435
- assertLessThan(bindingIndex, lView.length, `Slot should have been initialized to NO_CHANGE`);
14436
- const oldValue = lView[bindingIndex];
14437
- if (Object.is(oldValue, value)) {
14438
- return false;
14439
- }
14440
- else {
14441
- if (ngDevMode && isInCheckNoChangesMode()) {
14442
- // View engine didn't report undefined values as changed on the first checkNoChanges pass
14443
- // (before the change detection was run).
14444
- const oldValueToCompare = oldValue !== NO_CHANGE ? oldValue : undefined;
14445
- if (!devModeEqual(oldValueToCompare, value)) {
14446
- const details = getExpressionChangedErrorDetails(lView, bindingIndex, oldValueToCompare, value);
14447
- throwErrorIfNoChangesMode(oldValue === NO_CHANGE, details.oldValue, details.newValue, details.propName);
14448
- }
14449
- // There was a change, but the `devModeEqual` decided that the change is exempt from an error.
14450
- // For this reason we exit as if no change. The early exit is needed to prevent the changed
14451
- // value to be written into `LView` (If we would write the new value that we would not see it
14452
- // as change on next CD.)
14453
- return false;
14454
- }
14455
- lView[bindingIndex] = value;
14456
- return true;
14457
- }
14458
- }
14459
- /** Updates 2 bindings if changed, then returns whether either was updated. */
14460
- function bindingUpdated2(lView, bindingIndex, exp1, exp2) {
14461
- const different = bindingUpdated(lView, bindingIndex, exp1);
14462
- return bindingUpdated(lView, bindingIndex + 1, exp2) || different;
14463
- }
14464
- /** Updates 3 bindings if changed, then returns whether any was updated. */
14465
- function bindingUpdated3(lView, bindingIndex, exp1, exp2, exp3) {
14466
- const different = bindingUpdated2(lView, bindingIndex, exp1, exp2);
14467
- return bindingUpdated(lView, bindingIndex + 2, exp3) || different;
14468
- }
14469
- /** Updates 4 bindings if changed, then returns whether any was updated. */
14470
- function bindingUpdated4(lView, bindingIndex, exp1, exp2, exp3, exp4) {
14471
- const different = bindingUpdated2(lView, bindingIndex, exp1, exp2);
14472
- return bindingUpdated2(lView, bindingIndex + 2, exp3, exp4) || different;
14473
- }
14474
-
14475
- /**
14476
- * @license
14477
- * Copyright Google LLC All Rights Reserved.
14478
- *
14479
- * Use of this source code is governed by an MIT-style license that can be
14480
- * found in the LICENSE file at https://angular.io/license
14481
- */
14482
- /**
14483
- * Updates the value of or removes a bound attribute on an Element.
14484
- *
14485
- * Used in the case of `[attr.title]="value"`
14486
- *
14487
- * @param name name The name of the attribute.
14488
- * @param value value The attribute is removed when value is `null` or `undefined`.
14489
- * Otherwise the attribute value is set to the stringified value.
14490
- * @param sanitizer An optional function used to sanitize the value.
14491
- * @param namespace Optional namespace to use when setting the attribute.
14492
- *
14493
- * @codeGenApi
14494
- */
14495
- function ɵɵattribute(name, value, sanitizer, namespace) {
14496
- const lView = getLView();
14497
- const bindingIndex = nextBindingIndex();
14498
- if (bindingUpdated(lView, bindingIndex, value)) {
14499
- const tView = getTView();
14500
- const tNode = getSelectedTNode();
14501
- elementAttributeInternal(tNode, lView, name, value, sanitizer, namespace);
14502
- ngDevMode && storePropertyBindingMetadata(tView.data, tNode, 'attr.' + name, bindingIndex);
14503
- }
14504
- return ɵɵattribute;
14505
- }
14506
-
14507
- /**
14508
- * @license
14509
- * Copyright Google LLC All Rights Reserved.
14510
- *
14511
- * Use of this source code is governed by an MIT-style license that can be
14512
- * found in the LICENSE file at https://angular.io/license
14513
- */
14514
- /**
14515
- * Create interpolation bindings with a variable number of expressions.
14516
- *
14517
- * If there are 1 to 8 expressions `interpolation1()` to `interpolation8()` should be used instead.
14518
- * Those are faster because there is no need to create an array of expressions and iterate over it.
14519
- *
14520
- * `values`:
14521
- * - has static text at even indexes,
14522
- * - has evaluated expressions at odd indexes.
14523
- *
14524
- * Returns the concatenated string when any of the arguments changes, `NO_CHANGE` otherwise.
14525
- */
14526
- function interpolationV(lView, values) {
14527
- ngDevMode && assertLessThan(2, values.length, 'should have at least 3 values');
14528
- ngDevMode && assertEqual(values.length % 2, 1, 'should have an odd number of values');
14529
- let isBindingUpdated = false;
14530
- let bindingIndex = getBindingIndex();
14531
- for (let i = 1; i < values.length; i += 2) {
14532
- // Check if bindings (odd indexes) have changed
14533
- isBindingUpdated = bindingUpdated(lView, bindingIndex++, values[i]) || isBindingUpdated;
14534
- }
14535
- setBindingIndex(bindingIndex);
14536
- if (!isBindingUpdated) {
14537
- return NO_CHANGE;
14538
- }
14539
- // Build the updated content
14540
- let content = values[0];
14541
- for (let i = 1; i < values.length; i += 2) {
14542
- content += renderStringify(values[i]) + values[i + 1];
14543
- }
14544
- return content;
14545
- }
14546
- /**
14547
- * Creates an interpolation binding with 1 expression.
14548
- *
14549
- * @param prefix static value used for concatenation only.
14550
- * @param v0 value checked for change.
14551
- * @param suffix static value used for concatenation only.
14552
- */
14553
- function interpolation1(lView, prefix, v0, suffix) {
14554
- const different = bindingUpdated(lView, nextBindingIndex(), v0);
14555
- return different ? prefix + renderStringify(v0) + suffix : NO_CHANGE;
14556
- }
14557
- /**
14558
- * Creates an interpolation binding with 2 expressions.
14559
- */
14560
- function interpolation2(lView, prefix, v0, i0, v1, suffix) {
14561
- const bindingIndex = getBindingIndex();
14562
- const different = bindingUpdated2(lView, bindingIndex, v0, v1);
14563
- incrementBindingIndex(2);
14564
- return different ? prefix + renderStringify(v0) + i0 + renderStringify(v1) + suffix : NO_CHANGE;
14565
- }
14566
- /**
14567
- * Creates an interpolation binding with 3 expressions.
14568
- */
14569
- function interpolation3(lView, prefix, v0, i0, v1, i1, v2, suffix) {
14570
- const bindingIndex = getBindingIndex();
14571
- const different = bindingUpdated3(lView, bindingIndex, v0, v1, v2);
14572
- incrementBindingIndex(3);
14573
- return different ?
14574
- prefix + renderStringify(v0) + i0 + renderStringify(v1) + i1 + renderStringify(v2) + suffix :
14575
- NO_CHANGE;
14576
- }
14577
- /**
14578
- * Create an interpolation binding with 4 expressions.
14579
- */
14580
- function interpolation4(lView, prefix, v0, i0, v1, i1, v2, i2, v3, suffix) {
14581
- const bindingIndex = getBindingIndex();
14582
- const different = bindingUpdated4(lView, bindingIndex, v0, v1, v2, v3);
14583
- incrementBindingIndex(4);
14584
- return different ? prefix + renderStringify(v0) + i0 + renderStringify(v1) + i1 +
14585
- renderStringify(v2) + i2 + renderStringify(v3) + suffix :
14586
- NO_CHANGE;
14587
- }
14588
- /**
14589
- * Creates an interpolation binding with 5 expressions.
14590
- */
14591
- function interpolation5(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, suffix) {
14592
- const bindingIndex = getBindingIndex();
14593
- let different = bindingUpdated4(lView, bindingIndex, v0, v1, v2, v3);
14594
- different = bindingUpdated(lView, bindingIndex + 4, v4) || different;
14595
- incrementBindingIndex(5);
14596
- return different ? prefix + renderStringify(v0) + i0 + renderStringify(v1) + i1 +
14597
- renderStringify(v2) + i2 + renderStringify(v3) + i3 + renderStringify(v4) + suffix :
14598
- NO_CHANGE;
14599
- }
14600
- /**
14601
- * Creates an interpolation binding with 6 expressions.
14602
- */
14603
- function interpolation6(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, suffix) {
14604
- const bindingIndex = getBindingIndex();
14605
- let different = bindingUpdated4(lView, bindingIndex, v0, v1, v2, v3);
14606
- different = bindingUpdated2(lView, bindingIndex + 4, v4, v5) || different;
14607
- incrementBindingIndex(6);
14608
- return different ?
14609
- prefix + renderStringify(v0) + i0 + renderStringify(v1) + i1 + renderStringify(v2) + i2 +
14610
- renderStringify(v3) + i3 + renderStringify(v4) + i4 + renderStringify(v5) + suffix :
14611
- NO_CHANGE;
14612
- }
14613
- /**
14614
- * Creates an interpolation binding with 7 expressions.
14615
- */
14616
- function interpolation7(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, suffix) {
14617
- const bindingIndex = getBindingIndex();
14618
- let different = bindingUpdated4(lView, bindingIndex, v0, v1, v2, v3);
14619
- different = bindingUpdated3(lView, bindingIndex + 4, v4, v5, v6) || different;
14620
- incrementBindingIndex(7);
14621
- return different ? prefix + renderStringify(v0) + i0 + renderStringify(v1) + i1 +
14622
- renderStringify(v2) + i2 + renderStringify(v3) + i3 + renderStringify(v4) + i4 +
14623
- renderStringify(v5) + i5 + renderStringify(v6) + suffix :
14624
- NO_CHANGE;
14625
- }
14626
- /**
14627
- * Creates an interpolation binding with 8 expressions.
14628
- */
14629
- function interpolation8(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, i6, v7, suffix) {
14630
- const bindingIndex = getBindingIndex();
14631
- let different = bindingUpdated4(lView, bindingIndex, v0, v1, v2, v3);
14632
- different = bindingUpdated4(lView, bindingIndex + 4, v4, v5, v6, v7) || different;
14633
- incrementBindingIndex(8);
14634
- return different ? prefix + renderStringify(v0) + i0 + renderStringify(v1) + i1 +
14635
- renderStringify(v2) + i2 + renderStringify(v3) + i3 + renderStringify(v4) + i4 +
14636
- renderStringify(v5) + i5 + renderStringify(v6) + i6 + renderStringify(v7) + suffix :
14637
- NO_CHANGE;
14638
- }
14639
-
14640
- /**
14641
- *
14642
- * Update an interpolated attribute on an element with single bound value surrounded by text.
14059
+ * Update an interpolated attribute on an element with 5 bound values surrounded by text.
14643
14060
  *
14644
- * Used when the value passed to a property has 1 interpolated value in it:
14061
+ * Used when the value passed to a property has 5 interpolated values in it:
14645
14062
  *
14646
14063
  * ```html
14647
- * <div attr.title="prefix{{v0}}suffix"></div>
14064
+ * <div attr.title="prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}suffix"></div>
14648
14065
  * ```
14649
14066
  *
14650
14067
  * Its compiled representation is::
14651
14068
  *
14652
14069
  * ```ts
14653
- * ɵɵattributeInterpolate1('title', 'prefix', v0, 'suffix');
14070
+ * ɵɵattributeInterpolate5(
14071
+ * 'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, 'suffix');
14654
14072
  * ```
14655
14073
  *
14656
14074
  * @param attrName The name of the attribute to update
14657
14075
  * @param prefix Static value used for concatenation only.
14658
14076
  * @param v0 Value checked for change.
14077
+ * @param i0 Static value used for concatenation only.
14078
+ * @param v1 Value checked for change.
14079
+ * @param i1 Static value used for concatenation only.
14080
+ * @param v2 Value checked for change.
14081
+ * @param i2 Static value used for concatenation only.
14082
+ * @param v3 Value checked for change.
14083
+ * @param i3 Static value used for concatenation only.
14084
+ * @param v4 Value checked for change.
14659
14085
  * @param suffix Static value used for concatenation only.
14660
14086
  * @param sanitizer An optional sanitizer function
14661
14087
  * @returns itself, so that it may be chained.
14662
14088
  * @codeGenApi
14663
14089
  */
14664
- function ɵɵattributeInterpolate1(attrName, prefix, v0, suffix, sanitizer, namespace) {
14090
+ function ɵɵattributeInterpolate5(attrName, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, suffix, sanitizer, namespace) {
14665
14091
  const lView = getLView();
14666
- const interpolatedValue = interpolation1(lView, prefix, v0, suffix);
14092
+ const interpolatedValue = interpolation5(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, suffix);
14667
14093
  if (interpolatedValue !== NO_CHANGE) {
14668
14094
  const tNode = getSelectedTNode();
14669
14095
  elementAttributeInternal(tNode, lView, attrName, interpolatedValue, sanitizer, namespace);
14670
14096
  ngDevMode &&
14671
- storePropertyBindingMetadata(getTView().data, tNode, 'attr.' + attrName, getBindingIndex() - 1, prefix, suffix);
14097
+ storePropertyBindingMetadata(getTView().data, tNode, 'attr.' + attrName, getBindingIndex() - 5, prefix, i0, i1, i2, i3, suffix);
14672
14098
  }
14673
- return ɵɵattributeInterpolate1;
14099
+ return ɵɵattributeInterpolate5;
14674
14100
  }
14675
14101
  /**
14676
14102
  *
14677
- * Update an interpolated attribute on an element with 2 bound values surrounded by text.
14103
+ * Update an interpolated attribute on an element with 6 bound values surrounded by text.
14678
14104
  *
14679
- * Used when the value passed to a property has 2 interpolated values in it:
14105
+ * Used when the value passed to a property has 6 interpolated values in it:
14680
14106
  *
14681
14107
  * ```html
14682
- * <div attr.title="prefix{{v0}}-{{v1}}suffix"></div>
14108
+ * <div attr.title="prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}suffix"></div>
14683
14109
  * ```
14684
14110
  *
14685
14111
  * Its compiled representation is::
14686
14112
  *
14687
14113
  * ```ts
14688
- * ɵɵattributeInterpolate2('title', 'prefix', v0, '-', v1, 'suffix');
14689
- * ```
14690
- *
14691
- * @param attrName The name of the attribute to update
14692
- * @param prefix Static value used for concatenation only.
14693
- * @param v0 Value checked for change.
14694
- * @param i0 Static value used for concatenation only.
14695
- * @param v1 Value checked for change.
14696
- * @param suffix Static value used for concatenation only.
14697
- * @param sanitizer An optional sanitizer function
14698
- * @returns itself, so that it may be chained.
14699
- * @codeGenApi
14700
- */
14701
- function ɵɵattributeInterpolate2(attrName, prefix, v0, i0, v1, suffix, sanitizer, namespace) {
14702
- const lView = getLView();
14703
- const interpolatedValue = interpolation2(lView, prefix, v0, i0, v1, suffix);
14704
- if (interpolatedValue !== NO_CHANGE) {
14705
- const tNode = getSelectedTNode();
14706
- elementAttributeInternal(tNode, lView, attrName, interpolatedValue, sanitizer, namespace);
14707
- ngDevMode &&
14708
- storePropertyBindingMetadata(getTView().data, tNode, 'attr.' + attrName, getBindingIndex() - 2, prefix, i0, suffix);
14709
- }
14710
- return ɵɵattributeInterpolate2;
14711
- }
14712
- /**
14713
- *
14714
- * Update an interpolated attribute on an element with 3 bound values surrounded by text.
14715
- *
14716
- * Used when the value passed to a property has 3 interpolated values in it:
14717
- *
14718
- * ```html
14719
- * <div attr.title="prefix{{v0}}-{{v1}}-{{v2}}suffix"></div>
14720
- * ```
14721
- *
14722
- * Its compiled representation is::
14723
- *
14724
- * ```ts
14725
- * ɵɵattributeInterpolate3(
14726
- * 'title', 'prefix', v0, '-', v1, '-', v2, 'suffix');
14727
- * ```
14728
- *
14729
- * @param attrName The name of the attribute to update
14730
- * @param prefix Static value used for concatenation only.
14731
- * @param v0 Value checked for change.
14732
- * @param i0 Static value used for concatenation only.
14733
- * @param v1 Value checked for change.
14734
- * @param i1 Static value used for concatenation only.
14735
- * @param v2 Value checked for change.
14736
- * @param suffix Static value used for concatenation only.
14737
- * @param sanitizer An optional sanitizer function
14738
- * @returns itself, so that it may be chained.
14739
- * @codeGenApi
14740
- */
14741
- function ɵɵattributeInterpolate3(attrName, prefix, v0, i0, v1, i1, v2, suffix, sanitizer, namespace) {
14742
- const lView = getLView();
14743
- const interpolatedValue = interpolation3(lView, prefix, v0, i0, v1, i1, v2, suffix);
14744
- if (interpolatedValue !== NO_CHANGE) {
14745
- const tNode = getSelectedTNode();
14746
- elementAttributeInternal(tNode, lView, attrName, interpolatedValue, sanitizer, namespace);
14747
- ngDevMode &&
14748
- storePropertyBindingMetadata(getTView().data, tNode, 'attr.' + attrName, getBindingIndex() - 3, prefix, i0, i1, suffix);
14749
- }
14750
- return ɵɵattributeInterpolate3;
14751
- }
14752
- /**
14753
- *
14754
- * Update an interpolated attribute on an element with 4 bound values surrounded by text.
14755
- *
14756
- * Used when the value passed to a property has 4 interpolated values in it:
14757
- *
14758
- * ```html
14759
- * <div attr.title="prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}suffix"></div>
14760
- * ```
14761
- *
14762
- * Its compiled representation is::
14763
- *
14764
- * ```ts
14765
- * ɵɵattributeInterpolate4(
14766
- * 'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, 'suffix');
14767
- * ```
14768
- *
14769
- * @param attrName The name of the attribute to update
14770
- * @param prefix Static value used for concatenation only.
14771
- * @param v0 Value checked for change.
14772
- * @param i0 Static value used for concatenation only.
14773
- * @param v1 Value checked for change.
14774
- * @param i1 Static value used for concatenation only.
14775
- * @param v2 Value checked for change.
14776
- * @param i2 Static value used for concatenation only.
14777
- * @param v3 Value checked for change.
14778
- * @param suffix Static value used for concatenation only.
14779
- * @param sanitizer An optional sanitizer function
14780
- * @returns itself, so that it may be chained.
14781
- * @codeGenApi
14782
- */
14783
- function ɵɵattributeInterpolate4(attrName, prefix, v0, i0, v1, i1, v2, i2, v3, suffix, sanitizer, namespace) {
14784
- const lView = getLView();
14785
- const interpolatedValue = interpolation4(lView, prefix, v0, i0, v1, i1, v2, i2, v3, suffix);
14786
- if (interpolatedValue !== NO_CHANGE) {
14787
- const tNode = getSelectedTNode();
14788
- elementAttributeInternal(tNode, lView, attrName, interpolatedValue, sanitizer, namespace);
14789
- ngDevMode &&
14790
- storePropertyBindingMetadata(getTView().data, tNode, 'attr.' + attrName, getBindingIndex() - 4, prefix, i0, i1, i2, suffix);
14791
- }
14792
- return ɵɵattributeInterpolate4;
14793
- }
14794
- /**
14795
- *
14796
- * Update an interpolated attribute on an element with 5 bound values surrounded by text.
14797
- *
14798
- * Used when the value passed to a property has 5 interpolated values in it:
14799
- *
14800
- * ```html
14801
- * <div attr.title="prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}suffix"></div>
14802
- * ```
14803
- *
14804
- * Its compiled representation is::
14805
- *
14806
- * ```ts
14807
- * ɵɵattributeInterpolate5(
14808
- * 'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, 'suffix');
14809
- * ```
14810
- *
14811
- * @param attrName The name of the attribute to update
14812
- * @param prefix Static value used for concatenation only.
14813
- * @param v0 Value checked for change.
14814
- * @param i0 Static value used for concatenation only.
14815
- * @param v1 Value checked for change.
14816
- * @param i1 Static value used for concatenation only.
14817
- * @param v2 Value checked for change.
14818
- * @param i2 Static value used for concatenation only.
14819
- * @param v3 Value checked for change.
14820
- * @param i3 Static value used for concatenation only.
14821
- * @param v4 Value checked for change.
14822
- * @param suffix Static value used for concatenation only.
14823
- * @param sanitizer An optional sanitizer function
14824
- * @returns itself, so that it may be chained.
14825
- * @codeGenApi
14826
- */
14827
- function ɵɵattributeInterpolate5(attrName, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, suffix, sanitizer, namespace) {
14828
- const lView = getLView();
14829
- const interpolatedValue = interpolation5(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, suffix);
14830
- if (interpolatedValue !== NO_CHANGE) {
14831
- const tNode = getSelectedTNode();
14832
- elementAttributeInternal(tNode, lView, attrName, interpolatedValue, sanitizer, namespace);
14833
- ngDevMode &&
14834
- storePropertyBindingMetadata(getTView().data, tNode, 'attr.' + attrName, getBindingIndex() - 5, prefix, i0, i1, i2, i3, suffix);
14835
- }
14836
- return ɵɵattributeInterpolate5;
14837
- }
14838
- /**
14839
- *
14840
- * Update an interpolated attribute on an element with 6 bound values surrounded by text.
14841
- *
14842
- * Used when the value passed to a property has 6 interpolated values in it:
14843
- *
14844
- * ```html
14845
- * <div attr.title="prefix{{v0}}-{{v1}}-{{v2}}-{{v3}}-{{v4}}-{{v5}}suffix"></div>
14846
- * ```
14847
- *
14848
- * Its compiled representation is::
14849
- *
14850
- * ```ts
14851
- * ɵɵattributeInterpolate6(
14852
- * 'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, 'suffix');
14114
+ * ɵɵattributeInterpolate6(
14115
+ * 'title', 'prefix', v0, '-', v1, '-', v2, '-', v3, '-', v4, '-', v5, 'suffix');
14853
14116
  * ```
14854
14117
  *
14855
14118
  * @param attrName The name of the attribute to update
@@ -15022,6 +14285,57 @@ function ɵɵattributeInterpolateV(attrName, values, sanitizer, namespace) {
15022
14285
  return ɵɵattributeInterpolateV;
15023
14286
  }
15024
14287
 
14288
+ /**
14289
+ * @license
14290
+ * Copyright Google LLC All Rights Reserved.
14291
+ *
14292
+ * Use of this source code is governed by an MIT-style license that can be
14293
+ * found in the LICENSE file at https://angular.io/license
14294
+ */
14295
+ /**
14296
+ * Synchronously perform change detection on a component (and possibly its sub-components).
14297
+ *
14298
+ * This function triggers change detection in a synchronous way on a component.
14299
+ *
14300
+ * @param component The component which the change detection should be performed on.
14301
+ */
14302
+ function detectChanges(component) {
14303
+ const view = getComponentViewByInstance(component);
14304
+ detectChangesInternal(view[TVIEW], view, component);
14305
+ }
14306
+ /**
14307
+ * Marks the component as dirty (needing change detection). Marking a component dirty will
14308
+ * schedule a change detection on it at some point in the future.
14309
+ *
14310
+ * Marking an already dirty component as dirty won't do anything. Only one outstanding change
14311
+ * detection can be scheduled per component tree.
14312
+ *
14313
+ * @param component Component to mark as dirty.
14314
+ */
14315
+ function markDirty(component) {
14316
+ ngDevMode && assertDefined(component, 'component');
14317
+ const rootView = markViewDirty(getComponentViewByInstance(component));
14318
+ ngDevMode && assertDefined(rootView[CONTEXT], 'rootContext should be defined');
14319
+ scheduleTick(rootView[CONTEXT], 1 /* RootContextFlags.DetectChanges */);
14320
+ }
14321
+ /**
14322
+ * Used to perform change detection on the whole application.
14323
+ *
14324
+ * This is equivalent to `detectChanges`, but invoked on root component. Additionally, `tick`
14325
+ * executes lifecycle hooks and conditionally checks components based on their
14326
+ * `ChangeDetectionStrategy` and dirtiness.
14327
+ *
14328
+ * The preferred way to trigger change detection is to call `markDirty`. `markDirty` internally
14329
+ * schedules `tick` using a scheduler in order to coalesce multiple `markDirty` calls into a
14330
+ * single change detection run. By default, the scheduler is `requestAnimationFrame`, but can
14331
+ * be changed when calling `renderComponent` and providing the `scheduler` option.
14332
+ */
14333
+ function tick(component) {
14334
+ const rootView = getRootView(component);
14335
+ const rootContext = rootView[CONTEXT];
14336
+ tickRootContext(rootContext);
14337
+ }
14338
+
15025
14339
  /**
15026
14340
  * @license
15027
14341
  * Copyright Google LLC All Rights Reserved.
@@ -15566,51 +14880,42 @@ function listenerInternal(tView, lView, renderer, tNode, eventName, listenerFn,
15566
14880
  tNode.index;
15567
14881
  // In order to match current behavior, native DOM event listeners must be added for all
15568
14882
  // events (including outputs).
15569
- if (isProceduralRenderer(renderer)) {
15570
- // There might be cases where multiple directives on the same element try to register an event
15571
- // handler function for the same event. In this situation we want to avoid registration of
15572
- // several native listeners as each registration would be intercepted by NgZone and
15573
- // trigger change detection. This would mean that a single user action would result in several
15574
- // change detections being invoked. To avoid this situation we want to have only one call to
15575
- // native handler registration (for the same element and same type of event).
15576
- //
15577
- // In order to have just one native event handler in presence of multiple handler functions,
15578
- // we just register a first handler function as a native event listener and then chain
15579
- // (coalesce) other handler functions on top of the first native handler function.
15580
- let existingListener = null;
15581
- // Please note that the coalescing described here doesn't happen for events specifying an
15582
- // alternative target (ex. (document:click)) - this is to keep backward compatibility with the
15583
- // view engine.
15584
- // Also, we don't have to search for existing listeners is there are no directives
15585
- // matching on a given node as we can't register multiple event handlers for the same event in
15586
- // a template (this would mean having duplicate attributes).
15587
- if (!eventTargetResolver && isTNodeDirectiveHost) {
15588
- existingListener = findExistingListener(tView, lView, eventName, tNode.index);
15589
- }
15590
- if (existingListener !== null) {
15591
- // Attach a new listener to coalesced listeners list, maintaining the order in which
15592
- // listeners are registered. For performance reasons, we keep a reference to the last
15593
- // listener in that list (in `__ngLastListenerFn__` field), so we can avoid going through
15594
- // the entire set each time we need to add a new listener.
15595
- const lastListenerFn = existingListener.__ngLastListenerFn__ || existingListener;
15596
- lastListenerFn.__ngNextListenerFn__ = listenerFn;
15597
- existingListener.__ngLastListenerFn__ = listenerFn;
15598
- processOutputs = false;
15599
- }
15600
- else {
15601
- listenerFn = wrapListener(tNode, lView, context, listenerFn, false /** preventDefault */);
15602
- const cleanupFn = renderer.listen(target, eventName, listenerFn);
15603
- ngDevMode && ngDevMode.rendererAddEventListener++;
15604
- lCleanup.push(listenerFn, cleanupFn);
15605
- tCleanup && tCleanup.push(eventName, idxOrTargetGetter, lCleanupIndex, lCleanupIndex + 1);
15606
- }
14883
+ // There might be cases where multiple directives on the same element try to register an event
14884
+ // handler function for the same event. In this situation we want to avoid registration of
14885
+ // several native listeners as each registration would be intercepted by NgZone and
14886
+ // trigger change detection. This would mean that a single user action would result in several
14887
+ // change detections being invoked. To avoid this situation we want to have only one call to
14888
+ // native handler registration (for the same element and same type of event).
14889
+ //
14890
+ // In order to have just one native event handler in presence of multiple handler functions,
14891
+ // we just register a first handler function as a native event listener and then chain
14892
+ // (coalesce) other handler functions on top of the first native handler function.
14893
+ let existingListener = null;
14894
+ // Please note that the coalescing described here doesn't happen for events specifying an
14895
+ // alternative target (ex. (document:click)) - this is to keep backward compatibility with the
14896
+ // view engine.
14897
+ // Also, we don't have to search for existing listeners is there are no directives
14898
+ // matching on a given node as we can't register multiple event handlers for the same event in
14899
+ // a template (this would mean having duplicate attributes).
14900
+ if (!eventTargetResolver && isTNodeDirectiveHost) {
14901
+ existingListener = findExistingListener(tView, lView, eventName, tNode.index);
14902
+ }
14903
+ if (existingListener !== null) {
14904
+ // Attach a new listener to coalesced listeners list, maintaining the order in which
14905
+ // listeners are registered. For performance reasons, we keep a reference to the last
14906
+ // listener in that list (in `__ngLastListenerFn__` field), so we can avoid going through
14907
+ // the entire set each time we need to add a new listener.
14908
+ const lastListenerFn = existingListener.__ngLastListenerFn__ || existingListener;
14909
+ lastListenerFn.__ngNextListenerFn__ = listenerFn;
14910
+ existingListener.__ngLastListenerFn__ = listenerFn;
14911
+ processOutputs = false;
15607
14912
  }
15608
14913
  else {
15609
- listenerFn = wrapListener(tNode, lView, context, listenerFn, true /** preventDefault */);
15610
- target.addEventListener(eventName, listenerFn, useCapture);
14914
+ listenerFn = wrapListener(tNode, lView, context, listenerFn, false /** preventDefault */);
14915
+ const cleanupFn = renderer.listen(target, eventName, listenerFn);
15611
14916
  ngDevMode && ngDevMode.rendererAddEventListener++;
15612
- lCleanup.push(listenerFn);
15613
- tCleanup && tCleanup.push(eventName, idxOrTargetGetter, lCleanupIndex, useCapture);
14917
+ lCleanup.push(listenerFn, cleanupFn);
14918
+ tCleanup && tCleanup.push(eventName, idxOrTargetGetter, lCleanupIndex, lCleanupIndex + 1);
15614
14919
  }
15615
14920
  }
15616
14921
  else {
@@ -17684,7 +16989,7 @@ function findStylingValue(tData, tNode, lView, prop, index, isClassBased) {
17684
16989
  valueAtLViewIndex = isStylingMap ? EMPTY_ARRAY : undefined;
17685
16990
  }
17686
16991
  let currentValue = isStylingMap ? keyValueArrayGet(valueAtLViewIndex, prop) :
17687
- key === prop ? valueAtLViewIndex : undefined;
16992
+ (key === prop ? valueAtLViewIndex : undefined);
17688
16993
  if (containsStatics && !isStylingValuePresent(currentValue)) {
17689
16994
  currentValue = keyValueArrayGet(rawKey, prop);
17690
16995
  }
@@ -21537,7 +20842,7 @@ function noComponentFactoryError(component) {
21537
20842
  return error;
21538
20843
  }
21539
20844
  const ERROR_COMPONENT = 'ngComponent';
21540
- function getComponent(error) {
20845
+ function getComponent$1(error) {
21541
20846
  return error[ERROR_COMPONENT];
21542
20847
  }
21543
20848
  class _NullComponentFactoryResolver {
@@ -21721,14 +21026,6 @@ class Renderer2 {
21721
21026
  * @nocollapse
21722
21027
  */
21723
21028
  Renderer2.__NG_ELEMENT_ID__ = () => injectRenderer2();
21724
- /** Returns a Renderer2 (or throws when application was bootstrapped with Renderer3) */
21725
- function getOrCreateRenderer2(lView) {
21726
- const renderer = lView[RENDERER];
21727
- if (ngDevMode && !isProceduralRenderer(renderer)) {
21728
- throw new Error('Cannot inject Renderer2 when the application uses Renderer3!');
21729
- }
21730
- return renderer;
21731
- }
21732
21029
  /** Injects a Renderer2 for the current component. */
21733
21030
  function injectRenderer2() {
21734
21031
  // We need the Renderer to be based on the component that it's being injected into, however since
@@ -21736,7 +21033,7 @@ function injectRenderer2() {
21736
21033
  const lView = getLView();
21737
21034
  const tNode = getCurrentTNode();
21738
21035
  const nodeAtIndex = getComponentLViewByIndex(tNode.index, lView);
21739
- return getOrCreateRenderer2(isLView(nodeAtIndex) ? nodeAtIndex : lView);
21036
+ return (isLView(nodeAtIndex) ? nodeAtIndex : lView)[RENDERER];
21740
21037
  }
21741
21038
 
21742
21039
  /**
@@ -21783,7 +21080,7 @@ class Version {
21783
21080
  /**
21784
21081
  * @publicApi
21785
21082
  */
21786
- const VERSION = new Version('14.0.4');
21083
+ const VERSION = new Version('14.0.5');
21787
21084
 
21788
21085
  /**
21789
21086
  * @license
@@ -22162,367 +21459,783 @@ class RootViewRef extends ViewRef$1 {
22162
21459
  * Use of this source code is governed by an MIT-style license that can be
22163
21460
  * found in the LICENSE file at https://angular.io/license
22164
21461
  */
22165
- class ComponentFactoryResolver extends ComponentFactoryResolver$1 {
22166
- /**
22167
- * @param ngModule The NgModuleRef to which all resolved factories are bound.
22168
- */
22169
- constructor(ngModule) {
22170
- super();
22171
- this.ngModule = ngModule;
22172
- }
22173
- resolveComponentFactory(component) {
22174
- ngDevMode && assertComponentType(component);
22175
- const componentDef = getComponentDef(component);
22176
- return new ComponentFactory(componentDef, this.ngModule);
22177
- }
22178
- }
22179
- function toRefArray(map) {
22180
- const array = [];
22181
- for (let nonMinified in map) {
22182
- if (map.hasOwnProperty(nonMinified)) {
22183
- const minified = map[nonMinified];
22184
- array.push({ propName: minified, templateName: nonMinified });
21462
+ class ComponentFactoryResolver extends ComponentFactoryResolver$1 {
21463
+ /**
21464
+ * @param ngModule The NgModuleRef to which all resolved factories are bound.
21465
+ */
21466
+ constructor(ngModule) {
21467
+ super();
21468
+ this.ngModule = ngModule;
21469
+ }
21470
+ resolveComponentFactory(component) {
21471
+ ngDevMode && assertComponentType(component);
21472
+ const componentDef = getComponentDef(component);
21473
+ return new ComponentFactory(componentDef, this.ngModule);
21474
+ }
21475
+ }
21476
+ function toRefArray(map) {
21477
+ const array = [];
21478
+ for (let nonMinified in map) {
21479
+ if (map.hasOwnProperty(nonMinified)) {
21480
+ const minified = map[nonMinified];
21481
+ array.push({ propName: minified, templateName: nonMinified });
21482
+ }
21483
+ }
21484
+ return array;
21485
+ }
21486
+ function getNamespace(elementName) {
21487
+ const name = elementName.toLowerCase();
21488
+ return name === 'svg' ? SVG_NAMESPACE : (name === 'math' ? MATH_ML_NAMESPACE : null);
21489
+ }
21490
+ /**
21491
+ * Injector that looks up a value using a specific injector, before falling back to the module
21492
+ * injector. Used primarily when creating components or embedded views dynamically.
21493
+ */
21494
+ class ChainedInjector {
21495
+ constructor(injector, parentInjector) {
21496
+ this.injector = injector;
21497
+ this.parentInjector = parentInjector;
21498
+ }
21499
+ get(token, notFoundValue, flags) {
21500
+ const value = this.injector.get(token, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, flags);
21501
+ if (value !== NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR ||
21502
+ notFoundValue === NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR) {
21503
+ // Return the value from the root element injector when
21504
+ // - it provides it
21505
+ // (value !== NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR)
21506
+ // - the module injector should not be checked
21507
+ // (notFoundValue === NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR)
21508
+ return value;
21509
+ }
21510
+ return this.parentInjector.get(token, notFoundValue, flags);
21511
+ }
21512
+ }
21513
+ /**
21514
+ * Render3 implementation of {@link viewEngine_ComponentFactory}.
21515
+ */
21516
+ class ComponentFactory extends ComponentFactory$1 {
21517
+ /**
21518
+ * @param componentDef The component definition.
21519
+ * @param ngModule The NgModuleRef to which the factory is bound.
21520
+ */
21521
+ constructor(componentDef, ngModule) {
21522
+ super();
21523
+ this.componentDef = componentDef;
21524
+ this.ngModule = ngModule;
21525
+ this.componentType = componentDef.type;
21526
+ this.selector = stringifyCSSSelectorList(componentDef.selectors);
21527
+ this.ngContentSelectors =
21528
+ componentDef.ngContentSelectors ? componentDef.ngContentSelectors : [];
21529
+ this.isBoundToModule = !!ngModule;
21530
+ }
21531
+ get inputs() {
21532
+ return toRefArray(this.componentDef.inputs);
21533
+ }
21534
+ get outputs() {
21535
+ return toRefArray(this.componentDef.outputs);
21536
+ }
21537
+ create(injector, projectableNodes, rootSelectorOrNode, environmentInjector) {
21538
+ environmentInjector = environmentInjector || this.ngModule;
21539
+ let realEnvironmentInjector = environmentInjector instanceof EnvironmentInjector ?
21540
+ environmentInjector :
21541
+ environmentInjector === null || environmentInjector === void 0 ? void 0 : environmentInjector.injector;
21542
+ if (realEnvironmentInjector && this.componentDef.getStandaloneInjector !== null) {
21543
+ realEnvironmentInjector = this.componentDef.getStandaloneInjector(realEnvironmentInjector) ||
21544
+ realEnvironmentInjector;
21545
+ }
21546
+ const rootViewInjector = realEnvironmentInjector ? new ChainedInjector(injector, realEnvironmentInjector) : injector;
21547
+ const rendererFactory = rootViewInjector.get(RendererFactory2, null);
21548
+ if (rendererFactory === null) {
21549
+ throw new RuntimeError(407 /* RuntimeErrorCode.RENDERER_NOT_FOUND */, ngDevMode &&
21550
+ 'Angular was not able to inject a renderer (RendererFactory2). ' +
21551
+ 'Likely this is due to a broken DI hierarchy. ' +
21552
+ 'Make sure that any injector used to create this component has a correct parent.');
21553
+ }
21554
+ const sanitizer = rootViewInjector.get(Sanitizer, null);
21555
+ const hostRenderer = rendererFactory.createRenderer(null, this.componentDef);
21556
+ // Determine a tag name used for creating host elements when this component is created
21557
+ // dynamically. Default to 'div' if this component did not specify any tag name in its selector.
21558
+ const elementName = this.componentDef.selectors[0][0] || 'div';
21559
+ const hostRNode = rootSelectorOrNode ?
21560
+ locateHostElement(hostRenderer, rootSelectorOrNode, this.componentDef.encapsulation) :
21561
+ createElementNode(rendererFactory.createRenderer(null, this.componentDef), elementName, getNamespace(elementName));
21562
+ const rootFlags = this.componentDef.onPush ? 32 /* LViewFlags.Dirty */ | 256 /* LViewFlags.IsRoot */ :
21563
+ 16 /* LViewFlags.CheckAlways */ | 256 /* LViewFlags.IsRoot */;
21564
+ const rootContext = createRootContext();
21565
+ // Create the root view. Uses empty TView and ContentTemplate.
21566
+ const rootTView = createTView(0 /* TViewType.Root */, null, null, 1, 0, null, null, null, null, null);
21567
+ const rootLView = createLView(null, rootTView, rootContext, rootFlags, null, null, rendererFactory, hostRenderer, sanitizer, rootViewInjector, null);
21568
+ // rootView is the parent when bootstrapping
21569
+ // TODO(misko): it looks like we are entering view here but we don't really need to as
21570
+ // `renderView` does that. However as the code is written it is needed because
21571
+ // `createRootComponentView` and `createRootComponent` both read global state. Fixing those
21572
+ // issues would allow us to drop this.
21573
+ enterView(rootLView);
21574
+ let component;
21575
+ let tElementNode;
21576
+ try {
21577
+ const componentView = createRootComponentView(hostRNode, this.componentDef, rootLView, rendererFactory, hostRenderer);
21578
+ if (hostRNode) {
21579
+ if (rootSelectorOrNode) {
21580
+ setUpAttributes(hostRenderer, hostRNode, ['ng-version', VERSION.full]);
21581
+ }
21582
+ else {
21583
+ // If host element is created as a part of this function call (i.e. `rootSelectorOrNode`
21584
+ // is not defined), also apply attributes and classes extracted from component selector.
21585
+ // Extract attributes and classes from the first selector only to match VE behavior.
21586
+ const { attrs, classes } = extractAttrsAndClassesFromSelector(this.componentDef.selectors[0]);
21587
+ if (attrs) {
21588
+ setUpAttributes(hostRenderer, hostRNode, attrs);
21589
+ }
21590
+ if (classes && classes.length > 0) {
21591
+ writeDirectClass(hostRenderer, hostRNode, classes.join(' '));
21592
+ }
21593
+ }
21594
+ }
21595
+ tElementNode = getTNode(rootTView, HEADER_OFFSET);
21596
+ if (projectableNodes !== undefined) {
21597
+ const projection = tElementNode.projection = [];
21598
+ for (let i = 0; i < this.ngContentSelectors.length; i++) {
21599
+ const nodesforSlot = projectableNodes[i];
21600
+ // Projectable nodes can be passed as array of arrays or an array of iterables (ngUpgrade
21601
+ // case). Here we do normalize passed data structure to be an array of arrays to avoid
21602
+ // complex checks down the line.
21603
+ // We also normalize the length of the passed in projectable nodes (to match the number of
21604
+ // <ng-container> slots defined by a component).
21605
+ projection.push(nodesforSlot != null ? Array.from(nodesforSlot) : null);
21606
+ }
21607
+ }
21608
+ // TODO: should LifecycleHooksFeature and other host features be generated by the compiler and
21609
+ // executed here?
21610
+ // Angular 5 reference: https://stackblitz.com/edit/lifecycle-hooks-vcref
21611
+ component = createRootComponent(componentView, this.componentDef, rootLView, rootContext, [LifecycleHooksFeature]);
21612
+ renderView(rootTView, rootLView, null);
21613
+ }
21614
+ finally {
21615
+ leaveView();
21616
+ }
21617
+ return new ComponentRef(this.componentType, component, createElementRef(tElementNode, rootLView), rootLView, tElementNode);
21618
+ }
21619
+ }
21620
+ const componentFactoryResolver = new ComponentFactoryResolver();
21621
+ /**
21622
+ * Creates a ComponentFactoryResolver and stores it on the injector. Or, if the
21623
+ * ComponentFactoryResolver
21624
+ * already exists, retrieves the existing ComponentFactoryResolver.
21625
+ *
21626
+ * @returns The ComponentFactoryResolver instance to use
21627
+ */
21628
+ function injectComponentFactoryResolver() {
21629
+ return componentFactoryResolver;
21630
+ }
21631
+ /**
21632
+ * Represents an instance of a Component created via a {@link ComponentFactory}.
21633
+ *
21634
+ * `ComponentRef` provides access to the Component Instance as well other objects related to this
21635
+ * Component Instance and allows you to destroy the Component Instance via the {@link #destroy}
21636
+ * method.
21637
+ *
21638
+ */
21639
+ class ComponentRef extends ComponentRef$1 {
21640
+ constructor(componentType, instance, location, _rootLView, _tNode) {
21641
+ super();
21642
+ this.location = location;
21643
+ this._rootLView = _rootLView;
21644
+ this._tNode = _tNode;
21645
+ this.instance = instance;
21646
+ this.hostView = this.changeDetectorRef = new RootViewRef(_rootLView);
21647
+ this.componentType = componentType;
21648
+ }
21649
+ get injector() {
21650
+ return new NodeInjector(this._tNode, this._rootLView);
21651
+ }
21652
+ destroy() {
21653
+ this.hostView.destroy();
21654
+ }
21655
+ onDestroy(callback) {
21656
+ this.hostView.onDestroy(callback);
21657
+ }
21658
+ }
21659
+
21660
+ /**
21661
+ * @license
21662
+ * Copyright Google LLC All Rights Reserved.
21663
+ *
21664
+ * Use of this source code is governed by an MIT-style license that can be
21665
+ * found in the LICENSE file at https://angular.io/license
21666
+ */
21667
+ /**
21668
+ * Returns a new NgModuleRef instance based on the NgModule class and parent injector provided.
21669
+ * @param ngModule NgModule class.
21670
+ * @param parentInjector Optional injector instance to use as a parent for the module injector. If
21671
+ * not provided, `NullInjector` will be used instead.
21672
+ * @publicApi
21673
+ */
21674
+ function createNgModuleRef(ngModule, parentInjector) {
21675
+ return new NgModuleRef(ngModule, parentInjector !== null && parentInjector !== void 0 ? parentInjector : null);
21676
+ }
21677
+ class NgModuleRef extends NgModuleRef$1 {
21678
+ constructor(ngModuleType, _parent) {
21679
+ super();
21680
+ this._parent = _parent;
21681
+ // tslint:disable-next-line:require-internal-with-underscore
21682
+ this._bootstrapComponents = [];
21683
+ this.injector = this;
21684
+ this.destroyCbs = [];
21685
+ // When bootstrapping a module we have a dependency graph that looks like this:
21686
+ // ApplicationRef -> ComponentFactoryResolver -> NgModuleRef. The problem is that if the
21687
+ // module being resolved tries to inject the ComponentFactoryResolver, it'll create a
21688
+ // circular dependency which will result in a runtime error, because the injector doesn't
21689
+ // exist yet. We work around the issue by creating the ComponentFactoryResolver ourselves
21690
+ // and providing it, rather than letting the injector resolve it.
21691
+ this.componentFactoryResolver = new ComponentFactoryResolver(this);
21692
+ const ngModuleDef = getNgModuleDef(ngModuleType);
21693
+ ngDevMode &&
21694
+ assertDefined(ngModuleDef, `NgModule '${stringify(ngModuleType)}' is not a subtype of 'NgModuleType'.`);
21695
+ this._bootstrapComponents = maybeUnwrapFn(ngModuleDef.bootstrap);
21696
+ this._r3Injector = createInjectorWithoutInjectorInstances(ngModuleType, _parent, [
21697
+ { provide: NgModuleRef$1, useValue: this }, {
21698
+ provide: ComponentFactoryResolver$1,
21699
+ useValue: this.componentFactoryResolver
21700
+ }
21701
+ ], stringify(ngModuleType), new Set(['environment']));
21702
+ // We need to resolve the injector types separately from the injector creation, because
21703
+ // the module might be trying to use this ref in its constructor for DI which will cause a
21704
+ // circular error that will eventually error out, because the injector isn't created yet.
21705
+ this._r3Injector.resolveInjectorInitializers();
21706
+ this.instance = this.get(ngModuleType);
21707
+ }
21708
+ get(token, notFoundValue = Injector.THROW_IF_NOT_FOUND, injectFlags = InjectFlags.Default) {
21709
+ if (token === Injector || token === NgModuleRef$1 || token === INJECTOR) {
21710
+ return this;
21711
+ }
21712
+ return this._r3Injector.get(token, notFoundValue, injectFlags);
21713
+ }
21714
+ destroy() {
21715
+ ngDevMode && assertDefined(this.destroyCbs, 'NgModule already destroyed');
21716
+ const injector = this._r3Injector;
21717
+ !injector.destroyed && injector.destroy();
21718
+ this.destroyCbs.forEach(fn => fn());
21719
+ this.destroyCbs = null;
21720
+ }
21721
+ onDestroy(callback) {
21722
+ ngDevMode && assertDefined(this.destroyCbs, 'NgModule already destroyed');
21723
+ this.destroyCbs.push(callback);
21724
+ }
21725
+ }
21726
+ class NgModuleFactory extends NgModuleFactory$1 {
21727
+ constructor(moduleType) {
21728
+ super();
21729
+ this.moduleType = moduleType;
21730
+ }
21731
+ create(parentInjector) {
21732
+ return new NgModuleRef(this.moduleType, parentInjector);
21733
+ }
21734
+ }
21735
+ class EnvironmentNgModuleRefAdapter extends NgModuleRef$1 {
21736
+ constructor(providers, parent, source) {
21737
+ super();
21738
+ this.componentFactoryResolver = new ComponentFactoryResolver(this);
21739
+ this.instance = null;
21740
+ const injector = new R3Injector([
21741
+ ...providers,
21742
+ { provide: NgModuleRef$1, useValue: this },
21743
+ { provide: ComponentFactoryResolver$1, useValue: this.componentFactoryResolver },
21744
+ ], parent || getNullInjector(), source, new Set(['environment']));
21745
+ this.injector = injector;
21746
+ injector.resolveInjectorInitializers();
21747
+ }
21748
+ destroy() {
21749
+ this.injector.destroy();
21750
+ }
21751
+ onDestroy(callback) {
21752
+ this.injector.onDestroy(callback);
21753
+ }
21754
+ }
21755
+ /**
21756
+ * Create a new environment injector.
21757
+ *
21758
+ * @publicApi
21759
+ * @developerPreview
21760
+ */
21761
+ function createEnvironmentInjector(providers, parent = null, debugName = null) {
21762
+ const adapter = new EnvironmentNgModuleRefAdapter(providers, parent, debugName);
21763
+ return adapter.injector;
21764
+ }
21765
+
21766
+ /**
21767
+ * @license
21768
+ * Copyright Google LLC All Rights Reserved.
21769
+ *
21770
+ * Use of this source code is governed by an MIT-style license that can be
21771
+ * found in the LICENSE file at https://angular.io/license
21772
+ */
21773
+ /**
21774
+ * A service used by the framework to create instances of standalone injectors. Those injectors are
21775
+ * created on demand in case of dynamic component instantiation and contain ambient providers
21776
+ * collected from the imports graph rooted at a given standalone component.
21777
+ */
21778
+ class StandaloneService {
21779
+ constructor(_injector) {
21780
+ this._injector = _injector;
21781
+ this.cachedInjectors = new Map();
21782
+ }
21783
+ getOrCreateStandaloneInjector(componentDef) {
21784
+ if (!componentDef.standalone) {
21785
+ return null;
21786
+ }
21787
+ if (!this.cachedInjectors.has(componentDef.id)) {
21788
+ const providers = internalImportProvidersFrom(false, componentDef.type);
21789
+ const standaloneInjector = providers.length > 0 ?
21790
+ createEnvironmentInjector([providers], this._injector, `Standalone[${componentDef.type.name}]`) :
21791
+ null;
21792
+ this.cachedInjectors.set(componentDef.id, standaloneInjector);
21793
+ }
21794
+ return this.cachedInjectors.get(componentDef.id);
21795
+ }
21796
+ ngOnDestroy() {
21797
+ try {
21798
+ for (const injector of this.cachedInjectors.values()) {
21799
+ if (injector !== null) {
21800
+ injector.destroy();
21801
+ }
21802
+ }
21803
+ }
21804
+ finally {
21805
+ this.cachedInjectors.clear();
21806
+ }
21807
+ }
21808
+ }
21809
+ /** @nocollapse */
21810
+ StandaloneService.ɵprov = ɵɵdefineInjectable({
21811
+ token: StandaloneService,
21812
+ providedIn: 'environment',
21813
+ factory: () => new StandaloneService(ɵɵinject(EnvironmentInjector)),
21814
+ });
21815
+ /**
21816
+ * A feature that acts as a setup code for the {@link StandaloneService}.
21817
+ *
21818
+ * The most important responsaibility of this feature is to expose the "getStandaloneInjector"
21819
+ * function (an entry points to a standalone injector creation) on a component definition object. We
21820
+ * go through the features infrastructure to make sure that the standalone injector creation logic
21821
+ * is tree-shakable and not included in applications that don't use standalone components.
21822
+ *
21823
+ * @codeGenApi
21824
+ */
21825
+ function ɵɵStandaloneFeature(definition) {
21826
+ definition.getStandaloneInjector = (parentInjector) => {
21827
+ return parentInjector.get(StandaloneService).getOrCreateStandaloneInjector(definition);
21828
+ };
21829
+ }
21830
+
21831
+ /**
21832
+ * @license
21833
+ * Copyright Google LLC All Rights Reserved.
21834
+ *
21835
+ * Use of this source code is governed by an MIT-style license that can be
21836
+ * found in the LICENSE file at https://angular.io/license
21837
+ */
21838
+ /**
21839
+ * Retrieves the component instance associated with a given DOM element.
21840
+ *
21841
+ * @usageNotes
21842
+ * Given the following DOM structure:
21843
+ *
21844
+ * ```html
21845
+ * <app-root>
21846
+ * <div>
21847
+ * <child-comp></child-comp>
21848
+ * </div>
21849
+ * </app-root>
21850
+ * ```
21851
+ *
21852
+ * Calling `getComponent` on `<child-comp>` will return the instance of `ChildComponent`
21853
+ * associated with this DOM element.
21854
+ *
21855
+ * Calling the function on `<app-root>` will return the `MyApp` instance.
21856
+ *
21857
+ *
21858
+ * @param element DOM element from which the component should be retrieved.
21859
+ * @returns Component instance associated with the element or `null` if there
21860
+ * is no component associated with it.
21861
+ *
21862
+ * @publicApi
21863
+ * @globalApi ng
21864
+ */
21865
+ function getComponent(element) {
21866
+ ngDevMode && assertDomElement(element);
21867
+ const context = getLContext(element);
21868
+ if (context === null)
21869
+ return null;
21870
+ if (context.component === undefined) {
21871
+ const lView = context.lView;
21872
+ if (lView === null) {
21873
+ return null;
22185
21874
  }
21875
+ context.component = getComponentAtNodeIndex(context.nodeIndex, lView);
22186
21876
  }
22187
- return array;
21877
+ return context.component;
22188
21878
  }
22189
- function getNamespace(elementName) {
22190
- const name = elementName.toLowerCase();
22191
- return name === 'svg' ? SVG_NAMESPACE : (name === 'math' ? MATH_ML_NAMESPACE : null);
21879
+ /**
21880
+ * If inside an embedded view (e.g. `*ngIf` or `*ngFor`), retrieves the context of the embedded
21881
+ * view that the element is part of. Otherwise retrieves the instance of the component whose view
21882
+ * owns the element (in this case, the result is the same as calling `getOwningComponent`).
21883
+ *
21884
+ * @param element Element for which to get the surrounding component instance.
21885
+ * @returns Instance of the component that is around the element or null if the element isn't
21886
+ * inside any component.
21887
+ *
21888
+ * @publicApi
21889
+ * @globalApi ng
21890
+ */
21891
+ function getContext(element) {
21892
+ assertDomElement(element);
21893
+ const context = getLContext(element);
21894
+ const lView = context ? context.lView : null;
21895
+ return lView === null ? null : lView[CONTEXT];
22192
21896
  }
22193
21897
  /**
22194
- * Injector that looks up a value using a specific injector, before falling back to the module
22195
- * injector. Used primarily when creating components or embedded views dynamically.
21898
+ * Retrieves the component instance whose view contains the DOM element.
21899
+ *
21900
+ * For example, if `<child-comp>` is used in the template of `<app-comp>`
21901
+ * (i.e. a `ViewChild` of `<app-comp>`), calling `getOwningComponent` on `<child-comp>`
21902
+ * would return `<app-comp>`.
21903
+ *
21904
+ * @param elementOrDir DOM element, component or directive instance
21905
+ * for which to retrieve the root components.
21906
+ * @returns Component instance whose view owns the DOM element or null if the element is not
21907
+ * part of a component view.
21908
+ *
21909
+ * @publicApi
21910
+ * @globalApi ng
22196
21911
  */
22197
- class ChainedInjector {
22198
- constructor(injector, parentInjector) {
22199
- this.injector = injector;
22200
- this.parentInjector = parentInjector;
22201
- }
22202
- get(token, notFoundValue, flags) {
22203
- const value = this.injector.get(token, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, flags);
22204
- if (value !== NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR ||
22205
- notFoundValue === NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR) {
22206
- // Return the value from the root element injector when
22207
- // - it provides it
22208
- // (value !== NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR)
22209
- // - the module injector should not be checked
22210
- // (notFoundValue === NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR)
22211
- return value;
22212
- }
22213
- return this.parentInjector.get(token, notFoundValue, flags);
21912
+ function getOwningComponent(elementOrDir) {
21913
+ const context = getLContext(elementOrDir);
21914
+ let lView = context ? context.lView : null;
21915
+ if (lView === null)
21916
+ return null;
21917
+ let parent;
21918
+ while (lView[TVIEW].type === 2 /* TViewType.Embedded */ && (parent = getLViewParent(lView))) {
21919
+ lView = parent;
22214
21920
  }
21921
+ return lView[FLAGS] & 256 /* LViewFlags.IsRoot */ ? null : lView[CONTEXT];
22215
21922
  }
22216
21923
  /**
22217
- * Render3 implementation of {@link viewEngine_ComponentFactory}.
21924
+ * Retrieves all root components associated with a DOM element, directive or component instance.
21925
+ * Root components are those which have been bootstrapped by Angular.
21926
+ *
21927
+ * @param elementOrDir DOM element, component or directive instance
21928
+ * for which to retrieve the root components.
21929
+ * @returns Root components associated with the target object.
21930
+ *
21931
+ * @publicApi
21932
+ * @globalApi ng
22218
21933
  */
22219
- class ComponentFactory extends ComponentFactory$1 {
22220
- /**
22221
- * @param componentDef The component definition.
22222
- * @param ngModule The NgModuleRef to which the factory is bound.
22223
- */
22224
- constructor(componentDef, ngModule) {
22225
- super();
22226
- this.componentDef = componentDef;
22227
- this.ngModule = ngModule;
22228
- this.componentType = componentDef.type;
22229
- this.selector = stringifyCSSSelectorList(componentDef.selectors);
22230
- this.ngContentSelectors =
22231
- componentDef.ngContentSelectors ? componentDef.ngContentSelectors : [];
22232
- this.isBoundToModule = !!ngModule;
22233
- }
22234
- get inputs() {
22235
- return toRefArray(this.componentDef.inputs);
22236
- }
22237
- get outputs() {
22238
- return toRefArray(this.componentDef.outputs);
22239
- }
22240
- create(injector, projectableNodes, rootSelectorOrNode, environmentInjector) {
22241
- environmentInjector = environmentInjector || this.ngModule;
22242
- let realEnvironmentInjector = environmentInjector instanceof EnvironmentInjector ?
22243
- environmentInjector :
22244
- environmentInjector === null || environmentInjector === void 0 ? void 0 : environmentInjector.injector;
22245
- if (realEnvironmentInjector && this.componentDef.getStandaloneInjector !== null) {
22246
- realEnvironmentInjector = this.componentDef.getStandaloneInjector(realEnvironmentInjector) ||
22247
- realEnvironmentInjector;
22248
- }
22249
- const rootViewInjector = realEnvironmentInjector ? new ChainedInjector(injector, realEnvironmentInjector) : injector;
22250
- const rendererFactory = rootViewInjector.get(RendererFactory2, domRendererFactory3);
22251
- const sanitizer = rootViewInjector.get(Sanitizer, null);
22252
- const hostRenderer = rendererFactory.createRenderer(null, this.componentDef);
22253
- // Determine a tag name used for creating host elements when this component is created
22254
- // dynamically. Default to 'div' if this component did not specify any tag name in its selector.
22255
- const elementName = this.componentDef.selectors[0][0] || 'div';
22256
- const hostRNode = rootSelectorOrNode ?
22257
- locateHostElement(hostRenderer, rootSelectorOrNode, this.componentDef.encapsulation) :
22258
- createElementNode(rendererFactory.createRenderer(null, this.componentDef), elementName, getNamespace(elementName));
22259
- const rootFlags = this.componentDef.onPush ? 32 /* LViewFlags.Dirty */ | 256 /* LViewFlags.IsRoot */ :
22260
- 16 /* LViewFlags.CheckAlways */ | 256 /* LViewFlags.IsRoot */;
22261
- const rootContext = createRootContext();
22262
- // Create the root view. Uses empty TView and ContentTemplate.
22263
- const rootTView = createTView(0 /* TViewType.Root */, null, null, 1, 0, null, null, null, null, null);
22264
- const rootLView = createLView(null, rootTView, rootContext, rootFlags, null, null, rendererFactory, hostRenderer, sanitizer, rootViewInjector, null);
22265
- // rootView is the parent when bootstrapping
22266
- // TODO(misko): it looks like we are entering view here but we don't really need to as
22267
- // `renderView` does that. However as the code is written it is needed because
22268
- // `createRootComponentView` and `createRootComponent` both read global state. Fixing those
22269
- // issues would allow us to drop this.
22270
- enterView(rootLView);
22271
- let component;
22272
- let tElementNode;
22273
- try {
22274
- const componentView = createRootComponentView(hostRNode, this.componentDef, rootLView, rendererFactory, hostRenderer);
22275
- if (hostRNode) {
22276
- if (rootSelectorOrNode) {
22277
- setUpAttributes(hostRenderer, hostRNode, ['ng-version', VERSION.full]);
22278
- }
22279
- else {
22280
- // If host element is created as a part of this function call (i.e. `rootSelectorOrNode`
22281
- // is not defined), also apply attributes and classes extracted from component selector.
22282
- // Extract attributes and classes from the first selector only to match VE behavior.
22283
- const { attrs, classes } = extractAttrsAndClassesFromSelector(this.componentDef.selectors[0]);
22284
- if (attrs) {
22285
- setUpAttributes(hostRenderer, hostRNode, attrs);
22286
- }
22287
- if (classes && classes.length > 0) {
22288
- writeDirectClass(hostRenderer, hostRNode, classes.join(' '));
22289
- }
22290
- }
22291
- }
22292
- tElementNode = getTNode(rootTView, HEADER_OFFSET);
22293
- if (projectableNodes !== undefined) {
22294
- const projection = tElementNode.projection = [];
22295
- for (let i = 0; i < this.ngContentSelectors.length; i++) {
22296
- const nodesforSlot = projectableNodes[i];
22297
- // Projectable nodes can be passed as array of arrays or an array of iterables (ngUpgrade
22298
- // case). Here we do normalize passed data structure to be an array of arrays to avoid
22299
- // complex checks down the line.
22300
- // We also normalize the length of the passed in projectable nodes (to match the number of
22301
- // <ng-container> slots defined by a component).
22302
- projection.push(nodesforSlot != null ? Array.from(nodesforSlot) : null);
22303
- }
22304
- }
22305
- // TODO: should LifecycleHooksFeature and other host features be generated by the compiler and
22306
- // executed here?
22307
- // Angular 5 reference: https://stackblitz.com/edit/lifecycle-hooks-vcref
22308
- component = createRootComponent(componentView, this.componentDef, rootLView, rootContext, [LifecycleHooksFeature]);
22309
- renderView(rootTView, rootLView, null);
22310
- }
22311
- finally {
22312
- leaveView();
21934
+ function getRootComponents(elementOrDir) {
21935
+ const lView = readPatchedLView(elementOrDir);
21936
+ return lView !== null ? [...getRootContext(lView).components] : [];
21937
+ }
21938
+ /**
21939
+ * Retrieves an `Injector` associated with an element, component or directive instance.
21940
+ *
21941
+ * @param elementOrDir DOM element, component or directive instance for which to
21942
+ * retrieve the injector.
21943
+ * @returns Injector associated with the element, component or directive instance.
21944
+ *
21945
+ * @publicApi
21946
+ * @globalApi ng
21947
+ */
21948
+ function getInjector(elementOrDir) {
21949
+ const context = getLContext(elementOrDir);
21950
+ const lView = context ? context.lView : null;
21951
+ if (lView === null)
21952
+ return Injector.NULL;
21953
+ const tNode = lView[TVIEW].data[context.nodeIndex];
21954
+ return new NodeInjector(tNode, lView);
21955
+ }
21956
+ /**
21957
+ * Retrieve a set of injection tokens at a given DOM node.
21958
+ *
21959
+ * @param element Element for which the injection tokens should be retrieved.
21960
+ */
21961
+ function getInjectionTokens(element) {
21962
+ const context = getLContext(element);
21963
+ const lView = context ? context.lView : null;
21964
+ if (lView === null)
21965
+ return [];
21966
+ const tView = lView[TVIEW];
21967
+ const tNode = tView.data[context.nodeIndex];
21968
+ const providerTokens = [];
21969
+ const startIndex = tNode.providerIndexes & 1048575 /* TNodeProviderIndexes.ProvidersStartIndexMask */;
21970
+ const endIndex = tNode.directiveEnd;
21971
+ for (let i = startIndex; i < endIndex; i++) {
21972
+ let value = tView.data[i];
21973
+ if (isDirectiveDefHack(value)) {
21974
+ // The fact that we sometimes store Type and sometimes DirectiveDef in this location is a
21975
+ // design flaw. We should always store same type so that we can be monomorphic. The issue
21976
+ // is that for Components/Directives we store the def instead the type. The correct behavior
21977
+ // is that we should always be storing injectable type in this location.
21978
+ value = value.type;
22313
21979
  }
22314
- return new ComponentRef(this.componentType, component, createElementRef(tElementNode, rootLView), rootLView, tElementNode);
21980
+ providerTokens.push(value);
22315
21981
  }
21982
+ return providerTokens;
22316
21983
  }
22317
- const componentFactoryResolver = new ComponentFactoryResolver();
22318
21984
  /**
22319
- * Creates a ComponentFactoryResolver and stores it on the injector. Or, if the
22320
- * ComponentFactoryResolver
22321
- * already exists, retrieves the existing ComponentFactoryResolver.
21985
+ * Retrieves directive instances associated with a given DOM node. Does not include
21986
+ * component instances.
22322
21987
  *
22323
- * @returns The ComponentFactoryResolver instance to use
21988
+ * @usageNotes
21989
+ * Given the following DOM structure:
21990
+ *
21991
+ * ```html
21992
+ * <app-root>
21993
+ * <button my-button></button>
21994
+ * <my-comp></my-comp>
21995
+ * </app-root>
21996
+ * ```
21997
+ *
21998
+ * Calling `getDirectives` on `<button>` will return an array with an instance of the `MyButton`
21999
+ * directive that is associated with the DOM node.
22000
+ *
22001
+ * Calling `getDirectives` on `<my-comp>` will return an empty array.
22002
+ *
22003
+ * @param node DOM node for which to get the directives.
22004
+ * @returns Array of directives associated with the node.
22005
+ *
22006
+ * @publicApi
22007
+ * @globalApi ng
22324
22008
  */
22325
- function injectComponentFactoryResolver() {
22326
- return componentFactoryResolver;
22009
+ function getDirectives(node) {
22010
+ // Skip text nodes because we can't have directives associated with them.
22011
+ if (node instanceof Text) {
22012
+ return [];
22013
+ }
22014
+ const context = getLContext(node);
22015
+ const lView = context ? context.lView : null;
22016
+ if (lView === null) {
22017
+ return [];
22018
+ }
22019
+ const tView = lView[TVIEW];
22020
+ const nodeIndex = context.nodeIndex;
22021
+ if (!(tView === null || tView === void 0 ? void 0 : tView.data[nodeIndex])) {
22022
+ return [];
22023
+ }
22024
+ if (context.directives === undefined) {
22025
+ context.directives = getDirectivesAtNodeIndex(nodeIndex, lView, false);
22026
+ }
22027
+ // The `directives` in this case are a named array called `LComponentView`. Clone the
22028
+ // result so we don't expose an internal data structure in the user's console.
22029
+ return context.directives === null ? [] : [...context.directives];
22327
22030
  }
22328
22031
  /**
22329
- * Represents an instance of a Component created via a {@link ComponentFactory}.
22032
+ * Returns the debug (partial) metadata for a particular directive or component instance.
22033
+ * The function accepts an instance of a directive or component and returns the corresponding
22034
+ * metadata.
22330
22035
  *
22331
- * `ComponentRef` provides access to the Component Instance as well other objects related to this
22332
- * Component Instance and allows you to destroy the Component Instance via the {@link #destroy}
22333
- * method.
22036
+ * @param directiveOrComponentInstance Instance of a directive or component
22037
+ * @returns metadata of the passed directive or component
22334
22038
  *
22039
+ * @publicApi
22040
+ * @globalApi ng
22335
22041
  */
22336
- class ComponentRef extends ComponentRef$1 {
22337
- constructor(componentType, instance, location, _rootLView, _tNode) {
22338
- super();
22339
- this.location = location;
22340
- this._rootLView = _rootLView;
22341
- this._tNode = _tNode;
22342
- this.instance = instance;
22343
- this.hostView = this.changeDetectorRef = new RootViewRef(_rootLView);
22344
- this.componentType = componentType;
22345
- }
22346
- get injector() {
22347
- return new NodeInjector(this._tNode, this._rootLView);
22042
+ function getDirectiveMetadata$1(directiveOrComponentInstance) {
22043
+ const { constructor } = directiveOrComponentInstance;
22044
+ if (!constructor) {
22045
+ throw new Error('Unable to find the instance constructor');
22348
22046
  }
22349
- destroy() {
22350
- this.hostView.destroy();
22047
+ // In case a component inherits from a directive, we may have component and directive metadata
22048
+ // To ensure we don't get the metadata of the directive, we want to call `getComponentDef` first.
22049
+ const componentDef = getComponentDef(constructor);
22050
+ if (componentDef) {
22051
+ return {
22052
+ inputs: componentDef.inputs,
22053
+ outputs: componentDef.outputs,
22054
+ encapsulation: componentDef.encapsulation,
22055
+ changeDetection: componentDef.onPush ? ChangeDetectionStrategy.OnPush :
22056
+ ChangeDetectionStrategy.Default
22057
+ };
22351
22058
  }
22352
- onDestroy(callback) {
22353
- this.hostView.onDestroy(callback);
22059
+ const directiveDef = getDirectiveDef(constructor);
22060
+ if (directiveDef) {
22061
+ return { inputs: directiveDef.inputs, outputs: directiveDef.outputs };
22354
22062
  }
22063
+ return null;
22355
22064
  }
22356
-
22357
22065
  /**
22358
- * @license
22359
- * Copyright Google LLC All Rights Reserved.
22066
+ * Retrieve map of local references.
22360
22067
  *
22361
- * Use of this source code is governed by an MIT-style license that can be
22362
- * found in the LICENSE file at https://angular.io/license
22068
+ * The references are retrieved as a map of local reference name to element or directive instance.
22069
+ *
22070
+ * @param target DOM element, component or directive instance for which to retrieve
22071
+ * the local references.
22363
22072
  */
22073
+ function getLocalRefs(target) {
22074
+ const context = getLContext(target);
22075
+ if (context === null)
22076
+ return {};
22077
+ if (context.localRefs === undefined) {
22078
+ const lView = context.lView;
22079
+ if (lView === null) {
22080
+ return {};
22081
+ }
22082
+ context.localRefs = discoverLocalRefs(lView, context.nodeIndex);
22083
+ }
22084
+ return context.localRefs || {};
22085
+ }
22364
22086
  /**
22365
- * Returns a new NgModuleRef instance based on the NgModule class and parent injector provided.
22366
- * @param ngModule NgModule class.
22367
- * @param parentInjector Optional injector instance to use as a parent for the module injector. If
22368
- * not provided, `NullInjector` will be used instead.
22087
+ * Retrieves the host element of a component or directive instance.
22088
+ * The host element is the DOM element that matched the selector of the directive.
22089
+ *
22090
+ * @param componentOrDirective Component or directive instance for which the host
22091
+ * element should be retrieved.
22092
+ * @returns Host element of the target.
22093
+ *
22369
22094
  * @publicApi
22095
+ * @globalApi ng
22370
22096
  */
22371
- function createNgModuleRef(ngModule, parentInjector) {
22372
- return new NgModuleRef(ngModule, parentInjector !== null && parentInjector !== void 0 ? parentInjector : null);
22097
+ function getHostElement(componentOrDirective) {
22098
+ return getLContext(componentOrDirective).native;
22373
22099
  }
22374
- class NgModuleRef extends NgModuleRef$1 {
22375
- constructor(ngModuleType, _parent) {
22376
- super();
22377
- this._parent = _parent;
22378
- // tslint:disable-next-line:require-internal-with-underscore
22379
- this._bootstrapComponents = [];
22380
- this.injector = this;
22381
- this.destroyCbs = [];
22382
- // When bootstrapping a module we have a dependency graph that looks like this:
22383
- // ApplicationRef -> ComponentFactoryResolver -> NgModuleRef. The problem is that if the
22384
- // module being resolved tries to inject the ComponentFactoryResolver, it'll create a
22385
- // circular dependency which will result in a runtime error, because the injector doesn't
22386
- // exist yet. We work around the issue by creating the ComponentFactoryResolver ourselves
22387
- // and providing it, rather than letting the injector resolve it.
22388
- this.componentFactoryResolver = new ComponentFactoryResolver(this);
22389
- const ngModuleDef = getNgModuleDef(ngModuleType);
22390
- ngDevMode &&
22391
- assertDefined(ngModuleDef, `NgModule '${stringify(ngModuleType)}' is not a subtype of 'NgModuleType'.`);
22392
- this._bootstrapComponents = maybeUnwrapFn(ngModuleDef.bootstrap);
22393
- this._r3Injector = createInjectorWithoutInjectorInstances(ngModuleType, _parent, [
22394
- { provide: NgModuleRef$1, useValue: this }, {
22395
- provide: ComponentFactoryResolver$1,
22396
- useValue: this.componentFactoryResolver
22100
+ /**
22101
+ * Retrieves the rendered text for a given component.
22102
+ *
22103
+ * This function retrieves the host element of a component and
22104
+ * and then returns the `textContent` for that element. This implies
22105
+ * that the text returned will include re-projected content of
22106
+ * the component as well.
22107
+ *
22108
+ * @param component The component to return the content text for.
22109
+ */
22110
+ function getRenderedText(component) {
22111
+ const hostElement = getHostElement(component);
22112
+ return hostElement.textContent || '';
22113
+ }
22114
+ /**
22115
+ * Retrieves a list of event listeners associated with a DOM element. The list does include host
22116
+ * listeners, but it does not include event listeners defined outside of the Angular context
22117
+ * (e.g. through `addEventListener`).
22118
+ *
22119
+ * @usageNotes
22120
+ * Given the following DOM structure:
22121
+ *
22122
+ * ```html
22123
+ * <app-root>
22124
+ * <div (click)="doSomething()"></div>
22125
+ * </app-root>
22126
+ * ```
22127
+ *
22128
+ * Calling `getListeners` on `<div>` will return an object that looks as follows:
22129
+ *
22130
+ * ```ts
22131
+ * {
22132
+ * name: 'click',
22133
+ * element: <div>,
22134
+ * callback: () => doSomething(),
22135
+ * useCapture: false
22136
+ * }
22137
+ * ```
22138
+ *
22139
+ * @param element Element for which the DOM listeners should be retrieved.
22140
+ * @returns Array of event listeners on the DOM element.
22141
+ *
22142
+ * @publicApi
22143
+ * @globalApi ng
22144
+ */
22145
+ function getListeners(element) {
22146
+ ngDevMode && assertDomElement(element);
22147
+ const lContext = getLContext(element);
22148
+ const lView = lContext === null ? null : lContext.lView;
22149
+ if (lView === null)
22150
+ return [];
22151
+ const tView = lView[TVIEW];
22152
+ const lCleanup = lView[CLEANUP];
22153
+ const tCleanup = tView.cleanup;
22154
+ const listeners = [];
22155
+ if (tCleanup && lCleanup) {
22156
+ for (let i = 0; i < tCleanup.length;) {
22157
+ const firstParam = tCleanup[i++];
22158
+ const secondParam = tCleanup[i++];
22159
+ if (typeof firstParam === 'string') {
22160
+ const name = firstParam;
22161
+ const listenerElement = unwrapRNode(lView[secondParam]);
22162
+ const callback = lCleanup[tCleanup[i++]];
22163
+ const useCaptureOrIndx = tCleanup[i++];
22164
+ // if useCaptureOrIndx is boolean then report it as is.
22165
+ // if useCaptureOrIndx is positive number then it in unsubscribe method
22166
+ // if useCaptureOrIndx is negative number then it is a Subscription
22167
+ const type = (typeof useCaptureOrIndx === 'boolean' || useCaptureOrIndx >= 0) ? 'dom' : 'output';
22168
+ const useCapture = typeof useCaptureOrIndx === 'boolean' ? useCaptureOrIndx : false;
22169
+ if (element == listenerElement) {
22170
+ listeners.push({ element, name, callback, useCapture, type });
22171
+ }
22397
22172
  }
22398
- ], stringify(ngModuleType), new Set(['environment']));
22399
- // We need to resolve the injector types separately from the injector creation, because
22400
- // the module might be trying to use this ref in its constructor for DI which will cause a
22401
- // circular error that will eventually error out, because the injector isn't created yet.
22402
- this._r3Injector.resolveInjectorInitializers();
22403
- this.instance = this.get(ngModuleType);
22404
- }
22405
- get(token, notFoundValue = Injector.THROW_IF_NOT_FOUND, injectFlags = InjectFlags.Default) {
22406
- if (token === Injector || token === NgModuleRef$1 || token === INJECTOR) {
22407
- return this;
22408
22173
  }
22409
- return this._r3Injector.get(token, notFoundValue, injectFlags);
22410
- }
22411
- destroy() {
22412
- ngDevMode && assertDefined(this.destroyCbs, 'NgModule already destroyed');
22413
- const injector = this._r3Injector;
22414
- !injector.destroyed && injector.destroy();
22415
- this.destroyCbs.forEach(fn => fn());
22416
- this.destroyCbs = null;
22417
- }
22418
- onDestroy(callback) {
22419
- ngDevMode && assertDefined(this.destroyCbs, 'NgModule already destroyed');
22420
- this.destroyCbs.push(callback);
22421
- }
22422
- }
22423
- class NgModuleFactory extends NgModuleFactory$1 {
22424
- constructor(moduleType) {
22425
- super();
22426
- this.moduleType = moduleType;
22427
- }
22428
- create(parentInjector) {
22429
- return new NgModuleRef(this.moduleType, parentInjector);
22430
22174
  }
22175
+ listeners.sort(sortListeners);
22176
+ return listeners;
22431
22177
  }
22432
- class EnvironmentNgModuleRefAdapter extends NgModuleRef$1 {
22433
- constructor(providers, parent, source) {
22434
- super();
22435
- this.componentFactoryResolver = new ComponentFactoryResolver(this);
22436
- this.instance = null;
22437
- const injector = new R3Injector([
22438
- ...providers,
22439
- { provide: NgModuleRef$1, useValue: this },
22440
- { provide: ComponentFactoryResolver$1, useValue: this.componentFactoryResolver },
22441
- ], parent || getNullInjector(), source, new Set(['environment']));
22442
- this.injector = injector;
22443
- injector.resolveInjectorInitializers();
22444
- }
22445
- destroy() {
22446
- this.injector.destroy();
22447
- }
22448
- onDestroy(callback) {
22449
- this.injector.onDestroy(callback);
22450
- }
22178
+ function sortListeners(a, b) {
22179
+ if (a.name == b.name)
22180
+ return 0;
22181
+ return a.name < b.name ? -1 : 1;
22451
22182
  }
22452
22183
  /**
22453
- * Create a new environment injector.
22184
+ * This function should not exist because it is megamorphic and only mostly correct.
22454
22185
  *
22455
- * @publicApi
22456
- * @developerPreview
22186
+ * See call site for more info.
22457
22187
  */
22458
- function createEnvironmentInjector(providers, parent = null, debugName = null) {
22459
- const adapter = new EnvironmentNgModuleRefAdapter(providers, parent, debugName);
22460
- return adapter.injector;
22188
+ function isDirectiveDefHack(obj) {
22189
+ return obj.type !== undefined && obj.template !== undefined && obj.declaredInputs !== undefined;
22461
22190
  }
22462
-
22463
22191
  /**
22464
- * @license
22465
- * Copyright Google LLC All Rights Reserved.
22192
+ * Returns the attached `DebugNode` instance for an element in the DOM.
22466
22193
  *
22467
- * Use of this source code is governed by an MIT-style license that can be
22468
- * found in the LICENSE file at https://angular.io/license
22469
- */
22470
- /**
22471
- * A service used by the framework to create instances of standalone injectors. Those injectors are
22472
- * created on demand in case of dynamic component instantiation and contain ambient providers
22473
- * collected from the imports graph rooted at a given standalone component.
22194
+ * @param element DOM element which is owned by an existing component's view.
22474
22195
  */
22475
- class StandaloneService {
22476
- constructor(_injector) {
22477
- this._injector = _injector;
22478
- this.cachedInjectors = new Map();
22196
+ function getDebugNode$1(element) {
22197
+ if (ngDevMode && !(element instanceof Node)) {
22198
+ throw new Error('Expecting instance of DOM Element');
22479
22199
  }
22480
- getOrCreateStandaloneInjector(componentDef) {
22481
- if (!componentDef.standalone) {
22482
- return null;
22483
- }
22484
- if (!this.cachedInjectors.has(componentDef.id)) {
22485
- const providers = internalImportProvidersFrom(false, componentDef.type);
22486
- const standaloneInjector = providers.length > 0 ?
22487
- createEnvironmentInjector([providers], this._injector, `Standalone[${componentDef.type.name}]`) :
22488
- null;
22489
- this.cachedInjectors.set(componentDef.id, standaloneInjector);
22490
- }
22491
- return this.cachedInjectors.get(componentDef.id);
22200
+ const lContext = getLContext(element);
22201
+ const lView = lContext ? lContext.lView : null;
22202
+ if (lView === null) {
22203
+ return null;
22492
22204
  }
22493
- ngOnDestroy() {
22494
- try {
22495
- for (const injector of this.cachedInjectors.values()) {
22496
- if (injector !== null) {
22497
- injector.destroy();
22498
- }
22499
- }
22500
- }
22501
- finally {
22502
- this.cachedInjectors.clear();
22503
- }
22205
+ const nodeIndex = lContext.nodeIndex;
22206
+ if (nodeIndex !== -1) {
22207
+ const valueInLView = lView[nodeIndex];
22208
+ // this means that value in the lView is a component with its own
22209
+ // data. In this situation the TNode is not accessed at the same spot.
22210
+ const tNode = isLView(valueInLView) ? valueInLView[T_HOST] : getTNode(lView[TVIEW], nodeIndex);
22211
+ ngDevMode &&
22212
+ assertEqual(tNode.index, nodeIndex, 'Expecting that TNode at index is same as index');
22213
+ return buildDebugNode(tNode, lView);
22504
22214
  }
22215
+ return null;
22505
22216
  }
22506
- /** @nocollapse */
22507
- StandaloneService.ɵprov = ɵɵdefineInjectable({
22508
- token: StandaloneService,
22509
- providedIn: 'environment',
22510
- factory: () => new StandaloneService(ɵɵinject(EnvironmentInjector)),
22511
- });
22512
22217
  /**
22513
- * A feature that acts as a setup code for the {@link StandaloneService}.
22218
+ * Retrieve the component `LView` from component/element.
22514
22219
  *
22515
- * The most important responsaibility of this feature is to expose the "getStandaloneInjector"
22516
- * function (an entry points to a standalone injector creation) on a component definition object. We
22517
- * go through the features infrastructure to make sure that the standalone injector creation logic
22518
- * is tree-shakable and not included in applications that don't use standalone components.
22220
+ * NOTE: `LView` is a private and should not be leaked outside.
22221
+ * Don't export this method to `ng.*` on window.
22519
22222
  *
22520
- * @codeGenApi
22223
+ * @param target DOM element or component instance for which to retrieve the LView.
22521
22224
  */
22522
- function ɵɵStandaloneFeature(definition) {
22523
- definition.getStandaloneInjector = (parentInjector) => {
22524
- return parentInjector.get(StandaloneService).getOrCreateStandaloneInjector(definition);
22525
- };
22225
+ function getComponentLView(target) {
22226
+ const lContext = getLContext(target);
22227
+ const nodeIndx = lContext.nodeIndex;
22228
+ const lView = lContext.lView;
22229
+ ngDevMode && assertLView(lView);
22230
+ const componentLView = lView[nodeIndx];
22231
+ ngDevMode && assertLView(componentLView);
22232
+ return componentLView;
22233
+ }
22234
+ /** Asserts that a value is a DOM Element. */
22235
+ function assertDomElement(value) {
22236
+ if (typeof Element !== 'undefined' && !(value instanceof Element)) {
22237
+ throw new Error('Expecting instance of DOM Element');
22238
+ }
22526
22239
  }
22527
22240
 
22528
22241
  /**
@@ -23743,7 +23456,7 @@ const unusedValueExportToPlacateAjd = 1;
23743
23456
  * Use of this source code is governed by an MIT-style license that can be
23744
23457
  * found in the LICENSE file at https://angular.io/license
23745
23458
  */
23746
- const unusedValueToPlacateAjd = unusedValueExportToPlacateAjd$1 + unusedValueExportToPlacateAjd$5 + unusedValueExportToPlacateAjd$4 + unusedValueExportToPlacateAjd;
23459
+ const unusedValueToPlacateAjd = unusedValueExportToPlacateAjd$1 + unusedValueExportToPlacateAjd$6 + unusedValueExportToPlacateAjd$5 + unusedValueExportToPlacateAjd;
23747
23460
  class LQuery_ {
23748
23461
  constructor(queryList) {
23749
23462
  this.queryList = queryList;
@@ -26165,6 +25878,99 @@ const COMPILER_OPTIONS = new InjectionToken('compilerOptions');
26165
25878
  class CompilerFactory {
26166
25879
  }
26167
25880
 
25881
+ /**
25882
+ * @license
25883
+ * Copyright Google LLC All Rights Reserved.
25884
+ *
25885
+ * Use of this source code is governed by an MIT-style license that can be
25886
+ * found in the LICENSE file at https://angular.io/license
25887
+ */
25888
+ /**
25889
+ * Marks a component for check (in case of OnPush components) and synchronously
25890
+ * performs change detection on the application this component belongs to.
25891
+ *
25892
+ * @param component Component to {@link ChangeDetectorRef#markForCheck mark for check}.
25893
+ *
25894
+ * @publicApi
25895
+ * @globalApi ng
25896
+ */
25897
+ function applyChanges(component) {
25898
+ markDirty(component);
25899
+ getRootComponents(component).forEach(rootComponent => detectChanges(rootComponent));
25900
+ }
25901
+
25902
+ /**
25903
+ * @license
25904
+ * Copyright Google LLC All Rights Reserved.
25905
+ *
25906
+ * Use of this source code is governed by an MIT-style license that can be
25907
+ * found in the LICENSE file at https://angular.io/license
25908
+ */
25909
+ /**
25910
+ * This file introduces series of globally accessible debug tools
25911
+ * to allow for the Angular debugging story to function.
25912
+ *
25913
+ * To see this in action run the following command:
25914
+ *
25915
+ * bazel run //packages/core/test/bundling/todo:devserver
25916
+ *
25917
+ * Then load `localhost:5432` and start using the console tools.
25918
+ */
25919
+ /**
25920
+ * This value reflects the property on the window where the dev
25921
+ * tools are patched (window.ng).
25922
+ * */
25923
+ const GLOBAL_PUBLISH_EXPANDO_KEY = 'ng';
25924
+ let _published = false;
25925
+ /**
25926
+ * Publishes a collection of default debug tools onto`window.ng`.
25927
+ *
25928
+ * These functions are available globally when Angular is in development
25929
+ * mode and are automatically stripped away from prod mode is on.
25930
+ */
25931
+ function publishDefaultGlobalUtils$1() {
25932
+ if (!_published) {
25933
+ _published = true;
25934
+ /**
25935
+ * Warning: this function is *INTERNAL* and should not be relied upon in application's code.
25936
+ * The contract of the function might be changed in any release and/or the function can be
25937
+ * removed completely.
25938
+ */
25939
+ publishGlobalUtil('ɵsetProfiler', setProfiler);
25940
+ publishGlobalUtil('getDirectiveMetadata', getDirectiveMetadata$1);
25941
+ publishGlobalUtil('getComponent', getComponent);
25942
+ publishGlobalUtil('getContext', getContext);
25943
+ publishGlobalUtil('getListeners', getListeners);
25944
+ publishGlobalUtil('getOwningComponent', getOwningComponent);
25945
+ publishGlobalUtil('getHostElement', getHostElement);
25946
+ publishGlobalUtil('getInjector', getInjector);
25947
+ publishGlobalUtil('getRootComponents', getRootComponents);
25948
+ publishGlobalUtil('getDirectives', getDirectives);
25949
+ publishGlobalUtil('applyChanges', applyChanges);
25950
+ }
25951
+ }
25952
+ /**
25953
+ * Publishes the given function to `window.ng` so that it can be
25954
+ * used from the browser console when an application is not in production.
25955
+ */
25956
+ function publishGlobalUtil(name, fn) {
25957
+ if (typeof COMPILED === 'undefined' || !COMPILED) {
25958
+ // Note: we can't export `ng` when using closure enhanced optimization as:
25959
+ // - closure declares globals itself for minified names, which sometimes clobber our `ng` global
25960
+ // - we can't declare a closure extern as the namespace `ng` is already used within Google
25961
+ // for typings for AngularJS (via `goog.provide('ng....')`).
25962
+ const w = _global;
25963
+ ngDevMode && assertDefined(fn, 'function not defined');
25964
+ if (w) {
25965
+ let container = w[GLOBAL_PUBLISH_EXPANDO_KEY];
25966
+ if (!container) {
25967
+ container = w[GLOBAL_PUBLISH_EXPANDO_KEY] = {};
25968
+ }
25969
+ container[name] = fn;
25970
+ }
25971
+ }
25972
+ }
25973
+
26168
25974
  /**
26169
25975
  * @license
26170
25976
  * Copyright Google LLC All Rights Reserved.
@@ -28081,7 +27887,7 @@ class DebugNode {
28081
27887
  get componentInstance() {
28082
27888
  const nativeElement = this.nativeNode;
28083
27889
  return nativeElement &&
28084
- (getComponent$1(nativeElement) || getOwningComponent(nativeElement));
27890
+ (getComponent(nativeElement) || getOwningComponent(nativeElement));
28085
27891
  }
28086
27892
  /**
28087
27893
  * An object that provides parent context for this element. Often an ancestor component instance
@@ -28092,7 +27898,7 @@ class DebugNode {
28092
27898
  * of heroes"`.
28093
27899
  */
28094
27900
  get context() {
28095
- return getComponent$1(this.nativeNode) || getContext(this.nativeNode);
27901
+ return getComponent(this.nativeNode) || getContext(this.nativeNode);
28096
27902
  }
28097
27903
  /**
28098
27904
  * The callbacks attached to the component's @Output properties and/or the element's event
@@ -28432,8 +28238,7 @@ function _queryNodeChildren(tNode, lView, predicate, matches, elementsOnly, root
28432
28238
  // Renderer2, however that's not the case in Ivy. This approach is being used because:
28433
28239
  // 1. Matching the ViewEngine behavior would mean potentially introducing a depedency
28434
28240
  // from `Renderer2` to Ivy which could bring Ivy code into ViewEngine.
28435
- // 2. We would have to make `Renderer3` "know" about debug nodes.
28436
- // 3. It allows us to capture nodes that were inserted directly via the DOM.
28241
+ // 2. It allows us to capture nodes that were inserted directly via the DOM.
28437
28242
  nativeNode && _queryNativeNodeDescendants(nativeNode, predicate, matches, elementsOnly);
28438
28243
  }
28439
28244
  // In all cases, if a dynamic container exists for this node, each view inside it has to be