@angular/material 8.0.0 → 8.1.1

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 (413) hide show
  1. package/_theming.scss +29 -28
  2. package/bottom-sheet/typings/bottom-sheet-config.d.ts +4 -1
  3. package/bottom-sheet/typings/bottom-sheet-ref.d.ts +2 -0
  4. package/bottom-sheet/typings/index.metadata.json +1 -1
  5. package/bundles/material-autocomplete.umd.js +4 -0
  6. package/bundles/material-autocomplete.umd.js.map +1 -1
  7. package/bundles/material-autocomplete.umd.min.js +1 -1
  8. package/bundles/material-autocomplete.umd.min.js.map +1 -1
  9. package/bundles/material-bottom-sheet.umd.js +23 -8
  10. package/bundles/material-bottom-sheet.umd.js.map +1 -1
  11. package/bundles/material-bottom-sheet.umd.min.js +1 -1
  12. package/bundles/material-bottom-sheet.umd.min.js.map +1 -1
  13. package/bundles/material-button-toggle.umd.js.map +1 -1
  14. package/bundles/material-button-toggle.umd.min.js.map +1 -1
  15. package/bundles/material-button.umd.js +1 -1
  16. package/bundles/material-button.umd.js.map +1 -1
  17. package/bundles/material-button.umd.min.js +1 -1
  18. package/bundles/material-button.umd.min.js.map +1 -1
  19. package/bundles/material-card.umd.js +16 -7
  20. package/bundles/material-card.umd.js.map +1 -1
  21. package/bundles/material-card.umd.min.js +1 -1
  22. package/bundles/material-card.umd.min.js.map +1 -1
  23. package/bundles/material-checkbox.umd.js +2 -2
  24. package/bundles/material-checkbox.umd.js.map +1 -1
  25. package/bundles/material-checkbox.umd.min.js +1 -1
  26. package/bundles/material-checkbox.umd.min.js.map +1 -1
  27. package/bundles/material-chips.umd.js +12 -7
  28. package/bundles/material-chips.umd.js.map +1 -1
  29. package/bundles/material-chips.umd.min.js +1 -1
  30. package/bundles/material-chips.umd.min.js.map +1 -1
  31. package/bundles/material-core.umd.js +31 -6
  32. package/bundles/material-core.umd.js.map +1 -1
  33. package/bundles/material-core.umd.min.js +2 -2
  34. package/bundles/material-core.umd.min.js.map +1 -1
  35. package/bundles/material-datepicker.umd.js +94 -22
  36. package/bundles/material-datepicker.umd.js.map +1 -1
  37. package/bundles/material-datepicker.umd.min.js +2 -2
  38. package/bundles/material-datepicker.umd.min.js.map +1 -1
  39. package/bundles/material-dialog.umd.js +41 -6
  40. package/bundles/material-dialog.umd.js.map +1 -1
  41. package/bundles/material-dialog.umd.min.js +1 -1
  42. package/bundles/material-dialog.umd.min.js.map +1 -1
  43. package/bundles/material-expansion.umd.js +70 -4
  44. package/bundles/material-expansion.umd.js.map +1 -1
  45. package/bundles/material-expansion.umd.min.js +1 -1
  46. package/bundles/material-expansion.umd.min.js.map +1 -1
  47. package/bundles/material-form-field.umd.js +1 -1
  48. package/bundles/material-form-field.umd.js.map +1 -1
  49. package/bundles/material-form-field.umd.min.js +1 -1
  50. package/bundles/material-form-field.umd.min.js.map +1 -1
  51. package/bundles/material-grid-list.umd.js +1 -1
  52. package/bundles/material-grid-list.umd.min.js +1 -1
  53. package/bundles/material-list.umd.js +39 -21
  54. package/bundles/material-list.umd.js.map +1 -1
  55. package/bundles/material-list.umd.min.js +1 -1
  56. package/bundles/material-list.umd.min.js.map +1 -1
  57. package/bundles/material-menu.umd.js +123 -73
  58. package/bundles/material-menu.umd.js.map +1 -1
  59. package/bundles/material-menu.umd.min.js +1 -1
  60. package/bundles/material-menu.umd.min.js.map +1 -1
  61. package/bundles/material-progress-spinner.umd.js +66 -22
  62. package/bundles/material-progress-spinner.umd.js.map +1 -1
  63. package/bundles/material-progress-spinner.umd.min.js +1 -1
  64. package/bundles/material-progress-spinner.umd.min.js.map +1 -1
  65. package/bundles/material-radio.umd.js +22 -3
  66. package/bundles/material-radio.umd.js.map +1 -1
  67. package/bundles/material-radio.umd.min.js +1 -1
  68. package/bundles/material-radio.umd.min.js.map +1 -1
  69. package/bundles/material-sidenav.umd.js +4 -1
  70. package/bundles/material-sidenav.umd.js.map +1 -1
  71. package/bundles/material-sidenav.umd.min.js +1 -1
  72. package/bundles/material-sidenav.umd.min.js.map +1 -1
  73. package/bundles/material-tabs.umd.js +354 -315
  74. package/bundles/material-tabs.umd.js.map +1 -1
  75. package/bundles/material-tabs.umd.min.js +2 -2
  76. package/bundles/material-tabs.umd.min.js.map +1 -1
  77. package/bundles/material-tooltip.umd.js +2 -1
  78. package/bundles/material-tooltip.umd.js.map +1 -1
  79. package/bundles/material-tooltip.umd.min.js +1 -1
  80. package/bundles/material-tooltip.umd.min.js.map +1 -1
  81. package/bundles/material.umd.js +883 -478
  82. package/bundles/material.umd.js.map +1 -1
  83. package/bundles/material.umd.min.js +19 -19
  84. package/bundles/material.umd.min.js.map +1 -1
  85. package/button-toggle/typings/button-toggle.d.ts +1 -1
  86. package/card/typings/card.d.ts +2 -0
  87. package/card/typings/index.metadata.json +1 -1
  88. package/checkbox/typings/checkbox.d.ts +1 -1
  89. package/checkbox/typings/index.metadata.json +1 -1
  90. package/chips/typings/chip.d.ts +4 -2
  91. package/chips/typings/index.metadata.json +1 -1
  92. package/core/typings/common-behaviors/common-module.d.ts +2 -0
  93. package/core/typings/index.metadata.json +1 -1
  94. package/datepicker/typings/calendar.d.ts +1 -1
  95. package/datepicker/typings/index.metadata.json +1 -1
  96. package/datepicker/typings/multi-year-view.d.ts +7 -0
  97. package/datepicker/typings/public-api.d.ts +1 -1
  98. package/dialog/typings/dialog-ref.d.ts +2 -0
  99. package/dialog/typings/index.metadata.json +1 -1
  100. package/esm2015/autocomplete.js +4 -0
  101. package/esm2015/autocomplete.js.map +1 -1
  102. package/esm2015/bottom-sheet.js +24 -9
  103. package/esm2015/bottom-sheet.js.map +1 -1
  104. package/esm2015/button-toggle.js.map +1 -1
  105. package/esm2015/button.js +1 -1
  106. package/esm2015/button.js.map +1 -1
  107. package/esm2015/card.js +18 -3
  108. package/esm2015/card.js.map +1 -1
  109. package/esm2015/checkbox.js +2 -2
  110. package/esm2015/checkbox.js.map +1 -1
  111. package/esm2015/chips.js +10 -3
  112. package/esm2015/chips.js.map +1 -1
  113. package/esm2015/core.js +22 -2
  114. package/esm2015/core.js.map +1 -1
  115. package/esm2015/datepicker.js +93 -21
  116. package/esm2015/datepicker.js.map +1 -1
  117. package/esm2015/dialog.js +42 -7
  118. package/esm2015/dialog.js.map +1 -1
  119. package/esm2015/expansion.js +57 -4
  120. package/esm2015/expansion.js.map +1 -1
  121. package/esm2015/form-field.js +1 -1
  122. package/esm2015/form-field.js.map +1 -1
  123. package/esm2015/grid-list.js +1 -1
  124. package/esm2015/list.js +40 -22
  125. package/esm2015/list.js.map +1 -1
  126. package/esm2015/material.js +6 -6
  127. package/esm2015/menu.js +74 -52
  128. package/esm2015/menu.js.map +1 -1
  129. package/esm2015/progress-spinner.js +64 -20
  130. package/esm2015/progress-spinner.js.map +1 -1
  131. package/esm2015/radio.js +23 -5
  132. package/esm2015/radio.js.map +1 -1
  133. package/esm2015/sidenav.js +5 -2
  134. package/esm2015/sidenav.js.map +1 -1
  135. package/esm2015/tabs.js +281 -222
  136. package/esm2015/tabs.js.map +1 -1
  137. package/esm2015/tooltip.js +3 -2
  138. package/esm2015/tooltip.js.map +1 -1
  139. package/esm5/autocomplete.es5.js +4 -0
  140. package/esm5/autocomplete.es5.js.map +1 -1
  141. package/esm5/bottom-sheet.es5.js +24 -9
  142. package/esm5/bottom-sheet.es5.js.map +1 -1
  143. package/esm5/button-toggle.es5.js.map +1 -1
  144. package/esm5/button.es5.js +1 -1
  145. package/esm5/button.es5.js.map +1 -1
  146. package/esm5/card.es5.js +14 -4
  147. package/esm5/card.es5.js.map +1 -1
  148. package/esm5/checkbox.es5.js +2 -2
  149. package/esm5/checkbox.es5.js.map +1 -1
  150. package/esm5/chips.es5.js +9 -3
  151. package/esm5/chips.es5.js.map +1 -1
  152. package/esm5/core.es5.js +28 -2
  153. package/esm5/core.es5.js.map +1 -1
  154. package/esm5/datepicker.es5.js +92 -20
  155. package/esm5/datepicker.es5.js.map +1 -1
  156. package/esm5/dialog.es5.js +42 -7
  157. package/esm5/dialog.es5.js.map +1 -1
  158. package/esm5/expansion.es5.js +70 -4
  159. package/esm5/expansion.es5.js.map +1 -1
  160. package/esm5/form-field.es5.js +1 -1
  161. package/esm5/form-field.es5.js.map +1 -1
  162. package/esm5/grid-list.es5.js +1 -1
  163. package/esm5/list.es5.js +40 -22
  164. package/esm5/list.es5.js.map +1 -1
  165. package/esm5/material.es5.js +6 -6
  166. package/esm5/menu.es5.js +122 -72
  167. package/esm5/menu.es5.js.map +1 -1
  168. package/esm5/progress-spinner.es5.js +64 -20
  169. package/esm5/progress-spinner.es5.js.map +1 -1
  170. package/esm5/radio.es5.js +22 -5
  171. package/esm5/radio.es5.js.map +1 -1
  172. package/esm5/sidenav.es5.js +5 -2
  173. package/esm5/sidenav.es5.js.map +1 -1
  174. package/esm5/tabs.es5.js +342 -303
  175. package/esm5/tabs.es5.js.map +1 -1
  176. package/esm5/tooltip.es5.js +3 -2
  177. package/esm5/tooltip.es5.js.map +1 -1
  178. package/expansion/typings/accordion-base.d.ts +4 -0
  179. package/expansion/typings/accordion.d.ts +3 -1
  180. package/expansion/typings/expansion-panel-header.d.ts +6 -0
  181. package/expansion/typings/expansion-panel.d.ts +5 -2
  182. package/expansion/typings/index.metadata.json +1 -1
  183. package/form-field/typings/index.metadata.json +1 -1
  184. package/grid-list/typings/index.d.ts +1 -1
  185. package/grid-list/typings/index.metadata.json +1 -1
  186. package/list/typings/index.metadata.json +1 -1
  187. package/list/typings/selection-list.d.ts +5 -5
  188. package/menu/typings/index.d.ts +2 -2
  189. package/menu/typings/index.metadata.json +1 -1
  190. package/menu/typings/menu-item.d.ts +1 -1
  191. package/menu/typings/menu-panel.d.ts +8 -0
  192. package/menu/typings/menu.d.ts +21 -14
  193. package/package.json +4 -4
  194. package/prebuilt-themes/deeppurple-amber.css +1 -1
  195. package/prebuilt-themes/indigo-pink.css +1 -1
  196. package/prebuilt-themes/pink-bluegrey.css +1 -1
  197. package/prebuilt-themes/purple-green.css +1 -1
  198. package/progress-spinner/typings/index.metadata.json +1 -1
  199. package/progress-spinner/typings/progress-spinner.d.ts +14 -6
  200. package/progress-spinner/typings/public-api.d.ts +1 -1
  201. package/radio/typings/index.metadata.json +1 -1
  202. package/radio/typings/radio.d.ts +8 -2
  203. package/schematics/ng-add/fonts/material-fonts.js +1 -1
  204. package/schematics/ng-add/fonts/material-fonts.js.map +1 -1
  205. package/schematics/ng-add/index.js.map +1 -1
  206. package/schematics/ng-generate/address-form/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.__style__ → __name@dasherize__.component.__style__.template} +0 -0
  207. package/schematics/ng-generate/address-form/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.html → __name@dasherize__.component.html.template} +0 -0
  208. package/schematics/ng-generate/address-form/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.spec.ts → __name@dasherize__.component.spec.ts.template} +5 -7
  209. package/schematics/ng-generate/address-form/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.ts → __name@dasherize__.component.ts.template} +0 -0
  210. package/schematics/ng-generate/address-form/index.js +7 -7
  211. package/schematics/ng-generate/address-form/index.js.map +1 -1
  212. package/schematics/ng-generate/dashboard/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.__style__ → __name@dasherize__.component.__style__.template} +0 -0
  213. package/schematics/ng-generate/dashboard/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.html → __name@dasherize__.component.html.template} +0 -0
  214. package/schematics/ng-generate/dashboard/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.spec.ts → __name@dasherize__.component.spec.ts.template} +5 -7
  215. package/schematics/ng-generate/dashboard/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.ts → __name@dasherize__.component.ts.template} +0 -0
  216. package/schematics/ng-generate/dashboard/index.js +7 -7
  217. package/schematics/ng-generate/dashboard/index.js.map +1 -1
  218. package/schematics/ng-generate/nav/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.__style__ → __name@dasherize__.component.__style__.template} +0 -0
  219. package/schematics/ng-generate/nav/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.html → __name@dasherize__.component.html.template} +0 -0
  220. package/schematics/ng-generate/nav/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.spec.ts → __name@dasherize__.component.spec.ts.template} +5 -7
  221. package/schematics/ng-generate/nav/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.ts → __name@dasherize__.component.ts.template} +3 -2
  222. package/schematics/ng-generate/nav/index.js +7 -7
  223. package/schematics/ng-generate/nav/index.js.map +1 -1
  224. package/schematics/ng-generate/table/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__-datasource.ts → __name@dasherize__-datasource.ts.template} +2 -1
  225. package/schematics/ng-generate/table/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.__style__ → __name@dasherize__.component.__style__.template} +0 -0
  226. package/schematics/ng-generate/table/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.html → __name@dasherize__.component.html.template} +0 -0
  227. package/schematics/ng-generate/table/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.spec.ts → __name@dasherize__.component.spec.ts.template} +3 -1
  228. package/schematics/ng-generate/table/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.ts → __name@dasherize__.component.ts.template} +6 -4
  229. package/schematics/ng-generate/table/index.js +5 -5
  230. package/schematics/ng-generate/table/index.js.map +1 -1
  231. package/schematics/ng-generate/tree/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.__style__ → __name@dasherize__.component.__style__.template} +0 -0
  232. package/schematics/ng-generate/tree/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.html → __name@dasherize__.component.html.template} +0 -0
  233. package/schematics/ng-generate/tree/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.spec.ts → __name@dasherize__.component.spec.ts.template} +3 -1
  234. package/schematics/ng-generate/tree/files/__path__/__name@dasherize@if-flat__/{__name@dasherize__.component.ts → __name@dasherize__.component.ts.template} +0 -0
  235. package/schematics/ng-generate/tree/files/__path__/__name@dasherize@if-flat__/{example-data.ts → example-data.ts.template} +1 -1
  236. package/schematics/ng-generate/tree/index.js +5 -5
  237. package/schematics/ng-generate/tree/index.js.map +1 -1
  238. package/schematics/ng-update/data/class-names.js +3 -12
  239. package/schematics/ng-update/data/class-names.js.map +1 -1
  240. package/schematics/ng-update/data/constructor-checks.js +7 -29
  241. package/schematics/ng-update/data/constructor-checks.js.map +1 -1
  242. package/schematics/ng-update/data/css-selectors.js +19 -68
  243. package/schematics/ng-update/data/css-selectors.js.map +1 -1
  244. package/schematics/ng-update/data/element-selectors.js +3 -10
  245. package/schematics/ng-update/data/element-selectors.js.map +1 -1
  246. package/schematics/ng-update/data/input-names.js +17 -55
  247. package/schematics/ng-update/data/input-names.js.map +1 -1
  248. package/schematics/ng-update/data/property-names.js +28 -100
  249. package/schematics/ng-update/data/property-names.js.map +1 -1
  250. package/schematics/ng-update/index.d.ts +0 -2
  251. package/schematics/ng-update/index.js +27 -34
  252. package/schematics/ng-update/index.js.map +1 -1
  253. package/schematics/ng-update/typescript/module-specifiers.js.map +1 -1
  254. package/schematics/ng-update/upgrade-rules/misc-checks/misc-class-inheritance-rule.d.ts +18 -0
  255. package/schematics/ng-update/upgrade-rules/misc-checks/misc-class-inheritance-rule.js +47 -0
  256. package/schematics/ng-update/upgrade-rules/misc-checks/misc-class-inheritance-rule.js.map +1 -0
  257. package/schematics/ng-update/upgrade-rules/misc-checks/misc-class-names-rule.d.ts +18 -0
  258. package/schematics/ng-update/upgrade-rules/misc-checks/misc-class-names-rule.js +42 -0
  259. package/schematics/ng-update/upgrade-rules/misc-checks/misc-class-names-rule.js.map +1 -0
  260. package/{typings/schematics/ng-update/upgrade-rules/misc-checks/checkImportsMiscRule.d.ts → schematics/ng-update/upgrade-rules/misc-checks/misc-imports-rule.d.ts} +7 -8
  261. package/schematics/ng-update/upgrade-rules/misc-checks/{checkImportsMiscRule.js → misc-imports-rule.js} +19 -16
  262. package/schematics/ng-update/upgrade-rules/misc-checks/misc-imports-rule.js.map +1 -0
  263. package/schematics/ng-update/upgrade-rules/misc-checks/misc-property-names-rule.d.ts +18 -0
  264. package/schematics/ng-update/upgrade-rules/misc-checks/misc-property-names-rule.js +46 -0
  265. package/schematics/ng-update/upgrade-rules/misc-checks/misc-property-names-rule.js.map +1 -0
  266. package/schematics/ng-update/upgrade-rules/misc-checks/misc-template-rule.d.ts +16 -0
  267. package/schematics/ng-update/upgrade-rules/misc-checks/misc-template-rule.js +59 -0
  268. package/schematics/ng-update/upgrade-rules/misc-checks/misc-template-rule.js.map +1 -0
  269. package/schematics/ng-update/upgrade-rules/misc-ripples-v7/{rippleSpeedFactorAssignmentRule.d.ts → ripple-speed-factor-rule.d.ts} +11 -9
  270. package/schematics/ng-update/upgrade-rules/misc-ripples-v7/{rippleSpeedFactorAssignmentRule.js → ripple-speed-factor-rule.js} +57 -31
  271. package/schematics/ng-update/upgrade-rules/misc-ripples-v7/ripple-speed-factor-rule.js.map +1 -0
  272. package/schematics/ng-update/upgrade-rules/package-imports-v8/secondary-entry-points-rule.d.ts +18 -0
  273. package/schematics/ng-update/upgrade-rules/package-imports-v8/{updateAngularMaterialImportsRule.js → secondary-entry-points-rule.js} +40 -52
  274. package/schematics/ng-update/upgrade-rules/package-imports-v8/secondary-entry-points-rule.js.map +1 -0
  275. package/sidenav/typings/index.metadata.json +1 -1
  276. package/tabs/typings/index.d.ts +2 -1
  277. package/tabs/typings/index.metadata.json +1 -1
  278. package/tabs/typings/ink-bar.d.ts +2 -1
  279. package/tabs/typings/paginated-tab-header.d.ts +187 -0
  280. package/tabs/typings/public-api.d.ts +2 -1
  281. package/tabs/typings/tab-group.d.ts +2 -1
  282. package/tabs/typings/tab-header.d.ts +10 -159
  283. package/tabs/typings/tab-nav-bar/tab-nav-bar.d.ts +27 -30
  284. package/tooltip/typings/index.metadata.json +1 -1
  285. package/typings/bottom-sheet/bottom-sheet-config.d.ts +4 -1
  286. package/typings/bottom-sheet/bottom-sheet-ref.d.ts +2 -0
  287. package/typings/bottom-sheet/index.metadata.json +1 -1
  288. package/typings/button-toggle/button-toggle.d.ts +1 -1
  289. package/typings/card/card.d.ts +2 -0
  290. package/typings/card/index.metadata.json +1 -1
  291. package/typings/checkbox/checkbox.d.ts +1 -1
  292. package/typings/checkbox/index.metadata.json +1 -1
  293. package/typings/chips/chip.d.ts +4 -2
  294. package/typings/chips/index.metadata.json +1 -1
  295. package/typings/core/common-behaviors/common-module.d.ts +2 -0
  296. package/typings/core/index.metadata.json +1 -1
  297. package/typings/datepicker/calendar.d.ts +1 -1
  298. package/typings/datepicker/index.metadata.json +1 -1
  299. package/typings/datepicker/multi-year-view.d.ts +7 -0
  300. package/typings/datepicker/public-api.d.ts +1 -1
  301. package/typings/dialog/dialog-ref.d.ts +2 -0
  302. package/typings/dialog/index.metadata.json +1 -1
  303. package/typings/esm5/bottom-sheet/bottom-sheet-config.d.ts +4 -1
  304. package/typings/esm5/bottom-sheet/bottom-sheet-ref.d.ts +2 -0
  305. package/typings/esm5/bottom-sheet/index.metadata.json +1 -1
  306. package/typings/esm5/button-toggle/button-toggle.d.ts +1 -1
  307. package/typings/esm5/card/card.d.ts +2 -0
  308. package/typings/esm5/card/index.metadata.json +1 -1
  309. package/typings/esm5/checkbox/checkbox.d.ts +1 -1
  310. package/typings/esm5/checkbox/index.metadata.json +1 -1
  311. package/typings/esm5/chips/chip.d.ts +4 -2
  312. package/typings/esm5/chips/index.metadata.json +1 -1
  313. package/typings/esm5/core/common-behaviors/common-module.d.ts +2 -0
  314. package/typings/esm5/core/index.metadata.json +1 -1
  315. package/typings/esm5/datepicker/calendar.d.ts +1 -1
  316. package/typings/esm5/datepicker/index.metadata.json +1 -1
  317. package/typings/esm5/datepicker/multi-year-view.d.ts +7 -0
  318. package/typings/esm5/datepicker/public-api.d.ts +1 -1
  319. package/typings/esm5/dialog/dialog-ref.d.ts +2 -0
  320. package/typings/esm5/dialog/index.metadata.json +1 -1
  321. package/typings/esm5/expansion/accordion-base.d.ts +4 -0
  322. package/typings/esm5/expansion/accordion.d.ts +3 -1
  323. package/typings/esm5/expansion/expansion-panel-header.d.ts +6 -0
  324. package/typings/esm5/expansion/expansion-panel.d.ts +5 -2
  325. package/typings/esm5/expansion/index.metadata.json +1 -1
  326. package/typings/esm5/form-field/index.metadata.json +1 -1
  327. package/typings/esm5/grid-list/index.d.ts +1 -1
  328. package/typings/esm5/grid-list/index.metadata.json +1 -1
  329. package/typings/esm5/list/index.metadata.json +1 -1
  330. package/typings/esm5/list/selection-list.d.ts +5 -5
  331. package/typings/esm5/menu/index.d.ts +2 -2
  332. package/typings/esm5/menu/index.metadata.json +1 -1
  333. package/typings/esm5/menu/menu-item.d.ts +1 -1
  334. package/typings/esm5/menu/menu-panel.d.ts +8 -0
  335. package/typings/esm5/menu/menu.d.ts +21 -14
  336. package/typings/esm5/progress-spinner/index.metadata.json +1 -1
  337. package/typings/esm5/progress-spinner/progress-spinner.d.ts +14 -6
  338. package/typings/esm5/progress-spinner/public-api.d.ts +1 -1
  339. package/typings/esm5/radio/index.metadata.json +1 -1
  340. package/typings/esm5/radio/radio.d.ts +8 -2
  341. package/typings/esm5/sidenav/index.metadata.json +1 -1
  342. package/typings/esm5/tabs/index.d.ts +2 -1
  343. package/typings/esm5/tabs/index.metadata.json +1 -1
  344. package/typings/esm5/tabs/ink-bar.d.ts +2 -1
  345. package/typings/esm5/tabs/paginated-tab-header.d.ts +187 -0
  346. package/typings/esm5/tabs/public-api.d.ts +2 -1
  347. package/typings/esm5/tabs/tab-group.d.ts +2 -1
  348. package/typings/esm5/tabs/tab-header.d.ts +10 -159
  349. package/typings/esm5/tabs/tab-nav-bar/tab-nav-bar.d.ts +27 -30
  350. package/typings/esm5/tooltip/index.metadata.json +1 -1
  351. package/typings/expansion/accordion-base.d.ts +4 -0
  352. package/typings/expansion/accordion.d.ts +3 -1
  353. package/typings/expansion/expansion-panel-header.d.ts +6 -0
  354. package/typings/expansion/expansion-panel.d.ts +5 -2
  355. package/typings/expansion/index.metadata.json +1 -1
  356. package/typings/form-field/index.metadata.json +1 -1
  357. package/typings/grid-list/index.d.ts +1 -1
  358. package/typings/grid-list/index.metadata.json +1 -1
  359. package/typings/list/index.metadata.json +1 -1
  360. package/typings/list/selection-list.d.ts +5 -5
  361. package/typings/menu/index.d.ts +2 -2
  362. package/typings/menu/index.metadata.json +1 -1
  363. package/typings/menu/menu-item.d.ts +1 -1
  364. package/typings/menu/menu-panel.d.ts +8 -0
  365. package/typings/menu/menu.d.ts +21 -14
  366. package/typings/progress-spinner/index.metadata.json +1 -1
  367. package/typings/progress-spinner/progress-spinner.d.ts +14 -6
  368. package/typings/progress-spinner/public-api.d.ts +1 -1
  369. package/typings/radio/index.metadata.json +1 -1
  370. package/typings/radio/radio.d.ts +8 -2
  371. package/typings/schematics/ng-update/index.d.ts +0 -2
  372. package/typings/schematics/ng-update/upgrade-rules/misc-checks/misc-class-inheritance-rule.d.ts +18 -0
  373. package/typings/schematics/ng-update/upgrade-rules/misc-checks/misc-class-names-rule.d.ts +18 -0
  374. package/{schematics/ng-update/upgrade-rules/misc-checks/checkImportsMiscRule.d.ts → typings/schematics/ng-update/upgrade-rules/misc-checks/misc-imports-rule.d.ts} +7 -8
  375. package/typings/schematics/ng-update/upgrade-rules/misc-checks/misc-property-names-rule.d.ts +18 -0
  376. package/typings/schematics/ng-update/upgrade-rules/misc-checks/misc-template-rule.d.ts +16 -0
  377. package/typings/schematics/ng-update/upgrade-rules/misc-ripples-v7/{rippleSpeedFactorAssignmentRule.d.ts → ripple-speed-factor-rule.d.ts} +11 -9
  378. package/typings/schematics/ng-update/upgrade-rules/package-imports-v8/secondary-entry-points-rule.d.ts +18 -0
  379. package/typings/sidenav/index.metadata.json +1 -1
  380. package/typings/tabs/index.d.ts +2 -1
  381. package/typings/tabs/index.metadata.json +1 -1
  382. package/typings/tabs/ink-bar.d.ts +2 -1
  383. package/typings/tabs/paginated-tab-header.d.ts +187 -0
  384. package/typings/tabs/public-api.d.ts +2 -1
  385. package/typings/tabs/tab-group.d.ts +2 -1
  386. package/typings/tabs/tab-header.d.ts +10 -159
  387. package/typings/tabs/tab-nav-bar/tab-nav-bar.d.ts +27 -30
  388. package/typings/tooltip/index.metadata.json +1 -1
  389. package/schematics/ng-update/upgrade-rules/misc-checks/checkClassInheritanceMiscRule.d.ts +0 -19
  390. package/schematics/ng-update/upgrade-rules/misc-checks/checkClassInheritanceMiscRule.js +0 -43
  391. package/schematics/ng-update/upgrade-rules/misc-checks/checkClassInheritanceMiscRule.js.map +0 -1
  392. package/schematics/ng-update/upgrade-rules/misc-checks/checkClassNamesMiscRule.d.ts +0 -19
  393. package/schematics/ng-update/upgrade-rules/misc-checks/checkClassNamesMiscRule.js +0 -35
  394. package/schematics/ng-update/upgrade-rules/misc-checks/checkClassNamesMiscRule.js.map +0 -1
  395. package/schematics/ng-update/upgrade-rules/misc-checks/checkImportsMiscRule.js.map +0 -1
  396. package/schematics/ng-update/upgrade-rules/misc-checks/checkPropertyNamesMiscRule.d.ts +0 -19
  397. package/schematics/ng-update/upgrade-rules/misc-checks/checkPropertyNamesMiscRule.js +0 -40
  398. package/schematics/ng-update/upgrade-rules/misc-checks/checkPropertyNamesMiscRule.js.map +0 -1
  399. package/schematics/ng-update/upgrade-rules/misc-checks/checkTemplateMiscRule.d.ts +0 -22
  400. package/schematics/ng-update/upgrade-rules/misc-checks/checkTemplateMiscRule.js +0 -66
  401. package/schematics/ng-update/upgrade-rules/misc-checks/checkTemplateMiscRule.js.map +0 -1
  402. package/schematics/ng-update/upgrade-rules/misc-ripples-v7/rippleSpeedFactorAssignmentRule.js.map +0 -1
  403. package/schematics/ng-update/upgrade-rules/misc-ripples-v7/rippleSpeedFactorTemplateRule.d.ts +0 -22
  404. package/schematics/ng-update/upgrade-rules/misc-ripples-v7/rippleSpeedFactorTemplateRule.js +0 -66
  405. package/schematics/ng-update/upgrade-rules/misc-ripples-v7/rippleSpeedFactorTemplateRule.js.map +0 -1
  406. package/schematics/ng-update/upgrade-rules/package-imports-v8/updateAngularMaterialImportsRule.d.ts +0 -22
  407. package/schematics/ng-update/upgrade-rules/package-imports-v8/updateAngularMaterialImportsRule.js.map +0 -1
  408. package/typings/schematics/ng-update/upgrade-rules/misc-checks/checkClassInheritanceMiscRule.d.ts +0 -19
  409. package/typings/schematics/ng-update/upgrade-rules/misc-checks/checkClassNamesMiscRule.d.ts +0 -19
  410. package/typings/schematics/ng-update/upgrade-rules/misc-checks/checkPropertyNamesMiscRule.d.ts +0 -19
  411. package/typings/schematics/ng-update/upgrade-rules/misc-checks/checkTemplateMiscRule.d.ts +0 -22
  412. package/typings/schematics/ng-update/upgrade-rules/misc-ripples-v7/rippleSpeedFactorTemplateRule.d.ts +0 -22
  413. package/typings/schematics/ng-update/upgrade-rules/package-imports-v8/updateAngularMaterialImportsRule.d.ts +0 -22
@@ -0,0 +1 @@
1
+ {"version":3,"file":"misc-class-names-rule.js","sourceRoot":"","sources":["../../../../../../../src/material/schematics/ng-update/upgrade-rules/misc-checks/misc-class-names-rule.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAEH,wDAAqE;AACrE,iCAAiC;AAEjC;;;GAGG;AACH,MAAa,kBAAmB,SAAQ,0BAAmB;IAA3D;;QAEE,qEAAqE;QACrE,0DAA0D;QAC1D,gBAAW,GAAG,IAAI,CAAC,aAAa,KAAK,0BAAa,CAAC,EAAE,CAAC;IAyBxD,CAAC;IAvBC,SAAS,CAAC,IAAa;QACrB,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;YACzB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;SAC7B;IACH,CAAC;IAEO,gBAAgB,CAAC,UAAyB;QAChD,uEAAuE;QACvE,IAAI,UAAU,CAAC,OAAO,EAAE,KAAK,uBAAuB,EAAE;YACpD,IAAI,CAAC,mBAAmB,CACpB,UAAU,EACV,gFAAgF;gBAC5E,iDAAiD,CAAC,CAAC;SAC5D;QAED,uEAAuE;QACvE,IAAI,UAAU,CAAC,OAAO,EAAE,KAAK,qBAAqB,EAAE;YAClD,IAAI,CAAC,mBAAmB,CACpB,UAAU,EACV,iFAAiF;gBAC7E,kDAAkD,CAAC,CAAC;SAC7D;IACH,CAAC;CACF;AA7BD,gDA6BC"}
@@ -5,17 +5,16 @@
5
5
  * Use of this source code is governed by an MIT-style license that can be
6
6
  * found in the LICENSE file at https://angular.io/license
7
7
  */
8
- import { ProgramAwareRuleWalker, RuleFailure, Rules } from 'tslint';
8
+ import { MigrationRule } from '@angular/cdk/schematics';
9
9
  import * as ts from 'typescript';
10
10
  /**
11
- * Rule that detects import declarations that refer to outdated identifiers from Angular Material
12
- * or the CDK which cannot be updated automatically.
11
+ * Rule that detects import declarations that refer to outdated identifiers from
12
+ * Angular Material which cannot be updated automatically.
13
13
  */
14
- export declare class Rule extends Rules.TypedRule {
15
- applyWithProgram(sourceFile: ts.SourceFile, program: ts.Program): RuleFailure[];
16
- }
17
- export declare class Walker extends ProgramAwareRuleWalker {
18
- visitImportDeclaration(node: ts.ImportDeclaration): void;
14
+ export declare class MiscImportsRule extends MigrationRule<null> {
15
+ ruleEnabled: boolean;
16
+ visitNode(node: ts.Node): void;
17
+ private _visitImportDeclaration;
19
18
  /**
20
19
  * Checks for named imports that refer to the deleted animation constants.
21
20
  * https://github.com/angular/components/commit/9f3bf274c4f15f0b0fbd8ab7dbf1a453076e66d9
@@ -8,28 +8,31 @@
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  const schematics_1 = require("@angular/cdk/schematics");
11
- const chalk_1 = require("chalk");
12
- const tslint_1 = require("tslint");
13
11
  const ts = require("typescript");
14
12
  /**
15
- * Rule that detects import declarations that refer to outdated identifiers from Angular Material
16
- * or the CDK which cannot be updated automatically.
13
+ * Rule that detects import declarations that refer to outdated identifiers from
14
+ * Angular Material which cannot be updated automatically.
17
15
  */
18
- class Rule extends tslint_1.Rules.TypedRule {
19
- applyWithProgram(sourceFile, program) {
20
- return this.applyWithWalker(new Walker(sourceFile, this.getOptions(), program));
16
+ class MiscImportsRule extends schematics_1.MigrationRule {
17
+ constructor() {
18
+ super(...arguments);
19
+ // Only enable this rule if the migration targets version 6. The rule
20
+ // currently only includes migrations for V6 deprecations.
21
+ this.ruleEnabled = this.targetVersion === schematics_1.TargetVersion.V6;
21
22
  }
22
- }
23
- exports.Rule = Rule;
24
- class Walker extends tslint_1.ProgramAwareRuleWalker {
25
- visitImportDeclaration(node) {
26
- if (!schematics_1.isMaterialImportDeclaration(node) ||
27
- !node.importClause ||
23
+ visitNode(node) {
24
+ if (ts.isImportDeclaration(node)) {
25
+ this._visitImportDeclaration(node);
26
+ }
27
+ }
28
+ _visitImportDeclaration(node) {
29
+ if (!schematics_1.isMaterialImportDeclaration(node) || !node.importClause ||
28
30
  !node.importClause.namedBindings) {
29
31
  return;
30
32
  }
31
33
  const namedBindings = node.importClause.namedBindings;
32
34
  if (ts.isNamedImports(namedBindings)) {
35
+ // Migration for: https://github.com/angular/components/pull/10405 (v6)
33
36
  this._checkAnimationConstants(namedBindings);
34
37
  }
35
38
  }
@@ -41,10 +44,10 @@ class Walker extends tslint_1.ProgramAwareRuleWalker {
41
44
  namedImports.elements.filter(element => ts.isIdentifier(element.name)).forEach(element => {
42
45
  const importName = element.name.text;
43
46
  if (importName === 'SHOW_ANIMATION' || importName === 'HIDE_ANIMATION') {
44
- this.addFailureAtNode(element, `Found deprecated symbol "${chalk_1.red(importName)}" which has been removed`);
47
+ this.createFailureAtNode(element, `Found deprecated symbol "${importName}" which has been removed`);
45
48
  }
46
49
  });
47
50
  }
48
51
  }
49
- exports.Walker = Walker;
50
- //# sourceMappingURL=checkImportsMiscRule.js.map
52
+ exports.MiscImportsRule = MiscImportsRule;
53
+ //# sourceMappingURL=misc-imports-rule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"misc-imports-rule.js","sourceRoot":"","sources":["../../../../../../../src/material/schematics/ng-update/upgrade-rules/misc-checks/misc-imports-rule.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAEH,wDAAkG;AAClG,iCAAiC;AAEjC;;;GAGG;AACH,MAAa,eAAgB,SAAQ,0BAAmB;IAAxD;;QAEE,qEAAqE;QACrE,0DAA0D;QAC1D,gBAAW,GAAG,IAAI,CAAC,aAAa,KAAK,0BAAa,CAAC,EAAE,CAAC;IAoCxD,CAAC;IAlCC,SAAS,CAAC,IAAa;QACrB,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE;YAChC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;SACpC;IACH,CAAC;IAEO,uBAAuB,CAAC,IAA0B;QACxD,IAAI,CAAC,wCAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY;YACxD,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE;YACpC,OAAO;SACR;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;QAEtD,IAAI,EAAE,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE;YACpC,uEAAuE;YACvE,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;SAC9C;IACH,CAAC;IAED;;;OAGG;IACK,wBAAwB,CAAC,YAA6B;QAC5D,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACvF,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YAErC,IAAI,UAAU,KAAK,gBAAgB,IAAI,UAAU,KAAK,gBAAgB,EAAE;gBACtE,IAAI,CAAC,mBAAmB,CACpB,OAAO,EAAE,4BAA4B,UAAU,0BAA0B,CAAC,CAAC;aAChF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAxCD,0CAwCC"}
@@ -0,0 +1,18 @@
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 { MigrationRule } from '@angular/cdk/schematics';
9
+ import * as ts from 'typescript';
10
+ /**
11
+ * Rule that walks through every property access expression and and reports a failure if
12
+ * a given property name no longer exists but cannot be automatically migrated.
13
+ */
14
+ export declare class MiscPropertyNamesRule extends MigrationRule<null> {
15
+ ruleEnabled: boolean;
16
+ visitNode(node: ts.Node): void;
17
+ private _visitPropertyAccessExpression;
18
+ }
@@ -0,0 +1,46 @@
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
+ const schematics_1 = require("@angular/cdk/schematics");
11
+ const ts = require("typescript");
12
+ /**
13
+ * Rule that walks through every property access expression and and reports a failure if
14
+ * a given property name no longer exists but cannot be automatically migrated.
15
+ */
16
+ class MiscPropertyNamesRule extends schematics_1.MigrationRule {
17
+ constructor() {
18
+ super(...arguments);
19
+ // Only enable this rule if the migration targets version 6. The rule
20
+ // currently only includes migrations for V6 deprecations.
21
+ this.ruleEnabled = this.targetVersion === schematics_1.TargetVersion.V6;
22
+ }
23
+ visitNode(node) {
24
+ if (ts.isPropertyAccessExpression(node)) {
25
+ this._visitPropertyAccessExpression(node);
26
+ }
27
+ }
28
+ _visitPropertyAccessExpression(node) {
29
+ const hostType = this.typeChecker.getTypeAtLocation(node.expression);
30
+ const typeName = hostType && hostType.symbol && hostType.symbol.getName();
31
+ // Migration for: https://github.com/angular/components/pull/10398 (v6)
32
+ if (typeName === 'MatListOption' && node.name.text === 'selectionChange') {
33
+ this.createFailureAtNode(node, `Found deprecated property "selectionChange" of ` +
34
+ `class "MatListOption". Use the "selectionChange" property on the ` +
35
+ `parent "MatSelectionList" instead.`);
36
+ }
37
+ // Migration for: https://github.com/angular/components/pull/10413 (v6)
38
+ if (typeName === 'MatDatepicker' && node.name.text === 'selectedChanged') {
39
+ this.createFailureAtNode(node, `Found deprecated property "selectedChanged" of ` +
40
+ `class "MatDatepicker". Use the "dateChange" or "dateInput" methods ` +
41
+ `on "MatDatepickerInput" instead.`);
42
+ }
43
+ }
44
+ }
45
+ exports.MiscPropertyNamesRule = MiscPropertyNamesRule;
46
+ //# sourceMappingURL=misc-property-names-rule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"misc-property-names-rule.js","sourceRoot":"","sources":["../../../../../../../src/material/schematics/ng-update/upgrade-rules/misc-checks/misc-property-names-rule.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAEH,wDAAqE;AACrE,iCAAiC;AAEjC;;;GAGG;AACH,MAAa,qBAAsB,SAAQ,0BAAmB;IAA9D;;QAEE,qEAAqE;QACrE,0DAA0D;QAC1D,gBAAW,GAAG,IAAI,CAAC,aAAa,KAAK,0BAAa,CAAC,EAAE,CAAC;IA8BxD,CAAC;IA5BC,SAAS,CAAC,IAAa;QACrB,IAAI,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE;YACvC,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC;SAC3C;IACH,CAAC;IAEO,8BAA8B,CAAC,IAAiC;QACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACrE,MAAM,QAAQ,GAAG,QAAQ,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAE1E,uEAAuE;QACvE,IAAI,QAAQ,KAAK,eAAe,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE;YACxE,IAAI,CAAC,mBAAmB,CACpB,IAAI,EACJ,iDAAiD;gBAC7C,mEAAmE;gBACnE,oCAAoC,CAAC,CAAC;SAC/C;QAED,uEAAuE;QACvE,IAAI,QAAQ,KAAK,eAAe,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE;YACxE,IAAI,CAAC,mBAAmB,CACpB,IAAI,EACJ,iDAAiD;gBAC7C,qEAAqE;gBACrE,kCAAkC,CAAC,CAAC;SAC7C;IACH,CAAC;CACF;AAlCD,sDAkCC"}
@@ -0,0 +1,16 @@
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 { MigrationRule, ResolvedResource } from '@angular/cdk/schematics';
9
+ /**
10
+ * Rule that walks through every inline or external template and reports if there
11
+ * are outdated usages of the Angular Material API that needs to be updated manually.
12
+ */
13
+ export declare class MiscTemplateRule extends MigrationRule<null> {
14
+ ruleEnabled: boolean;
15
+ visitTemplate(template: ResolvedResource): void;
16
+ }
@@ -0,0 +1,59 @@
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
+ const schematics_1 = require("@angular/cdk/schematics");
11
+ /**
12
+ * Rule that walks through every inline or external template and reports if there
13
+ * are outdated usages of the Angular Material API that needs to be updated manually.
14
+ */
15
+ class MiscTemplateRule extends schematics_1.MigrationRule {
16
+ constructor() {
17
+ super(...arguments);
18
+ // Only enable this rule if the migration targets version 6. The rule
19
+ // currently only includes migrations for V6 deprecations.
20
+ this.ruleEnabled = this.targetVersion === schematics_1.TargetVersion.V6;
21
+ }
22
+ visitTemplate(template) {
23
+ // Migration for: https://github.com/angular/components/pull/10398 (v6)
24
+ schematics_1.findOutputsOnElementWithTag(template.content, 'selectionChange', [
25
+ 'mat-list-option'
26
+ ]).forEach(offset => {
27
+ this.failures.push({
28
+ filePath: template.filePath,
29
+ position: template.getCharacterAndLineOfPosition(template.start + offset),
30
+ message: `Found deprecated "selectionChange" output binding on "mat-list-option". ` +
31
+ `Use "selectionChange" on "mat-selection-list" instead.`
32
+ });
33
+ });
34
+ // Migration for: https://github.com/angular/components/pull/10413 (v6)
35
+ schematics_1.findOutputsOnElementWithTag(template.content, 'selectedChanged', [
36
+ 'mat-datepicker'
37
+ ]).forEach(offset => {
38
+ this.failures.push({
39
+ filePath: template.filePath,
40
+ position: template.getCharacterAndLineOfPosition(template.start + offset),
41
+ message: `Found deprecated "selectedChanged" output binding on "mat-datepicker". ` +
42
+ `Use "dateChange" or "dateInput" on "<input [matDatepicker]>" instead.`
43
+ });
44
+ });
45
+ // Migration for: https://github.com/angular/components/commit/f0bf6e7 (v6)
46
+ schematics_1.findInputsOnElementWithTag(template.content, 'selected', [
47
+ 'mat-button-toggle-group'
48
+ ]).forEach(offset => {
49
+ this.failures.push({
50
+ filePath: template.filePath,
51
+ position: template.getCharacterAndLineOfPosition(template.start + offset),
52
+ message: `Found deprecated "selected" input binding on "mat-radio-button-group". ` +
53
+ `Use "value" instead.`
54
+ });
55
+ });
56
+ }
57
+ }
58
+ exports.MiscTemplateRule = MiscTemplateRule;
59
+ //# sourceMappingURL=misc-template-rule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"misc-template-rule.js","sourceRoot":"","sources":["../../../../../../../src/material/schematics/ng-update/upgrade-rules/misc-checks/misc-template-rule.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAEH,wDAMiC;AAEjC;;;GAGG;AACH,MAAa,gBAAiB,SAAQ,0BAAmB;IAAzD;;QAEE,qEAAqE;QACrE,0DAA0D;QAC1D,gBAAW,GAAG,IAAI,CAAC,aAAa,KAAK,0BAAa,CAAC,EAAE,CAAC;IAwCxD,CAAC;IAtCC,aAAa,CAAC,QAA0B;QAEtC,uEAAuE;QACvE,wCAA2B,CAAC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,EAAE;YAC/D,iBAAiB;SAClB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACjB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,QAAQ,EAAE,QAAQ,CAAC,6BAA6B,CAAC,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC;gBACzE,OAAO,EAAE,0EAA0E;oBAC/E,wDAAwD;aAC7D,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,uEAAuE;QACvE,wCAA2B,CAAC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,EAAE;YAC/D,gBAAgB;SACjB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACjB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,QAAQ,EAAE,QAAQ,CAAC,6BAA6B,CAAC,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC;gBACzE,OAAO,EAAE,yEAAyE;oBAC9E,uEAAuE;aAC5E,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,2EAA2E;QAC3E,uCAA0B,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE;YACvD,yBAAyB;SAC1B,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACjB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,QAAQ,EAAE,QAAQ,CAAC,6BAA6B,CAAC,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC;gBACzE,OAAO,EAAE,yEAAyE;oBAC9E,sBAAsB;aAC3B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AA5CD,4CA4CC"}
@@ -5,22 +5,24 @@
5
5
  * Use of this source code is governed by an MIT-style license that can be
6
6
  * found in the LICENSE file at https://angular.io/license
7
7
  */
8
- import { ProgramAwareRuleWalker, RuleFailure, Rules } from 'tslint';
8
+ import { MigrationRule, ResolvedResource } from '@angular/cdk/schematics';
9
9
  import * as ts from 'typescript';
10
10
  /**
11
11
  * Rule that walks through every property assignment and switches the global `baseSpeedFactor`
12
12
  * ripple option to the new global animation config. Also updates every class member assignment
13
13
  * that refers to MatRipple#speedFactor.
14
14
  */
15
- export declare class Rule extends Rules.TypedRule {
16
- applyWithProgram(sourceFile: ts.SourceFile, program: ts.Program): RuleFailure[];
17
- }
18
- export declare class Walker extends ProgramAwareRuleWalker {
15
+ export declare class RippleSpeedFactorRule extends MigrationRule<null> {
16
+ ruleEnabled: boolean;
17
+ visitNode(node: ts.Node): void;
18
+ visitTemplate(template: ResolvedResource): void;
19
19
  /** Switches binary expressions (e.g. myRipple.speedFactor = 0.5) to the new animation config. */
20
- visitBinaryExpression(expression: ts.BinaryExpression): void;
20
+ private _visitBinaryExpression;
21
21
  /**
22
- * Switches a potential global option `baseSpeedFactor` to the new animation config. For this
23
- * we assume that the `baseSpeedFactor` is not used in combination with individual speed factors.
22
+ * Switches the global option `baseSpeedFactor` to the new animation config. For this
23
+ * we assume that the `baseSpeedFactor` is not used in combination with individual
24
+ * speed factors.
24
25
  */
25
- visitPropertyAssignment(assignment: ts.PropertyAssignment): void;
26
+ private _visitPropertyAssignment;
27
+ private _replaceText;
26
28
  }
@@ -7,10 +7,13 @@
7
7
  * found in the LICENSE file at https://angular.io/license
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- const chalk_1 = require("chalk");
11
- const tslint_1 = require("tslint");
10
+ const schematics_1 = require("@angular/cdk/schematics");
12
11
  const ts = require("typescript");
13
12
  const ripple_speed_factor_1 = require("./ripple-speed-factor");
13
+ /** Regular expression that matches [matRippleSpeedFactor]="$NUMBER" in templates. */
14
+ const speedFactorNumberRegex = /\[matRippleSpeedFactor]="(\d+(?:\.\d+)?)"/g;
15
+ /** Regular expression that matches [matRippleSpeedFactor]="$NOT_A_NUMBER" in templates. */
16
+ const speedFactorNotParseable = /\[matRippleSpeedFactor]="(?!\d+(?:\.\d+)?")(.*)"/g;
14
17
  /**
15
18
  * Note that will be added whenever a speed factor expression has been converted to calculate
16
19
  * the according duration. This note should encourage people to clean up their code by switching
@@ -22,35 +25,54 @@ const removeNote = `TODO: Cleanup duration calculation.`;
22
25
  * ripple option to the new global animation config. Also updates every class member assignment
23
26
  * that refers to MatRipple#speedFactor.
24
27
  */
25
- class Rule extends tslint_1.Rules.TypedRule {
26
- applyWithProgram(sourceFile, program) {
27
- return this.applyWithWalker(new Walker(sourceFile, this.getOptions(), program));
28
+ class RippleSpeedFactorRule extends schematics_1.MigrationRule {
29
+ constructor() {
30
+ super(...arguments);
31
+ // Only enable this rule if the migration targets version 7 as the ripple
32
+ // speed factor has been removed in that version.
33
+ this.ruleEnabled = this.targetVersion === schematics_1.TargetVersion.V7;
34
+ }
35
+ visitNode(node) {
36
+ if (ts.isBinaryExpression(node)) {
37
+ this._visitBinaryExpression(node);
38
+ }
39
+ else if (ts.isPropertyAssignment(node)) {
40
+ this._visitPropertyAssignment(node);
41
+ }
42
+ }
43
+ visitTemplate(template) {
44
+ let match;
45
+ while ((match = speedFactorNumberRegex.exec(template.content)) !== null) {
46
+ const newEnterDuration = ripple_speed_factor_1.convertSpeedFactorToDuration(parseFloat(match[1]));
47
+ this._replaceText(template.filePath, template.start + match.index, match[0].length, `[matRippleAnimation]="{enterDuration: ${newEnterDuration}}"`);
48
+ }
49
+ while ((match = speedFactorNotParseable.exec(template.content)) !== null) {
50
+ const newDurationExpression = ripple_speed_factor_1.createSpeedFactorConvertExpression(match[1]);
51
+ this._replaceText(template.filePath, template.start + match.index, match[0].length, `[matRippleAnimation]="{enterDuration: (${newDurationExpression})}"`);
52
+ }
28
53
  }
29
- }
30
- exports.Rule = Rule;
31
- class Walker extends tslint_1.ProgramAwareRuleWalker {
32
54
  /** Switches binary expressions (e.g. myRipple.speedFactor = 0.5) to the new animation config. */
33
- visitBinaryExpression(expression) {
55
+ _visitBinaryExpression(expression) {
34
56
  if (!ts.isPropertyAccessExpression(expression.left)) {
35
57
  return;
36
58
  }
37
59
  // Left side expression consists of target object and property name (e.g. myInstance.val)
38
60
  const leftExpression = expression.left;
39
- const targetTypeNode = this.getTypeChecker().getTypeAtLocation(leftExpression.expression);
61
+ const targetTypeNode = this.typeChecker.getTypeAtLocation(leftExpression.expression);
40
62
  if (!targetTypeNode.symbol) {
41
63
  return;
42
64
  }
43
65
  const targetTypeName = targetTypeNode.symbol.getName();
44
66
  const propertyName = leftExpression.name.getText();
67
+ const filePath = leftExpression.getSourceFile().fileName;
45
68
  if (targetTypeName === 'MatRipple' && propertyName === 'speedFactor') {
46
69
  if (ts.isNumericLiteral(expression.right)) {
47
70
  const numericValue = parseFloat(expression.right.text);
48
71
  const newEnterDurationValue = ripple_speed_factor_1.convertSpeedFactorToDuration(numericValue);
49
72
  // Replace the `speedFactor` property name with `animation`.
50
- const propertyNameReplacement = this.createReplacement(leftExpression.name.getStart(), leftExpression.name.getWidth(), 'animation');
73
+ this._replaceText(filePath, leftExpression.name.getStart(), leftExpression.name.getWidth(), 'animation');
51
74
  // Replace the value assignment with the new animation config.
52
- const rightExpressionReplacement = this.createReplacement(expression.right.getStart(), expression.right.getWidth(), `{enterDuration: ${newEnterDurationValue}}`);
53
- this.addFailureAtNode(expression, `Found deprecated variable assignment for "${chalk_1.bold('MatRipple')}#${chalk_1.red('speedFactor')}"`, [propertyNameReplacement, rightExpressionReplacement]);
75
+ this._replaceText(filePath, expression.right.getStart(), expression.right.getWidth(), `{enterDuration: ${newEnterDurationValue}}`);
54
76
  }
55
77
  else {
56
78
  // Handle the right expression differently if the previous speed factor value can't
@@ -58,21 +80,21 @@ class Walker extends tslint_1.ProgramAwareRuleWalker {
58
80
  // calculates the explicit duration based on the non-static speed factor expression.
59
81
  const newExpression = ripple_speed_factor_1.createSpeedFactorConvertExpression(expression.right.getText());
60
82
  // Replace the `speedFactor` property name with `animation`.
61
- const propertyNameReplacement = this.createReplacement(leftExpression.name.getStart(), leftExpression.name.getWidth(), 'animation');
83
+ this._replaceText(filePath, leftExpression.name.getStart(), leftExpression.name.getWidth(), 'animation');
62
84
  // Replace the value assignment with the new animation config and remove TODO.
63
- const rightExpressionReplacement = this.createReplacement(expression.right.getStart(), expression.right.getWidth(), `/** ${removeNote} */ {enterDuration: ${newExpression}}`);
64
- this.addFailureAtNode(expression, `Found deprecated variable assignment for "${chalk_1.bold('MatRipple')}#${chalk_1.red('speedFactor')}"`, [propertyNameReplacement, rightExpressionReplacement]);
85
+ this._replaceText(filePath, expression.right.getStart(), expression.right.getWidth(), `/** ${removeNote} */ {enterDuration: ${newExpression}}`);
65
86
  }
66
87
  }
67
88
  }
68
89
  /**
69
- * Switches a potential global option `baseSpeedFactor` to the new animation config. For this
70
- * we assume that the `baseSpeedFactor` is not used in combination with individual speed factors.
90
+ * Switches the global option `baseSpeedFactor` to the new animation config. For this
91
+ * we assume that the `baseSpeedFactor` is not used in combination with individual
92
+ * speed factors.
71
93
  */
72
- visitPropertyAssignment(assignment) {
94
+ _visitPropertyAssignment(assignment) {
73
95
  // For switching the `baseSpeedFactor` global option we expect the property assignment
74
- // to be inside of a normal object literal. Custom ripple global options cannot be switched
75
- // automatically.
96
+ // to be inside of a normal object literal. Custom ripple global options cannot be
97
+ // witched automatically.
76
98
  if (!ts.isObjectLiteralExpression(assignment.parent)) {
77
99
  return;
78
100
  }
@@ -85,13 +107,14 @@ class Walker extends tslint_1.ProgramAwareRuleWalker {
85
107
  // immediately in the provider object (e.g. it can happen that someone just imports the
86
108
  // config from a separate file).
87
109
  const { initializer, name } = assignment;
110
+ const filePath = assignment.getSourceFile().fileName;
88
111
  if (ts.isNumericLiteral(initializer)) {
89
112
  const numericValue = parseFloat(initializer.text);
90
113
  const newEnterDurationValue = ripple_speed_factor_1.convertSpeedFactorToDuration(numericValue);
91
- const keyNameReplacement = this.createReplacement(name.getStart(), assignment.name.getWidth(), `animation`);
92
- const initializerReplacement = this.createReplacement(initializer.getStart(), initializer.getWidth(), `{enterDuration: ${newEnterDurationValue}}`);
93
- this.addFailureAtNode(assignment, `Found deprecated property assignment for "${chalk_1.bold('MAT_RIPPLE_GLOBAL_OPTIONS')}:` +
94
- `${chalk_1.red('baseSpeedFactor')}"`, [keyNameReplacement, initializerReplacement]);
114
+ // Replace the `baseSpeedFactor` property name with `animation`.
115
+ this._replaceText(filePath, name.getStart(), name.getWidth(), 'animation');
116
+ // Replace the value assignment initializer with the new animation config.
117
+ this._replaceText(filePath, initializer.getStart(), initializer.getWidth(), `{enterDuration: ${newEnterDurationValue}}`);
95
118
  }
96
119
  else {
97
120
  // Handle the right expression differently if the previous speed factor value can't
@@ -99,13 +122,16 @@ class Walker extends tslint_1.ProgramAwareRuleWalker {
99
122
  // calculates the explicit duration based on the non-static speed factor expression.
100
123
  const newExpression = ripple_speed_factor_1.createSpeedFactorConvertExpression(initializer.getText());
101
124
  // Replace the `baseSpeedFactor` property name with `animation`.
102
- const propertyNameReplacement = this.createReplacement(name.getStart(), name.getWidth(), 'animation');
125
+ this._replaceText(filePath, name.getStart(), name.getWidth(), 'animation');
103
126
  // Replace the value assignment with the new animation config and remove TODO.
104
- const rightExpressionReplacement = this.createReplacement(initializer.getStart(), initializer.getWidth(), `/** ${removeNote} */ {enterDuration: ${newExpression}}`);
105
- this.addFailureAtNode(assignment, `Found a deprecated property assignment for "${chalk_1.bold('MAT_RIPPLE_GLOBAL_OPTIONS')}:` +
106
- `${chalk_1.red('baseSpeedFactor')}.`, [propertyNameReplacement, rightExpressionReplacement]);
127
+ this._replaceText(filePath, initializer.getStart(), initializer.getWidth(), `/** ${removeNote} */ {enterDuration: ${newExpression}}`);
107
128
  }
108
129
  }
130
+ _replaceText(filePath, start, width, newText) {
131
+ const recorder = this.getUpdateRecorder(filePath);
132
+ recorder.remove(start, width);
133
+ recorder.insertRight(start, newText);
134
+ }
109
135
  }
110
- exports.Walker = Walker;
111
- //# sourceMappingURL=rippleSpeedFactorAssignmentRule.js.map
136
+ exports.RippleSpeedFactorRule = RippleSpeedFactorRule;
137
+ //# sourceMappingURL=ripple-speed-factor-rule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ripple-speed-factor-rule.js","sourceRoot":"","sources":["../../../../../../../src/material/schematics/ng-update/upgrade-rules/misc-ripples-v7/ripple-speed-factor-rule.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
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 { MigrationRule } from '@angular/cdk/schematics';
9
+ import * as ts from 'typescript';
10
+ /**
11
+ * A migration rule that updates imports which refer to the primary Angular Material
12
+ * entry-point to use the appropriate secondary entry points (e.g. @angular/material/button).
13
+ */
14
+ export declare class SecondaryEntryPointsRule extends MigrationRule<null> {
15
+ printer: ts.Printer;
16
+ ruleEnabled: boolean;
17
+ visitNode(declaration: ts.Node): void;
18
+ }
@@ -7,53 +7,31 @@
7
7
  * found in the LICENSE file at https://angular.io/license
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- const Lint = require("tslint");
10
+ const schematics_1 = require("@angular/cdk/schematics");
11
11
  const ts = require("typescript");
12
12
  const module_specifiers_1 = require("../../../ng-update/typescript/module-specifiers");
13
+ const ONLY_SUBPACKAGE_FAILURE_STR = `Importing from "@angular/material" is deprecated. ` +
14
+ `Instead import from the entry-point the symbol belongs to.`;
15
+ const NO_IMPORT_NAMED_SYMBOLS_FAILURE_STR = `Imports from Angular Material should import ` +
16
+ `specific symbols rather than importing the entire library.`;
13
17
  /**
14
18
  * Regex for testing file paths against to determine if the file is from the
15
19
  * Angular Material library.
16
20
  */
17
21
  const ANGULAR_MATERIAL_FILEPATH_REGEX = new RegExp(`${module_specifiers_1.materialModuleSpecifier}/(.*?)/`);
18
22
  /**
19
- * A TSLint rule correcting symbols imports to using Angular Material
20
- * subpackages (e.g. @angular/material/button) rather than the top level
21
- * package (e.g. @angular/material).
23
+ * A migration rule that updates imports which refer to the primary Angular Material
24
+ * entry-point to use the appropriate secondary entry points (e.g. @angular/material/button).
22
25
  */
23
- class Rule extends Lint.Rules.TypedRule {
24
- applyWithProgram(sourceFile, program) {
25
- return this.applyWithFunction(sourceFile, walk, true, program.getTypeChecker());
26
+ class SecondaryEntryPointsRule extends schematics_1.MigrationRule {
27
+ constructor() {
28
+ super(...arguments);
29
+ this.printer = ts.createPrinter();
30
+ // Only enable this rule if the migration targets version 8. The primary
31
+ // entry-point of Material has been marked as deprecated in version 8.
32
+ this.ruleEnabled = this.targetVersion === schematics_1.TargetVersion.V8;
26
33
  }
27
- }
28
- Rule.metadata = {
29
- ruleName: 'update-angular-material-imports',
30
- description: Lint.Utils.dedent `
31
- Require all imports for Angular Material to be done via
32
- @angular/material subpackages`,
33
- options: null,
34
- optionsDescription: '',
35
- type: 'functionality',
36
- typescriptOnly: true,
37
- };
38
- Rule.ONLY_SUBPACKAGE_FAILURE_STR = Lint.Utils.dedent `
39
- Importing from @angular/material is deprecated. Instead import from
40
- subpackage the symbol belongs to. e.g. import {MatButtonModule} from
41
- '@angular/material/button'`;
42
- Rule.NO_IMPORT_NAMED_SYMBOLS_FAILURE_STR = Lint.Utils.dedent `
43
- Imports from Angular Material should import specific symbols rather than
44
- importing the entire Angular Material library.`;
45
- Rule.SYMBOL_NOT_FOUND_FAILURE_STR = ` was not found in the Material library.`;
46
- Rule.SYMBOL_FILE_NOT_FOUND_FAILURE_STR = ` was found to be imported from a file outside the Material library.`;
47
- exports.Rule = Rule;
48
- /**
49
- * A walker to walk a given source file to check for imports from the
50
- * "@angular/material" module.
51
- */
52
- function walk(ctx, checker) {
53
- // The source file to walk.
54
- const sf = ctx.sourceFile;
55
- const printer = ts.createPrinter();
56
- const cb = (declaration) => {
34
+ visitNode(declaration) {
57
35
  // Only look at import declarations.
58
36
  if (!ts.isImportDeclaration(declaration) ||
59
37
  !ts.isStringLiteralLike(declaration.moduleSpecifier)) {
@@ -67,17 +45,20 @@ function walk(ctx, checker) {
67
45
  // If no import clause is found, or nothing is named as a binding in the
68
46
  // import, add failure saying to import symbols in clause.
69
47
  if (!declaration.importClause || !declaration.importClause.namedBindings) {
70
- return ctx.addFailureAtNode(declaration, Rule.NO_IMPORT_NAMED_SYMBOLS_FAILURE_STR);
48
+ this.createFailureAtNode(declaration, NO_IMPORT_NAMED_SYMBOLS_FAILURE_STR);
49
+ return;
71
50
  }
72
51
  // All named bindings in import clauses must be named symbols, otherwise add
73
52
  // failure saying to import symbols in clause.
74
53
  if (!ts.isNamedImports(declaration.importClause.namedBindings)) {
75
- return ctx.addFailureAtNode(declaration, Rule.NO_IMPORT_NAMED_SYMBOLS_FAILURE_STR);
54
+ this.createFailureAtNode(declaration, NO_IMPORT_NAMED_SYMBOLS_FAILURE_STR);
55
+ return;
76
56
  }
77
57
  // If no symbols are in the named bindings then add failure saying to
78
58
  // import symbols in clause.
79
59
  if (!declaration.importClause.namedBindings.elements.length) {
80
- return ctx.addFailureAtNode(declaration, Rule.NO_IMPORT_NAMED_SYMBOLS_FAILURE_STR);
60
+ this.createFailureAtNode(declaration, NO_IMPORT_NAMED_SYMBOLS_FAILURE_STR);
61
+ return;
81
62
  }
82
63
  // Whether the existing import declaration is using a single quote module specifier.
83
64
  const singleQuoteImport = declaration.moduleSpecifier.getText()[0] === `'`;
@@ -91,11 +72,13 @@ function walk(ctx, checker) {
91
72
  // value declaration based on the type of the element as types are not necessarily
92
73
  // specific to a given secondary entry-point (e.g. exports with the type of "string")
93
74
  // would resolve to the module types provided by TypeScript itself.
94
- const symbol = getDeclarationSymbolOfNode(elementName, checker);
75
+ const symbol = getDeclarationSymbolOfNode(elementName, this.typeChecker);
95
76
  // If the symbol can't be found, or no declaration could be found within
96
77
  // the symbol, add failure to report that the given symbol can't be found.
97
- if (!symbol || (!symbol.valueDeclaration && symbol.declarations.length === 0)) {
98
- return ctx.addFailureAtNode(element, element.getText() + Rule.SYMBOL_NOT_FOUND_FAILURE_STR);
78
+ if (!symbol ||
79
+ !(symbol.valueDeclaration || (symbol.declarations && symbol.declarations.length !== 0))) {
80
+ this.createFailureAtNode(element, `"${element.getText()}" was not found in the Material library.`);
81
+ return;
99
82
  }
100
83
  // The filename for the source file of the node that contains the
101
84
  // first declaration of the symbol. All symbol declarations must be
@@ -107,7 +90,9 @@ function walk(ctx, checker) {
107
90
  // elements are analyzed.
108
91
  const matches = sourceFile.match(ANGULAR_MATERIAL_FILEPATH_REGEX);
109
92
  if (!matches) {
110
- return ctx.addFailureAtNode(element, element.getText() + Rule.SYMBOL_FILE_NOT_FOUND_FAILURE_STR);
93
+ this.createFailureAtNode(element, `"${element.getText()}" was found to be imported ` +
94
+ `from a file outside the Material library.`);
95
+ return;
111
96
  }
112
97
  const [, moduleName] = matches;
113
98
  // The module name where the symbol is defined e.g. card, dialog. The
@@ -127,21 +112,24 @@ function walk(ctx, checker) {
127
112
  .sort()
128
113
  .map(([name, elements]) => {
129
114
  const newImport = ts.createImportDeclaration(undefined, undefined, ts.createImportClause(undefined, ts.createNamedImports(elements)), createStringLiteral(`${module_specifiers_1.materialModuleSpecifier}/${name}`, singleQuoteImport));
130
- return printer.printNode(ts.EmitHint.Unspecified, newImport, sf);
115
+ return this.printer.printNode(ts.EmitHint.Unspecified, newImport, declaration.getSourceFile());
131
116
  })
132
117
  .join('\n');
133
118
  // Without any import statements that were generated, we can assume that this was an empty
134
119
  // import declaration. We still want to add a failure in order to make developers aware that
135
120
  // importing from "@angular/material" is deprecated.
136
121
  if (!newImportStatements) {
137
- return ctx.addFailureAtNode(declaration.moduleSpecifier, Rule.ONLY_SUBPACKAGE_FAILURE_STR);
122
+ this.createFailureAtNode(declaration.moduleSpecifier, ONLY_SUBPACKAGE_FAILURE_STR);
123
+ return;
138
124
  }
139
- // Mark the lint failure at the module specifier, providing the replacement that switches
140
- // the import to individual secondary entry-point imports.
141
- ctx.addFailureAtNode(declaration.moduleSpecifier, Rule.ONLY_SUBPACKAGE_FAILURE_STR, new Lint.Replacement(declaration.getStart(), declaration.getWidth(), newImportStatements));
142
- };
143
- sf.statements.forEach(cb);
125
+ const recorder = this.getUpdateRecorder(declaration.moduleSpecifier.getSourceFile().fileName);
126
+ // Perform the replacement that switches the primary entry-point import to
127
+ // the individual secondary entry-point imports.
128
+ recorder.remove(declaration.getStart(), declaration.getWidth());
129
+ recorder.insertRight(declaration.getStart(), newImportStatements);
130
+ }
144
131
  }
132
+ exports.SecondaryEntryPointsRule = SecondaryEntryPointsRule;
145
133
  /**
146
134
  * Creates a string literal from the specified text.
147
135
  * @param text Text of the string literal.
@@ -164,4 +152,4 @@ function getDeclarationSymbolOfNode(node, checker) {
164
152
  }
165
153
  return symbol;
166
154
  }
167
- //# sourceMappingURL=updateAngularMaterialImportsRule.js.map
155
+ //# sourceMappingURL=secondary-entry-points-rule.js.map