jqwidgets-ng 14.1.10 → 14.1.11

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 (239) hide show
  1. package/package.json +1 -1
  2. package/schematics/cdk/schematics/collection.json +17 -0
  3. package/schematics/cdk/schematics/index.d.ts +13 -0
  4. package/schematics/cdk/schematics/index.js +37 -0
  5. package/schematics/cdk/schematics/index.mjs +37 -0
  6. package/schematics/cdk/schematics/migration.json +50 -0
  7. package/schematics/cdk/schematics/ng-add/index.d.ts +17 -0
  8. package/schematics/cdk/schematics/ng-add/index.js +39 -0
  9. package/schematics/cdk/schematics/ng-add/index.mjs +39 -0
  10. package/schematics/cdk/schematics/ng-add/package-config.d.ts +12 -0
  11. package/schematics/cdk/schematics/ng-add/package-config.js +52 -0
  12. package/schematics/cdk/schematics/ng-add/package-config.mjs +52 -0
  13. package/schematics/cdk/schematics/ng-add/schema.d.ts +11 -0
  14. package/schematics/cdk/schematics/ng-add/schema.js +10 -0
  15. package/schematics/cdk/schematics/ng-add/schema.json +16 -0
  16. package/schematics/cdk/schematics/ng-add/schema.mjs +10 -0
  17. package/schematics/cdk/schematics/ng-generate/drag-drop/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.__style__.template +53 -0
  18. package/schematics/cdk/schematics/ng-generate/drag-drop/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html.template +17 -0
  19. package/schematics/cdk/schematics/ng-generate/drag-drop/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.spec.ts.template +29 -0
  20. package/schematics/cdk/schematics/ng-generate/drag-drop/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts.template +43 -0
  21. package/schematics/cdk/schematics/ng-generate/drag-drop/index.d.ts +11 -0
  22. package/schematics/cdk/schematics/ng-generate/drag-drop/index.js +39 -0
  23. package/schematics/cdk/schematics/ng-generate/drag-drop/index.mjs +39 -0
  24. package/schematics/cdk/schematics/ng-generate/drag-drop/schema.d.ts +10 -0
  25. package/schematics/cdk/schematics/ng-generate/drag-drop/schema.js +10 -0
  26. package/schematics/cdk/schematics/ng-generate/drag-drop/schema.json +93 -0
  27. package/schematics/cdk/schematics/ng-generate/drag-drop/schema.mjs +10 -0
  28. package/schematics/cdk/schematics/ng-update/data/attribute-selectors.d.ts +15 -0
  29. package/schematics/cdk/schematics/ng-update/data/attribute-selectors.js +23 -0
  30. package/schematics/cdk/schematics/ng-update/data/attribute-selectors.mjs +23 -0
  31. package/schematics/cdk/schematics/ng-update/data/class-names.d.ts +15 -0
  32. package/schematics/cdk/schematics/ng-update/data/class-names.js +42 -0
  33. package/schematics/cdk/schematics/ng-update/data/class-names.mjs +42 -0
  34. package/schematics/cdk/schematics/ng-update/data/constructor-checks.d.ts +15 -0
  35. package/schematics/cdk/schematics/ng-update/data/constructor-checks.js +74 -0
  36. package/schematics/cdk/schematics/ng-update/data/constructor-checks.mjs +74 -0
  37. package/schematics/cdk/schematics/ng-update/data/css-selectors.d.ts +27 -0
  38. package/schematics/cdk/schematics/ng-update/data/css-selectors.js +15 -0
  39. package/schematics/cdk/schematics/ng-update/data/css-selectors.mjs +15 -0
  40. package/schematics/cdk/schematics/ng-update/data/element-selectors.d.ts +15 -0
  41. package/schematics/cdk/schematics/ng-update/data/element-selectors.js +15 -0
  42. package/schematics/cdk/schematics/ng-update/data/element-selectors.mjs +15 -0
  43. package/schematics/cdk/schematics/ng-update/data/index.d.ts +17 -0
  44. package/schematics/cdk/schematics/ng-update/data/index.js +34 -0
  45. package/schematics/cdk/schematics/ng-update/data/index.mjs +34 -0
  46. package/schematics/cdk/schematics/ng-update/data/input-names.d.ts +22 -0
  47. package/schematics/cdk/schematics/ng-update/data/input-names.js +105 -0
  48. package/schematics/cdk/schematics/ng-update/data/input-names.mjs +105 -0
  49. package/schematics/cdk/schematics/ng-update/data/method-call-checks.d.ts +17 -0
  50. package/schematics/cdk/schematics/ng-update/data/method-call-checks.js +57 -0
  51. package/schematics/cdk/schematics/ng-update/data/method-call-checks.mjs +57 -0
  52. package/schematics/cdk/schematics/ng-update/data/output-names.d.ts +22 -0
  53. package/schematics/cdk/schematics/ng-update/data/output-names.js +29 -0
  54. package/schematics/cdk/schematics/ng-update/data/output-names.mjs +29 -0
  55. package/schematics/cdk/schematics/ng-update/data/property-names.d.ts +20 -0
  56. package/schematics/cdk/schematics/ng-update/data/property-names.js +137 -0
  57. package/schematics/cdk/schematics/ng-update/data/property-names.mjs +137 -0
  58. package/schematics/cdk/schematics/ng-update/data/symbol-removal.d.ts +17 -0
  59. package/schematics/cdk/schematics/ng-update/data/symbol-removal.js +12 -0
  60. package/schematics/cdk/schematics/ng-update/data/symbol-removal.mjs +12 -0
  61. package/schematics/cdk/schematics/ng-update/devkit-file-system.d.ts +30 -0
  62. package/schematics/cdk/schematics/ng-update/devkit-file-system.js +80 -0
  63. package/schematics/cdk/schematics/ng-update/devkit-file-system.mjs +80 -0
  64. package/schematics/cdk/schematics/ng-update/devkit-migration-rule.d.ts +24 -0
  65. package/schematics/cdk/schematics/ng-update/devkit-migration-rule.js +139 -0
  66. package/schematics/cdk/schematics/ng-update/devkit-migration-rule.mjs +139 -0
  67. package/schematics/cdk/schematics/ng-update/devkit-migration.d.ts +35 -0
  68. package/schematics/cdk/schematics/ng-update/devkit-migration.js +20 -0
  69. package/schematics/cdk/schematics/ng-update/devkit-migration.mjs +20 -0
  70. package/schematics/cdk/schematics/ng-update/find-stylesheets.d.ts +16 -0
  71. package/schematics/cdk/schematics/ng-update/find-stylesheets.js +42 -0
  72. package/schematics/cdk/schematics/ng-update/find-stylesheets.mjs +42 -0
  73. package/schematics/cdk/schematics/ng-update/html-parsing/angular.d.ts +15 -0
  74. package/schematics/cdk/schematics/ng-update/html-parsing/angular.js +52 -0
  75. package/schematics/cdk/schematics/ng-update/html-parsing/angular.mjs +52 -0
  76. package/schematics/cdk/schematics/ng-update/html-parsing/elements.d.ts +25 -0
  77. package/schematics/cdk/schematics/ng-update/html-parsing/elements.js +64 -0
  78. package/schematics/cdk/schematics/ng-update/html-parsing/elements.mjs +64 -0
  79. package/schematics/cdk/schematics/ng-update/index.d.ts +24 -0
  80. package/schematics/cdk/schematics/ng-update/index.js +66 -0
  81. package/schematics/cdk/schematics/ng-update/index.mjs +66 -0
  82. package/schematics/cdk/schematics/ng-update/migrations/attribute-selectors.d.ts +26 -0
  83. package/schematics/cdk/schematics/ng-update/migrations/attribute-selectors.js +71 -0
  84. package/schematics/cdk/schematics/ng-update/migrations/attribute-selectors.mjs +71 -0
  85. package/schematics/cdk/schematics/ng-update/migrations/class-inheritance.d.ts +26 -0
  86. package/schematics/cdk/schematics/ng-update/migrations/class-inheritance.js +58 -0
  87. package/schematics/cdk/schematics/ng-update/migrations/class-inheritance.mjs +58 -0
  88. package/schematics/cdk/schematics/ng-update/migrations/class-names.d.ts +32 -0
  89. package/schematics/cdk/schematics/ng-update/migrations/class-names.js +91 -0
  90. package/schematics/cdk/schematics/ng-update/migrations/class-names.mjs +91 -0
  91. package/schematics/cdk/schematics/ng-update/migrations/constructor-signature.d.ts +29 -0
  92. package/schematics/cdk/schematics/ng-update/migrations/constructor-signature.js +139 -0
  93. package/schematics/cdk/schematics/ng-update/migrations/constructor-signature.mjs +139 -0
  94. package/schematics/cdk/schematics/ng-update/migrations/css-selectors.d.ts +26 -0
  95. package/schematics/cdk/schematics/ng-update/migrations/css-selectors.js +75 -0
  96. package/schematics/cdk/schematics/ng-update/migrations/css-selectors.mjs +75 -0
  97. package/schematics/cdk/schematics/ng-update/migrations/element-selectors.d.ts +26 -0
  98. package/schematics/cdk/schematics/ng-update/migrations/element-selectors.js +66 -0
  99. package/schematics/cdk/schematics/ng-update/migrations/element-selectors.mjs +66 -0
  100. package/schematics/cdk/schematics/ng-update/migrations/input-names.d.ts +26 -0
  101. package/schematics/cdk/schematics/ng-update/migrations/input-names.js +59 -0
  102. package/schematics/cdk/schematics/ng-update/migrations/input-names.mjs +59 -0
  103. package/schematics/cdk/schematics/ng-update/migrations/method-call-arguments.d.ts +22 -0
  104. package/schematics/cdk/schematics/ng-update/migrations/method-call-arguments.js +62 -0
  105. package/schematics/cdk/schematics/ng-update/migrations/method-call-arguments.mjs +62 -0
  106. package/schematics/cdk/schematics/ng-update/migrations/misc-template.d.ts +18 -0
  107. package/schematics/cdk/schematics/ng-update/migrations/misc-template.js +38 -0
  108. package/schematics/cdk/schematics/ng-update/migrations/misc-template.mjs +38 -0
  109. package/schematics/cdk/schematics/ng-update/migrations/output-names.d.ts +22 -0
  110. package/schematics/cdk/schematics/ng-update/migrations/output-names.js +46 -0
  111. package/schematics/cdk/schematics/ng-update/migrations/output-names.mjs +46 -0
  112. package/schematics/cdk/schematics/ng-update/migrations/property-names.d.ts +22 -0
  113. package/schematics/cdk/schematics/ng-update/migrations/property-names.js +60 -0
  114. package/schematics/cdk/schematics/ng-update/migrations/property-names.mjs +60 -0
  115. package/schematics/cdk/schematics/ng-update/migrations/symbol-removal.d.ts +18 -0
  116. package/schematics/cdk/schematics/ng-update/migrations/symbol-removal.js +47 -0
  117. package/schematics/cdk/schematics/ng-update/migrations/symbol-removal.mjs +47 -0
  118. package/schematics/cdk/schematics/ng-update/migrations/tilde-import-v13/tilde-import-migration.d.ts +14 -0
  119. package/schematics/cdk/schematics/ng-update/migrations/tilde-import-v13/tilde-import-migration.js +39 -0
  120. package/schematics/cdk/schematics/ng-update/migrations/tilde-import-v13/tilde-import-migration.mjs +39 -0
  121. package/schematics/cdk/schematics/ng-update/public-api.d.ts +17 -0
  122. package/schematics/cdk/schematics/ng-update/public-api.js +34 -0
  123. package/schematics/cdk/schematics/ng-update/public-api.mjs +34 -0
  124. package/schematics/cdk/schematics/ng-update/typescript/base-types.d.ts +10 -0
  125. package/schematics/cdk/schematics/ng-update/typescript/base-types.js +24 -0
  126. package/schematics/cdk/schematics/ng-update/typescript/base-types.mjs +24 -0
  127. package/schematics/cdk/schematics/ng-update/typescript/imports.d.ts +18 -0
  128. package/schematics/cdk/schematics/ng-update/typescript/imports.js +54 -0
  129. package/schematics/cdk/schematics/ng-update/typescript/imports.mjs +54 -0
  130. package/schematics/cdk/schematics/ng-update/typescript/literal.d.ts +18 -0
  131. package/schematics/cdk/schematics/ng-update/typescript/literal.js +33 -0
  132. package/schematics/cdk/schematics/ng-update/typescript/literal.mjs +33 -0
  133. package/schematics/cdk/schematics/ng-update/typescript/module-specifiers.d.ts +16 -0
  134. package/schematics/cdk/schematics/ng-update/typescript/module-specifiers.js +35 -0
  135. package/schematics/cdk/schematics/ng-update/typescript/module-specifiers.mjs +35 -0
  136. package/schematics/cdk/schematics/ng-update/upgrade-data.d.ts +34 -0
  137. package/schematics/cdk/schematics/ng-update/upgrade-data.js +36 -0
  138. package/schematics/cdk/schematics/ng-update/upgrade-data.mjs +36 -0
  139. package/schematics/cdk/schematics/package.json +3 -0
  140. package/schematics/cdk/schematics/paths.d.ts +11 -0
  141. package/schematics/cdk/schematics/paths.js +16 -0
  142. package/schematics/cdk/schematics/paths.mjs +16 -0
  143. package/schematics/cdk/schematics/schematics.externs.js +0 -0
  144. package/schematics/cdk/schematics/tsconfig.json +28 -0
  145. package/schematics/cdk/schematics/update-tool/component-resource-collector.d.ts +43 -0
  146. package/schematics/cdk/schematics/update-tool/component-resource-collector.js +147 -0
  147. package/schematics/cdk/schematics/update-tool/component-resource-collector.mjs +147 -0
  148. package/schematics/cdk/schematics/update-tool/file-system.d.ts +72 -0
  149. package/schematics/cdk/schematics/update-tool/file-system.js +18 -0
  150. package/schematics/cdk/schematics/update-tool/file-system.mjs +18 -0
  151. package/schematics/cdk/schematics/update-tool/index.d.ts +70 -0
  152. package/schematics/cdk/schematics/update-tool/index.js +162 -0
  153. package/schematics/cdk/schematics/update-tool/index.mjs +162 -0
  154. package/schematics/cdk/schematics/update-tool/logger.d.ts +15 -0
  155. package/schematics/cdk/schematics/update-tool/logger.js +18 -0
  156. package/schematics/cdk/schematics/update-tool/logger.mjs +18 -0
  157. package/schematics/cdk/schematics/update-tool/migration.d.ts +81 -0
  158. package/schematics/cdk/schematics/update-tool/migration.js +67 -0
  159. package/schematics/cdk/schematics/update-tool/migration.mjs +67 -0
  160. package/schematics/cdk/schematics/update-tool/public-api.d.ts +15 -0
  161. package/schematics/cdk/schematics/update-tool/public-api.js +32 -0
  162. package/schematics/cdk/schematics/update-tool/public-api.mjs +32 -0
  163. package/schematics/cdk/schematics/update-tool/target-version.d.ts +23 -0
  164. package/schematics/cdk/schematics/update-tool/target-version.js +35 -0
  165. package/schematics/cdk/schematics/update-tool/target-version.mjs +35 -0
  166. package/schematics/cdk/schematics/update-tool/update-recorder.d.ts +13 -0
  167. package/schematics/cdk/schematics/update-tool/update-recorder.js +10 -0
  168. package/schematics/cdk/schematics/update-tool/update-recorder.mjs +10 -0
  169. package/schematics/cdk/schematics/update-tool/update-tool.externs.js +0 -0
  170. package/schematics/cdk/schematics/update-tool/utils/decorators.d.ts +22 -0
  171. package/schematics/cdk/schematics/update-tool/utils/decorators.js +42 -0
  172. package/schematics/cdk/schematics/update-tool/utils/decorators.mjs +42 -0
  173. package/schematics/cdk/schematics/update-tool/utils/functions.d.ts +14 -0
  174. package/schematics/cdk/schematics/update-tool/utils/functions.js +21 -0
  175. package/schematics/cdk/schematics/update-tool/utils/functions.mjs +21 -0
  176. package/schematics/cdk/schematics/update-tool/utils/imports.d.ts +17 -0
  177. package/schematics/cdk/schematics/update-tool/utils/imports.js +111 -0
  178. package/schematics/cdk/schematics/update-tool/utils/imports.mjs +111 -0
  179. package/schematics/cdk/schematics/update-tool/utils/line-mappings.d.ts +21 -0
  180. package/schematics/cdk/schematics/update-tool/utils/line-mappings.js +76 -0
  181. package/schematics/cdk/schematics/update-tool/utils/line-mappings.mjs +76 -0
  182. package/schematics/cdk/schematics/update-tool/utils/parse-tsconfig.d.ts +10 -0
  183. package/schematics/cdk/schematics/update-tool/utils/parse-tsconfig.js +19 -0
  184. package/schematics/cdk/schematics/update-tool/utils/parse-tsconfig.mjs +19 -0
  185. package/schematics/cdk/schematics/update-tool/utils/property-name.d.ts +18 -0
  186. package/schematics/cdk/schematics/update-tool/utils/property-name.js +28 -0
  187. package/schematics/cdk/schematics/update-tool/utils/property-name.mjs +28 -0
  188. package/schematics/cdk/schematics/update-tool/utils/virtual-host.d.ts +34 -0
  189. package/schematics/cdk/schematics/update-tool/utils/virtual-host.js +62 -0
  190. package/schematics/cdk/schematics/update-tool/utils/virtual-host.mjs +62 -0
  191. package/schematics/cdk/schematics/update-tool/version-changes.d.ts +32 -0
  192. package/schematics/cdk/schematics/update-tool/version-changes.js +39 -0
  193. package/schematics/cdk/schematics/update-tool/version-changes.mjs +39 -0
  194. package/schematics/cdk/schematics/utils/ast/ng-module-imports.d.ts +12 -0
  195. package/schematics/cdk/schematics/utils/ast/ng-module-imports.js +83 -0
  196. package/schematics/cdk/schematics/utils/ast/ng-module-imports.mjs +83 -0
  197. package/schematics/cdk/schematics/utils/ast.d.ts +25 -0
  198. package/schematics/cdk/schematics/utils/ast.js +79 -0
  199. package/schematics/cdk/schematics/utils/ast.mjs +79 -0
  200. package/schematics/cdk/schematics/utils/build-component.d.ts +20 -0
  201. package/schematics/cdk/schematics/utils/build-component.js +189 -0
  202. package/schematics/cdk/schematics/utils/build-component.mjs +189 -0
  203. package/schematics/cdk/schematics/utils/get-project.d.ts +13 -0
  204. package/schematics/cdk/schematics/utils/get-project.js +24 -0
  205. package/schematics/cdk/schematics/utils/get-project.mjs +24 -0
  206. package/schematics/cdk/schematics/utils/html-manipulation.d.ts +15 -0
  207. package/schematics/cdk/schematics/utils/html-manipulation.js +92 -0
  208. package/schematics/cdk/schematics/utils/html-manipulation.mjs +92 -0
  209. package/schematics/cdk/schematics/utils/index.d.ts +18 -0
  210. package/schematics/cdk/schematics/utils/index.js +35 -0
  211. package/schematics/cdk/schematics/utils/index.mjs +35 -0
  212. package/schematics/cdk/schematics/utils/parse5-element.d.ts +10 -0
  213. package/schematics/cdk/schematics/utils/parse5-element.js +31 -0
  214. package/schematics/cdk/schematics/utils/parse5-element.mjs +31 -0
  215. package/schematics/cdk/schematics/utils/project-index-file.d.ts +11 -0
  216. package/schematics/cdk/schematics/utils/project-index-file.js +21 -0
  217. package/schematics/cdk/schematics/utils/project-index-file.mjs +21 -0
  218. package/schematics/cdk/schematics/utils/project-main-file.d.ts +11 -0
  219. package/schematics/cdk/schematics/utils/project-main-file.js +23 -0
  220. package/schematics/cdk/schematics/utils/project-main-file.mjs +23 -0
  221. package/schematics/cdk/schematics/utils/project-style-file.d.ts +13 -0
  222. package/schematics/cdk/schematics/utils/project-style-file.js +42 -0
  223. package/schematics/cdk/schematics/utils/project-style-file.mjs +42 -0
  224. package/schematics/cdk/schematics/utils/project-targets.d.ts +18 -0
  225. package/schematics/cdk/schematics/utils/project-targets.js +34 -0
  226. package/schematics/cdk/schematics/utils/project-targets.mjs +34 -0
  227. package/schematics/cdk/schematics/utils/project-tsconfig-paths.d.ts +14 -0
  228. package/schematics/cdk/schematics/utils/project-tsconfig-paths.js +50 -0
  229. package/schematics/cdk/schematics/utils/project-tsconfig-paths.mjs +50 -0
  230. package/schematics/cdk/schematics/utils/schematic-options.d.ts +17 -0
  231. package/schematics/cdk/schematics/utils/schematic-options.js +58 -0
  232. package/schematics/cdk/schematics/utils/schematic-options.mjs +58 -0
  233. package/schematics/cdk/schematics/utils/vendored-ast-utils/index.d.ts +70 -0
  234. package/schematics/cdk/schematics/utils/vendored-ast-utils/index.js +480 -0
  235. package/schematics/cdk/schematics/utils/vendored-ast-utils/index.mjs +480 -0
  236. package/schematics/ng-add/index.js +1 -1
  237. package/schematics/ng-generate/grid/index.js +1 -1
  238. package/schematics/ng-generate/grid/index.ts +1 -1
  239. package/schematics/theming/theming.js +1 -1
@@ -0,0 +1,52 @@
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.io/license
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.findOutputsOnElementWithAttr = exports.findOutputsOnElementWithTag = exports.findInputsOnElementWithAttr = exports.findInputsOnElementWithTag = void 0;
11
+ const elements_1 = require("./elements");
12
+ /** Finds the specified Angular @Input in the given elements with tag name. */
13
+ function findInputsOnElementWithTag(html, inputName, tagNames) {
14
+ return [
15
+ // Inputs can be also used without brackets (e.g. `<mat-toolbar color="primary">`)
16
+ ...(0, elements_1.findAttributeOnElementWithTag)(html, inputName, tagNames),
17
+ // Add one column to the mapped offset because the first bracket for the @Input
18
+ // is part of the attribute and therefore also part of the offset. We only want to return
19
+ // the offset for the inner name of the bracketed input.
20
+ ...(0, elements_1.findAttributeOnElementWithTag)(html, `[${inputName}]`, tagNames).map(offset => offset + 1),
21
+ ];
22
+ }
23
+ exports.findInputsOnElementWithTag = findInputsOnElementWithTag;
24
+ /** Finds the specified Angular @Input in elements that have one of the specified attributes. */
25
+ function findInputsOnElementWithAttr(html, inputName, attrs) {
26
+ return [
27
+ // Inputs can be also used without brackets (e.g. `<button mat-button color="primary">`)
28
+ ...(0, elements_1.findAttributeOnElementWithAttrs)(html, inputName, attrs),
29
+ // Add one column to the mapped offset because the first bracket for the @Input
30
+ // is part of the attribute and therefore also part of the offset. We only want to return
31
+ // the offset for the inner name of the bracketed input.
32
+ ...(0, elements_1.findAttributeOnElementWithAttrs)(html, `[${inputName}]`, attrs).map(offset => offset + 1),
33
+ ];
34
+ }
35
+ exports.findInputsOnElementWithAttr = findInputsOnElementWithAttr;
36
+ /** Finds the specified Angular @Output in the given elements with tag name. */
37
+ function findOutputsOnElementWithTag(html, outputName, tagNames) {
38
+ // Add one column to the mapped offset because the first parenthesis for the @Output
39
+ // is part of the attribute and therefore also part of the offset. We only want to return
40
+ // the offset for the inner name of the output.
41
+ return (0, elements_1.findAttributeOnElementWithTag)(html, `(${outputName})`, tagNames).map(offset => offset + 1);
42
+ }
43
+ exports.findOutputsOnElementWithTag = findOutputsOnElementWithTag;
44
+ /** Finds the specified Angular @Output in elements that have one of the specified attributes. */
45
+ function findOutputsOnElementWithAttr(html, outputName, attrs) {
46
+ // Add one column to the mapped offset because the first bracket for the @Output
47
+ // is part of the attribute and therefore also part of the offset. We only want to return
48
+ // the offset for the inner name of the output.
49
+ return (0, elements_1.findAttributeOnElementWithAttrs)(html, `(${outputName})`, attrs).map(offset => offset + 1);
50
+ }
51
+ exports.findOutputsOnElementWithAttr = findOutputsOnElementWithAttr;
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvc2NoZW1hdGljcy9uZy11cGRhdGUvaHRtbC1wYXJzaW5nL2FuZ3VsYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBRUgseUNBQTBGO0FBRTFGLDhFQUE4RTtBQUM5RSxTQUFnQiwwQkFBMEIsQ0FBQyxJQUFZLEVBQUUsU0FBaUIsRUFBRSxRQUFrQjtJQUM1RixPQUFPO1FBQ0wsa0ZBQWtGO1FBQ2xGLEdBQUcsSUFBQSx3Q0FBNkIsRUFBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQztRQUMzRCwrRUFBK0U7UUFDL0UseUZBQXlGO1FBQ3pGLHdEQUF3RDtRQUN4RCxHQUFHLElBQUEsd0NBQTZCLEVBQUMsSUFBSSxFQUFFLElBQUksU0FBUyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztLQUM3RixDQUFDO0FBQ0osQ0FBQztBQVRELGdFQVNDO0FBRUQsZ0dBQWdHO0FBQ2hHLFNBQWdCLDJCQUEyQixDQUFDLElBQVksRUFBRSxTQUFpQixFQUFFLEtBQWU7SUFDMUYsT0FBTztRQUNMLHdGQUF3RjtRQUN4RixHQUFHLElBQUEsMENBQStCLEVBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUM7UUFDMUQsK0VBQStFO1FBQy9FLHlGQUF5RjtRQUN6Rix3REFBd0Q7UUFDeEQsR0FBRyxJQUFBLDBDQUErQixFQUFDLElBQUksRUFBRSxJQUFJLFNBQVMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7S0FDNUYsQ0FBQztBQUNKLENBQUM7QUFURCxrRUFTQztBQUVELCtFQUErRTtBQUMvRSxTQUFnQiwyQkFBMkIsQ0FBQyxJQUFZLEVBQUUsVUFBa0IsRUFBRSxRQUFrQjtJQUM5RixvRkFBb0Y7SUFDcEYseUZBQXlGO0lBQ3pGLCtDQUErQztJQUMvQyxPQUFPLElBQUEsd0NBQTZCLEVBQUMsSUFBSSxFQUFFLElBQUksVUFBVSxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3BHLENBQUM7QUFMRCxrRUFLQztBQUVELGlHQUFpRztBQUNqRyxTQUFnQiw0QkFBNEIsQ0FBQyxJQUFZLEVBQUUsVUFBa0IsRUFBRSxLQUFlO0lBQzVGLGdGQUFnRjtJQUNoRix5RkFBeUY7SUFDekYsK0NBQStDO0lBQy9DLE9BQU8sSUFBQSwwQ0FBK0IsRUFBQyxJQUFJLEVBQUUsSUFBSSxVQUFVLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDbkcsQ0FBQztBQUxELG9FQUtDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7ZmluZEF0dHJpYnV0ZU9uRWxlbWVudFdpdGhBdHRycywgZmluZEF0dHJpYnV0ZU9uRWxlbWVudFdpdGhUYWd9IGZyb20gJy4vZWxlbWVudHMnO1xuXG4vKiogRmluZHMgdGhlIHNwZWNpZmllZCBBbmd1bGFyIEBJbnB1dCBpbiB0aGUgZ2l2ZW4gZWxlbWVudHMgd2l0aCB0YWcgbmFtZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kSW5wdXRzT25FbGVtZW50V2l0aFRhZyhodG1sOiBzdHJpbmcsIGlucHV0TmFtZTogc3RyaW5nLCB0YWdOYW1lczogc3RyaW5nW10pIHtcbiAgcmV0dXJuIFtcbiAgICAvLyBJbnB1dHMgY2FuIGJlIGFsc28gdXNlZCB3aXRob3V0IGJyYWNrZXRzIChlLmcuIGA8bWF0LXRvb2xiYXIgY29sb3I9XCJwcmltYXJ5XCI+YClcbiAgICAuLi5maW5kQXR0cmlidXRlT25FbGVtZW50V2l0aFRhZyhodG1sLCBpbnB1dE5hbWUsIHRhZ05hbWVzKSxcbiAgICAvLyBBZGQgb25lIGNvbHVtbiB0byB0aGUgbWFwcGVkIG9mZnNldCBiZWNhdXNlIHRoZSBmaXJzdCBicmFja2V0IGZvciB0aGUgQElucHV0XG4gICAgLy8gaXMgcGFydCBvZiB0aGUgYXR0cmlidXRlIGFuZCB0aGVyZWZvcmUgYWxzbyBwYXJ0IG9mIHRoZSBvZmZzZXQuIFdlIG9ubHkgd2FudCB0byByZXR1cm5cbiAgICAvLyB0aGUgb2Zmc2V0IGZvciB0aGUgaW5uZXIgbmFtZSBvZiB0aGUgYnJhY2tldGVkIGlucHV0LlxuICAgIC4uLmZpbmRBdHRyaWJ1dGVPbkVsZW1lbnRXaXRoVGFnKGh0bWwsIGBbJHtpbnB1dE5hbWV9XWAsIHRhZ05hbWVzKS5tYXAob2Zmc2V0ID0+IG9mZnNldCArIDEpLFxuICBdO1xufVxuXG4vKiogRmluZHMgdGhlIHNwZWNpZmllZCBBbmd1bGFyIEBJbnB1dCBpbiBlbGVtZW50cyB0aGF0IGhhdmUgb25lIG9mIHRoZSBzcGVjaWZpZWQgYXR0cmlidXRlcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kSW5wdXRzT25FbGVtZW50V2l0aEF0dHIoaHRtbDogc3RyaW5nLCBpbnB1dE5hbWU6IHN0cmluZywgYXR0cnM6IHN0cmluZ1tdKSB7XG4gIHJldHVybiBbXG4gICAgLy8gSW5wdXRzIGNhbiBiZSBhbHNvIHVzZWQgd2l0aG91dCBicmFja2V0cyAoZS5nLiBgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiPmApXG4gICAgLi4uZmluZEF0dHJpYnV0ZU9uRWxlbWVudFdpdGhBdHRycyhodG1sLCBpbnB1dE5hbWUsIGF0dHJzKSxcbiAgICAvLyBBZGQgb25lIGNvbHVtbiB0byB0aGUgbWFwcGVkIG9mZnNldCBiZWNhdXNlIHRoZSBmaXJzdCBicmFja2V0IGZvciB0aGUgQElucHV0XG4gICAgLy8gaXMgcGFydCBvZiB0aGUgYXR0cmlidXRlIGFuZCB0aGVyZWZvcmUgYWxzbyBwYXJ0IG9mIHRoZSBvZmZzZXQuIFdlIG9ubHkgd2FudCB0byByZXR1cm5cbiAgICAvLyB0aGUgb2Zmc2V0IGZvciB0aGUgaW5uZXIgbmFtZSBvZiB0aGUgYnJhY2tldGVkIGlucHV0LlxuICAgIC4uLmZpbmRBdHRyaWJ1dGVPbkVsZW1lbnRXaXRoQXR0cnMoaHRtbCwgYFske2lucHV0TmFtZX1dYCwgYXR0cnMpLm1hcChvZmZzZXQgPT4gb2Zmc2V0ICsgMSksXG4gIF07XG59XG5cbi8qKiBGaW5kcyB0aGUgc3BlY2lmaWVkIEFuZ3VsYXIgQE91dHB1dCBpbiB0aGUgZ2l2ZW4gZWxlbWVudHMgd2l0aCB0YWcgbmFtZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kT3V0cHV0c09uRWxlbWVudFdpdGhUYWcoaHRtbDogc3RyaW5nLCBvdXRwdXROYW1lOiBzdHJpbmcsIHRhZ05hbWVzOiBzdHJpbmdbXSkge1xuICAvLyBBZGQgb25lIGNvbHVtbiB0byB0aGUgbWFwcGVkIG9mZnNldCBiZWNhdXNlIHRoZSBmaXJzdCBwYXJlbnRoZXNpcyBmb3IgdGhlIEBPdXRwdXRcbiAgLy8gaXMgcGFydCBvZiB0aGUgYXR0cmlidXRlIGFuZCB0aGVyZWZvcmUgYWxzbyBwYXJ0IG9mIHRoZSBvZmZzZXQuIFdlIG9ubHkgd2FudCB0byByZXR1cm5cbiAgLy8gdGhlIG9mZnNldCBmb3IgdGhlIGlubmVyIG5hbWUgb2YgdGhlIG91dHB1dC5cbiAgcmV0dXJuIGZpbmRBdHRyaWJ1dGVPbkVsZW1lbnRXaXRoVGFnKGh0bWwsIGAoJHtvdXRwdXROYW1lfSlgLCB0YWdOYW1lcykubWFwKG9mZnNldCA9PiBvZmZzZXQgKyAxKTtcbn1cblxuLyoqIEZpbmRzIHRoZSBzcGVjaWZpZWQgQW5ndWxhciBAT3V0cHV0IGluIGVsZW1lbnRzIHRoYXQgaGF2ZSBvbmUgb2YgdGhlIHNwZWNpZmllZCBhdHRyaWJ1dGVzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRPdXRwdXRzT25FbGVtZW50V2l0aEF0dHIoaHRtbDogc3RyaW5nLCBvdXRwdXROYW1lOiBzdHJpbmcsIGF0dHJzOiBzdHJpbmdbXSkge1xuICAvLyBBZGQgb25lIGNvbHVtbiB0byB0aGUgbWFwcGVkIG9mZnNldCBiZWNhdXNlIHRoZSBmaXJzdCBicmFja2V0IGZvciB0aGUgQE91dHB1dFxuICAvLyBpcyBwYXJ0IG9mIHRoZSBhdHRyaWJ1dGUgYW5kIHRoZXJlZm9yZSBhbHNvIHBhcnQgb2YgdGhlIG9mZnNldC4gV2Ugb25seSB3YW50IHRvIHJldHVyblxuICAvLyB0aGUgb2Zmc2V0IGZvciB0aGUgaW5uZXIgbmFtZSBvZiB0aGUgb3V0cHV0LlxuICByZXR1cm4gZmluZEF0dHJpYnV0ZU9uRWxlbWVudFdpdGhBdHRycyhodG1sLCBgKCR7b3V0cHV0TmFtZX0pYCwgYXR0cnMpLm1hcChvZmZzZXQgPT4gb2Zmc2V0ICsgMSk7XG59XG4iXX0=
@@ -0,0 +1,52 @@
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.io/license
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.findOutputsOnElementWithAttr = exports.findOutputsOnElementWithTag = exports.findInputsOnElementWithAttr = exports.findInputsOnElementWithTag = void 0;
11
+ const elements_1 = require("./elements");
12
+ /** Finds the specified Angular @Input in the given elements with tag name. */
13
+ function findInputsOnElementWithTag(html, inputName, tagNames) {
14
+ return [
15
+ // Inputs can be also used without brackets (e.g. `<mat-toolbar color="primary">`)
16
+ ...(0, elements_1.findAttributeOnElementWithTag)(html, inputName, tagNames),
17
+ // Add one column to the mapped offset because the first bracket for the @Input
18
+ // is part of the attribute and therefore also part of the offset. We only want to return
19
+ // the offset for the inner name of the bracketed input.
20
+ ...(0, elements_1.findAttributeOnElementWithTag)(html, `[${inputName}]`, tagNames).map(offset => offset + 1),
21
+ ];
22
+ }
23
+ exports.findInputsOnElementWithTag = findInputsOnElementWithTag;
24
+ /** Finds the specified Angular @Input in elements that have one of the specified attributes. */
25
+ function findInputsOnElementWithAttr(html, inputName, attrs) {
26
+ return [
27
+ // Inputs can be also used without brackets (e.g. `<button mat-button color="primary">`)
28
+ ...(0, elements_1.findAttributeOnElementWithAttrs)(html, inputName, attrs),
29
+ // Add one column to the mapped offset because the first bracket for the @Input
30
+ // is part of the attribute and therefore also part of the offset. We only want to return
31
+ // the offset for the inner name of the bracketed input.
32
+ ...(0, elements_1.findAttributeOnElementWithAttrs)(html, `[${inputName}]`, attrs).map(offset => offset + 1),
33
+ ];
34
+ }
35
+ exports.findInputsOnElementWithAttr = findInputsOnElementWithAttr;
36
+ /** Finds the specified Angular @Output in the given elements with tag name. */
37
+ function findOutputsOnElementWithTag(html, outputName, tagNames) {
38
+ // Add one column to the mapped offset because the first parenthesis for the @Output
39
+ // is part of the attribute and therefore also part of the offset. We only want to return
40
+ // the offset for the inner name of the output.
41
+ return (0, elements_1.findAttributeOnElementWithTag)(html, `(${outputName})`, tagNames).map(offset => offset + 1);
42
+ }
43
+ exports.findOutputsOnElementWithTag = findOutputsOnElementWithTag;
44
+ /** Finds the specified Angular @Output in elements that have one of the specified attributes. */
45
+ function findOutputsOnElementWithAttr(html, outputName, attrs) {
46
+ // Add one column to the mapped offset because the first bracket for the @Output
47
+ // is part of the attribute and therefore also part of the offset. We only want to return
48
+ // the offset for the inner name of the output.
49
+ return (0, elements_1.findAttributeOnElementWithAttrs)(html, `(${outputName})`, attrs).map(offset => offset + 1);
50
+ }
51
+ exports.findOutputsOnElementWithAttr = findOutputsOnElementWithAttr;
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvc2NoZW1hdGljcy9uZy11cGRhdGUvaHRtbC1wYXJzaW5nL2FuZ3VsYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBRUgseUNBQTBGO0FBRTFGLDhFQUE4RTtBQUM5RSxTQUFnQiwwQkFBMEIsQ0FBQyxJQUFZLEVBQUUsU0FBaUIsRUFBRSxRQUFrQjtJQUM1RixPQUFPO1FBQ0wsa0ZBQWtGO1FBQ2xGLEdBQUcsSUFBQSx3Q0FBNkIsRUFBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQztRQUMzRCwrRUFBK0U7UUFDL0UseUZBQXlGO1FBQ3pGLHdEQUF3RDtRQUN4RCxHQUFHLElBQUEsd0NBQTZCLEVBQUMsSUFBSSxFQUFFLElBQUksU0FBUyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztLQUM3RixDQUFDO0FBQ0osQ0FBQztBQVRELGdFQVNDO0FBRUQsZ0dBQWdHO0FBQ2hHLFNBQWdCLDJCQUEyQixDQUFDLElBQVksRUFBRSxTQUFpQixFQUFFLEtBQWU7SUFDMUYsT0FBTztRQUNMLHdGQUF3RjtRQUN4RixHQUFHLElBQUEsMENBQStCLEVBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUM7UUFDMUQsK0VBQStFO1FBQy9FLHlGQUF5RjtRQUN6Rix3REFBd0Q7UUFDeEQsR0FBRyxJQUFBLDBDQUErQixFQUFDLElBQUksRUFBRSxJQUFJLFNBQVMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7S0FDNUYsQ0FBQztBQUNKLENBQUM7QUFURCxrRUFTQztBQUVELCtFQUErRTtBQUMvRSxTQUFnQiwyQkFBMkIsQ0FBQyxJQUFZLEVBQUUsVUFBa0IsRUFBRSxRQUFrQjtJQUM5RixvRkFBb0Y7SUFDcEYseUZBQXlGO0lBQ3pGLCtDQUErQztJQUMvQyxPQUFPLElBQUEsd0NBQTZCLEVBQUMsSUFBSSxFQUFFLElBQUksVUFBVSxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3BHLENBQUM7QUFMRCxrRUFLQztBQUVELGlHQUFpRztBQUNqRyxTQUFnQiw0QkFBNEIsQ0FBQyxJQUFZLEVBQUUsVUFBa0IsRUFBRSxLQUFlO0lBQzVGLGdGQUFnRjtJQUNoRix5RkFBeUY7SUFDekYsK0NBQStDO0lBQy9DLE9BQU8sSUFBQSwwQ0FBK0IsRUFBQyxJQUFJLEVBQUUsSUFBSSxVQUFVLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDbkcsQ0FBQztBQUxELG9FQUtDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7ZmluZEF0dHJpYnV0ZU9uRWxlbWVudFdpdGhBdHRycywgZmluZEF0dHJpYnV0ZU9uRWxlbWVudFdpdGhUYWd9IGZyb20gJy4vZWxlbWVudHMnO1xuXG4vKiogRmluZHMgdGhlIHNwZWNpZmllZCBBbmd1bGFyIEBJbnB1dCBpbiB0aGUgZ2l2ZW4gZWxlbWVudHMgd2l0aCB0YWcgbmFtZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kSW5wdXRzT25FbGVtZW50V2l0aFRhZyhodG1sOiBzdHJpbmcsIGlucHV0TmFtZTogc3RyaW5nLCB0YWdOYW1lczogc3RyaW5nW10pIHtcbiAgcmV0dXJuIFtcbiAgICAvLyBJbnB1dHMgY2FuIGJlIGFsc28gdXNlZCB3aXRob3V0IGJyYWNrZXRzIChlLmcuIGA8bWF0LXRvb2xiYXIgY29sb3I9XCJwcmltYXJ5XCI+YClcbiAgICAuLi5maW5kQXR0cmlidXRlT25FbGVtZW50V2l0aFRhZyhodG1sLCBpbnB1dE5hbWUsIHRhZ05hbWVzKSxcbiAgICAvLyBBZGQgb25lIGNvbHVtbiB0byB0aGUgbWFwcGVkIG9mZnNldCBiZWNhdXNlIHRoZSBmaXJzdCBicmFja2V0IGZvciB0aGUgQElucHV0XG4gICAgLy8gaXMgcGFydCBvZiB0aGUgYXR0cmlidXRlIGFuZCB0aGVyZWZvcmUgYWxzbyBwYXJ0IG9mIHRoZSBvZmZzZXQuIFdlIG9ubHkgd2FudCB0byByZXR1cm5cbiAgICAvLyB0aGUgb2Zmc2V0IGZvciB0aGUgaW5uZXIgbmFtZSBvZiB0aGUgYnJhY2tldGVkIGlucHV0LlxuICAgIC4uLmZpbmRBdHRyaWJ1dGVPbkVsZW1lbnRXaXRoVGFnKGh0bWwsIGBbJHtpbnB1dE5hbWV9XWAsIHRhZ05hbWVzKS5tYXAob2Zmc2V0ID0+IG9mZnNldCArIDEpLFxuICBdO1xufVxuXG4vKiogRmluZHMgdGhlIHNwZWNpZmllZCBBbmd1bGFyIEBJbnB1dCBpbiBlbGVtZW50cyB0aGF0IGhhdmUgb25lIG9mIHRoZSBzcGVjaWZpZWQgYXR0cmlidXRlcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kSW5wdXRzT25FbGVtZW50V2l0aEF0dHIoaHRtbDogc3RyaW5nLCBpbnB1dE5hbWU6IHN0cmluZywgYXR0cnM6IHN0cmluZ1tdKSB7XG4gIHJldHVybiBbXG4gICAgLy8gSW5wdXRzIGNhbiBiZSBhbHNvIHVzZWQgd2l0aG91dCBicmFja2V0cyAoZS5nLiBgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiPmApXG4gICAgLi4uZmluZEF0dHJpYnV0ZU9uRWxlbWVudFdpdGhBdHRycyhodG1sLCBpbnB1dE5hbWUsIGF0dHJzKSxcbiAgICAvLyBBZGQgb25lIGNvbHVtbiB0byB0aGUgbWFwcGVkIG9mZnNldCBiZWNhdXNlIHRoZSBmaXJzdCBicmFja2V0IGZvciB0aGUgQElucHV0XG4gICAgLy8gaXMgcGFydCBvZiB0aGUgYXR0cmlidXRlIGFuZCB0aGVyZWZvcmUgYWxzbyBwYXJ0IG9mIHRoZSBvZmZzZXQuIFdlIG9ubHkgd2FudCB0byByZXR1cm5cbiAgICAvLyB0aGUgb2Zmc2V0IGZvciB0aGUgaW5uZXIgbmFtZSBvZiB0aGUgYnJhY2tldGVkIGlucHV0LlxuICAgIC4uLmZpbmRBdHRyaWJ1dGVPbkVsZW1lbnRXaXRoQXR0cnMoaHRtbCwgYFske2lucHV0TmFtZX1dYCwgYXR0cnMpLm1hcChvZmZzZXQgPT4gb2Zmc2V0ICsgMSksXG4gIF07XG59XG5cbi8qKiBGaW5kcyB0aGUgc3BlY2lmaWVkIEFuZ3VsYXIgQE91dHB1dCBpbiB0aGUgZ2l2ZW4gZWxlbWVudHMgd2l0aCB0YWcgbmFtZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kT3V0cHV0c09uRWxlbWVudFdpdGhUYWcoaHRtbDogc3RyaW5nLCBvdXRwdXROYW1lOiBzdHJpbmcsIHRhZ05hbWVzOiBzdHJpbmdbXSkge1xuICAvLyBBZGQgb25lIGNvbHVtbiB0byB0aGUgbWFwcGVkIG9mZnNldCBiZWNhdXNlIHRoZSBmaXJzdCBwYXJlbnRoZXNpcyBmb3IgdGhlIEBPdXRwdXRcbiAgLy8gaXMgcGFydCBvZiB0aGUgYXR0cmlidXRlIGFuZCB0aGVyZWZvcmUgYWxzbyBwYXJ0IG9mIHRoZSBvZmZzZXQuIFdlIG9ubHkgd2FudCB0byByZXR1cm5cbiAgLy8gdGhlIG9mZnNldCBmb3IgdGhlIGlubmVyIG5hbWUgb2YgdGhlIG91dHB1dC5cbiAgcmV0dXJuIGZpbmRBdHRyaWJ1dGVPbkVsZW1lbnRXaXRoVGFnKGh0bWwsIGAoJHtvdXRwdXROYW1lfSlgLCB0YWdOYW1lcykubWFwKG9mZnNldCA9PiBvZmZzZXQgKyAxKTtcbn1cblxuLyoqIEZpbmRzIHRoZSBzcGVjaWZpZWQgQW5ndWxhciBAT3V0cHV0IGluIGVsZW1lbnRzIHRoYXQgaGF2ZSBvbmUgb2YgdGhlIHNwZWNpZmllZCBhdHRyaWJ1dGVzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRPdXRwdXRzT25FbGVtZW50V2l0aEF0dHIoaHRtbDogc3RyaW5nLCBvdXRwdXROYW1lOiBzdHJpbmcsIGF0dHJzOiBzdHJpbmdbXSkge1xuICAvLyBBZGQgb25lIGNvbHVtbiB0byB0aGUgbWFwcGVkIG9mZnNldCBiZWNhdXNlIHRoZSBmaXJzdCBicmFja2V0IGZvciB0aGUgQE91dHB1dFxuICAvLyBpcyBwYXJ0IG9mIHRoZSBhdHRyaWJ1dGUgYW5kIHRoZXJlZm9yZSBhbHNvIHBhcnQgb2YgdGhlIG9mZnNldC4gV2Ugb25seSB3YW50IHRvIHJldHVyblxuICAvLyB0aGUgb2Zmc2V0IGZvciB0aGUgaW5uZXIgbmFtZSBvZiB0aGUgb3V0cHV0LlxuICByZXR1cm4gZmluZEF0dHJpYnV0ZU9uRWxlbWVudFdpdGhBdHRycyhodG1sLCBgKCR7b3V0cHV0TmFtZX0pYCwgYXR0cnMpLm1hcChvZmZzZXQgPT4gb2Zmc2V0ICsgMSk7XG59XG4iXX0=
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import { Element } from 'parse5';
9
+ /**
10
+ * Parses a HTML fragment and traverses all AST nodes in order find elements that
11
+ * include the specified attribute.
12
+ */
13
+ export declare function findElementsWithAttribute(html: string, attributeName: string): Element[];
14
+ /**
15
+ * Finds elements with explicit tag names that also contain the specified attribute. Returns the
16
+ * attribute start offset based on the specified HTML.
17
+ */
18
+ export declare function findAttributeOnElementWithTag(html: string, name: string, tagNames: string[]): number[];
19
+ /**
20
+ * Finds elements that contain the given attribute and contain at least one of the other
21
+ * specified attributes. Returns the primary attribute's start offset based on the specified HTML.
22
+ */
23
+ export declare function findAttributeOnElementWithAttrs(html: string, name: string, attrs: string[]): number[];
24
+ /** Gets the start offset of the given attribute from a Parse5 element. */
25
+ export declare function getStartOffsetOfAttribute(element: any, attributeName: string): number;
@@ -0,0 +1,64 @@
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.io/license
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.getStartOffsetOfAttribute = exports.findAttributeOnElementWithAttrs = exports.findAttributeOnElementWithTag = exports.findElementsWithAttribute = void 0;
11
+ const parse5_1 = require("parse5");
12
+ /**
13
+ * Parses a HTML fragment and traverses all AST nodes in order find elements that
14
+ * include the specified attribute.
15
+ */
16
+ function findElementsWithAttribute(html, attributeName) {
17
+ const document = (0, parse5_1.parseFragment)(html, { sourceCodeLocationInfo: true });
18
+ const elements = [];
19
+ const visitNodes = (nodes) => {
20
+ nodes.forEach(n => {
21
+ var _a;
22
+ const node = n;
23
+ if (node.childNodes) {
24
+ visitNodes(node.childNodes);
25
+ }
26
+ if ((_a = node.attrs) === null || _a === void 0 ? void 0 : _a.some(attr => attr.name === attributeName.toLowerCase())) {
27
+ elements.push(node);
28
+ }
29
+ });
30
+ };
31
+ visitNodes(document.childNodes);
32
+ return elements;
33
+ }
34
+ exports.findElementsWithAttribute = findElementsWithAttribute;
35
+ /**
36
+ * Finds elements with explicit tag names that also contain the specified attribute. Returns the
37
+ * attribute start offset based on the specified HTML.
38
+ */
39
+ function findAttributeOnElementWithTag(html, name, tagNames) {
40
+ return findElementsWithAttribute(html, name)
41
+ .filter(element => tagNames.includes(element.tagName))
42
+ .map(element => getStartOffsetOfAttribute(element, name));
43
+ }
44
+ exports.findAttributeOnElementWithTag = findAttributeOnElementWithTag;
45
+ /**
46
+ * Finds elements that contain the given attribute and contain at least one of the other
47
+ * specified attributes. Returns the primary attribute's start offset based on the specified HTML.
48
+ */
49
+ function findAttributeOnElementWithAttrs(html, name, attrs) {
50
+ return findElementsWithAttribute(html, name)
51
+ .filter(element => attrs.some(attr => hasElementAttribute(element, attr)))
52
+ .map(element => getStartOffsetOfAttribute(element, name));
53
+ }
54
+ exports.findAttributeOnElementWithAttrs = findAttributeOnElementWithAttrs;
55
+ /** Shorthand function that checks if the specified element contains the given attribute. */
56
+ function hasElementAttribute(element, attributeName) {
57
+ return element.attrs && element.attrs.some(attr => attr.name === attributeName.toLowerCase());
58
+ }
59
+ /** Gets the start offset of the given attribute from a Parse5 element. */
60
+ function getStartOffsetOfAttribute(element, attributeName) {
61
+ return element.sourceCodeLocation.attrs[attributeName.toLowerCase()].startOffset;
62
+ }
63
+ exports.getStartOffsetOfAttribute = getStartOffsetOfAttribute;
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvbmctdXBkYXRlL2h0bWwtcGFyc2luZy9lbGVtZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFFSCxtQ0FBeUQ7QUFFekQ7OztHQUdHO0FBQ0gsU0FBZ0IseUJBQXlCLENBQUMsSUFBWSxFQUFFLGFBQXFCO0lBQzNFLE1BQU0sUUFBUSxHQUFHLElBQUEsc0JBQWEsRUFBQyxJQUFJLEVBQUUsRUFBQyxzQkFBc0IsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO0lBQ3JFLE1BQU0sUUFBUSxHQUFjLEVBQUUsQ0FBQztJQUUvQixNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQWtCLEVBQUUsRUFBRTtRQUN4QyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFOztZQUNoQixNQUFNLElBQUksR0FBRyxDQUFZLENBQUM7WUFFMUIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNuQixVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQzdCO1lBRUQsSUFBSSxNQUFBLElBQUksQ0FBQyxLQUFLLDBDQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3ZFLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDckI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGLFVBQVUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFaEMsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQXJCRCw4REFxQkM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQiw2QkFBNkIsQ0FBQyxJQUFZLEVBQUUsSUFBWSxFQUFFLFFBQWtCO0lBQzFGLE9BQU8seUJBQXlCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztTQUN6QyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNyRCxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUM5RCxDQUFDO0FBSkQsc0VBSUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQiwrQkFBK0IsQ0FBQyxJQUFZLEVBQUUsSUFBWSxFQUFFLEtBQWU7SUFDekYsT0FBTyx5QkFBeUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO1NBQ3pDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUN6RSxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUM5RCxDQUFDO0FBSkQsMEVBSUM7QUFFRCw0RkFBNEY7QUFDNUYsU0FBUyxtQkFBbUIsQ0FBQyxPQUFnQixFQUFFLGFBQXFCO0lBQ2xFLE9BQU8sT0FBTyxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDaEcsQ0FBQztBQUVELDBFQUEwRTtBQUMxRSxTQUFnQix5QkFBeUIsQ0FBQyxPQUFZLEVBQUUsYUFBcUI7SUFDM0UsT0FBTyxPQUFPLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQztBQUNuRixDQUFDO0FBRkQsOERBRUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtDaGlsZE5vZGUsIEVsZW1lbnQsIHBhcnNlRnJhZ21lbnR9IGZyb20gJ3BhcnNlNSc7XG5cbi8qKlxuICogUGFyc2VzIGEgSFRNTCBmcmFnbWVudCBhbmQgdHJhdmVyc2VzIGFsbCBBU1Qgbm9kZXMgaW4gb3JkZXIgZmluZCBlbGVtZW50cyB0aGF0XG4gKiBpbmNsdWRlIHRoZSBzcGVjaWZpZWQgYXR0cmlidXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZEVsZW1lbnRzV2l0aEF0dHJpYnV0ZShodG1sOiBzdHJpbmcsIGF0dHJpYnV0ZU5hbWU6IHN0cmluZykge1xuICBjb25zdCBkb2N1bWVudCA9IHBhcnNlRnJhZ21lbnQoaHRtbCwge3NvdXJjZUNvZGVMb2NhdGlvbkluZm86IHRydWV9KTtcbiAgY29uc3QgZWxlbWVudHM6IEVsZW1lbnRbXSA9IFtdO1xuXG4gIGNvbnN0IHZpc2l0Tm9kZXMgPSAobm9kZXM6IENoaWxkTm9kZVtdKSA9PiB7XG4gICAgbm9kZXMuZm9yRWFjaChuID0+IHtcbiAgICAgIGNvbnN0IG5vZGUgPSBuIGFzIEVsZW1lbnQ7XG5cbiAgICAgIGlmIChub2RlLmNoaWxkTm9kZXMpIHtcbiAgICAgICAgdmlzaXROb2Rlcyhub2RlLmNoaWxkTm9kZXMpO1xuICAgICAgfVxuXG4gICAgICBpZiAobm9kZS5hdHRycz8uc29tZShhdHRyID0+IGF0dHIubmFtZSA9PT0gYXR0cmlidXRlTmFtZS50b0xvd2VyQ2FzZSgpKSkge1xuICAgICAgICBlbGVtZW50cy5wdXNoKG5vZGUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuXG4gIHZpc2l0Tm9kZXMoZG9jdW1lbnQuY2hpbGROb2Rlcyk7XG5cbiAgcmV0dXJuIGVsZW1lbnRzO1xufVxuXG4vKipcbiAqIEZpbmRzIGVsZW1lbnRzIHdpdGggZXhwbGljaXQgdGFnIG5hbWVzIHRoYXQgYWxzbyBjb250YWluIHRoZSBzcGVjaWZpZWQgYXR0cmlidXRlLiBSZXR1cm5zIHRoZVxuICogYXR0cmlidXRlIHN0YXJ0IG9mZnNldCBiYXNlZCBvbiB0aGUgc3BlY2lmaWVkIEhUTUwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kQXR0cmlidXRlT25FbGVtZW50V2l0aFRhZyhodG1sOiBzdHJpbmcsIG5hbWU6IHN0cmluZywgdGFnTmFtZXM6IHN0cmluZ1tdKSB7XG4gIHJldHVybiBmaW5kRWxlbWVudHNXaXRoQXR0cmlidXRlKGh0bWwsIG5hbWUpXG4gICAgLmZpbHRlcihlbGVtZW50ID0+IHRhZ05hbWVzLmluY2x1ZGVzKGVsZW1lbnQudGFnTmFtZSkpXG4gICAgLm1hcChlbGVtZW50ID0+IGdldFN0YXJ0T2Zmc2V0T2ZBdHRyaWJ1dGUoZWxlbWVudCwgbmFtZSkpO1xufVxuXG4vKipcbiAqIEZpbmRzIGVsZW1lbnRzIHRoYXQgY29udGFpbiB0aGUgZ2l2ZW4gYXR0cmlidXRlIGFuZCBjb250YWluIGF0IGxlYXN0IG9uZSBvZiB0aGUgb3RoZXJcbiAqIHNwZWNpZmllZCBhdHRyaWJ1dGVzLiBSZXR1cm5zIHRoZSBwcmltYXJ5IGF0dHJpYnV0ZSdzIHN0YXJ0IG9mZnNldCBiYXNlZCBvbiB0aGUgc3BlY2lmaWVkIEhUTUwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kQXR0cmlidXRlT25FbGVtZW50V2l0aEF0dHJzKGh0bWw6IHN0cmluZywgbmFtZTogc3RyaW5nLCBhdHRyczogc3RyaW5nW10pIHtcbiAgcmV0dXJuIGZpbmRFbGVtZW50c1dpdGhBdHRyaWJ1dGUoaHRtbCwgbmFtZSlcbiAgICAuZmlsdGVyKGVsZW1lbnQgPT4gYXR0cnMuc29tZShhdHRyID0+IGhhc0VsZW1lbnRBdHRyaWJ1dGUoZWxlbWVudCwgYXR0cikpKVxuICAgIC5tYXAoZWxlbWVudCA9PiBnZXRTdGFydE9mZnNldE9mQXR0cmlidXRlKGVsZW1lbnQsIG5hbWUpKTtcbn1cblxuLyoqIFNob3J0aGFuZCBmdW5jdGlvbiB0aGF0IGNoZWNrcyBpZiB0aGUgc3BlY2lmaWVkIGVsZW1lbnQgY29udGFpbnMgdGhlIGdpdmVuIGF0dHJpYnV0ZS4gKi9cbmZ1bmN0aW9uIGhhc0VsZW1lbnRBdHRyaWJ1dGUoZWxlbWVudDogRWxlbWVudCwgYXR0cmlidXRlTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBlbGVtZW50LmF0dHJzICYmIGVsZW1lbnQuYXR0cnMuc29tZShhdHRyID0+IGF0dHIubmFtZSA9PT0gYXR0cmlidXRlTmFtZS50b0xvd2VyQ2FzZSgpKTtcbn1cblxuLyoqIEdldHMgdGhlIHN0YXJ0IG9mZnNldCBvZiB0aGUgZ2l2ZW4gYXR0cmlidXRlIGZyb20gYSBQYXJzZTUgZWxlbWVudC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdGFydE9mZnNldE9mQXR0cmlidXRlKGVsZW1lbnQ6IGFueSwgYXR0cmlidXRlTmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgcmV0dXJuIGVsZW1lbnQuc291cmNlQ29kZUxvY2F0aW9uLmF0dHJzW2F0dHJpYnV0ZU5hbWUudG9Mb3dlckNhc2UoKV0uc3RhcnRPZmZzZXQ7XG59XG4iXX0=
@@ -0,0 +1,64 @@
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.io/license
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.getStartOffsetOfAttribute = exports.findAttributeOnElementWithAttrs = exports.findAttributeOnElementWithTag = exports.findElementsWithAttribute = void 0;
11
+ const parse5_1 = require("parse5");
12
+ /**
13
+ * Parses a HTML fragment and traverses all AST nodes in order find elements that
14
+ * include the specified attribute.
15
+ */
16
+ function findElementsWithAttribute(html, attributeName) {
17
+ const document = (0, parse5_1.parseFragment)(html, { sourceCodeLocationInfo: true });
18
+ const elements = [];
19
+ const visitNodes = (nodes) => {
20
+ nodes.forEach(n => {
21
+ var _a;
22
+ const node = n;
23
+ if (node.childNodes) {
24
+ visitNodes(node.childNodes);
25
+ }
26
+ if ((_a = node.attrs) === null || _a === void 0 ? void 0 : _a.some(attr => attr.name === attributeName.toLowerCase())) {
27
+ elements.push(node);
28
+ }
29
+ });
30
+ };
31
+ visitNodes(document.childNodes);
32
+ return elements;
33
+ }
34
+ exports.findElementsWithAttribute = findElementsWithAttribute;
35
+ /**
36
+ * Finds elements with explicit tag names that also contain the specified attribute. Returns the
37
+ * attribute start offset based on the specified HTML.
38
+ */
39
+ function findAttributeOnElementWithTag(html, name, tagNames) {
40
+ return findElementsWithAttribute(html, name)
41
+ .filter(element => tagNames.includes(element.tagName))
42
+ .map(element => getStartOffsetOfAttribute(element, name));
43
+ }
44
+ exports.findAttributeOnElementWithTag = findAttributeOnElementWithTag;
45
+ /**
46
+ * Finds elements that contain the given attribute and contain at least one of the other
47
+ * specified attributes. Returns the primary attribute's start offset based on the specified HTML.
48
+ */
49
+ function findAttributeOnElementWithAttrs(html, name, attrs) {
50
+ return findElementsWithAttribute(html, name)
51
+ .filter(element => attrs.some(attr => hasElementAttribute(element, attr)))
52
+ .map(element => getStartOffsetOfAttribute(element, name));
53
+ }
54
+ exports.findAttributeOnElementWithAttrs = findAttributeOnElementWithAttrs;
55
+ /** Shorthand function that checks if the specified element contains the given attribute. */
56
+ function hasElementAttribute(element, attributeName) {
57
+ return element.attrs && element.attrs.some(attr => attr.name === attributeName.toLowerCase());
58
+ }
59
+ /** Gets the start offset of the given attribute from a Parse5 element. */
60
+ function getStartOffsetOfAttribute(element, attributeName) {
61
+ return element.sourceCodeLocation.attrs[attributeName.toLowerCase()].startOffset;
62
+ }
63
+ exports.getStartOffsetOfAttribute = getStartOffsetOfAttribute;
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvbmctdXBkYXRlL2h0bWwtcGFyc2luZy9lbGVtZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFFSCxtQ0FBeUQ7QUFFekQ7OztHQUdHO0FBQ0gsU0FBZ0IseUJBQXlCLENBQUMsSUFBWSxFQUFFLGFBQXFCO0lBQzNFLE1BQU0sUUFBUSxHQUFHLElBQUEsc0JBQWEsRUFBQyxJQUFJLEVBQUUsRUFBQyxzQkFBc0IsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO0lBQ3JFLE1BQU0sUUFBUSxHQUFjLEVBQUUsQ0FBQztJQUUvQixNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQWtCLEVBQUUsRUFBRTtRQUN4QyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFOztZQUNoQixNQUFNLElBQUksR0FBRyxDQUFZLENBQUM7WUFFMUIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNuQixVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQzdCO1lBRUQsSUFBSSxNQUFBLElBQUksQ0FBQyxLQUFLLDBDQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3ZFLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDckI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGLFVBQVUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFaEMsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQXJCRCw4REFxQkM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQiw2QkFBNkIsQ0FBQyxJQUFZLEVBQUUsSUFBWSxFQUFFLFFBQWtCO0lBQzFGLE9BQU8seUJBQXlCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztTQUN6QyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNyRCxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUM5RCxDQUFDO0FBSkQsc0VBSUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQiwrQkFBK0IsQ0FBQyxJQUFZLEVBQUUsSUFBWSxFQUFFLEtBQWU7SUFDekYsT0FBTyx5QkFBeUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO1NBQ3pDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUN6RSxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUM5RCxDQUFDO0FBSkQsMEVBSUM7QUFFRCw0RkFBNEY7QUFDNUYsU0FBUyxtQkFBbUIsQ0FBQyxPQUFnQixFQUFFLGFBQXFCO0lBQ2xFLE9BQU8sT0FBTyxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDaEcsQ0FBQztBQUVELDBFQUEwRTtBQUMxRSxTQUFnQix5QkFBeUIsQ0FBQyxPQUFZLEVBQUUsYUFBcUI7SUFDM0UsT0FBTyxPQUFPLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQztBQUNuRixDQUFDO0FBRkQsOERBRUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtDaGlsZE5vZGUsIEVsZW1lbnQsIHBhcnNlRnJhZ21lbnR9IGZyb20gJ3BhcnNlNSc7XG5cbi8qKlxuICogUGFyc2VzIGEgSFRNTCBmcmFnbWVudCBhbmQgdHJhdmVyc2VzIGFsbCBBU1Qgbm9kZXMgaW4gb3JkZXIgZmluZCBlbGVtZW50cyB0aGF0XG4gKiBpbmNsdWRlIHRoZSBzcGVjaWZpZWQgYXR0cmlidXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZEVsZW1lbnRzV2l0aEF0dHJpYnV0ZShodG1sOiBzdHJpbmcsIGF0dHJpYnV0ZU5hbWU6IHN0cmluZykge1xuICBjb25zdCBkb2N1bWVudCA9IHBhcnNlRnJhZ21lbnQoaHRtbCwge3NvdXJjZUNvZGVMb2NhdGlvbkluZm86IHRydWV9KTtcbiAgY29uc3QgZWxlbWVudHM6IEVsZW1lbnRbXSA9IFtdO1xuXG4gIGNvbnN0IHZpc2l0Tm9kZXMgPSAobm9kZXM6IENoaWxkTm9kZVtdKSA9PiB7XG4gICAgbm9kZXMuZm9yRWFjaChuID0+IHtcbiAgICAgIGNvbnN0IG5vZGUgPSBuIGFzIEVsZW1lbnQ7XG5cbiAgICAgIGlmIChub2RlLmNoaWxkTm9kZXMpIHtcbiAgICAgICAgdmlzaXROb2Rlcyhub2RlLmNoaWxkTm9kZXMpO1xuICAgICAgfVxuXG4gICAgICBpZiAobm9kZS5hdHRycz8uc29tZShhdHRyID0+IGF0dHIubmFtZSA9PT0gYXR0cmlidXRlTmFtZS50b0xvd2VyQ2FzZSgpKSkge1xuICAgICAgICBlbGVtZW50cy5wdXNoKG5vZGUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuXG4gIHZpc2l0Tm9kZXMoZG9jdW1lbnQuY2hpbGROb2Rlcyk7XG5cbiAgcmV0dXJuIGVsZW1lbnRzO1xufVxuXG4vKipcbiAqIEZpbmRzIGVsZW1lbnRzIHdpdGggZXhwbGljaXQgdGFnIG5hbWVzIHRoYXQgYWxzbyBjb250YWluIHRoZSBzcGVjaWZpZWQgYXR0cmlidXRlLiBSZXR1cm5zIHRoZVxuICogYXR0cmlidXRlIHN0YXJ0IG9mZnNldCBiYXNlZCBvbiB0aGUgc3BlY2lmaWVkIEhUTUwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kQXR0cmlidXRlT25FbGVtZW50V2l0aFRhZyhodG1sOiBzdHJpbmcsIG5hbWU6IHN0cmluZywgdGFnTmFtZXM6IHN0cmluZ1tdKSB7XG4gIHJldHVybiBmaW5kRWxlbWVudHNXaXRoQXR0cmlidXRlKGh0bWwsIG5hbWUpXG4gICAgLmZpbHRlcihlbGVtZW50ID0+IHRhZ05hbWVzLmluY2x1ZGVzKGVsZW1lbnQudGFnTmFtZSkpXG4gICAgLm1hcChlbGVtZW50ID0+IGdldFN0YXJ0T2Zmc2V0T2ZBdHRyaWJ1dGUoZWxlbWVudCwgbmFtZSkpO1xufVxuXG4vKipcbiAqIEZpbmRzIGVsZW1lbnRzIHRoYXQgY29udGFpbiB0aGUgZ2l2ZW4gYXR0cmlidXRlIGFuZCBjb250YWluIGF0IGxlYXN0IG9uZSBvZiB0aGUgb3RoZXJcbiAqIHNwZWNpZmllZCBhdHRyaWJ1dGVzLiBSZXR1cm5zIHRoZSBwcmltYXJ5IGF0dHJpYnV0ZSdzIHN0YXJ0IG9mZnNldCBiYXNlZCBvbiB0aGUgc3BlY2lmaWVkIEhUTUwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kQXR0cmlidXRlT25FbGVtZW50V2l0aEF0dHJzKGh0bWw6IHN0cmluZywgbmFtZTogc3RyaW5nLCBhdHRyczogc3RyaW5nW10pIHtcbiAgcmV0dXJuIGZpbmRFbGVtZW50c1dpdGhBdHRyaWJ1dGUoaHRtbCwgbmFtZSlcbiAgICAuZmlsdGVyKGVsZW1lbnQgPT4gYXR0cnMuc29tZShhdHRyID0+IGhhc0VsZW1lbnRBdHRyaWJ1dGUoZWxlbWVudCwgYXR0cikpKVxuICAgIC5tYXAoZWxlbWVudCA9PiBnZXRTdGFydE9mZnNldE9mQXR0cmlidXRlKGVsZW1lbnQsIG5hbWUpKTtcbn1cblxuLyoqIFNob3J0aGFuZCBmdW5jdGlvbiB0aGF0IGNoZWNrcyBpZiB0aGUgc3BlY2lmaWVkIGVsZW1lbnQgY29udGFpbnMgdGhlIGdpdmVuIGF0dHJpYnV0ZS4gKi9cbmZ1bmN0aW9uIGhhc0VsZW1lbnRBdHRyaWJ1dGUoZWxlbWVudDogRWxlbWVudCwgYXR0cmlidXRlTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBlbGVtZW50LmF0dHJzICYmIGVsZW1lbnQuYXR0cnMuc29tZShhdHRyID0+IGF0dHIubmFtZSA9PT0gYXR0cmlidXRlTmFtZS50b0xvd2VyQ2FzZSgpKTtcbn1cblxuLyoqIEdldHMgdGhlIHN0YXJ0IG9mZnNldCBvZiB0aGUgZ2l2ZW4gYXR0cmlidXRlIGZyb20gYSBQYXJzZTUgZWxlbWVudC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdGFydE9mZnNldE9mQXR0cmlidXRlKGVsZW1lbnQ6IGFueSwgYXR0cmlidXRlTmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgcmV0dXJuIGVsZW1lbnQuc291cmNlQ29kZUxvY2F0aW9uLmF0dHJzW2F0dHJpYnV0ZU5hbWUudG9Mb3dlckNhc2UoKV0uc3RhcnRPZmZzZXQ7XG59XG4iXX0=
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import { Rule } from '@angular-devkit/schematics';
9
+ /** Entry point for the migration schematics with target of Angular CDK 6.0.0 */
10
+ export declare function updateToV6(): Rule;
11
+ /** Entry point for the migration schematics with target of Angular CDK 7.0.0 */
12
+ export declare function updateToV7(): Rule;
13
+ /** Entry point for the migration schematics with target of Angular CDK 8.0.0 */
14
+ export declare function updateToV8(): Rule;
15
+ /** Entry point for the migration schematics with target of Angular CDK 9.0.0 */
16
+ export declare function updateToV9(): Rule;
17
+ /** Entry point for the migration schematics with target of Angular CDK 10.0.0 */
18
+ export declare function updateToV10(): Rule;
19
+ /** Entry point for the migration schematics with target of Angular CDK 11.0.0 */
20
+ export declare function updateToV11(): Rule;
21
+ /** Entry point for the migration schematics with target of Angular CDK 12.0.0 */
22
+ export declare function updateToV12(): Rule;
23
+ /** Entry point for the migration schematics with target of Angular CDK 13.0.0 */
24
+ export declare function updateToV13(): Rule;
@@ -0,0 +1,66 @@
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.io/license
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.updateToV13 = exports.updateToV12 = exports.updateToV11 = exports.updateToV10 = exports.updateToV9 = exports.updateToV8 = exports.updateToV7 = exports.updateToV6 = void 0;
11
+ const target_version_1 = require("../update-tool/target-version");
12
+ const upgrade_data_1 = require("./upgrade-data");
13
+ const devkit_migration_rule_1 = require("./devkit-migration-rule");
14
+ const tilde_import_migration_1 = require("./migrations/tilde-import-v13/tilde-import-migration");
15
+ const cdkMigrations = [tilde_import_migration_1.TildeImportMigration];
16
+ /** Entry point for the migration schematics with target of Angular CDK 6.0.0 */
17
+ function updateToV6() {
18
+ return (0, devkit_migration_rule_1.createMigrationSchematicRule)(target_version_1.TargetVersion.V6, cdkMigrations, upgrade_data_1.cdkUpgradeData, onMigrationComplete);
19
+ }
20
+ exports.updateToV6 = updateToV6;
21
+ /** Entry point for the migration schematics with target of Angular CDK 7.0.0 */
22
+ function updateToV7() {
23
+ return (0, devkit_migration_rule_1.createMigrationSchematicRule)(target_version_1.TargetVersion.V7, cdkMigrations, upgrade_data_1.cdkUpgradeData, onMigrationComplete);
24
+ }
25
+ exports.updateToV7 = updateToV7;
26
+ /** Entry point for the migration schematics with target of Angular CDK 8.0.0 */
27
+ function updateToV8() {
28
+ return (0, devkit_migration_rule_1.createMigrationSchematicRule)(target_version_1.TargetVersion.V8, cdkMigrations, upgrade_data_1.cdkUpgradeData, onMigrationComplete);
29
+ }
30
+ exports.updateToV8 = updateToV8;
31
+ /** Entry point for the migration schematics with target of Angular CDK 9.0.0 */
32
+ function updateToV9() {
33
+ return (0, devkit_migration_rule_1.createMigrationSchematicRule)(target_version_1.TargetVersion.V9, cdkMigrations, upgrade_data_1.cdkUpgradeData, onMigrationComplete);
34
+ }
35
+ exports.updateToV9 = updateToV9;
36
+ /** Entry point for the migration schematics with target of Angular CDK 10.0.0 */
37
+ function updateToV10() {
38
+ return (0, devkit_migration_rule_1.createMigrationSchematicRule)(target_version_1.TargetVersion.V10, cdkMigrations, upgrade_data_1.cdkUpgradeData, onMigrationComplete);
39
+ }
40
+ exports.updateToV10 = updateToV10;
41
+ /** Entry point for the migration schematics with target of Angular CDK 11.0.0 */
42
+ function updateToV11() {
43
+ return (0, devkit_migration_rule_1.createMigrationSchematicRule)(target_version_1.TargetVersion.V11, cdkMigrations, upgrade_data_1.cdkUpgradeData, onMigrationComplete);
44
+ }
45
+ exports.updateToV11 = updateToV11;
46
+ /** Entry point for the migration schematics with target of Angular CDK 12.0.0 */
47
+ function updateToV12() {
48
+ return (0, devkit_migration_rule_1.createMigrationSchematicRule)(target_version_1.TargetVersion.V12, cdkMigrations, upgrade_data_1.cdkUpgradeData, onMigrationComplete);
49
+ }
50
+ exports.updateToV12 = updateToV12;
51
+ /** Entry point for the migration schematics with target of Angular CDK 13.0.0 */
52
+ function updateToV13() {
53
+ return (0, devkit_migration_rule_1.createMigrationSchematicRule)(target_version_1.TargetVersion.V13, cdkMigrations, upgrade_data_1.cdkUpgradeData, onMigrationComplete);
54
+ }
55
+ exports.updateToV13 = updateToV13;
56
+ /** Function that will be called when the migration completed. */
57
+ function onMigrationComplete(context, targetVersion, hasFailures) {
58
+ context.logger.info('');
59
+ context.logger.info(` ✓ Updated Angular CDK to ${targetVersion}`);
60
+ context.logger.info('');
61
+ if (hasFailures) {
62
+ context.logger.warn(' ⚠ Some issues were detected but could not be fixed automatically. Please check the ' +
63
+ 'output above and fix these issues manually.');
64
+ }
65
+ }
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvbmctdXBkYXRlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUdILGtFQUE0RDtBQUM1RCxpREFBOEM7QUFDOUMsbUVBQThGO0FBQzlGLGlHQUEwRjtBQUUxRixNQUFNLGFBQWEsR0FBOEIsQ0FBQyw2Q0FBb0IsQ0FBQyxDQUFDO0FBRXhFLGdGQUFnRjtBQUNoRixTQUFnQixVQUFVO0lBQ3hCLE9BQU8sSUFBQSxvREFBNEIsRUFDakMsOEJBQWEsQ0FBQyxFQUFFLEVBQ2hCLGFBQWEsRUFDYiw2QkFBYyxFQUNkLG1CQUFtQixDQUNwQixDQUFDO0FBQ0osQ0FBQztBQVBELGdDQU9DO0FBRUQsZ0ZBQWdGO0FBQ2hGLFNBQWdCLFVBQVU7SUFDeEIsT0FBTyxJQUFBLG9EQUE0QixFQUNqQyw4QkFBYSxDQUFDLEVBQUUsRUFDaEIsYUFBYSxFQUNiLDZCQUFjLEVBQ2QsbUJBQW1CLENBQ3BCLENBQUM7QUFDSixDQUFDO0FBUEQsZ0NBT0M7QUFFRCxnRkFBZ0Y7QUFDaEYsU0FBZ0IsVUFBVTtJQUN4QixPQUFPLElBQUEsb0RBQTRCLEVBQ2pDLDhCQUFhLENBQUMsRUFBRSxFQUNoQixhQUFhLEVBQ2IsNkJBQWMsRUFDZCxtQkFBbUIsQ0FDcEIsQ0FBQztBQUNKLENBQUM7QUFQRCxnQ0FPQztBQUVELGdGQUFnRjtBQUNoRixTQUFnQixVQUFVO0lBQ3hCLE9BQU8sSUFBQSxvREFBNEIsRUFDakMsOEJBQWEsQ0FBQyxFQUFFLEVBQ2hCLGFBQWEsRUFDYiw2QkFBYyxFQUNkLG1CQUFtQixDQUNwQixDQUFDO0FBQ0osQ0FBQztBQVBELGdDQU9DO0FBRUQsaUZBQWlGO0FBQ2pGLFNBQWdCLFdBQVc7SUFDekIsT0FBTyxJQUFBLG9EQUE0QixFQUNqQyw4QkFBYSxDQUFDLEdBQUcsRUFDakIsYUFBYSxFQUNiLDZCQUFjLEVBQ2QsbUJBQW1CLENBQ3BCLENBQUM7QUFDSixDQUFDO0FBUEQsa0NBT0M7QUFFRCxpRkFBaUY7QUFDakYsU0FBZ0IsV0FBVztJQUN6QixPQUFPLElBQUEsb0RBQTRCLEVBQ2pDLDhCQUFhLENBQUMsR0FBRyxFQUNqQixhQUFhLEVBQ2IsNkJBQWMsRUFDZCxtQkFBbUIsQ0FDcEIsQ0FBQztBQUNKLENBQUM7QUFQRCxrQ0FPQztBQUVELGlGQUFpRjtBQUNqRixTQUFnQixXQUFXO0lBQ3pCLE9BQU8sSUFBQSxvREFBNEIsRUFDakMsOEJBQWEsQ0FBQyxHQUFHLEVBQ2pCLGFBQWEsRUFDYiw2QkFBYyxFQUNkLG1CQUFtQixDQUNwQixDQUFDO0FBQ0osQ0FBQztBQVBELGtDQU9DO0FBRUQsaUZBQWlGO0FBQ2pGLFNBQWdCLFdBQVc7SUFDekIsT0FBTyxJQUFBLG9EQUE0QixFQUNqQyw4QkFBYSxDQUFDLEdBQUcsRUFDakIsYUFBYSxFQUNiLDZCQUFjLEVBQ2QsbUJBQW1CLENBQ3BCLENBQUM7QUFDSixDQUFDO0FBUEQsa0NBT0M7QUFFRCxpRUFBaUU7QUFDakUsU0FBUyxtQkFBbUIsQ0FDMUIsT0FBeUIsRUFDekIsYUFBNEIsRUFDNUIsV0FBb0I7SUFFcEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDeEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsK0JBQStCLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDcEUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFeEIsSUFBSSxXQUFXLEVBQUU7UUFDZixPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDakIsd0ZBQXdGO1lBQ3RGLDZDQUE2QyxDQUNoRCxDQUFDO0tBQ0g7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7UnVsZSwgU2NoZW1hdGljQ29udGV4dH0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3MnO1xuaW1wb3J0IHtUYXJnZXRWZXJzaW9ufSBmcm9tICcuLi91cGRhdGUtdG9vbC90YXJnZXQtdmVyc2lvbic7XG5pbXBvcnQge2Nka1VwZ3JhZGVEYXRhfSBmcm9tICcuL3VwZ3JhZGUtZGF0YSc7XG5pbXBvcnQge2NyZWF0ZU1pZ3JhdGlvblNjaGVtYXRpY1J1bGUsIE51bGxhYmxlRGV2a2l0TWlncmF0aW9ufSBmcm9tICcuL2RldmtpdC1taWdyYXRpb24tcnVsZSc7XG5pbXBvcnQge1RpbGRlSW1wb3J0TWlncmF0aW9ufSBmcm9tICcuL21pZ3JhdGlvbnMvdGlsZGUtaW1wb3J0LXYxMy90aWxkZS1pbXBvcnQtbWlncmF0aW9uJztcblxuY29uc3QgY2RrTWlncmF0aW9uczogTnVsbGFibGVEZXZraXRNaWdyYXRpb25bXSA9IFtUaWxkZUltcG9ydE1pZ3JhdGlvbl07XG5cbi8qKiBFbnRyeSBwb2ludCBmb3IgdGhlIG1pZ3JhdGlvbiBzY2hlbWF0aWNzIHdpdGggdGFyZ2V0IG9mIEFuZ3VsYXIgQ0RLIDYuMC4wICovXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlVG9WNigpOiBSdWxlIHtcbiAgcmV0dXJuIGNyZWF0ZU1pZ3JhdGlvblNjaGVtYXRpY1J1bGUoXG4gICAgVGFyZ2V0VmVyc2lvbi5WNixcbiAgICBjZGtNaWdyYXRpb25zLFxuICAgIGNka1VwZ3JhZGVEYXRhLFxuICAgIG9uTWlncmF0aW9uQ29tcGxldGUsXG4gICk7XG59XG5cbi8qKiBFbnRyeSBwb2ludCBmb3IgdGhlIG1pZ3JhdGlvbiBzY2hlbWF0aWNzIHdpdGggdGFyZ2V0IG9mIEFuZ3VsYXIgQ0RLIDcuMC4wICovXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlVG9WNygpOiBSdWxlIHtcbiAgcmV0dXJuIGNyZWF0ZU1pZ3JhdGlvblNjaGVtYXRpY1J1bGUoXG4gICAgVGFyZ2V0VmVyc2lvbi5WNyxcbiAgICBjZGtNaWdyYXRpb25zLFxuICAgIGNka1VwZ3JhZGVEYXRhLFxuICAgIG9uTWlncmF0aW9uQ29tcGxldGUsXG4gICk7XG59XG5cbi8qKiBFbnRyeSBwb2ludCBmb3IgdGhlIG1pZ3JhdGlvbiBzY2hlbWF0aWNzIHdpdGggdGFyZ2V0IG9mIEFuZ3VsYXIgQ0RLIDguMC4wICovXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlVG9WOCgpOiBSdWxlIHtcbiAgcmV0dXJuIGNyZWF0ZU1pZ3JhdGlvblNjaGVtYXRpY1J1bGUoXG4gICAgVGFyZ2V0VmVyc2lvbi5WOCxcbiAgICBjZGtNaWdyYXRpb25zLFxuICAgIGNka1VwZ3JhZGVEYXRhLFxuICAgIG9uTWlncmF0aW9uQ29tcGxldGUsXG4gICk7XG59XG5cbi8qKiBFbnRyeSBwb2ludCBmb3IgdGhlIG1pZ3JhdGlvbiBzY2hlbWF0aWNzIHdpdGggdGFyZ2V0IG9mIEFuZ3VsYXIgQ0RLIDkuMC4wICovXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlVG9WOSgpOiBSdWxlIHtcbiAgcmV0dXJuIGNyZWF0ZU1pZ3JhdGlvblNjaGVtYXRpY1J1bGUoXG4gICAgVGFyZ2V0VmVyc2lvbi5WOSxcbiAgICBjZGtNaWdyYXRpb25zLFxuICAgIGNka1VwZ3JhZGVEYXRhLFxuICAgIG9uTWlncmF0aW9uQ29tcGxldGUsXG4gICk7XG59XG5cbi8qKiBFbnRyeSBwb2ludCBmb3IgdGhlIG1pZ3JhdGlvbiBzY2hlbWF0aWNzIHdpdGggdGFyZ2V0IG9mIEFuZ3VsYXIgQ0RLIDEwLjAuMCAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZVRvVjEwKCk6IFJ1bGUge1xuICByZXR1cm4gY3JlYXRlTWlncmF0aW9uU2NoZW1hdGljUnVsZShcbiAgICBUYXJnZXRWZXJzaW9uLlYxMCxcbiAgICBjZGtNaWdyYXRpb25zLFxuICAgIGNka1VwZ3JhZGVEYXRhLFxuICAgIG9uTWlncmF0aW9uQ29tcGxldGUsXG4gICk7XG59XG5cbi8qKiBFbnRyeSBwb2ludCBmb3IgdGhlIG1pZ3JhdGlvbiBzY2hlbWF0aWNzIHdpdGggdGFyZ2V0IG9mIEFuZ3VsYXIgQ0RLIDExLjAuMCAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZVRvVjExKCk6IFJ1bGUge1xuICByZXR1cm4gY3JlYXRlTWlncmF0aW9uU2NoZW1hdGljUnVsZShcbiAgICBUYXJnZXRWZXJzaW9uLlYxMSxcbiAgICBjZGtNaWdyYXRpb25zLFxuICAgIGNka1VwZ3JhZGVEYXRhLFxuICAgIG9uTWlncmF0aW9uQ29tcGxldGUsXG4gICk7XG59XG5cbi8qKiBFbnRyeSBwb2ludCBmb3IgdGhlIG1pZ3JhdGlvbiBzY2hlbWF0aWNzIHdpdGggdGFyZ2V0IG9mIEFuZ3VsYXIgQ0RLIDEyLjAuMCAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZVRvVjEyKCk6IFJ1bGUge1xuICByZXR1cm4gY3JlYXRlTWlncmF0aW9uU2NoZW1hdGljUnVsZShcbiAgICBUYXJnZXRWZXJzaW9uLlYxMixcbiAgICBjZGtNaWdyYXRpb25zLFxuICAgIGNka1VwZ3JhZGVEYXRhLFxuICAgIG9uTWlncmF0aW9uQ29tcGxldGUsXG4gICk7XG59XG5cbi8qKiBFbnRyeSBwb2ludCBmb3IgdGhlIG1pZ3JhdGlvbiBzY2hlbWF0aWNzIHdpdGggdGFyZ2V0IG9mIEFuZ3VsYXIgQ0RLIDEzLjAuMCAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZVRvVjEzKCk6IFJ1bGUge1xuICByZXR1cm4gY3JlYXRlTWlncmF0aW9uU2NoZW1hdGljUnVsZShcbiAgICBUYXJnZXRWZXJzaW9uLlYxMyxcbiAgICBjZGtNaWdyYXRpb25zLFxuICAgIGNka1VwZ3JhZGVEYXRhLFxuICAgIG9uTWlncmF0aW9uQ29tcGxldGUsXG4gICk7XG59XG5cbi8qKiBGdW5jdGlvbiB0aGF0IHdpbGwgYmUgY2FsbGVkIHdoZW4gdGhlIG1pZ3JhdGlvbiBjb21wbGV0ZWQuICovXG5mdW5jdGlvbiBvbk1pZ3JhdGlvbkNvbXBsZXRlKFxuICBjb250ZXh0OiBTY2hlbWF0aWNDb250ZXh0LFxuICB0YXJnZXRWZXJzaW9uOiBUYXJnZXRWZXJzaW9uLFxuICBoYXNGYWlsdXJlczogYm9vbGVhbixcbikge1xuICBjb250ZXh0LmxvZ2dlci5pbmZvKCcnKTtcbiAgY29udGV4dC5sb2dnZXIuaW5mbyhgICDinJMgIFVwZGF0ZWQgQW5ndWxhciBDREsgdG8gJHt0YXJnZXRWZXJzaW9ufWApO1xuICBjb250ZXh0LmxvZ2dlci5pbmZvKCcnKTtcblxuICBpZiAoaGFzRmFpbHVyZXMpIHtcbiAgICBjb250ZXh0LmxvZ2dlci53YXJuKFxuICAgICAgJyAg4pqgICBTb21lIGlzc3VlcyB3ZXJlIGRldGVjdGVkIGJ1dCBjb3VsZCBub3QgYmUgZml4ZWQgYXV0b21hdGljYWxseS4gUGxlYXNlIGNoZWNrIHRoZSAnICtcbiAgICAgICAgJ291dHB1dCBhYm92ZSBhbmQgZml4IHRoZXNlIGlzc3VlcyBtYW51YWxseS4nLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,66 @@
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.io/license
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.updateToV13 = exports.updateToV12 = exports.updateToV11 = exports.updateToV10 = exports.updateToV9 = exports.updateToV8 = exports.updateToV7 = exports.updateToV6 = void 0;
11
+ const target_version_1 = require("../update-tool/target-version");
12
+ const upgrade_data_1 = require("./upgrade-data");
13
+ const devkit_migration_rule_1 = require("./devkit-migration-rule");
14
+ const tilde_import_migration_1 = require("./migrations/tilde-import-v13/tilde-import-migration");
15
+ const cdkMigrations = [tilde_import_migration_1.TildeImportMigration];
16
+ /** Entry point for the migration schematics with target of Angular CDK 6.0.0 */
17
+ function updateToV6() {
18
+ return (0, devkit_migration_rule_1.createMigrationSchematicRule)(target_version_1.TargetVersion.V6, cdkMigrations, upgrade_data_1.cdkUpgradeData, onMigrationComplete);
19
+ }
20
+ exports.updateToV6 = updateToV6;
21
+ /** Entry point for the migration schematics with target of Angular CDK 7.0.0 */
22
+ function updateToV7() {
23
+ return (0, devkit_migration_rule_1.createMigrationSchematicRule)(target_version_1.TargetVersion.V7, cdkMigrations, upgrade_data_1.cdkUpgradeData, onMigrationComplete);
24
+ }
25
+ exports.updateToV7 = updateToV7;
26
+ /** Entry point for the migration schematics with target of Angular CDK 8.0.0 */
27
+ function updateToV8() {
28
+ return (0, devkit_migration_rule_1.createMigrationSchematicRule)(target_version_1.TargetVersion.V8, cdkMigrations, upgrade_data_1.cdkUpgradeData, onMigrationComplete);
29
+ }
30
+ exports.updateToV8 = updateToV8;
31
+ /** Entry point for the migration schematics with target of Angular CDK 9.0.0 */
32
+ function updateToV9() {
33
+ return (0, devkit_migration_rule_1.createMigrationSchematicRule)(target_version_1.TargetVersion.V9, cdkMigrations, upgrade_data_1.cdkUpgradeData, onMigrationComplete);
34
+ }
35
+ exports.updateToV9 = updateToV9;
36
+ /** Entry point for the migration schematics with target of Angular CDK 10.0.0 */
37
+ function updateToV10() {
38
+ return (0, devkit_migration_rule_1.createMigrationSchematicRule)(target_version_1.TargetVersion.V10, cdkMigrations, upgrade_data_1.cdkUpgradeData, onMigrationComplete);
39
+ }
40
+ exports.updateToV10 = updateToV10;
41
+ /** Entry point for the migration schematics with target of Angular CDK 11.0.0 */
42
+ function updateToV11() {
43
+ return (0, devkit_migration_rule_1.createMigrationSchematicRule)(target_version_1.TargetVersion.V11, cdkMigrations, upgrade_data_1.cdkUpgradeData, onMigrationComplete);
44
+ }
45
+ exports.updateToV11 = updateToV11;
46
+ /** Entry point for the migration schematics with target of Angular CDK 12.0.0 */
47
+ function updateToV12() {
48
+ return (0, devkit_migration_rule_1.createMigrationSchematicRule)(target_version_1.TargetVersion.V12, cdkMigrations, upgrade_data_1.cdkUpgradeData, onMigrationComplete);
49
+ }
50
+ exports.updateToV12 = updateToV12;
51
+ /** Entry point for the migration schematics with target of Angular CDK 13.0.0 */
52
+ function updateToV13() {
53
+ return (0, devkit_migration_rule_1.createMigrationSchematicRule)(target_version_1.TargetVersion.V13, cdkMigrations, upgrade_data_1.cdkUpgradeData, onMigrationComplete);
54
+ }
55
+ exports.updateToV13 = updateToV13;
56
+ /** Function that will be called when the migration completed. */
57
+ function onMigrationComplete(context, targetVersion, hasFailures) {
58
+ context.logger.info('');
59
+ context.logger.info(` ✓ Updated Angular CDK to ${targetVersion}`);
60
+ context.logger.info('');
61
+ if (hasFailures) {
62
+ context.logger.warn(' ⚠ Some issues were detected but could not be fixed automatically. Please check the ' +
63
+ 'output above and fix these issues manually.');
64
+ }
65
+ }
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvbmctdXBkYXRlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUdILGtFQUE0RDtBQUM1RCxpREFBOEM7QUFDOUMsbUVBQThGO0FBQzlGLGlHQUEwRjtBQUUxRixNQUFNLGFBQWEsR0FBOEIsQ0FBQyw2Q0FBb0IsQ0FBQyxDQUFDO0FBRXhFLGdGQUFnRjtBQUNoRixTQUFnQixVQUFVO0lBQ3hCLE9BQU8sSUFBQSxvREFBNEIsRUFDakMsOEJBQWEsQ0FBQyxFQUFFLEVBQ2hCLGFBQWEsRUFDYiw2QkFBYyxFQUNkLG1CQUFtQixDQUNwQixDQUFDO0FBQ0osQ0FBQztBQVBELGdDQU9DO0FBRUQsZ0ZBQWdGO0FBQ2hGLFNBQWdCLFVBQVU7SUFDeEIsT0FBTyxJQUFBLG9EQUE0QixFQUNqQyw4QkFBYSxDQUFDLEVBQUUsRUFDaEIsYUFBYSxFQUNiLDZCQUFjLEVBQ2QsbUJBQW1CLENBQ3BCLENBQUM7QUFDSixDQUFDO0FBUEQsZ0NBT0M7QUFFRCxnRkFBZ0Y7QUFDaEYsU0FBZ0IsVUFBVTtJQUN4QixPQUFPLElBQUEsb0RBQTRCLEVBQ2pDLDhCQUFhLENBQUMsRUFBRSxFQUNoQixhQUFhLEVBQ2IsNkJBQWMsRUFDZCxtQkFBbUIsQ0FDcEIsQ0FBQztBQUNKLENBQUM7QUFQRCxnQ0FPQztBQUVELGdGQUFnRjtBQUNoRixTQUFnQixVQUFVO0lBQ3hCLE9BQU8sSUFBQSxvREFBNEIsRUFDakMsOEJBQWEsQ0FBQyxFQUFFLEVBQ2hCLGFBQWEsRUFDYiw2QkFBYyxFQUNkLG1CQUFtQixDQUNwQixDQUFDO0FBQ0osQ0FBQztBQVBELGdDQU9DO0FBRUQsaUZBQWlGO0FBQ2pGLFNBQWdCLFdBQVc7SUFDekIsT0FBTyxJQUFBLG9EQUE0QixFQUNqQyw4QkFBYSxDQUFDLEdBQUcsRUFDakIsYUFBYSxFQUNiLDZCQUFjLEVBQ2QsbUJBQW1CLENBQ3BCLENBQUM7QUFDSixDQUFDO0FBUEQsa0NBT0M7QUFFRCxpRkFBaUY7QUFDakYsU0FBZ0IsV0FBVztJQUN6QixPQUFPLElBQUEsb0RBQTRCLEVBQ2pDLDhCQUFhLENBQUMsR0FBRyxFQUNqQixhQUFhLEVBQ2IsNkJBQWMsRUFDZCxtQkFBbUIsQ0FDcEIsQ0FBQztBQUNKLENBQUM7QUFQRCxrQ0FPQztBQUVELGlGQUFpRjtBQUNqRixTQUFnQixXQUFXO0lBQ3pCLE9BQU8sSUFBQSxvREFBNEIsRUFDakMsOEJBQWEsQ0FBQyxHQUFHLEVBQ2pCLGFBQWEsRUFDYiw2QkFBYyxFQUNkLG1CQUFtQixDQUNwQixDQUFDO0FBQ0osQ0FBQztBQVBELGtDQU9DO0FBRUQsaUZBQWlGO0FBQ2pGLFNBQWdCLFdBQVc7SUFDekIsT0FBTyxJQUFBLG9EQUE0QixFQUNqQyw4QkFBYSxDQUFDLEdBQUcsRUFDakIsYUFBYSxFQUNiLDZCQUFjLEVBQ2QsbUJBQW1CLENBQ3BCLENBQUM7QUFDSixDQUFDO0FBUEQsa0NBT0M7QUFFRCxpRUFBaUU7QUFDakUsU0FBUyxtQkFBbUIsQ0FDMUIsT0FBeUIsRUFDekIsYUFBNEIsRUFDNUIsV0FBb0I7SUFFcEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDeEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsK0JBQStCLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDcEUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFeEIsSUFBSSxXQUFXLEVBQUU7UUFDZixPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDakIsd0ZBQXdGO1lBQ3RGLDZDQUE2QyxDQUNoRCxDQUFDO0tBQ0g7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7UnVsZSwgU2NoZW1hdGljQ29udGV4dH0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3MnO1xuaW1wb3J0IHtUYXJnZXRWZXJzaW9ufSBmcm9tICcuLi91cGRhdGUtdG9vbC90YXJnZXQtdmVyc2lvbic7XG5pbXBvcnQge2Nka1VwZ3JhZGVEYXRhfSBmcm9tICcuL3VwZ3JhZGUtZGF0YSc7XG5pbXBvcnQge2NyZWF0ZU1pZ3JhdGlvblNjaGVtYXRpY1J1bGUsIE51bGxhYmxlRGV2a2l0TWlncmF0aW9ufSBmcm9tICcuL2RldmtpdC1taWdyYXRpb24tcnVsZSc7XG5pbXBvcnQge1RpbGRlSW1wb3J0TWlncmF0aW9ufSBmcm9tICcuL21pZ3JhdGlvbnMvdGlsZGUtaW1wb3J0LXYxMy90aWxkZS1pbXBvcnQtbWlncmF0aW9uJztcblxuY29uc3QgY2RrTWlncmF0aW9uczogTnVsbGFibGVEZXZraXRNaWdyYXRpb25bXSA9IFtUaWxkZUltcG9ydE1pZ3JhdGlvbl07XG5cbi8qKiBFbnRyeSBwb2ludCBmb3IgdGhlIG1pZ3JhdGlvbiBzY2hlbWF0aWNzIHdpdGggdGFyZ2V0IG9mIEFuZ3VsYXIgQ0RLIDYuMC4wICovXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlVG9WNigpOiBSdWxlIHtcbiAgcmV0dXJuIGNyZWF0ZU1pZ3JhdGlvblNjaGVtYXRpY1J1bGUoXG4gICAgVGFyZ2V0VmVyc2lvbi5WNixcbiAgICBjZGtNaWdyYXRpb25zLFxuICAgIGNka1VwZ3JhZGVEYXRhLFxuICAgIG9uTWlncmF0aW9uQ29tcGxldGUsXG4gICk7XG59XG5cbi8qKiBFbnRyeSBwb2ludCBmb3IgdGhlIG1pZ3JhdGlvbiBzY2hlbWF0aWNzIHdpdGggdGFyZ2V0IG9mIEFuZ3VsYXIgQ0RLIDcuMC4wICovXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlVG9WNygpOiBSdWxlIHtcbiAgcmV0dXJuIGNyZWF0ZU1pZ3JhdGlvblNjaGVtYXRpY1J1bGUoXG4gICAgVGFyZ2V0VmVyc2lvbi5WNyxcbiAgICBjZGtNaWdyYXRpb25zLFxuICAgIGNka1VwZ3JhZGVEYXRhLFxuICAgIG9uTWlncmF0aW9uQ29tcGxldGUsXG4gICk7XG59XG5cbi8qKiBFbnRyeSBwb2ludCBmb3IgdGhlIG1pZ3JhdGlvbiBzY2hlbWF0aWNzIHdpdGggdGFyZ2V0IG9mIEFuZ3VsYXIgQ0RLIDguMC4wICovXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlVG9WOCgpOiBSdWxlIHtcbiAgcmV0dXJuIGNyZWF0ZU1pZ3JhdGlvblNjaGVtYXRpY1J1bGUoXG4gICAgVGFyZ2V0VmVyc2lvbi5WOCxcbiAgICBjZGtNaWdyYXRpb25zLFxuICAgIGNka1VwZ3JhZGVEYXRhLFxuICAgIG9uTWlncmF0aW9uQ29tcGxldGUsXG4gICk7XG59XG5cbi8qKiBFbnRyeSBwb2ludCBmb3IgdGhlIG1pZ3JhdGlvbiBzY2hlbWF0aWNzIHdpdGggdGFyZ2V0IG9mIEFuZ3VsYXIgQ0RLIDkuMC4wICovXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlVG9WOSgpOiBSdWxlIHtcbiAgcmV0dXJuIGNyZWF0ZU1pZ3JhdGlvblNjaGVtYXRpY1J1bGUoXG4gICAgVGFyZ2V0VmVyc2lvbi5WOSxcbiAgICBjZGtNaWdyYXRpb25zLFxuICAgIGNka1VwZ3JhZGVEYXRhLFxuICAgIG9uTWlncmF0aW9uQ29tcGxldGUsXG4gICk7XG59XG5cbi8qKiBFbnRyeSBwb2ludCBmb3IgdGhlIG1pZ3JhdGlvbiBzY2hlbWF0aWNzIHdpdGggdGFyZ2V0IG9mIEFuZ3VsYXIgQ0RLIDEwLjAuMCAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZVRvVjEwKCk6IFJ1bGUge1xuICByZXR1cm4gY3JlYXRlTWlncmF0aW9uU2NoZW1hdGljUnVsZShcbiAgICBUYXJnZXRWZXJzaW9uLlYxMCxcbiAgICBjZGtNaWdyYXRpb25zLFxuICAgIGNka1VwZ3JhZGVEYXRhLFxuICAgIG9uTWlncmF0aW9uQ29tcGxldGUsXG4gICk7XG59XG5cbi8qKiBFbnRyeSBwb2ludCBmb3IgdGhlIG1pZ3JhdGlvbiBzY2hlbWF0aWNzIHdpdGggdGFyZ2V0IG9mIEFuZ3VsYXIgQ0RLIDExLjAuMCAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZVRvVjExKCk6IFJ1bGUge1xuICByZXR1cm4gY3JlYXRlTWlncmF0aW9uU2NoZW1hdGljUnVsZShcbiAgICBUYXJnZXRWZXJzaW9uLlYxMSxcbiAgICBjZGtNaWdyYXRpb25zLFxuICAgIGNka1VwZ3JhZGVEYXRhLFxuICAgIG9uTWlncmF0aW9uQ29tcGxldGUsXG4gICk7XG59XG5cbi8qKiBFbnRyeSBwb2ludCBmb3IgdGhlIG1pZ3JhdGlvbiBzY2hlbWF0aWNzIHdpdGggdGFyZ2V0IG9mIEFuZ3VsYXIgQ0RLIDEyLjAuMCAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZVRvVjEyKCk6IFJ1bGUge1xuICByZXR1cm4gY3JlYXRlTWlncmF0aW9uU2NoZW1hdGljUnVsZShcbiAgICBUYXJnZXRWZXJzaW9uLlYxMixcbiAgICBjZGtNaWdyYXRpb25zLFxuICAgIGNka1VwZ3JhZGVEYXRhLFxuICAgIG9uTWlncmF0aW9uQ29tcGxldGUsXG4gICk7XG59XG5cbi8qKiBFbnRyeSBwb2ludCBmb3IgdGhlIG1pZ3JhdGlvbiBzY2hlbWF0aWNzIHdpdGggdGFyZ2V0IG9mIEFuZ3VsYXIgQ0RLIDEzLjAuMCAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZVRvVjEzKCk6IFJ1bGUge1xuICByZXR1cm4gY3JlYXRlTWlncmF0aW9uU2NoZW1hdGljUnVsZShcbiAgICBUYXJnZXRWZXJzaW9uLlYxMyxcbiAgICBjZGtNaWdyYXRpb25zLFxuICAgIGNka1VwZ3JhZGVEYXRhLFxuICAgIG9uTWlncmF0aW9uQ29tcGxldGUsXG4gICk7XG59XG5cbi8qKiBGdW5jdGlvbiB0aGF0IHdpbGwgYmUgY2FsbGVkIHdoZW4gdGhlIG1pZ3JhdGlvbiBjb21wbGV0ZWQuICovXG5mdW5jdGlvbiBvbk1pZ3JhdGlvbkNvbXBsZXRlKFxuICBjb250ZXh0OiBTY2hlbWF0aWNDb250ZXh0LFxuICB0YXJnZXRWZXJzaW9uOiBUYXJnZXRWZXJzaW9uLFxuICBoYXNGYWlsdXJlczogYm9vbGVhbixcbikge1xuICBjb250ZXh0LmxvZ2dlci5pbmZvKCcnKTtcbiAgY29udGV4dC5sb2dnZXIuaW5mbyhgICDinJMgIFVwZGF0ZWQgQW5ndWxhciBDREsgdG8gJHt0YXJnZXRWZXJzaW9ufWApO1xuICBjb250ZXh0LmxvZ2dlci5pbmZvKCcnKTtcblxuICBpZiAoaGFzRmFpbHVyZXMpIHtcbiAgICBjb250ZXh0LmxvZ2dlci53YXJuKFxuICAgICAgJyAg4pqgICBTb21lIGlzc3VlcyB3ZXJlIGRldGVjdGVkIGJ1dCBjb3VsZCBub3QgYmUgZml4ZWQgYXV0b21hdGljYWxseS4gUGxlYXNlIGNoZWNrIHRoZSAnICtcbiAgICAgICAgJ291dHB1dCBhYm92ZSBhbmQgZml4IHRoZXNlIGlzc3VlcyBtYW51YWxseS4nLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import * as ts from 'typescript';
9
+ import { ResolvedResource } from '../../update-tool/component-resource-collector';
10
+ import { Migration } from '../../update-tool/migration';
11
+ import { AttributeSelectorUpgradeData } from '../data/attribute-selectors';
12
+ import { UpgradeData } from '../upgrade-data';
13
+ /**
14
+ * Migration that walks through every string literal, template and stylesheet
15
+ * in order to switch deprecated attribute selectors to the updated selector.
16
+ */
17
+ export declare class AttributeSelectorsMigration extends Migration<UpgradeData> {
18
+ /** Required upgrade changes for specified target version. */
19
+ data: AttributeSelectorUpgradeData[];
20
+ enabled: boolean;
21
+ visitNode(node: ts.Node): void;
22
+ visitTemplate(template: ResolvedResource): void;
23
+ visitStylesheet(stylesheet: ResolvedResource): void;
24
+ private _visitStringLiteralLike;
25
+ private _replaceSelector;
26
+ }
@@ -0,0 +1,71 @@
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.io/license
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.AttributeSelectorsMigration = void 0;
11
+ const ts = require("typescript");
12
+ const migration_1 = require("../../update-tool/migration");
13
+ const literal_1 = require("../typescript/literal");
14
+ const upgrade_data_1 = require("../upgrade-data");
15
+ /**
16
+ * Migration that walks through every string literal, template and stylesheet
17
+ * in order to switch deprecated attribute selectors to the updated selector.
18
+ */
19
+ class AttributeSelectorsMigration extends migration_1.Migration {
20
+ constructor() {
21
+ super(...arguments);
22
+ /** Required upgrade changes for specified target version. */
23
+ this.data = (0, upgrade_data_1.getVersionUpgradeData)(this, 'attributeSelectors');
24
+ // Only enable the migration rule if there is upgrade data.
25
+ this.enabled = this.data.length !== 0;
26
+ }
27
+ visitNode(node) {
28
+ if (ts.isStringLiteralLike(node)) {
29
+ this._visitStringLiteralLike(node);
30
+ }
31
+ }
32
+ visitTemplate(template) {
33
+ this.data.forEach(selector => {
34
+ (0, literal_1.findAllSubstringIndices)(template.content, selector.replace)
35
+ .map(offset => template.start + offset)
36
+ .forEach(start => this._replaceSelector(template.filePath, start, selector));
37
+ });
38
+ }
39
+ visitStylesheet(stylesheet) {
40
+ this.data.forEach(selector => {
41
+ const currentSelector = `[${selector.replace}]`;
42
+ const updatedSelector = `[${selector.replaceWith}]`;
43
+ (0, literal_1.findAllSubstringIndices)(stylesheet.content, currentSelector)
44
+ .map(offset => stylesheet.start + offset)
45
+ .forEach(start => this._replaceSelector(stylesheet.filePath, start, {
46
+ replace: currentSelector,
47
+ replaceWith: updatedSelector,
48
+ }));
49
+ });
50
+ }
51
+ _visitStringLiteralLike(literal) {
52
+ if (literal.parent && literal.parent.kind !== ts.SyntaxKind.CallExpression) {
53
+ return;
54
+ }
55
+ const literalText = literal.getText();
56
+ const filePath = this.fileSystem.resolve(literal.getSourceFile().fileName);
57
+ this.data.forEach(selector => {
58
+ (0, literal_1.findAllSubstringIndices)(literalText, selector.replace)
59
+ .map(offset => literal.getStart() + offset)
60
+ .forEach(start => this._replaceSelector(filePath, start, selector));
61
+ });
62
+ }
63
+ _replaceSelector(filePath, start, data) {
64
+ this.fileSystem
65
+ .edit(filePath)
66
+ .remove(start, data.replace.length)
67
+ .insertRight(start, data.replaceWith);
68
+ }
69
+ }
70
+ exports.AttributeSelectorsMigration = AttributeSelectorsMigration;
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlLXNlbGVjdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvc2NoZW1hdGljcy9uZy11cGRhdGUvbWlncmF0aW9ucy9hdHRyaWJ1dGUtc2VsZWN0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUVILGlDQUFpQztBQUdqQywyREFBc0Q7QUFFdEQsbURBQThEO0FBQzlELGtEQUFtRTtBQUVuRTs7O0dBR0c7QUFDSCxNQUFhLDJCQUE0QixTQUFRLHFCQUFzQjtJQUF2RTs7UUFDRSw2REFBNkQ7UUFDN0QsU0FBSSxHQUFHLElBQUEsb0NBQXFCLEVBQUMsSUFBSSxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFFekQsMkRBQTJEO1FBQzNELFlBQU8sR0FBWSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUF5RDVDLENBQUM7SUF2RFUsU0FBUyxDQUFDLElBQWE7UUFDOUIsSUFBSSxFQUFFLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDaEMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztJQUVRLGFBQWEsQ0FBQyxRQUEwQjtRQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUMzQixJQUFBLGlDQUF1QixFQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQztpQkFDeEQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7aUJBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ2pGLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVRLGVBQWUsQ0FBQyxVQUE0QjtRQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUMzQixNQUFNLGVBQWUsR0FBRyxJQUFJLFFBQVEsQ0FBQyxPQUFPLEdBQUcsQ0FBQztZQUNoRCxNQUFNLGVBQWUsR0FBRyxJQUFJLFFBQVEsQ0FBQyxXQUFXLEdBQUcsQ0FBQztZQUVwRCxJQUFBLGlDQUF1QixFQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDO2lCQUN6RCxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztpQkFDeEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQ2YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFO2dCQUNoRCxPQUFPLEVBQUUsZUFBZTtnQkFDeEIsV0FBVyxFQUFFLGVBQWU7YUFDN0IsQ0FBQyxDQUNILENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxPQUE2QjtRQUMzRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUU7WUFDMUUsT0FBTztTQUNSO1FBRUQsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3RDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUUzRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUMzQixJQUFBLGlDQUF1QixFQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDO2lCQUNuRCxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEdBQUcsTUFBTSxDQUFDO2lCQUMxQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGdCQUFnQixDQUN0QixRQUF1QixFQUN2QixLQUFhLEVBQ2IsSUFBa0M7UUFFbEMsSUFBSSxDQUFDLFVBQVU7YUFDWixJQUFJLENBQUMsUUFBUSxDQUFDO2FBQ2QsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQzthQUNsQyxXQUFXLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMxQyxDQUFDO0NBQ0Y7QUE5REQsa0VBOERDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHtXb3Jrc3BhY2VQYXRofSBmcm9tICcuLi8uLi91cGRhdGUtdG9vbC9maWxlLXN5c3RlbSc7XG5pbXBvcnQge1Jlc29sdmVkUmVzb3VyY2V9IGZyb20gJy4uLy4uL3VwZGF0ZS10b29sL2NvbXBvbmVudC1yZXNvdXJjZS1jb2xsZWN0b3InO1xuaW1wb3J0IHtNaWdyYXRpb259IGZyb20gJy4uLy4uL3VwZGF0ZS10b29sL21pZ3JhdGlvbic7XG5pbXBvcnQge0F0dHJpYnV0ZVNlbGVjdG9yVXBncmFkZURhdGF9IGZyb20gJy4uL2RhdGEvYXR0cmlidXRlLXNlbGVjdG9ycyc7XG5pbXBvcnQge2ZpbmRBbGxTdWJzdHJpbmdJbmRpY2VzfSBmcm9tICcuLi90eXBlc2NyaXB0L2xpdGVyYWwnO1xuaW1wb3J0IHtnZXRWZXJzaW9uVXBncmFkZURhdGEsIFVwZ3JhZGVEYXRhfSBmcm9tICcuLi91cGdyYWRlLWRhdGEnO1xuXG4vKipcbiAqIE1pZ3JhdGlvbiB0aGF0IHdhbGtzIHRocm91Z2ggZXZlcnkgc3RyaW5nIGxpdGVyYWwsIHRlbXBsYXRlIGFuZCBzdHlsZXNoZWV0XG4gKiBpbiBvcmRlciB0byBzd2l0Y2ggZGVwcmVjYXRlZCBhdHRyaWJ1dGUgc2VsZWN0b3JzIHRvIHRoZSB1cGRhdGVkIHNlbGVjdG9yLlxuICovXG5leHBvcnQgY2xhc3MgQXR0cmlidXRlU2VsZWN0b3JzTWlncmF0aW9uIGV4dGVuZHMgTWlncmF0aW9uPFVwZ3JhZGVEYXRhPiB7XG4gIC8qKiBSZXF1aXJlZCB1cGdyYWRlIGNoYW5nZXMgZm9yIHNwZWNpZmllZCB0YXJnZXQgdmVyc2lvbi4gKi9cbiAgZGF0YSA9IGdldFZlcnNpb25VcGdyYWRlRGF0YSh0aGlzLCAnYXR0cmlidXRlU2VsZWN0b3JzJyk7XG5cbiAgLy8gT25seSBlbmFibGUgdGhlIG1pZ3JhdGlvbiBydWxlIGlmIHRoZXJlIGlzIHVwZ3JhZGUgZGF0YS5cbiAgZW5hYmxlZDogYm9vbGVhbiA9IHRoaXMuZGF0YS5sZW5ndGggIT09IDA7XG5cbiAgb3ZlcnJpZGUgdmlzaXROb2RlKG5vZGU6IHRzLk5vZGUpIHtcbiAgICBpZiAodHMuaXNTdHJpbmdMaXRlcmFsTGlrZShub2RlKSkge1xuICAgICAgdGhpcy5fdmlzaXRTdHJpbmdMaXRlcmFsTGlrZShub2RlKTtcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSB2aXNpdFRlbXBsYXRlKHRlbXBsYXRlOiBSZXNvbHZlZFJlc291cmNlKSB7XG4gICAgdGhpcy5kYXRhLmZvckVhY2goc2VsZWN0b3IgPT4ge1xuICAgICAgZmluZEFsbFN1YnN0cmluZ0luZGljZXModGVtcGxhdGUuY29udGVudCwgc2VsZWN0b3IucmVwbGFjZSlcbiAgICAgICAgLm1hcChvZmZzZXQgPT4gdGVtcGxhdGUuc3RhcnQgKyBvZmZzZXQpXG4gICAgICAgIC5mb3JFYWNoKHN0YXJ0ID0+IHRoaXMuX3JlcGxhY2VTZWxlY3Rvcih0ZW1wbGF0ZS5maWxlUGF0aCwgc3RhcnQsIHNlbGVjdG9yKSk7XG4gICAgfSk7XG4gIH1cblxuICBvdmVycmlkZSB2aXNpdFN0eWxlc2hlZXQoc3R5bGVzaGVldDogUmVzb2x2ZWRSZXNvdXJjZSk6IHZvaWQge1xuICAgIHRoaXMuZGF0YS5mb3JFYWNoKHNlbGVjdG9yID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRTZWxlY3RvciA9IGBbJHtzZWxlY3Rvci5yZXBsYWNlfV1gO1xuICAgICAgY29uc3QgdXBkYXRlZFNlbGVjdG9yID0gYFske3NlbGVjdG9yLnJlcGxhY2VXaXRofV1gO1xuXG4gICAgICBmaW5kQWxsU3Vic3RyaW5nSW5kaWNlcyhzdHlsZXNoZWV0LmNvbnRlbnQsIGN1cnJlbnRTZWxlY3RvcilcbiAgICAgICAgLm1hcChvZmZzZXQgPT4gc3R5bGVzaGVldC5zdGFydCArIG9mZnNldClcbiAgICAgICAgLmZvckVhY2goc3RhcnQgPT5cbiAgICAgICAgICB0aGlzLl9yZXBsYWNlU2VsZWN0b3Ioc3R5bGVzaGVldC5maWxlUGF0aCwgc3RhcnQsIHtcbiAgICAgICAgICAgIHJlcGxhY2U6IGN1cnJlbnRTZWxlY3RvcixcbiAgICAgICAgICAgIHJlcGxhY2VXaXRoOiB1cGRhdGVkU2VsZWN0b3IsXG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF92aXNpdFN0cmluZ0xpdGVyYWxMaWtlKGxpdGVyYWw6IHRzLlN0cmluZ0xpdGVyYWxMaWtlKSB7XG4gICAgaWYgKGxpdGVyYWwucGFyZW50ICYmIGxpdGVyYWwucGFyZW50LmtpbmQgIT09IHRzLlN5bnRheEtpbmQuQ2FsbEV4cHJlc3Npb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBsaXRlcmFsVGV4dCA9IGxpdGVyYWwuZ2V0VGV4dCgpO1xuICAgIGNvbnN0IGZpbGVQYXRoID0gdGhpcy5maWxlU3lzdGVtLnJlc29sdmUobGl0ZXJhbC5nZXRTb3VyY2VGaWxlKCkuZmlsZU5hbWUpO1xuXG4gICAgdGhpcy5kYXRhLmZvckVhY2goc2VsZWN0b3IgPT4ge1xuICAgICAgZmluZEFsbFN1YnN0cmluZ0luZGljZXMobGl0ZXJhbFRleHQsIHNlbGVjdG9yLnJlcGxhY2UpXG4gICAgICAgIC5tYXAob2Zmc2V0ID0+IGxpdGVyYWwuZ2V0U3RhcnQoKSArIG9mZnNldClcbiAgICAgICAgLmZvckVhY2goc3RhcnQgPT4gdGhpcy5fcmVwbGFjZVNlbGVjdG9yKGZpbGVQYXRoLCBzdGFydCwgc2VsZWN0b3IpKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlcGxhY2VTZWxlY3RvcihcbiAgICBmaWxlUGF0aDogV29ya3NwYWNlUGF0aCxcbiAgICBzdGFydDogbnVtYmVyLFxuICAgIGRhdGE6IEF0dHJpYnV0ZVNlbGVjdG9yVXBncmFkZURhdGEsXG4gICkge1xuICAgIHRoaXMuZmlsZVN5c3RlbVxuICAgICAgLmVkaXQoZmlsZVBhdGgpXG4gICAgICAucmVtb3ZlKHN0YXJ0LCBkYXRhLnJlcGxhY2UubGVuZ3RoKVxuICAgICAgLmluc2VydFJpZ2h0KHN0YXJ0LCBkYXRhLnJlcGxhY2VXaXRoKTtcbiAgfVxufVxuIl19