@angular/cdk 20.0.0-next.3 → 20.0.0-next.4

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 (294) hide show
  1. package/fesm2022/{a11y-module-e6996d20.mjs → a11y-module-b228dc71.mjs} +29 -29
  2. package/fesm2022/{a11y-module-e6996d20.mjs.map → a11y-module-b228dc71.mjs.map} +1 -1
  3. package/fesm2022/a11y.mjs +20 -20
  4. package/fesm2022/accordion.mjs +12 -12
  5. package/fesm2022/{array-ee3b4bab.mjs → array-88e1bec3.mjs} +1 -1
  6. package/fesm2022/array-88e1bec3.mjs.map +1 -0
  7. package/fesm2022/{bidi-module-0726b65c.mjs → bidi-module-e73b8776.mjs} +9 -9
  8. package/fesm2022/{bidi-module-0726b65c.mjs.map → bidi-module-e73b8776.mjs.map} +1 -1
  9. package/fesm2022/bidi.mjs +2 -2
  10. package/fesm2022/{breakpoints-observer-d4584b66.mjs → breakpoints-observer-9432a91b.mjs} +9 -9
  11. package/fesm2022/{breakpoints-observer-d4584b66.mjs.map → breakpoints-observer-9432a91b.mjs.map} +1 -1
  12. package/fesm2022/cdk.mjs +1 -1
  13. package/fesm2022/cdk.mjs.map +1 -1
  14. package/fesm2022/clipboard.mjs +10 -10
  15. package/fesm2022/coercion.mjs +3 -3
  16. package/fesm2022/coercion.mjs.map +1 -1
  17. package/fesm2022/collections.mjs +1 -1
  18. package/fesm2022/{css-pixel-value-286c9a60.mjs → css-pixel-value-447bbfe8.mjs} +1 -1
  19. package/fesm2022/css-pixel-value-447bbfe8.mjs.map +1 -0
  20. package/fesm2022/dialog.mjs +27 -27
  21. package/fesm2022/{directionality-7ea26429.mjs → directionality-ea6ab987.mjs} +4 -4
  22. package/fesm2022/{directionality-7ea26429.mjs.map → directionality-ea6ab987.mjs.map} +1 -1
  23. package/fesm2022/drag-drop.mjs +40 -40
  24. package/fesm2022/{element-705567fe.mjs → element-08c51fcd.mjs} +1 -1
  25. package/fesm2022/element-08c51fcd.mjs.map +1 -0
  26. package/fesm2022/{focus-monitor-cebaa0d1.mjs → focus-monitor-69f9c0f9.mjs} +12 -12
  27. package/fesm2022/{focus-monitor-cebaa0d1.mjs.map → focus-monitor-69f9c0f9.mjs.map} +1 -1
  28. package/fesm2022/{id-generator-fba495fb.mjs → id-generator-ec45a122.mjs} +4 -4
  29. package/fesm2022/{id-generator-fba495fb.mjs.map → id-generator-ec45a122.mjs.map} +1 -1
  30. package/fesm2022/layout.mjs +7 -7
  31. package/fesm2022/listbox.mjs +14 -14
  32. package/fesm2022/menu.mjs +64 -62
  33. package/fesm2022/menu.mjs.map +1 -1
  34. package/fesm2022/{observe-content-d2a6b5a0.mjs → observe-content-459e1d12.mjs} +15 -15
  35. package/fesm2022/{observe-content-d2a6b5a0.mjs.map → observe-content-459e1d12.mjs.map} +1 -1
  36. package/fesm2022/observers/private.mjs +3 -3
  37. package/fesm2022/observers.mjs +2 -2
  38. package/fesm2022/{overlay-module-6fc4482b.mjs → overlay-module-6e7b742f.mjs} +44 -44
  39. package/fesm2022/{overlay-module-6fc4482b.mjs.map → overlay-module-6e7b742f.mjs.map} +1 -1
  40. package/fesm2022/overlay.mjs +15 -15
  41. package/fesm2022/{platform-1be098b0.mjs → platform-2be6a529.mjs} +4 -4
  42. package/fesm2022/{platform-1be098b0.mjs.map → platform-2be6a529.mjs.map} +1 -1
  43. package/fesm2022/platform.mjs +5 -5
  44. package/fesm2022/{portal-directives-9accd41a.mjs → portal-directives-9cd98881.mjs} +17 -17
  45. package/fesm2022/{portal-directives-9accd41a.mjs.map → portal-directives-9cd98881.mjs.map} +1 -1
  46. package/fesm2022/portal.mjs +1 -1
  47. package/fesm2022/private.mjs +2 -2
  48. package/fesm2022/{scrolling-module-57c5996b.mjs → scrolling-module-72941c9f.mjs} +40 -40
  49. package/fesm2022/{scrolling-module-57c5996b.mjs.map → scrolling-module-72941c9f.mjs.map} +1 -1
  50. package/fesm2022/scrolling.mjs +5 -5
  51. package/fesm2022/stepper.mjs +25 -25
  52. package/fesm2022/{style-loader-e14dc585.mjs → style-loader-9fc0a4d2.mjs} +4 -4
  53. package/fesm2022/{style-loader-e14dc585.mjs.map → style-loader-9fc0a4d2.mjs.map} +1 -1
  54. package/fesm2022/table.mjs +81 -81
  55. package/fesm2022/testing/selenium-webdriver.mjs.map +1 -1
  56. package/fesm2022/testing/testbed.mjs.map +1 -1
  57. package/fesm2022/text-field.mjs +19 -19
  58. package/fesm2022/tree.mjs +26 -26
  59. package/fesm2022/{unique-selection-dispatcher-1d6f91d8.mjs → unique-selection-dispatcher-d0d5176e.mjs} +4 -4
  60. package/fesm2022/{unique-selection-dispatcher-1d6f91d8.mjs.map → unique-selection-dispatcher-d0d5176e.mjs.map} +1 -1
  61. package/fesm2022/{visually-hidden-83aea4a0.mjs → visually-hidden-a6df546a.mjs} +4 -4
  62. package/fesm2022/{visually-hidden-83aea4a0.mjs.map → visually-hidden-a6df546a.mjs.map} +1 -1
  63. package/package.json +2 -4
  64. package/schematics/index.js +1 -1
  65. package/schematics/index.js.map +1 -0
  66. package/schematics/ng-add/index.js +2 -2
  67. package/schematics/ng-add/index.js.map +1 -0
  68. package/schematics/ng-add/package-config.js +1 -1
  69. package/schematics/ng-add/package-config.js.map +1 -0
  70. package/schematics/ng-add/schema.js +1 -1
  71. package/schematics/ng-add/schema.js.map +1 -0
  72. package/schematics/ng-generate/drag-drop/index.js +15 -6
  73. package/schematics/ng-generate/drag-drop/index.js.map +1 -0
  74. package/schematics/ng-generate/drag-drop/schema.js +1 -1
  75. package/schematics/ng-generate/drag-drop/schema.js.map +1 -0
  76. package/schematics/ng-update/data/attribute-selectors.js +1 -1
  77. package/schematics/ng-update/data/attribute-selectors.js.map +1 -0
  78. package/schematics/ng-update/data/class-names.js +1 -1
  79. package/schematics/ng-update/data/class-names.js.map +1 -0
  80. package/schematics/ng-update/data/constructor-checks.js +1 -1
  81. package/schematics/ng-update/data/constructor-checks.js.map +1 -0
  82. package/schematics/ng-update/data/css-selectors.js +1 -1
  83. package/schematics/ng-update/data/css-selectors.js.map +1 -0
  84. package/schematics/ng-update/data/css-tokens.js +1 -1
  85. package/schematics/ng-update/data/css-tokens.js.map +1 -0
  86. package/schematics/ng-update/data/element-selectors.js +1 -1
  87. package/schematics/ng-update/data/element-selectors.js.map +1 -0
  88. package/schematics/ng-update/data/index.js +1 -1
  89. package/schematics/ng-update/data/index.js.map +1 -0
  90. package/schematics/ng-update/data/input-names.js +1 -1
  91. package/schematics/ng-update/data/input-names.js.map +1 -0
  92. package/schematics/ng-update/data/method-call-checks.js +1 -1
  93. package/schematics/ng-update/data/method-call-checks.js.map +1 -0
  94. package/schematics/ng-update/data/output-names.js +1 -1
  95. package/schematics/ng-update/data/output-names.js.map +1 -0
  96. package/schematics/ng-update/data/property-names.js +1 -1
  97. package/schematics/ng-update/data/property-names.js.map +1 -0
  98. package/schematics/ng-update/data/symbol-removal.js +1 -1
  99. package/schematics/ng-update/data/symbol-removal.js.map +1 -0
  100. package/schematics/ng-update/devkit-file-system.js +2 -3
  101. package/schematics/ng-update/devkit-file-system.js.map +1 -0
  102. package/schematics/ng-update/devkit-migration-rule.js +13 -4
  103. package/schematics/ng-update/devkit-migration-rule.js.map +1 -0
  104. package/schematics/ng-update/devkit-migration.js +1 -1
  105. package/schematics/ng-update/devkit-migration.js.map +1 -0
  106. package/schematics/ng-update/find-stylesheets.js +1 -1
  107. package/schematics/ng-update/find-stylesheets.js.map +1 -0
  108. package/schematics/ng-update/html-parsing/angular.js +1 -1
  109. package/schematics/ng-update/html-parsing/angular.js.map +1 -0
  110. package/schematics/ng-update/html-parsing/elements.js +3 -2
  111. package/schematics/ng-update/html-parsing/elements.js.map +1 -0
  112. package/schematics/ng-update/index.js +1 -1
  113. package/schematics/ng-update/index.js.map +1 -0
  114. package/schematics/ng-update/migrations/attribute-selectors.js +8 -5
  115. package/schematics/ng-update/migrations/attribute-selectors.js.map +1 -0
  116. package/schematics/ng-update/migrations/class-inheritance.js +11 -8
  117. package/schematics/ng-update/migrations/class-inheritance.js.map +1 -0
  118. package/schematics/ng-update/migrations/class-names.js +15 -12
  119. package/schematics/ng-update/migrations/class-names.js.map +1 -0
  120. package/schematics/ng-update/migrations/constructor-signature.js +10 -7
  121. package/schematics/ng-update/migrations/constructor-signature.js.map +1 -0
  122. package/schematics/ng-update/migrations/css-selectors.js +8 -5
  123. package/schematics/ng-update/migrations/css-selectors.js.map +1 -0
  124. package/schematics/ng-update/migrations/css-tokens.js +8 -5
  125. package/schematics/ng-update/migrations/css-tokens.js.map +1 -0
  126. package/schematics/ng-update/migrations/element-selectors.js +8 -5
  127. package/schematics/ng-update/migrations/element-selectors.js.map +1 -0
  128. package/schematics/ng-update/migrations/input-names.js +8 -5
  129. package/schematics/ng-update/migrations/input-names.js.map +1 -0
  130. package/schematics/ng-update/migrations/method-call-arguments.js +8 -5
  131. package/schematics/ng-update/migrations/method-call-arguments.js.map +1 -0
  132. package/schematics/ng-update/migrations/misc-template.js +6 -3
  133. package/schematics/ng-update/migrations/misc-template.js.map +1 -0
  134. package/schematics/ng-update/migrations/output-names.js +8 -5
  135. package/schematics/ng-update/migrations/output-names.js.map +1 -0
  136. package/schematics/ng-update/migrations/property-names.js +8 -5
  137. package/schematics/ng-update/migrations/property-names.js.map +1 -0
  138. package/schematics/ng-update/migrations/symbol-removal.js +10 -6
  139. package/schematics/ng-update/migrations/symbol-removal.js.map +1 -0
  140. package/schematics/ng-update/public-api.js +1 -1
  141. package/schematics/ng-update/public-api.js.map +1 -0
  142. package/schematics/ng-update/typescript/base-types.js +1 -1
  143. package/schematics/ng-update/typescript/base-types.js.map +1 -0
  144. package/schematics/ng-update/typescript/imports.js +1 -1
  145. package/schematics/ng-update/typescript/imports.js.map +1 -0
  146. package/schematics/ng-update/typescript/literal.js +1 -1
  147. package/schematics/ng-update/typescript/literal.js.map +1 -0
  148. package/schematics/ng-update/typescript/module-specifiers.js +1 -1
  149. package/schematics/ng-update/typescript/module-specifiers.js.map +1 -0
  150. package/schematics/ng-update/upgrade-data.js +1 -1
  151. package/schematics/ng-update/upgrade-data.js.map +1 -0
  152. package/schematics/paths.js +1 -1
  153. package/schematics/paths.js.map +1 -0
  154. package/schematics/update-tool/component-resource-collector.js +3 -5
  155. package/schematics/update-tool/component-resource-collector.js.map +1 -0
  156. package/schematics/update-tool/file-system.js +1 -1
  157. package/schematics/update-tool/file-system.js.map +1 -0
  158. package/schematics/update-tool/index.js +2 -8
  159. package/schematics/update-tool/index.js.map +1 -0
  160. package/schematics/update-tool/logger.js +1 -1
  161. package/schematics/update-tool/logger.js.map +1 -0
  162. package/schematics/update-tool/migration.js +3 -10
  163. package/schematics/update-tool/migration.js.map +1 -0
  164. package/schematics/update-tool/public-api.js +1 -1
  165. package/schematics/update-tool/public-api.js.map +1 -0
  166. package/schematics/update-tool/target-version.js +1 -1
  167. package/schematics/update-tool/target-version.js.map +1 -0
  168. package/schematics/update-tool/update-recorder.js +1 -1
  169. package/schematics/update-tool/update-recorder.js.map +1 -0
  170. package/schematics/update-tool/utils/decorators.js +1 -1
  171. package/schematics/update-tool/utils/decorators.js.map +1 -0
  172. package/schematics/update-tool/utils/diagnostics.js +1 -1
  173. package/schematics/update-tool/utils/diagnostics.js.map +1 -0
  174. package/schematics/update-tool/utils/functions.js +1 -1
  175. package/schematics/update-tool/utils/functions.js.map +1 -0
  176. package/schematics/update-tool/utils/imports.js +1 -1
  177. package/schematics/update-tool/utils/imports.js.map +1 -0
  178. package/schematics/update-tool/utils/line-mappings.js +1 -1
  179. package/schematics/update-tool/utils/line-mappings.js.map +1 -0
  180. package/schematics/update-tool/utils/parse-tsconfig.js +1 -1
  181. package/schematics/update-tool/utils/parse-tsconfig.js.map +1 -0
  182. package/schematics/update-tool/utils/property-name.js +1 -1
  183. package/schematics/update-tool/utils/property-name.js.map +1 -0
  184. package/schematics/update-tool/utils/virtual-host.js +2 -3
  185. package/schematics/update-tool/utils/virtual-host.js.map +1 -0
  186. package/schematics/update-tool/version-changes.js +1 -1
  187. package/schematics/update-tool/version-changes.js.map +1 -0
  188. package/schematics/utils/ast/ng-module-imports.js +1 -1
  189. package/schematics/utils/ast/ng-module-imports.js.map +1 -0
  190. package/schematics/utils/ast.js +22 -11
  191. package/schematics/utils/ast.js.map +1 -0
  192. package/schematics/utils/build-component.js +16 -11
  193. package/schematics/utils/build-component.js.map +1 -0
  194. package/schematics/utils/get-project.js +1 -1
  195. package/schematics/utils/get-project.js.map +1 -0
  196. package/schematics/utils/html-manipulation.js +1 -1
  197. package/schematics/utils/html-manipulation.js.map +1 -0
  198. package/schematics/utils/index.js +1 -1
  199. package/schematics/utils/index.js.map +1 -0
  200. package/schematics/utils/parse5-element.js +1 -1
  201. package/schematics/utils/parse5-element.js.map +1 -0
  202. package/schematics/utils/project-index-file.js +2 -2
  203. package/schematics/utils/project-index-file.js.map +1 -0
  204. package/schematics/utils/project-main-file.js +1 -1
  205. package/schematics/utils/project-main-file.js.map +1 -0
  206. package/schematics/utils/project-style-file.js +1 -1
  207. package/schematics/utils/project-style-file.js.map +1 -0
  208. package/schematics/utils/project-targets.js +4 -3
  209. package/schematics/utils/project-targets.js.map +1 -0
  210. package/schematics/utils/project-tsconfig-paths.js +25 -13
  211. package/schematics/utils/project-tsconfig-paths.js.map +1 -0
  212. package/schematics/utils/schematic-options.js +26 -14
  213. package/schematics/utils/schematic-options.js.map +1 -0
  214. package/fesm2022/array-ee3b4bab.mjs.map +0 -1
  215. package/fesm2022/css-pixel-value-286c9a60.mjs.map +0 -1
  216. package/fesm2022/element-705567fe.mjs.map +0 -1
  217. package/schematics/index.mjs +0 -37
  218. package/schematics/ng-add/index.mjs +0 -39
  219. package/schematics/ng-add/package-config.mjs +0 -51
  220. package/schematics/ng-add/schema.mjs +0 -10
  221. package/schematics/ng-generate/drag-drop/index.mjs +0 -33
  222. package/schematics/ng-generate/drag-drop/schema.mjs +0 -10
  223. package/schematics/ng-update/data/attribute-selectors.mjs +0 -12
  224. package/schematics/ng-update/data/class-names.mjs +0 -12
  225. package/schematics/ng-update/data/constructor-checks.mjs +0 -17
  226. package/schematics/ng-update/data/css-selectors.mjs +0 -12
  227. package/schematics/ng-update/data/css-tokens.mjs +0 -12
  228. package/schematics/ng-update/data/element-selectors.mjs +0 -12
  229. package/schematics/ng-update/data/index.mjs +0 -35
  230. package/schematics/ng-update/data/input-names.mjs +0 -12
  231. package/schematics/ng-update/data/method-call-checks.mjs +0 -12
  232. package/schematics/ng-update/data/output-names.mjs +0 -12
  233. package/schematics/ng-update/data/property-names.mjs +0 -12
  234. package/schematics/ng-update/data/symbol-removal.mjs +0 -12
  235. package/schematics/ng-update/devkit-file-system.mjs +0 -84
  236. package/schematics/ng-update/devkit-migration-rule.mjs +0 -133
  237. package/schematics/ng-update/devkit-migration.mjs +0 -20
  238. package/schematics/ng-update/find-stylesheets.mjs +0 -41
  239. package/schematics/ng-update/html-parsing/angular.mjs +0 -51
  240. package/schematics/ng-update/html-parsing/elements.mjs +0 -62
  241. package/schematics/ng-update/index.mjs +0 -29
  242. package/schematics/ng-update/migrations/attribute-selectors.mjs +0 -68
  243. package/schematics/ng-update/migrations/class-inheritance.mjs +0 -55
  244. package/schematics/ng-update/migrations/class-names.mjs +0 -88
  245. package/schematics/ng-update/migrations/constructor-signature.mjs +0 -136
  246. package/schematics/ng-update/migrations/css-selectors.mjs +0 -72
  247. package/schematics/ng-update/migrations/css-tokens.mjs +0 -80
  248. package/schematics/ng-update/migrations/element-selectors.mjs +0 -63
  249. package/schematics/ng-update/migrations/input-names.mjs +0 -56
  250. package/schematics/ng-update/migrations/method-call-arguments.mjs +0 -59
  251. package/schematics/ng-update/migrations/misc-template.mjs +0 -22
  252. package/schematics/ng-update/migrations/output-names.mjs +0 -43
  253. package/schematics/ng-update/migrations/property-names.mjs +0 -57
  254. package/schematics/ng-update/migrations/symbol-removal.mjs +0 -43
  255. package/schematics/ng-update/public-api.mjs +0 -36
  256. package/schematics/ng-update/typescript/base-types.mjs +0 -23
  257. package/schematics/ng-update/typescript/imports.mjs +0 -53
  258. package/schematics/ng-update/typescript/literal.mjs +0 -32
  259. package/schematics/ng-update/typescript/module-specifiers.mjs +0 -35
  260. package/schematics/ng-update/upgrade-data.mjs +0 -40
  261. package/schematics/paths.mjs +0 -16
  262. package/schematics/schematics.externs.js +0 -0
  263. package/schematics/tsconfig.json +0 -29
  264. package/schematics/update-tool/component-resource-collector.mjs +0 -166
  265. package/schematics/update-tool/file-system.mjs +0 -18
  266. package/schematics/update-tool/index.mjs +0 -178
  267. package/schematics/update-tool/logger.mjs +0 -18
  268. package/schematics/update-tool/migration.mjs +0 -77
  269. package/schematics/update-tool/public-api.mjs +0 -33
  270. package/schematics/update-tool/target-version.mjs +0 -27
  271. package/schematics/update-tool/update-recorder.mjs +0 -10
  272. package/schematics/update-tool/update-tool.externs.js +0 -0
  273. package/schematics/update-tool/utils/decorators.mjs +0 -41
  274. package/schematics/update-tool/utils/diagnostics.mjs +0 -18
  275. package/schematics/update-tool/utils/functions.mjs +0 -20
  276. package/schematics/update-tool/utils/imports.mjs +0 -110
  277. package/schematics/update-tool/utils/line-mappings.mjs +0 -75
  278. package/schematics/update-tool/utils/parse-tsconfig.mjs +0 -45
  279. package/schematics/update-tool/utils/property-name.mjs +0 -27
  280. package/schematics/update-tool/utils/virtual-host.mjs +0 -72
  281. package/schematics/update-tool/version-changes.mjs +0 -38
  282. package/schematics/utils/ast/ng-module-imports.mjs +0 -82
  283. package/schematics/utils/ast.mjs +0 -68
  284. package/schematics/utils/build-component.mjs +0 -183
  285. package/schematics/utils/get-project.mjs +0 -28
  286. package/schematics/utils/html-manipulation.mjs +0 -91
  287. package/schematics/utils/index.mjs +0 -36
  288. package/schematics/utils/parse5-element.mjs +0 -30
  289. package/schematics/utils/project-index-file.mjs +0 -20
  290. package/schematics/utils/project-main-file.mjs +0 -25
  291. package/schematics/utils/project-style-file.mjs +0 -42
  292. package/schematics/utils/project-targets.mjs +0 -39
  293. package/schematics/utils/project-tsconfig-paths.mjs +0 -34
  294. package/schematics/utils/schematic-options.mjs +0 -77
@@ -1,91 +0,0 @@
1
- "use strict";
2
- /**
3
- * @license
4
- * Copyright Google LLC All Rights Reserved.
5
- *
6
- * Use of this source code is governed by an MIT-style license that can be
7
- * found in the LICENSE file at https://angular.dev/license
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.appendHtmlElementToHead = appendHtmlElementToHead;
11
- exports.getHtmlHeadTagElement = getHtmlHeadTagElement;
12
- exports.addBodyClass = addBodyClass;
13
- const schematics_1 = require("@angular-devkit/schematics");
14
- const parse5_element_1 = require("./parse5-element");
15
- const parse5_1 = require("parse5");
16
- /** Appends the given element HTML fragment to the `<head>` element of the specified HTML file. */
17
- function appendHtmlElementToHead(host, htmlFilePath, elementHtml) {
18
- const htmlFileBuffer = host.read(htmlFilePath);
19
- if (!htmlFileBuffer) {
20
- throw new schematics_1.SchematicsException(`Could not read file for path: ${htmlFilePath}`);
21
- }
22
- const htmlContent = htmlFileBuffer.toString();
23
- if (htmlContent.includes(elementHtml)) {
24
- return;
25
- }
26
- const headTag = getHtmlHeadTagElement(htmlContent);
27
- if (!headTag) {
28
- throw Error(`Could not find '<head>' element in HTML file: ${htmlFileBuffer}`);
29
- }
30
- // We always have access to the source code location here because the `getHeadTagElement`
31
- // function explicitly has the `sourceCodeLocationInfo` option enabled.
32
- const endTagOffset = headTag.sourceCodeLocation.endTag.startOffset;
33
- const indentationOffset = (0, parse5_element_1.getChildElementIndentation)(headTag);
34
- const insertion = `${' '.repeat(indentationOffset)}${elementHtml}`;
35
- const recordedChange = host.beginUpdate(htmlFilePath).insertRight(endTagOffset, `${insertion}\n`);
36
- host.commitUpdate(recordedChange);
37
- }
38
- /** Parses the given HTML file and returns the head element if available. */
39
- function getHtmlHeadTagElement(htmlContent) {
40
- return getElementByTagName('head', htmlContent);
41
- }
42
- /** Adds a class to the body of the document. */
43
- function addBodyClass(host, htmlFilePath, className) {
44
- const htmlFileBuffer = host.read(htmlFilePath);
45
- if (!htmlFileBuffer) {
46
- throw new schematics_1.SchematicsException(`Could not read file for path: ${htmlFilePath}`);
47
- }
48
- const htmlContent = htmlFileBuffer.toString();
49
- const body = getElementByTagName('body', htmlContent);
50
- if (!body) {
51
- throw Error(`Could not find <body> element in HTML file: ${htmlFileBuffer}`);
52
- }
53
- const classAttribute = body.attrs.find(attribute => attribute.name === 'class');
54
- if (classAttribute) {
55
- const hasClass = classAttribute.value
56
- .split(' ')
57
- .map(part => part.trim())
58
- .includes(className);
59
- if (!hasClass) {
60
- // We have source code location info enabled, and we pre-checked that the element
61
- // has attributes, specifically the `class` attribute.
62
- const classAttributeLocation = body.sourceCodeLocation.attrs['class'];
63
- const recordedChange = host
64
- .beginUpdate(htmlFilePath)
65
- .insertRight(classAttributeLocation.endOffset - 1, ` ${className}`);
66
- host.commitUpdate(recordedChange);
67
- }
68
- }
69
- else {
70
- const recordedChange = host
71
- .beginUpdate(htmlFilePath)
72
- .insertRight(body.sourceCodeLocation.startTag.endOffset - 1, ` class="${className}"`);
73
- host.commitUpdate(recordedChange);
74
- }
75
- }
76
- /** Finds an element by its tag name. */
77
- function getElementByTagName(tagName, htmlContent) {
78
- const document = (0, parse5_1.parse)(htmlContent, { sourceCodeLocationInfo: true });
79
- const nodeQueue = [...document.childNodes];
80
- while (nodeQueue.length) {
81
- const node = nodeQueue.shift();
82
- if (node.nodeName.toLowerCase() === tagName) {
83
- return node;
84
- }
85
- else if (node.childNodes) {
86
- nodeQueue.push(...node.childNodes);
87
- }
88
- }
89
- return null;
90
- }
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC1tYW5pcHVsYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvdXRpbHMvaHRtbC1tYW5pcHVsYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7QUFPSCwwREE0QkM7QUFHRCxzREFFQztBQUdELG9DQXFDQztBQTlFRCwyREFBcUU7QUFDckUscURBQXFFO0FBQ3JFLG1DQUEwQztBQUUxQyxrR0FBa0c7QUFDbEcsU0FBZ0IsdUJBQXVCLENBQUMsSUFBVSxFQUFFLFlBQW9CLEVBQUUsV0FBbUI7SUFDM0YsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUUvQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDcEIsTUFBTSxJQUFJLGdDQUFtQixDQUFDLGlDQUFpQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRCxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7SUFFOUMsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7UUFDdEMsT0FBTztJQUNULENBQUM7SUFFRCxNQUFNLE9BQU8sR0FBRyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUVuRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDYixNQUFNLEtBQUssQ0FBQyxpREFBaUQsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQseUZBQXlGO0lBQ3pGLHVFQUF1RTtJQUN2RSxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsa0JBQW1CLENBQUMsTUFBTyxDQUFDLFdBQVcsQ0FBQztJQUNyRSxNQUFNLGlCQUFpQixHQUFHLElBQUEsMkNBQTBCLEVBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUQsTUFBTSxTQUFTLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsV0FBVyxFQUFFLENBQUM7SUFFbkUsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLEdBQUcsU0FBUyxJQUFJLENBQUMsQ0FBQztJQUVsRyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFFRCw0RUFBNEU7QUFDNUUsU0FBZ0IscUJBQXFCLENBQUMsV0FBbUI7SUFDdkQsT0FBTyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUVELGdEQUFnRDtBQUNoRCxTQUFnQixZQUFZLENBQUMsSUFBVSxFQUFFLFlBQW9CLEVBQUUsU0FBaUI7SUFDOUUsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUUvQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDcEIsTUFBTSxJQUFJLGdDQUFtQixDQUFDLGlDQUFpQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRCxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUMsTUFBTSxJQUFJLEdBQUcsbUJBQW1CLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBRXRELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNWLE1BQU0sS0FBSyxDQUFDLCtDQUErQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLENBQUM7SUFFaEYsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUNuQixNQUFNLFFBQVEsR0FBRyxjQUFjLENBQUMsS0FBSzthQUNsQyxLQUFLLENBQUMsR0FBRyxDQUFDO2FBQ1YsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ3hCLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV2QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxpRkFBaUY7WUFDakYsc0RBQXNEO1lBQ3RELE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxDQUFDLGtCQUFtQixDQUFDLEtBQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN4RSxNQUFNLGNBQWMsR0FBRyxJQUFJO2lCQUN4QixXQUFXLENBQUMsWUFBWSxDQUFDO2lCQUN6QixXQUFXLENBQUMsc0JBQXNCLENBQUMsU0FBUyxHQUFHLENBQUMsRUFBRSxJQUFJLFNBQVMsRUFBRSxDQUFDLENBQUM7WUFDdEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNwQyxDQUFDO0lBQ0gsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLGNBQWMsR0FBRyxJQUFJO2FBQ3hCLFdBQVcsQ0FBQyxZQUFZLENBQUM7YUFDekIsV0FBVyxDQUFDLElBQUksQ0FBQyxrQkFBbUIsQ0FBQyxRQUFTLENBQUMsU0FBUyxHQUFHLENBQUMsRUFBRSxXQUFXLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDMUYsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNwQyxDQUFDO0FBQ0gsQ0FBQztBQUVELHdDQUF3QztBQUN4QyxTQUFTLG1CQUFtQixDQUFDLE9BQWUsRUFBRSxXQUFtQjtJQUMvRCxNQUFNLFFBQVEsR0FBRyxJQUFBLGNBQVMsRUFBQyxXQUFXLEVBQUUsRUFBQyxzQkFBc0IsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO0lBQ3hFLE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFM0MsT0FBTyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDeEIsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLEtBQUssRUFBYSxDQUFDO1FBRTFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUM1QyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMzQixTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge1NjaGVtYXRpY3NFeGNlcHRpb24sIFRyZWV9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzJztcbmltcG9ydCB7RWxlbWVudCwgZ2V0Q2hpbGRFbGVtZW50SW5kZW50YXRpb259IGZyb20gJy4vcGFyc2U1LWVsZW1lbnQnO1xuaW1wb3J0IHtwYXJzZSBhcyBwYXJzZUh0bWx9IGZyb20gJ3BhcnNlNSc7XG5cbi8qKiBBcHBlbmRzIHRoZSBnaXZlbiBlbGVtZW50IEhUTUwgZnJhZ21lbnQgdG8gdGhlIGA8aGVhZD5gIGVsZW1lbnQgb2YgdGhlIHNwZWNpZmllZCBIVE1MIGZpbGUuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwZW5kSHRtbEVsZW1lbnRUb0hlYWQoaG9zdDogVHJlZSwgaHRtbEZpbGVQYXRoOiBzdHJpbmcsIGVsZW1lbnRIdG1sOiBzdHJpbmcpIHtcbiAgY29uc3QgaHRtbEZpbGVCdWZmZXIgPSBob3N0LnJlYWQoaHRtbEZpbGVQYXRoKTtcblxuICBpZiAoIWh0bWxGaWxlQnVmZmVyKSB7XG4gICAgdGhyb3cgbmV3IFNjaGVtYXRpY3NFeGNlcHRpb24oYENvdWxkIG5vdCByZWFkIGZpbGUgZm9yIHBhdGg6ICR7aHRtbEZpbGVQYXRofWApO1xuICB9XG5cbiAgY29uc3QgaHRtbENvbnRlbnQgPSBodG1sRmlsZUJ1ZmZlci50b1N0cmluZygpO1xuXG4gIGlmIChodG1sQ29udGVudC5pbmNsdWRlcyhlbGVtZW50SHRtbCkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBoZWFkVGFnID0gZ2V0SHRtbEhlYWRUYWdFbGVtZW50KGh0bWxDb250ZW50KTtcblxuICBpZiAoIWhlYWRUYWcpIHtcbiAgICB0aHJvdyBFcnJvcihgQ291bGQgbm90IGZpbmQgJzxoZWFkPicgZWxlbWVudCBpbiBIVE1MIGZpbGU6ICR7aHRtbEZpbGVCdWZmZXJ9YCk7XG4gIH1cblxuICAvLyBXZSBhbHdheXMgaGF2ZSBhY2Nlc3MgdG8gdGhlIHNvdXJjZSBjb2RlIGxvY2F0aW9uIGhlcmUgYmVjYXVzZSB0aGUgYGdldEhlYWRUYWdFbGVtZW50YFxuICAvLyBmdW5jdGlvbiBleHBsaWNpdGx5IGhhcyB0aGUgYHNvdXJjZUNvZGVMb2NhdGlvbkluZm9gIG9wdGlvbiBlbmFibGVkLlxuICBjb25zdCBlbmRUYWdPZmZzZXQgPSBoZWFkVGFnLnNvdXJjZUNvZGVMb2NhdGlvbiEuZW5kVGFnIS5zdGFydE9mZnNldDtcbiAgY29uc3QgaW5kZW50YXRpb25PZmZzZXQgPSBnZXRDaGlsZEVsZW1lbnRJbmRlbnRhdGlvbihoZWFkVGFnKTtcbiAgY29uc3QgaW5zZXJ0aW9uID0gYCR7JyAnLnJlcGVhdChpbmRlbnRhdGlvbk9mZnNldCl9JHtlbGVtZW50SHRtbH1gO1xuXG4gIGNvbnN0IHJlY29yZGVkQ2hhbmdlID0gaG9zdC5iZWdpblVwZGF0ZShodG1sRmlsZVBhdGgpLmluc2VydFJpZ2h0KGVuZFRhZ09mZnNldCwgYCR7aW5zZXJ0aW9ufVxcbmApO1xuXG4gIGhvc3QuY29tbWl0VXBkYXRlKHJlY29yZGVkQ2hhbmdlKTtcbn1cblxuLyoqIFBhcnNlcyB0aGUgZ2l2ZW4gSFRNTCBmaWxlIGFuZCByZXR1cm5zIHRoZSBoZWFkIGVsZW1lbnQgaWYgYXZhaWxhYmxlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEh0bWxIZWFkVGFnRWxlbWVudChodG1sQ29udGVudDogc3RyaW5nKTogRWxlbWVudCB8IG51bGwge1xuICByZXR1cm4gZ2V0RWxlbWVudEJ5VGFnTmFtZSgnaGVhZCcsIGh0bWxDb250ZW50KTtcbn1cblxuLyoqIEFkZHMgYSBjbGFzcyB0byB0aGUgYm9keSBvZiB0aGUgZG9jdW1lbnQuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkQm9keUNsYXNzKGhvc3Q6IFRyZWUsIGh0bWxGaWxlUGF0aDogc3RyaW5nLCBjbGFzc05hbWU6IHN0cmluZyk6IHZvaWQge1xuICBjb25zdCBodG1sRmlsZUJ1ZmZlciA9IGhvc3QucmVhZChodG1sRmlsZVBhdGgpO1xuXG4gIGlmICghaHRtbEZpbGVCdWZmZXIpIHtcbiAgICB0aHJvdyBuZXcgU2NoZW1hdGljc0V4Y2VwdGlvbihgQ291bGQgbm90IHJlYWQgZmlsZSBmb3IgcGF0aDogJHtodG1sRmlsZVBhdGh9YCk7XG4gIH1cblxuICBjb25zdCBodG1sQ29udGVudCA9IGh0bWxGaWxlQnVmZmVyLnRvU3RyaW5nKCk7XG4gIGNvbnN0IGJvZHkgPSBnZXRFbGVtZW50QnlUYWdOYW1lKCdib2R5JywgaHRtbENvbnRlbnQpO1xuXG4gIGlmICghYm9keSkge1xuICAgIHRocm93IEVycm9yKGBDb3VsZCBub3QgZmluZCA8Ym9keT4gZWxlbWVudCBpbiBIVE1MIGZpbGU6ICR7aHRtbEZpbGVCdWZmZXJ9YCk7XG4gIH1cblxuICBjb25zdCBjbGFzc0F0dHJpYnV0ZSA9IGJvZHkuYXR0cnMuZmluZChhdHRyaWJ1dGUgPT4gYXR0cmlidXRlLm5hbWUgPT09ICdjbGFzcycpO1xuXG4gIGlmIChjbGFzc0F0dHJpYnV0ZSkge1xuICAgIGNvbnN0IGhhc0NsYXNzID0gY2xhc3NBdHRyaWJ1dGUudmFsdWVcbiAgICAgIC5zcGxpdCgnICcpXG4gICAgICAubWFwKHBhcnQgPT4gcGFydC50cmltKCkpXG4gICAgICAuaW5jbHVkZXMoY2xhc3NOYW1lKTtcblxuICAgIGlmICghaGFzQ2xhc3MpIHtcbiAgICAgIC8vIFdlIGhhdmUgc291cmNlIGNvZGUgbG9jYXRpb24gaW5mbyBlbmFibGVkLCBhbmQgd2UgcHJlLWNoZWNrZWQgdGhhdCB0aGUgZWxlbWVudFxuICAgICAgLy8gaGFzIGF0dHJpYnV0ZXMsIHNwZWNpZmljYWxseSB0aGUgYGNsYXNzYCBhdHRyaWJ1dGUuXG4gICAgICBjb25zdCBjbGFzc0F0dHJpYnV0ZUxvY2F0aW9uID0gYm9keS5zb3VyY2VDb2RlTG9jYXRpb24hLmF0dHJzIVsnY2xhc3MnXTtcbiAgICAgIGNvbnN0IHJlY29yZGVkQ2hhbmdlID0gaG9zdFxuICAgICAgICAuYmVnaW5VcGRhdGUoaHRtbEZpbGVQYXRoKVxuICAgICAgICAuaW5zZXJ0UmlnaHQoY2xhc3NBdHRyaWJ1dGVMb2NhdGlvbi5lbmRPZmZzZXQgLSAxLCBgICR7Y2xhc3NOYW1lfWApO1xuICAgICAgaG9zdC5jb21taXRVcGRhdGUocmVjb3JkZWRDaGFuZ2UpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjb25zdCByZWNvcmRlZENoYW5nZSA9IGhvc3RcbiAgICAgIC5iZWdpblVwZGF0ZShodG1sRmlsZVBhdGgpXG4gICAgICAuaW5zZXJ0UmlnaHQoYm9keS5zb3VyY2VDb2RlTG9jYXRpb24hLnN0YXJ0VGFnIS5lbmRPZmZzZXQgLSAxLCBgIGNsYXNzPVwiJHtjbGFzc05hbWV9XCJgKTtcbiAgICBob3N0LmNvbW1pdFVwZGF0ZShyZWNvcmRlZENoYW5nZSk7XG4gIH1cbn1cblxuLyoqIEZpbmRzIGFuIGVsZW1lbnQgYnkgaXRzIHRhZyBuYW1lLiAqL1xuZnVuY3Rpb24gZ2V0RWxlbWVudEJ5VGFnTmFtZSh0YWdOYW1lOiBzdHJpbmcsIGh0bWxDb250ZW50OiBzdHJpbmcpOiBFbGVtZW50IHwgbnVsbCB7XG4gIGNvbnN0IGRvY3VtZW50ID0gcGFyc2VIdG1sKGh0bWxDb250ZW50LCB7c291cmNlQ29kZUxvY2F0aW9uSW5mbzogdHJ1ZX0pO1xuICBjb25zdCBub2RlUXVldWUgPSBbLi4uZG9jdW1lbnQuY2hpbGROb2Rlc107XG5cbiAgd2hpbGUgKG5vZGVRdWV1ZS5sZW5ndGgpIHtcbiAgICBjb25zdCBub2RlID0gbm9kZVF1ZXVlLnNoaWZ0KCkgYXMgRWxlbWVudDtcblxuICAgIGlmIChub2RlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09IHRhZ05hbWUpIHtcbiAgICAgIHJldHVybiBub2RlO1xuICAgIH0gZWxzZSBpZiAobm9kZS5jaGlsZE5vZGVzKSB7XG4gICAgICBub2RlUXVldWUucHVzaCguLi5ub2RlLmNoaWxkTm9kZXMpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuIl19
@@ -1,36 +0,0 @@
1
- "use strict";
2
- /**
3
- * @license
4
- * Copyright Google LLC All Rights Reserved.
5
- *
6
- * Use of this source code is governed by an MIT-style license that can be
7
- * found in the LICENSE file at https://angular.dev/license
8
- */
9
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- var desc = Object.getOwnPropertyDescriptor(m, k);
12
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
- desc = { enumerable: true, get: function() { return m[k]; } };
14
- }
15
- Object.defineProperty(o, k2, desc);
16
- }) : (function(o, m, k, k2) {
17
- if (k2 === undefined) k2 = k;
18
- o[k2] = m[k];
19
- }));
20
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
21
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
22
- };
23
- Object.defineProperty(exports, "__esModule", { value: true });
24
- __exportStar(require("./ast"), exports);
25
- __exportStar(require("./ast/ng-module-imports"), exports);
26
- __exportStar(require("./build-component"), exports);
27
- __exportStar(require("./get-project"), exports);
28
- __exportStar(require("./html-manipulation"), exports);
29
- __exportStar(require("./parse5-element"), exports);
30
- __exportStar(require("./project-index-file"), exports);
31
- __exportStar(require("./project-main-file"), exports);
32
- __exportStar(require("./project-style-file"), exports);
33
- __exportStar(require("./project-targets"), exports);
34
- __exportStar(require("./project-tsconfig-paths"), exports);
35
- __exportStar(require("./schematic-options"), exports);
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7Ozs7OztBQUVILHdDQUFzQjtBQUN0QiwwREFBd0M7QUFDeEMsb0RBQWtDO0FBQ2xDLGdEQUE4QjtBQUM5QixzREFBb0M7QUFDcEMsbURBQWlDO0FBQ2pDLHVEQUFxQztBQUNyQyxzREFBb0M7QUFDcEMsdURBQXFDO0FBQ3JDLG9EQUFrQztBQUNsQywyREFBeUM7QUFDekMsc0RBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2VcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2FzdCc7XG5leHBvcnQgKiBmcm9tICcuL2FzdC9uZy1tb2R1bGUtaW1wb3J0cyc7XG5leHBvcnQgKiBmcm9tICcuL2J1aWxkLWNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2dldC1wcm9qZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vaHRtbC1tYW5pcHVsYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9wYXJzZTUtZWxlbWVudCc7XG5leHBvcnQgKiBmcm9tICcuL3Byb2plY3QtaW5kZXgtZmlsZSc7XG5leHBvcnQgKiBmcm9tICcuL3Byb2plY3QtbWFpbi1maWxlJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvamVjdC1zdHlsZS1maWxlJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvamVjdC10YXJnZXRzJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvamVjdC10c2NvbmZpZy1wYXRocyc7XG5leHBvcnQgKiBmcm9tICcuL3NjaGVtYXRpYy1vcHRpb25zJztcbiJdfQ==
@@ -1,30 +0,0 @@
1
- "use strict";
2
- /**
3
- * @license
4
- * Copyright Google LLC All Rights Reserved.
5
- *
6
- * Use of this source code is governed by an MIT-style license that can be
7
- * found in the LICENSE file at https://angular.dev/license
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.getChildElementIndentation = getChildElementIndentation;
11
- const schematics_1 = require("@angular-devkit/schematics");
12
- /** Determines the indentation of child elements for the given Parse5 element. */
13
- function getChildElementIndentation(element) {
14
- const childElement = element.childNodes.find(node => node.tagName);
15
- if ((childElement && !childElement.sourceCodeLocation) || !element.sourceCodeLocation) {
16
- throw new schematics_1.SchematicsException('Cannot determine child element indentation because the ' +
17
- 'specified Parse5 element does not have any source code location metadata.');
18
- }
19
- const startColumns = childElement
20
- ? // In case there are child elements inside of the element, we assume that their
21
- // indentation is also applicable for other child elements.
22
- childElement.sourceCodeLocation.startCol
23
- : // In case there is no child element, we just assume that child elements should be indented
24
- // by two spaces.
25
- element.sourceCodeLocation.startCol + 2;
26
- // Since Parse5 does not set the `startCol` properties as zero-based, we need to subtract
27
- // one column in order to have a proper zero-based offset for the indentation.
28
- return startColumns - 1;
29
- }
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2U1LWVsZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvdXRpbHMvcGFyc2U1LWVsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7QUFXSCxnRUFxQkM7QUE5QkQsMkRBQStEO0FBUS9ELGlGQUFpRjtBQUNqRixTQUFnQiwwQkFBMEIsQ0FBQyxPQUFnQjtJQUN6RCxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFFLElBQWdCLENBQUMsT0FBTyxDQUFtQixDQUFDO0lBRWxHLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ3RGLE1BQU0sSUFBSSxnQ0FBbUIsQ0FDM0IseURBQXlEO1lBQ3ZELDJFQUEyRSxDQUM5RSxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sWUFBWSxHQUFHLFlBQVk7UUFDL0IsQ0FBQyxDQUFDLCtFQUErRTtZQUMvRSwyREFBMkQ7WUFDM0QsWUFBWSxDQUFDLGtCQUFtQixDQUFDLFFBQVE7UUFDM0MsQ0FBQyxDQUFDLDJGQUEyRjtZQUMzRixpQkFBaUI7WUFDakIsT0FBTyxDQUFDLGtCQUFtQixDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7SUFFN0MseUZBQXlGO0lBQ3pGLDhFQUE4RTtJQUM5RSxPQUFPLFlBQVksR0FBRyxDQUFDLENBQUM7QUFDMUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtTY2hlbWF0aWNzRXhjZXB0aW9ufSBmcm9tICdAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcyc7XG5pbXBvcnQge0RlZmF1bHRUcmVlQWRhcHRlck1hcH0gZnJvbSAncGFyc2U1JztcblxuLy8gQXQgdGhlIHRpbWUgb2Ygd3JpdGluZyBgcGFyc2U1YCBkb2Vzbid0IGV4cG9zZSB0aGUgbm9kZSBpbnRlcmZhY2VzIGRpcmVjdGx5LCBldmVuIHRob3VnaFxuLy8gdGhleSdyZSB1c2VkIGFzIHJldHVybiB0eXBlcywgYnV0IFdlIGNhbiBzdGlsbCBhY2Nlc3MgdGhlbSB0aHJvdWdoIGBEZWZhdWx0VHJlZUFkYXB0ZXJNYXBgLlxuZXhwb3J0IHR5cGUgRWxlbWVudCA9IERlZmF1bHRUcmVlQWRhcHRlck1hcFsnZWxlbWVudCddO1xuZXhwb3J0IHR5cGUgQ2hpbGROb2RlID0gRGVmYXVsdFRyZWVBZGFwdGVyTWFwWydjaGlsZE5vZGUnXTtcblxuLyoqIERldGVybWluZXMgdGhlIGluZGVudGF0aW9uIG9mIGNoaWxkIGVsZW1lbnRzIGZvciB0aGUgZ2l2ZW4gUGFyc2U1IGVsZW1lbnQuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2hpbGRFbGVtZW50SW5kZW50YXRpb24oZWxlbWVudDogRWxlbWVudCkge1xuICBjb25zdCBjaGlsZEVsZW1lbnQgPSBlbGVtZW50LmNoaWxkTm9kZXMuZmluZChub2RlID0+IChub2RlIGFzIEVsZW1lbnQpLnRhZ05hbWUpIGFzIEVsZW1lbnQgfCBudWxsO1xuXG4gIGlmICgoY2hpbGRFbGVtZW50ICYmICFjaGlsZEVsZW1lbnQuc291cmNlQ29kZUxvY2F0aW9uKSB8fCAhZWxlbWVudC5zb3VyY2VDb2RlTG9jYXRpb24pIHtcbiAgICB0aHJvdyBuZXcgU2NoZW1hdGljc0V4Y2VwdGlvbihcbiAgICAgICdDYW5ub3QgZGV0ZXJtaW5lIGNoaWxkIGVsZW1lbnQgaW5kZW50YXRpb24gYmVjYXVzZSB0aGUgJyArXG4gICAgICAgICdzcGVjaWZpZWQgUGFyc2U1IGVsZW1lbnQgZG9lcyBub3QgaGF2ZSBhbnkgc291cmNlIGNvZGUgbG9jYXRpb24gbWV0YWRhdGEuJyxcbiAgICApO1xuICB9XG5cbiAgY29uc3Qgc3RhcnRDb2x1bW5zID0gY2hpbGRFbGVtZW50XG4gICAgPyAvLyBJbiBjYXNlIHRoZXJlIGFyZSBjaGlsZCBlbGVtZW50cyBpbnNpZGUgb2YgdGhlIGVsZW1lbnQsIHdlIGFzc3VtZSB0aGF0IHRoZWlyXG4gICAgICAvLyBpbmRlbnRhdGlvbiBpcyBhbHNvIGFwcGxpY2FibGUgZm9yIG90aGVyIGNoaWxkIGVsZW1lbnRzLlxuICAgICAgY2hpbGRFbGVtZW50LnNvdXJjZUNvZGVMb2NhdGlvbiEuc3RhcnRDb2xcbiAgICA6IC8vIEluIGNhc2UgdGhlcmUgaXMgbm8gY2hpbGQgZWxlbWVudCwgd2UganVzdCBhc3N1bWUgdGhhdCBjaGlsZCBlbGVtZW50cyBzaG91bGQgYmUgaW5kZW50ZWRcbiAgICAgIC8vIGJ5IHR3byBzcGFjZXMuXG4gICAgICBlbGVtZW50LnNvdXJjZUNvZGVMb2NhdGlvbiEuc3RhcnRDb2wgKyAyO1xuXG4gIC8vIFNpbmNlIFBhcnNlNSBkb2VzIG5vdCBzZXQgdGhlIGBzdGFydENvbGAgcHJvcGVydGllcyBhcyB6ZXJvLWJhc2VkLCB3ZSBuZWVkIHRvIHN1YnRyYWN0XG4gIC8vIG9uZSBjb2x1bW4gaW4gb3JkZXIgdG8gaGF2ZSBhIHByb3BlciB6ZXJvLWJhc2VkIG9mZnNldCBmb3IgdGhlIGluZGVudGF0aW9uLlxuICByZXR1cm4gc3RhcnRDb2x1bW5zIC0gMTtcbn1cbiJdfQ==
@@ -1,20 +0,0 @@
1
- "use strict";
2
- /**
3
- * @license
4
- * Copyright Google LLC All Rights Reserved.
5
- *
6
- * Use of this source code is governed by an MIT-style license that can be
7
- * found in the LICENSE file at https://angular.dev/license
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.getProjectIndexFiles = getProjectIndexFiles;
11
- const project_targets_1 = require("./project-targets");
12
- /** Gets the path of the index file in the given project. */
13
- function getProjectIndexFiles(project) {
14
- const paths = (0, project_targets_1.getProjectBuildTargets)(project)
15
- .filter(t => t.options?.['index'])
16
- .map(t => t.options['index']);
17
- // Use a set to remove duplicate index files referenced in multiple build targets of a project.
18
- return Array.from(new Set(paths));
19
- }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC1pbmRleC1maWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay9zY2hlbWF0aWNzL3V0aWxzL3Byb2plY3QtaW5kZXgtZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOztBQU1ILG9EQU9DO0FBVkQsdURBQXlEO0FBRXpELDREQUE0RDtBQUM1RCxTQUFnQixvQkFBb0IsQ0FBQyxPQUFxQztJQUN4RSxNQUFNLEtBQUssR0FBRyxJQUFBLHdDQUFzQixFQUFDLE9BQU8sQ0FBQztTQUMxQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDakMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQVEsQ0FBQyxPQUFPLENBQVMsQ0FBQyxDQUFDO0lBRXpDLCtGQUErRjtJQUMvRixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge1BhdGgsIHdvcmtzcGFjZXN9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9jb3JlJztcbmltcG9ydCB7Z2V0UHJvamVjdEJ1aWxkVGFyZ2V0c30gZnJvbSAnLi9wcm9qZWN0LXRhcmdldHMnO1xuXG4vKiogR2V0cyB0aGUgcGF0aCBvZiB0aGUgaW5kZXggZmlsZSBpbiB0aGUgZ2l2ZW4gcHJvamVjdC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQcm9qZWN0SW5kZXhGaWxlcyhwcm9qZWN0OiB3b3Jrc3BhY2VzLlByb2plY3REZWZpbml0aW9uKTogUGF0aFtdIHtcbiAgY29uc3QgcGF0aHMgPSBnZXRQcm9qZWN0QnVpbGRUYXJnZXRzKHByb2plY3QpXG4gICAgLmZpbHRlcih0ID0+IHQub3B0aW9ucz8uWydpbmRleCddKVxuICAgIC5tYXAodCA9PiB0Lm9wdGlvbnMhWydpbmRleCddIGFzIFBhdGgpO1xuXG4gIC8vIFVzZSBhIHNldCB0byByZW1vdmUgZHVwbGljYXRlIGluZGV4IGZpbGVzIHJlZmVyZW5jZWQgaW4gbXVsdGlwbGUgYnVpbGQgdGFyZ2V0cyBvZiBhIHByb2plY3QuXG4gIHJldHVybiBBcnJheS5mcm9tKG5ldyBTZXQocGF0aHMpKTtcbn1cbiJdfQ==
@@ -1,25 +0,0 @@
1
- "use strict";
2
- /**
3
- * @license
4
- * Copyright Google LLC All Rights Reserved.
5
- *
6
- * Use of this source code is governed by an MIT-style license that can be
7
- * found in the LICENSE file at https://angular.dev/license
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.getProjectMainFile = getProjectMainFile;
11
- const schematics_1 = require("@angular-devkit/schematics");
12
- const project_targets_1 = require("./project-targets");
13
- /** Looks for the main TypeScript file in the given project and returns its path. */
14
- function getProjectMainFile(project) {
15
- const buildOptions = (0, project_targets_1.getProjectTargetOptions)(project, 'build');
16
- // `browser` is for the `@angular-devkit/build-angular:application` builder while
17
- // `main` is for the `@angular-devkit/build-angular:browser` builder.
18
- const mainPath = (buildOptions['browser'] || buildOptions['main']);
19
- if (!mainPath) {
20
- throw new schematics_1.SchematicsException(`Could not find the project main file inside of the ` +
21
- `workspace config (${project.sourceRoot})`);
22
- }
23
- return mainPath;
24
- }
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC1tYWluLWZpbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvdXRpbHMvcHJvamVjdC1tYWluLWZpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7QUFPSCxnREFlQztBQW5CRCwyREFBK0Q7QUFDL0QsdURBQTBEO0FBRTFELG9GQUFvRjtBQUNwRixTQUFnQixrQkFBa0IsQ0FBQyxPQUFxQztJQUN0RSxNQUFNLFlBQVksR0FBRyxJQUFBLHlDQUF1QixFQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUUvRCxpRkFBaUY7SUFDakYscUVBQXFFO0lBQ3JFLE1BQU0sUUFBUSxHQUFHLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBcUIsQ0FBQztJQUV2RixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDZCxNQUFNLElBQUksZ0NBQW1CLENBQzNCLHFEQUFxRDtZQUNuRCxxQkFBcUIsT0FBTyxDQUFDLFVBQVUsR0FBRyxDQUM3QyxDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZVxuICovXG5cbmltcG9ydCB7UGF0aCwgd29ya3NwYWNlc30gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2NvcmUnO1xuaW1wb3J0IHtTY2hlbWF0aWNzRXhjZXB0aW9ufSBmcm9tICdAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcyc7XG5pbXBvcnQge2dldFByb2plY3RUYXJnZXRPcHRpb25zfSBmcm9tICcuL3Byb2plY3QtdGFyZ2V0cyc7XG5cbi8qKiBMb29rcyBmb3IgdGhlIG1haW4gVHlwZVNjcmlwdCBmaWxlIGluIHRoZSBnaXZlbiBwcm9qZWN0IGFuZCByZXR1cm5zIGl0cyBwYXRoLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFByb2plY3RNYWluRmlsZShwcm9qZWN0OiB3b3Jrc3BhY2VzLlByb2plY3REZWZpbml0aW9uKTogUGF0aCB7XG4gIGNvbnN0IGJ1aWxkT3B0aW9ucyA9IGdldFByb2plY3RUYXJnZXRPcHRpb25zKHByb2plY3QsICdidWlsZCcpO1xuXG4gIC8vIGBicm93c2VyYCBpcyBmb3IgdGhlIGBAYW5ndWxhci1kZXZraXQvYnVpbGQtYW5ndWxhcjphcHBsaWNhdGlvbmAgYnVpbGRlciB3aGlsZVxuICAvLyBgbWFpbmAgaXMgZm9yIHRoZSBgQGFuZ3VsYXItZGV2a2l0L2J1aWxkLWFuZ3VsYXI6YnJvd3NlcmAgYnVpbGRlci5cbiAgY29uc3QgbWFpblBhdGggPSAoYnVpbGRPcHRpb25zWydicm93c2VyJ10gfHwgYnVpbGRPcHRpb25zWydtYWluJ10pIGFzIFBhdGggfCB1bmRlZmluZWQ7XG5cbiAgaWYgKCFtYWluUGF0aCkge1xuICAgIHRocm93IG5ldyBTY2hlbWF0aWNzRXhjZXB0aW9uKFxuICAgICAgYENvdWxkIG5vdCBmaW5kIHRoZSBwcm9qZWN0IG1haW4gZmlsZSBpbnNpZGUgb2YgdGhlIGAgK1xuICAgICAgICBgd29ya3NwYWNlIGNvbmZpZyAoJHtwcm9qZWN0LnNvdXJjZVJvb3R9KWAsXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBtYWluUGF0aDtcbn1cbiJdfQ==
@@ -1,42 +0,0 @@
1
- "use strict";
2
- /**
3
- * @license
4
- * Copyright Google LLC All Rights Reserved.
5
- *
6
- * Use of this source code is governed by an MIT-style license that can be
7
- * found in the LICENSE file at https://angular.dev/license
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.getProjectStyleFile = getProjectStyleFile;
11
- const core_1 = require("@angular-devkit/core");
12
- const project_targets_1 = require("./project-targets");
13
- /** Regular expression that matches all possible Angular CLI default style files. */
14
- const defaultStyleFileRegex = /styles\.(c|le|sc)ss/;
15
- /** Regular expression that matches all files that have a proper stylesheet extension. */
16
- const validStyleFileRegex = /\.(c|le|sc)ss/;
17
- /**
18
- * Gets a style file with the given extension in a project and returns its path. If no
19
- * extension is specified, any style file with a valid extension will be returned.
20
- */
21
- function getProjectStyleFile(project, extension) {
22
- const buildOptions = (0, project_targets_1.getProjectTargetOptions)(project, 'build');
23
- const buildStyles = buildOptions['styles'];
24
- if (buildStyles && (0, core_1.isJsonArray)(buildStyles) && buildStyles.length) {
25
- const styles = buildStyles.map(s => (typeof s === 'string' ? s : s.input));
26
- // Look for the default style file that is generated for new projects by the Angular CLI. This
27
- // default style file is usually called `styles.ext` unless it has been changed explicitly.
28
- const defaultMainStylePath = styles.find(file => extension ? file === `styles.${extension}` : defaultStyleFileRegex.test(file));
29
- if (defaultMainStylePath) {
30
- return (0, core_1.normalize)(defaultMainStylePath);
31
- }
32
- // If no default style file could be found, use the first style file that matches the given
33
- // extension. If no extension specified explicitly, we look for any file with a valid style
34
- // file extension.
35
- const fallbackStylePath = styles.find(file => extension ? file.endsWith(`.${extension}`) : validStyleFileRegex.test(file));
36
- if (fallbackStylePath) {
37
- return (0, core_1.normalize)(fallbackStylePath);
38
- }
39
- }
40
- return null;
41
- }
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC1zdHlsZS1maWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay9zY2hlbWF0aWNzL3V0aWxzL3Byb2plY3Qtc3R5bGUtZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOztBQWVILGtEQWlDQztBQTlDRCwrQ0FBd0U7QUFDeEUsdURBQTBEO0FBRTFELG9GQUFvRjtBQUNwRixNQUFNLHFCQUFxQixHQUFHLHFCQUFxQixDQUFDO0FBRXBELHlGQUF5RjtBQUN6RixNQUFNLG1CQUFtQixHQUFHLGVBQWUsQ0FBQztBQUU1Qzs7O0dBR0c7QUFDSCxTQUFnQixtQkFBbUIsQ0FDakMsT0FBcUMsRUFDckMsU0FBa0I7SUFFbEIsTUFBTSxZQUFZLEdBQUcsSUFBQSx5Q0FBdUIsRUFBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDL0QsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRTNDLElBQUksV0FBVyxJQUFJLElBQUEsa0JBQVcsRUFBQyxXQUFXLENBQUMsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbEUsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFFLENBQXFCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUVoRyw4RkFBOEY7UUFDOUYsMkZBQTJGO1FBQzNGLE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUM5QyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxVQUFVLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQzlFLENBQUM7UUFFRixJQUFJLG9CQUFvQixFQUFFLENBQUM7WUFDekIsT0FBTyxJQUFBLGdCQUFTLEVBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBRUQsMkZBQTJGO1FBQzNGLDJGQUEyRjtRQUMzRixrQkFBa0I7UUFDbEIsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQzNDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FDNUUsQ0FBQztRQUVGLElBQUksaUJBQWlCLEVBQUUsQ0FBQztZQUN0QixPQUFPLElBQUEsZ0JBQVMsRUFBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge2lzSnNvbkFycmF5LCBub3JtYWxpemUsIHdvcmtzcGFjZXN9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9jb3JlJztcbmltcG9ydCB7Z2V0UHJvamVjdFRhcmdldE9wdGlvbnN9IGZyb20gJy4vcHJvamVjdC10YXJnZXRzJztcblxuLyoqIFJlZ3VsYXIgZXhwcmVzc2lvbiB0aGF0IG1hdGNoZXMgYWxsIHBvc3NpYmxlIEFuZ3VsYXIgQ0xJIGRlZmF1bHQgc3R5bGUgZmlsZXMuICovXG5jb25zdCBkZWZhdWx0U3R5bGVGaWxlUmVnZXggPSAvc3R5bGVzXFwuKGN8bGV8c2Mpc3MvO1xuXG4vKiogUmVndWxhciBleHByZXNzaW9uIHRoYXQgbWF0Y2hlcyBhbGwgZmlsZXMgdGhhdCBoYXZlIGEgcHJvcGVyIHN0eWxlc2hlZXQgZXh0ZW5zaW9uLiAqL1xuY29uc3QgdmFsaWRTdHlsZUZpbGVSZWdleCA9IC9cXC4oY3xsZXxzYylzcy87XG5cbi8qKlxuICogR2V0cyBhIHN0eWxlIGZpbGUgd2l0aCB0aGUgZ2l2ZW4gZXh0ZW5zaW9uIGluIGEgcHJvamVjdCBhbmQgcmV0dXJucyBpdHMgcGF0aC4gSWYgbm9cbiAqIGV4dGVuc2lvbiBpcyBzcGVjaWZpZWQsIGFueSBzdHlsZSBmaWxlIHdpdGggYSB2YWxpZCBleHRlbnNpb24gd2lsbCBiZSByZXR1cm5lZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFByb2plY3RTdHlsZUZpbGUoXG4gIHByb2plY3Q6IHdvcmtzcGFjZXMuUHJvamVjdERlZmluaXRpb24sXG4gIGV4dGVuc2lvbj86IHN0cmluZyxcbik6IHN0cmluZyB8IG51bGwge1xuICBjb25zdCBidWlsZE9wdGlvbnMgPSBnZXRQcm9qZWN0VGFyZ2V0T3B0aW9ucyhwcm9qZWN0LCAnYnVpbGQnKTtcbiAgY29uc3QgYnVpbGRTdHlsZXMgPSBidWlsZE9wdGlvbnNbJ3N0eWxlcyddO1xuXG4gIGlmIChidWlsZFN0eWxlcyAmJiBpc0pzb25BcnJheShidWlsZFN0eWxlcykgJiYgYnVpbGRTdHlsZXMubGVuZ3RoKSB7XG4gICAgY29uc3Qgc3R5bGVzID0gYnVpbGRTdHlsZXMubWFwKHMgPT4gKHR5cGVvZiBzID09PSAnc3RyaW5nJyA/IHMgOiAocyBhcyB7aW5wdXQ6IHN0cmluZ30pLmlucHV0KSk7XG5cbiAgICAvLyBMb29rIGZvciB0aGUgZGVmYXVsdCBzdHlsZSBmaWxlIHRoYXQgaXMgZ2VuZXJhdGVkIGZvciBuZXcgcHJvamVjdHMgYnkgdGhlIEFuZ3VsYXIgQ0xJLiBUaGlzXG4gICAgLy8gZGVmYXVsdCBzdHlsZSBmaWxlIGlzIHVzdWFsbHkgY2FsbGVkIGBzdHlsZXMuZXh0YCB1bmxlc3MgaXQgaGFzIGJlZW4gY2hhbmdlZCBleHBsaWNpdGx5LlxuICAgIGNvbnN0IGRlZmF1bHRNYWluU3R5bGVQYXRoID0gc3R5bGVzLmZpbmQoZmlsZSA9PlxuICAgICAgZXh0ZW5zaW9uID8gZmlsZSA9PT0gYHN0eWxlcy4ke2V4dGVuc2lvbn1gIDogZGVmYXVsdFN0eWxlRmlsZVJlZ2V4LnRlc3QoZmlsZSksXG4gICAgKTtcblxuICAgIGlmIChkZWZhdWx0TWFpblN0eWxlUGF0aCkge1xuICAgICAgcmV0dXJuIG5vcm1hbGl6ZShkZWZhdWx0TWFpblN0eWxlUGF0aCk7XG4gICAgfVxuXG4gICAgLy8gSWYgbm8gZGVmYXVsdCBzdHlsZSBmaWxlIGNvdWxkIGJlIGZvdW5kLCB1c2UgdGhlIGZpcnN0IHN0eWxlIGZpbGUgdGhhdCBtYXRjaGVzIHRoZSBnaXZlblxuICAgIC8vIGV4dGVuc2lvbi4gSWYgbm8gZXh0ZW5zaW9uIHNwZWNpZmllZCBleHBsaWNpdGx5LCB3ZSBsb29rIGZvciBhbnkgZmlsZSB3aXRoIGEgdmFsaWQgc3R5bGVcbiAgICAvLyBmaWxlIGV4dGVuc2lvbi5cbiAgICBjb25zdCBmYWxsYmFja1N0eWxlUGF0aCA9IHN0eWxlcy5maW5kKGZpbGUgPT5cbiAgICAgIGV4dGVuc2lvbiA/IGZpbGUuZW5kc1dpdGgoYC4ke2V4dGVuc2lvbn1gKSA6IHZhbGlkU3R5bGVGaWxlUmVnZXgudGVzdChmaWxlKSxcbiAgICApO1xuXG4gICAgaWYgKGZhbGxiYWNrU3R5bGVQYXRoKSB7XG4gICAgICByZXR1cm4gbm9ybWFsaXplKGZhbGxiYWNrU3R5bGVQYXRoKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cbiJdfQ==
@@ -1,39 +0,0 @@
1
- "use strict";
2
- /**
3
- * @license
4
- * Copyright Google LLC All Rights Reserved.
5
- *
6
- * Use of this source code is governed by an MIT-style license that can be
7
- * found in the LICENSE file at https://angular.dev/license
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.getProjectTargetOptions = getProjectTargetOptions;
11
- exports.getProjectBuildTargets = getProjectBuildTargets;
12
- exports.getProjectTestTargets = getProjectTestTargets;
13
- const schematics_1 = require("@angular-devkit/schematics");
14
- /** Resolves the architect options for the build target of the given project. */
15
- function getProjectTargetOptions(project, buildTarget) {
16
- const options = project.targets?.get(buildTarget)?.options;
17
- if (!options) {
18
- throw new schematics_1.SchematicsException(`Cannot determine project target configuration for: ${buildTarget}.`);
19
- }
20
- return options;
21
- }
22
- /** Gets all of the default CLI-provided build targets in a project. */
23
- function getProjectBuildTargets(project) {
24
- return getTargetsByBuilderName(project, builder => builder === '@angular-devkit/build-angular:application' ||
25
- builder === '@angular-devkit/build-angular:browser' ||
26
- builder === '@angular-devkit/build-angular:browser-esbuild' ||
27
- builder === '@angular/build:application');
28
- }
29
- /** Gets all of the default CLI-provided testing targets in a project. */
30
- function getProjectTestTargets(project) {
31
- return getTargetsByBuilderName(project, builder => builder === '@angular-devkit/build-angular:karma');
32
- }
33
- /** Gets all targets from the given project that pass a predicate check. */
34
- function getTargetsByBuilderName(project, predicate) {
35
- return Array.from(project.targets.keys())
36
- .filter(name => predicate(project.targets.get(name)?.builder))
37
- .map(name => project.targets.get(name));
38
- }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC10YXJnZXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay9zY2hlbWF0aWNzL3V0aWxzL3Byb2plY3QtdGFyZ2V0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOztBQU1ILDBEQWFDO0FBR0Qsd0RBV0M7QUFHRCxzREFPQztBQXhDRCwyREFBK0Q7QUFFL0QsZ0ZBQWdGO0FBQ2hGLFNBQWdCLHVCQUF1QixDQUNyQyxPQUFxQyxFQUNyQyxXQUFtQjtJQUVuQixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxPQUFPLENBQUM7SUFFM0QsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2IsTUFBTSxJQUFJLGdDQUFtQixDQUMzQixzREFBc0QsV0FBVyxHQUFHLENBQ3JFLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUVELHVFQUF1RTtBQUN2RSxTQUFnQixzQkFBc0IsQ0FDcEMsT0FBcUM7SUFFckMsT0FBTyx1QkFBdUIsQ0FDNUIsT0FBTyxFQUNQLE9BQU8sQ0FBQyxFQUFFLENBQ1IsT0FBTyxLQUFLLDJDQUEyQztRQUN2RCxPQUFPLEtBQUssdUNBQXVDO1FBQ25ELE9BQU8sS0FBSywrQ0FBK0M7UUFDM0QsT0FBTyxLQUFLLDRCQUE0QixDQUMzQyxDQUFDO0FBQ0osQ0FBQztBQUVELHlFQUF5RTtBQUN6RSxTQUFnQixxQkFBcUIsQ0FDbkMsT0FBcUM7SUFFckMsT0FBTyx1QkFBdUIsQ0FDNUIsT0FBTyxFQUNQLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLHFDQUFxQyxDQUM3RCxDQUFDO0FBQ0osQ0FBQztBQUVELDJFQUEyRTtBQUMzRSxTQUFTLHVCQUF1QixDQUM5QixPQUFxQyxFQUNyQyxTQUFnRDtJQUVoRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUN0QyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDN0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFFLENBQUMsQ0FBQztBQUM3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0pzb25WYWx1ZSwgd29ya3NwYWNlc30gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2NvcmUnO1xuaW1wb3J0IHtTY2hlbWF0aWNzRXhjZXB0aW9ufSBmcm9tICdAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcyc7XG5cbi8qKiBSZXNvbHZlcyB0aGUgYXJjaGl0ZWN0IG9wdGlvbnMgZm9yIHRoZSBidWlsZCB0YXJnZXQgb2YgdGhlIGdpdmVuIHByb2plY3QuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJvamVjdFRhcmdldE9wdGlvbnMoXG4gIHByb2plY3Q6IHdvcmtzcGFjZXMuUHJvamVjdERlZmluaXRpb24sXG4gIGJ1aWxkVGFyZ2V0OiBzdHJpbmcsXG4pOiBSZWNvcmQ8c3RyaW5nLCBKc29uVmFsdWUgfCB1bmRlZmluZWQ+IHtcbiAgY29uc3Qgb3B0aW9ucyA9IHByb2plY3QudGFyZ2V0cz8uZ2V0KGJ1aWxkVGFyZ2V0KT8ub3B0aW9ucztcblxuICBpZiAoIW9wdGlvbnMpIHtcbiAgICB0aHJvdyBuZXcgU2NoZW1hdGljc0V4Y2VwdGlvbihcbiAgICAgIGBDYW5ub3QgZGV0ZXJtaW5lIHByb2plY3QgdGFyZ2V0IGNvbmZpZ3VyYXRpb24gZm9yOiAke2J1aWxkVGFyZ2V0fS5gLFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gb3B0aW9ucztcbn1cblxuLyoqIEdldHMgYWxsIG9mIHRoZSBkZWZhdWx0IENMSS1wcm92aWRlZCBidWlsZCB0YXJnZXRzIGluIGEgcHJvamVjdC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQcm9qZWN0QnVpbGRUYXJnZXRzKFxuICBwcm9qZWN0OiB3b3Jrc3BhY2VzLlByb2plY3REZWZpbml0aW9uLFxuKTogd29ya3NwYWNlcy5UYXJnZXREZWZpbml0aW9uW10ge1xuICByZXR1cm4gZ2V0VGFyZ2V0c0J5QnVpbGRlck5hbWUoXG4gICAgcHJvamVjdCxcbiAgICBidWlsZGVyID0+XG4gICAgICBidWlsZGVyID09PSAnQGFuZ3VsYXItZGV2a2l0L2J1aWxkLWFuZ3VsYXI6YXBwbGljYXRpb24nIHx8XG4gICAgICBidWlsZGVyID09PSAnQGFuZ3VsYXItZGV2a2l0L2J1aWxkLWFuZ3VsYXI6YnJvd3NlcicgfHxcbiAgICAgIGJ1aWxkZXIgPT09ICdAYW5ndWxhci1kZXZraXQvYnVpbGQtYW5ndWxhcjpicm93c2VyLWVzYnVpbGQnIHx8XG4gICAgICBidWlsZGVyID09PSAnQGFuZ3VsYXIvYnVpbGQ6YXBwbGljYXRpb24nLFxuICApO1xufVxuXG4vKiogR2V0cyBhbGwgb2YgdGhlIGRlZmF1bHQgQ0xJLXByb3ZpZGVkIHRlc3RpbmcgdGFyZ2V0cyBpbiBhIHByb2plY3QuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJvamVjdFRlc3RUYXJnZXRzKFxuICBwcm9qZWN0OiB3b3Jrc3BhY2VzLlByb2plY3REZWZpbml0aW9uLFxuKTogd29ya3NwYWNlcy5UYXJnZXREZWZpbml0aW9uW10ge1xuICByZXR1cm4gZ2V0VGFyZ2V0c0J5QnVpbGRlck5hbWUoXG4gICAgcHJvamVjdCxcbiAgICBidWlsZGVyID0+IGJ1aWxkZXIgPT09ICdAYW5ndWxhci1kZXZraXQvYnVpbGQtYW5ndWxhcjprYXJtYScsXG4gICk7XG59XG5cbi8qKiBHZXRzIGFsbCB0YXJnZXRzIGZyb20gdGhlIGdpdmVuIHByb2plY3QgdGhhdCBwYXNzIGEgcHJlZGljYXRlIGNoZWNrLiAqL1xuZnVuY3Rpb24gZ2V0VGFyZ2V0c0J5QnVpbGRlck5hbWUoXG4gIHByb2plY3Q6IHdvcmtzcGFjZXMuUHJvamVjdERlZmluaXRpb24sXG4gIHByZWRpY2F0ZTogKG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4gYm9vbGVhbixcbik6IHdvcmtzcGFjZXMuVGFyZ2V0RGVmaW5pdGlvbltdIHtcbiAgcmV0dXJuIEFycmF5LmZyb20ocHJvamVjdC50YXJnZXRzLmtleXMoKSlcbiAgICAuZmlsdGVyKG5hbWUgPT4gcHJlZGljYXRlKHByb2plY3QudGFyZ2V0cy5nZXQobmFtZSk/LmJ1aWxkZXIpKVxuICAgIC5tYXAobmFtZSA9PiBwcm9qZWN0LnRhcmdldHMuZ2V0KG5hbWUpISk7XG59XG4iXX0=
@@ -1,34 +0,0 @@
1
- "use strict";
2
- /**
3
- * @license
4
- * Copyright Google LLC All Rights Reserved.
5
- *
6
- * Use of this source code is governed by an MIT-style license that can be
7
- * found in the LICENSE file at https://angular.dev/license
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.getTargetTsconfigPath = getTargetTsconfigPath;
11
- exports.getWorkspaceConfigGracefully = getWorkspaceConfigGracefully;
12
- const core_1 = require("@angular-devkit/core");
13
- const workspace_1 = require("@schematics/angular/utility/workspace");
14
- /** Name of the default Angular CLI workspace configuration files. */
15
- const defaultWorkspaceConfigPaths = ['/angular.json', '/.angular.json'];
16
- /** Gets the tsconfig path from the given target within the specified project. */
17
- function getTargetTsconfigPath(project, targetName) {
18
- const tsconfig = project.targets?.get(targetName)?.options?.['tsConfig'];
19
- return tsconfig ? (0, core_1.normalize)(tsconfig) : null;
20
- }
21
- /** Resolve the workspace configuration of the specified tree gracefully. */
22
- async function getWorkspaceConfigGracefully(tree) {
23
- const path = defaultWorkspaceConfigPaths.find(filePath => tree.exists(filePath));
24
- if (!path) {
25
- return null;
26
- }
27
- try {
28
- return (0, workspace_1.getWorkspace)(tree, path);
29
- }
30
- catch {
31
- return null;
32
- }
33
- }
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC10c2NvbmZpZy1wYXRocy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvc2NoZW1hdGljcy91dGlscy9wcm9qZWN0LXRzY29uZmlnLXBhdGhzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7O0FBV0gsc0RBTUM7QUFHRCxvRUFjQztBQWhDRCwrQ0FBMkQ7QUFFM0QscUVBQW1FO0FBR25FLHFFQUFxRTtBQUNyRSxNQUFNLDJCQUEyQixHQUFHLENBQUMsZUFBZSxFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFFeEUsaUZBQWlGO0FBQ2pGLFNBQWdCLHFCQUFxQixDQUNuQyxPQUFxQyxFQUNyQyxVQUFrQjtJQUVsQixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6RSxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBQSxnQkFBUyxFQUFDLFFBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ3pELENBQUM7QUFFRCw0RUFBNEU7QUFDckUsS0FBSyxVQUFVLDRCQUE0QixDQUNoRCxJQUFVO0lBRVYsTUFBTSxJQUFJLEdBQUcsMkJBQTJCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBRWpGLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNWLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUksQ0FBQztRQUNILE9BQU8sSUFBQSx3QkFBWSxFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtub3JtYWxpemUsIHdvcmtzcGFjZXN9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9jb3JlJztcbmltcG9ydCB7VHJlZX0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3MnO1xuaW1wb3J0IHtnZXRXb3Jrc3BhY2V9IGZyb20gJ0BzY2hlbWF0aWNzL2FuZ3VsYXIvdXRpbGl0eS93b3Jrc3BhY2UnO1xuaW1wb3J0IHtXb3Jrc3BhY2VQYXRofSBmcm9tICcuLi91cGRhdGUtdG9vbC9maWxlLXN5c3RlbSc7XG5cbi8qKiBOYW1lIG9mIHRoZSBkZWZhdWx0IEFuZ3VsYXIgQ0xJIHdvcmtzcGFjZSBjb25maWd1cmF0aW9uIGZpbGVzLiAqL1xuY29uc3QgZGVmYXVsdFdvcmtzcGFjZUNvbmZpZ1BhdGhzID0gWycvYW5ndWxhci5qc29uJywgJy8uYW5ndWxhci5qc29uJ107XG5cbi8qKiBHZXRzIHRoZSB0c2NvbmZpZyBwYXRoIGZyb20gdGhlIGdpdmVuIHRhcmdldCB3aXRoaW4gdGhlIHNwZWNpZmllZCBwcm9qZWN0LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRhcmdldFRzY29uZmlnUGF0aChcbiAgcHJvamVjdDogd29ya3NwYWNlcy5Qcm9qZWN0RGVmaW5pdGlvbixcbiAgdGFyZ2V0TmFtZTogc3RyaW5nLFxuKTogV29ya3NwYWNlUGF0aCB8IG51bGwge1xuICBjb25zdCB0c2NvbmZpZyA9IHByb2plY3QudGFyZ2V0cz8uZ2V0KHRhcmdldE5hbWUpPy5vcHRpb25zPy5bJ3RzQ29uZmlnJ107XG4gIHJldHVybiB0c2NvbmZpZyA/IG5vcm1hbGl6ZSh0c2NvbmZpZyBhcyBzdHJpbmcpIDogbnVsbDtcbn1cblxuLyoqIFJlc29sdmUgdGhlIHdvcmtzcGFjZSBjb25maWd1cmF0aW9uIG9mIHRoZSBzcGVjaWZpZWQgdHJlZSBncmFjZWZ1bGx5LiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFdvcmtzcGFjZUNvbmZpZ0dyYWNlZnVsbHkoXG4gIHRyZWU6IFRyZWUsXG4pOiBQcm9taXNlPHdvcmtzcGFjZXMuV29ya3NwYWNlRGVmaW5pdGlvbiB8IG51bGw+IHtcbiAgY29uc3QgcGF0aCA9IGRlZmF1bHRXb3Jrc3BhY2VDb25maWdQYXRocy5maW5kKGZpbGVQYXRoID0+IHRyZWUuZXhpc3RzKGZpbGVQYXRoKSk7XG5cbiAgaWYgKCFwYXRoKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB0cnkge1xuICAgIHJldHVybiBnZXRXb3Jrc3BhY2UodHJlZSwgcGF0aCk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG4iXX0=
@@ -1,77 +0,0 @@
1
- "use strict";
2
- /**
3
- * @license
4
- * Copyright Google LLC All Rights Reserved.
5
- *
6
- * Use of this source code is governed by an MIT-style license that can be
7
- * found in the LICENSE file at https://angular.dev/license
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.getDefaultComponentOptions = getDefaultComponentOptions;
11
- exports.isStandaloneSchematic = isStandaloneSchematic;
12
- const core_1 = require("@angular-devkit/core");
13
- const schema_1 = require("@schematics/angular/component/schema");
14
- const ng_ast_utils_1 = require("@schematics/angular/utility/ng-ast-utils");
15
- const project_main_file_1 = require("./project-main-file");
16
- const workspace_1 = require("@schematics/angular/utility/workspace");
17
- const get_project_1 = require("./get-project");
18
- /**
19
- * Returns the default options for the `@schematics/angular:component` schematic which would
20
- * have been specified at project initialization (ng new or ng init).
21
- *
22
- * This is necessary because the Angular CLI only exposes the default values for the "--style",
23
- * "--inlineStyle", "--skipTests" and "--inlineTemplate" options to the "component" schematic.
24
- */
25
- function getDefaultComponentOptions(project) {
26
- // Note: Not all options which are available when running "ng new" will be stored in the
27
- // workspace config. List of options which will be available in the configuration:
28
- // angular/angular-cli/blob/main/packages/schematics/angular/application/index.ts#L109-L131
29
- let skipTests = getDefaultComponentOption(project, ['skipTests'], null);
30
- // In case "skipTests" is not set explicitly, also look for the "spec" option. The "spec"
31
- // option has been deprecated but can be still used in older Angular CLI projects.
32
- // See: https://github.com/angular/angular-cli/commit/a12a4e02a4689b5bdbc6e740c0d9865afb55671a
33
- if (skipTests === null) {
34
- skipTests = !getDefaultComponentOption(project, ['spec'], true);
35
- }
36
- return {
37
- style: getDefaultComponentOption(project, ['style', 'styleext'], schema_1.Style.Css),
38
- inlineStyle: getDefaultComponentOption(project, ['inlineStyle'], false),
39
- inlineTemplate: getDefaultComponentOption(project, ['inlineTemplate'], false),
40
- skipTests: skipTests,
41
- };
42
- }
43
- /** Determines whether the schematic is configured to be standalone. */
44
- async function isStandaloneSchematic(host, options) {
45
- if (options.standalone != null) {
46
- return options.standalone;
47
- }
48
- // If the `--standalone` flag isn't passed and there isn't a default, infer based on the project.
49
- const workspace = await (0, workspace_1.getWorkspace)(host);
50
- const project = (0, get_project_1.getProjectFromWorkspace)(workspace, options.project);
51
- // Legacy projects might not have a `build` target, but they're likely
52
- // not on an Angular version that supports standalone either.
53
- if (!project.targets?.has('build')) {
54
- return false;
55
- }
56
- return (0, ng_ast_utils_1.isStandaloneApp)(host, (0, project_main_file_1.getProjectMainFile)(project));
57
- }
58
- /**
59
- * Gets the default value for the specified option. The default options will be determined
60
- * by looking at the stored schematic options for `@schematics/angular:component` in the
61
- * CLI workspace configuration.
62
- */
63
- function getDefaultComponentOption(project, optionNames, fallbackValue) {
64
- const schematicOptions = (0, core_1.isJsonObject)(project.extensions['schematics'] || null)
65
- ? project.extensions['schematics']
66
- : null;
67
- const defaultSchematic = schematicOptions
68
- ? schematicOptions['@schematics/angular:component']
69
- : null;
70
- for (const optionName of optionNames) {
71
- if (defaultSchematic && defaultSchematic[optionName] != null) {
72
- return defaultSchematic[optionName];
73
- }
74
- }
75
- return fallbackValue;
76
- }
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hdGljLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvdXRpbHMvc2NoZW1hdGljLW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7QUFpQkgsZ0VBbUJDO0FBR0Qsc0RBZ0JDO0FBckRELCtDQUEwRTtBQUMxRSxpRUFBbUU7QUFDbkUsMkVBQXlFO0FBQ3pFLDJEQUF1RDtBQUN2RCxxRUFBbUU7QUFDbkUsK0NBQXNEO0FBR3REOzs7Ozs7R0FNRztBQUNILFNBQWdCLDBCQUEwQixDQUFDLE9BQXFDO0lBQzlFLHdGQUF3RjtJQUN4RixrRkFBa0Y7SUFDbEYsMkZBQTJGO0lBQzNGLElBQUksU0FBUyxHQUFHLHlCQUF5QixDQUFpQixPQUFPLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUV4Rix5RkFBeUY7SUFDekYsa0ZBQWtGO0lBQ2xGLDhGQUE4RjtJQUM5RixJQUFJLFNBQVMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUN2QixTQUFTLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsT0FBTztRQUNMLEtBQUssRUFBRSx5QkFBeUIsQ0FBUSxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLEVBQUUsY0FBSyxDQUFDLEdBQUcsQ0FBQztRQUNsRixXQUFXLEVBQUUseUJBQXlCLENBQUMsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQUUsS0FBSyxDQUFDO1FBQ3ZFLGNBQWMsRUFBRSx5QkFBeUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEtBQUssQ0FBQztRQUM3RSxTQUFTLEVBQUUsU0FBUztLQUNyQixDQUFDO0FBQ0osQ0FBQztBQUVELHVFQUF1RTtBQUNoRSxLQUFLLFVBQVUscUJBQXFCLENBQUMsSUFBVSxFQUFFLE9BQWU7SUFDckUsSUFBSSxPQUFPLENBQUMsVUFBVSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQy9CLE9BQU8sT0FBTyxDQUFDLFVBQVUsQ0FBQztJQUM1QixDQUFDO0lBRUQsaUdBQWlHO0lBQ2pHLE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBQSx3QkFBWSxFQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNDLE1BQU0sT0FBTyxHQUFHLElBQUEscUNBQXVCLEVBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVwRSxzRUFBc0U7SUFDdEUsNkRBQTZEO0lBQzdELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ25DLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE9BQU8sSUFBQSw4QkFBZSxFQUFDLElBQUksRUFBRSxJQUFBLHNDQUFrQixFQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDNUQsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFTLHlCQUF5QixDQUNoQyxPQUFxQyxFQUNyQyxXQUFxQixFQUNyQixhQUFnQjtJQUVoQixNQUFNLGdCQUFnQixHQUFHLElBQUEsbUJBQVksRUFBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksQ0FBQztRQUM3RSxDQUFDLENBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQWdCO1FBQ2xELENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDVCxNQUFNLGdCQUFnQixHQUFHLGdCQUFnQjtRQUN2QyxDQUFDLENBQUUsZ0JBQWdCLENBQUMsK0JBQStCLENBQXVCO1FBQzFFLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFFVCxLQUFLLE1BQU0sVUFBVSxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ3JDLElBQUksZ0JBQWdCLElBQUksZ0JBQWdCLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDN0QsT0FBTyxnQkFBZ0IsQ0FBQyxVQUFVLENBQWlCLENBQUM7UUFDdEQsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLGFBQWEsQ0FBQztBQUN2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge2lzSnNvbk9iamVjdCwgSnNvbk9iamVjdCwgd29ya3NwYWNlc30gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2NvcmUnO1xuaW1wb3J0IHtTY2hlbWEsIFN0eWxlfSBmcm9tICdAc2NoZW1hdGljcy9hbmd1bGFyL2NvbXBvbmVudC9zY2hlbWEnO1xuaW1wb3J0IHtpc1N0YW5kYWxvbmVBcHB9IGZyb20gJ0BzY2hlbWF0aWNzL2FuZ3VsYXIvdXRpbGl0eS9uZy1hc3QtdXRpbHMnO1xuaW1wb3J0IHtnZXRQcm9qZWN0TWFpbkZpbGV9IGZyb20gJy4vcHJvamVjdC1tYWluLWZpbGUnO1xuaW1wb3J0IHtnZXRXb3Jrc3BhY2V9IGZyb20gJ0BzY2hlbWF0aWNzL2FuZ3VsYXIvdXRpbGl0eS93b3Jrc3BhY2UnO1xuaW1wb3J0IHtnZXRQcm9qZWN0RnJvbVdvcmtzcGFjZX0gZnJvbSAnLi9nZXQtcHJvamVjdCc7XG5pbXBvcnQge1RyZWV9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzJztcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBkZWZhdWx0IG9wdGlvbnMgZm9yIHRoZSBgQHNjaGVtYXRpY3MvYW5ndWxhcjpjb21wb25lbnRgIHNjaGVtYXRpYyB3aGljaCB3b3VsZFxuICogaGF2ZSBiZWVuIHNwZWNpZmllZCBhdCBwcm9qZWN0IGluaXRpYWxpemF0aW9uIChuZyBuZXcgb3IgbmcgaW5pdCkuXG4gKlxuICogVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB0aGUgQW5ndWxhciBDTEkgb25seSBleHBvc2VzIHRoZSBkZWZhdWx0IHZhbHVlcyBmb3IgdGhlIFwiLS1zdHlsZVwiLFxuICogXCItLWlubGluZVN0eWxlXCIsIFwiLS1za2lwVGVzdHNcIiBhbmQgXCItLWlubGluZVRlbXBsYXRlXCIgb3B0aW9ucyB0byB0aGUgXCJjb21wb25lbnRcIiBzY2hlbWF0aWMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0Q29tcG9uZW50T3B0aW9ucyhwcm9qZWN0OiB3b3Jrc3BhY2VzLlByb2plY3REZWZpbml0aW9uKTogUGFydGlhbDxTY2hlbWE+IHtcbiAgLy8gTm90ZTogTm90IGFsbCBvcHRpb25zIHdoaWNoIGFyZSBhdmFpbGFibGUgd2hlbiBydW5uaW5nIFwibmcgbmV3XCIgd2lsbCBiZSBzdG9yZWQgaW4gdGhlXG4gIC8vIHdvcmtzcGFjZSBjb25maWcuIExpc3Qgb2Ygb3B0aW9ucyB3aGljaCB3aWxsIGJlIGF2YWlsYWJsZSBpbiB0aGUgY29uZmlndXJhdGlvbjpcbiAgLy8gYW5ndWxhci9hbmd1bGFyLWNsaS9ibG9iL21haW4vcGFja2FnZXMvc2NoZW1hdGljcy9hbmd1bGFyL2FwcGxpY2F0aW9uL2luZGV4LnRzI0wxMDktTDEzMVxuICBsZXQgc2tpcFRlc3RzID0gZ2V0RGVmYXVsdENvbXBvbmVudE9wdGlvbjxib29sZWFuIHwgbnVsbD4ocHJvamVjdCwgWydza2lwVGVzdHMnXSwgbnVsbCk7XG5cbiAgLy8gSW4gY2FzZSBcInNraXBUZXN0c1wiIGlzIG5vdCBzZXQgZXhwbGljaXRseSwgYWxzbyBsb29rIGZvciB0aGUgXCJzcGVjXCIgb3B0aW9uLiBUaGUgXCJzcGVjXCJcbiAgLy8gb3B0aW9uIGhhcyBiZWVuIGRlcHJlY2F0ZWQgYnV0IGNhbiBiZSBzdGlsbCB1c2VkIGluIG9sZGVyIEFuZ3VsYXIgQ0xJIHByb2plY3RzLlxuICAvLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXItY2xpL2NvbW1pdC9hMTJhNGUwMmE0Njg5YjViZGJjNmU3NDBjMGQ5ODY1YWZiNTU2NzFhXG4gIGlmIChza2lwVGVzdHMgPT09IG51bGwpIHtcbiAgICBza2lwVGVzdHMgPSAhZ2V0RGVmYXVsdENvbXBvbmVudE9wdGlvbihwcm9qZWN0LCBbJ3NwZWMnXSwgdHJ1ZSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHN0eWxlOiBnZXREZWZhdWx0Q29tcG9uZW50T3B0aW9uPFN0eWxlPihwcm9qZWN0LCBbJ3N0eWxlJywgJ3N0eWxlZXh0J10sIFN0eWxlLkNzcyksXG4gICAgaW5saW5lU3R5bGU6IGdldERlZmF1bHRDb21wb25lbnRPcHRpb24ocHJvamVjdCwgWydpbmxpbmVTdHlsZSddLCBmYWxzZSksXG4gICAgaW5saW5lVGVtcGxhdGU6IGdldERlZmF1bHRDb21wb25lbnRPcHRpb24ocHJvamVjdCwgWydpbmxpbmVUZW1wbGF0ZSddLCBmYWxzZSksXG4gICAgc2tpcFRlc3RzOiBza2lwVGVzdHMsXG4gIH07XG59XG5cbi8qKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHNjaGVtYXRpYyBpcyBjb25maWd1cmVkIHRvIGJlIHN0YW5kYWxvbmUuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaXNTdGFuZGFsb25lU2NoZW1hdGljKGhvc3Q6IFRyZWUsIG9wdGlvbnM6IFNjaGVtYSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBpZiAob3B0aW9ucy5zdGFuZGFsb25lICE9IG51bGwpIHtcbiAgICByZXR1cm4gb3B0aW9ucy5zdGFuZGFsb25lO1xuICB9XG5cbiAgLy8gSWYgdGhlIGAtLXN0YW5kYWxvbmVgIGZsYWcgaXNuJ3QgcGFzc2VkIGFuZCB0aGVyZSBpc24ndCBhIGRlZmF1bHQsIGluZmVyIGJhc2VkIG9uIHRoZSBwcm9qZWN0LlxuICBjb25zdCB3b3Jrc3BhY2UgPSBhd2FpdCBnZXRXb3Jrc3BhY2UoaG9zdCk7XG4gIGNvbnN0IHByb2plY3QgPSBnZXRQcm9qZWN0RnJvbVdvcmtzcGFjZSh3b3Jrc3BhY2UsIG9wdGlvbnMucHJvamVjdCk7XG5cbiAgLy8gTGVnYWN5IHByb2plY3RzIG1pZ2h0IG5vdCBoYXZlIGEgYGJ1aWxkYCB0YXJnZXQsIGJ1dCB0aGV5J3JlIGxpa2VseVxuICAvLyBub3Qgb24gYW4gQW5ndWxhciB2ZXJzaW9uIHRoYXQgc3VwcG9ydHMgc3RhbmRhbG9uZSBlaXRoZXIuXG4gIGlmICghcHJvamVjdC50YXJnZXRzPy5oYXMoJ2J1aWxkJykpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gaXNTdGFuZGFsb25lQXBwKGhvc3QsIGdldFByb2plY3RNYWluRmlsZShwcm9qZWN0KSk7XG59XG5cbi8qKlxuICogR2V0cyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIHNwZWNpZmllZCBvcHRpb24uIFRoZSBkZWZhdWx0IG9wdGlvbnMgd2lsbCBiZSBkZXRlcm1pbmVkXG4gKiBieSBsb29raW5nIGF0IHRoZSBzdG9yZWQgc2NoZW1hdGljIG9wdGlvbnMgZm9yIGBAc2NoZW1hdGljcy9hbmd1bGFyOmNvbXBvbmVudGAgaW4gdGhlXG4gKiBDTEkgd29ya3NwYWNlIGNvbmZpZ3VyYXRpb24uXG4gKi9cbmZ1bmN0aW9uIGdldERlZmF1bHRDb21wb25lbnRPcHRpb248VD4oXG4gIHByb2plY3Q6IHdvcmtzcGFjZXMuUHJvamVjdERlZmluaXRpb24sXG4gIG9wdGlvbk5hbWVzOiBzdHJpbmdbXSxcbiAgZmFsbGJhY2tWYWx1ZTogVCxcbik6IFQge1xuICBjb25zdCBzY2hlbWF0aWNPcHRpb25zID0gaXNKc29uT2JqZWN0KHByb2plY3QuZXh0ZW5zaW9uc1snc2NoZW1hdGljcyddIHx8IG51bGwpXG4gICAgPyAocHJvamVjdC5leHRlbnNpb25zWydzY2hlbWF0aWNzJ10gYXMgSnNvbk9iamVjdClcbiAgICA6IG51bGw7XG4gIGNvbnN0IGRlZmF1bHRTY2hlbWF0aWMgPSBzY2hlbWF0aWNPcHRpb25zXG4gICAgPyAoc2NoZW1hdGljT3B0aW9uc1snQHNjaGVtYXRpY3MvYW5ndWxhcjpjb21wb25lbnQnXSBhcyBKc29uT2JqZWN0IHwgbnVsbClcbiAgICA6IG51bGw7XG5cbiAgZm9yIChjb25zdCBvcHRpb25OYW1lIG9mIG9wdGlvbk5hbWVzKSB7XG4gICAgaWYgKGRlZmF1bHRTY2hlbWF0aWMgJiYgZGVmYXVsdFNjaGVtYXRpY1tvcHRpb25OYW1lXSAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gZGVmYXVsdFNjaGVtYXRpY1tvcHRpb25OYW1lXSBhcyB1bmtub3duIGFzIFQ7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbGxiYWNrVmFsdWU7XG59XG4iXX0=